Con win7 io stesso mi sono stancato di mettere lo script, qui tutti scrivono che se ne è già parlato e come se tutto fosse già chiaro come metterlo - ma niente da fare, io non sono un programmatore in MQ5 come "alcuni" sono un LAMER, uno scemo se vogliamo. (Ho scritto senza alcun retropensiero, e non volevo offendere nessuno). In breve, tutti quelli che sono in vasca come me: bisogna impostare i diritti sulla cartella public di MT5 e ci sarà una cartella Files, non è visibile ma c'è))))), lì installiamo un nuovo terminale MT4. Dopo l'installazione lo script in MT4 smetterà di generare errori e tutto sarà come dovrebbe essere. All'autore dello script va un sentito ringraziamento, al giorno d'oggi pochi vogliono condividere qualcosa per niente, tutti vogliono fottersi a vicenda, scusate l'espressione, ma sapete com'è.
Sembra che alcune persone stiano avendo gli stessi problemi. Qualsiasi aiuto su come risolvere i problemi o su una nuova versione pulita del file sarebbe apprezzato.
Quanto sopra si riferisce a queste due righe di codice:
//--- open price double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol));} //--- close price double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}
Penso che "if(cmd%2)" debba essere cambiato in "if(cmd<2)" , ma non ne sono sicuro.
Penso che il codice sia corretto, non molto leggibile, qualcuno potrebbe dire orribile, ma corretto. Presumo che CMD sia il tipo di ordine/operazione OP_BUY è 0 OP_SELL è 1, quindi OP_BUY%2 = 0 OP_SELL%2 = 1, 0 e 1 equivalgono a falso e vero. Quindi (cmd%2) è vero per un OP_SELL e il prezzo di apertura di un OP_SELL è Bid e il prezzo di chiusura è Ask.
Sembra che alcune persone stiano avendo gli stessi problemi. Qualsiasi aiuto su come risolvere i problemi o su una nuova versione pulita del file sarebbe apprezzato.
Forse si tratta di un problema di UAC, provare a installare in una cartella diversa da quella dei file di programma, ad esempio C:\MT4Installs\
RaptorUK: Forse è un problema di UAC, prova a installare in una cartella diversa da quella dei programmi, ad esempio C:\MT4Installs\
Grazie per la spiegazione e il suggerimento.
Ho provato a installare Metatrader 5 in "C:\MetaTrader 5 (2nd)\" e Metatrader 4 in "C:\MetaTrader 5 (2nd)\MQL5\Files\MT4\", ma continuo a riscontrare gli stessi errori durante l'esecuzione dello script "copyist positions". Il mio sistema operativo è Windows 8.
Sto pensando che potrebbe essere il file "Posizioni del traduttore" a fare la differenza, poiché non sembra scrivere un file da leggere per "Posizioni del copista". Forse dovrò imparare un po' di mql5 per capirlo. Sembra che lo script "copyist_positions" sia più adatto come EA piuttosto che come script. Ho un copiatore di operazioni da MT4 a MT4 che funziona benissimo. Ho difficoltà a trovare un copiatore di operazioni da MT5 a MT4 che funzioni.
Ma c'era il desiderio di scrivere un semplice programma (non mql)
con un ciclo di 1 secondo - che copiasse i file dalla cartella
mt4 a mt5 e viceversa se sono disponibili. Per non toccare i terminali
Ho creato una semplice copiatrice. Si imposta da dove, verso dove e l'intervallo di copia.
Avvio della 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.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Copiare da mt4 -> mt5 e viceversa usando il tuo metodo
funziona bene - solo con mt5 -> mt4 c'è un ritardo.
perché lì non c'è un contatore. Ma in generale funziona bene.
E per W7/Vista il terminale deve essere collocato nella cartella comune MetaQuotes/Terminal.
è un po' deprimente. Ma c'è un desiderio di scrivere un semplice programma (non mql)
con un ciclo di 1 secondo - che copi i file dalla cartella
mt4 a mt5 e viceversa se sono disponibili. Per non toccare i terminali
Copiare da mt4 -> mt5 e viceversa usando il tuo metodo
funziona bene - solo con mt5 -> mt4 c'è un ritardo.
perché lì non c'è un contatore. Ma in generale funziona bene.
E per W7/Vista il terminale deve essere collocato nella cartella comune MetaQuotes/Terminal.
è un po' deprimente. Ma c'è un desiderio di scrivere un programma semplice (non mql)
con un ciclo di 1 secondo - che copi i file dalla cartella
mt4 a mt5 e viceversa se sono disponibili. In modo da non toccare i terminali
Ricevo questi avvertimenti durante la compilazione. Certo, si tratta solo di avvisi e non di errori.
Compilazione di 'Copyist_positions.mq4'...
'cmd' - espressione di confronto attesa C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (120, 46)
'cmd' - espressione di confronto attesa C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (122, 46)
0 errore/i, 2 avviso/i
Quanto sopra si riferisce a queste due righe di codice:
//--- open price
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol));}
//--- close price
double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}
Penso che "if(cmd%2)" debba essere cambiato in "if(cmd<2)" , ma non ne sono sicuro.
Ricevo questi errori quando eseguo lo script di cui sopra in MT4
2013.02.26 06:16:38 Copyist_positions EURUSDm,H1: Errore nell'apertura del file 4103
2013.02.26 06:16:38 Copyist_positions EURUSDm,H1: ArrayInitialize errore interno della funzione
Ecco il percorso che ho utilizzato per installare Metatrader 4 e per eseguire lo script:
C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts
Sembra che alcune persone stiano avendo gli stessi problemi. Qualsiasi aiuto su come risolvere i problemi o su una nuova versione pulita del file sarebbe apprezzato.
Ricevo questi avvertimenti durante la compilazione. Certo, si tratta solo di avvisi e non di errori.
Compilazione di 'Copyist_positions.mq4'...
'cmd' - espressione di confronto attesa C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (120, 46)
'cmd' - espressione di confronto attesa C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (122, 46)
0 errore/i, 2 avviso/i
Quanto sopra si riferisce a queste due righe di codice:
//--- open price
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol));}
//--- close price
double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}
Penso che "if(cmd%2)" debba essere cambiato in "if(cmd<2)" , ma non ne sono sicuro.
Ecco il percorso che ho utilizzato per installare Metatrader 4 e per eseguire lo script:
C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts
Sembra che alcune persone stiano avendo gli stessi problemi. Qualsiasi aiuto su come risolvere i problemi o su una nuova versione pulita del file sarebbe apprezzato.
RaptorUK:
Forse è un problema di UAC, prova a installare in una cartella diversa da quella dei programmi, ad esempio C:\MT4Installs\
Grazie per la spiegazione e il suggerimento.
Ho provato a installare Metatrader 5 in "C:\MetaTrader 5 (2nd)\" e Metatrader 4 in "C:\MetaTrader 5 (2nd)\MQL5\Files\MT4\", ma continuo a riscontrare gli stessi errori durante l'esecuzione dello script "copyist positions". Il mio sistema operativo è Windows 8.
Sto pensando che potrebbe essere il file "Posizioni del traduttore" a fare la differenza, poiché non sembra scrivere un file da leggere per "Posizioni del copista". Forse dovrò imparare un po' di mql5 per capirlo. Sembra che lo script "copyist_positions" sia più adatto come EA piuttosto che come script. Ho un copiatore di operazioni da MT4 a MT4 che funziona benissimo. Ho difficoltà a trovare un copiatore di operazioni da MT5 a MT4 che funzioni.
Ma c'era il desiderio di scrivere un semplice programma (non mql)
con un ciclo di 1 secondo - che copiasse i file dalla cartella
mt4 a mt5 e viceversa se sono disponibili. Per non toccare i terminali
Ho creato una semplice copiatrice. Si imposta da dove, verso dove e l'intervallo di copia.
Avvio della 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.