커뮤니티

질문입니다.

프로필 이미지
yanartas
2017-05-29 12:02:46
94
글번호 109909
답변완료
예를들어 선물거래에서 if crossup(c, ma(5)) then buy("+A", atmarket, def, 1); if crossdown(c, ma(5)) then sell("-A", atmarket, def, 1); if crossup(c, ma(10)) then buy("+B", atmarket, def, 1); if crossdown(c, ma(10)) then sell("-B", atmarket, def, 1); 이라는 시스템이 있다고 가정할때, 여기에 stoplose를 추가하고자 합니다. stoplose는 진입 후 반대방향으로 0.5pt 움직이면 포지션을 청산하라는 것입니다. 그리고 해당 포지션이 청산되면, 다른 종류의 진입신호가 발생하기 전까지 청산된 신호로 재진입하는 일이 없도록 하고 싶습니다. 예를들어 +A 신호 발생 후 +A 신호에 관한 stoplose가 발생했다면, 이 후 진입은 -A, +B, -B 중 하나가 발생했을 때 진입하고, +A는 다시 이루어지지 않게 하고 싶습니다. 예시로 부탁드립니다. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-05-30 10:36:34

안녕하세요 예스스탁입니다. var : Bcond1(False),Scond1(False),Bcond2(False),Scond2(False); Bcond1 = MarketPosition == 0 and MarketPosition(1) == 1 and IsEntryName("+A",1); Scond1 = MarketPosition == 0 and MarketPosition(1) == -1 and IsEntryName("-A",1); Bcond2 = MarketPosition == 0 and MarketPosition(1) == 1 and IsEntryName("+B",1); Scond2 = MarketPosition == 0 and MarketPosition(1) == -1 and IsEntryName("-B",1); if Bcond1 == false and crossup(c, ma(c,5)) then buy("+A", atmarket, def, 1); if Scond1 == false and crossdown(c, ma(c,5)) then sell("-A", atmarket, def, 1); if Bcond2 == false and crossup(c, ma(c,10)) then buy("+B", atmarket, def, 1); if Scond2 == false and crossdown(c, ma(c,10)) then sell("-B", atmarket, def, 1); 즐거운 하루되세요 > yanartas 님이 쓴 글입니다. > 제목 : 질문입니다. > 예를들어 선물거래에서 if crossup(c, ma(5)) then buy("+A", atmarket, def, 1); if crossdown(c, ma(5)) then sell("-A", atmarket, def, 1); if crossup(c, ma(10)) then buy("+B", atmarket, def, 1); if crossdown(c, ma(10)) then sell("-B", atmarket, def, 1); 이라는 시스템이 있다고 가정할때, 여기에 stoplose를 추가하고자 합니다. stoplose는 진입 후 반대방향으로 0.5pt 움직이면 포지션을 청산하라는 것입니다. 그리고 해당 포지션이 청산되면, 다른 종류의 진입신호가 발생하기 전까지 청산된 신호로 재진입하는 일이 없도록 하고 싶습니다. 예를들어 +A 신호 발생 후 +A 신호에 관한 stoplose가 발생했다면, 이 후 진입은 -A, +B, -B 중 하나가 발생했을 때 진입하고, +A는 다시 이루어지지 않게 하고 싶습니다. 예시로 부탁드립니다. 감사합니다.