Discussione sull’articolo "Come copiare il trading da MetaTrader 5 a MetaTrader 4" - pagina 13

 
zhserg:

Ho creato una semplice copiatrice. Imposta da dove, a dove e copia l'intervallo.

file exe nell'archivio
 
Warstein:
Grazie per il grande materiale!!!
Richiesta molto grande, aggiungere il lavoro solo con gli ordini con un certo numero di magik.

Io sostengo l'idea, forse qualcuno scriverà, e così il codice è grande grazie all'autore tutto è super! Ho solo bisogno di trovare un buon trader e chiedere di investire ;)

 

Dovremmo aggiungere.

1. Proporzionalità del lotto - da 5 cifre a 4 cifre - anche il lotto si sposta di 1 cifra.

In generale, è meglio estrarre non il lotto, ma il margine libero, il lotto e le cifre decimali, e al ricevitore ricalcolare il lotto in base al margine libero e alle cifre decimali disponibili.

In questo modo si preserva la gestione manuale, senza la quale il programma perde di significato.

2. Prefissi-suffissi ai simboli - a volte DC chiama un simbolo di trading non EURUSD, ma EURUSD_byaka (probabilmente è meglio fare la corrispondenza "da quale a quale" simbolo duplicato in un file di configurazione separato).

3. sarebbe bello realizzare la copia di un file in più file mt4.

Ad esempio ricevendo un file mt4 dalla cartella mt5 con l'aiuto di:

#import "kernel32.dll"
   bool CopyFileA(string lpExistingFileName, string lpNewFileName, bool bFailIfExists);
#import

/////////////////

CopyFileA(TerminalPath()+CharToStr(92)+"experts"+CharToStr(92)+"files"+CharToStr(92)+fSymbol+".txt",CopyTo1+fSymbol+".txt",false);

In questo modo si può andare oltre la sandbox dei file mt4.

In mql5, purtroppo, questo e altri trucchi simili di MSDN non funzionano.

In generale, lo proverò e se non ci sono bug, non scriverò il mio per ora. Grazie.

 
zhserg:

Ho creato una semplice copiatrice. Impostare da dove, verso dove e l'intervallo di copia.

Avviare la copia con il pulsante "Salva/Avvia". Durante il lavoro lampeggerà ))).

