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
O que acontece depois de transcorrido esse segundo? A operação continuará na ausência de sincronização?
Sim, ela continuará emitindo um alerta. Mas não consigo imaginar que um segundo não seja suficiente. A sincronização dura milissegundos.
Se isso acontecer, é aconselhável relatar o fato aqui.
Isso é algo que precisa ser escrito nos robôs de combate?
Não. Se você executar o script acima sem essa linha, as estatísticas provavelmente mostrarão que não houve uma única dessincronização. Eu precisava dessa linha como um fator adicional que provocasse a detecção do problema. Quase inicialmente, a biblioteca tenta trazer cada solicitação de negociação para o estado de sincronização. Desativei essa linha de propósito para complicar a tarefa e testar um mecanismo independente para identificar a dessincronização.
Ou é suficiente verificar MT4ORDERS::ByPass.Is() antes das operações de negociação (para garantir que não haja dessincronização)?
Toda vez que OrdersTotal, OrdersHistoryTotal e OrderSelect são chamados, ByPass.Is()==true fica pendente. É por isso que o resultado dessas funções é relevante logo após serem chamadas. Eles podem mudar com o passar do tempo, portanto, é correto chamá-los novamente se houver alguma pausa. Essa é a resposta para a pergunta acima. É correto fazer isso não apenas no MT5, mas também no MT4.
Portanto, se você acabou de ler o ambiente de negociação, pode fazer uma operação de negociação imediatamente, porque o ambiente ainda é relevante. É por isso que foi possível ocultar o mecanismo do usuário comum da biblioteca.
Bug encontrado:
A função OrderOpenReason() retorna (ENUM_DEAL_REASON)DEAL_REASON_TP para ordens fechadas no takeprofit.
Obrigado! Corrigido.
fxsaber:
Sim, ele o fará, emitindo um alerta. Mas não consigo imaginar que um segundo não seja suficiente. A ressincronização dura milissegundos.
Se isso acontecer, seria aconselhável relatar o fato aqui.
Se você ainda não confia no fato de o ambiente ser sincronizado em um segundo, como interromper corretamente o EA (não permitir novas ordens) se não houver sincronização?
?
Se não confiarmos no fato de que o ambiente foi sincronizado em um segundo, como poderemos interromper corretamente o EA (proibir novas ordens) se não houver sincronização?
Aqui fica a seu critério. Você pode fazer o que escreveu. Ou fazer outra espera. Ou aumentar a pausa. Eu tentaria esperar pelo menos uma dessincronização tão longa.
Fica a seu critério. Você pode fazer o que escreveu. Ou fazer outra espera. Ou aumentar a pausa. Eu tentaria esperar pelo menos uma dessincronização tão longa.
Obrigado!
Tentarei esperar por um alerta ou um backoff, removerei as outras verificações.
Importante para quem usa snapshots e outras técnicas de negociação muito específicas.
Cansado de surpresas com as margens. Recomendo a execução desses scripts de teste antes de usar os Expert Advisors de combate.
Vemos uma discrepância total entre os valores calculados da margem do MT5 e os reais. Em tais circunstâncias, talvez a única maneira seja evitar os símbolos correspondentes.
ZЫ E também é cansativo o fato de que você pega coisas elementares e imediatamente encontra bugs lá, e não há uma palavra sobre isso no fórum!