Discussão do artigo "Operações de negociação Estruturas das solicitações e das resposta, descrição e registro" - página 8
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
Então, como esse manipulador de eventos encontrou uma posição aberta após um dia de negociação?
Saudações, Vladimir.
Milagres não acontecem. Você criou a lógica. Você deve ver por quê... O que você procurou no manipulador quando ele foi acionado? Como você procurou... E o que exatamente o acionou.
Há um evento - os sinais do manipulador. Nele, você precisa filtrar esses eventos...
Mas, em geral, eu não dependia desses manipuladores. Eu controlava a diferença entre o estado passado e o atual. E com base nisso. Tomei decisões sobre o que fazer.
Alexei respondeu. Depende do corretor.
Isso é uma afirmação ou uma suposição? Não estou fazendo a pergunta porque não tenho mais nada para fazer. Quero entender.
Atenciosamente, Vladimir.
Não há milagres.
Meu primeiro mentor de eletrônica também disse a mesma coisa quando trabalhou no Centro Regional de Serviços de Informática (na época da URSS). Concordo plenamente com ele e com você. Portanto, deve haver alguma explicação lógica para o problema. E uma vez em 8 meses de negociação com o Expert Advisor em uma conta real. É por isso que estou tentando descobrir para eliminar qualquer possibilidade de tal situação.
Atenciosamente, Vladimir.
Tentarei usar essa variante da função OnTradeTransaction() na vida real, para que o Expert Advisor sempre encontre uma posição aberta. Destaquei em amarelo a parte do código que deve excluir o fato de uma posição aberta "cair no esquecimento":
Funciona bem no testador, mas verei como se comporta na negociação real.
Atenciosamente, Vladimir.
Funciona bem no testador, mas verei o que acontecerá na negociação real.
Atenciosamente, Vladimir.
Vladimir, não há nenhuma conexão entre essas funções. Remova a função OpTradeTransaction() e o código funcionará exatamente da mesma forma.
Se a estratégia envolver a abertura de várias posições e uma conta grande, essa parte do código
pode causar muitos danos.
Vladimir, não há nenhuma conexão entre essas funções. Remova a função OpTradeTransaction() e o código funcionará exatamente da mesma forma.
Se a estratégia permitir a abertura de várias posições e uma conta de depósito, então essa parte do código
pode causar muitos danos.
Alexey, obrigado por me incentivar e ajudar constantemente a melhorar o código do EA. Agora vamos ao que interessa. Sim, tenho uma conta de hedge e várias posições podem ser abertas. A conexão entre OpTradeTransaction() e a parte do código que você sugere excluir é direta. Em OpTradeTransaction(), obtenho o tíquete da posição e seu preço de abertura para usar na abertura de posições adicionais. Tudo estava funcionando perfeitamente até agora. O problema surgiu quando o Expert Advisor não "viu" uma posição aberta uma vez. Eu não havia notado isso antes e pensei que o problema havia ocorrido apenas uma vez, mas, depois de executá-lo no histórico e examinar a impressão com mais detalhes, percebi que ele ocorreu mais de uma vez e não duas. Eu simplesmente não havia notado antes, mas agora percebi que o problema às vezes ocorria quando uma posição estava passando de uma sessão de negociação para outra. Enfatizo - às vezes. Por quê? Eu mesmo não consigo descobrir. Minha corretora de câmbio tem um rollover entre as sessões de negociação. Talvez por causa disso, talvez não por causa disso. Não sei. Agora tenho uma situação semelhante, mas ainda está faltando uma condição para abrir uma posição adicional. Quero testar o novo código e ver se ele causará algum dano ou não. Não tenho medo de realizar um experimento, pois não será pior e, principalmente, porque já aprendi a "resolver" situações ruins com minhas mãos. Simplesmente paro o trabalho dos dois robôs e abro uma posição ao preço que preciso.
Saudações, Vladimir.
Alexey, obrigado por me alertar e ajudar constantemente a aprimorar o código do EA. Agora vamos ao que interessa. Sim, tenho uma conta de hedge e várias posições podem ser abertas. A conexão entre OpTradeTransaction() e a parte do código que você sugere excluir é direta. Em OpTradeTransaction(), obtenho o tíquete da posição e seu preço de abertura para usar na abertura de posições adicionais. Tudo funcionava perfeitamente até agora. O problema surgiu quando o Expert Advisor não "viu" uma posição aberta uma vez. Eu não havia notado isso antes e pensei que o problema havia ocorrido apenas uma vez, mas depois de executá-lo no histórico e examinar a impressão com mais detalhes, percebi que ele ocorreu mais de uma vez e não duas. Eu simplesmente não havia notado antes, mas agora percebi que o problema às vezes ocorria quando uma posição estava passando de uma sessão de negociação para outra. Enfatizo - às vezes. Por quê? Eu mesmo não consigo descobrir. Minha corretora de câmbio tem um rollover entre as sessões de negociação. Talvez por causa disso, talvez não por causa disso. Não sei. Agora tenho uma situação semelhante, mas ainda está faltando uma condição para abrir uma posição adicional. Quero testar o novo código e ver se ele causará algum dano ou não. Não tenho medo de realizar um experimento, pois não será pior e, principalmente, porque já aprendi a "resolver" situações ruins com minhas mãos. Simplesmente paro o trabalho dos dois robôs e abro uma posição no preço que preciso manualmente.
Saudações, Vladimir.
O problema é que PositionSelect(_Symbol) não seleciona necessariamente a última posição. Portanto, se você não tiver recebido um tíquete de posição em OnTradeTransaction(), corre o risco de tomar uma decisão com base em dados errados.
O problema é que PositionSelect(_Symbol) não seleciona necessariamente a última posição. Portanto, se você não obtiver um tíquete de posição em OnTradeTransaction(), corre o risco de tomar uma decisão com base em dados errados.
Obrigado pela dica. Vou pensar um pouco e ver como isso pode prejudicar as negociações reais. Ainda não concordo com a ideia de abandonar a função OnTradeTransaction(). Precisamos entender completamente o problema e depois tomar uma decisão final.
Saudações, Vladimir.
Obrigado pela dica. Vou pensar um pouco e ver como isso pode prejudicar as negociações reais. Ainda não posso concordar em abandonar a função OnTradeTransaction(). Preciso entender completamente o problema e depois tomar uma decisão final.
Atenciosamente, Vladimir.
Eu não disse para recusar. Mas os benefícios de usá-lo dessa forma são nulos.
Remova a função OpTradeTransaction() e o código funcionará exatamente da mesma forma
No meu entendimento, excluir uma função é como se recusar a usá-la. Não importa quem e como você diz isso, o principal é descobrir. : )
Atenciosamente, Vladimir.