Bibliotecas: MT4Orders - página 95

 
fxsaber #:

Ele se encaixa perfeitamente na linha do tempo. Mais uma vez. O MT5 gera um histórico de negociação. É uma representação distorcida das posições fechadas.

Você não deve se guiar pelo que o MT5 mostra, mas pelo bom senso.

Ok, já entendi. Você está se concentrando no processo de fechamento de ordens históricas.

E eu queria dizer, ou mais precisamente, obter uma lista de posições (ordens para posições) que existiam na conta entre os dois pontos especificados no tempo.

É claro que, devido à operação CloseBy, o preço e o horário de fechamento de algumas ordens podem ser imprecisos. Mas, para mim (como usuário), isso não é crítico, pois o cálculo do lucro está correto. Se precisar de detalhes, consulte a seção "Orders & Deals".
 
hini #:
uma lista de posições (ordens de posição) que existiam na conta entre os dois pontos especificados no tempo.
Isso mostra o MT4Orders no modo sem instantâneos. Ou seja, de uma só vez.
 
#define  MT4ORDERS_BYPASS_MAXTIME 1000000

Quando essa macro está ativada, por algum motivo, às vezes uma linha com dois ou três tíquetes é impressa no registro: "18521123 22323214".

Depois de comentar essa macro, isso nunca mais aconteceu. Tentei localizar o Print no código, mas não consegui.

 
hini o Print no código, mas não consegui.
Include\fxsaber\TradesID\ByPass.mqh

Há algum tempo, o MQ bagunçou a formação da tabela de pedidos históricos e não quis consertá-la. Portanto, essa macro não garante a funcionalidade que tinha antes da má implementação do MQ.
 
fxsaber #:

Há algum tempo, o MQ bagunçou a formação da tabela de pedidos históricos e não quis consertá-la. Portanto, essa macro não garante sua funcionalidade, que tinha antes da má implementação do MQ.
Do que você está falando?
 
fxsaber # :
Portanto, essa macro não garante a funcionalidade que tinha antes da má implementação do MQ.
Então, temos que abandonar essa macro?
 
Alain Verleyen #:
Do que você está falando?
Aqui está uma reprodução bem detalhada. Resumidamente - uma ordem pendente recém-excluída pode não chegar ao final do histórico de negociação, porque é classificada à força por tíquetes.
Зашивается в Ex5 или задается терминалом при загрузке платформы MetaTrader 5 build 2940
Зашивается в Ex5 или задается терминалом при загрузке платформы MetaTrader 5 build 2940
  • 2021.06.19
  • www.mql5.com
Это как с транзакциями в OnTradeTransaction - очередность прихода транзакций не гарантируется. Одни транзакции фактически приходят после других хотя в теории должно быть наоборот. Супер-оптимизированная разработчиками HistorySelect дозаписывает в конец все новые ордера
 
hini #:
Então, temos que abandonar essa macro?

A macro usava esse recurso.

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Nova versão do MetaTrader 5 build 2940: vitrines de serviços MQL5 movidas para o espaço de trabalho e atualização de design

fxsaber, 2021.06.11 09:47 PM

Se você usar o HistorySelect a partir do zero, as novas ordens irão para o final da tabela enquanto o Expert Advisor estiver em execução - corretamente.

  • Se você trabalhar SOMENTE com HistorySelect(0, INT_MAX), as novas ordens (que entram no histórico durante o trabalho do EA) serão adicionadas ao final - classificando por ORDER_TIME_DONE_MSC.

Isso foi quebrado. Portanto, a macro não pode garantir sua funcionalidade.


ZY No Virtual, ao excluir uma ordem pendente, ela é sempre gravada no final da tabela de histórico de ordens. O MT5-tester faz o mesmo. O problema ocorre apenas no Terminal.