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
Quindi solo questa linea iCustom è cambiata? Allora dobbiamo guardare questo indicatore in dettaglio.
Hai sbagliato argomento. Vi state concentrando sull'ottimizzazione, mentre il problema è ovviamente nell'EA(trasferimenti di parametri, ecc.). Dimenticatevi dell'ottimizzazione per un po', mettete commenti e stampanti nell'EA, eseguite con diversi parametri nella visuale, controllate i dati intermedi, trovate tutti gli errori e poi tornate all'ottimizzazione.
Gli stessi risultati indicano che i parametri ottimizzati non influenzano la formazione del segnale di trading, e questo è un problema dell'EA, non del tester.
Se imposto i parametri in questo modo: (iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); - otteniamo tutti zeri, come ho dato un esempio sopra.
Se imposto iCustom(NULL, 0, "ART", 0, 1), Digits); - allora appaiono i valori calcolati,
ma sono tutti uguali, anche se nel tester, quando si esegue con diversi parametri, i risultati delle operazioni sono molto diversi.
Angela, perché l'ottimizzazione funzioni, devi usare i valori cambiati dall'ottimizzatore nell'algoritmo in qualche modo, in particolare devi passarli all'indicatore. È necessario passare dei parametri all'indicatore, se volete ottimizzarlo. Quando chiami l'indicatore senza parametri (cioè il secondo caso iCustom(NULL, 0, "ART", 0, 1)), in realtà ometti i parametri e funziona con quelli di default, che sono registrati dentro ART (ovviamente non sono ottimizzati). La chiamata completa con parametri - la prima opzione - è quella che vi serve per l'ottimizzazione. Molto probabilmente, il problema è che non si passano correttamente i parametri. Per esempio, se il loro numero nell'indicatore è inferiore, e si passa un valore migliore, o viceversa, se non si danno tutti i parametri. Se l'indicatore è un segreto, date almeno la lista dei suoi parametri.
Grazie a tutti, il motivo era banale: l'ordine in cui i parametri inviati dall'indicatore all'EA non corrispondevano:
nell'Expert Advisor era
extern int MA_Period=151; // 101 10 201
extern double KFK=0.9; // 0.7 0.005 1.
nell'indicatore al contrario
extern double KFK=0.9; // 0.7 0.005 1.
extern int MA_Period=151; // 101 10 201
ha funzionato nella modalità di visualizzazione, ma non in quella di ottimizzazione.
Congratulazioni. Ricordo anche di aver lottato con il passaggio di parametri, finché non mi sono abituato ad essere scrupoloso. Ora copio un pezzo di codice dell'indicatore con tutti gli esterni in Expert Advisor e scrivo iCustom, guardando l'esempio. È un po' ottuso, ma da allora non ci sono errori.
E un'altra cosa. Ho cercato lo stile illustrativo di komposter per scrivere iCustom. Tutto è proprio nel palmo della mia mano.
Sto debuggando la seconda versione del mio TS, rispetto alla prima il numero di operazioni è aumentato e il numero di parametri ottimizzabili è diminuito significativamente, anche se il drawdown è raddoppiato.
Tuttavia ho alcuni dubbi, il sistema non è molto stabile da un mese all'altro. Non l'ho ancora ottimizzato ma il risultato con GA sarà disponibile tra 48 ore. 800+ corse non sono incoraggianti e i risultati di ottimizzazione a giugno sono peggiori di quelli dei test con i parametri iniziali per lo stesso periodo. Porto tre statistiche, per giugno, luglio e agosto, finora ho debuggato solo Buy. Posso tirare fuori un tale sistema a causa dell'ottimizzazione con risultati stabili o devo iniziare a svilupparne uno nuovo subito?
Se solo il codice mql è coinvolto in Expert Advisor, qualcosa deve essere codificato in modo errato perché 800 esecuzioni non dovrebbero rallentare ai prezzi di apertura. O sto fraintendendo qualcosa. Di solito, gli esperti con binding esterno come le librerie di reti neurali, ecc. sono così lenti. Naturalmente, possiamo anche supporre che mql abbia molti loop annidati (o chiamate di qualche indicatore "vorace") - allora potrebbe essere completamente rallentato. Quindi, posso solo ripetere l'idea della presunta necessità di refactoring ;-) - Ricontrollare e ritrasformare alcuni frammenti di codice o l'intero codice.
Al momento di scrivere il post erano passate 800 delle oltre 8000 corse, con 5 ore di ottimizzazione, e mancavano ancora 2 giorni. Ma non ho aspettato fino alla fine, ho ridotto l'intervallo di enumerazione di alcuni parametri, ho riavviato e in 8 ore l'intera ottimizzazione è passata.
Miglior risultato:
Il numero di transazioni redditizie supera il numero di transazioni perdenti, la media delle transazioni redditizie più di quelle perdenti è un ottimo segno. Secondo me, non dovreste rinunciare a questo sistema, dovreste studiare il suo comportamento su un periodo più lungo. Puoi anche metterlo su un'altra croce.