Domande da un "manichino" - pagina 229

 
Rosh:

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?

 
tol64:

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 nella nuvola.
 
lazarev-d-m:


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:

  • 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:

//---

Dove cercare, cosa fare?

 
tol64:

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?
 
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.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64:

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

 
lazarev-d-m:

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:

int OnInit()
  {
int cl_ctx;
if((cl_ctx=CLContextCreate(CL_USE_ANY))==-1)
  {
    Print("OpenCL not found! Err: ", GetLastError());
    return(-1);
  }
Print("Ok!!!");
return(0);
  }

void OnTick() {} 
 
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

 
Yedelkin:
Che tipo di errore viene restituito?

In questa variante - 0 :)

OpenCL non trovato! Err: 0
 
Yedelkin:

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

Qui è dove dicono che funziona.