Domanda sull'ottimizzazione genetica - pagina 3

 

Non capisco cosa sta succedendo. Ho deciso di semplificare il compito, ho preso solo 3 parametri per l'ottimizzazione, l'ho messo sull'ottimizzazione normale invece dell'ottimizzazione genetica, non ho messo nessuna restrizione nelle impostazioni EA. Ho eseguito, niente è apparso nelle finestre "Optimization result" e "Optimization graph" così ho deciso di aspettare fino al runtime, il runtime di ottimizzazione era di 8 ore e 47 minuti, nessuna informazione è apparsa in "Optimization result" e "Optimization graph" dopo che il runtime era finito nel mio file di log:

00:44:09 ABC_exp: ottimizzazione iniziata
09:31:09 ABC_exp: ottimizzazione fermata

nel file di registro:

2009.08.03 00:44:09 ABC_exp: ottimizzazione iniziata
2009.08.03 09:31:09 ABC_exp: ottimizzazione fermata
2009.08.03 09:31:09 Ci sono stati 768 passaggi fatti durante l'ottimizzazione, 768 risultati sono stati scartati come insignificanti
quando testati sullo stesso intervallo, anche se ci sono state perdite, ma il saldo ha oscillato intorno al deposito iniziale.

 
Angela писал(а) >>

Non capisco cosa sta succedendo. Ho deciso di semplificare il compito, ho preso solo 3 parametri per l'ottimizzazione, ho messo l'ottimizzazione normale invece di quella genetica, non ho messo alcuna restrizione nelle impostazioni EA. Ho deciso di aspettare che il tempo di esecuzione sia finito, il tempo di esecuzione dell'ottimizzazione è stato di 8 ore e 47 minuti, nessuna informazione è apparsa in "Optimization result" e "Optimization graph" dopo l'esecuzione:

00:44:09 ABC_exp: ottimizzazione iniziata
09:31:09 ABC_exp: ottimizzazione fermata

nel file di registro:

2009.08.03 00:44:09 ABC_exp: ottimizzazione iniziata
2009.08.03 09:31:09 ABC_exp: ottimizzazione fermata
2009.08.03 09:31:09 Ci sono stati 768 passaggi fatti durante l'ottimizzazione, 768 risultati sono stati scartati come insignificanti
quando è stato testato sullo stesso intervallo, anche se ci sono state perdite, ma l'equilibrio fluttuava intorno al deposito iniziale.

Fammi controllare. Ti ci vorrà molto tempo per trovarlo.

 
Ci sono stati 768 passaggi fatti durante l'ottimizzazione, 768 risultati sono stati scartati come insignificanti - non c'erano corse redditizie. Cioè, il deposito finale era sempre inferiore al deposito iniziale. O era uguale ad esso. Puoi provare, quando i trade vengono eseguiti, a scrivere nel file il numero del ticket, il prezzo o qualcos'altro. Per capire se l'algoritmo funziona o meno. Forse non può commerciare a causa di qualcosa.
 
Vinin писал(а) >>

Fammi controllare. Ti ci vorrà molto tempo per trovarlo.

Grazie per l'offerta, ma proverò a scavare un po' di più per conto mio.

 
OrlandoMagic писал(а) >>
Ci sono stati 768 passaggi fatti durante l'ottimizzazione, 768 risultati sono stati scartati come insignificanti - non c'erano corse redditizie. Significa che il deposito finale era sempre inferiore a quello iniziale. O era uguale ad esso. Puoi provare, quando i trade vengono eseguiti, a scrivere nel file il numero del biglietto, il prezzo o qualcos'altro. Per capire se l'algoritmo funziona o meno. Forse non può commerciare a causa di qualcosa.

In modalità di visualizzazione nel picchiatore, gli scambi vanno.

 
Bene, intorno a questi parametri, che sono sulla steuta, dobbiamo eseguire l'ottimizzazione.
 
OrlandoMagic писал(а) >>
Bene, è intorno a questi parametri, che sono sullo stack, che dobbiamo eseguire l'ottimizzazione.

>> Lo faccio.

 

Finora, nulla di buono viene fuori dall'ottimizzazione. Ho impostato i parametri ottimizzati e il loro campo di variazione nelle proprietà di Expert Advisor, ho eseguito l'ottimizzazione, ho elencato i parametri, ma ho ottenuto lo stesso risultato ad ogni passo dell'ottimizzazione. Ho l'impressione che anche se l'Expert Advisor cerca tra i parametri, usa lo stesso set di parametri che è stato impostato all'inizio. Ho il sospetto di aver impostato qualcosa di sbagliato nella funzione .

Prima le cose importanti:

Ho impostato dei parametri nel mio EA che dovrebbero essere ottimizzati come quelli impostati nell'indicatore:

extern int MA_Period=151; // 101 10 201
extern double KFK=0.9; // 0.7 0.005 1.

Ho impostato il riferimento all'indicatore nella funzione int start():

B3= NormalizeDouble(iCustom(NULL, 0, "ART",0,1),Digits);
BT=GlobalVariableGet(NameGlobalVariableBT);

Domanda: dopo "ART", devo inserire i parametri da cambiare?

Se non lo inserisco, l'ottimizzazione viene eseguita, ma il risultato è lo stesso, se lo inserisco, il risultato è zero:

1 0.00 0.00 0.00 0.00 0.00 0.00% MA_Period=101 KFK=0.8 Lotti=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
2 0.00 0.00 0.00 0.00 0.00 0.00% MA_Period=111 KFK=0.8 Lotti=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
3 0.00 0.00 0.00 0.00 0.00 0.00% MA_Period=121 KFK=0.8 Lotti=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
4 0.00 0.00 0.00 0.00 0.00 0.00% MA_Period=131 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
5 0.00 0.00 0.00 0.00 0.00 0.00% MA_Period=141 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456

 

Beh, dovrebbero essere nel testo del programma da qualche parte. Se sono tutti zeri, significa che non c'è stata nessuna transazione... O no?

In generale, i parametri sono allarmanti... Ci sono delle variabili - MA_Period, e i loro valori - 101, 102, 103, che il tester inserisce da solo durante le corse.

B3= NormalizeDouble(iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); Leggi l'aiuto di iCustom (scusa se ho scritto cose ovvie)

Potete anche vedere cosa considera l'indicatore se scrivete, per esempio, Print (B3) dopo di esso

 
OrlandoMagic писал(а) >>

Beh, dovrebbero essere nel testo del programma da qualche parte. Se sono tutti zeri, significa che non c'è stata nessuna transazione... O no?

In generale, i parametri sono allarmanti... Ci sono delle variabili - MA_Period, e i loro valori - 101, 102, 103, che il tester inserisce da solo durante le corse.

B3= NormalizeDouble(iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); Leggi l'aiuto di iCustom (scusa se ho scritto cose ovvie)

Potete anche vedere cosa considera l'indicatore se lo seguite con, per esempio, Print (B3)

Se imposto i parametri nel modo seguente: (iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); - otteniamo tutti zeri, come ho detto sopra.

Se imposto iCustom(NULL, 0, "ART", 0, 1), Digits); - allora appaiono i valori calcolati,

1 299.70 36 1.80 8.33 153.30 11.51% Threshold1=90 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051
2 299.70 36 1.80 8.33 153.30 11.51% Threshold1=91 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051
3 299.70 36 1.80 8.33 153.30 11.51% Threshold1=92 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051
4 299.70 36 1.80 8.33 153.30 11.51% Threshold1=93 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051
..........

ma sono tutti uguali, anche se nel tester, quando si esegue con diversi parametri, i risultati delle operazioni sono molto diversi.

Motivazione: