Bibliotecas: MT4Orders - página 57

 
Konstantin Kurkin : Como lidar com erros - GetLastError e ERR_INVALID_PRICE, ERR_PRICE_CHANGED, ERR_REQUOTE, ERR_OFF_QUOTES, ERR_TRADE_CONTEXT_BUSY - as constantes não estão definidas.

MT4ORDERS::LastTradeResult.retcode

 
Enrique Dangeroux:

Qual foi o ORDER_TYPE_FILLING nesse caso?

Estou negociando por meio do censor do corretor url. Ao definir o Take Profit, o valor padrão é ORDER_TYPE_FILLING == ORDER_FILLING_IOC. Seu caso não deve estar ocorrendo com IOC, certo?

Houve dezenas de milhares de negociações após esse caso, portanto, não me lembro.

 

MT4Orders.mqh

Onde está esse arquivo de cabeçalho?

 
MQLEA:

MT4Orders.mqh

Onde está esse arquivo de cabeçalho?

https://www.mql5.com/ru/code/16006

 

Encontrei uma falha, ou talvez ela tenha aparecido recentemente: um erro ao modificar uma ordem.


Como você pode ver, o Expert Advisor está tentando modificar uma ordem de compra e falha porque isso acontece no bloco Sell

Arquivos anexados:
test.mq5  5 kb
 
Dmitiry Ananiev:

Encontrei uma falha ou talvez ela tenha aparecido recentemente: um erro ao modificar um pedido.

Como você pode ver, o Expert Advisor está tentando modificar uma ordem de compra e falha porque isso acontece no bloco Sell

Reproduzi o erro, obrigado. Parabéns, você encontrou o erro do testador! A biblioteca não tem nada a ver com isso.

Para corrigir esse bug do testador, precisamos criar um código limpo, conciso e autônomo para os desenvolvedores.

Código do bug.

 

Esse é o erro que recebi:


 
Konstantin Kurkin:

Esse é o erro que recebi:

Há muita coisa escrita sobre isso aqui. Ignore-o.

 
// Lista de modificações:
// 06.12.2020
// Correção: os casos de registros incorretos de execução de SL/TP no histórico de negociação do MT5 agora são levados em consideração.
// Acrescentar: A macro MT4ORDERS_TESTER_SELECT_BY_TICKET força o SELECT_BY_TICKET a funcionar no Tester somente via OrderTicketID().


No MT5, os tíquetes de transação/posição/ordem podem coincidir. Isso é especialmente fácil de acontecer no testador.

No entanto, o uso do SELECT_BY_TICKET é frequentemente usado para determinar se uma ordem está fechada ou não. Nessas situações, você pode usar a macro a seguir para remover discrepâncias ao fazer a correspondência de tíquetes.

#define  MT4ORDERS_TESTER_SELECT_BY_TICKET // Força o SELECT_BY_TICKET a funcionar no testador somente por meio de OrderTicketID().
Leia mais aqui.
 

Testei o MT4Orders com relação ao uso de MQL5 puro (sem usar SB) https://www.mql5.com/ru/forum/357253/page4#comment_19593443.

inequivocamente, nada no MT4Orders fica lento e funciona perfeitamente bem