OnTradeTransaction 백테스트에서 중지 트리거 감지 - 페이지 2

 
chinaski :

안녕하세요 항해사님.

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

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

도와 줘서 고마워.

여기서 손절매가 트리거됩니다.

2013.05.03 16:52 106 EURUSD 구입 ~에 0.01 1.31240 106 0.00 0.00 0.00 9 978.84
2013.05.03 18:35 107 EURUSD 팔다 밖으로 0.01 1.31040 107 0.00 0.00 -2.00 9 976.84 SL 1.31040

2013.05.07 18:45:27    Core 1    2013.05.03 18:35:40   trans=symbol=EURUSD price=1.3104000 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=107 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

 
angevoyageur :

여기서 손절매가 트리거됩니다.

2013.05.03 16:52 106 EURUSD 구입 ~에 0.01 1.31240 106 0.00 0.00 0.00 9 978.84
2013.05.03 18:35 107 EURUSD 팔다 밖으로 0.01 1.31040 107 0.00 0.00 -2.00 9 976.84 SL 1.31040

2013.05.07 18:45:27    Core 1    2013.05.03 18:35:40   trans=symbol=EURUSD price=1.3104000 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=107 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

여보세요,

그러나 이것은 out이 아닌 entry-type=IN입니다. ...

 
chinaski :

여보세요,

그러나 이것은 out이 아닌 entry-type=IN입니다. ...

아마도, 하지만 그럼에도 불구하고 그것은 당신의 sl이 방아쇠를 당겼습니다. 프로그램이 말하는 것을 종교적 으로 믿지 마십시오 ;-)
 
angevoyageur :
아마도, 하지만 그럼에도 불구하고 그것은 당신의 sl이 방아쇠를 당겼습니다. 프로그램이 말하는 것을 종교적 으로 믿지 마십시오 ;-)

당신 말이 맞아요, 반면에 내가 sl=0.0에 의존할 수 있고 tp=0.0은 이것이 중지 또는 목표 주문이고 sl과 tp가 (트랜잭션 구조에서) 단순히 놓친 것이 아니라는 것을 어떻게 알 수 있습니까?

 
chinaski :

다른 한편으로는 sl=0.0 및 tp=0.0에 의존할 수 있다는 것을 어떻게 알 수 있습니까? 이것은 이것이 중지 또는 목표 주문이며 sl 및 tp가 (트랜잭션 구조에서) 단순히 놓친 것이 아님을 의미합니다..?

구조에는 누락된 필드가 있을 수 없습니다. 이것은 거래( DEAL_TYPE_SELL )에 대한 거래입니다. 거래에는 SL/TP가 있을 수 없으므로 의미가 없습니다. SL(또는 TP)은 주문(일종의 특별 보류 주문)이며, 이 주문이 실행되면 거래가 발생합니다. 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
 
angevoyageur :

구조에는 누락된 필드가 있을 수 없습니다. 이것은 거래( DEAL_TYPE_SELL )에 대한 거래입니다. 거래에는 SL/TP가 있을 수 없으므로 의미가 없습니다. SL(또는 TP)은 주문(일종의 특별 보류 주문)이며, 이 주문이 실행되면 거래가 발생합니다. OnTradeTransaction 내에서 모든 것을 확인할 수 있습니다.

물론 구조 구성원을 의미하는 것이 아니라 값을 의미합니다.
 
chinaski :
물론 구조 구성원을 의미하는 것이 아니라 값을 의미합니다.
그래서 ? 조금 혼란스럽 습니다 . 그래도 도와드릴까요?
 
angevoyageur :
그래서 ? 조금 혼란스럽 습니다 . 그래도 도와드릴까요?

네, 도움이 되었습니다. 혼란스럽다은 무슨 뜻인가요? 항상 ENTRY_IN을 받는지 궁금합니다. 당신은 프로그램이 나에게 말하는 것을 절대 믿지 말라고 말했다. 내 말은 당신이 옳습니다. 따라서 sl=0.0 또는 tp=0.0(누락된 값)도 서버에서 실수할 수 있습니다. 값을 쓰는 것을 잊었습니다.

나에게 중요한 것은 어떤 트랜잭션이 스톱아웃인지 결정하기 위한 저장 방법입니다. MT는 훌륭하지만 많은 면에서 혼란스럽고 일반적으로 이 경우와 같이 예상한 대로 하지 않습니다.

내가 뭐라는지 알 겠어 ?

 
chinaski :

네, 도움이 되었습니다. 혼란스럽다은 무슨 뜻인가요? 항상 ENTRY_IN을 받는지 궁금합니다. 당신은 프로그램이 나에게 말하는 것을 절대 믿지 말라고 말했다. 내 말은 당신이 옳습니다. 따라서 sl=0.0 또는 tp=0.0(누락된 값)도 서버에서 실수할 수 있습니다. 값을 쓰는 것을 잊었습니다.

나에게 중요한 것은 어떤 트랜잭션이 스톱아웃인지 결정하기 위한 저장 방법입니다. MT는 훌륭하지만 많은 면에서 혼란스럽고 일반적으로 이 경우와 같이 예상한 대로 하지 않습니다.

내가 뭐라는지 알 겠어 ?

헷갈리는 건 에요 ;-) 많은 과목읽고 답을 씁니다. 나는 당신이 말한 것을 이해 합니다 . MT4 로 습관 바꿀 수 있어야 합니다 .
 
chinaski :

네, 도움이 되었습니다. 혼란스럽다은 무슨 뜻인가요? 항상 ENTRY_IN을 받는지 궁금합니다. 당신은 프로그램이 나에게 말하는 것을 절대 믿지 말라고 말했다. 내 말은 당신이 옳습니다. 따라서 sl=0.0 또는 tp=0.0(누락된 값)도 서버에서 실수할 수 있습니다. 값을 쓰는 것을 잊었습니다.

나에게 중요한 것은 어떤 트랜잭션이 stop out인지를 결정하는 save 메소드 입니다. MT는 훌륭하지만 많은 면에서 혼란스럽고 일반적으로 이 경우와 같이 예상한 대로 하지 않습니다.

내가 뭐라는지 알 겠어 ?

나는 확인했다. SL/TP가 트리거되면 다음과 같은 트랜잭션이 발생합니다.

  1. SL 및 TP가 설정된 TRADE_TRANSACTION_POSITION(그러나 아직 거래 없음),
  2. TRADE_TRANSACTION_DEAL_ADD

TRADE_TRANSACTION_POSITION

거래 실행과 관련이 없는 위치 변경. 이 유형의 거래는 거래 서버 측에서 위치가 변경되었음을 나타냅니다. 포지션 거래량, 오픈 가격, 손절매 및 이익실현 수준을 변경할 수 있습니다. 변경 사항에 대한 데이터는 OnTradeTransaction 핸들러를 통해 MqlTradeTransaction 구조로 제출됩니다. 딜 실행에 따른 포지션 변경(추가, 변경, 마감)은 TRADE_TRANSACTION_POSITION 트랜잭션의 발생으로 이어지지 않습니다.

사유: