커뮤니티

시스템 식 정의한대로 익절이 되지 않는 이유와 해결방법 문의

프로필 이미지
우후훗
2017-06-12 09:34:03
147
글번호 110319
답변완료

첨부 이미지

시스템식으로 정의한대로 진입 'updown-sell-01' (익절 정의 : +0.07 / 손절 : -0.19)이 익절이 되지 않고 '매도손절1'이 발생한 이유와 해결방법 문의입니다. 해당 식이 적용되어 진입이 완료 된 후 익절, 손절에 대한 시스템 정의식 대로 진행되지 않았습니다. 그 이유와 해결책을 부탁드립니다.
시스템
답변 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'이 발생한 이유와 해결방법 문의입니다. 해당 식이 적용되어 진입이 완료 된 후 익절, 손절에 대한 시스템 정의식 대로 진행되지 않았습니다. 그 이유와 해결책을 부탁드립니다.