Ticket da venda diferente ao de compra

 

Olá, pessoal.

Comecei a testar meu robô hoje e percebi a seguinte situação no meu log do MT5:

2018.10.22 09:08:19.257 Experts expert MinhaEstrategia2 (WINZ18,M1) loaded successfully
2018.10.22 09:08:21.454 Trades  '123456': buy stop 10.00 WINZ18 at 85840 sl: 85745
2018.10.22 09:08:21.493 Trades  '123456': accepted buy stop 10.00 WINZ18 at 85840 sl: 85745
2018.10.22 09:08:21.493 Trades  '123456': order #109585829 buy stop 10.00 / 10.00 WINZ18 at market done in 39.020 ms
2018.10.22 09:08:51.361 Trades  '123456': cancel order #109585829 buy stop 10.00 WINZ18 at 85840 sl: 85745
2018.10.22 09:08:51.398 Trades  '123456': accepted cancel order #109585829 buy stop 10.00 WINZ18 at 85840 sl: 85745
2018.10.22 09:08:51.400 Trades  '123456': cancel #109585829 buy stop 10.00 WINZ18 at market done in 39.060 ms
2018.10.22 10:18:02.620 Trades  '123456': buy stop 10.00 WINZ18 at 86185 sl: 86090
2018.10.22 10:18:04.543 Trades  '123456': accepted buy stop 10.00 WINZ18 at 86185 sl: 86090
2018.10.22 10:18:04.789 Trades  '123456': order #109629895 buy stop 10.00 / 10.00 WINZ18 at market done in 2169.694 ms
2018.10.22 10:18:07.907 Trades  '123456': deal #83450978 buy 10.00 WINZ18 at 86185 done (based on order #109629895)
2018.10.22 10:20:00.547 Trades  '123456': modify #109629895 buy 10.00 WINZ18 sl: 86090, tp: 0 -> sl: 86190, tp: 0
2018.10.22 10:21:24.557 Trades  '123456': accepted modify #109629895 buy 10.00 WINZ18 sl: 86090, tp: 0 -> sl: 86190, tp: 0
2018.10.22 10:22:10.623 Trades  '123456': modify #109629895 buy 10.00 WINZ18 -> sl: 86190, tp: 0 done in 130095.237 ms
2018.10.22 10:22:10.757 Trades  '123456': modify #109629895 buy 10.00 WINZ18 sl: 86190, tp: 0 -> sl: 86215, tp: 0
2018.10.22 10:22:10.856 Trades  '123456': accepted modify #109629895 buy 10.00 WINZ18 sl: 86190, tp: 0 -> sl: 86215, tp: 0
2018.10.22 10:22:48.113 Trades  '123456': modify #109629895 buy 10.00 WINZ18 -> sl: 86215, tp: 0 done in 37361.704 ms
2018.10.22 10:22:48.142 Trades  '123456': modify #109629895 buy 10.00 WINZ18 sl: 86215, tp: 0 -> sl: 86285, tp: 0
2018.10.22 10:22:48.244 Trades  '123456': accepted modify #109629895 buy 10.00 WINZ18 sl: 86215, tp: 0 -> sl: 86285, tp: 0
2018.10.22 10:23:34.806 Trades  '123456': modify #109629895 buy 10.00 WINZ18 -> sl: 86285, tp: 0 done in 46670.615 ms
2018.10.22 10:23:35.415 Trades  '123456': modify #109629895 buy 10.00 WINZ18 sl: 86285, tp: 0 -> sl: 86290, tp: 0
2018.10.22 10:23:35.491 Trades  '123456': accepted modify #109629895 buy 10.00 WINZ18 sl: 86285, tp: 0 -> sl: 86290, tp: 0
2018.10.22 10:24:29.751 Trades  '123456': modify #109629895 buy 10.00 WINZ18 -> sl: 86290, tp: 0 done in 54343.378 ms
2018.10.22 10:24:30.399 Trades  '123456': deal #83453046 sell 10.00 WINZ18 at 86285 done (based on order #109632261)

O primeiro ticket (#109585829) foi cancelado. OK.

O segundo (#109585829) foi aceito e modificado algumas vezes.


Mas, na última linha, consta a venda que seria do ticket #109585829, mas o ticket foi outro (#83453046).

Não há registros desse último ticket no meu log. Nem to ticket #109632261, em que o primeiro se baseia.


Perguntas:

1. Alguém faz ideia do que ocorreu? Como meu código rastreia o ticket pelo seu número, não encontrei a venda para o ticket da compra.

2. O que significa "Based on order #109632261" ?


Não sei se isso é algum comportamento esperado ou se algum erro.


Obrigado!

 

Não me parece haver nenhum erro.

#83453046 não é número de ticket, é o número do deal realizado às 10:24:30.399 .

Esse deal foi a execução do stop-loss da ordem #109629895 ao preço de 86285, que era o preço que estava configurado no stop-loss dessa ordem desde 10:23:35.491 .

Repare que vc chegou a enviar um comando de modificação do stop-loss para 86290 às 10:24:29.751, mas cerca de meio segundo depois, às 10:24:30.399, chegou a notificação de que o stop-loss foi executado a 86285, antes mesmo de o seu pedido de modificação para 86290 ser aceito e processado pelo servidor. Ou seja, quando o comando que vc emitiu no terminal chegou no servidor MT5 da corretora, o stop-loss já havia sido acionado e a ordem a ser modificada já não existia mais. 

O "based on order #109632261" está informando o número da ordem que foi executada nesse deal. Esse número #109632261 é da ordem de venda do correspondente à execução do stop-loss, que foi disparada automaticamente pelo servidor MT5 quando o preço BID atingiu o nível de proteção, que estava programado em 86285.


 

Obrigado @Trader_Patinhas!

Desculpe a demora em responder.

Tenho lido bastante sobre mql5 pra tentar entender essa e outras situações que meu EA está passando.

As coisas estão bem mais claras agora.


Obrigado!

Razão: