첨부 이미지
그림1
그림2
다음 세 가지 조건으로 거래를 하려고 합니다
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");
주신 수식으로도 문제가 지속되어 다르게 적용해보았지만 문제가 지속됩니다.
설정하려는 트레이딩 조건은 다음과 같습니다.
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");