Nome del file per il tester, specificando la sua estensione e racchiuso tra doppi apici (come una stringa costante). Il file specificato verrà passato al tester per il lavoro. I file di input per i test, se necessario, dovrebbero sempre essere specificati
Se qualche file datafile .csv è richiesto per il funzionamento del programma, e si trova in terminal_directory\MQL5\Files, il file verrà automaticamente spostato dal tester intesting_agent_directory\MQL5\Files (questo è ciò per cui deve essere specificata la #property tester_file datafile.csv).
Lo stesso vale quando un file di prova si trova nella cartella comune del terminale?
Se aggiungo la linea:
#property tester_file "Test.txt"
...ottengo un errore come questo:
//---
Voglio trasferire un file nel cloud da una cartella condivisa del terminale. Come si fa?
Si preme il pulsante "Start" e il processo di ottimizzazione viene avviato. Il terminale prepara il compito per gli agenti tester, che include:
Ho un file compilato del mio Expert Advisor come EX5;
indicatori e librerie EX5 collegate dalle direttive #property tester_indicator e #property tester_library (le DLL sono decisamente vietate nel cloud)
i file di dati necessari per i test, che sono collegati usando la direttiva #property tester_file;
condizioni di test/ottimizzazione (nome della sicurezza, intervallo di test, modalità di simulazione, ecc.)
ambiente di trading (proprietà dei simboli, condizioni di trading, ecc.)
un insieme di parametri di Expert Advisor, che formano l'intero insieme di passaggi richiesti - compiti.
Il terminale MetaTrader 5 comunica con i nodi della rete MQL5 Cloud Network e dà ad ogni nodo un lotto separato di compiti per l'esecuzione di passaggi specifici. Ogni nodo è in realtà un proxy, poiché riceve un compito e un pacchetto di compiti (singoli passaggi), e poi inizia a distribuire questi compiti agli agenti ad esso collegati. In questo caso, i file di Expert Advisor, indicatori, librerie e dati stessi non vengono salvati sui dischi rigidi dei server di MQL5 Cloud Network.
//---
Ho spostato il file di ottimizzazione nella cartella locale del terminale per ora. L'errore di cui sopra non si verifica in questo caso. I test in tutte le modalità e l'ottimizzazione funzionano normalmente, ma quando si cerca di attivare l'ottimizzazione nel cloud, il registro si riempie di messaggi come questi:
//---
E di tanto in tanto vengono fuori risultati di ottimizzazione zero. Un'attesa piuttosto lunga (circa dieci minuti), ma non succede niente.
//---
Finalmente ho scoperto che per molti personaggi l'ottimizzazione nel cloud è "non disponibile" (EA è multi-valuta). Ho provato a cambiare la lista dei simboli manualmente e ho scoperto che se aggiungo questi simboli, l'ottimizzazione non parte (dal 2010 al giorno corrente):
NZDUSD, GBPUSD, EURJPY, EURGBP
Non appena li ho rimossi dalla lista, tutto inizia a funzionare. Ma mi sono rallegrato troppo presto. Non appena aumento la quantità di storia vedo di nuovo la stessa situazione (zero risultati). Il mio Expert Advisor sta usando così tanta memoria:
Ho spostato il file di ottimizzazione nella cartella locale del terminale per ora. L'errore di cui sopra non si verifica in questo caso. I test in tutte le modalità e l'ottimizzazione funzionano bene, ma quando provo ad attivare l'ottimizzazione nel cloud, il registro si riempie di messaggi come questi:
//---
E di tanto in tanto vengono fuori risultati di ottimizzazione zero. Un'attesa piuttosto lunga (circa dieci minuti), ma non succede niente.
//---
Finalmente ho scoperto che per molti personaggi l'ottimizzazione nel cloud è "non disponibile" (EA è multi-valuta). Ho provato a cambiare la lista dei simboli manualmente e ho scoperto che se aggiungo questi simboli, l'ottimizzazione non parte (dal 2010 al giorno corrente):
NZDUSD, GBPUSD, EURJPY, EURGBP
Non appena li ho rimossi dalla lista, tutto inizia a funzionare. Ma mi sono rallegrato troppo presto. Non appena aumento la quantità di storia vedo di nuovo la stessa situazione (zero risultati). Expert Advisor usa così tanta memoria:
//---
Dove cercare, cosa fare?
Ho capito bene che riuscite in qualche modo a inviare il file e le cartelle del terminale ad altri computer per utilizzarli nel lavoro dell'EA?
lazarev-d-m: Ho capito bene che riuscite in qualche modo a inviare il file e le cartelle del terminale ad altri computer per utilizzarli nel lavoro dell'EA?
Sì, se il file non è nella cartella condivisa del terminale, può essere utilizzato nel cloud.
... I test in tutte le modalità e l'ottimizzazione funzionano bene, ma quando si cerca di attivare l'ottimizzazione nel cloud, il registro si riempie di messaggi come questo:
...
Un errore di invio della storia ha lampeggiato nel log: history send error
C'è qualcosa di sbagliato nella storia. Cosa devo fare in questo caso? Voglio ottimizzare i parametri dell'anno 2000 per più caratteri.
Prendete la dichiarazione della variabile dietro la funzione OnInit e assegnate un valore bool - tutto ha funzionato per me nel tester e nel debug subito
Date spesso questi consigli "utili" in questa sezione? E se fossi un principiante, cercherebbe un problema mezzo anno dopo questo consiglio :)
Il tipo bool è destinato a memorizzare i valori logici true o false, che numericamente rappresentano rispettivamente 1 o 0.
Significa che si rende deliberatamente una variabile 0 o 1 e poi la si confronta con un numero negativo e si conclude che tutto funziona.
La domanda è perché questo codice si rifiuta di funzionare nel tester:
intOnInit()
{
int cl_ctx;
if((cl_ctx=CLContextCreate(CL_USE_ANY))==-1)
{
Print("OpenCL not found! Err: ", GetLastError());
return(-1);
}
Print("Ok!!!");
return(0);
}
voidOnTick() {}
MigVRN: Perché questo codice non funziona nel tester:
Che tipo di errore restituisce?
Non so nulla di OpenCL, ma ho già visto un thread su OpenCL e il tester. Forse il tester semplicemente non supporta questa funzione? Dai un'occhiata all'argomento OpenCL: test di implementazione interna in MQL5
Non conosco OpenCL, ma in qualche modo mi sono imbattuto in un thread su OpenCL e un tester. Forse il tester semplicemente non supporta questa funzione? Guarda l'argomento OpenCL: test di implementazione interna in MQL5
La proprietà #property tester_file ha lo scopo preciso di evitare di mettere qualcosa da qualche parte a mano .
file tester
stringa
Nome del file per il tester, specificando la sua estensione e racchiuso tra doppi apici (come una stringa costante). Il file specificato verrà passato al tester per il lavoro. I file di input per i test, se necessario, dovrebbero sempre essere specificati
Se qualche file datafile .csv è richiesto per il funzionamento del programma, e si trova in terminal_directory\MQL5\Files, il file verrà automaticamente spostato dal tester intesting_agent_directory\MQL5\Files (questo è ciò per cui deve essere specificata la #property tester_file datafile.csv).
Lo stesso vale quando un file di prova si trova nella cartella comune del terminale?
Se aggiungo la linea:
#property tester_file "Test.txt"...ottengo un errore come questo:
//---
Voglio trasferire un file nel cloud da una cartella condivisa del terminale. Come si fa?
Lo stesso vale quando il file di prova è nella cartella condivisa del terminale?
Se aggiungo la linea
...ottengo un errore come questo:
//---
Voglio trasferire un file nel cloud da una cartella condivisa del terminale. Come si fa?
Credo che questo sia già stato discusso e si è scoperto che, per il momento, i file non possono essere trasferiti nel cloud.
Serve un link a una discussione su questo tema, allora. Dove è stato discusso questo?
Io stesso mi baso su alcune discussioni passate e sull'articolo: MQL5 Cloud Network accelera i calcoli, ma qualcosa non funziona.
Si preme il pulsante "Start" e il processo di ottimizzazione viene avviato. Il terminale prepara il compito per gli agenti tester, che include:
Il terminale MetaTrader 5 comunica con i nodi della rete MQL5 Cloud Network e dà ad ogni nodo un lotto separato di compiti per l'esecuzione di passaggi specifici. Ogni nodo è in realtà un proxy, poiché riceve un compito e un pacchetto di compiti (singoli passaggi), e poi inizia a distribuire questi compiti agli agenti ad esso collegati. In questo caso, i file di Expert Advisor, indicatori, librerie e dati stessi non vengono salvati sui dischi rigidi dei server di MQL5 Cloud Network.
//---
Ho spostato il file di ottimizzazione nella cartella locale del terminale per ora. L'errore di cui sopra non si verifica in questo caso. I test in tutte le modalità e l'ottimizzazione funzionano normalmente, ma quando si cerca di attivare l'ottimizzazione nel cloud, il registro si riempie di messaggi come questi:
//---
E di tanto in tanto vengono fuori risultati di ottimizzazione zero. Un'attesa piuttosto lunga (circa dieci minuti), ma non succede niente.
//---
Finalmente ho scoperto che per molti personaggi l'ottimizzazione nel cloud è "non disponibile" (EA è multi-valuta). Ho provato a cambiare la lista dei simboli manualmente e ho scoperto che se aggiungo questi simboli, l'ottimizzazione non parte (dal 2010 al giorno corrente):
NZDUSD, GBPUSD, EURJPY, EURGBP
Non appena li ho rimossi dalla lista, tutto inizia a funzionare. Ma mi sono rallegrato troppo presto. Non appena aumento la quantità di storia vedo di nuovo la stessa situazione (zero risultati). Il mio Expert Advisor sta usando così tanta memoria:
//---
Dove cercare, cosa fare?
Serve un link a una discussione su questo tema, allora. Dove è stato discusso questo?
Io stesso mi baso su alcune discussioni passate e sull'articolo: MQL5 Cloud Network accelera i calcoli, ma qualcosa non funziona.
//---
Ho spostato il file di ottimizzazione nella cartella locale del terminale per ora. L'errore di cui sopra non si verifica in questo caso. I test in tutte le modalità e l'ottimizzazione funzionano bene, ma quando provo ad attivare l'ottimizzazione nel cloud, il registro si riempie di messaggi come questi:
//---
E di tanto in tanto vengono fuori risultati di ottimizzazione zero. Un'attesa piuttosto lunga (circa dieci minuti), ma non succede niente.
//---
Finalmente ho scoperto che per molti personaggi l'ottimizzazione nel cloud è "non disponibile" (EA è multi-valuta). Ho provato a cambiare la lista dei simboli manualmente e ho scoperto che se aggiungo questi simboli, l'ottimizzazione non parte (dal 2010 al giorno corrente):
NZDUSD, GBPUSD, EURJPY, EURGBP
Non appena li ho rimossi dalla lista, tutto inizia a funzionare. Ma mi sono rallegrato troppo presto. Non appena aumento la quantità di storia vedo di nuovo la stessa situazione (zero risultati). Expert Advisor usa così tanta memoria:
//---
Dove cercare, cosa fare?
Ho capito bene che riuscite in qualche modo a inviare il file e le cartelle del terminale ad altri computer per utilizzarli nel lavoro dell'EA?
... I test in tutte le modalità e l'ottimizzazione funzionano bene, ma quando si cerca di attivare l'ottimizzazione nel cloud, il registro si riempie di messaggi come questo:
...
Un errore di invio della storia ha lampeggiato nel log: history send error
C'è qualcosa di sbagliato nella storia. Cosa devo fare in questo caso? Voglio ottimizzare i parametri dell'anno 2000 per più caratteri.
Prendete la dichiarazione della variabile dietro la funzione OnInit e assegnate un valore bool - tutto ha funzionato per me nel tester e nel debug subito
Date spesso questi consigli "utili" in questa sezione? E se fossi un principiante, cercherebbe un problema mezzo anno dopo questo consiglio :)
Il tipo bool è destinato a memorizzare i valori logici true o false, che numericamente rappresentano rispettivamente 1 o 0 .
Significa che si rende deliberatamente una variabile 0 o 1 e poi la si confronta con un numero negativo e si conclude che tutto funziona.
La domanda è perché questo codice si rifiuta di funzionare nel tester:
Che tipo di errore restituisce?
Non so nulla di OpenCL, ma ho già visto un thread su OpenCL e il tester. Forse il tester semplicemente non supporta questa funzione? Dai un'occhiata all'argomento OpenCL: test di implementazione interna in MQL5
Che tipo di errore viene restituito?
In questa variante - 0 :)
Non conosco OpenCL, ma in qualche modo mi sono imbattuto in un thread su OpenCL e un tester. Forse il tester semplicemente non supporta questa funzione? Guarda l'argomento OpenCL: test di implementazione interna in MQL5