domenica 17 giugno 2012

Un trading system basato sul CCI - Anchise I - parte 1


Il trading system Telemaco I, si è comportato molto bene nei test precedenti, durante i quali ai più attenti di voi non saranno sfuggite le considerazioni sul filtro basato sul CCI (commodity channe index). Ogni volta che l’RSI tagliava il livello 70 il CCI si trovava già sopra il valore + 100.  Il CCI è più tempestivo e lo è sempre.
Ecco la nostra idea di trading: compreremo quando il CCI supera il livello + 100  e venderemo quando scende sotto – 100. Chiaramente si tratta del classico sistema stop and reverse.

Lo strumento finanziario su cui è stato testato il trading system è il cambio EURUSD, time frame 1 ora.

Ecco che risultati avrebbe ottenuto dal 30 settembre 2009 al 15 giugno 2012:

Proverò a migliorare un po’ inserendo delle semplici regole di risk management: fissiamo uno stop loss a 300 $ e stop profit a 1300 $.

Due considerazione su tutte: il numero di trade è molto elevato e l’andamento dell’equity line comincia a far sperare in qualcosa di positivo. Il net profit è 30.470,60 $, il profit factor 1,13, il massimo drawdown 16.081,70, l’average trade 29,09 $,  la percentuale di trade vincenti soltanto del 25,85 %.
Proverò ad inserire dei filtri come, ad esempio, inclinazione della media mobile, ad aumentare il periodo di calcolo del CCI, a chiudere le posizioni alla fine della giornata, a togliere il take profit.
So cosa avete appena pensato: lo stop loss no, non lo toglierò mai dai miei sistemi! Della serie toglietemi tutto ma non il mio stop loss!

Chiaramente non è ciò che mi attendevo.
Non sto qui a riproporre tutti i passaggi, il numero di test, le idee buone e quelle pessime testate.
Durante i backtest ho avuto momenti di scoraggiamento: ogni cosa sembrava peggiorare o comunque non migliorare, il sistema originario. Forse il sistema raccoglieva un’idea di trading già ottima in sé. Forse, più probabilmente, stavo andando nella direzione sbagliata.
E se utilizzassi il CCI in modo diverso? Ad esempio comprando al taglio della sua media mobile a 4 periodi e non sul taglio del valore + 100?


Forse ci sono.  

Stop loss e take profit vanno però ricalcolati, per semplificarmi la vita decido che il rapporto tra i due  debba essere 1 a 2. In questo modo avrò un input in meno. I lettori che conoscono i pericoli dell’overfitting approveranno questa mia decisione.
Nel processo di lavorazione e di inserimento e backtest con tradestation è emerso che ciò che funziona per i trade long sembra non essere altrettanto efficacie per le operazioni short. I trade long e gli short hanno una struttura profondamente diversa.

Chiedendo aiuto  all’ottimizzazione mi sono accorto i long funzionano meglio se il CCI < 60 e gli short se il CCI < -50. Proprio così, è stata una sorpresa. Mi sarei aspettato che per i long il CCI dovesse essere maggiore di un certo valore, invece…


A proposito di ottimizzazione, quale sarebbe stato il valore temporale migliore per calcolare il CCI al fine di ottimizzare il net profit?
Prima considerazione: tutti i parametri sono buoni. Segno che il sistema è complessivamente robusto.
Sicuramente il valore migliore sarebbe stato 40, e questo per due motivi. Per il valore assoluto che il net profit  raggiunge e, soprattutto, perchè rappresenta il centro di un intorno con valori molto stabili e, come già accennato, tutti positivi.
L’equity line mostrata si riferisce al CCI calcolato a 50 periodi, soluzione non ottimizzata e che non cambierò.
E’ importante capire che l’ottimizzazione può aiutarci ad avere sicurezza nel sistema. Cercare la perfezione su dati del passato non ci aiuterà a overperfomare i mercati in futuro. Capire di aver progettato un buon trading system in cui, pur variando i valori degli input i risultati restano comunque buoni ci aiuterà invece tantissimo. Per chi come me progetta sistemi avere fiducia nei propri trading systems è tutto e quando le cose vanno meno bene è l’unica cosa a cui aggrapparsi per continuare ad eseguire i segnali in attesa di tempi migliori.
Il trading system presentato si chiama Anchise I.

