커뮤니티
질문입니다.
2017-06-06 10:38:18
124
글번호 110180
다음과 같은 수식을 질문답변을 통해 받았습니다.
Condition1 = MarketPosition == 0 and MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true;
Condition2 = MarketPosition == 0 and MarketPosition(1) == -1 and IsExitName("StopLoss",1) == true;
if marketposition(0) <= 0 and
crossup(c, ma(c, 5)) and
Condition1 == false then { buy("B", atmarket, def, 1); }
if marketposition(0) >=0 and
crossdown(c, ma(c, 10)) and
Condition2 == false then { sell("S", atmarket, def, 1); }
SetStopLoss(2.0, PointStop);
감사합니다.
위 시스템에서 한가지 더 질문사항이 있습니다.
선물거래에서 위의 시스템은 1계약으로 운영되는 시스템이고,
이번에는 1계약 더 피라미딩을 쌓으려고 합니다.
"B" 매수신호 발생 후 진입가격에서 4틱 상승 시 매수피라미딩으로 한계약 더 진입하고,
"S" 매도신호 발생 후 진입가격에서 4틱 하락 시 매도피라미딩으로 한계약 더 진입하도록 만들고 싶습니다.
진입은 AtStop으로 하고 싶습니다.
문제는 현재의 진입계약 수가 1계약이든, 피라미딩 진입이 있어 2계약이든,
첫진입에 관한 StopLoss가 발생할 경우 모두 청산하고 싶습니다.
즉, "B" 나 "S" 신호가 발생 후 피라미딩 진입이 발생하지 않더라도
StopLoss를 2.0 points 반대방향 움직임 시 발생시킵니다.
또한 "B" 나 "S" 신호 발생 후 피라미딩 진입이 발생하더라도,
"B" 나 "S"의 진입가격을 기준으로(피라미딩 진입가격 기준이 아닌)
2.0 points 반대방향 움직임 시 피라미딩까지 진입한 2계약 모두를 한꺼번에
StopLoss를 발생시켜 포지션을 청산하고 싶습니다.
예시로 부탁드립니다.
언제나 감사합니다.
답변 1
예스스탁 예스스탁 답변
2017-06-07 13:42:56
안녕하세요
예스스탁입니다.
Condition1 = MarketPosition == 0 and MarketPosition(1) == 1 and IsExitName("BL",1) == true;
Condition2 = MarketPosition == 0 and MarketPosition(1) == -1 and IsExitName("SL",1) == true;
if marketposition(0) <= 0 and
crossup(c, ma(c, 5)) and
Condition1 == false then { buy("B", atmarket, def, 1); }
if marketposition(0) >=0 and
crossdown(c, ma(c, 10)) and
Condition2 == false then { sell("S", atmarket, def, 1); }
if MarketPosition == 1 Then{
ExitLong("BL",AtStop,EntryPrice-2.0);
if MaxEntries == 1 then
buy("BB",AtStop,EntryPrice+PriceScale,1);
}
if MarketPosition == -1 Then{
ExitShort("SL",AtStop,EntryPrice-2.0);
if MaxEntries == 1 then
Sell("SS",AtStop,EntryPrice-PriceScale,1);
}
즐거운 하루되세요
> yanartas 님이 쓴 글입니다.
> 제목 : 질문입니다.
> 다음과 같은 수식을 질문답변을 통해 받았습니다.
Condition1 = MarketPosition == 0 and MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true;
Condition2 = MarketPosition == 0 and MarketPosition(1) == -1 and IsExitName("StopLoss",1) == true;
if marketposition(0) <= 0 and
crossup(c, ma(c, 5)) and
Condition1 == false then { buy("B", atmarket, def, 1); }
if marketposition(0) >=0 and
crossdown(c, ma(c, 10)) and
Condition2 == false then { sell("S", atmarket, def, 1); }
SetStopLoss(2.0, PointStop);
감사합니다.
위 시스템에서 한가지 더 질문사항이 있습니다.
선물거래에서 위의 시스템은 1계약으로 운영되는 시스템이고,
이번에는 1계약 더 피라미딩을 쌓으려고 합니다.
"B" 매수신호 발생 후 진입가격에서 4틱 상승 시 매수피라미딩으로 한계약 더 진입하고,
"S" 매도신호 발생 후 진입가격에서 4틱 하락 시 매도피라미딩으로 한계약 더 진입하도록 만들고 싶습니다.
진입은 AtStop으로 하고 싶습니다.
문제는 현재의 진입계약 수가 1계약이든, 피라미딩 진입이 있어 2계약이든,
첫진입에 관한 StopLoss가 발생할 경우 모두 청산하고 싶습니다.
즉, "B" 나 "S" 신호가 발생 후 피라미딩 진입이 발생하지 않더라도
StopLoss를 2.0 points 반대방향 움직임 시 발생시킵니다.
또한 "B" 나 "S" 신호 발생 후 피라미딩 진입이 발생하더라도,
"B" 나 "S"의 진입가격을 기준으로(피라미딩 진입가격 기준이 아닌)
2.0 points 반대방향 움직임 시 피라미딩까지 진입한 2계약 모두를 한꺼번에
StopLoss를 발생시켜 포지션을 청산하고 싶습니다.
예시로 부탁드립니다.
언제나 감사합니다.
다음글
이전글