Discussão do artigo "Operações de negociação Estruturas das solicitações e das resposta, descrição e registro" - página 5

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
Volodya, você e eu conversamos muito sobre essa voz. Expliquei tudo da melhor maneira possível, e você pareceu entender tudo, mas aqui vamos nós novamente....
A função OnTradeTransaction é uma função de processamento de eventos. A transação é um evento que aconteceu ontem. A função OnTradeTransaction deveria ter funcionado ontem, mas não hoje. Hoje não há nenhum evento dessa transação... Hoje houve e provavelmente ainda haverá, mas em eventos diferentes.
Estou ficando muito velho. Já estou em minha sétima década. Eu me esqueço de muitas coisas e pratico de caso para caso! ))
Acontece que não precisamos de uma transação para hoje, apenas a percorremos:
e pronto! Aqui está uma posição aberta. É assim mesmo? ))
Saudações, Vladimir.
Os dados são armazenados no servidor. O terminal os recebe em seu ambiente e o Expert Advisor os utiliza.
Artem, bom dia! Hoje me levantei cedo e dei uma olhada no terminal e vi que, no início de uma nova sessão de negociação, o Expert Advisor com o código que lhe mostrei anteriormente na minha mensagem"viu de repente" a posição aberta anteontem e trabalhou com ela como deveria, de acordo com o algoritmo. Isso é um tipo de milagre! Decidi executar o Expert Advisor no testador de estratégias para anteontem e ontem. No testador de estratégias, o Expert Advisor funcionou perfeitamente - ele encontrou a posição aberta anteontem e trabalhou com ela ontem, como se estivesse escrito nas anotações. Gostaria de chamar sua atenção para esse fato!!! No testador de estratégia, a posição foi aberta anteontem, o Expert Advisor a encontrou ontem e continuou....
No testador de estratégia, parece ser uma coisa, mas na negociação real é bem diferente. E ontem essa situação aconteceu pela primeira vez, quando o Expert Advisor não quis "ver" uma posição aberta do nada.
Pergunta: como isso pode acontecer?
Atenciosamente, Vladimir.
Artem, bom dia! Hoje me levantei cedo e dei uma olhada no terminal e vi que, no início de uma nova sessão de negociação, o Expert Advisor com o código que mostrei anteriormente em minha mensagem"viu de repente" a posição aberta anteontem e trabalhou com ela como deveria, de acordo com o algoritmo. Isso é um tipo de milagre! Decidi executar o Expert Advisor no testador de estratégias para anteontem e ontem. No testador de estratégias, o Expert Advisor funcionou perfeitamente - ele encontrou a posição aberta anteontem e trabalhou com ela ontem, como se estivesse escrito nas anotações. Gostaria de chamar sua atenção para esse fato!!! No testador de estratégia, a posição foi aberta anteontem, o Expert Advisor a encontrou ontem e continuou....
Pergunta - como isso pode acontecer?
Atenciosamente, Vladimir.
Eu não sei. Esse código é seu. Você o escreveu. Ele funciona como está escrito.
Eu não sei. O código é seu. Você o escreveu. A maneira como foi escrito, a maneira como funciona.
Eu entendo o código. Ele é muito simples. Artem, editei um pouco minha mensagem anterior, dê uma olhada nela. Acrescentei mais algumas informações. Talvez isso o ajude a entender de alguma forma.
Saudações, Vladimir.
Também acrescentei: após 8 meses de negociação em uma conta real, ontem, pela primeira vez, o Expert Advisor não "viu" uma posição aberta. Foi isso que me tirou de minha rotina.
Entendo o código. Ele é o mais simples. Artem, editei um pouco minha mensagem anterior, dê uma olhada nela. Acrescentei mais algumas informações. Talvez isso ajude a entender de alguma forma.
Saudações, Vladimir.
Também acrescentei: após 8 meses de negociação em uma conta real, ontem, pela primeira vez, o Expert Advisor não "viu" uma posição aberta. Foi isso que me tirou de minha rotina.
São necessários testes de estresse para esse caso: tirar o garfo do computador imediatamente após mudar o ambiente de negociação, cortar a Internet ou torná-la muito lenta, de modo que a falta de Internet não seja corrigida e as ordens de negociação praticamente não sejam enviadas.... ou qualquer outra coisa que não seja uma equipe. O ambiente real de negociação e sua fixação, mesmo com um pequeno número de transações comerciais, podem gerar falhas imprevisíveis)))))
Os artigos de Artem no primeiro têm sobre isso, como registrar e como monitorar o real)))))
O Saber tem uma abordagem mais legal em geral, ele cria uma cópia virtual do ambiente de negociação e conta tudo lá))))
Testes de estresse para esse caso são necessários, desligue o computador imediatamente após mudar o ambiente de negociação, corte a Internet ou torne-a muito lenta, de modo que a falta de Internet não seja corrigida e as ordens de negociação praticamente não sejam enviadas.... ou qualquer outra coisa que não seja o padrão.
Bom dia, Valery! Tudo o que foi listado em sua mensagem, tudo isso aconteceu repetidamente, e até mesmo repetidamente, durante todos os oito meses de negociação na conta real. Ao mesmo tempo, o EA viu a posição no dia seguinte e no dia seguinte. O código da função OnTradeTransaction() funcionou corretamente durante todos os oito meses de negociação real.
Não tenho uma explicação para o que aconteceu, mas a única coisa que me vem à mente é uma falha no servidor da corretora de câmbio. Se você ler atentamente todas as minhas postagens sobre esse tópico, verá essa mensagem:
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Discussão do artigo "Transações de negociação. Estruturas de solicitação e resposta, descrição e saída de registro"
MrBrooklin, 2023.10.18 04:48 PM
Artem, bom dia! Hoje me levantei cedo e olhei para o terminal, e vi que, no início de uma nova sessão de negociação, o Expert Advisor com o código que mostrei anteriormente na minha mensagem"viu de repente" a posição aberta anteontem e trabalhou com ela como deveria, de acordo com o algoritmo. Isso é um tipo de milagre! Decidi executar o Expert Advisor no testador de estratégias para anteontem e ontem. No testador de estratégias, o Expert Advisor funcionou perfeitamente - ele encontrou a posição aberta anteontem e trabalhou com ela ontem, como se estivesse escrito nas anotações. Gostaria de chamar sua atenção para esse fato!!! No testador de estratégia, a posição foi aberta anteontem, o Expert Advisor a encontrou ontem e continuou....
No testador de estratégia, parece ser uma coisa, mas na negociação real é bem diferente. E ontem essa situação aconteceu pela primeira vez, quando o Expert Advisor não quis "ver" uma posição aberta do nada.
Pergunta: como isso pode acontecer?
Saudações, Vladimir.
Tenho um robô que armazena todas as ordens ativas e sua posição total (compensação) em seu estado. O estado é redefinido para um arquivo a cada alteração e no final do trabalho. Na inicialização e periodicamente durante a operação, a sincronização é verificada e o estado é sincronizado, se necessário.
Obrigado por compartilhar uma solução interessante para esse problema. Tentarei implementá-la em meu EA.
Atenciosamente, Vladimir.
Obrigado por compartilhar uma solução interessante para um problema semelhante. Tentarei implementá-la em meu EA.
Saudações, Vladimir.
Pode ser não apenas uma falha, mas o que é uma falha))))) Corrigir o estado do ambiente de negociação não é exatamente uma tarefa simples. E quando se faz um pedido em um instrumento, nem sequer se acredita que isso seja necessário. Mas, em um bom sentido, é necessário.
No testador, a execução ideal, na vida real, é quase ideal, mas, às vezes, não é ideal e até mesmo inadequada.
Portanto, na vida real, precisamos resolver o problema de alguma forma, para que o Expert Advisor entenda o que está acontecendo com as ordens. E se isso é claro com as ordens, é mais complicado com as ordens. A cada tick ou com menos frequência, verifique o status da ordem ou observe o preço se, de repente, ele se tornou maior ou menor que o preço da ordem para verificar o status da ordem. )))
Bom dia, Artyom! Há alguma diferença fundamental para a função OnTradeTransaction() onde ela deve estar localizada - antes da função OnTick() ou depois dela? Se for fundamental, por quê?
Atenciosamente, Vladimir.