lunedì 11 giugno 2012

Come migliorare il trading system sull'RSI - Telemaco I

Ricordate il trading system costruito con l'indicatore rsi sul cambio EURUSD esposto in uno dei precedenti post? Dopo qualche intuizione l'equity line era migliorata moltissimo.
Nei giorni scorsi tuttavia ho provato ad apportare una serie di modifiche per capire se esistessero ulteriori margini di miglioramento.
Come primo passo ho tolto ogni filtro di direzione (avevo usato l'incrocio tra la curva dei prezzi e una media mobile) e di trend (avevo utilizzato l'adx, indicatore che indica la forza del trend).

Cambio EURUSD, time frame 1 ora, periodo dal 4.01.2010 al 11.06.2012.
Ecco come appare la nostra equity line di partenza! Chi ben comincia...


Una prima direzione ci era stata suggerita da David Rodriguez, secondo lui l'rsi è un ottimo indicatore da utilizzare nelle fasi laterali, dove il trend non è ben definito.
Ecco cosa faremo! Utilizzeremo l'indicatore CCI (comodity channel index), i segnali long saranno valiti solo se il CCI a 14 periodi sarà inferiore a 100, i segnali short saranno validi solo se il CCI sarà superiore a -100.



Che orrore! L'idea di partenza è stata in grado di distruggere un equity line molto buona! Chiaramente non funziona il filtro CCI così come lo abbiamo concepito. Proviamo a fare il contrario! Voglio che il CCI sia > 100 per i trade  long e < -100 per i trade short.




Si tratta della stessa equity line iniziale! Ciò significa che quando l'rsi supera il vivello 70 il cci è sempre sopra il livello 100, per i trade short tali livelli sono rispettivamente 30 e -100. Questa è un'indicazione molto interessante: il CCI a 14 periodi sembra essere più veloce dell'RSI a 14 periodi.
In uno dei prossimi post approfondirò meglio questo argomento e testerò un sistema basato sul CCI.

Torniamo al nostro trading system, il CCI, così come utilizzato, non mi è stato di grande aiuto.
Il secondo filtro testato è il choppymarketindex (Building winning  trading systems with tradestation, G. Pruitt e J.R. Hill, Future Truth), proverò a considerare i segnali solo se questo è minore di 50. Anche in questo caso però i risultati non sono buoni.



Invertendo il filtro le cose potrebbero migliorare sensibilmente.


La situazione è migliore ma non rispetto al nostro trading system di partenza.
Non ho ancora trovato quello che stavo cercando. Proverò con un filtro di pattern.




Beh evidentemente si tratta del pattern sbagliato. Una media mobile? Il sistema di partenza una volta aveva la condizione che la media a 50 periodi calcolata sulle chiusure fosse inferiore al prezzo per le operazioni long, viceversa per le operazioni short. Potrei tentare questa volta con l'inclinazione di una media.




Finalmente! I miglioramenti sono evidenti nella parte finale dell'equity line e sono dovuti principalmente al netto miglioramento dei trade long. 
Non è stato per niente facile migliorare il trading system di partenza. Mi sono complicato la via più di una volta e per venirne fuori ci sono volute ore di backtest.
Spesso la soluzione è più vicina e semplice del previsto.

In un'ottica più lungimirante, vi anticipo che il trading system finale, che denominerò Telemaco I, (perdonatemi, ho un debole per i nomi mitologici), farà parte di un portafoglio di sistemi che testerò nei prossimi post dove affronterò argomenti come la correlazione tra diverse equity line e il drawdown di portafoglio.



sabato 9 giugno 2012

Un esempio di trading system robusto sul cross AUDNZD

Riprendendo il discorso cominciato con il post precedente, ho effettuato un backtest sul cross AUDNZDdollaro australiano – dollaro neozelandese. Il test è stato condotto su quattro diversi time frame compresi tra un'ora e un giorno. Il periodo del backtest va dal 1 aprile 2010 al 8 giugno 2012. L'obbiettivo era quello di valutare se i buoni risultati testati con successo sul time frame ad due ore sarebbero stati replicati  su orizzonti temporali diversi.  

