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
Talvez, precisamos do PositionTotal()?
E o que é que isto tem a ver com a posição se eu perguntar ao OrderTotal() quantas encomendas são actualmente colocadas?
E solicito esta informação em OnTrade(), o momento em que a encomenda existe não pode ser perdido.
Mas, de facto, acontece que este momento é perdido de qualquer maneira e os pedidos são processados ou quando a encomenda ainda não está presente ou quando já está presente.
Mas o momento em que ele existe não é detectado em OnTrade(), ou então, o OrderTotal() reside.
Para evitar reclamar da imperfeição do código, aqui está o código MetaQuotes com o meu aperfeiçoamento do guião no Expert Advisor.
Adicionada a função OnTrade() e colocado o código de script no OnInit().
Nem uma única impressão exibe uma mensagem de que existe uma encomenda.
Só posso responder a isto com um artigo Eventos comerciais no MetaTrader 5:
Заключение
Todas as operações na plataforma de negociação e análise do MetaTrader 5 são assíncronas, e todas as alterações na conta de negociação são reportadas independentemente umas das outras. Por conseguinte, não deve tentar seguir um único evento de acordo com a regra "Um pedido - Um evento de negociação". Se quisermos determinar exactamente o que mudou após o evento de Comércio, precisamos de analisar todos os negócios, posições e ordens em cada chamada do manipulador OnTrade e compará-los com o estado que tínhamos antes do evento aparecer.Só posso responder a isto com o artigo " Trading Events in MetaTrader 5":
Isto significa que a ordem que está a tentar apanhar já deve provavelmente ser procurada usando o HistoryOrdersTotalOriento-me por este artigo. Gostaria de saber a resposta à pergunta: como é possível que um evento comercial falhe o momento em que uma encomenda é feita mas ainda não foi executada?
Os eventos comerciais são gerados pelo servidor nos seguintes casos
Suspeito que OrderTotal() falhe. Mas não o posso provar com esta funcionalidade.
Embora como opção não rejeite que OrderTotal() esteja a levar dados não para onde eu penso que estão (ou seja, não no servidor).
Estou a seguir este artigo. Gostaria de saber a resposta à pergunta: como é que um evento comercial perde o momento em que uma encomenda foi efectuada mas ainda não foi executada?
Quando o evento de Comércio chega, a encomenda já foi colocada e executada. Por conseguinte, esta ordem ainda não foi colocada entre as activas e já apareceu na história.
Sim, sim, os meus pensamentos estão a flutuar à volta desta resposta.
Gostaria de responder assim, no momento em que a ordem é colocada, o servidor gera um evento de "negócios" e envia-o para o terminal, quando o terminal o recebe, é feito um pedido no código para o número de ordens, mas no momento em que este pedido chega ao servidor, o servidor já executou a ordem.
Não tenho qualquer outra explicação.
Os eventos comerciais são gerados pelo servidor nos seguintes casos:
Suspeito que OrderTotal() falhe. Mas não o posso provar com esta funcionalidade.
Compreendi correctamente que a lista de ordens activas inclui tanto as ordens activas pendentes como as ordens para abrir uma posição?
O que é que isto significa?
... no separador "Especialistas" aparece esta mensagem. Não é um erro, é um aviso. Um aviso sobre o quê?
Bem, eu não disse "erro". Que seja um "aviso". Já disse a minha versão com um exemplo. Dê outra vista de olhos à discussão a partir daqui (sobre fugas na linha - leia até ao fim da página): https://www.mql5.com/ru/forum/1111/page345#comment_54616
Poderá ter de ir à CBO, com detalhes da sua situação.
Encontrei uma "confusão".
Porque é que o compilador não define como a segunda variável b?
E em geral, como é que lido com esta situação?