커뮤니티

41838 답변 부탁합니다

프로필 이미지
풍요지기
2015-05-14 18:30:24
121
글번호 86058
답변완료
감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-05-15 08:32:54

안녕하세요 예스스탁입니다. 분할로 청산하시게 되면 직전거래의 청산은 해당 포지션에서 첫번째 발생한 청산명입니다. 그러므로 bx1로 일부 청산후 trailing청산으로 청산하면 bx1을 리턴합니다. 분할청산을 하시므로 다른함수를 이용하셔야 합니다. 직전거래의 마지막 청산명을 사용하시므로 IsExitName대신에 LatestExitName(1)을 이용하셔야 합니다. 아래 수정한식입니다. 외부변수는 임의로 지정했습니다. input : 손실(5),청산가대비(3),수익수량(3),수익(3),최고가대비(3); var : cond1(0),Trailing청산가(0),Trailing청산(0); Var8 = Highest(H, BarsSinceEntry()+1); SetStopLoss(손실); if crossup(c,ma(C,20)) then { if LatestExitName(1) != "trailing청산" Then buy("매수"); if LatestExitName(1) == "trailing청산" and C <= ExitPrice(1)*(1 - 청산가대비/100) Then //청산가대비 X % 하락시 buy("매수연속"); } If MarketPosition ==1 Then{ if CodeCategory ==1 or 2 and BasePrice < 100000 Then Var10= int(int(MaxContracts*수익수량/100)/10)*10; Else Var10= int(MaxContracts*수익수량/100); if CurrentContracts==MaxContracts Then exitlong("bx1",atlimit,entryPrice*(1+수익/100),"",var10,1); If Var8 >= EntryPrice() * (1 + 수익/100) Then { Cond1 = var8 * (1 - 최고가대비/100); Trailing청산가 = C; Trailing청산 = 1; ExitLong("trailing청산", Atstop, Cond1); } } 즐거운 하루되세요 > 풍요지기 님이 쓴 글입니다. > 제목 : 41838 답변 부탁합니다 > 감사합니다