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
Em uma conta real na bolsa de valores e em uma negociação real, a corretora Otkritie, mesmo esperando por 10 segundos, não ajudou, ainda aparecem alertas de que há uma dessincronização com o histórico. E eles aparecem com bastante frequência. O que, na minha opinião, é bastante estranho, pois em outros atrasos especiais não são vistos, o ping é de 4 ms e a execução da ordem geralmente é inferior a 15 ms. Começo até a duvidar que tudo esteja correto lá, talvez isso esteja relacionado à rede? Embora eu não use INOUT, todos IN e OUT separadamente. Há algum plano para contornar esse caso? Para memorizar os tíquetes eu mesmo, por exemplo. E qual é a prioridade dada à solução desse problema?
Por favor, publique os dois registros.
Oi fxsaber,
Felicidades para 2020!
É uma escolha de design não incluir um número mágico na solicitação de negociação para a função MT4OrderClose?
Atualmente, o DEAL_ENTRY_OUT do MT4OrderClose terá magic == 0.
Isso não faz muita diferença porque, com o ID da posição, você pode rastrear o número mágico de DEAL_ENTRY_IN, no entanto, para fins de análise de histórico, ter uma correspondência DEAL_ENTRY_IN / DEAL_ENTRY_OUT provavelmente daria mais flexibilidade.
Hi fxsaber,
Parabéns para 2020!
É uma escolha de design não incluir o número mágico na solicitação de negociação para a função MT4OrderClose?
Atualmente, DEAL_ENTRY_OUT por MT4OrderClose terá magic == 0.
Não é um grande problema porque, com o ID da posição, é possível rastrear o número mágico de DEAL_ENTRY_IN, no entanto, para fins de análise de histórico, ter DEAL_ENTRY_IN/DEAL_ENTRY_OUT correspondentes talvez proporcione mais flexibilidade.
É uma escolha de design não incluir o número mágico na solicitação de negociação para a função MT4OrderClose?
Atualmente, DEAL_ENTRY_OUT do MT4OrderClose terá magic == 0.
Isso não faz muita diferença porque, com o ID da posição, você pode rastrear o número mágico de DEAL_ENTRY_IN; no entanto, para fins de análise de histórico, ter uma correspondência DEAL_ENTRY_IN / DEAL_ENTRY_OUT provavelmente proporcionaria mais flexibilidade.
No OrderClose, você pode definir o MagicNumber, se desejar.
No MT5, ao fechar parcialmente uma posição, é possível alterar o MagicNumber da posição aberta, de modo que você tem uma opção.
Por exemplo, se você tiver uma posição aberta com MagicNumber = 5 e fechar a posição manualmente, então DEAL_ENTRY_OUT_MAGIC = 0. A biblioteca ainda retornará OrderMagicNumber() = 5.
Não sei se é um bug ou um recurso, mas para futuros, o lucro e o preço de abertura não são calculados exatamente como esperado. Digamos que uma posição seja aberta às 12h00, às 18h40 a posição é liberada e reaberta automaticamente e, às 20h00, a posição é fechada. GetHistoryPositionData para o ticket da quarta negociação (saída da posição) seleciona o lucro como MT4ORDERS::Order.Profit = ::HistoryDealGetDouble(Ticket, DEAL_PROFIT); que retornará essencialmente a diferença entre as negociações 3-4 (compensação e saída). Mas ele retornará o preço de abertura como MT4ORDERS::Order.OpenPrice = ::HistoryDealGetDouble(OpenTicket, DEAL_PRICE);. Ou seja, ele retornará o preço de abertura da primeira negociação. Em minha opinião, faz sentido uniformizá-lo, extraindo tudo da primeira negociação (tanto o preço de abertura quanto o lucro) ou extraindo tudo da última abertura (da terceira negociação até a compensação). Ou isso é um recurso e deveria ser assim, e eu estou perdendo alguma coisa?
Portanto, você está analisando o histórico da Netting por meio da biblioteca. Esse é exatamente o caso mencionado inicialmente, para o qual a biblioteca ainda não foi concluída. E se ela será concluída é uma grande questão. Porque há muita confusão, e na prática não há essa necessidade.
Eu ainda uso a mesma biblioteca no Netting, mas deixo de trabalhar com o histórico.
https://www.mql5.com/ru/blogs/post/733393
Medição da velocidade em uma situação a partir de uma postagem de blog.
Resultado.
Você pode ver claramente o quanto as funções HistorySelect custam.
O OrdersHistoryTotal é quente, embora seja menor, mas ainda é perceptível, por isso sempre houve uma recomendação para tentar não chamá-lo mais de uma vez por evento.
OrderSelect by history acabou sendo gratuito.
Você pode coletar estatísticas sobre o tempo gasto na execução de ordens de mercado (incluindo TP/SL).
Resultado.
Até dois minutos de execução em uma conta em execução. Compartilhe suas estatísticas aqui. O script não usa nenhuma biblioteca e é adequado para Netting/Hedge.
No MT4/5, é bastante desagradável depurar ao trabalhar com o histórico de negociação. Você precisa usar várias soluções de apoio.
No MT5, você pode ver imediatamente todos os campos da ordem selecionada por meio do MT4Orders. Para fazer isso, você precisa adicionar MT4ORDERS::Order à observação MT4ORDERS::Order.
Dessa forma, você pode ver todas as propriedades da ordem selecionada.
Compartilhe suas estatísticas aqui. O script não usa nenhuma biblioteca, sendo adequado para Netting/Hedge.
É assim que a realidade é: