커뮤니티

질문입니다.

프로필 이미지
yanartas
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를 발생시켜 포지션을 청산하고 싶습니다. 예시로 부탁드립니다. 언제나 감사합니다.