Nell’immagine in evidenza Asimo, l’umanoide di Honda, all’avanguardia nella robotica. Fonte
Nella puntata precedente abbiamo ipotizzato una semplice idea di trading e abbiamo mostrato come tradurla nel linguaggio di programmazione Easy Language.
Arrivati a questo punto il procedimento da seguire nella fase di progettazione e sviluppo di un trading system è quello del testing su un paniere di indici e/o azioni al fine di individuare uno o più mercati su cui la strategia produce risultati economici positivi. Dovremo poi valutare i risultati e comprendere quali difetti ha la strategia dal valore delle varie voci statistiche e se è vale la pena investire alcune ore di tempo nell’implementazione di ulteriori modifiche atte a renderla all’altezza dell’impiego con denaro reale.
Abbiamo selezionato Fiat (FCA) tre le azioni e il Dax30 tra gli indici per implementare il trading system.
La base del test per Fiat è stata un capitale di 10.000 € riutilizzato per ciascun trade senza tenere conto del reinvestimento degli utili (e delle perdite). I dati storici hanno una compressione giornaliera e partono dal 1984 ad oggi. Il profitto netto supera i 32.000 € con un massimo drawdown superiore agli 8000 € verificatosi nel settembre 2010 pari al 14.22% della curva dei profitti. La percentuale di successo è molto bassa: 26,32% su 285 trade effettuati a fronte di un rapporto tra vincita media e perdita media che supera 4. Il fattore di profitto è pari a 1.48 e la curva dei profitti è abbastanza regolare.
I risultati poco equilibrati tra percentuale di successo e vincita media/perdita media non stupiscono. Nel codice sorgente abbiamo inserito uno stop loss iniziale ma non una gestione dei profitti vera e propria, il sistema chiude la posizione in guadagno quando si verifica la condizione d’ingresso nella direzione contraria.
La prima cosa da fare sarà quindi introdurre delle condizioni di trailing stop che consentano di alzare la percentuale di successo a scapito del rapporto vincita media su perdita media. La seconda modifica che faremo sarà introdurre degli input (ossia delle costanti) che consentano di poter ottimizzare i valori delle medie mobili (che sono stati scelti a caso) e quelli delle bande di Bollinger). L’obiettivo finale deve essere un profit factor > 1.6 con una diminuzione del drawdown massimo.
Nella prossima puntata mostreremo l’esito delle modifiche apportate al sorgente di partenza sia su Fiat che sul Dax30.
TradeStation Strategy Performance Report – MF1 FCA-Daily (25/09/1984-21/06/2013)
Performance Summary: All Trades
Total Net Profit $32,830.5547 Open position P/L $928.7250
Gross Profit $99,925.6953 Gross Loss ($67,095.1406)
Total # of trades 285 Percent profitable 26.32%
Number winning trades 75 Number losing trades 210
Largest winning trade $15,937.2207 Largest losing trade ($920.7040)
Average winning trade $1,332.3426 Average losing trade ($319.5007)
Ratio avg win/avg loss 4.1701 Avg trade (win & loss) $115.1949
Max consec. Winners 5 Max consec. losers 21
Avg # bars in winners 35 Avg # bars in losers 6
Max intraday drawdown ($7,586.0386)
Profit Factor 1.4893 Max # contracts held 6,497
Account size required $7,586.0386 Return on account 432.78%