커뮤니티

수식되로 매매가 진행되지 않네요.. 뭐가 문제인지 확인부탁드림니다.

프로필 이미지
이형지
2019-01-10 03:33:53
195
글번호 125097
답변완료

첨부 이미지

제가 지금 사용하고 있는 수식은 다음과 같습니다. 매수진입후 84틱 수익시 바로 청산을 하는 수식인데 위 그림과 같이 84틱이 넘었는데 봉종가에 청산되는 현상이 발생하였고... 검증 돌려보니 84틱 수익도달시 청산되는 case가 하나도 없네요..결국 제가 의도한대로 되지 않았다는 뜻인데요.... 아래 수식에서 뭐가 문제가 있는지 알려주시고 혹시 잘못되었으면 제가 의도한대로 수식좀 수정 부탁드려요... 제 의도 매수진입시 (1) 60틱이상 수익시 봉완성후 청산 (2) 90틱이상 손실시 봉완성후 청산 (3) 84틱 수익도달시 즉시 청산 (4) 40틱이상 수익도달후 1틱수익까지 떨어졌을때 즉시 청산(본전청산) (5) 200틱 이상 손실시 즉시 청산 매도진입시 (1) 90틱이상 수익시 봉완성후 청산 (2) 80틱이상 손실시 봉완성후 청산 (3) 110틱 수익도달시 즉시 청산 (4) 30틱이상 수익도달후 1틱수익까지 떨어졌을때 즉시 청산(본전청산) (5) 190틱 이상 손실시 즉시 청산 공통) 당일 5시 40분에 매수 매도 모두 청산 ============================================================================== if MarketPosition == 1 then SetStopProfittarget(PriceScale*60, PointStop); SetStopLoss(PriceScale*90, PointStop); if MarketPosition == -1 then SetStopProfittarget(PriceScale*90, PointStop); SetStopLoss(PriceScale*80, PointStop); if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*84 Then ExitLong("최고점즉시청산1",AtLimit,EntryPrice+PriceScale*84); Else { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*40 Then ExitLong("약손실청산1",AtStop,EntryPrice+PriceScale*1); Else ExitLong("가슴아픈손절1",AtStop,EntryPrice-PriceScale*200); } } if MarketPosition == -1 Then { If Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*110 Then ExitShort("최고점즉시청산2",AtStop,EntryPrice-PriceScale*110); Else { if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*30 Then ExitShort("약손실청산2",AtStop,EntryPrice-PriceScale*1); Else ExitShort("가슴찢어지는손절",AtStop,EntryPrice+PriceScale*190); } } } if stime == 54000 Then{ exitlong("당일청산1"); ExitShort("당일청산2"); } ==============================================================================
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-01-10 13:20:09

안녕하세요 예스스탁입니다. 강제청산 함수는 시스템 트레이딩 설정창의 강제청산탭에서 지정하는 청산시점이 적용됩니다. 청산시점이 봉완성시이면 종가로 판단해 신호가 발생합니다. 설정창의 해당 옵션은 수식에서 설정이 되지 않으므로 사용자분이 확인하셔서 원하시는 내용으로 설정하셔야 합니다. 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : 수식되로 매매가 진행되지 않네요.. 뭐가 문제인지 확인부탁드림니다. > 제가 지금 사용하고 있는 수식은 다음과 같습니다. 매수진입후 84틱 수익시 바로 청산을 하는 수식인데 위 그림과 같이 84틱이 넘었는데 봉종가에 청산되는 현상이 발생하였고... 검증 돌려보니 84틱 수익도달시 청산되는 case가 하나도 없네요..결국 제가 의도한대로 되지 않았다는 뜻인데요.... 아래 수식에서 뭐가 문제가 있는지 알려주시고 혹시 잘못되었으면 제가 의도한대로 수식좀 수정 부탁드려요... 제 의도 매수진입시 (1) 60틱이상 수익시 봉완성후 청산 (2) 90틱이상 손실시 봉완성후 청산 (3) 84틱 수익도달시 즉시 청산 (4) 40틱이상 수익도달후 1틱수익까지 떨어졌을때 즉시 청산(본전청산) (5) 200틱 이상 손실시 즉시 청산 매도진입시 (1) 90틱이상 수익시 봉완성후 청산 (2) 80틱이상 손실시 봉완성후 청산 (3) 110틱 수익도달시 즉시 청산 (4) 30틱이상 수익도달후 1틱수익까지 떨어졌을때 즉시 청산(본전청산) (5) 190틱 이상 손실시 즉시 청산 공통) 당일 5시 40분에 매수 매도 모두 청산 ============================================================================== if MarketPosition == 1 then SetStopProfittarget(PriceScale*60, PointStop); SetStopLoss(PriceScale*90, PointStop); if MarketPosition == -1 then SetStopProfittarget(PriceScale*90, PointStop); SetStopLoss(PriceScale*80, PointStop); if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*84 Then ExitLong("최고점즉시청산1",AtLimit,EntryPrice+PriceScale*84); Else { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*40 Then ExitLong("약손실청산1",AtStop,EntryPrice+PriceScale*1); Else ExitLong("가슴아픈손절1",AtStop,EntryPrice-PriceScale*200); } } if MarketPosition == -1 Then { If Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*110 Then ExitShort("최고점즉시청산2",AtStop,EntryPrice-PriceScale*110); Else { if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*30 Then ExitShort("약손실청산2",AtStop,EntryPrice-PriceScale*1); Else ExitShort("가슴찢어지는손절",AtStop,EntryPrice+PriceScale*190); } } } if stime == 54000 Then{ exitlong("당일청산1"); ExitShort("당일청산2"); } ==============================================================================