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

 
angevoyageur :

따라서 우리는 백 테스팅에 대해서만 이야기하고 있습니다. 내 자신의 코드로 테스트했으며 중지가 트리거될 때 3개의 트랜잭션을 얻습니다.

2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_DEAL_ADD(6)
2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_ORDER_DELETE(2)
2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_HISTORY_ADD(3)

DEAL_ADD를 사용하면 거래 가격을 알 수 있으므로 제 경우에는 SL입니다. 모든 것이 나에게 맞는 것 같습니다. 사용하는 코드, 백테스트 로그(파일로) 및 전략 테스터 설정의 스크린샷을 보내주시기 바랍니다. 그러면 귀하와 똑같은 테스트를 재현하고 결과를 분석할 수 있습니다. 원하는 경우 저에게 PM을 보낼 수 있습니다.

여보세요,

실행된 중지 또는 목표 가격이 정확히 어디에 저장되는지 알려주실 수 있습니까?

a) MqlTradeTransaction

b) MqlTradeRequest

c) MqlTradeResult

회원님과 함께. MetaTrader 서버는 무엇입니까?

고맙습니다

Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure - Documentation on MQL5
 
angevoyageur :

따라서 우리는 백 테스팅에 대해서만 이야기하고 있습니다. 내 자신의 코드로 테스트했으며 중지가 트리거될 때 3개의 트랜잭션을 얻습니다.

2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_DEAL_ADD(6)
2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_ORDER_DELETE(2)
2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_HISTORY_ADD(3)

DEAL_ADD를 사용하면 거래 가격을 알 수 있으므로 제 경우에는 SL입니다. 모든 것이 나에게 맞는 것 같습니다. 사용하는 코드, 백테스트 로그(파일로) 및 전략 테스터 설정의 스크린샷을 보내주시기 바랍니다. 그러면 귀하와 똑같은 테스트를 재현하고 결과를 분석할 수 있습니다. 원하는 경우 저에게 PM을 보낼 수 있습니다.

TRADE_TRANSACTION_DEAL_ADD 및 MqlTradeTransaction .price를 의미하는 경우 이 가격은 항상 0입니다.

TRADE_TRANSACTION_DEAL_ADD를 필터링하지 않아도 참가 주문이 발송된 후 가격은 항상 0입니다.

나는 사용한다

CTrade.Buy(...)   // place entry

그리고

CTrade.PositionModify // to attach stop and target

그리고

 void OnTradeTransaction ( const MqlTradeTransaction & trans,
                         const MqlTradeRequest & request,
                         const MqlTradeResult & result)
  {
...
}

거래를 잡기 위해.

 
chinaski :

TRADE_TRANSACTION_DEAL_ADD 및 MqlTradeTransaction.price를 의미하는 경우 이 가격은 항상 0 입니다.

TRADE_TRANSACTION_DEAL_ADD를 필터링하지 않아도 참가 주문이 발송된 후 가격은 항상 0입니다.

나는 사용한다

그리고

그리고

거래를 잡기 위해.

