OnTradeTransaction 백테스트에서 중지 트리거 감지

 

여보세요,

내 EA에서 중지 실행을 감지하려고 합니다. 불행히도 MqlTradeTransaction이 제공한 DEAL_ENTRY_IN만 OnTradeTransaction 전달되었습니다.

이것은 백테스트에서만 해당되는 것 같습니다.

가격 및 (부분) 이익과 함께 백테스트에서 트리거된 중지를 안정적으로 감지하는 방법을 아는 사람이 있습니까?

고맙습니다

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties - Documentation on MQL5
 
chinaski :

여보세요,

내 EA에서 중지 실행을 감지하려고 합니다. 불행히도 MqlTradeTransaction이 제공한 DEAL_ENTRY_IN만 OnTradeTransaction 전달되었습니다.

이것은 백테스트에서만 해당되는 것 같습니다.

가격 및 (부분) 이익과 함께 백테스트에서 트리거된 중지를 안정적으로 감지하는 방법을 아는 사람이 있습니까?

고맙습니다

OnTradeTransaction에서 다음을 확인해야 합니다.

trans.order_state = ORDER_STATE_PLACED ;

다음과 같은 다른 거래가 뒤따랐습니다.

trans.type = TRADE_TRANSACTION_DEAL_ADD ;
 
angevoyageur :

OnTradeTransaction에서 다음을 확인해야 합니다.

다음과 같은 다른 거래가 뒤따랐습니다.

안녕하세요 엔지보이저입니다.

내 덤프를 봐주세요. 이 덤프는 모든 트랜잭션을 파일로 인쇄합니다. 내 EA는 매우 간단합니다. 스톱 및 타겟과 함께 매수 또는 매도합니다. 불행히도 로그에서 트랜잭션을 찾을 수 없습니다.

트리거된 중지 또는 대상과 관련이 있습니다.

 20130507 00 : 26 : 59 : 672 entry short at 1.32176 <- entry short
20130507 00 : 26 : 59 : 672 symbol=EURUSD price= 1.3217600 volume= 0.01 sl= 1.3229200 tp= 1.3202000 order= 2 deal= 2 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type= DEAL_TYPE_SELL type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 672 symbol=EURUSD price= 1.3217600 volume= 0.01 sl= 1.3229200 tp= 1.3202000 order= 2 deal= 0 entry-type=IN trans-type=ORDER_DELETE order_type=SELL deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 672 symbol=EURUSD price= 1.3217600 volume= 0.00 sl= 1.3229200 tp= 1.3202000 order= 2 deal= 0 entry-type=IN trans-type=HISTORY_ADD order_type=SELL deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 672 symbol= price= 0.0000000 volume= 0.00 sl= 0.0000000 tp= 0.0000000 order= 0 deal= 0 entry-type=IN trans-type=REQUEST order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00

/// before the entry long, the stop or target of entry short should be triggerd.
/// The EA does not allow to enter new trade before latest is closed, simply by check current positions for symbol before open an entry tradde.

20130507 00 : 26 : 59 : 674 entry long at 1.32140 <- entry long
20130507 00 : 26 : 59 : 674 symbol=EURUSD price= 1.3214000 volume= 0.01 sl= 1.3200900 tp= 1.3231100 order= 3 deal= 3 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 674 symbol=EURUSD price= 1.3214000 volume= 0.01 sl= 1.3200900 tp= 1.3231100 order= 3 deal= 0 entry-type=IN trans-type=ORDER_DELETE order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 674 symbol=EURUSD price= 1.3214000 volume= 0.00 sl= 1.3200900 tp= 1.3231100 order= 3 deal= 0 entry-type=IN trans-type=HISTORY_ADD order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 674 symbol= price= 0.0000000 volume= 0.00 sl= 0.0000000 tp= 0.0000000 order= 0 deal= 0 entry-type=IN trans-type=REQUEST order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00

/// As you can see, my entry short shows transaction BUY, SELL, SELL what ever the purpose of this confusing transactions is.
/// No a bit about stop or target orders

그렇다면 stop 및 target 의 트랜잭션을 얻는 방법은 무엇입니까? 나는 여기서 백테스트 에 대해 이야기합니다. 이것이 실제 조건에서도 해당되는지 확실하지 않습니다.

 
chinaski :

안녕하세요 엔지보이저입니다.

내 덤프를 봐주세요. 이 덤프는 모든 트랜잭션을 파일로 인쇄합니다. 내 EA는 매우 간단합니다. 스톱 및 타겟과 함께 매수 또는 매도합니다. 불행히도 로그에서 트랜잭션을 찾을 수 없습니다.

트리거된 중지 또는 대상과 관련이 있습니다.

그렇다면 stop 및 target의 트랜잭션을 얻는 방법은 무엇입니까? 나는 여기서 백테스트에 대해 이야기합니다. 이것이 실제 조건에서도 해당되는지 확실하지 않습니다.

네, 죄송합니다. 첫 번째 질문을 잘못 이해했습니다. "트리거된 중지"라고 했을 때 보류 중인 주문(구매 중지 또는 판매 중지)을 생각하고 있었습니다.

트랜잭션을 모니터링해야 합니까? 한 번에 하나의 거래만 하는 경우 PositionSelect (_Symbol)를 사용하여 열린 위치를 간단히 확인할 수 있습니다.

 
angevoyageur :

네, 죄송합니다. 첫 번째 질문을 잘못 이해했습니다. "트리거된 중지"라고 했을 때 보류 중인 주문(구매 중지 또는 판매 중지)을 생각하고 있었습니다.

거래를 모니터링해야 합니까? 한 번에 하나의 거래만 하는 경우 PositionSelect (_Symbol)를 사용하여 열린 포지션을 간단히 확인할 수 있습니다.

여보세요,

포지션이 열려 있는지 확인하기 위해 나는 이미 이것을 한다.CPositionInfo.Select.

그러나 일단 중지 또는 목표가 트리거되면 실행된 중지 또는 목표 가격을 얻는 방법은 무엇입니까? 현명한 방법이 있습니까?

 
chinaski :

여보세요,

포지션이 열려 있는지 확인하기 위해 나는 이미 이것을 한다.CPositionInfo.Select.

그러나 일단 중지 또는 목표가 트리거되면 실행된 중지 또는 목표 가격을 얻는 방법은 무엇입니까? 현명한 방법이 있습니까?

거래 내역을 확인 하지 않으시겠습니까?
 
angevoyageur :
거래 내역을 확인하지 않으시겠습니까?

좀 더 자세히 알려주실 수 있으신가요? 실행 중지 또는 목표 가격이 필요합니다. 트리거된 대상 또는 중지의 거래 ID 또는 티켓이 없습니다(트랜잭션으로 전달되지 않음).

기록은 DEAL_PRICE 를 제공하지만 거래 번호 또는 티켓이 필요합니다. 어떤 티켓이나 거래를 할 것인가? 고맙습니다.  

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties - Documentation on MQL5
 
chinaski :

더 자세히 알려주실 수 있나요? 실행 중지 또는 목표 가격이 필요합니다. 트리거된 대상 또는 중지의 거래 ID 또는 티켓이 없습니다(트랜잭션으로 전달되지 않음).

기록은 DEAL_PRICE 를 제공하지만 거래 번호 또는 티켓이 필요합니다. 어떤 티켓이나 거래를 할 것인가? 고맙습니다.  

sl 또는 tp가 트리거되면 거래의 반대쪽에 추가된 거래가 있습니다. 예를 들어, BUY 0.25 랏의 열린 포지션이 있습니다. 귀하의 sl/tp가 트리거되면 SELL 유형의 거래가 발생하고 OnTradeTransaction을 사용하여 이를 모니터링하거나 포지션이 마감되었음을 알게 되면 거래 내역을 간단히 확인할 수 있습니다.

여기에서 코드 예제를 참조하십시오.

 
angevoyageur :

sl 또는 tp가 트리거되면 거래의 반대쪽에 추가된 거래가 있습니다. 예를 들어, BUY 0.25 랏의 열린 포지션이 있습니다. 귀하의 sl/tp가 트리거되면 SELL 유형의 거래가 발생하고 OnTradeTransaction을 사용하여 이를 모니터링하거나 포지션이 마감되었음을 알게 되면 거래 내역을 간단히 확인할 수 있습니다.

여기에서 코드 예제를 참조하십시오.

안녕하세요 angev님

이것은 내 문제입니다. 분명히 OnTradeTransaction을 사용할 수 없습니다. 위의 내 로그를 참조하십시오. 스톱 또는 목표 주문이 나열되지 않으므로 중지 또는 목표와 관련된 거래가 실행되지 않습니다. OnTradeTransaction에 전달된 각 트랜잭션에 대해 덤프가 생성됩니다.

다시, 나는 백테스트에 대해 이야기한다.

 
chinaski :

안녕하세요 angev님

이것은 내 문제입니다. 분명히 OnTradeTransaction을 사용할 수 없습니다. 위의 내 로그를 참조하십시오. 스톱 또는 목표 주문이 나열되지 않으므로 중지 또는 목표와 관련된 거래가 실행되지 않습니다. OnTradeTransaction에 전달된 각 트랜잭션에 대해 덤프가 생성됩니다.

다시, 나는 백테스트에 대해 이야기한다.

내가 할 수 있는 일은 당신이 코드를 제공한다면 당신의 코드를 테스트하는 것뿐이라고 생각합니다. 나는 그런 문제가 없습니다.
 
angevoyageur :
내가 할 수 있는 일은 당신이 코드를 제공한다면 당신의 코드를 테스트하는 것뿐이라고 생각합니다. 나는 그런 문제가 없습니다.

안녕하세요 항해사님.

문제를 보여주는 간단한 EA가 첨부되어 있습니다. EA는 스톱 및 타겟과 함께 길게 열리고 그 다음에는 숏, 그 다음에는 롱 등으로 열립니다.

덤프 메소드도 포함되어 있습니다. 1주일에 EUR.USD 1분을 적용하고 백테스트 로그에서 트랜잭션 덤프를 확인하십시오.

도와 줘서 고마워.

파일:
tc_ea_trans.mq5  11 kb