Time frame 1 ora:  le premesse sono incoraggianti, net profit superiore ai 35.000$ buon andamento dell’equity line, l’average trade non è altissimo:  47 $ senza considerare commissioni e slippage.



Time frame 2 ora: il net profit rimane sostanzialmente lo stesso, l’equity line è buona, l’average trade raddoppia: 95 $ senza considerare commissioni e slippage.


Time frame 4 ore: il net profit più che dimezzato rispetto al test precedente, l’andamento dell’equity line comunque rimane buona.



Time frame Daily: il net profit rimane lo stesso del test precedente ma il basso numero delle operazioni fa perdere significatività statistica al  test.



Quali sono le considerazioni finali? Innanzitutto è sicuramente possibile affermare che il trading system testato sul cross AUDNZD  ha dato risultati positivi su ben quattro orizonti temporali diversi, sebbene il test con time frame daily sia statisticamente poco significativo. Tra i time frame con risultati più lusinghieri preferisco quello a due ore perchè, a parità di risultati,  ha un trade medio doppio rispetto a quello ad un ora. Praticamente effettua la metà delle operazioni e in ognuna di esse guadagna il doppio.
Sebbene siano molto difficili da scovare e possano essere considerati delle mosche bianche nell'universo del trading automatico, esistono dei trading system  in grado di operare con profitto su diversi time frame e che, per questa loro peculiarità, possano essere considerati robusti.

Il prossimo passo sarà testare lo stesso sistema su diversi strumenti finanziari.  








venerdì 8 giugno 2012

La robustezza di un trading system

Non c'è un solo libro sui trading system tra le decine che ho letto che non si soffermi a decantare l'importanza della robustezza. Tra tutti i parametri in base ai quali valutare la bontà di un sistema automatico, la robustezza ha un ruolo fondamentale: è in base alla considerazione che il trader ha di questa che un sistema smette di essere soltanto un mero algoritmo per diventare un criterio utiizzato per mandare ordini al mercato.
La robustezza teoricamente può essere definita come la capità di adattamento alle diverse condizioni di mercato. Praticamente si manifesta nella capacità di ottenere buone performance su diversi mercati e su diversi time frame. 
Un'altro aspetto della robustezza di un sistema è la sua capacità di ottenere buone performance al variare dei cosiddetti "inputs". Ad esempio, se consideriamo  il parametro x comune a due diversi sistemi, tra questi ultimi sarà più robusto quello che subisce meno variazioni man mano che il parametro x assume valori diversi.
In molti libri spesso compaiono delle tabelle dalle quali dedurre ad esempio che, di venti mercati esaminati, un sistema ottiene buone performance su sedici o diciassette di essi, ma ciò non significa che possa essere considerato tradabile per ognuno di essi, tantissimi altri fattori debbono essere considerati.
Dedicherò due tra i prossimi post rispettivamente al comportamento dello stesso trading system sullo stesso mercato e su time frame differenti e su diversi mercati.
Premetto che almeno ad oggi, non ho avuto mai la fortuna di testare un sistema che lavori bene su diversi time frame e su tutti i mercati.
I backtest saranno effettuati con il software Tradestation e, come sempre, non mancheranno sorprese.


mercoledì 30 maggio 2012

Un trading system basato sull'indicatore RSI

Nel post precedente avevo preaanunciato un severo test delle idee di trading presentare da David Rodriguez nell'ultima edizione di dell'ITForum di Rimini. Useremo le seguenti regole di trading: apriremo una posizione long quando l'RSI a 14 periodi supererà il livello 30 dal basso verso alto e apriremo una posizione short quando l'RSI taglierà dall'alto verso il basso il livello 70. Il sistema, così come concepito, è un classico sistema reversal, trascorre il 100% del tempo a mercato.
Purtroppo l'equity line è tra le più brutte mai viste. Un'immagine vale più di mille parole.


