커뮤니티

익절후 재진입 방지

프로필 이미지
민현종
2022-12-27 17:13:44
1610
글번호 164906
답변완료

첨부 이미지

다음 세 가지 조건으로 거래를 하려고 합니다 1) COND1 +1 / -1 신호 발생시 매수 / 매도 2) 3% 이익발생시 매수익절 / 매도익절 3) 매수익절 / 매도익절 후에는 항상 COND1 신호에 따라 반대로만 진입 (매도 / 매수) 이를 위해 다음 수식을 작성하였습니다. If IsExitName("EL", 1) == False AND IsExitName("ES", 1) == False Then Begin If COND1 == 1 Then Buy("B1"); If COND1 == -1 Then Sell("S1"); End If MarketPosition == 1 AND IsEntryName("B1") == True AND C > EntryPrice * 1.03 Then ExitLong("EL"); If MarketPosition == -1 AND IsEntryName("S1") == True AND C < EntryPrice * 0.97 Then ExitShort("ES"); If IsExitName("EL") Then Begin If COND1 == -1 Then Sell("S2"); End If IsExitName("ES") Then Begin If COND1 == 1 Then Buy("B2"); End 이를 그대로 적용했더니 이런 오류가 생깁니다 (청산후에 거래가 없음) 참고로 익절 이후 관련된 부분을 다음 식을 사용해봐도 오류가 생깁니다. (S2로 재진입후 청산. 똑같이 청산후에 거래없음) Condition1 = MarketPosition(1) == 1 and IsExitName("EL",1) == true; Condition2 = MarketPosition(1) == -1 and IsExitName("ES",1) == true; if Condition1 == false and COND1 == 1 Then buy("B2"); if Condition2 == false and COND1 == -1 Then sell("S2");
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2022-12-28 11:22:18

안녕하세요 예스스탁입니다. Condition1 = MarketPosition == 0 and IsExitName("EL") == true; Condition2 = MarketPosition == 0 and IsExitName("ES") == true; If Condition1 == False and COND1 == 1 Then Buy("B1"); If Condition2 == False and COND1 == -1 Then Sell("S1"); If MarketPosition == 1 AND IsEntryName("B1") == True AND C > EntryPrice * 1.03 Then ExitLong("EL"); If MarketPosition == -1 AND IsEntryName("S1") == True AND C < EntryPrice * 0.97 Then ExitShort("ES"); 즐거운 하루되세요 > 민현종 님이 쓴 글입니다. > 제목 : 익절후 재진입 방지 > 다음 세 가지 조건으로 거래를 하려고 합니다 1) COND1 +1 / -1 신호 발생시 매수 / 매도 2) 3% 이익발생시 매수익절 / 매도익절 3) 매수익절 / 매도익절 후에는 항상 COND1 신호에 따라 반대로만 진입 (매도 / 매수) 이를 위해 다음 수식을 작성하였습니다. If IsExitName("EL", 1) == False AND IsExitName("ES", 1) == False Then Begin If COND1 == 1 Then Buy("B1"); If COND1 == -1 Then Sell("S1"); End If MarketPosition == 1 AND IsEntryName("B1") == True AND C > EntryPrice * 1.03 Then ExitLong("EL"); If MarketPosition == -1 AND IsEntryName("S1") == True AND C < EntryPrice * 0.97 Then ExitShort("ES"); If IsExitName("EL") Then Begin If COND1 == -1 Then Sell("S2"); End If IsExitName("ES") Then Begin If COND1 == 1 Then Buy("B2"); End 이를 그대로 적용했더니 이런 오류가 생깁니다 (청산후에 거래가 없음) 참고로 익절 이후 관련된 부분을 다음 식을 사용해봐도 오류가 생깁니다. (S2로 재진입후 청산. 똑같이 청산후에 거래없음) Condition1 = MarketPosition(1) == 1 and IsExitName("EL",1) == true; Condition2 = MarketPosition(1) == -1 and IsExitName("ES",1) == true; if Condition1 == false and COND1 == 1 Then buy("B2"); if Condition2 == false and COND1 == -1 Then sell("S2");
프로필 이미지

민현종

2022-12-28 12:02:20

주신 수식으로도 문제가 지속되어 다르게 적용해보았지만 문제가 지속됩니다. 설정하려는 트레이딩 조건은 다음과 같습니다. 1) 매수익절 후 매수진입X 매도진입O 2) 매도익절 후 매수진입O 매수진입X 지금 수식으로는 매수익절 후 매수진입, 매도익절 후 매도진입이 지속됩니다. 그리고 매수익절 후 같은 시간에 매수/매수익절을 한 번 더 하는거로 나오는데 (매도익절도 동일) 이것도 솔루션 제안 부탁드립니다. //거래식 Condition1 = MarketPosition == 0 and IsExitName("EL") == true; Condition2 = MarketPosition == 0 and IsExitName("ES") == true; If (Condition1 == False and COND1 == 1) or (Condition2 == True and COND1 == 1) Then Buy("B1"); If (Condition2 == False and COND1 == -1) or (Condition1 == True and COND1 == -1) Then Sell("S1"); If MarketPosition == 1 AND IsEntryName("B1") == True AND C > EntryPrice * 1.03 Then ExitLong("EL"); If MarketPosition == -1 AND IsEntryName("S1") == True AND C < EntryPrice * 0.97 Then ExitShort("ES"); > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 익절후 재진입 방지 > 안녕하세요 예스스탁입니다. Condition1 = MarketPosition == 0 and IsExitName("EL") == true; Condition2 = MarketPosition == 0 and IsExitName("ES") == true; If Condition1 == False and COND1 == 1 Then Buy("B1"); If Condition2 == False and COND1 == -1 Then Sell("S1"); If MarketPosition == 1 AND IsEntryName("B1") == True AND C > EntryPrice * 1.03 Then ExitLong("EL"); If MarketPosition == -1 AND IsEntryName("S1") == True AND C < EntryPrice * 0.97 Then ExitShort("ES"); 즐거운 하루되세요 > 민현종 님이 쓴 글입니다. > 제목 : 익절후 재진입 방지 > 다음 세 가지 조건으로 거래를 하려고 합니다 1) COND1 +1 / -1 신호 발생시 매수 / 매도 2) 3% 이익발생시 매수익절 / 매도익절 3) 매수익절 / 매도익절 후에는 항상 COND1 신호에 따라 반대로만 진입 (매도 / 매수) 이를 위해 다음 수식을 작성하였습니다. If IsExitName("EL", 1) == False AND IsExitName("ES", 1) == False Then Begin If COND1 == 1 Then Buy("B1"); If COND1 == -1 Then Sell("S1"); End If MarketPosition == 1 AND IsEntryName("B1") == True AND C > EntryPrice * 1.03 Then ExitLong("EL"); If MarketPosition == -1 AND IsEntryName("S1") == True AND C < EntryPrice * 0.97 Then ExitShort("ES"); If IsExitName("EL") Then Begin If COND1 == -1 Then Sell("S2"); End If IsExitName("ES") Then Begin If COND1 == 1 Then Buy("B2"); End 이를 그대로 적용했더니 이런 오류가 생깁니다 (청산후에 거래가 없음) 참고로 익절 이후 관련된 부분을 다음 식을 사용해봐도 오류가 생깁니다. (S2로 재진입후 청산. 똑같이 청산후에 거래없음) Condition1 = MarketPosition(1) == 1 and IsExitName("EL",1) == true; Condition2 = MarketPosition(1) == -1 and IsExitName("ES",1) == true; if Condition1 == false and COND1 == 1 Then buy("B2"); if Condition2 == false and COND1 == -1 Then sell("S2");