Discussão do artigo "Como copiar a negociação do MetaTrader 5 para o MetaTrader 4" - página 12

 

Copiar do mt4 para o mt5 e vice-versa usando seu método

funciona bem - somente com mt5 -> mt4 há um atraso.

porque não há contador lá. Mas, em geral, funciona bem.


E para o W7 / Vista, o terminal deve ser colocado na pasta comum MetaQuotes\Terminal\.

é um pouco deprimente. Mas há um desejo de escrever um programa simples (não mql)

com um ciclo de 1 segundo, que copiaria os arquivos da pasta

mt4 para mt5 e vice-versa, se eles estiverem disponíveis. Para não tocar nos terminais

 
Com o win7 eu mesmo me cansei de colocar o script, aqui todo mundo escreve que isso já foi discutido e como tudo já está claro como colocar - mas de jeito nenhum, eu não sou um programador no MQ5 como "alguns", eu sou um LAMER, um manequim se você quiser. (Escrevi sem pensar duas vezes e não quis ofender ninguém). Resumindo, todos aqueles que estão no tanque como eu: vocês precisam definir os direitos na pasta pública do MT5 e haverá uma pasta Files, que não é visível, mas está lá))))), onde instalamos um novo terminal MT4. Após a instalação, o script no MT4 deixará de gerar um erro e tudo ficará como deveria. Ao autor do script muito obrigado, hoje em dia poucas pessoas querem compartilhar algo de graça, todos querem se foder, perdoe-me a expressão, mas você sabe como é.
 
Obrigado pelo excelente material!!!
Um pedido muito grande, adicionar trabalho apenas com pedidos com um determinado número mágico.
 
Im_hungry:

Copiar do mt4 para o mt5 e vice-versa usando seu método

funciona bem - somente com mt5 -> mt4 há um atraso.

porque não há contador lá. Mas, em geral, funciona bem.


E para o W7 / Vista, o terminal deve ser colocado na pasta comum MetaQuotes\Terminal\.

é um pouco deprimente. Mas há um desejo de escrever um programa simples (não mql)

com um ciclo de 1 segundo, que copiaria os arquivos da pasta

mt4 para mt5 e vice-versa, se eles estiverem disponíveis. Para não tocar nos terminais

Boa tarde.
Do MT4 para o MT5, como fazer isso?
Eu entendo mql em um nível rudimentar.
Você pode postar uma solução pronta?
Preciso que o MT5 copie a abertura e o fechamento de negociações do MT4. Não uso stops.
Obrigado.
 

Recebo esses avisos durante a compilação. É verdade que são apenas avisos e não erros.

Compilando 'Copyist_positions.mq4'...
'cmd' - expressão de comparação esperada C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (120, 46)
'cmd' - expressão de comparação esperada C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (122, 46)
0 erro(s), 2 aviso(s)

O texto acima se refere a essas duas linhas de código:

//--- preço de abertura
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol)));}
//--- preço de fechamento
double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}

Estou achando que "if(cmd%2)" deveria ser alterado para "if(cmd<2)" mas não tenho certeza.

Recebo estes erros ao executar o script acima no MT4

2013.02.26 06:16:38 Copyist_positions EURUSDm,H1: Erro ao abrir o arquivo 4103
2013.02.26 06:16:38 Copyist_positions EURUSDm,H1: Erro interno na função ArrayInitialize

Aqui está o caminho que usei para instalar o Metatrader 4 e usei para o script de execução:

C:\Arquivos de programas\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts

Parece que algumas pessoas estão tendo os mesmos problemas. Qualquer ajuda sobre como corrigir os problemas ou uma nova versão limpa do arquivo seria bem-vinda.

Documentation on MQL5: Array Functions / ArrayInitialize
  • www.mql5.com
Array Functions / ArrayInitialize - Documentation on MQL5
 
Jeysun:

Recebo esses avisos durante a compilação. É verdade que são apenas avisos e não erros.

Compilando 'Copyist_positions.mq4'...
'cmd' - expressão de comparação esperada C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (120, 46)
'cmd' - expressão de comparação esperada C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (122, 46)
0 erro(s), 2 aviso(s)

O texto acima se refere a essas duas linhas de código:

//--- preço de abertura
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol)));}
//--- preço de fechamento
double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}

Estou achando que "if(cmd%2)" deveria ser alterado para "if(cmd<2)" mas não tenho certeza.

Presumo que CMD seja o tipo de ordem/operação OP_BUY é 0 OP_SELL é 1, portanto OP_BUY%2 = 0 OP_SELL%2 = 1, 0 e 1 equivalem a falso e verdadeiro. Portanto, (cmd%2) é verdadeiro para uma OP_SELL e o preço de abertura para uma OP_SELL é Bid e o preço de fechamento é Ask
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
Jeysun:

Aqui está o caminho que usei para instalar o Metatrader 4 e usei para o script de execução:

C:\Arquivos de programas\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts

Parece que algumas pessoas estão tendo os mesmos problemas. Qualquer ajuda sobre como corrigir os problemas ou uma nova versão limpa do arquivo seria bem-vinda.

Talvez seja um problema de UAC, tente instalar em uma pasta que não seja Arquivos de Programas, por exemplo, C:\MT4Installs\
 

RaptorUK:
Talvez seja um problema de UAC, tente instalar em uma pasta diferente de Arquivos de Programas, por exemplo, C:\MT4Installs\

Obrigado pela explicação e pela sugestão.

Tentei novas instalações do Metatrader 5 em "C:\MetaTrader 5 (2nd)\" e do Metatrader 4 em "C:\MetaTrader 5 (2nd)\MQL5\Files\MT4\", mas ainda estou tendo os mesmos erros ao executar o script "copyist positions". Meu sistema operacional é o Windows 8.

Estou achando que pode ser o que o arquivo "Translator positions" está fazendo, pois ele não parece escrever um arquivo para o "copyist positions" ler. Talvez eu tenha que aprender um pouco de mql5 para entender isso. Parece que o script "copyist_positions" seria mais adequado como um EA em vez de um script. Tenho uma copiadora de comércio de MT4 para MT4 que funciona muito bem. Estou tendo dificuldades para encontrar uma copiadora de negociação de MT5 para MT4 que funcione.

 
Muito obrigado pelo código, foi muito útil.
 
Im_hungry:

Mas havia o desejo de escrever um programa simples (não mql)

com um ciclo de 1 segundo, que copiasse os arquivos da pasta

mt4 para mt5 e vice-versa, se eles estiverem disponíveis. Para não tocar nos terminais

criei uma copiadora simples. Definimos de onde, para onde e o intervalo de cópia.

Comece a copiar com o botão "Save/start" (Salvar/iniciar). Durante o trabalho, ele piscará ))).

No Translator positions.MQ5, você pode alterar a linha int han=FileOpen(subfolder+"\\\experts\\\files\\\\"+folder+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,","); para int han=FileOpen(folder+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,","); ou seja, o arquivo será gravado na pasta \\Program Files\MetaTrader 5\MQL5\Files.

Arquivos anexados:
CopyFile.zip  168 kb