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
Mais uma vez, para "candidatos", "médicos", "professores" e "acadêmicos".
Qualquer evento vindo à OnTradeTransaction() pode ser perdido
É por isso que eu acho que é um erro que após receber um evento significativoTRADE_TRANSACTION_HISTORY_ADD
os dados no terminal não serão atualizados!
Em Ajuda(https://www.mql5.com/ru/docs/basis/function/events#ontradetransaction):
Uma solicitação comercial enviada manualmente do terminal ou através das funçõesOrderSend()/OrderSendAsync() pode gerar várias transações comerciais consecutivas no servidor comercial. A ordem de chegada dessas transações ao terminal não é garantida, portanto, não podemos construir nosso algoritmo comercial na espera da chegada de algumas transações comerciais depois de outras. Além disso, as transações podem ser perdidas ao serem entregues do servidor ao terminal.
Portanto, não está claro por que esta função é de todo necessária. Você simplesmente não deve usá-lo, só isso. Você mesmo tem que analisar o histórico de pedidos e negócios.
Em Ajuda(https://www.mql5.com/ru/docs/basis/function/events#ontradetransaction):
Não está claro, portanto, por que esta função é necessária. Você simplesmente não deve usá-lo, é tudo. Você mesmo tem que analisar a história das ordens e dos negócios.
Quanto a pedidos, posições e transações.
Como escrito na ajuda - a seqüência de transações não é garantida - uma transação de transferência de ordem para o histórico pode ser recebida mais cedo do que uma transação de uma transação.
Mudar uma posição no terminal é estritamente o resultado do recebimento de uma transação comercial, portanto seu recebimento é uma garantia de que a posição mudou.
A obtenção de uma transação para transferir uma ordem para o histórico garante apenas que a ordem deixou de estar ativa (aberta) e foi movida para o histórico da ordem.
Quanto a esta frase.
Parece ter permanecido na documentação de uma das versões iniciais do terminal com comércio assíncrono. Ela será removida em um futuro próximo. Os culpados serão executados.
Quanto a pedidos, posições e transações.
Como escrito na ajuda - a seqüência de transações não é garantida - uma transação de transferência de ordem para o histórico pode ser recebida mais cedo do que uma transação de uma transação.
Mudar uma posição no terminal é estritamente o resultado do recebimento de uma transação comercial, portanto seu recebimento é uma garantia de que a posição mudou.
A obtenção de uma transação para transferir uma ordem para o histórico garante apenas que a ordem deixou de estar ativa (aberta) e foi movida para o histórico da ordem.
Quanto a esta frase.
Parece ter permanecido na documentação de uma das versões iniciais do terminal com comércio assíncrono. Ela será removida em um futuro próximo. Os culpados serão executados.
Muito obrigado!
E eu uma metralhadora (ou pelo menos uma espingarda), para participar do tiroteio? :)
MQ Alexander!
Gostaria de uma explicação mais detalhada sobre os ofícios e as posições.
Porque VOCÊ escreveu:
E, de fato, acontece o seguinte:
Teste Expert Advisor construir 1375 abertura de demonstração (foi executado 2 vezes)
E aqui, os resultados:
Ambas as vezes TRADE_TRANSACTION_HISTORY_ADD veio primeiro, mas
no primeiro caso não havia posição, mas no segundo caso era!
Como devo entender isso?
Esqueci de anexar o diário de bordo do terminal:
prostotrader, deixe-me fazer-lhe uma pergunta íntima. Por que você gosta tanto de ordens históricas e não gosta de ofícios? :-))
MQ Alexander disse:
Что касается ордеров, позиций и сделок.
Como escrito na Ajuda - a seqüência de transações recebidas não é garantida - a transação de transferência de pedidos para o histórico pode ser recebida antes da transação.Mudar uma posição no terminal é estritamente resultado do recebimento de uma transação comercial, portanto, seu recebimento é uma garantia de que a posição mudou.
A obtenção de uma transação para transferir a ordem para o histórico só garante que a ordem deixou de estar ativa (aberta) e foi transferida para o histórico da ordem.
E no seu caso
quase vazio...
E outra observação lírica. No conceito de MT5, a presença de uma ordem histórica reflete o fato de que houve uma tentativa de fazer uma troca. E não é o fato de ter sido executado. E, para descobrir, precisamos nos referir ao comércio. Ela já reflete o resultado da operação comercial. Então é mais lógico lidar com transações em seu código.
prostotrader, deixe-me fazer-lhe uma pergunta íntima. Por que você gosta tanto de ordens históricas e não gosta de ofícios? :-))
MQ Alexander disse:
E no seu caso
está quase vazio...
Estou respondendo à sua pergunta íntima.
Você provavelmente trabalha no mercado FOREX e lida com um único pedido,
Portanto, você "mente" persistentemente em um assunto que você nem mesmo entende.
Imagine que há dois volantes em um carro e dois motoristas que olham apenas para o
a estrada. Como o 1º motorista saberia que o outro motorista está dirigindo (digamos à direita)?
Veja também com cuidado:
Toda sua lógica primitiva é baseada na execução de uma ordem de mercado, portanto,
Vou chamar sua atenção para o fato de que há ordens limitadas e pendentes
que pode não ser totalmente executada, mas pode ser executada em porções.
Além disso, olhe com cuidado:
E o que eu deveria ver lá?!
Você percebe que você acidentalmente obtém informações de posição no caso de TRADE_TRANSACTION_HISTORY_ADD?
E já lhe foi dito que...prostotrader:
Toda sua lógica primitiva é baseada na execução de uma ordem de mercado, portanto,
Gostaria de chamar sua atenção para o fato de que existem ordens limitadas e pendentes
que pode não ser executado por inteiro, mas em partes.
Não é você que deve julgar minha lógica primitiva...
E quem deve julgar?
Eu julgo suas habilidades pelas suas declarações!
O quadro não é claramente bonito :(
Isso faz mais sentido, "Professor"?
E não me lembro deMQ Alexander ter delegado você para responder por ele.