Discussione: Come ottimizzare un Trading System
-
07-12-14, 18:37 #31
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
OK, allora ecco il codice per un'ipotetica funzione definita dall'utente MyMatchCalendar():
# Date in cui parla Draghi SET A = DATE = 20140528 SET B = DATE = 20140627 SET C = DATE = 20140728 SET D = DATE = 20140828 SET E = DATE = 20140929 SET F = DATE = 20141028 SET G = DATE = 20141128 SET Riep = A OR B OR C OR D OR E OR F OR G SET MyMatchCalendar = NOT Riep
Per creare la UserFunction bisogna creare una nuova funzione
quindi inserirci un codice tipo quello di cui sopra, e salvare il file con il nome "MyMatchCalendar".
Per verificarne il funzionamento basta aprire un grafico daily ed aggiungere un indicatore di tipo Custom 1 Line come segue:
ottenendo un risultato di questo tipo:
Si noti come la funzione restituisca sempre 1, ad eccezione delle date in cui parla Draghi (avevo ovviamente inserito delle date a caso!) per le quali la funzione invece restituisce zero; in questo modo la funzione può essere utilizzata in un trading system tipo quello che avevi indicato:
CROSSOVER( DecisionConst, @lowlevel) and MyMatchCalendar()
-
07-12-14, 19:37 #32
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Se non vi dispiace faccio passo passo una nuova analisi al fine di verificare se ho ben compreso quanto spiegato finora.
Per ora tengo in stand-by il TS che abbiamo analizzato finora e utilizzo la sua versione base (senza variazioni dinamiche del periodo tipo allunga-accorcia).
Lavoro sul Bund con TF 1M.
1) Impostiamo il periodo di 1.500 barre.
2) Ottimizzo i 3 parametri (@periods, @lowMark, @highMark)
3) Ottengo i risultati dell'ottimizzazione e ordino i risultati sulla colonna Return on Account:
Utilizzo la funzione Open Sidebar (tasto destro sulla tabella risultati) e mi appare un'utilissima Equity Line Curve.
Scorrendo i risultati dell'ottimizzazione, trovo un set che oltre ad avere un'equity line molto buona, ha un Profit Factor= 45.33 e un numero di trades molto contenuto (18) rispetto ai primi risultati (89-95).
4) Apro il report e valuto i risultati:
Oltre al Profit Factor eccellente di 45.33 (>3) ho un Percent Profitable di 88.24% (>60%).
5) Esamino quindi l'Efficiency Analysis:
Qui ho qualche dubbio, perché se non ho capito male, i valori da verificare (dovrebbero essere quelli cerchiati in rosso) devono essere >80%.
Se fosse così il nostro TS non sarebbe idoneo.
In attesa di conferma da parte di qualche utente, immagino che il punto 5 sia andato bene e procedo oltre.
6) Fase di verifica. Impostiamo il periodo di 3.000 barre.
7) Apro il report e valuto i risultati:
Vedo che Profit Factor 27.86 (>3) è sceso ma ancora buono e che il Percent Profitable 93.10% (>60%) è ulteriormente cresciuto. Equity line buona.
L'Efficiency Analysis mostra risultati molto simili a quelli precedenti.
8) Ipotizzando che anche questi risultati siano idonei, potrei mettere il TS in paper per un periodo di 3.000 barre.
9) Se il paper da esito in linea con quanto ottenuto in backtest, seguirebbe messa a mercato.
-
07-12-14, 20:49 #33
-
08-12-14, 15:13 #34
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Silenzio.
Pensavo in una maggiore reattività da parte degli utenti.
Probabilmente oggi tutti a fare shopping per le feste.
L'argomento è interessante e tra l'altro il TS dell'esempio non lo vedo affatto male (anche se aspetto ancora conferme sui quesiti relativi all'Efficiency).
Opinioni? Consigli? Domande?
Non abbiate timore a intervenire e dire la vostra. Siamo qui per crescere insieme e trovare la via più corretta per raggiungere la nostra meta.
Possiamo contare sul supporto dei ragazzi di Playoptions, di utenti esperti e ovviamente del grande Tiziano.
Contavo anche sul contributo degli utenti che in questi giorni ci hanno stimolato pubblicando i risultati dei loro trades.
La loro esperienza potrebbe essere un utile argomento di discussione e crescita.
La voglia di fare e di imparare è al massimo.
Ho concluso, ora tocca a voi.
-
08-12-14, 21:41 #35
Ottimo lavoro Alex, questo approccio Walk Forward Analisys è quello giusto per valutare se i risultati non sono frutto di overfitting e quindi in sintesi per testare quanto un TS sia robusto o meno.
Devi solamente effettuare una modifica:
Devi scegliere un campione di dati su cui effettuare l'ottimizzazione sufficientemente ampio da garantire un numero di trade che abbia un minimo di significatività statistica e possibilmente deve contenere le varie fasi del mercato in quanto a direzione e volatilità, io comunque rispetto al numero non scendo mai sotto i 30 trade, di piu è ancora meglio.
quindi:
- aumenta il numero di barre da 1500 a 3000
- ottimizza i parametri
- scegli il profilo piu soddisfacente che abbia almeno 30 trade e una equity regolare con profit Factor >3
- infine testa il tutto su 6000 barre
Se i risultati sono in linea allora sei pronto per la verifica in paper sulle prossime 6000 barre che poi a TF 1 min. si fa subito, sono solo pochi giorni di borsa. Se anche in paper ottieni gli stessi risultati allora sei con ottime probabilità davanti ad un TS ben costruito, robusto e non affetto da overfitting.
questo è l'approccio diciamo quello piu simplex della WFA che nella versione completa prevede la valutazione delle performance di piu WFA in finestre mobili scorrevoli. Comunque già questo primo approccio è un ottimo passo in avanti.
Vai Alex !!!...con la speranza che si aggiunga alla discussione anche qualche altro trader di PlayOptions
PS: superata questa prima fase, si potrebbe, con l'aiuto di Tiziano, valutare la maniera per migliorare la exit efficency con l'introduzione di script in exit long e exit short legati alla volatilità dello strumento, insomma qui di carne al fuoco ce n'è tanta, procediamo per gradi, un passo per volta ma senza fermarci
ApoUltima modifica di Apocalips; 08-12-14 alle 22:29
....non si desidera ciò che è facile ottenere (Ovidio)....
-
08-12-14, 23:03 #36
- Data Registrazione
- Dec 2012
- Messaggi
- 432
-
09-12-14, 14:22 #37
- Data Registrazione
- May 2011
- Località
- Bologna
- Messaggi
- 3,017
-
09-12-14, 16:16 #38
- Data Registrazione
- Jul 2012
- Messaggi
- 674
-
09-12-14, 17:36 #39
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Ho un problema con lo storico delle barre.
Per fare questi test sto utilizzando la versione di prova di IW che dovrebbe offrire uno storico più ampio rispetto ad IB.
1) Facciamo 2 conti.
Una giornata di borsa sul Bund (h 8.00-22.00) sono 14x60= 840 minuti/barre
2) Quando imposto il grafico con 3.000 barre, lo storico parte dal 4 dicembre.
Dovrebbe essere corretto, infatti 3.000/840=3.57 gg. (giornate di borsa: 4dic+5dic+8dic+9dic(parziale))
3) Quando però vado ad impostare 6.000 barre, lo storico resta invariato.
Quindi sono impossibilitato a fare la verifica su un periodo che va oltre le 3.000 barre.
Ho notato che anche IB parte dal 4 dicembre.
C'è qualche soluzione per aumentare lo storico?
Grazie.
-
09-12-14, 18:11 #40
- Data Registrazione
- Aug 2010
- Località
- Padova
- Messaggi
- 738