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
Este é o terminal 1060 e o servidor ainda é 1035.
Boa tarde, Renat!
Ao projetar o modo de rastreamento de pedidos "de emergência" (caso o evento da OnTradeTransaction não venha),
Detectei que uma ordem de MERCADO aparece na história em mais de 3 SEGUNDOS:
O código EA que produziu este registro está anexado.
Primeiro, o tempo de espera foi de 1000 ms, depois 2000, 3000 e finalmente 4000 ms.
2 comandos foram enviados para cada período(posição aberta - fechar)
Isso não é muito tempo para uma ordem de MERCADO?
P/S Demo Open (terminal build 1060)
Ainda não executei o código, mas a fonte vê o erro clássico de data final incorreta na HistorySelect.
Todo primeiro programador chama esta função com a data errada, continua mordendo o fim da história e encontra "transação longa na história".
Esta é provavelmente a função, já que "cada primeiro" comete um "erro clássico".
Nesse arquivo, há uma tentativa de ler a história de alguma data até o momento atual. Você pode me dizer como fazer isso corretamente, para não "petiscar no final da história"?
O erro é que as pessoas não pensam sobre qual é a hora atual e colocam a data errada da fonte errada.
É suficiente especificar uma data distante conhecida como a data final, ao invés do tempo obsoleto do servidor.
O erro é que as pessoas não pensam sobre qual é a hora atual e colocam a data errada da fonte errada.
É suficiente especificar a data distante conhecida como a data final, em vez do tempo obsoleto do servidorTime.
Talvez a ajuda, com o exemplo nela contido, também possa ser corrigida então?
https://www.mql5.com/ru/docs/trading/historyselect
Renat, você já trabalhou com a OnTradeTransaction()?
Não, infelizmente, muito ocupado.
Por favor, tente você mesmo em nosso servidor MetaQuotes-Demo.
Da frase de Renat
É suficiente especificar uma data distante conhecida como a data final, ao invés do tempo obsoleto do servidor.
Entendi que você deveria especificar a data de amanhã (ou uma data ainda mais distante) como a data final e você ficará feliz.
O erro é que as pessoas não pensam sobre qual é a hora atual e colocam a data errada da fonte errada.
É suficiente especificar uma data distante conhecida como a data final, em vez do tempo obsoleto do servidorTime.
E como data de início, oTimeTradeServer() "desatualizado" também é adequado?
As datas de início e fim devem ser definidas com tolerância e com a margem necessária. Isso é menos N segundos e mais N segundos, pelo menos.
O TimeTradeServer() não é um tempo exato de reltime, mas é atualizado apenas por ticks de preço que entram na visão geral do mercado.
Se de repente você não tiver dados na amostra do histórico, então 99% dos erros estão em limites de consulta.