Search
Duplicate
📝

역마틴게일 전략(진입 신호타입 OnClose)

#공통, 전략
[설명]
마틴게일 전략과 반대로 베팅하는 전략입니다. 기본수량은 1계약이고 수익이 발생하면 다음진입은 2배의 수량으로 진입하고 손실이 발생하면 다시 기본수량으로 셋팅됩니다. 다만 아래식에서는 최대수량을 지정해 지정한 최대수량 이상으로 진입수량이 늘어나지 않습니다. 조건에 따라 수량을 증감하는 내용을 구현할 때 참고하시기 바랍니다.
진입의 신호타입(Onclose, AtMarket, Atstopen,Atlimit)에 따라 수식에 약간의 차이가 있습니다. 선옵에서 포지션 진행 중에 반대포지션으로 스위칭이 될 때 손익이 봉완성기준으로만 제공이 되는데 AtMarket은 다음봉 시가가 신호가격이고, AtStop이나 AtLimit은 감시가격을 지정해 다음봉에서 가격조건이 만족하는 즉시만 신호가 발생하므로 이에 대비한 손익을 별도 계산해야 합니다.
※ 주식에 적용하는 시스템은 반대방향 진입이 없으므로 아래수식만 참고하시면 된니다.
//진입이 OnClose타입인 경우 input : 기본수량(1),최대수량(16); var : mav1(0),mav2(0),EntryVol(0); mav1 = ma(C,20); mav2 = ma(C,60); //매수진입조건 if MarketPosition <= 0 and CrossUp(mav1,mav2) Then { //현재 무포지션 if MarketPosition == 0 Then { //전체 첫진입이면 진입수량은 기본수량 if TotalTrades == 0 Then EntryVol = 기본수량; Else //첫진입이 아니면 { if PositionProfit(1) > 0 Then EntryVol = MaxContracts(1)*2; //직전거래가 수익이면 직전거래수량의 2배 Else EntryVol = 기본수량; //직전거래가 수익이 아니면 기본수량 } } Else //무포지션이 아니면(매도포지션) { if MarketPosition == -1 Then { if PositionProfit > 0 Then EntryVol = MaxContracts*2; //현재거래가 수익이면 현재진입수량의 2배 Else EntryVol = 기본수량;//현재거래가 수익이 아니면 기본수량 } } EntryVol = min(EntryVol,최대수량); Buy("b",OnClose,Def,EntryVol); } //매도진입조건 if MarketPosition >= 0 and CrossDown(ma(c,5),ma(c,20)) Then { //현재 무포지션 if MarketPosition == 0 Then { //전체 첫진입이면 수량은 기본수량 if TotalTrades == 0 Then EntryVol = 기본수량; Else //첫진입이 아니면 { if PositionProfit(1) > 0 Then EntryVol = MaxContracts(1)*2; //직전거래가 수익이면 직전거래수량의 2배 Else EntryVol = 기본수량; //직전거래가 손실이 아니면 기본수량 } } Else //무포지션이 아니고(매수포지션) { if PositionProfit > 0 Then EntryVol = MaxContracts*2; //현재거래가 수익이면 현재진입수량*2 Else EntryVol = 기본수량; //현재거래가 수익이 아니면 기본수량 } EntryVol = min(EntryVol,최대수량); Sell("S",OnClose,Def,EntryVol); }
JavaScript
복사