Você pode tentar fazer upload do relatório em um arquivo binário e lê-lo no navegador, talvez isso funcione com um grande número de linhas. Mas, nesse caso, teremos de selecionar manualmente o arquivo binário devido a restrições de segurança. Ou seja, não será possível abrir automaticamente o relatório imediatamente após o teste.
Aqui isso é feito por meio de um arquivo. Não há problemas com a abertura automática.
.
Acho que você pode não apenas fazer upload de negociações por meio do MT4Orders, mas também de um código MQL5 comum.
Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам. Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Идентификатор позиции указывается в каждом ордере , которая ее открыла
fxsaber #: A propósito, a biblioteca é 90% multiplataforma - ela funciona no MT4 e no MT5. Ainda há um pouco de trabalho para fazê-la funcionar no MT4.
Se alguém finalizar isso, atualizarei o código para disponibilizá-lo para todos.
.
fxsaber #: Aqui isso é feito por meio de um arquivo. Não há problemas com a abertura automática.
Você cria um arquivo de texto JavaScript, que é chamado a partir da página HTML (a propósito, você não pode salvá-lo em um arquivo separado, mas adicioná-lo ao código da página, como na minha versão). Descrevi uma variante de salvar dados não em um arquivo de texto, mas em um arquivo binário. Ele não pode ser carregado automaticamente como um arquivo JavaScript, porque não é um código JS; você terá que selecionar esse arquivo no disco para começar a lê-lo. Talvez então seja possível ler mais de 5,6 milhões de linhas.
Não percebi. Infelizmente, esse google.charts é muito lento e inconveniente quando comparado ao highcharts.
Mudei para o highchart. Acabou sendo melhor: o google.charts congelou em 700.000 negócios, enquanto o highchart os exibiu sem freios especiais e foi capaz de aumentar o zoom em negócios individuais.
Você pode escolher Ordinal - etapa uniforme (como nos relatórios de teste da MetaQuotes) ou Logarithmic - escala logarítmica (pode ser útil se você tiver um crescimento exponencial do saldo). Depois de alterar esses itens, você precisa clicar novamente no gráfico desejado para aplicar a opção selecionada.
Mudei para o highchart. Acabou sendo melhor: o google.charts congelou em 700.000 negócios, enquanto o highchart os exibiu sem freios especiais e foi capaz de aumentar o zoom em negócios individuais.
Isso é legal!
Você pode escolher Ordinal - etapa uniforme (como nos relatórios de teste da MetaQuotes) ou Logarithmic - escala logarítmica (pode ser útil se você tiver um crescimento exponencial do saldo). Depois de alterar esses itens, você precisa clicar novamente no gráfico desejado para aplicar a opção selecionada.
Somente o relatório do testador de MQ tinha isso. O virtual não tinha. Coloquei todas as operações, inclusive as operações de limite, na matriz para gráficos. Elas não alteram o equilíbrio, portanto, não interferem muito.
Verificou-se que o testador de MQ transfere as ordens de limite excluídas para o arquivo com um atraso:
Ordem
99
1005
2023.05.29 00:03:59.281
2023.05.29 00:03:59.331
entrou na história 2 ticks depois. Deveria ter sido após 00:03:59.331, tique 00:03:59.380 perdido, movido para o histórico no tique 00:03:59.430. Ordem
123
1005
2023.05.29 00:03:59.331
2023.05.29 00:03:59.380
entrou no arquivo 1 tick depois. Há mais exemplos na captura de tela acima. .
O horário de fechamento está correto, mas aparentemente eles têm limites em uma matriz separada e a transferência para o histórico não é processada em cada tick.
Em seu testador virtual, tudo está claro: (a matriz é compartilhada e é enviada para o histórico em seu próprio tick)
Removi a saída de limites nos gráficos e agora essas barras com horário errado não estão mais lá.
Qual navegador? Quantas transações? Eu tenho 100.000 e leva cerca de 10 segundos para pensar, mas aparece.
Chrome. 40 mil linhas. A partir do segundo clique, às vezes o gráfico aparece. A formação de gráficos de rotatividade é a que mais carrega a CPU.
.
Será difícil.
Cromado. 40 mil linhas. A partir do segundo clique, às vezes o gráfico aparece. A formação de gráficos de rotatividade é a que mais carrega a CPU.
.
Aqui isso é feito por meio de um arquivo. Não há problemas com a abertura automática.
Isso levará alguns dias. Vou adiá-lo se 5 milhões não forem suficientes. Não é relevante por enquanto.
Vai ser difícil.
Também na gaveta. Adicionar uma linha
#include <MT4Orders.mqh>mais fácil)se 5 milhões não forem suficientes.
Por que trabalhar com declarações em html como essa?
A propósito, a biblioteca é 90% multiplataforma - ela funciona no MT4 e no MT5. Ainda há um pouco de trabalho para fazê-la funcionar no MT4.
.
Aqui isso é feito por meio de um arquivo. Não há problemas com a abertura automática.
Você cria um arquivo de texto JavaScript, que é chamado a partir da página HTML (a propósito, você não pode salvá-lo em um arquivo separado, mas adicioná-lo ao código da página, como na minha versão).
Descrevi uma variante de salvar dados não em um arquivo de texto, mas em um arquivo binário. Ele não pode ser carregado automaticamente como um arquivo JavaScript, porque não é um código JS; você terá que selecionar esse arquivo no disco para começar a lê-lo. Talvez então seja possível ler mais de 5,6 milhões de linhas.
Por que trabalhar com estatísticas html como essa?
Não percebi. Infelizmente, esse google.charts é muito lento e inconveniente quando comparado ao highcharts.
Mudei para o highchart. Acabou sendo melhor: o google.charts congelou em 700.000 negócios, enquanto o highchart os exibiu sem freios especiais e foi capaz de aumentar o zoom em negócios individuais.
Você pode escolher Ordinal - etapa uniforme (como nos relatórios de teste da MetaQuotes) ou Logarithmic - escala logarítmica (pode ser útil se você tiver um crescimento exponencial do saldo). Depois de alterar esses itens, você precisa clicar novamente no gráfico desejado para aplicar a opção selecionada.Se alguém finalizar, atualizarei o código para que fique disponível para todos.
Mudei para o highchart. Acabou sendo melhor: o google.charts congelou em 700.000 negócios, enquanto o highchart os exibiu sem freios especiais e foi capaz de aumentar o zoom em negócios individuais.
Isso é legal!
Você pode escolher Ordinal - etapa uniforme (como nos relatórios de teste da MetaQuotes) ou Logarithmic - escala logarítmica (pode ser útil se você tiver um crescimento exponencial do saldo). Depois de alterar esses itens, você precisa clicar novamente no gráfico desejado para aplicar a opção selecionada.
Útil.
A cronologia parece estar quebrada.
.
A cronologia parece estar quebrada.
Somente o relatório do testador de MQ tinha isso. O virtual não tinha.
Coloquei todas as operações, inclusive as operações de limite, na matriz para gráficos. Elas não alteram o equilíbrio, portanto, não interferem muito.
Verificou-se que o testador de MQ transfere as ordens de limite excluídas para o arquivo com um atraso:

Ordem
entrou na história 2 ticks depois. Deveria ter sido após 00:03:59.331, tique 00:03:59.380 perdido, movido para o histórico no tique 00:03:59.430.
Ordem
.
O horário de fechamento está correto, mas aparentemente eles têm limites em uma matriz separada e a transferência para o histórico não é processada em cada tick.
Em seu testador virtual, tudo está claro: (a matriz é compartilhada e é enviada para o histórico em seu próprio tick)

Removi a saída de limites nos gráficos e agora essas barras com horário errado não estão mais lá.