La situazione non migliora neanche aggiungendo uno stop loss di 100 dollari e uno stop profit, anch'esso di 100 dollari.



Cosa potrebbero suggerirmi due equity line così brutte? Forse che sto facendo l'opposto di quello che dovrei fare? Proverò a capovolgere le regole d'ingresso: entrerò long quando l'RSI supererà il livello 70 e short quando l'RSI scenderà sotto 30. Per adesso manterrò i livelli di stop loss e  stop profit fermi a 100 dollari. Anche se, osservando il numero di trade, mi viene subito in mente che il valore 100 per stop loss e take profit potrebbe essere troppo basso.


Finalmente un sistema con un equity line accettabile! Il numero di operazioni elevato indica che il sistema esce troppo presto dalle posizioni per poi riaprirne di nuove. Per evitare ciò userò dei valori di stop loss e takeprofit diversi da 100 dollari e ne ottimizzerò li ottimizzerò partendo a 0 a 2000 dollari privilegiando i valori di netprofit e trade medio. L'ottimizzazione effettuata ci suggerisce di utilizzare dei livelli di 900 dollari per lo stop loss e 2000 per il take profit. I progressi sono visibili nell'equity line dell'immagine successiva: ora è molto più regolare e anche il massimo draw down diminuisce in misura significativa.

Con poche semplici intuizioni un sistema che sembrava essere fallimentare è migliorato fino a diventare tradabile. Anche il numero di trade assume un valore più equilibrato. E' importante che nei momenti in cui il trading system funziona meno bene non ci siano dei drawdown rovinosi: il massimo riscontrato è stato di $ 11.926, risultato che considero accettabile. Il profit factor é pari a 1,32, un valore buono ma non eccezionale, invece il valore del trade medio, pari a $ 169,44, è molto buono.

Nei prossimi post cercherò di abbinare a questa tecnica un sistema di switch che permetta di riconoscere le fasi di trading range dalle fasi in cui il mercato sarà in trend. Per le prime utilizzerò l'RSI, per le seconde delle semplici medie mobili.
Il proposito è molto ambizioso, vedremo se gli sviluppi saranno altrettanto interessanti.

Una considerazione finale. Come è possibile che il sistema presentato inizialmente si sia rilevato così poco efficacie? La spiegazione che mi sono dato è che, nella confusione, prendendo appunti io abbia confuso i livelli 30 e 70 invertendoli.

domenica 20 maggio 2012

ITForum di Rimini 2012 - Evita l'errore n. 1

Il 17 e 18 maggio scorsi è andato in onda al nuovo palacongressi di Rimini il consueto appuntamento annuale con l'ITForum. Con il mio vecchio amico Enrico, conosciuto durante il corso Siat del 2006, abbiamo deciso di condividere questi due intensi giorni. A dire la verità eravamo interessati ad aspetti diversi del trading, più focalizzato sui trading system io, più interessato ad argomenti di ampio respiro lui.
Era la prima volta che partecipavo all'ITForum, sicuramente non mi aspettavo una partecipazione così importante da parte del pubblico. Distratto dalle bellezze di turno presenti a numerosi stand di intermediari e dalle luci a led delle ultimissime piattaforme di trading, mi sono catapultato da un'aula ad un'altra cercando di carpire i segreti dei traders più affermati.

