Domanda sull'ottimizzazione genetica - pagina 4

 

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.

 
Angela >> :

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.

/*
Входные параметры индикатора
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
*/
double signal=iCustom(Symbol(),Period(),"MACD",
                                       FastEMA,   //параметр 1
                                       SlowEMA,   //параметр 2
                                       SignalSMA, //параметр 3
                                       0,         //номер буфера индикатора    
                                       SignalBar);//бар, с которого получаем данные (внешняя переменная)
 

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?

Rapporto del tester di strategia
ABC_exp
Alpari-Demo (Build 225)

Simbolo GBPUSD (Sterlina britannica contro dollaro USA)
Periodo 5 Minuti (M5) 2009.06.01 00:00 - 2009.06.30 23:59 (2009.06.01 - 2009.07.01)
Modello In base ai prezzi di apertura (solo per Expert Advisors con controllo esplicito dell'apertura delle barre)
Parametri Lotti=0,1; TrailingStop1=3110; StopLoss1=1500; TrailingStop2=3110; StopLoss2=1500; MAGIC_1=12345; MAGIC_2=23456; MA_Period=151; KFK=0,9;
Bar nella storia 7288 Zecche modellate 13573 Qualità della simulazione n/a
Errori di mancata corrispondenza dei grafici 0
Deposito iniziale 1000.00
Utile netto 503.82 Profitto totale 643.12 Perdita totale -139.30
Redditività 4.62 Payoff previsto 27.99
Dispersione assoluta 8.70 Massimo prelievo 103.20 (7.77%) Prelievo relativo 7.77% (103.20)
Totale scambi 18 Posizioni corte (% vittoria) 0 (0.00%) Posizioni lunghe (% vittoria) 18 (66.67%)
Operazioni redditizie (% di tutte) 12 (66.67%) Operazioni in perdita (% di tutte) 6 (33.33%)
Il più grande commercio redditizio 107.32 transazione perdente -43.00
Media affare redditizio 53.59 commercio perdente -23.22
Massimo vittorie continue (profitto) 5 (263.10) Perdite continue (perdita) 3 (-74.00)
Massimo Profitto continuo (numero di vittorie) 263.10 (5) Perdita continua (numero di perdite) -74.00 (3)
Media vincite continue 2 Perdita continua 2

Tempo Tipo Ordina Volume Prezzo S / L T / P Profitto Equilibrio
1 2009.06.01 16:10 comprare 1 0.10 1.63896 1.62396 0.00000
2 2009.06.01 17:55 chiudere 1 0.10 1.64462 1.62396 0.00000 56.60 1056.60
3 2009.06.02 12:55 comprare 2 0.10 1.64588 1.63088 0.00000
4 2009.06.02 14:05 chiudere 2 0.10 1.64768 1.63088 0.00000 18.00 1074.60
5 2009.06.09 08:15 comprare 3 0.10 1.60495 1.58995 0.00000
6 2009.06.09 09:00 chiudere 3 0.10 1.61273 1.58995 0.00000 77.80 1152.40
7 2009.06.09 13:25 comprare 4 0.10 1.61447 1.59947 0.00000
8 2009.06.09 14:00 chiudere 4 0.10 1.61788 1.59947 0.00000 34.10 1186.50
9 2009.06.10 13:05 comprare 5 0.10 1.63679 1.62179 0.00000
10 2009.06.10 13:35 chiudere 5 0.10 1.64445 1.62179 0.00000 76.60 1263.10
11 2009.06.11 01:30 comprare 6 0.10 1.63664 1.62164 0.00000
12 2009.06.11 02:00 chiudere 6 0.10 1.63577 1.62164 0.00000 -8.70 1254.40
13 2009.06.11 15:45 comprare 7 0.10 1.64653 1.63153 0.00000
14 2009.06.11 16:50 chiudere 7 0.10 1.65300 1.63153 0.00000 64.70 1319.10
15 2009.06.12 17:15 comprare 8 0.10 1.65102 1.63602 0.00000
16 2009.06.12 18:10 chiudere 8 0.10 1.65011 1.63602 0.00000 -9.10 1310.00
17 2009.06.16 08:50 comprare 9 0.10 1.63621 1.62121 0.00000
18 2009.06.16 09:00 chiudere 9 0.10 1.63396 1.62121 0.00000 -22.50 1287.50
19 2009.06.16 17:05 comprare 10 0.10 1.64623 1.63123 0.00000
20 2009.06.16 18:40 chiudere 10 0.10 1.64199 1.63123 0.00000 -42.40 1245.10
21 2009.06.18 08:50 comprare 11 0.10 1.64200 1.62700 0.00000
22 2009.06.18 09:30 chiudere 11 0.10 1.64352 1.62700 0.00000 15.20 1260.30
23 2009.06.19 07:45 comprare 12 0.10 1.63728 1.62228 0.00000
24 2009.06.19 11:50 chiudere 12 0.10 1.64252 1.62228 0.00000 52.40 1312.70
25 2009.06.19 17:30 comprare 13 0.10 1.64542 1.63042 0.00000
26 2009.06.19 18:10 chiudere 13 0.10 1.65045 1.63042 0.00000 50.30 1363.00
27 2009.06.23 17:40 comprare 14 0.10 1.63475 1.61975 0.00000
28 2009.06.24 02:40 chiudere 14 0.10 1.64549 1.61975 0.00000 107.32 1470.32
29 2009.06.24 15:15 comprare 15 0.10 1.65717 1.64217 0.00000
30 2009.06.24 15:35 chiudere 15 0.10 1.65287 1.64217 0.00000 -43.00 1427.32
31 2009.06.26 08:50 comprare 16 0.10 1.64036 1.62536 0.00000
32 2009.06.26 12:00 chiudere 16 0.10 1.64922 1.62536 0.00000 88.60 1515.92
33 2009.06.29 12:15 comprare 17 0.10 1.65490 1.63990 0.00000
34 2009.06.29 12:35 chiudere 17 0.10 1.65354 1.63990 0.00000 -13.60 1502.32
35 2009.06.29 20:25 comprare 18 0.10 1.65678 1.64178 0.00000
36 2009.06.29 21:25 chiudere 18 0.10 1.65693 1.64178 0.00000 1.50 1503.82
 
Rapporto del tester di strategia
ABC_exp
Alpari-Demo (Build 225)

Simbolo GBPUSD (Sterlina britannica contro dollaro USA)
Periodo 5 Minuti (M5) 2009.07.01 00:00 - 2009.07.31 22:59 (2009.07.01 - 2009.08.01)
Modello In base ai prezzi di apertura (solo per Expert Advisors con controllo esplicito dell'apertura delle barre)
Parametri Lotti=0,1; TrailingStop1=3110; StopLoss1=1500; TrailingStop2=3110; StopLoss2=1500; MAGIC_1=12345; MAGIC_2=23456; MA_Period=151; KFK=0,9;
Bar nella storia 7560 Zecche modellate 14120 Qualità della simulazione n/a
Errori di mancata corrispondenza dei grafici 0
Deposito iniziale 1000.00
Utile netto 137.84 Profitto totale 239.34 Perdita totale -101.50
Redditività 2.36 Payoff previsto 9.85
Dispersione assoluta 24.16 Massimo prelievo 121.88 (11.10%) Prelievo relativo 11.10% (121.88)
Totale scambi 14 Posizioni corte (% vittoria) 0 (0.00%) Posizioni lunghe (% vittoria) 14 (71.43%)
Operazioni redditizie (% di tutte) 10 (71.43%) Operazioni in perdita (% di tutte) 4 (28.57%)
Il più grande commercio redditizio 58.00 transazione perdente -57.20
Media affare redditizio 23.93 Perdita dell'affare -25.38
Numero massimo vittorie continue (profitto) 6 (82.92) Perdite continue (perdita) 2 (-63.70)
Massimo Profitto continuo (numero di vittorie) 117.12 (3) Perdita continua (numero di perdite) -63.70 (2)
Media vincite continue 3 Perdita continua 1

Tempo Tipo Ordina Volume Prezzo S / L T / P Profitto Equilibrio
1 2009.07.14 08:35 comprare 1 0.10 1.62852 1.61352 0.00000
2 2009.07.14 08:40 chiudere 1 0.10 1.62629 1.61352 0.00000 -22.30 977.70
3 2009.07.14 23:00 comprare 2 0.10 1.63120 1.61620 0.00000
4 2009.07.15 02:30 chiudere 2 0.10 1.63191 1.61620 0.00000 7.02 984.72
5 2009.07.15 13:35 comprare 3 0.10 1.64028 1.62528 0.00000
6 2009.07.15 14:30 chiudere 3 0.10 1.64286 1.62528 0.00000 25.80 1010.52
7 2009.07.16 12:45 comprare 4 0.10 1.64466 1.62966 0.00000
8 2009.07.16 15:05 chiudere 4 0.10 1.64481 1.62966 0.00000 1.50 1012.02
9 2009.07.20 03:35 comprare 5 0.10 1.63951 1.62451 0.00000
10 2009.07.20 04:35 chiudere 5 0.10 1.63994 1.62451 0.00000 4.30 1016.32
11 2009.07.20 18:45 comprare 6 0.10 1.65356 1.63856 0.00000
12 2009.07.20 21:30 chiudere 6 0.10 1.65368 1.63856 0.00000 1.20 1017.52
13 2009.07.22 16:55 comprare 7 0.10 1.64327 1.62827 0.00000
14 2009.07.22 18:55 chiudere 7 0.10 1.64758 1.62827 0.00000 43.10 1060.62
15 2009.07.23 08:30 comprare 8 0.10 1.65223 1.63723 0.00000
16 2009.07.23 08:35 chiudere 8 0.10 1.65068 1.63723 0.00000 -15.50 1045.12
17 2009.07.23 16:45 comprare 9 0.10 1.65286 1.63786 0.00000
18 2009.07.23 17:35 chiudere 9 0.10 1.65679 1.63786 0.00000 39.30 1084.42
19 2009.07.24 09:10 comprare 10 0.10 1.65293 1.63793 0.00000
20 2009.07.24 10:35 chiudere 10 0.10 1.64721 1.63793 0.00000 -57.20 1027.22
21 2009.07.27 08:35 comprare 11 0.10 1.65044 1.63544 0.00000
22 2009.07.27 08:45 chiudere 11 0.10 1.64979 1.63544 0.00000 -6.50 1020.72
23 2009.07.27 13:45 comprare 12 0.10 1.65005 1.63505 0.00000
24 2009.07.28 09:45 chiudere 12 0.10 1.65467 1.63505 0.00000 46.12 1066.84
25 2009.07.30 08:50 comprare 13 0.10 1.64618 1.63118 0.00000
26 2009.07.30 09:30 chiudere 13 0.10 1.64748 1.63118 0.00000 13.00 1079.84
27 2009.07.31 16:50 comprare 14 0.10 1.65534 1.64034 0.00000
28 2009.07.31 17:15 chiudere 14 0.10 1.66114 1.64034 0.00000 58.00 1137.84
Rapporto del tester di strategia
ABC_exp
Alpari-Demo (Build 225)

Simbolo GBPUSD (Sterlina britannica contro dollaro USA)
Periodo 5 Minuti (M5) 2009.08.03 00:00 - 2009.08.11 23:59 (2009.08.02 - 2009.08.12)
Modello In base ai prezzi di apertura (solo per Expert Advisors con controllo esplicito dell'apertura delle barre)
Parametri Lotti=0,1; TrailingStop1=3110; StopLoss1=1500; TrailingStop2=3110; StopLoss2=1500; MAGIC_1=12345; MAGIC_2=23456; MA_Period=151; KFK=0,9;
Bar nella storia 3005 Zecche simulate 5007 Qualità della simulazione n/a
Errori di mancata corrispondenza dei grafici 0
Deposito iniziale 1000.00
Utile netto 90.68 Profitto totale 146.52 Perdita totale -55.84
Redditività 2.62 Payoff previsto 22.67
Dispersione assoluta 4.30 Massimo prelievo 63.18 (5.68%) Prelievo relativo 5.68% (63.18)
Totale scambi 4 Posizioni corte (% vittoria) 0 (0.00%) Posizioni lunghe (% vittoria) 4 (50.00%)
Operazioni redditizie (% di tutte) 2 (50.00%) Operazioni in perdita (% di tutte) 2 (50.00%)
Il più grande commercio redditizio 92.80 perdere l'accordo -39.84
Media affare redditizio 73.26 commercio perdente -27.92
Numero massimo vittorie continue (profitto) 1 (92.80) Perdite continue (perdita) 1 (-39.84)
Massimo Profitto continuo (numero di vittorie) 92.80 (1) Perdita continua (numero di perdite) -39.84 (1)
Media vincite continue 1 Perdita continua 1

Tempo Tipo Ordina Volume Prezzo S / L T / P Profitto Equilibrio
1 2009.08.03 09:45 comprare 1 0.10 1.67460 1.65960 0.00000
2 2009.08.03 10:50 chiudere 1 0.10 1.68388 1.65960 0.00000 92.80 1092.80
3 2009.08.04 11:25 comprare 2 0.10 1.69389 1.67889 0.00000
4 2009.08.04 14:45 chiudere 2 0.10 1.69229 1.67889 0.00000 -16.00 1076.80
5 2009.08.04 19:50 comprare 3 0.10 1.69312 1.67812 0.00000
6 2009.08.05 12:40 chiudere 3 0.10 1.69850 1.67812 0.00000 53.72 1130.52
7 2009.08.05 18:45 comprare 4 0.10 1.70146 1.68646 0.00000
8 2009.08.06 04:45 chiudere 4 0.10 1.69750 1.68646 0.00000 -39.84 1090.68
 
Se solo il codice mql è coinvolto nell'EA, allora qualcosa deve essere codificato male, perché con il modello di prezzo di apertura 800 corse non dovrebbe essere così lento. O forse ho capito male 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.
 
marketeer писал(а) >>
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:

     Прибыль     Всего сделок     Прибыльность   Матожидание     Просадка$    Просадка%
673  597.40         23            4.80            25.97           67.90         4.81%    Threshold1=109 Threshold2=227 USL=0.0037 MA_Period=58
 

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.