커뮤니티
질문입니다.
2018-03-18 19:31:49
182
글번호 117485
선물거래에서 피라미딩에 관한 질문입니다.
예를들어, 1계약을 거래하는 시스템이 다음과 같이 있다고 가정해봅니다.
if c > ma(c, 10) then { buy("b", atmarket, def, 1); }
if c < ma(c, 5) then { sell("s", atmarket, def, 1); }
위 시스템에서 피라미딩을 쌓으려합니다.
피라미딩 진입 로직은 다음과 같습니다.
매수1계약 진입 후 c값이 직전c값보다 크면 1계약추가진입합니다.
만약 c값이 직전c값보다 작다면 1계약을 줄입니다.
여기서 중요한 점은
매수시그널이 발생한 상황이라면 적어도 1계약은 유지하고 있어야합니다.
즉, 매수시그널이 발생한 후 포지션이 0이 되면 안되게 하고 싶습니다.
추가진입과 그에대한 청산은 매도시그널이 나올때까지 계속됩니다.
매도쪽도 마찬가지입니다.
매도시그널이 발생하고 c값이 직전c값보다 작으면 추가 1계약진입합니다.
만약 c값이 직전c값보다 커지면 1계약을 줄입니다.
매도시그널 발생 후 적어도 1계약은 유지하고 있어야 합니다.
역시 매수시그널이 발생할 때까지 계속 시행합니다.
또한, 매수나 매도 피라미딩 시그널이 오리지널 매수매도 시그널과 겹치지 않아야 합니다.
다음과 같은 로직을 예시로 부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2018-03-19 14:41:11
안녕하세요
예스스탁입니다.
피라미딩을 모든진입신호 허용으로 설정하고 적용하시면 됩니다.
if MarketPosition <= 0 and c > ma(c, 10) then { buy("b", atmarket, def, 1); }
if MarketPosition >= 0 and c < ma(c, 5) then { sell("s", atmarket, def, 1); }
if MarketPosition == 1 Then{
if BarsSinceEntry > 0 and C > C[1] Then
buy("bb",OnClose,def,1);
if C < C[1] and CurrentContracts >= 2 Then
exitlong("bx",OnClose,def,"",1,1);
}
if MarketPosition == -1 Then{
if BarsSinceEntry > 0 and C < C[1] Then
sell("ss",OnClose,def,1);
if C > C[1] and CurrentContracts >= 2 Then
ExitShort("sx",OnClose,def,"",1,1);
}
즐거운 하루되세요
> yanartas 님이 쓴 글입니다.
> 제목 : 질문입니다.
>
선물거래에서 피라미딩에 관한 질문입니다.
예를들어, 1계약을 거래하는 시스템이 다음과 같이 있다고 가정해봅니다.
if c > ma(c, 10) then { buy("b", atmarket, def, 1); }
if c < ma(c, 5) then { sell("s", atmarket, def, 1); }
위 시스템에서 피라미딩을 쌓으려합니다.
피라미딩 진입 로직은 다음과 같습니다.
매수1계약 진입 후 c값이 직전c값보다 크면 1계약추가진입합니다.
만약 c값이 직전c값보다 작다면 1계약을 줄입니다.
여기서 중요한 점은
매수시그널이 발생한 상황이라면 적어도 1계약은 유지하고 있어야합니다.
즉, 매수시그널이 발생한 후 포지션이 0이 되면 안되게 하고 싶습니다.
추가진입과 그에대한 청산은 매도시그널이 나올때까지 계속됩니다.
매도쪽도 마찬가지입니다.
매도시그널이 발생하고 c값이 직전c값보다 작으면 추가 1계약진입합니다.
만약 c값이 직전c값보다 커지면 1계약을 줄입니다.
매도시그널 발생 후 적어도 1계약은 유지하고 있어야 합니다.
역시 매수시그널이 발생할 때까지 계속 시행합니다.
또한, 매수나 매도 피라미딩 시그널이 오리지널 매수매도 시그널과 겹치지 않아야 합니다.
다음과 같은 로직을 예시로 부탁드립니다.
감사합니다.