In Translator positions.MQ5 è possibile modificare la riga int han=FileOpen(sottocartella+"+cartella+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,"); in int han=FileOpen(cartella+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,"); cioè il file verrà scritto nella cartella \Program Files\MetaTrader 5\MQL5\Files.

È possibile utilizzare un bootnik. Sarà sia in rete che all'interno del computer.

@Echo off
:loop
xcopy "F:\folder\*.txt" "\\Comp1\folder" /Y /R /C /I /G /Z /D >nul
xcopy "C:\Program Files\MetaTrader 5\MQL5\Files\Translator positions.csv" "C:\Program Files\MetaTrader 4\experts\files" /Y /R /C /I /G /Z /D >nul
timeout /t 1
goto :loop

A proposito, per la sincronizzazione dei file mega consiglio Microsoft SyncToy 2 .1 http://www.microsoft.com/en-us/download/details.aspx?id=15155.

SyncToy 2.1
SyncToy 2.1
  • www.microsoft.com
Note: There are multiple files available for this download. Once you click on the “Download” button, you will be prompted to select the files you need. Overview There are files from all kinds of sources that we want to store and manage. Files are created by our digital cameras, e-mail, cell phones, portable media players...
 
Tutto questo non è più rilevante, l'articolo ha superato se stesso, un nuovo compilatore mql4++ con caratteristiche avanzate sarà presto rilasciato, tutto cambierà.
 

Credo che il problema sia legato alla posizione in cui Metatrader memorizza i dati. Nelle versioni più recenti di Windows non utilizza le sottocartelle della cartella di installazione.

Sul server 2008 (nel mio caso) MT5 utilizza:
C:\Users\[nome utente]\AppData\Roaming\MetaQuotes\Terminal\[numero esadecimale lungo]\MQL5\etc...

Ogni installazione del terminale utilizza la propria cartella in questa posizione con un unico [numero esadecimale lungo]. Ho provato a installare MT4 nel percorso della cartella di cui sopra, ma legge e scrive anche dalla propria cartella dati unica, quindi non funziona. In ogni caso, eseguire programmi da questa posizione non è probabilmente una buona idea.

Sospetto che sia questo il problema anche su Windows 8.

A questo punto sono a corto di idee, ma spero che queste informazioni siano utili.

 

Le mie posizioni dei file di dati MT4 su Windows Server 2008:

C:\Users\[username]\AppData\Local\VirtualStore\Program Files\[nome della cartella del programma MT4]

Immagino che il sistema operativo stia reindirizzando le operazioni sui file.

 

4103 - errore di apertura del file, significa che MT5 sta scrivendo operazioni in un file e MT4 non riesce a trovarlo.

Questo accade perché MT5 funziona in modo diverso da MT4. In MT5 la cartella di installazione è diversa da quella di esecuzione. Ad esempio, ho installato MT5 in C:\Accounts\MT5, e MT4 in C:\Accounts\MT5\MQL\Files\MetaTrader 4.

MT5 ha creato una cartella C:\Users\[nomeutente]\AppData\Roaming\MetaQuotes\Terminal\[numero esadecimale lungo]\MQL5\etc... ed effettivamente funziona da qui. Quindi MT5 scrive le operazioni da qualche parte in questa cartella.

Come indicato nell'articolo originale, MT4 dovrebbe essere "dentro" la cartella MT5. Quindi la soluzione sta nel rendere la cartella di installazione di MT5 "STESSA" della cartella di esecuzione. Il modo più semplice è

1. disinstallare tutte le istanze di MT5

2. Eliminare la cartella 'Metaquotes' da C:\Users\[username]\AppData\Roaming\

Ora la cartella install sarà identica alla cartella run:

3. Reinstallare MT5. Non deve trovarsi nella cartella dei file di programma, ma ad esempio in C:\Accounts\MT5. Durante l'installazione, deselezionare "lancia dopo la fine" (passaggio critico).

4. PRIMA di avviare MT5 per la prima volta, fare clic con il tasto destro del mouse sul collegamento di MT5 sul desktop, fare clic su proprietà, aggiungere "/portable" al percorso, senza virgolette. Quindi sarà C:\Accounts\MT5\terminal.exe /portable. (Si noti che c'è uno spazio dopo terminal.exe, una barra in avanti, portable senza lettere maiuscole). Fare clic su OK.

Ora installeremo MT4, copieremo gli EA ed eseguiremo i terminali.

5. Installare MT4 in C:\Accounts\MT5\MQL\Files\MetaTrader 4. (Si noti che il nome della cartella MetaTrader 4, o qualunque sia, deve essere identico a quello degli EA).

6. Copiate Translator e Copyist EA nelle rispettive cartelle.

7. Eseguire sia MT5 master che MT4 slave.

8. Buon divertimento!!!

Suggerimento: Non procedere al passo successivo se qualcosa non è stato fatto correttamente.

Scusate l'uso di un linguaggio 'non tecnico', questo è il massimo che ci si può aspettare da un medico!

 
doctornasir:

4103 - errore di apertura del file, significa che MT5 sta scrivendo operazioni in un file e MT4 non riesce a trovarlo.

Questo accade perché MT5 funziona in modo diverso da MT4. In MT5 la cartella di installazione è diversa da quella di esecuzione. Ad esempio, ho installato MT5 in C:\Accounts\MT5, e MT4 in C:\Accounts\MT5\MQL\Files\MetaTrader 4.

MT5 ha creato una cartella C:\Users\[nomeutente]\AppData\Roaming\MetaQuotes\Terminal\[numero esadecimale lungo]\MQL5\etc... ed effettivamente funziona da qui. Quindi MT5 scrive le operazioni da qualche parte in questa cartella.

Come indicato nell'articolo originale, MT4 dovrebbe essere "dentro" la cartella MT5. Quindi la soluzione sta nel rendere la cartella di installazione di MT5 "STESSA" della cartella di esecuzione. Il modo più semplice è

1. disinstallare tutte le istanze di MT5

2. Eliminare la cartella 'Metaquotes' da C:\Users\[username]\AppData\Roaming\

Ora la cartella install sarà identica alla cartella run:

3. Reinstallare MT5. Non deve trovarsi nella cartella dei file di programma, ma ad esempio in C:\Accounts\MT5. Durante l'installazione, deselezionare "lancia dopo la fine" (passaggio critico).

4. PRIMA di avviare MT5 per la prima volta, fare clic con il tasto destro del mouse sul collegamento di MT5 sul desktop, fare clic su proprietà, aggiungere "/portable" al percorso, senza virgolette. Quindi sarà C:\Accounts\MT5\terminal.exe /portable. (Si noti che c'è uno spazio dopo terminal.exe, una barra in avanti, portable senza lettere maiuscole). Fare clic su OK.

Ora installeremo MT4, copieremo gli EA ed eseguiremo i terminali.

5. Installare MT4 in C:\Accounts\MT5\MQL\Files\MetaTrader 4. (Si noti che il nome della cartella MetaTrader 4, o qualunque sia, deve essere identico a quello degli EA).

6. Copiate Translator e Copyist EA nelle rispettive cartelle.

7. Eseguire sia MT5 master che MT4 slave.

8. Buon divertimento!!!

Suggerimento: Non procedere al passo successivo se qualcosa non è stato fatto correttamente.

Scusate se ho usato un linguaggio "non tecnico", questo è il massimo che ci si può aspettare da un medico!

Grazie per aver trovato il tempo di scriverlo.

Un altro modo è quello di mantenere le impostazioni di installazione predefinite e di creare un collegamento simbolico tra le due cartelle.

http://en.wikipedia.org/wiki/NTFS_symbolic_link

 

compilatore mql4++

si tratta di una nuova versione per il ricevitore in mt4, con parametri aggiuntivi?