커뮤니티
시스템 식 정의한대로 익절이 되지 않는 이유와 해결방법 문의
2017-06-12 09:34:03
147
글번호 110319
시스템식으로 정의한대로
진입 'updown-sell-01' (익절 정의 : +0.07 / 손절 : -0.19)이
익절이 되지 않고 '매도손절1'이 발생한 이유와 해결방법 문의입니다.
해당 식이 적용되어 진입이 완료 된 후
익절, 손절에 대한 시스템 정의식 대로 진행되지 않았습니다.
그 이유와 해결책을 부탁드립니다.
- 1. 시스템_적용_성능보고서-01_.jpg (0.07 MB)
- 2. 시스템_적용_식_중_익절_손절_정의부분-01.jpg (0.07 MB)
- 3. 시스템_적용_챠트-01_.jpg (0.25 MB)
답변 1
예스스탁 예스스탁 답변
2017-06-12 16:32:47
안녕하세요
예스스탁입니다.
if문은 봉완성시이고 MarketPosition,EntryName은
신호발생하고 봉이 하나가 완성되어야 인지가 됩니다.
즉 작성하신 식은 신호발생 봉 다음봉에서야
최초 포지션방향과 이름이 인지가 되고
그때 목표수익이나 손절매값을 셋팅해서 다음봉 부터 감시를 하므로
신호발생 봉기준 다음다음봉부터 신호가 발생할수 있습니다다.
목표수익과 손절매가 진입명기준으로 동일하면
아래 강제청산함수로 대체하시면 됩니다.
SetStopProfittarget(0.07,PointStop);
SetStopLoss(0.019,PointStop);
만약 진입이름별로 설정이 다르면 아래와 같이
진입신호가 발생할 때 같이 셋팅되서 진입신호봉 다음봉에서
익절이나 손절을 처리할수 있는 내용 추가가 필요하고
진입의 신호타입별로 모두 작성이 다르므로 아래 내용 참고하셔서
수정하셔야 합니다.
1 . 진입이 OnClose일경우
var : EP(0);
if MarketPosition <= 0 and 매수조건1 Then{
Buy("updown-buy-01");
EP = C;
ExitLong("#매수목표1",atlimit,EP+0.07);
ExitLong("#매수손절1",AtStop,EP-0.19);
}
if MarketPosition >= 0 and 매도조건1 Then{
Sell("updown-sell-01");
EP = C;
ExitShort("#매도목표1",atlimit,EP-0.07);
ExitShort("#매도손절1",AtStop,EP+0.19);
}
2.진입이 Atmarket일경우
var : EP(0);
if MarketPosition <= 0 and 매수조건1 Then{
Buy("updown-buy-01",AtMarket);
EP = NextBarOpen;
ExitLong("#매수목표1",atlimit,EP+0.07);
ExitLong("#매수손절1",AtStop,EP-0.19);
}
if MarketPosition >= 0 and 매도조건1 Then{
Sell("updown-sell-01",AtMarket);
EP = NextBarOpen;
ExitShort("#매도목표1",atlimit,EP-0.07);
ExitShort("#매도손절1",AtStop,EP+0.19);
}
3.진입이 AtStop일경우
var : EP(0);
if MarketPosition <= 0 and 매수조건1 Then{
Buy("updown-buy-01",AtStop,지정한값);
if NextBarOpen >= 지정한값 Then
EP = NextBarOpen;
else
EP = 지정한값;
ExitLong("#매수목표1",atlimit,EP+0.07);
ExitLong("#매수손절1",AtStop,EP-0.19);
}
if MarketPosition >= 0 and 매도조건1 Then{
Sell("updown-sell-01",AtStop,지정한값);
if NextBarOpen <= 지정한값 Then
EP = NextBarOpen;
else
EP = 지정한값;
ExitShort("#매도목표1",atlimit,EP-0.07);
ExitShort("#매도손절1",AtStop,EP+0.19);
}
4.진입이 AtLimit일경우
var : EP(0);
if MarketPosition <= 0 and 매수조건1 Then{
Buy("updown-buy-01",AtLimit,지정한값);
if NextBarOpen <= 지정한값 Then
EP = NextBarOpen;
else
EP = 지정한값;
ExitLong("#매수목표1",atlimit,EP+0.07);
ExitLong("#매수손절1",AtStop,EP-0.19);
}
if MarketPosition >= 0 and 매도조건1 Then{
Sell("updown-sell-01",AtLimit,지정한값);
if NextBarOpen >= 지정한값 Then
EP = NextBarOpen;
else
EP = 지정한값;
ExitShort("#매도목표1",atlimit,EP-0.07);
ExitShort("#매도손절1",AtStop,EP+0.19);
}
즐거운 하루되세요
> 우후훗 님이 쓴 글입니다.
> 제목 : 시스템 식 정의한대로 익절이 되지 않는 이유와 해결방법 문의
> 시스템식으로 정의한대로
진입 'updown-sell-01' (익절 정의 : +0.07 / 손절 : -0.19)이
익절이 되지 않고 '매도손절1'이 발생한 이유와 해결방법 문의입니다.
해당 식이 적용되어 진입이 완료 된 후
익절, 손절에 대한 시스템 정의식 대로 진행되지 않았습니다.
그 이유와 해결책을 부탁드립니다.