이것은 MqlTradeTransaction .price와 관련이 있으며 항상 0은 아닙니다.

 2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    stop loss triggered buy 0.10 EURUSD 1.30163 sl: 1.29663 tp: 1.30663 [ # 47 sell 0.10 EURUSD at 1.29663 ]
2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    deal # 47 sell 0.10 EURUSD at 1.29663 done (based on order # 47 )
2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    deal performed [ # 47 sell 0.10 EURUSD at 1.29663 ]
2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    order performed sell 0.10 at 1.29663 [ # 47 sell 0.10 EURUSD at 1.29663 ]
2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    ----------------TRANSACTION START---------------------------
2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    Symbol : EURUSD  event : TRADE_TRANSACTION_DEAL_ADD ( 6 )
2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    Order # 47    type : ORDER_TYPE_BUY ( 0 )  state : ORDER_STATE_STARTED ( 0 )
2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    Deal # 47 type : DEAL_TYPE_SELL ( 1 )
2013.05 . 15 10 : 22 : 27      Core 1    2013.05 . 10 16 : 20 : 37    Price = 1.29663 Volume = 0.1 SL = 0.0 TP = 0.0 Activation price = 0.0

결과에 이상한 점이 있지만 제공한 코드로 무엇을 볼 수 없습니다.

 

다음은 EA tc_ea_trans에 대한 로그입니다.

 2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    take profit triggered buy 0.01 EURUSD 1.31553 sl: 1.31503 tp: 1.31603 [ # 331 sell 0.01 EURUSD at 1.31603 ]
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    deal # 331 sell 0.01 EURUSD at 1.31603 done (based on order # 331 )
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    deal performed [ # 331 sell 0.01 EURUSD at 1.31603 ]
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    order performed sell 0.01 at 1.31603 [ # 331 sell 0.01 EURUSD at 1.31603 ]
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    price corrected from 1.31609 to 1.31604 , deviation: 10 (instant sell 0.01 EURUSD at 1.31609 sl: 1.31659 tp: 1.31559 )( 1.31604 / 1.31609 / 1.31604 )
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    instant sell 0.01 EURUSD at 1.31604 sl: 1.31659 tp: 1.31559 ( 1.31604 / 1.31609 / 1.31604 )
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    deal # 332 sell 0.01 EURUSD at 1.31604 done (based on order # 332 )
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    deal performed [ # 332 sell 0.01 EURUSD at 1.31604 ]
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    order performed sell 0.01 at 1.31604 [ # 332 sell 0.01 EURUSD at 1.31604 ]
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    CTrade:: OrderSend : instant sell 0.01 EURUSD at 1.31609 sl: 1.31659 tp: 1.31559 [done at 1.31604 ]
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    TRADE_TRANSACTION_DEAL_ADD
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    trans=symbol=EURUSD price= 1.31603 00 volume= 0.01 sl= 0.0000000 tp= 0.0000000 order= 331 deal= 331 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
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    TRADE_TRANSACTION_ORDER_DELETE
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    trans=symbol=EURUSD price= 1.3160300 volume= 0.01 sl= 0.0000000 tp= 0.0000000 order= 331 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 prof
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    TRADE_TRANSACTION_HISTORY_ADD
2013.05 . 15 18 : 43 : 48      Core 1    2013.05 . 02 08 : 39 : 15    trans=symbol=EURUSD price= 1.3160300 volume= 0.00 sl= 0.0000000 tp= 0.0000000 order= 331 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 profi
 

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

간단한 EA에 다시 첨부 찾기. 이것은 그것을 보여주어야 합니다. 그것은 단지 엄격한 중지 및 목표(입력 매개변수)로 주문하고 각 트랜잭션을 기록합니다.

도움을 주셔서 감사합니다.

(아마도 입력 거래를 보여줄 수도 있습니다)

mt-server ip도 알려주시겠습니까?

파일:
tc_ea_trans.mq5  11 kb
 
chinaski :

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

간단한 EA에 다시 첨부 찾기. 이것은 그것을 보여주어야 합니다. 그것은 단지 엄격한 중지 및 목표(입력 매개변수)로 주문하고 각 트랜잭션을 기록합니다.

도움을 주셔서 감사합니다.

(아마도 입력 거래를 보여줄 수도 있습니다)

mt-server ip도 알려주시겠습니까?

방금 게시한 EA를 사용하고 있습니다. MQ 데모, 유럽 액세스 포인트. 다음을 사용하여 백테스트:


로그에서 임의의 발췌문을 가져옵니다.

 2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    take profit triggered buy 0.01 EURUSD 1.31751 sl: 1.31681 tp: 1.31821 [ # 107 sell 0.01 EURUSD at 1.31821 ]
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    deal # 107 sell 0.01 EURUSD at 1.31821 done (based on order # 107 )
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    deal performed [ # 107 sell 0.01 EURUSD at 1.31821 ]
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    order performed sell 0.01 at 1.31821 [ # 107 sell 0.01 EURUSD at 1.31821 ]
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    requote 1.31823 / 1.31836 / 1.31823 (instant sell 0.01 EURUSD at 1.31836 sl: 1.31906 tp: 1.31766 )
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    CTrade:: OrderSend : instant sell 0.01 EURUSD at 1.31836 sl: 1.31906 tp: 1.31766 [requote ( 1.31823 / 1.31836 )]
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    instant buy 0.01 EURUSD at 1.31840 sl: 1.31770 tp: 1.31910 ( 1.31827 / 1.31840 / 1.31827 )
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    deal # 108 buy 0.01 EURUSD at 1.31840 done (based on order # 108 )
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    deal performed [ # 108 buy 0.01 EURUSD at 1.31840 ]
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    order performed buy 0.01 at 1.31840 [ # 108 buy 0.01 EURUSD at 1.31840 ]
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    CTrade:: OrderSend : instant buy 0.01 EURUSD at 1.31840 sl: 1.31770 tp: 1.31910 [done at 1.31840 ]
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    trans=symbol=EURUSD price= 1.31821 00 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
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    trans=symbol=EURUSD price= 1.3182100 volume= 0.01 sl= 0.0000000 tp= 0.0000000 order= 107 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 prof
2013.05 . 15 21 : 54 : 11      Core 1    2013.05 . 01 20 : 02 : 15    trans=symbol=EURUSD price= 1.3182100 volume= 0.00 sl= 0.0000000 tp= 0.0000000 order= 107 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 profi

따라서 SL/TP가 트리거되는 것을 감지하는 데 여전히 문제가 있습니까?

파일:
 
angevoyageur :

방금 게시한 EA를 사용하고 있습니다. MQ 데모, 유럽 액세스 포인트. 다음을 사용하여 백테스트:


로그에서 임의의 발췌문을 가져옵니다.

그렇다면 여전히 트리거된 SL/TP를 감지하는 데 문제가 있습니까?

오. 알겠습니다. 어제 내 달리기에 맹세할 수 있었습니다. 그런 가격은 없었습니다. 백테스트 로그에서 이 가격에 대한 텍스트 검색을 했습니다.

하지만 지금은 logentry 이후에 이 거래를 볼 수 있습니다.

"차익실현 "

내 마지막 실행에서도 실행 가격과 함께.

시간이 걸리는 점에 대해 사과드립니다.

 
chinaski :

오. 알겠습니다. 어제 내 달리기에 맹세할 수 있었습니다. 그런 가격은 없었습니다. 백테스트 로그에서 이 가격에 대한 텍스트 검색을 했습니다.

하지만 지금은 logentry 이후에 이 거래를 볼 수 있습니다.

...
제가 제공한 로그는 Viewer에서 가져온 것으로, Strategy Tester Journal 탭에서 직접 읽어 보면 역순 으로 표시됩니다 .
 
angevoyageur :
제가 제공한 로그는 Viewer에서 가져온 것으로, Strategy Tester Journal 탭에서 직접 읽어 보면 역순 으로 표시됩니다 .
나는 보통 backtest log-tab에서 로그 파일을 엽니다. 여기서 순서는 위에서 아래로입니다. 따라서 실제로 거래가 발생하기 전에 가격을 나타내는 로엔트리가 작성됩니다.
 

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

" 액세스 포인트 유럽. 백테스팅 : "

이 서버의 완전한 IP를 알려주실 수 있습니까?

사유: