Discussione: Come ottimizzare un Trading System
-
06-12-14, 13:20 #1
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Come ottimizzare un Trading System
Ciao Apo,
mi fa piacere che sia tu ad aver aperto questo thread.
Vorrei lavorare bene e ci terrei molto affiché questo progetto possa dare i suoi frutti.
Provo quindi a ricapitolare i criteri corretti per fare il backtest/paper/messa a mercato.
Se sbaglio correggimi, per favore.
1) Ottimizzo il TS su 1.500 barre.
2) Faccio il backtest su 3.000 barre.
3) Se i risultati sono in linea metto in paper per 3.000 barre.
4) Se anche in paper i risultati sono in linea metto in reale.
Per il money management, come dovrebbe essere gestito in un sistema come questo?
Abbiamo detto che è uno Stop & Reverse e che in quanto tale vanno escluse opzioni a protezione.
Infine ripropongo il quesito. Le differenze macroscopiche fra backtest e paper. Risultano anche a te?
Non ho capito se in backtest il calcolo avviene On Close o tick by tick.
Provo a rivedere con calma per verificare che non abbia commesso qualche errore.
Grazie.
-
06-12-14, 14:22 #2
Come ottimizzare un Trading System
Sposto qui la richiesta dell'utente perchè la disussione potrebbe essere lunga e comunque è di particolare interesse.
..se corri dietro a due lepri, non ne prendi nemmeno una.
-
06-12-14, 14:27 #3
Mi permetto di ricopiare Alex il tuo post di riassunto, aggiungendo:
0) Ts con poche righe di comando funzionano meglio.
1) Ottimizzo il TS su 1.500 barre, eliminando i periodi temporali in cui la volatilità è anomala (vedi discorso Draghi)
2) Faccio il backtest su 3.000 barre, eliminando i periodi temporali in cui la volatilità è anomala.
3) Se i risultati sono in linea metto in paper per 3.000 barre e con un indicatore di volatilità boxare la posizione per poi riaprirla quando ritorna nella norma.
4) Se anche in paper i risultati sono in linea metto in reale.
Nel punto 3 credo che così sia incluso il money management di un sistema stop&reverse.
Se sbaglio correggetemi.Ultima modifica di familytaz; 06-12-14 alle 14:53
-
06-12-14, 15:20 #4
Integrazione:
A) Ts stop&reverse operativo per tutta la sessione di mercato, salvo livelli di vola anomala, su backtest ed in reale in presenza di importanti eventi.
B) Ts di solo trend buy o sell, operativo solo in determinati orari di negoziazione del mercato, salvo livelli di vola anomala su backtest ed in reale in presenza di importanti eventi.
Se sbaglio correggetemi.
Domanda:
- Quali eventi e/o dati macroeconomici possono influire nell'operatività di un TS su indici o azioni ?
- Si puo' fare una valutazione di backtest in cui far lavorare il Ts solo in certi giorni della settimana e/o mesi ?Ultima modifica di familytaz; 06-12-14 alle 15:26
-
06-12-14, 16:42 #5
ciao familytaz,
rispondo solo per l'ultima richiesta.
-Puoi farlo andando a caricare i dati solo di certi intervalli temporali. Ma devi avere i dati salvati già pronti in tali intervalli
-Si era parlato in passato di poter limitare la finestra di analisi di beeOptimizer solo ad un sottoinsieme delle barre che sono visualizzate nel chart. (funzionalità ancora in fase di sviluppo)
-Se usi il datafeed Metastock o carichi dati Metastock puoi già eseguire il filtraggio temporale limitando la finestra di import.
-Basandomi sulla richiesta potrebbe essere interessante sviluppare un pannellino/calendario in cui si vanno a disabilitare da beeOptimizer solo alcuni giorni, settimane o altro tipo di filtro.. (per esempio spuntando tutti i giorni in cui ha parlato Draghi....tali giorni verranno quindi escludi dall'analisi)
Ottima idea bravo!
ciao,
MarcoI computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L’insieme dei due costituisce una forza incalcolabile. (Albert Einstein)
-
06-12-14, 17:03 #6
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Seguiamo passo passo le varie fasi.
Tengo conto delle osservazioni di familytaz sull'opportunità di escludere le fasi tipo "Draghi", ma provo comunque per verificare con voi se la procedura sia corretta.
Ho preso il TS di Tiziano (vedere thread Trading System con il Williams %R..... dalla A alla Z)
e lo provo sul Dax con TF 1M.
1) Impostiamo il periodo di 1.500 barre.
2) Ottimizzo i 3 parametri:
3) Ottengo i risultati dell'ottimizzazione e ordino i risultati sulla colonna Return on Account:
4) Selezionando la prima riga (#26), il grafico si aggiorna con i trades e i parametri relativi:
5) Apro il report e valuto i risultati:
Osservazioni:
sul periodo esaminato, c'è come già detto una fase falsata dalla giornata di giovedì (Draghi), inoltre la giornata successiva non è stata produttiva.
Inoltre non si è tenuto conto in questa simulazione delle commissioni del broker.
A questo punto, se ci riteniamo soddisfatti, procediamo con la verifica del sistema su 3.000 barre.
-
06-12-14, 17:03 #7
- Data Registrazione
- Dec 2012
- Messaggi
- 432
Eccoci alla fase di verifica.
1) Impostiamo il periodo di 3.000 barre.
2) Apro il report e valuto i risultati:
Ora vorrei capire quali sono i parametri di confronto per valutare la tenuta del TS (grafico equity, Return on Account, Profit Factor....).
Immagino che dobbiamo fare una valutazione oggettiva e non "a occhio".
Con questi risultati posso dire che il TS passa la prova backtest?
-
06-12-14, 17:17 #8
ciao a tutti,
aggiungo una cosa al mio post di prima.
-In attesa che sia sviluppato un calendario si può implementare anche di stare FUORI DAL MERCATO da script, andando ad escludere certi giorni nel backtest.
Usando ovviamente la logica booleana.
Le righe di easyscript per stare fuori dal mercato poi si possono riusare in tutti gli script.....si fa anche prima
...ancora meglio , si può creare una funzione definita dall'utente che ritorna 1 o 0 in base al mathcing con le date che si vogliono escludere cosi poi nel signal basta aggiungere alla condizione finale "and MyCalendarFunction()
Chi la costruisce ?
ciao,
MarcoUltima modifica di Marco Bosco; 06-12-14 alle 17:23
I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L’insieme dei due costituisce una forza incalcolabile. (Albert Einstein)
-
06-12-14, 17:48 #9
- Data Registrazione
- Aug 2010
- Località
- Padova
- Messaggi
- 738
segnalo questo link per la valutazione
http://www.playoptions.it/vbforum/sh...ll=1#post73681
( Cagalli Tiziano )
Tutti i valori che abbiamo graficato o calcolato servono per avere un quadro generale della strategia.Ad ogni domanda che ti poni, ci deve essere una risposta: se ad esempio vuoi sapere come il tuo TS è "Buono(efficente)" nelle entrate e nelle uscite guardi la rappresentazione dell'efficenza.
Il 100% indica che più di così non potevi fare. Se tutti i tui trade hanno efficenza di entrata attorno all'80% e uscita attorno al 20% significa che il TS è ben fatto per le entrate ma deve essere aggiustato per le uscite.
Il ragionamento è speculare per un caso opposto.
Profit factor è un numero che determina se il tuo TS è da tradare o no. Se ti posizioni con il mouse sopra la riga vedrai che in calce c'è la spiegazione del calcolo.
UN Profit Factor superiore a 1 ti dice che il TS è profittevole ma certamente non è il massimo. Io ad esempio, accetto TS che abbiano questo valore come minimo attorno a 3.
Il rapporto trade win/loss è importante solo per la tua ulcera
IL TS che ha profittabilità dei trade attorno al 90% ti lascia tranquillo trade by trade ma non è dettio che nei restanti 10% non accumuli perdite totali superiori alle vincite ...e viceversa.
Quindi è un valore da considerare come fattore di "Simpatia" e non di garanzia di guadagno...a differenza del Profit Factor.
Concludo:
il TS dovrebbe puntare ad avere un PF > 3 un % profittable > 60 ed Entry/Exit efficency > 80%
"Tempus omnia medetur" .... e fà guadagnare di Theta
-
06-12-14, 18:04 #10
RIASSUNTO
Alex 69
Ho preso il TS di Tiziano (vedere thread Trading System con il Williams %R..... dalla A alla Z)
e lo provo sul Dax con TF 1M.
Apo + Alex 69
1)Impostiamo il periodo di 1.500 barre.
2) Ottimizzo i 3 parametri
Familytaz
1) Eliminando i periodi temporali in cui la volatilità è anomala (vedi discorso Draghi).
Marco Bosco (grazie)
1) Le righe di easyscript per stare fuori dal mercato poi si possono riusare in tutti gli script.....si fa anche prima
...ancora meglio , si può creare una funzione definita dall'utente che ritorna 1 o 0 in base al mathcing con le date che si vogliono escludere cosi poi nel signal basta aggiungere alla condizione finale "and MyCalendarFunction()
Chi la costruisce ?
Apo
Non ottimizzate i vostri TS su tutto lo storico che avete a disposizione, non fate analisi a posteriori morireste ancor prima di iniziare. Dovete utilizzare un approccio del tipo Wfa con periodi in sampling e out sampling ovvero il vostro TS dovrà essere ottimizzato su un periodo sufficiente di barre dopodiché backtestatelo
su un numero di barre doppio e se le performance non degradano lanciatelo in paper trading in strategy per un periodo di pari lunghezza. Al termine si valutano i risultati e se sono in linea possiamo dire che il TS ha caratteristiche di robustezza e affidabilità. Solo se questo test e stato superato si puo decidere di metterlo a mercato con soldi veri e con un adeguato money management .
MRTMSS + TIZIANO
1) Cercando di ottenere un equityline come questa:
http://www.playoptions.it/vbforum/sh...bre-2014/page7
Alex 69
Eccoci alla fase di verifica.
1) Impostiamo il periodo di 3.000 barre.
2)Apro il report e valuto i risultati.
Lascio la mano a chi è più bravo di me a programmare……..
per poi passare alla valutazione dei parametri di report.
Fnet
segnalo questo link per la valutazione
http://www.playoptions.it/vbforum/sh...ll=1#post73681
( Cagalli Tiziano )
Tutti i valori che abbiamo graficato o calcolato servono per avere un quadro generale della strategia.
Ad ogni domanda che ti poni, ci deve essere una risposta: se ad esempio vuoi sapere come il tuo TS è "Buono(efficente)" nelle entrate e nelle uscite guardi la rappresentazione dell'efficenza.
Il 100% indica che più di così non potevi fare. Se tutti i tui trade hanno efficenza di entrata attorno all'80% e uscita attorno al 20% significa che il TS è ben fatto per le entrate ma deve essere aggiustato per le uscite.
Il ragionamento è speculare per un caso opposto.
Profit factor è un numero che determina se il tuo TS è da tradare o no. Se ti posizioni con il mouse sopra la riga vedrai che in calce c'è la spiegazione del calcolo.
UN Profit Factor superiore a 1 ti dice che il TS è profittevole ma certamente non è il massimo. Io ad esempio, accetto TS che abbiano questo valore come minimo attorno a 3.
Il rapporto trade win/loss è importante solo per la tua ulcera
IL TS che ha profittabilità dei trade attorno al 90% ti lascia tranquillo trade by trade ma non è dettio che nei restanti 10% non accumuli perdite totali superiori alle vincite ...e viceversa.
Quindi è un valore da considerare come fattore di "Simpatia" e non di garanzia di guadagno...a differenza del Profit Factor.
Concludo:
il TS dovrebbe puntare ad avere un PF > 3 un % profittable > 60 ed Entry/Exit efficency > 80%
NATURALMENTE DIETRO A TUTTO CIO’ C’E’ SEMPRE PLAYOPTIONS.Ultima modifica di familytaz; 06-12-14 alle 18:09