커뮤니티

문의 (EX)

프로필 이미지
TRF
2014-05-22 15:01:19
158
글번호 75292
답변완료
1. 스윙매매시 수익이 S&P500 지수기준 3일 이상이고, 1% 이상 2% 이하 수익이 발생했고, 최대 수익대비 50%에서 청산되는 수식 부탁드립니다. 2. 3일 이내에 M1과 M2가 CROSSUP되었는지는 어떻게 판별할 수 있을까요?? 3. 아래는 최대수익대비 반환시 청산인데, 30% 반납시 조건이 만족되고 다시 15%에 청산하는 식으로 수정부탁드립니다. 예를 들면 매도진입하여 1000틱 수익이 났고, 반등하여 300틱 반납하면 조건이 만족되고, 다시 내려와 150틱이 되면 최종청산입니다. 결과적으로 최종 850틱에서 청산되는 것입니다. 만약 850틱이 내려오지 않고 301틱 이상을 재차 반등하면 강제청산됩니다. VARS: MaxProfitsPercent(10), DropPercent(30); if MARKETPOSITION == 1 Then { var1 = HIGHEST(HIGH, BarsSinceEntry); if var1 >= ENTRYPRICE * (1 + MaxProfitsPercent / 100) Then EXITLONG("EL[@TRS]", ATLIMIT, var1 - (var1 - ENTRYPRICE) * DropPercent / 100); } if MARKETPOSITION == -1 Then { var2 = LOWEST(LOW, BarsSinceEntry); if var2 <= ENTRYPRICE * (1 - MaxProfitsPercent / 100) Then EXITSHORT("ES[TRS]", ATSTOP, var2 + (ENTRYPRICE - var2) * DropPercent / 100); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-05-22 17:35:59

안녕하세요 예스스탁입니다. 1. var : Data2Daycnt(0,data2),EntryD(0,data1); //참조데이터를 data1봉 기준으로 값을 저장(주종목 기준인 포지션함수와 같이 쓰기 위해) var : D2H(0,data1),D2L(0,data1),D2C(0,data1); D2H = data2(H); D2L = data2(L); D2C = data2(C); if data2(sdate != sdate[1]) Then Data2Daycnt = Data2Daycnt+1; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then EntryD = Data2Daycnt; if MarketPosition == 1 and Data2Daycnt >= EntryD+3 And highest(D2H,BarsSinceEntry) >= D2C[BarsSinceEntry]*1.01 and highest(D2H,BarsSinceEntry) <= D2C[BarsSinceEntry]*1.02 and D2C <= (highest(D2H,BarsSinceEntry)+D2C[BarsSinceEntry])*0.5 Then exitlong(); if MarketPosition == -1 and Data2Daycnt >= EntryD+3 And Lowest(D2L,BarsSinceEntry) <= D2C[BarsSinceEntry]*0.99 and Lowest(D2L,BarsSinceEntry) >= D2C[BarsSinceEntry]*0.98 and D2C >= (Lowest(D2L,BarsSinceEntry)+D2C[BarsSinceEntry])*0.5 Then ExitShort(); 2. var : cnt1(0),cnt2(0),cnt3(0); if date != date[1] Then{ cnt1 = 0; cnt2 = cnt1[1]; cnt3 = cnt2[1]; } if crossup(m1,m2) Then cnt1 = cnt+1; #3일이내에 상향돌파가 한번이상 발생 if cnt1+cnt2+cnt3 >= 1 then 3. VARS: MaxProfitsPercent(10), DropPercent(30),Aper(15); Vars: BxStep(0),LL(0),SxStep(0),HH(0); if MARKETPOSITION == 1 Then { var1 = HIGHEST(HIGH, BarsSinceEntry); if BxStep == 0 and var1 >= ENTRYPRICE * (1 + MaxProfitsPercent / 100) Then BxStep = 1; if BxStep == 1 and C <= var1*(1-DropPercent/100) Then{ BxStep = 2; LL = L; } if BxStep >= 2 Then{ EXITLONG("EL[@TRS]", AtLimit,var1*(1-Aper/100)); //최고가에서 15% 하락이후의 최저점 if L< LL Then LL = L; //위 최저점보다 30% 상승하면 청산 EXITLONG("EL1[@TRS]", AtLimit,LL*(1+DropPercent/100)); } } Else BxStep = 0; if MARKETPOSITION == -1 Then { var2 = LOWEST(LOW, BarsSinceEntry); #진입이후에 10% 이상 수익난 상태에서 종가가 최저가에서 30%이상 상승한적이 있으면 #최저가대비 +15%까지 다시 하락하면 매도청산 if SxStep == 0 and var2 <= ENTRYPRICE * (1 - MaxProfitsPercent / 100) Then SxStep = 1; if SxStep == 1 and C >= var2*(1+DropPercent/100) Then{ SxStep = 2; HH = H; } if SxStep >= 2 Then{ EXITSHORT("ES[TRS]", AtLimit, var2*(1+Aper/100)); if H > HH Then HH = H; EXITSHORT("ES1[TRS]", AtLimit, HH*(1-DropPercent/100)); } } Else SxStep; 즐거운 하루되세요 > TRF 님이 쓴 글입니다. > 제목 : 문의 (EX) > 1. 스윙매매시 수익이 S&P500 지수기준 3일 이상이고, 1% 이상 2% 이하 수익이 발생했고, 최대 수익대비 50%에서 청산되는 수식 부탁드립니다. 2. 3일 이내에 M1과 M2가 CROSSUP되었는지는 어떻게 판별할 수 있을까요?? 3. 아래는 최대수익대비 반환시 청산인데, 30% 반납시 조건이 만족되고 다시 15%에 청산하는 식으로 수정부탁드립니다. 예를 들면 매도진입하여 1000틱 수익이 났고, 반등하여 300틱 반납하면 조건이 만족되고, 다시 내려와 150틱이 되면 최종청산입니다. 결과적으로 최종 850틱에서 청산되는 것입니다. 만약 850틱이 내려오지 않고 301틱 이상을 재차 반등하면 강제청산됩니다. VARS: MaxProfitsPercent(10), DropPercent(30); if MARKETPOSITION == 1 Then { var1 = HIGHEST(HIGH, BarsSinceEntry); if var1 >= ENTRYPRICE * (1 + MaxProfitsPercent / 100) Then EXITLONG("EL[@TRS]", ATLIMIT, var1 - (var1 - ENTRYPRICE) * DropPercent / 100); } if MARKETPOSITION == -1 Then { var2 = LOWEST(LOW, BarsSinceEntry); if var2 <= ENTRYPRICE * (1 - MaxProfitsPercent / 100) Then EXITSHORT("ES[TRS]", ATSTOP, var2 + (ENTRYPRICE - var2) * DropPercent / 100); }