Lavorare con i risultati di ottimizzazione

Funzioni per organizzare processi personalizzati dei risultati di ottimizzazione nello strategy tester. Esse possono essere chiamate durante l'ottimizzazione degli agenti di testing, così come a livello locale negli Expert Advisor e script.

Quando si esegue un Expert Advisor nello strategy tester, è possibile creare in proprio array di dati in base ai tipi semplici o strutture semplici (esse non contengono stringhe, oggetti di classi o di oggetti di array dinamici). Questo set di dati può essere salvato con la funzione FrameAdd() di una struttura speciale chiamata frame. Durante l'ottimizzazione di un Expert Advisor, ogni agente può inviare una serie di frames al terminale. Tutti i frame ricevuti vengono scritti nel file *.MQD nella cartella expert, terminal_directory/MQL5/Files/Tester denominata come l'Expert Advisor. Sono scritti nell'ordine in cui sono ricevuti dagli agenti. Ricezione di un frame nel terminale client da un agente di test genera l'evento TesterPass.

I frames possono essere memorizzati nella memoria del computer e in un file con il nome specificato. Il linguaggio MQL5 non pone limiti al numero di frames.

Limiti di memoria e spazio su disco nella MQL5 Cloud Network

La seguente limitazione si applica alle ottimizzazioni eseguite nella MQL5 Cloud Network: l'Expert Advisor non deve scrivere su disco più di 4GB di informazioni o utilizzare più di 4GB di RAM. Se il limite viene superato, l'agente di rete non sarà in grado di completare correttamente il calcolo e non riceverai il risultato. Tuttavia, ti verrà addebitato tutto il tempo speso per i calcoli.

Se hai bisogno di ottenere informazioni da ogni passaggio di ottimizzazione, invia dei frames senza scrivere sul disco. Per evitare di utilizzare operazioni con i file negli Expert Advisors durante i calcoli nella rete cloud MQL5, è possibile utilizzare il seguente controllo:

   int handle=INVALID_HANDLE;
   bool file_operations_allowed=true;
   if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_FORWARD))
      file_operations_allowed=false;
 
   if(file_operations_allowed)
     {
      ...
      handle=FileOpen(...);
      ...
     }

 

Funzione

Azione

FrameFirst

Sposta un puntatore di lettura frame all'inizio e resetta il filtro impostato precedentemente

FrameFilter

Imposta il frame di lettura filtro e sposta il puntatore all'inizio

FrameNext

Legge un frame e sposta il puntatore al successivo

FrameInputs

Riceve i parametri di input, in cui il frame viene formato

FrameAdd

Aggiunge un frame con dati

ParameterGetRange

Riceve i dati sulla gamma di valori ed lo step del cambiamento per una variabile di input quando si ottimizza un Expert Advisor nello Strategy Tester

ParameterSetRange

Specifica l'uso della variabile di input quando si ottimizza un Expert Advisor nello Strategy Tester: valore, step del cambiamento, i valori iniziali e finali

Vedi anche

Statistiche di Testing, Proprietà di un Programma MQL5 in esecuzione