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
Eu voltei e reli o que você considera mau desenho.
Dentro do antigo mt4, estas classes não existem. O método normal de verificação de Ordens_Favorecidas dentro é Ticket#===(-1) && GetLastError(). Nunca vi um caso em que seu pedido devolva um ticket# válido e GLE=0. Mas no próximo tick, seu OrderTotal() ainda retorna 0.
Agora tenha em mente que ainda não li toda a documentação do mql5. No entanto, se diz que a PositionSelect_Information só é atualizada mais tarde. E alguém está usando o PositionSelect para avaliar sua lógica de entrada. Então essa pessoa deve esperar até que PositionSelect_Information seja atualizada antes de sair da OrderSend Logic.
Para a coisa da thread... Eu estava falando de vários fios versus um único piso para o envio de pedidos. Como em ordens simultâneas abrindo ao mesmo tempo. Pode ou não ser relevante aqui.
Eu voltei e reli o que você considera mau desenho.
Dentro da velha-mt4 estas classes não existem. O método normal de verificação de Pedidos_Sucedidos dentro é Ticket#===(-1) && GetLastError(). Nunca vi um caso em que seu pedido devolva um ticket# válido e GLE=0. Mas no próximo tick, seu pedidoTotal() ainda retorna 0.
Agora tenha em mente que ainda não li toda a documentação do mql5. No entanto, se diz que a PositionSelect_Information só é atualizada mais tarde. E alguém está usando o PositionSelect para avaliar sua lógica de entrada. Então essa pessoa deve esperar até que PositionSelect_Information seja atualizada antes de sair da OrderSend Logic.
Para a coisa da thread... Eu estava falando de vários fios versus um único piso para o envio de pedidos. Como em ordens simultâneas abrindo ao mesmo tempo. Pode ou não ser relevante aqui.
A documentação sobre o PositionSelect não diz nada sobre "não é atualizado até mais tarde". Ela só diz que mesmo que o PositionSelect seja verdadeiro, as informações sobre uma Posição podem estar desatualizadas, o que não está relacionado ao seu problema aqui.
Voureservar um tempo para fazer alguns testes quando o mercado for aberto para ter certeza de não dizer nada estúpido, uma resposta mais completa mais tarde.
A documentação sobre PositionSelect não diz nada sobre "não é atualizada até mais tarde". Ela só diz que mesmo que o PositionSelect seja verdadeiro, as informações sobre uma Posição podem estar desatualizadas, o que não está relacionado ao seu problema aqui.
Voureservar um tempo para fazer alguns testes quando o mercado for aberto para ter certeza de não dizer nada estúpido, uma resposta mais completa mais tarde.
K..... e btw, se o documento não disser nada, concordo totalmente com você.
A pergunta que vamos fazer ao Service_Desk é: "Por que você não pode atualizar as informações da Position_Information quando negociar. PositionOpen()==verdadeiro?
Eles provavelmente terão uma boa resposta para nós .
Não. Eu só estava pensando nisso... Seria provavelmente útil se todas as pessoas envolvidas escrevessem um bilhete para o ServiceDesk sobre este assunto. Entretanto, estou muito cético se a MQ estiver disposta a mudar este projeto. Mas nós podemos tentar.
As pessoas podem escrever para o ServiceDesk e relatar o ticket# aqui. O meu é
Também informei a central de serviço, #933192 | 2014.01.19 14:44
A MQ realmente pode facilmente redesenhar isto para ter uma função de timeout?
Como se não houvesse resposta, então teremos um erro, algo assim?
A MQ realmente pode facilmente redesenhar isto para ter uma função de timeout?
Como se não houvesse resposta, então teremos um erro, algo assim?
Eles fizeram exatamente o inverso. Quando o mql5 foi criado, havia um parâmetro de timeout para uma função como PositionSelect.
Mas eles o removem mais tarde, veja o ponto 9 aqui https://www.mql5.com/en/forum/53/page5#comment_14479
Concordo com os argumentos de um mau projeto, mas na minha opinião o principal problema com a MQL5 era adaptar um código de sucesso baseado em Forex para trabalhar como tal com as bolsas de valores (o que é realmente um ótimo material).
Por exemplo, várias bolsas de valores usam o protocolo FIX como padrão, e para mim este protocolo de comunicação não é fácil de adaptar qualquer código ou arquitetura.
De qualquer forma, acredito que os caras da MQ tiveram um desafio de tempo, e tiveram que criar MQL5 baseado em MQL4, e não do zero. Lembro-me que o Campeonato naquele ano foi suspenso para que eles tivessem mais tempo.
Portanto, talvez este tópico possa ser um grande conselho para a futura MQL6 e para uma arquitetura realmente nova a partir do zero, principalmente no que diz respeito à resiliência das transações e soluções agnósticas para trabalhar em qualquer mercado.
A MQ realmente pode facilmente redesenhar isto para ter uma função de timeout?
Como se não houvesse resposta, então teremos um erro, algo assim?
Tradicionalmente, o timeout não significa que a ordem não vai se tornar uma posição. Você terá que esperar por um período prolongado de tempo ... verificando se ela se torna uma posição ... e acaba suspendendo a negociação caso a ordem não seja executada.
Acho que a MQ ficaria do lado do figurelli sobre isto ser um erro de programador. Porque as funções sobre as quais o PositionOpen é construído, diz claramente que você precisa verificar outras coisas.
****** (Adicionando Agenda pessoal ... você pode parar de ler neste ponto) *******
Esta é a razão pela qual não caço novos programadores sobre funções e seus valores de retorno ao ajudá-los no mql_forum. Não vejo sentido em dizer sempre faça o seguinte.
if( OrderSend()<0 ) { Imprimir( GetLastError() ); }
Isto é suposto ser um comerciante automatizado... você poderia estar longe... e o que ele faz é Print()?
Em minha mente, Error_Handling e Error_Reporting são 2_monstros muito diferentes. Tentar explicar as maneiras apropriadas de lidar com um Erro pode levar páginas e é muito pessoal para o Trader quantas vezes eles devem tentar novamente ou mesmo se eles devem terminar a negociação.
**** Agora eu não estou dizendo se um novato está codificando um EA e tem problemas para Negociar ... Que eles não devem imprimir( GetLastError(); ) <- Isto deve ser óbvio. Mas se eu vou dizer a eles para sempre GetLastError, então eu também deveria dizer a eles para sempre Handle_Error. *** Fim da Agenda. ****
Eles fizeram exatamente o inverso. Quando o mql5 foi criado, havia um parâmetro de tempo limite para funções como PositionSelect.
Mas eles o removem mais tarde, veja o ponto 9 aqui https://www.mql5.com/en/forum/53/page5#comment_14479
Está na hora de reavivá-la?
Acho que não. Uma solicitação comercial síncrona tem que ser síncrona em todos os aspectos. É tão simples quanto isso.
Aqui a solicitação é síncrona, mas depois você tem que gerenciar coisas assíncronas. E nada está documentado sobre isso.