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

 
raminzk:

graças a alexvd problema resolvido!

alexvd:


Remova ou comente a linha

#property show_inputs



É uma propriedade de scripts, portanto o novo compilador decide que é um script
tudo bem, obrigado
 
currencyscalper:

Olá, Raminzk,

O EA está funcionando bem, porque no meu caso ele não está copiando nenhuma negociação. Depois da atualização, talvez devêssemos mudar alguma coisa nas pastas?

Alguém pode ajudar?

Estou trabalhando nisso, se eu obtiver algum resultado, publicarei aqui. Você recebeu algum erro ou aviso durante o tempo de execução?
 

Finalmente, consegui uma versão funcional no novo MT4 sem nenhum erro de array fora do intervalo, restrições na instalação de terminais de meta trader e interferência do UAC do Windows. Por esse motivo e também por algumas incompatibilidades, alterei os dois arquivos e anexei as novas versões a esta postagem.

Agora vou explicar passo a passo:

1. Instale o MT5 onde você quiser. Eu instalei no padrão C:\ProgramFiles

2. Instale o novo MT4 em qualquer lugar que você quiser. Instalei em C:\ProgramFiles padrão - em tempo de execução, esses dois programas serão movidos para [user]\AppData\Roaming\MetaQuotes\Terminal\

3. Execute o cmd.exe como administrador e execute o comando mklink para criar um link entre uma pasta virtual que você apontou para ela em seu expert em execução no MT4 (copyist_positions_V2.mq4) e a pasta "Files" do MT5.

(O Translator_Positions_V2.mq5 é alterado para gravar o arquivo na pasta Files de sua posição instalada)

O comando seria algo como isto:

mklink /D "C:\Users\Ramin\AppData\Roaming\MetaQuotes\Terminal\50CA3DFB510CC5A8F28B48D1BF2A5702\MQL4\Files\Link2MT5_DataFolder" "C:\Users\Ramin\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files"

Você pode copiar facilmente esses dois endereços longos da barra de endereços ao executar o item "abrir pasta de dados" de cada terminal no menu arquivo.

O nome "Link2MT5_DataFolder" refere-se a uma pasta virtual que você pode selecionar como parâmetro copyist_positions_V2. MAS certifique-se de que o nome que você seleciona como parâmetro especializado e o nome que você usa na linha de comando sejam os mesmos.

4. Anexe os especialistas aos terminais e não se esqueça de definir o parâmetro "link_folder_name" do copyist_positions_v2 com o nome que você selecionou para a pasta virtual, aqui: Link2MT5_DataFolder

5. Os programas são executados corretamente, mas ainda há um problema: algumas negociações de tempo são copiadas com atrasos da ordem de vários minutos!!!?

Agradeço a Nikolay por esse bom artigo...


Arquivos anexados:
 
raminzk:

Finalmente, consegui uma versão funcional no novo MT4 sem nenhum erro de array fora do intervalo, restrições na instalação de terminais de meta trader e interferência do UAC do Windows. Por esse motivo e também por algumas incompatibilidades, alterei os dois arquivos e anexei as novas versões a esta postagem.



Para as linhas a seguir, isso agora deve ser definido para ter FILE_UNICODE em vez de FILE_ANSI?

//--- abrir arquivo para gravação, modo de leitura compartilhada
   int han=FileOpen(filename+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,",");
 

Outra pergunta: seria melhor usar a pasta comum para o arquivo compartilhado?

Ou seja, C:\Usuários\<seu nome>\AppData\Roaming\MetaQuotes\Terminal\Common

 
BP33:
Para as linhas a seguir, isso agora deve ser definido como FILE_UNICODE em vez de FILE_ANSI?

Como eu sei que o formato de arquivo ANSI é adequado para arquivos CSV que são, de fato, arquivos de texto
 
BP33:

Outra pergunta: seria melhor usar a pasta comum para o arquivo compartilhado?

Ou seja, C:\Usuários\<seu nome>\AppData\Roaming\MetaQuotes\Terminal\Common

Isso não é importante, você pode usar a pasta comum, mas deve usar o endereço apropriado para apontar esse local na abertura do arquivo. Eu usei o endereço padrão. Quando você não especifica um endereço nos comandos de abertura de arquivo, o arquivo é gerado na pasta files
 
raminzk:
Isso não é importante, você pode usar a pasta comum, mas deve usar o endereço apropriado para apontar esse local na abertura do arquivo. Eu usei o endereço padrão. Quando você não especifica um endereço nos comandos de abertura de arquivo, o arquivo é gerado na pasta files
Ok, obrigado :)
 
Obrigado por seu trabalho , raminzk, que me ajudou muito.
 

Obrigado, Raminzk! Você me ajudou muito!

Tive um pequeno problema com o comando "mklink" no Windows Server 2012. Recebi a seguinte mensagem: "O termo 'mklink' não é reconhecido".

Se alguém tiver o mesmo problema, escreva um comando como este: cmd /c "mklink /D c:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\01BA5EF0D3A9B913D6D3829DD4594A7F\MQL4\Files\Link2MT5_DataFolder c:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\AA82CE0AC7C62FBE1F51AB464A314D34\MQL5\Files\"