커뮤니티

문의

프로필 이미지
수류
2014-11-14 16:30:52
164
글번호 80387
답변완료
수고하십니다. 아래수식에서 손절을 ATstop으로 작성했는데 첫봉진입후 두번째봉에 손절가격이 와도 손절청산이 되지않고 세번째봉에서 손절청산이 됩니다. 제수식에 문제가 있는건지 아님 원래 그런건지 검토부탁드립니다.두번째봉에서도 손절이되게 하고싶습니다.(3분봉 선물) 참고로 14.5.20 14.8.27 및 그 이전데이타에서는 많이 발생하네요. input : st(090000); If ExitDate(1) != Date and sTime >= st and CurrentContracts==0 Then Begin if o<c Then Buy("b"); if o>=c Then Sell("s"); end; If MarketPosition==1 and c<EntryPrice Then ExitLong("eb",AtStop,EntryPrice*0.9985); if MarketPosition==-1 and c>EntryPrice Then ExitShort("es",atstop,EntryPrice*1.0015); SetStopEndofday(144500);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-11-14 18:12:45

안녕하세요 예스스탁입니다. 수식에서 if문은 봉완성시 입니다. atstop은 봉완성시 가격을 셋팅하고 다음봉에서 시세와 비교해 주문이 발생합니다. 청산식의 조건중에 if문으로 아래와 같은 내용이 있습니다 MarketPosition==1 and c<EntryPrice MarketPosition==-1 and c>EntryPrice 위 내용은 봉완성시에 해당조건이 만족을 해야 가격이 셋팅이 되고 그 다음봉에서 청산을 하게 됩니다. 그러므로 진입후 첫봉에서는 신호가 발생할수 없습니다. 봉종가상으로 꼭 진입가보다 위인지 아래인지를 판단하고 다음봉에 시세조건만족하고 청산하신다면 따로 식을 변경할수 없습니다. 만약 종가상으로 확인하는 것 없이 0.15% 손실시 즉시 청산이시면 아래 2가지의 식중에 하나 사용하시면 됩니다. 1. 일반청산함수 이용 input : st(090000); If ExitDate(1) != Date and sTime >= st and CurrentContracts==0 Then { if o<c Then{ Buy("b"); ExitLong("bx",AtStop,C*0.9985); } if o>=c Then{ Sell("s"); ExitShort("sx",AtStop,C*1.0015); } } If MarketPosition==1 Then ExitLong("eb",AtStop,EntryPrice*0.9985); if MarketPosition==-1 Then ExitShort("es",atstop,EntryPrice*1.0015); SetStopEndofday(144500); 2. 강제청산 손절매함수 사용 input : st(090000); If ExitDate(1) != Date and sTime >= st and CurrentContracts==0 Then Begin if o<c Then Buy("b"); if o>=c Then Sell("s"); end; SetStopLoss(0.15,PercentStop); SetStopEndofday(144500); 즐거운 하루되세요 > 수류 님이 쓴 글입니다. > 제목 : 문의 > 수고하십니다. 아래수식에서 손절을 ATstop으로 작성했는데 첫봉진입후 두번째봉에 손절가격이 와도 손절청산이 되지않고 세번째봉에서 손절청산이 됩니다. 제수식에 문제가 있는건지 아님 원래 그런건지 검토부탁드립니다.두번째봉에서도 손절이되게 하고싶습니다.(3분봉 선물) 참고로 14.5.20 14.8.27 및 그 이전데이타에서는 많이 발생하네요. input : st(090000); If ExitDate(1) != Date and sTime >= st and CurrentContracts==0 Then Begin if o<c Then Buy("b"); if o>=c Then Sell("s"); end; If MarketPosition==1 and c<EntryPrice Then ExitLong("eb",AtStop,EntryPrice*0.9985); if MarketPosition==-1 and c>EntryPrice Then ExitShort("es",atstop,EntryPrice*1.0015); SetStopEndofday(144500);