Visualizzazione post con etichetta ottimizzazione. Mostra tutti i post
Visualizzazione post con etichetta ottimizzazione. Mostra tutti i post

giovedì 1 novembre 2012

Oltre il trend following - Un trading system sul FTSE mib - Argo II

Nel precedente post ho presentato Argo, un trading system trend following creato per il future FTSE MIB. La versione presentata si era dimostrata fin dall'inizio abbastanza solida. In questo post cercherò di apportare dei miglioramenti lavorando su aspetti che non erano stati ancora considerati.

Nello specifico prenderò in considerazione la forza del trend, utilizzando l'indicatore adx, e la volatilità, servendomi dell'indicatore bandwidth.

Non voglio soffermarmi sulla costruzione dell'indicatore adx. In tanti forum su internet o in qualsiasi libro di analisi tecnica potrete trovare tutte le informazioni possibili al riguardo. Però è importante precisare chel'adx misura solo la forza del trend, non la sua direzione. Un trend viene indicativamente considerato forte quando l'adx supera il valore 30.

Quale è la prima scoperta? Se apporto tale modifica al sistema le sue prestazioni peggiorano...e di molto. Il problema è che peggiorano troppo. E se invece funzionasse il contrario?
Proverò a considerare validi i segnali soltanto se l'adx è inferiore a 30.

Sulla volatilità si potrebbero scrivere 1000 libri e il discorso comunque non sarebbe esaustivo. Ai miei fini ho utilizzato un indicatore molto particolare: il bandwidth. Anche qui non mi soffermerò sulla formula dell'indicatore. Insieme al bandwidth ho usato una sua media mobile. Quando l'indicatore è superiore alla sua media siamo in presenza di alta volatilità. Quando esso è inferiore alla media c'è bassa volatilità.

Bene, anche qui però molto è cambiato in corso d'opera. Facendo lavorare il sistema soltanto nelle fasi di alta volatilità avevo dei risultati molto strani: miglioravano solo le operazioni short mentre peggioravano, e di molto, quelle long.

Ho deciso di considerare il filtro buono soltanto per i trade short e di usare il filtro contrario per le operazioni long. In fondo avevo già avuto modo di considerare la diversa struttura dei rialzi rispetto ai ribassi.

Nota operativa: ho utilizzato il bandwidth su un time frame giornaliero. Il sistema ha quindi ora 2 time frame: 15 minuti e daily.

In fase di backtest ho deciso di non effettuare operazioni long il venerdì e di non effettuare operazioni short il mercoledì, inoltre ho deciso di non operare se ci sono stati dei gap su base daily.

Per la misura dello stop loss mi sono servito del grafico MAE di tradestation 9.1.



Come sempre ho effettuato i backtest con il programma Tradestation.


Strumento finanziario: FTSE MIB;

Time frame: 15 minuti;

Periodo analizzato: dal 1-10-1996 al 8-12-2011 (15 anni e 2 mesi)

Vediamo i risultati:














I risultati sono stati ottenuti senza alcuna ottimizzazione.

Rispetto al sistema originale è più che raddoppiato l'average trade, il massimo drawdown è diminuito di oltre il 50 %. Anche la percentuale delle operazioni vincenti ha subito un'aumento del 5%.

Infine è da considerare positivamente il fatto che tutti gli anni (15) sono stati chiusi in positivo.

Al prossimo post.

lunedì 16 luglio 2012

Il trading system basato sull'RSI e i filtri orari - Telemaco I - parte 2

Il trading system Telemaco, presentato nelle settimane scorse e già oggetto di un upgrade, aveva già destato una buona impressione nei backtest condotti così come i risultati riportati da Anchise applicando dei semplici filtri orari.
Ed ecco l'idea, scontata a dire la verità, che possano funzionare altrettanto bene se applicati anche ad altri trading system e ...Telemaco era troppo a portata di mano per non poter essere coinvolto...


Strumento finanziario: cambio eurodollaro;
Time frame: 1 ora;

Periodo: 01/01/2004 - 08/07/2012;

Questa è l’equity line di Telemaco:



Ed ora ecco cosa succede applicando dei filtri orari:









