Potresti essere più esplicito sui possibili insiemi di parametri di input, gli insiemi indesiderabili, e perché ci sono troppi insiemi indesiderabili?
Sono pienamente d'accordo con gli sviluppatori che non ci dovrebbero essere troppi set indesiderati. L'optimum è non più del 10%.
Com'è? Posso fare un piccolo esempio?
fxsaber ha ragione.
Se l'insieme dei parametri non è corretto, si restituiscono tutte le funzioni OnTick() in una volta sola. E suTester - si restituisce il risultato minimo.
Com'è? Posso fare un piccolo esempio?
input int i = 0; bool Incorrect; int OnInit() { Incorrect = !i; // нулевое значение считается некорректным (пример) // return(Incorrect ? INIT_PARAMETERS_INCORRECT : INIT_SUCCEEDED); // Было return(INIT_SUCCEEDED); } void OnTick() { if (Incorrect) return; // ... }
Questi non sono insiemi di parametri di ingresso! È un insieme di funzioni che non devono essere ripetute! Nell'ottimizzazione lenta INIT_PARAMETERS_INCORRECT aiuta davvero a costruire catene valide per chiamare queste funzioni, ma ne ho 6. Ho 117649 varianti della catena. Ma queste catene sono inutili senza alcuni parametri di ingresso. Con loro, abbiamo già più di 38.000.000! Non c'è modo di aggirarlo con la forza bruta lenta.
La genetica morirà perché la superficie del criterio di ottimizzazione dovrebbe essere più o meno continua (liscia). Nel tuo caso, tuttavia, si ottiene un numero enorme di picchi (fallimenti).
Potete impostare il seguente esperimento. Prendete l'Expert Advisor standard e aggiungete alcuni parametri aggiuntivi per l'ottimizzazione - quelli falsi. Rendendo il 90% dei loro set INCORRETTO. GA morirà. Anche se andrà abbastanza bene senza parametri falsi.
Capito. Si tratta solo di selezionare le funzioni giuste e il loro ordine nell'ottimizzatore. E scrivere manualmente tutte le catene irrilevanti.... E come farà allora l'ottimizzatore a trovarli?
La genetica morirà perché la superficie del criterio di ottimizzazione dovrebbe essere più o meno continua (liscia). Nel tuo caso, tuttavia, si ottiene un numero enorme di picchi (dips).
Ho capito questo. Non capisco solo come aggirarlo?
Lo capisco. Quello che non capisco è come aggirarlo?
Una ricetta è che gli sviluppatori trattino il risultato dei passaggi INCORRETTI come il più vicino passaggio CORRETTO calcolato in precedenza. Questo uniformerà i buchi nella superficie di ottimizzazione.

- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Ho incontrato questo problema: secondo la logica del programma, c'è la necessità di setacciare le chiamate di funzioni non valide. Io uso INIT_PARAMETERS_INCORRECT per questo. Ma l'ottimizzazione genetica si ferma praticamente subito. Gli sviluppatori si arrabbiano con domande su questa situazione. Consigliano di studiare l'analisi genetica e così via.
Ma a cosa mi serve? Io, come utente, voglio ottenere risultati e non mi interessa come funziona.
Quindi, ecco un esempio su tre funzioni 1, 2 e 3. 0 non deve essere usato.
In una catena, le funzioni non devono ripetersi e non ci deve essere uno 0 tra le funzioni (altrimenti ci possono essere ripetizioni).
Un esempio di catene ammissibili:
Esempio di catene inaccettabili: