Discussão do artigo "Um Administrador de ordem virtual para rastrear ordens dentro do ambiente MetaTrader 5 de posição centrada" - página 2
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
O que você fez foi ir diretamente ao servidor com uma ordem convencional, portanto, não há nenhuma ordem virtual aberta. Você precisaria usar o VirtualOrderManagerTester para emitir uma ordem virtual manual.
Eu deveria ter deixado claro no artigo que, se um EA VOM for introduzido em um símbolo específico, todos os outros EAs que negociam esse símbolo também deverão ser habilitados para VOM. Isso se deve ao código SL de proteção contra desastres no VOM.
Paulo
Obrigado, Paulo.
O VirtualOrderManager.mqh pode ser usado no MT-5 Strategy Tester? Em caso afirmativo, como o EA deve ser configurado com o VOM?
Obrigado, Paul.
O VirtualOrderManager.mqh pode ser usado no MT-5 Strategy Tester? Em caso afirmativo, como o EA deve ser configurado com o VOM?
Estou trabalhando com o VOM em um EA do tipo Martingale. Com várias negociações de venda abertas, do mesmo tipo e par de moedas, essa função CloseAllOrders parece fechar apenas a última negociação, deixando as anteriores ainda abertas.
VOM.CloseAllOrders(_Symbol,VIRTUAL_ORDER_TYPE_SELL);Com várias ordens virtuais (vo) abertas, do mesmo tipo e par de moedas, esse código de função deve iniciar o fechamento de uma ordem vo ou deve fechar todas as ordens vo abertas?
VOM.OrdersTotal() rastreia muito bem o número de ordens virtuais abertas.
Estou trabalhando com o VOM em um EA do tipo Martingale. Com várias negociações de venda abertas, do mesmo tipo e par de moedas, essa função CloseAllOrders parece fechar apenas a última negociação, deixando as anteriores ainda abertas.
Com várias ordens virtuais (vo) abertas, do mesmo tipo e par de moedas, esse código de função deve iniciar o fechamento de uma ordem vo ou deve fechar todas as ordens vo abertas.
VOM.OrdersTotal() rastreia muito bem o número de ordens virtuais abertas.
Oi wackena,
Acabei de adicionar um botão Fechar tudo ao VirtualOrderManagerTester, veja o anexo. Ele funciona bem, embora eu admita que seja uma maneira desajeitada de fechar todas as ordens virtuais - uma maneira melhor seria somá-las e emitir uma única ordem de servidor, e vou tentar fazer isso na próxima versão.
Fique à vontade para me enviar uma cópia de um registro LOG_VERBOSE do EA para que eu possa ver melhor o que está acontecendo.
Paulo
Oi wackena,
Acabei de adicionar um botão Fechar tudo ao VirtualOrderManagerTester, veja o anexo. Ele funciona bem, embora eu admita que é uma maneira desajeitada de fechar todas as ordens virtuais - uma maneira melhor seria resumi-las e emitir uma única ordem de servidor, e vou tentar fazer isso na próxima versão.
Sinta-se à vontade para me enviar uma cópia de um registro LOG_VERBOSE do EA para que eu possa ver melhor o que está acontecendo.
Paulo
Em anexo está o arquivo de registro.
Obrigado - pelo que posso dizer no registro, as únicas chamadas para OrderClose ocorrem quando um takeprofit virtual é atingido, ou seja, qualquer código que você tenha para fechar ordens explicitamente (como CloseAllOrders) não está sendo atingido ou está sendo atingido quando não há mais ordens para fechar.
Atualização dos apêndices do artigo:
A documentação, o guia do usuário e os comentários do código-fonte da biblioteca do Virtual Order Manager agora estão disponíveis em russo.
Foi publicado o novo artigo A Virtual Order Manager to track orders within the position-centric MT5 environment:
Autor: Paul
Há um grande problema com essa biblioteca. As negociações abertas com o VOM e fechadas manualmente são vistas como abertas pelo VOM.
Além disso, quando tento fechar essas negociações no VOM, o VOM abre negociações na direção oposta.
Por exemplo:
- Abro 5 ordens de compra com o VirtualOrderManagerTester e está tudo certo
- Fecho manualmente todas as 5 ordens: no MT5, não vejo nenhuma ordem e, no gráfico (VOM), 5 ordens abertas
- Fecho as 5 ordens do VirtualOrderManagerTester: Vejo 5 ordens de venda no MT5 e nenhuma no VOM (VirtualOrderManagerTester)
Na minha opinião, esse é um grande problema porque, se as ordens do meu EA forem fechadas pelo corretor ou por outro EA, quando meu EA tentar fechá-las usando o VOM, serão abertas ordens na direção oposta.
Existe alguma solução para esse problema?
Há um grande problema com essa biblioteca. As negociações abertas com o VOM e fechadas manualmente são vistas como abertas pelo VOM.
Além disso, quando tento fechar essas negociações no VOM, o VOM abre negociações na direção oposta.
Por exemplo:
- Abro 5 ordens de compra com o VirtualOrderManagerTester e está tudo certo
- Fecho manualmente todas as 5 ordens: no MT5, não vejo nenhuma ordem e, no gráfico (VOM), 5 ordens abertas
- Fecho as 5 ordens do VirtualOrderManagerTester: Vejo 5 ordens de venda no MT5 e nenhuma no VOM (VirtualOrderManagerTester)
Na minha opinião, esse é um grande problema porque, se as ordens do meu EA forem fechadas pelo corretor ou por outro EA, quando meu EA tentar fechá-las usando o VOM, serão abertas ordens na direção oposta.
Existe alguma solução para esse problema?
Oi mbt22,
o que você destacou é definitivamente uma limitação dessa biblioteca - todos os EAs em execução em uma conta devem usar o VOM, e isso inclui negociações manuais.
No entanto, lembre-se de que essa limitação de sociabilidade dos EAs VOM provavelmente será observada em muitos EAs MQL5. Em outras palavras, esses EAs também podem falhar no caso de negociações manuais ou de outros EAs de qualquer tipo operando no mesmo símbolo.
Aqui está um exemplo de uma falha de sociabilidade de um EA não VOM: suponha que as negociações (manuais e/ou geradas pelo EA) externas a esse EA totalizem 1,0 lote a menos e que o EA emita uma ordem de compra de 0,1 lote com um stop de 50 pip.Não me lembro exatamente como a função OrderSend no EA funcionaria (se ela é concluída ou retorna um erro de stop), mas o que é certo é que o stop não pode ser aplicado 50 pips abaixo do tamanho da posição resultante de 0,9 lote a menos.
O EA de teste é capaz de gerenciar negociações manuais usando o VOM, mas se a situação chegar às ordens de fechamento do corretor, o VOM perderá o controle e será necessária uma avaliação cuidadosa da conta.
Um dos principais motivos pelos quais o VOM não é sociável com atividades que não sejam do VOM é seu gerenciamento da parada de proteção contra desastres, que é um gerenciamento de risco absoluto essencial em qualquer processo de fechamento de negociações baseado no cliente.
Paulo
Oi mbt22,
o que você destacou é definitivamente uma limitação dessa biblioteca - todos os EAs em execução em uma conta devem usar o VOM, e isso inclui negociações manuais.
No entanto, lembre-se de que essa limitação de sociabilidade dos EAs VOM provavelmente será observada em muitos EAs MQL5. Em outras palavras, esses EAs também podem falhar no caso de negociações manuais ou de outros EAs de qualquer tipo operando no mesmo símbolo.
Aqui está um exemplo de uma falha de sociabilidade de um EA não VOM: suponha que as negociações (manuais e/ou geradas pelo EA) externas a esse EA totalizem 1,0 lote a menos e que o EA emita uma ordem de compra de 0,1 lote com um stop de 50 pip.Não me lembro exatamente como a função OrderSend no EA funcionaria (se ela é concluída ou retorna um erro de stop), mas o que é certo é que o stop não pode ser aplicado 50 pips abaixo do tamanho da posição resultante de 0,9 lote a menos.
O EA de teste é capaz de gerenciar negociações manuais usando o VOM, mas se a situação chegar às ordens de fechamento do corretor, o VOM perderá o controle e será necessária uma avaliação cuidadosa da conta.
Um dos principais motivos pelos quais o VOM não é sociável com atividades que não sejam do VOM é seu gerenciamento da parada de proteção contra desastres, que é um gerenciamento de risco absoluto essencial em qualquer processo de fechamento de negociações baseado no cliente.
Paulo
Tudo bem.
Obrigado por sua resposta rápida.