Applicando dei filtri orari migliora sensibilmente la capacità di raggiungere profitti, situazione maggiormente visualizzabile nella prima parte dell’equity line.
I parametri che sono risultati migliori sono stati 10 e 20: il nostro sistema riterrà buoni i segnali di entrata soltanto se sono successivi alle 10 del mattino e precedenti alle 20.
Ecco il confronto tra le voci più significative dei rispettivi report:


senza filtro
con filtro orario
Net profit
83.958,70
112.217,00
Profit factor
1,3
1,56
% trade vincenti
41,38
45,95
Average trade
170,3
336,99
Max drawdown
18.494,00
17.893,00


I parametri migliorano sensibilmente tutti. L’average trade addirittura raddoppia. Il drawdown, seppure di poco, diminuisce.

Qui di seguito è riportato il report principale di Tradestation:



Il trading system Telemaco è performante, risponde molto bene agli interventi. Deve ulteriormente essere implementato? La risposta è sicuramente si! Voglio migliorare il rapport netprofit medio annuo/max drawdown. I migliori trading systems che ho visto girare avevano questo valore prossimo a 10.
Anche qui lavorerò su filtri giornalieri e pattern di compressione di volatilità.
Sono più curioso di voi di sapere come andrà a finire.







mercoledì 20 giugno 2012

Trading systems e onestà intellettuale – Anchise I – parte 2


Una questione mi sta molto a cuore.  Un autorevolissimo trader mi ha fatto notare che avrei dovuto prestare molta attenzione all’average trade del trading system Anchise, il trading system basato sul cci presentato nel post precedente, e allo stop loss di 300$ che, in relazione a barre orarie utilizzate, avrebbe potuto essere molto sensibile alla funzione intrabar order di Tradestation.
Leggendo la pagina principale del report avevo notato un average trade basso, circa 48 $, non mi ero però curato troppo né dell’ampiezza dello stop loss, né della funzione che calcola i movimenti del prezzo all’interno della singola barra.

Decido di rifare i test e di pubblicarli in un nuovo post, qualsiasi siano i risultati.
I risultati avrebbero potuto essere completamente diversi  e, di certo, non in positivo.
Eppoi, non lo nascondo, se un grandissimo trader sente puzza di bruciato...
Ricapitolo per i meno attenti di voi: strumento finanziario cambio eurodollaro EURUSD, time frame 1 ora, periodo dal 30/09/2009 al 20/06/2012.
La prima cosa da fare è inserire la funzione intra bar order, poi procedere con l’ottimizzazione degli stop loss (e di conseguenza del take profit) .
Intanto che la strategia viene caricata mi accorgo di essere nervoso e preoccupato.




I parametri migliori per lo stop loss sono cambiati, ora è di 1000 dollari.
Inoltre i risultati sono tutti molto confortanti a riprova del fatto che l’idea alla base può considerarsi buona.

L’equity line ora appare molto meno bella ma ha un andamento comunque rialziasta e i anche i drawdown non sono rovinosi.


Il profit factor è 1,25, sufficiente ma non eccellente. Ricordo che il profit factor è il rapporto tra la somma dei guadagni delle operazioni vincenti e la somma delle perdite nelle operazioni perdenti.
Il massimo drawdown a posizioni aperte è 11.070,10$.

L’average trade ora è 64,80 $, è migliorato molto a seguito dell’allargamento degli  stop loss.


A proposito di stop loss… Avete notato che il valore 1000 non era al centro di un intorno ma rappresentava il valore più alto tra quelli che avevo considerato?
Lo so che il post era nato per porre rimedio ad un errore, ma se c’è la possibilità di fare meglio…



Il valore che assumerò come stop è 1.500 $, il net profit ora è pari a 36.028,63$, l’average trade aumenta a 72,79$, il drawdown scende  a 9.637,59$, il profit factor rimane invece stabile, ora si assesta sul valore 1,28.
Ecco la nuova equity line:




Non il massimo ma sono comunque sollevato, non  lo nascondo.
Nel prossimo post pubblicherò uno studio che ho presentato alla Trading Room di Roma il 19 aprile 2012 e che ha ad oggetto un trading system sul Ftse Mib che utilizza l’indicatore momentum.




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.