Discussione: Come ottimizzare un Trading System
Visualizzazione Ibrida
-
10-12-14, 17:55 #1
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Come consigliato ho caricato il future di dicembre 2014 (GGZ14) di Barchart.
Ho preferito ripartire da zero.
Stessi passaggi 1) 2) 3) visti nel post precedente. Arriviamo ai risultati dell'ottimizzazione:
4) Prendo nota dei set migliori.
5) Imposto il periodo di 6.000 barre.
6) Verifico i set, ma nessuno in questo caso ha il Profit Factor >3.
7) Voglio comunque fare la verifica suggerita ieri ed esamino quello con la performance migliore:
Due drawdown hanno fortemente penalizzato l'Equity Line.
Vediamo il perché analizzando i trades:
Dall'analisi del grafico non si evidenziano problemi di gap overnight:
Prendiamo quindi atto che il TS non passa il test.
In questo caso, quali soluzioni si possono ipotizzare?
A) Modificare il TS.
B) Testarlo sullo stesso sottostante con TF diversi.
C) Testarlo su altri sottostanti.
D) Abbandonare definitivamente il TS.
-
10-12-14, 18:25 #2
Quando un TS non ha superato il test della Walk Forward Analisys, dopo essere stato ottimizzato , non ci sono Cristi che tengano, il sistema è overfittato e le cause possono essere diverse ma le principali sono:
1- Sovra- parametrizzazione
2 -Overscanning
3- Un campione di dati troppo piccolo
Se dopo aver rivisto e verificato questi punti, le cose non migliorano allora bisogna cambiare sensibilmente le regole del TS oppure abbandonare l'impianto iniziale e sviluppare altre idee magari con altri indicatori o combinazione di essi.
è dura....lo so...ma se così non fosse ci sarebbero ogni giorno i famosi pasti gratis a Wall Street.
ApoUltima modifica di Apocalips; 10-12-14 alle 18:38
....non si desidera ciò che è facile ottenere (Ovidio)....
-
10-12-14, 20:05 #3
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Provo a modificare il TS inserendoci uno Stop Loss.
Inoltre aumento il range del parametro @periods per l'ottimizzazione.
In questo caso, avendo dei periodi più lunghi, aumento il numero delle barre a 6.000 per garantirmi almeno 30 trades.
Risultati dell'ottimizzazione:
- Prendo nota dei set migliori.
- Imposto il periodo di 12.000 barre.
- Verifico i set, ne trovo uno con Profit Factor >3.
Parametri rispettati:
-Percent Profitable: 90.77% (>60%)
-Profit Factor 3.66 (>3)
Dubbi:
-Equity Line mostra una certa sofferenza nella prima metà.
-E' corretto usare per l'ottimizzazione un numero di barre così elevato (6.000)?
-
10-12-14, 21:46 #4
Ho notato che hai commesso lo stesso errore Alex.
Questo è proprio il punto dolente, è come se stessi ingannando te stesso !!..è un classico succede quasi sempre.
Quando hai preso nota dei set migliori e verificati ad uno ad uno sul periodo di dati non campionari è come se avessi forzato i risultati all' equity che a te faceva comodo vedere, quella piu bella. In pratica è come se avessi ottimizzato anche il periodo di post ottimizzazione, quello dei dati non campionari. Tutto questo succede perche noi stiamo simulando il futuro su dati storici ma nella realtà non possiamo sceglierci il futuro che desideriamo, non so se ho reso l'idea.
Allora procediamo diversamente visto che abbiamo a disposizione una marea di barre, circa 50.000.
Posizionati nelle prime 5000 barre di questo campione con la funzione Date di Easy script e procedi con l'ottimizzazione senza esagerare. Una volta effettuata la scelta del miglior set di parametri, testa il TS nelle successive 2500 le quali però le devi considerare come se facessero parte del futuro e quindi non puoi fare nessun ragionamento su di esse.
Questo test di post ottimizzazione lo devi tenere separato dal precedente test di ottimizzazione quindi avrai 2 report, una da 5000 barre e l'altro da 2500 barre che salverai e chiamerai rispettivamente Ottimizzazione1 e Post-ottimizzazione1.
Se il test di questa singola Walk Forward viene superato allora hai vinto la prima battaglia e sei pronto al test della WFA completa che è quello definitivo che sentenzierà con la misura della WFE (Walk Forward Efficency) se il tuo modello previsionale è robusto e ripetibile nel tempo....ma procediamo per gradi.
Complimenti per l'impegno e la disponibilità !!
ApoUltima modifica di Apocalips; 10-12-14 alle 22:18
....non si desidera ciò che è facile ottenere (Ovidio)....
-
10-12-14, 23:47 #5
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Grazie infinite a te Apo per la tua disponibilità, l'appoggio tecnico e morale.
Effettivamente temevo che quello che stavo facendo fosse una forzatura.
Proprio grazie a questa discussione ho imparato tante cose e ho capito che stavo commettendo diversi errori.
Ci aggiorniamo appena avrò prodotto qualcosa.
P.S. Non sarebbe male se anche qualche altro utente volesse intervenire portando il proprio contributo.
-
11-12-14, 12:10 #6
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Descrivo i passaggi che sto facendo per arrivare a filtrare le date:
Inserisco nello script i parametri @datainizio e @datafine e aggiungo la condizione.
Quindi il Buy Script diventa:
INPUTS: @periods(100), @lowMark(-35), @highMark(-65),@stopLoss(200), @datainizio(20141001), @datafine(20141201) SET STOP_LOSS = @stopLoss set A = WilliamsPctR(@periods) SET I = @datainizio SET F = @datafine CROSSOVER(A, @highMark) AND DATE>= I AND DATE<= F
Mentre il Sell Script diventa:
set A = WilliamsPctR(@periods) SET I = @datainizio SET F = @datafine CROSSOVER(@lowMark, A)AND DATE>= I AND DATE<= F
-Imposto il grafico con 50.000 barre e verifico la data di inizio (11/09/2014).
-Imposto la data di partenza (@datainizio) dal 12/09/2014 per avere un numero sufficiente di barre a monte per l'inizio dei calcoli.
-Calcolo che 5.000 barre equivalgono a circa 6gg di borsa.
- Imposto la data di chiusura (@datafine) al 19/09/2014.
-Avvio l'ottimizzazione dei parametri @periods, @lowMark, @highMark, @stopLoss.
Sono previste 1344 combinazioni e un tempo previsto di oltre 1h 32', con la CPU fissa al 100%.
Mi sembra strano, perché altre ottimizzazioni analoghe richiedevano pochi minuti.
E' un problema dovuto a come ho impostato lo script o dipende da cause estranee a BT?Ultima modifica di alex69; 11-12-14 alle 16:15
-
11-12-14, 15:12 #7
No Alex , semplicemente dipende dal fatto che BT effettua i calcoli di ottimizzazione su tutte le 50.000 barre del grafico indipendentemente dal fatto dell' utilizzo o meno della funzione date. La velocità di elaborazione dipende anche dalla potenza della cpu, dal sistema operativo 32 o 64 bit e infine dalla relativa memoria Ram che piu ce n'è meglio è.
Che computer stai utilizzando ?
Apo....non si desidera ciò che è facile ottenere (Ovidio)....
-
11-12-14, 16:13 #8
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Ho un HP ProDesk (Core i7 - Ram 16Gb - Win7 64bit).
Finora si è comportato bene, anche se ho notato che negli Overspread scanning, con liste di alcune centinaia di titoli ha prestazioni inferiori rispetto a quelle di alcuni altri utenti.
La 1a ottimizzazione è stata interrotta poiché BT è andato in crash.
Ho riprovato con una seconda ottimizzazione di prova, con circa 1/3 di combinazioni.
Da una prima osservazione c'è qualcosa di strano, in primis risultano pochissimi Trades per ciascun set.
Seleziono il primo risultato e verifico:
Dalla lettura del grafico mi sembra che il TS non stia rispettando i criteri impostati.
E non ne riesco a capire la ragione.
Ad esempio, il trade n° 3 (terzo cerchietto) chiude in Stop dopo diversi giorni, anche se, come si vede dalla lettura dell'indicatore, ci sono stati diversi cross del @lowmark (-45), dove in realtà ci sarebbe stato un ampio gain.
Inoltre sono tutti trades Long.