커뮤니티
질문입니다.
2017-03-21 12:53:37
97
글번호 108025
선물에서 시스템을 작성해서 운영하고자 합니다.
피라미딩에 관련한 질문입니다.
일단 1계약으로 매수, 매도하는 시스템을 작성하였습니다.
신호는 AtMarket으로 작성하였습니다.
피라미딩은 매수(매도)로 진입하였을 때 진입가격대비 5틱 상승(하락)했을 때
추가로 1계약을 진입하도록 하였습니다.
신호는 AtStop으로 작성하였습니다.
예를들면 이렇습니다.
if marketposition(0) <= 0 and crossup(c, ma(5)) then
{ buy('b", atmarket, def, 1);}
if marketposition(0) >= 0 and crossdown(c, ma(10)) then
{ sell("s", atmarket, def, 1); }
If MarketPosition(0) == 1 && CurrentContracts == 1 Then
{ Buy("+2", AtStop, LatestEntryPrice + (0.05 * 5)); }
If MarketPosition(0) == -1 && CurrentContracts == 1 Then
{ Sell("-2", AtStop, LatestEntryPrice - (0.05 * 5));}
그런데 한가지 문제점이 생겼는데,
예를들어 매도로 진입한 후에 매도로 진입한 봉에서 가격이 상승하더니
매수 피라미딩신호가 발생하여 매수로 포지션이 바뀌어 버리는 현상이 발생합니다.
아마도 제 생각으로는 AtStop으로 피라미딩을 진입하게 만들어서 이런 현상이 발생한 듯 합니다.
원래 제 의도는 초기진입이 매수("b")라면 그 후에는 매도("s") 혹은 매수피라미딩("+2") 신호만 발생시키고 싶고, 초기진입이 매도("s")라면 그 후에는 매수("b") 혹은 매도피라미딩("-2") 신호만 발생시키고 싶습니다.
즉, 매수 진입 후 매도피라미딩 진입이나, 매도 진입 후 매수피라미딩 신호는 나오지 않게 하고 싶습니다.
왜 이런 현상이 발생하는지 그 이유와
이를 방지할 수 있는 방법을 간단한 예시로 부탁드리겠습니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2017-03-21 15:37:41
안녕하세요
예스스탁입니다.
현재 수식의 문제는
하나의 봉에서 반대방향 진입과 추가진입이 동시 셋팅되어
다음봉에서 신호가 같이 발생하는 부분에 있습니다.
매수추가 진입이 반대방향 조건과 겹치지 않게 조건을 추가해 주셔야 합니다.
if marketposition(0) <= 0 and crossup(c, ma(c,5)) then
{
buy("b", atmarket, def, 1);
}
if marketposition(0) >= 0 and crossdown(c, ma(c,10)) then
{
sell("s", atmarket, def, 1);
}
If MarketPosition(0) == 1 && CurrentContracts == 1 and crossdown(c, ma(c,10)) == false Then
{
Buy("+2", AtStop, LatestEntryPrice + (0.05 * 5));
}
If MarketPosition(0) == -1 && CurrentContracts == 1 and crossup(c, ma(c,5)) == false Then
{
Sell("-2", AtStop, LatestEntryPrice - (0.05 * 5));
}
즐거운 하루되세요
> yanartas 님이 쓴 글입니다.
> 제목 : 질문입니다.
> 선물에서 시스템을 작성해서 운영하고자 합니다.
피라미딩에 관련한 질문입니다.
일단 1계약으로 매수, 매도하는 시스템을 작성하였습니다.
신호는 AtMarket으로 작성하였습니다.
피라미딩은 매수(매도)로 진입하였을 때 진입가격대비 5틱 상승(하락)했을 때
추가로 1계약을 진입하도록 하였습니다.
신호는 AtStop으로 작성하였습니다.
예를들면 이렇습니다.
if marketposition(0) <= 0 and crossup(c, ma(5)) then
{ buy('b", atmarket, def, 1);}
if marketposition(0) >= 0 and crossdown(c, ma(10)) then
{ sell("s", atmarket, def, 1); }
If MarketPosition(0) == 1 && CurrentContracts == 1 Then
{ Buy("+2", AtStop, LatestEntryPrice + (0.05 * 5)); }
If MarketPosition(0) == -1 && CurrentContracts == 1 Then
{ Sell("-2", AtStop, LatestEntryPrice - (0.05 * 5));}
그런데 한가지 문제점이 생겼는데,
예를들어 매도로 진입한 후에 매도로 진입한 봉에서 가격이 상승하더니
매수 피라미딩신호가 발생하여 매수로 포지션이 바뀌어 버리는 현상이 발생합니다.
아마도 제 생각으로는 AtStop으로 피라미딩을 진입하게 만들어서 이런 현상이 발생한 듯 합니다.
원래 제 의도는 초기진입이 매수("b")라면 그 후에는 매도("s") 혹은 매수피라미딩("+2") 신호만 발생시키고 싶고, 초기진입이 매도("s")라면 그 후에는 매수("b") 혹은 매도피라미딩("-2") 신호만 발생시키고 싶습니다.
즉, 매수 진입 후 매도피라미딩 진입이나, 매도 진입 후 매수피라미딩 신호는 나오지 않게 하고 싶습니다.
왜 이런 현상이 발생하는지 그 이유와
이를 방지할 수 있는 방법을 간단한 예시로 부탁드리겠습니다.
감사합니다.
다음글
이전글