Discussão do artigo "Um Administrador de ordem virtual para rastrear ordens dentro do ambiente MetaTrader 5 de posição centrada" - 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
Essa biblioteca agora está praticamente obsoleta, pois o MT5 está oferecendo uma conta de hedge. Você ainda pode precisar dela na conta de compensação, mas será que realmente vale a pena?
Minha EA é do tipo grade em expansão, operando em um símbolo, de modo que preciso acompanhar cada negociação ou nível da grade individualmente para saber onde abrir o próximo nível. No MT4, tenho feito isso observando a lista de negociações abertas e usando-as para calcular a posição em que preciso abrir a próxima negociação na grade. No MT5, descobri que ele está despejando todas as negociações em uma grande posição, o que elimina completamente esse método.Por exemplo, não posso ter duas negociações de compra abertas no MT5, porque ele as combina em uma única posição. Como posso calcular onde será o nível seis de uma grade de compra se não sei onde estão os níveis de um a cinco? Espero que você possa entender o que quero dizer. Essa biblioteca foi a única maneira que encontrei para contornar esse problema. No MT4, também estou usando números mágicos exclusivos em cada negociação para identificar cada nível da grade. No MT5, descobri que também não posso definir números mágicos exclusivos, portanto, vou armazená-los no disco. Se houver uma maneira melhor de gerenciar níveis de grade como esse no MT5, estou ansioso para aprender.
O programa tem cerca de 6.000 linhas, portanto, não estou muito interessado em reescrevê-lo. Passei a maior parte de duas semanas fazendo com que ele compilasse corretamente no MT5 e tenho certeza de que funcionará bem quando eu passar a armazenar os números mágicos no disco em vez de no servidor da corretora.
Em uma nota positiva, descobri como corrigir os erros na biblioteca VOM, portanto, espero que isso ajude alguém. Usando a versão 2 da biblioteca, você precisa alterar a linha 855 do arquivo virtualordermanager.mqh de :
MtRequest.type_filling=ORDER_FILLING_FOK;para
MtRequest.type_filling=SYMBOL_FILLING_FOK;então ele abrirá as negociações corretamente, sem erros.
Minha EA é do tipo grade em expansão, operando em um símbolo, de modo que preciso rastrear cada negociação ou nível da grade individualmente para saber onde abrir o próximo nível. No MT4, tenho feito isso observando a lista de negociações abertas e usando-as para calcular a posição em que preciso abrir a próxima negociação na grade. No MT5, descobri que ele está despejando todas as negociações em uma grande posição, o que elimina completamente esse método.Por exemplo, não posso ter duas negociações de compra abertas no MT5, porque ele as combina em uma única posição. Como posso calcular onde será o nível seis de uma grade de compra se não sei onde estão os níveis de um a cinco? Espero que você possa entender o que quero dizer. Essa biblioteca foi a única maneira que encontrei para contornar esse problema. No MT4, também estou usando números mágicos exclusivos em cada negociação para identificar cada nível da grade. No MT5, descobri que também não posso definir números mágicos exclusivos, portanto, em vez disso, vou armazená-los no disco. Se houver uma maneira melhor de gerenciar níveis de grade como esse no MT5, estou ansioso para aprender.
O programa tem cerca de 6.000 linhas, portanto, não estou muito interessado em reescrevê-lo. Passei a maior parte de duas semanas fazendo com que ele compilasse corretamente no MT5 e tenho certeza de que funcionará bem quando eu passar a armazenar os números mágicos no disco em vez de no servidor da corretora.
Em uma nota positiva, descobri como corrigir os erros na biblioteca VOM, portanto, espero que isso ajude alguém. Usando a versão 2 da biblioteca, você precisa alterar a linha 855 do arquivo virtualordermanager.mqh de :
para
então ele abrirá as negociações corretamente, sem erros.
Essa biblioteca agora está praticamente obsoleta, pois o MT5 está oferecendo uma conta de hedge. Você ainda pode precisar dela na conta de compensação, mas será que realmente vale a pena?
Sim, é algo muito comum no desenvolvimento de software.
Obrigado, Alain, agora entendi o que você quis dizer. Peço desculpas por não ter prestado mais atenção ao que você disse sobre hedging primeiro. Estava ficando louco tentando fazer esse VOM funcionar, bem como todas as outras mudanças necessárias para que meu EA funcionasse no MT5. Acho que vou fazer uma pausa e voltar quando tiver dormido um pouco.Até agora, tenho tentado fazer uma versão que funcione no MT4 e no MT5 usando compilação condicional, mas essa ideia não está funcionando tão bem quanto eu gostaria. Mais uma vez, obrigado por me indicar a direção certa.