Il primo meeting del giovedì si tiene nella sala forex, titolo "come essere vincenti nel mercato Forex". L'obbiettivo sbandierato nel titolo è senza dubbio ambizioso, forse anche troppo considerando che la maggior parte dei traders perde soldi su quel mercato. Sono incuriosito e scettico al punto giusto:  decido di andare.
Nonostante i 10 minuti di anticipo i posti a sedere sono tutti occupati, decido di sedermi per terra. Prenderò appunti sulla mia amata agenda verde acido marchiata Sardaleasing. La tecnica esplicata è molto semplice: RSI e taglio dall'alto verso il basso del valore 70 per le entrate long, RSI e taglio dal basso verso l'alto del valore 30 per le entrate short. Un classico sistema stop and reverse. Successivamente vengono introdotti uno stop loss e un take profit. Viene anche spiegata l'importanza del rapporto 1 a 1 tra questi ultimi.
L'equity line mostrata appare molto ben strutturata. Ecco il primo spunto di lavoro: codificheremo nei prossimi post questo sistema per verificare la sua bontà con diversi time frame. A proposito, il relatore dice di aver utilizzato il time frame a 60 minuti, poi forse si confonde e dice 70. Nel dubbio entrambi, insieme ad altri saranno oggetto di backtest. Il relatore precisa che i risultati migliori si ottengono in trading range e che per un mercato trending può bastare anche una semplice media mobile. Ecco una seconda idea, i successivi test saranno effettuati su un sistema che proverà a distinguere queste due fasi del mercato e che opererà alternando RSI e medie mobili. Dopo qualche ora mi confronto con Dario, presentatomi come un grande esperto di multicharts, sui problemi che stavo incontrando per automatizzare i miei sistemi. Mi viene suggerito un nome di una web farm, apro la mia agenda verde per appuntarlo e appare il codice formato easylanguage che nel frattempo avevo scritto traducendo le indicazioni del relatore. Dario lo guarda, sembra scettico, poi gli si illuminano gli occhi, mi guarda e mi dice: "Prova a fare il contrario!". Ecco un terzo spunto operativo!

domenica 13 maggio 2012

La nascita di tradingsystemreports


Tradingsystemreports è un blog dedicato ai trading systems nato con l'obbiettivo di analizzare, attraverso la lettura della relativa reportistica, la bontà delle principali idee di trading. Negli ultimi anni lo sviluppo di nuovi strumenti di analisi ha reso possibile anche per i trader retail l'accesso a tecnologie prima a disposizione esclusivamente degli investitori professionali.
Le idee di trading sono tradotte in un linguaggio di programmazione (nello specifico uso prevalentemente easylanguage, il linguaggio dei software tradestation e multicharts) così da poter essere testate sui dati del passato.
I destinatari del blog sono principalmente gli analisti tecnici che hanno o che intendono adottare un approccio meccanico, non necessariamente automatico, senza tuttavia sottovalutare l'utilità che potrebbero ricavare i trader discrezionali che intendessero testare le proprie convinzioni.
Partendo dalla considerazione che l'approccio meccanico quantitativo rappresenta soltanto uno dei possibili metodi per investire nei mercati finanziari, verranno analizzate diverse tecniche e ne saranno valutati i pregi e i difetti. Purtroppo, diversamente da quello che qualcuno vorrebbe farci credere, non esiste il Santo Gral. Ci sono tecniche più efficaci di altre ma anche per queste ci sarà sempre un compromesso da accettare.
Maggiore spazio sarà dato alle tecniche più popolari, per sfatare i tanti, troppi falsi miti che circolano nel mondo degli investimenti e del trading in particolare, senza tuttavia sottovalutare diverse metodologie anticonvenzionali ma non per questo meno efficaci.
Per tanti anni mi sono dedicato alla ricerca dell'indicatore perfetto per poi approdare allo studio della price action. Resto convinto che i migliori indicatori siano il prezzo e il tempo. Pochi altri indicatori ci offrono la possibilità di investire con altrettante possibilità di successo.

Una raccomandazione ai lettori, prendetevi tutti i vantaggi possibili:
  • studiate gli strumenti finanziari (azioni, futures, opzioni, ...) sui quali intendete investire;
  • leggete più possibile: oggi internet offre tantissime risorse gratuite, iniziate da lì per colmare le vostre lacune e assecondare la vostra curiosità;
  • non innamoratevi delle vostre idee, questo è un mondo in cui c'è un signore che ha sempre ragione: il mercato. L'unica cosa che si può fare è assecondarlo. 
  • Ogni mercato è diverso (può sembrare un'ovvietà), assecondiamolo. Non si può pensare di utilizzare un trading system trend follower su alcune tipologie di sottostanti. 

Questa presentazione non rappresenta un elemento di rigidità: i lettori potranno, compatibilmente con l'agenda del blogger, "indirizzare" l'attività del blog con le loro proposte.