예스스탁
예스스탁 답변
2023-10-25 15:12:14
안녕하세요
예스스탁입니다.
1
청산함수에 수량을 지정하지 않으면 전량청산입니다.
분할청산이면 아래와 같이 청산할 수량을 계산해 지정해 주어야 합니다.
아래식에는 20%씩 청산되게 작성해 드립니다.
식작성에 참고하시기 바랍니다.
input : P1(5),P2(20),P3(60),P4(120),P5(240);
input : per1(5),per2(10),per3(15),per4(20),per5(30);
var : ma1(0),ma2(0),ma3(0),ma4(0),ma5(0);
ma1 = ma(C,P1);
ma2 = ma(C,P2);
ma3 = ma(C,P3);
ma4 = ma(C,P4);
ma5 = ma(C,P5);
if MarketPosition == 1 Then
{
ExitLong("bx1",AtLimit,ma1*(1+per1/100),"",Floor(MaxContracts*0.25),1);
ExitLong("bx2",AtLimit,ma2*(1+per2/100),"",Floor(MaxContracts*0.25),1);
ExitLong("bx3",AtLimit,ma3*(1+per3/100),"",Floor(MaxContracts*0.25),1);
ExitLong("bx4",AtLimit,ma4*(1+per4/100),"",Floor(MaxContracts*0.25),1);
ExitLong("bx5",AtLimit,ma5*(1+per5/100),"",MaxContracts-Floor(MaxContracts*0.25)*4 ,1);
}
if MarketPosition == -1 Then
{
ExitShort("sx1",AtLimit,ma1*(1-per1/100),"",Floor(MaxContracts*0.25),1);
ExitShort("sx2",AtLimit,ma2*(1-per2/100),"",Floor(MaxContracts*0.25),1);
ExitShort("sx3",AtLimit,ma3*(1-per3/100),"",Floor(MaxContracts*0.25),1);
ExitShort("sx4",AtLimit,ma4*(1-per4/100),"",Floor(MaxContracts*0.25),1);
ExitShort("sx5",AtLimit,ma5*(1-per5/100),"",MaxContracts-Floor(MaxContracts*0.25)*4,1);
}
2
CurrentEntries는 현재 청산되지 않고 남은 진입된 회수입니다.
일부청산으로 하나의 진입이 청산되면 CurrentEntries도 감소됩니다.
최대 진입횟수가 2회이면 MaxEntries < 2로 조건을 지정하시면 됩니다.
즐거운 하루되세요
> lbh1119 님이 쓴 글입니다.
> 제목 : 문의
> 안녕하세요.
일봉 이평선 5/20/60/120/240 5가지를 각각 MA1,MA2, MA3, MA4, MA5라고 했을 때,
질문1. 롱 포지션일 경우, MA1에서 5%,MA2에서 10%,MA3에서 15%,MA4에서 20%,MA5에서 30%
익절하는 수식(각각의 MA를 뚫고 올라갈 때 익절)
질문2. 숏 포지션일 경우, 롱 포지션 경우와 동일하게 익절하는 수식(각각의 MA를 뚫고 내려갈 때 익절)
질문3. 현재 피라미딘을 사용하여 CurrentEntries < 2의 조건을 걸어 2회까지 진입하는데, 질문1과2 처럼 일부 청산할 경우 CurrentEntries 값이 하나 감소(-1) 되나요? 일부 청산하더라도 2회만 진입하게 하려면 어떤 조건을 걸어야 할까요?
감사합니다.