커뮤니티
setstoptrailing 후 다음날 시가 진입 차단관련
2009-11-03 23:59:39
783
글번호 25888
노고가 많으십니다. 며칠 전에 작성해주신 자료 정말 감사드립니다.
그대로 식에 대입해 보니 문제없이 잘 돌아가서 정말 기쁩니다.
근데 한가지 문제가 생겨서요.
보내주신 시스템식은 setstoptrailing 이후에도, 이 선을 기준선으로 삼아
재진입을 하도록 한 것이었습니다. 하지만, 재 진입 후 또다시 setstoptrailing이 걸렸으면 거기서 2차 내지는 3차 수익이 나고 당일 청산(14시 40분)이 되야 하는데, 이상하게도 다음날까지 오버를 한 다음에 다음날 9시 시가에 또다시 아래나 위로 진입을 해버립니다, 원래 제 시스템은 9시 20분부터 진입하도록 만들었는데도 그러네요. 그날 거래는 당일로 끝내는 방법이 무엇이 있을까요?
무엇이 잘못된건지 모르겠습니다. 아래 식에서 뭐가 빠진건지 부탁드립니다.
- 중간생략(시스템식)
SetStopTrailing(1.3, 4.2, PointStop, 1);
SetStopLoss(2.6, PointStop);
Trcount = 0;
for cnt = 1 to 20{
if sDate ==ExitDate(cnt) and IsExitName("StopTrailing", cnt) Then
Trcount = Trcount+1;
}
if MarketPosition == 0 and IsExitName("StopTrailing", 1) and Trcount <= 1 Then{
Buy("오름", AtStop, ExitPrice(1)+0.4);
Sell("내림", AtStop, ExitPrice(1)-0.4);
}
if MarketPosition != 0 Then{
if IsEntryName("오름") or IsEntryName("내림") Then{
SetStopTrailing(1.3, 3.6, PointStop, 1);
SetStopLoss(0.5, PointStop);
}
}
Else{
SetStopTrailing(0,0);
SetStopLoss(0);
}
SetStopEndofday(144000);
답변 1
예스스탁 예스스탁 답변
2009-11-04 10:12:44
안녕하세요
예스스탁입니다.
진입식에 atstop으로 작성되어 있어 발생하는 사항입니다.
if문이 만족하고 다음봉의 시세를 감시하는 식이므로
진입식에 시간조건을 주어 해당시간이후에는 if문을 만족시키지 않게 만들어야 합니다.
if stime < 144000 and MarketPosition == 0 and IsExitName("StopTrailing", 1) and Trcount <= 1 Then{
Buy("오름", AtStop, ExitPrice(1)+0.4);
Sell("내림", AtStop, ExitPrice(1)-0.4);
}
시간조건을 추가해 드렸습니다.
당일청산시간보다 이전시간일때만 진입이 발생하게 됩니다.
즐거운 하루되세요
> 빠샤 님이 쓴 글입니다.
> 제목 : setstoptrailing 후 다음날 시가 진입 차단관련
> 노고가 많으십니다. 며칠 전에 작성해주신 자료 정말 감사드립니다.
그대로 식에 대입해 보니 문제없이 잘 돌아가서 정말 기쁩니다.
근데 한가지 문제가 생겨서요.
보내주신 시스템식은 setstoptrailing 이후에도, 이 선을 기준선으로 삼아
재진입을 하도록 한 것이었습니다. 하지만, 재 진입 후 또다시 setstoptrailing이 걸렸으면 거기서 2차 내지는 3차 수익이 나고 당일 청산(14시 40분)이 되야 하는데, 이상하게도 다음날까지 오버를 한 다음에 다음날 9시 시가에 또다시 아래나 위로 진입을 해버립니다, 원래 제 시스템은 9시 20분부터 진입하도록 만들었는데도 그러네요. 그날 거래는 당일로 끝내는 방법이 무엇이 있을까요?
무엇이 잘못된건지 모르겠습니다. 아래 식에서 뭐가 빠진건지 부탁드립니다.
- 중간생략(시스템식)
SetStopTrailing(1.3, 4.2, PointStop, 1);
SetStopLoss(2.6, PointStop);
Trcount = 0;
for cnt = 1 to 20{
if sDate ==ExitDate(cnt) and IsExitName("StopTrailing", cnt) Then
Trcount = Trcount+1;
}
if MarketPosition == 0 and IsExitName("StopTrailing", 1) and Trcount <= 1 Then{
Buy("오름", AtStop, ExitPrice(1)+0.4);
Sell("내림", AtStop, ExitPrice(1)-0.4);
}
if MarketPosition != 0 Then{
if IsEntryName("오름") or IsEntryName("내림") Then{
SetStopTrailing(1.3, 3.6, PointStop, 1);
SetStopLoss(0.5, PointStop);
}
}
Else{
SetStopTrailing(0,0);
SetStopLoss(0);
}
SetStopEndofday(144000);
다음글