커뮤니티
문의
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);
다음글
이전글