Errori, bug, domande - pagina 1962
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
In che modo questo aiuta?
L'ottimizzazione è passata, abbiamo scritto tutti i parametri da ricercare con intervalli di valori.
E poi eseguiamo un singolo test, leggiamo l'elenco dei parametri e lo visualizziamo: parametro = valore. In questo caso non conosciamo il valore, perché non possiamo riferirci all'intu-variabile per nome.
Si rende il parametro di input bool Optim. In OnInit, restituite INIT_FAILED se Optim == true. Allo stesso tempo in OnTesterPass attraverso FrameInputs e ParameterGetRange (o nel distruttore dell'oggetto classe globale) si scrive l'attuale SET di ottimizzazione.
Poi metti Optim = false. E prendete un altro parametro sinput int Range, impostatelo attraverso ParameterSetRange per passare da zero a uno. Leggere il file SET in OnTesterInit e impostare i valori di tutti i parametri dal file in ParameterSetRange. Quando Range == 0 si restituisce INIT_FAILED in OnInit.
Questo è tutto! Invece dell'ottimizzazione singola avete l'ottimizzazione immaginaria, che è anche più veloce dell'ottimizzazione singola.... Più i parametri di ingresso in lettura/scrittura.
domanda off-topic ma vi chiederò se è possibile integrare il manuale MQL5 con ulteriori esempi di implementazione dell'algoritmo più e più chiaro
Rendere il parametro di input bool Optim. In OnInit si restituisce INIT_FAILED se Optim == true. Allo stesso tempo in OnTesterPass attraverso FrameInputs e ParameterGetRange (o nel distruttore dell'oggetto classe globale) si scrive effettivamente SET-file Optimization.
Poi metti Optim = false. E prendete un altro parametro sinput int Range, impostatelo attraverso ParameterSetRange per passare da zero a uno. Leggere il file SET in OnTesterInit e impostare i valori di tutti i parametri dal file in ParameterSetRange. Quando Range == 0 si restituisce INIT_FAILED in OnInit.
Questo è tutto! Invece dell'ottimizzazione singola avete l'ottimizzazione immaginaria, che è anche più veloce dell'ottimizzazione singola.... Più i parametri di ingresso in lettura/scrittura.
Grazie per l'algoritmo dettagliato.
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 3113 msec 1 1
Tempo di compilazione a 1648
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 219 msec 1 1
Qualcosa è stato modificato!
Errore di compilazione
E se sostituite la linea (*) con
allora va bene. Qual è la differenza?Assomiglia ahttps://www.mql5.com/ru/forum/1111/page1977#comment_5595772, ma ha un codice di errore diverso
Errore durante la compilazione
Altrimenti:
Va bene. Che differenza fa?Errore durante la compilazione
ma in questo modo:
normalmente. Qual è la differenza?La differenza è enorme. Quando viene chiamato g(f), il compilatore non ha idea di che tipo sia f, perché è prescritto solo il template. Se si sovraccarica il modello, non ci sono problemi
Tempo di compilazione a 1643.
Tempo di compilazione a 1648
Questo è un tweak figo!
Il mio è lo stesso di prima, la compilazione non è più veloce!
Ce l'ho ancora, la compilazione non è accelerata
Forse non usando quello che rallentava in TesterBenchmark.mqh
La differenza è enorme. Quando g(f) viene chiamato, il compilatore non ha idea di che tipo sia f, perché solo il template è prescritto. Se si sovraccarica il modello, non ci sono problemi