Envio de ordem à mercado a partir de um arquivo.

 

Alguém sabe me dizer se é possível fazer uma entrada à mercado em mais de um meta5 simultaneamente, usando um arquivo como entrada dos parÂmetros? A situação é que tenho uma máquina somente, com 3 instâncias do meta5 e toda vez que entro, tenho que fazer a mesma entrada nas 3 instâncias. Pensei em usar um arquivo para que pudesse fazer essas entradas de uma vez só. Alguém pode me ajudar?


Obrigado

Luiz Menani

 
menani:

Alguém sabe me dizer se é possível fazer uma entrada à mercado em mais de um meta5 simultaneamente, usando um arquivo como entrada dos parÂmetros? A situação é que tenho uma máquina somente, com 3 instâncias do meta5 e toda vez que entro, tenho que fazer a mesma entrada nas 3 instâncias. Pensei em usar um arquivo para que pudesse fazer essas entradas de uma vez só. Alguém pode me ajudar?


Obrigado

Luiz Menani

Olá Luiz,

sim é perfeitamente possível copiar a operação de uma instância para outra, ou para outra maquina na sua rede ou fora dela.  No Freelance você pode contratar um desenvolvedor para escrever os programas para você.

 
menani:

Alguém sabe me dizer se é possível fazer uma entrada à mercado em mais de um meta5 simultaneamente, usando um arquivo como entrada dos parÂmetros? A situação é que tenho uma máquina somente, com 3 instâncias do meta5 e toda vez que entro, tenho que fazer a mesma entrada nas 3 instâncias. Pensei em usar um arquivo para que pudesse fazer essas entradas de uma vez só. Alguém pode me ajudar?


Obrigado

Luiz Menani

Olá @menani

Vc pode usar um robô para obter os parâmetros de um arquivo ( https://www.mql5.com/pt/docs/files )  e enviar a ordem a mercado. O problema é que, para ser acessado por um robô MT5, o arquivo tem que estar dentro da "sandbox" ("caixa de proteção") da instância MT5 onde o robô roda, o que te obrigaria a manter 3 réplicas do mesmo arquivo, uma para cada instância.

No entanto, há uma biblioteca gratuita chamada CDir ( https://www.mql5.com/en/code/17623 ) que possibilita acessar arquivos fora da "sandbox". Eu nunca experimentei usá-la, mas, se ela fizer o que promete, vc poderá ter 3 robôs idênticos, cada um rodando em uma das suas instâncias MT5, e todos eles lendo o mesmo arquivo situado em algum local fora das "sandboxes" das 3 instâncias.

Espero que ajude.

Abraços

Documentação sobre MQL5: Funções de Arquivo
Documentação sobre MQL5: Funções de Arquivo
  • www.mql5.com
Por razões de segurança, o trabalho com arquivos é estritamente controlada na língua MQL5. Arquivos com que as operações de arquivo são conduzidas usando os meios MQL5, não podem estar fora da caixa de proteção do arquivo. na pasta comum para todos os terminais instalados no computador - geralmente no diretório C:\Documents and Settings\All...
 

Ok. Muitissimo obrigado. Vou tentar. 

Abraços

 
menani:

Ok. Muitissimo obrigado. Vou tentar. 

Abraços

Boa tarde a Todos,


Como disse o @Trader_Patinhas da para fazer via arquivo de texto, porem quando se usa leitura/gravação em disco vc corre o risco de perder tempo nesse processo. Se pensarmos nos periféricos dos computadores vemos que nos últimos anos o único que não tem se atualizado é o HD magnético(esquecendo dos hd's ssd logicamente). Então minha sugestão seria criar um conjunto de programas que utilizem conexões através de socktes, onde você poderia usar em uma rede local ou ate mesmo via internet.

 
Jonathan Pereira:

Boa tarde a Todos,


Como disse o @Trader_Patinhas da para fazer via arquivo de texto, porem quando se usa leitura/gravação em disco vc corre o risco de perder tempo nesse processo. Se pensarmos nos periféricos dos computadores vemos que nos últimos anos o único que não tem se atualizado é o HD magnético(esquecendo dos hd's ssd logicamente). Então minha sugestão seria criar um conjunto de programas que utilizem conexões através de socktes, onde você poderia usar em uma rede local ou ate mesmo via internet.

Uma solução que eu já usei e funciona muito bem é a comunicação por meio de "named pipes" ( https://www.mql5.com/pt/articles/503 ).

Esta solução possibilita transmitir dados em alta velocidade, tanto entre dois robôs MT5 quanto entre robô MT5 e programas externos (testei as duas situações). 

Este tipo de comunicação é entre 2 agentes. No caso do OP, que deseja sincronizar 3 robôs, ele poderia escolher um dos robôs para ser o "mestre", que recebe os parâmetros do usuário e os repassa aos demais robôs por meio de "named pipe".

Comunicando-se com o MetaTrader 5 utilizando pipes nomeados sem DLLs
Comunicando-se com o MetaTrader 5 utilizando pipes nomeados sem DLLs
  • www.mql5.com
Muitos desenvolvedores encontram o mesmo problema - como chegar ao sandbox do terminal sem utilizar DLLs arriscados. Um dos métodos mais fáceis e seguros é utilizar pipes nomeados padrão que funcionam como operações de arquivo normais. Eles permitem que você organize a comunicação cliente-servidor interprocessadores entre programas. Embora já...