Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
A biblioteca (MT4Orders.mqh) não consome essa quantidade de memória. Você pode executar, por exemplo, esse EA para ver por si mesmo.
Provavelmente, você está trabalhando com indicadores de forma incorreta: você cria novos identificadores de indicadores, mas não exclui os antigos.
Eu não uso nenhum indicador.
Embora você esteja certo, a biblioteca não consome essa quantidade de memória, no entanto, ela a utiliza:
HistorySelect(0,INT_MAX);De acordo com esta página:
https://www.mql5.com/pt/articles/211
"A tentativa de lidar com todo o histórico de negociação, na maioria dos casos, está errada. Quando o número de transações/ordens processadas fica em torno de milhares e dezenas de milhares, o trabalho do programa fica drasticamente mais lento."
No caso de haver mais de 1 milhão de negociações, sua biblioteca armazena todas elas em uma matriz.
Agradeço por ter criado essa biblioteca, que faz a ponte entre o mt4 e o mt5, e por tê-la compartilhado com todos, sem tentar destruí-la. Só acho lamentável que haja apenas um lugar on-line que descreva como obter os valores de swap e de comissão corretamente (dado que a corretora realmente os fornece), e que esteja escrito de forma tão ofuscada.
Embora você esteja certo, a biblioteca não consome essa quantidade de memória, no entanto, ela usa isso:
De acordo com esta página:
https://www.mql5.com/pt/articles/211
"A tentativa de lidar com todo o histórico de negociação, na maioria dos casos, está errada. Quando o número de transações/ordens processadas fica em torno de milhares e dezenas de milhares, o trabalho do programa fica drasticamente mais lento."
Caso haja mais de 1 milhão de negociações, sua biblioteca armazena todas elas em uma matriz.
Resultado.
130 mil negócios + 190 mil ordens, o consumo de memória do terminal aumentou em 20 MB (+10%).
Você mesmo pode medir o desempenho. A documentação está desatualizada há muito tempo.
O uso da biblioteca pode aumentar o consumo de memória em até 10%.
Qual é a razão para isso?
O que isso tem a ver com o assunto?
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bibliotecas: MT4Orders
fxsaber, 2023.07.07 13:12
O uso da biblioteca pode aumentar o consumo de memória em até 10%.
Pensei que houvesse uma atualização da biblioteca ontem, mas não me atualizei por um ano :)
Vou aguardar ansiosamente, obrigado pelo apoio!
submarino, qual é a vantagem de usar const na transferência de função?
E, ao mesmo tempo, é razoável criar um membro de classe dentro de uma função ou podemos fazer isso com global, 7 caracteres em uma troca de robô?
processamento em cada tick, por meio do indicador spy.
o processamento em cada tick, normalmente vazio, não detecta anomalias, é uma questão de otimizar suas perguntas sobre funções...fxsaber #:
/ Adicionar: a macro MT4ORDERS_ORDERS_SORT gera o histórico de ordens MT4 classificadas por hora de fechamento/exclusão.Baixei a atualização e verifiquei que tudo está funcionando bem agora com ordens limitadas, sem atrasos até o momento.
Obrigado!
Ainda não há atrasos.
A variante frontal é usada agora.
Aqui está o código que pode mostrar o tempo de execução dessa solução depois, se o histórico de negociação foi atualizado entre as chamadas vizinhas de OrdersHistoryTotal().
Resultados da execução em algumas contas de negociação. Na abscissa de HistoryOrdersTotal().
Você pode ver claramente que, com 100 mil ordens MT5, o atraso será de 10 ms (o tempo de execução de OrdersHistoryTotal se o histórico de negociação tiver sido atualizado após a execução anterior).
No testador, não há atraso algum. Somente no Terminal. Obviamente, é possível acelerar o processo, mas não a esse ponto.