La settimana scorsa abbiamo visto il codice di una strategia sullo SPY Index.

Ricordiamo che il codice presentato è in formato PowerLanguage di MultiCharts in quanto il suo linguaggio è facilmente accessibile ai trader non programmatori. Spesso anche gli utilizzatori di altre piattaforme in fase di sviluppo si servono di MultiCharts per un primo test della strategia operativa. Se il test va a buon fine, allora può valere la pena dedicare tempo allo sviluppo del trading system in un linguaggio più complesso di PowerLanguage.  Di seguito viene approfondita l’analisi dei risultati ottenuti con il primo sviluppo della strategia presentata la settimana scorsa.

Da dove partire?

Quando si valuta un trading system è fondamentale la lettura del performance report. Tuttavia facciamo un passo indietro e richiamiamo l’attenzione su quanto sia importante, nel trading sistematico, la replicabilità dei risultati osservati in un paper, in uno studio, su un sito internet, ecc…
Per replicare i risultati pubblicati nel presente articolo è sufficiente scaricarlo (trading system gratuito) dal modulo presente a fondo pagina, compilarlo nel Power Language Editor ed aggiungerlo sulla chart dello SPY collegato a freequotes (dati gratuiti di Yahoo Finance e Google Finance). La fascia temporale di analisi è dal 01-01-1995 ad oggi con time frame (dimensione della barra) giornaliero. Il capitale investito per ogni singola operazione è 10.000,00 $. Gli input di partenza sono una media corta a 10 periodi, una media lunga a 25 e la media associata alle uscite uguale a quella veloce (10 periodi).

La strategia di trading

Prima di partire con l’analisi è bene ricordare quele logica sottende alla strategia operativa. Di fatto viene mixato il concetto di sistema trend following con quello di mean reverting, pertanto il trading system compra long quando il mercato scende (si veda media a breve periodo 10), ma è in trend positivo (si veda media a lungo periodo 25). Per riassumere in una frase, il sistema cerca di cogliere i piccoli rimbalzi del mercato seguendo il trend di medio-lungo periodo.

Ottimizzazione della strategia

Come già scritto, quando si valuta un trading system è necessario partire dalla lettura del performance report, preferibilmente dalla equity line – la curva cumulativa dei profitti. Essa racchiude in sè una vasta gamma di informazioni. Nella figura sottostante viene mostrato il primo risultato ottenuto dal sistema.

La equity line è stata ottenuta con time frame giornaliero dal 01/01/1995 a marzo 2017

La equity line è stata ottenuta con time frame giornaliero dal 01/01/1995 a marzo 2017

Purtroppo il sistema non produce risultati significativi dal 2009. Tuttavia può essere d’aiuto l’ottimizzazione, ovvero la ricerca di combinazioni di input che migliorino i risultati del trading system a parità di periodo e strategia operativa. Quanto varia nel processo di ottimizzazione è merante il valore di calcolo delle medie. Provando ad ottimizzare la media corta da 5 a 15 con passo 1, la media lunga da 20 a 30 con passi 1 e quella di chiusura uguale alla media a breve si ottengono i risultati nella figura sottostante. L’area stabile – area in cui i risultati non hanno variazioni significative – è già compresa nell’intervallo 10 (media corta) 25 (media lunga).

Risultati ottenuti con l'ottimizzazione del sistema e visualizzabili con 3D Optimization Chart

Risultati ottenuti con l’ottimizzazione del sistema e visualizzabili con 3D Optimization Chart

Integrazioni alla strategia

Dal momento che il sistema non è ottimizzabile tramite i parametri, in questi casi può essere utile pensare a quali inefficenze abbia la strategia stessa. Leggendo il performance report nella sezione Trade Analysis > Total Trade Analysis si può notare come il sistema mantenga le operazioni aperte in media 8.6 barre, ma come dia il meglio di sè in 6 (si veda il parametro Avg # bars in Winning Trade, ossia il numero medio di barre in cui resta aperto un trade che si chiude in positivo). Questi due dati mostrano un’inefficenza del sistema in quanto è possibile che il sistema stesso mantenga le operazioni aperte più del dovuto. Cosa accadrebbe se venisse aggiunta un’uscita temporale utilizzando i due sistemi “TimeExit (Bars) LX” e “TimeExit (Bars) SX” pre-esistenti all’interno di MultiCharts?

Codice strategia “TimeExit (Bars) LX” – uscita long:

inputs: BarToExitOn( 5 ) ;
if BarsSinceEntry = BarToExitOn then
       Sell ( “TimeBarsLX” ) next bar at market ;

Codice strategia “TimeExit (Bars) SX” – uscita short:

inputs: BarToExitOn( 5 ) ;
if BarsSinceEntry = BarToExitOn then
     Buy To Cover ( “TimeBarsSX” ) next bar at market ;

Conclusioni

Nella figura sottostante è possibile notare i nuovi risultati. Le nuove uscite sono state utilizzate con il parametro di default a 5 periodi, pertanto il sistema dopo 5 barre che si trova in posizione, esce. I risultati migliorano notevolmente, se viene confrontato il rapporto rendimento/rischio si nota come questo valore raddoppi.

Equity line trading system SPY ottenuta con l'integrazione dell'uscita temporale

Equity line trading system SPY ottenuta con l’integrazione dell’uscita temporale

Con una semplice aggiunta il sistema è stato reso più “tradabile”. Lo scopo iniziale dell’articolo era quello di mostrare al lettore che non è necessario scrivere 1000 righe di codice complicato e incomprensibile per ottenere risultati apprezzabili con i trading systems partendo da un’idea di base.

Nessun campo trovato.