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 é.
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.
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
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.
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.
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
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
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.
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.
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.
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.
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.