La comunità virtuale che frequento più assiduamente sui Social Network è il gruppo Facebook “Investire con Gabriele Bellelli” nel quale partecipo attivamente sia come moderatore sia come autore di post. Il gruppo negli ultimi anni ha visto una tendenza sempre più marcata verso argomenti tipici del mondo Investing, con ETF, Certificates, PAC e portafogli statici come parole chiave più usate, ma la presenza di tanti utenti con i più diversi curricula accademici e professionali è un incredibile valore aggiunto, che porta anche a post originali ed estremamente interessanti. Qualche settimana fa, sul gruppo è apparso un post più lungo del solito intitolato “Strategie di trading sulla stagionalità dell’oro”. Riporto per intero il post, scritto da Michele Ricci, ingegnere civile con la passione per la finanza personale ed il trading:


Visto il notevole interesse per l’argomento, voglio condividere con il gruppo un piccolo studio che ho sviluppato su un approccio di trading sulla stagionalità dell’oro, in particolare per quanto riguarda la finestra invernale (15 Dicembre – 15 Febbraio). Premetto che per dovizia di particolari il post sarà lungo, ma per chi fosse interessato consiglio di leggerlo tutto ed infine aprire il file excel allegato che riassume i risultati dei test.

L’idea di partenza è di sfruttare la finestra stagionale favorevole dell’oro. Considerato il carattere del sottostante, ho voluto strutturare una strategia di breakout totalmente meccanica che non dia spazio a discrezionalità (purtroppo non sono riuscito ad automatizzarla per ignoranza mia in materia, ma alla fine si tratta di una sola operazione all’anno, se qualcuno fosse in grado ed avesse voglia, magari può scrivere e condividere il codice).

I dettagli delle regole di ingresso della strategia di breakout sono riportati nella prima scheda del file excel allegato. Riassumendo brevemente, il segnale di ingresso è uno sfondamento del canale di Donchian a 10 periodi dopo il 15 dicembre, le restanti regole sono tutte di money management e gestione della posizione. Partendo dalla definizione del rischio massimo di ogni operazione (in questo caso ho scelto 100€, equivalente al 2% del capitale massimo a disposizione di 5000€ ma il parametro è chiaramente modificabile), allo scattare del segnale, la dimensione del lotto dell’operazione viene stabilita dalla distanza dello stop loss, rappresentato dalla banda inferiore del canale di Donchian a 5 periodi (in questo modo più la volatilità è alta, più piccola è la size e viceversa). Si piazza quindi un ordine limite in acquisto all’1% sopra il prezzo di chiusura della candela segnale, a mercato chiuso. Se l’operazione viene aperta (nel backtest non capita mai il contrario) si esce solo per raggiungimento dello stop loss, oppure al termine della finestra stagionale (chiusura del 14/02) si piazza un trailing stop loss sulla EMA10 per sfruttare eventuali ulteriori code di rialzo.

Le variabili in gioco sono i due canali di Donchian che forniscono il segnale di ingresso e stop loss. Ho scelto i periodi dopo alcune prove cercando un buon compromesso tra la velocità del segnale (che non facesse perdere troppo movimento rialzista ma al contempo non fornisse troppi falsi segnali, ed ovviamente con una durata ragionevole se confrontata alla durata dell’operazione) e distanza dello stop loss (che permetta di impiegare in maniera più efficiente il capitale per permettere un maggior ritorno monetario a parità di rischio). Anche la scelta della EMA10 come trailing stop è stata fatta cercando solamente di sfruttare l’eventuale estensione del trend rialzista a fine periodo, senza protrarre troppo l’operazione oltre la finestra stagionale.

Per completezza, porto il paragone con i risultati di altre due semplicissime strategie applicabili: una banalissima buy and hold che prevede l’acquisto il 15 dicembre e la vendita il 15 febbraio ed una strategia con un filtro di trend che prevede di comprare solo se avviene (o è già avvenuto all’apertura della finestra stagionale) l’incrocio rialzista della media mobile semplice a 20 periodi con la 50 e vendere sempre sul trailing stop della EMA10 dopo il 15 febbraio. In entrambi i casi, lo stop loss è stato fissato al 7% per dare respiro all’operazione.

Nel file excel allegato ci sono l’elenco delle operazioni di tutte le tre strategie ed una tabella riassuntiva delle metriche ottenute. Si può notare che i due approcci che sfruttano indicatori tecnici (canali di Donchian o medie mobili) in alcuni anni non forniscono segnali se il contesto è chiaramente ribassista, aiutando a prendere qualche stop loss in meno rispetto al buy and hold. A questo punto si possono fare alcune considerazioni sulla base delle metriche analizzate:

  1. Tutti gli approcci hanno una profittabilità molto alta (chiudono in profitto più di 3 operazioni su 4) il che sembra confermare che la stagionalità funzioni;
  2. In tutti i casi il rischio reale sostenuto in ogni operazione è inferiore a quello massimo stabilito, il che significa sicuramente che le regole di money management funzionano ma anche che si potrebbe ulteriormente affinare il posizionamento degli stop loss oppure alzare di poco il rischio massimo a monte dell’operazione (ovviamente il tutto andrebbe nuovamente testato);
  3. I drawdown dell’equity line sono molto contenuti, quindi la strategia sembra essere piuttosto conservativa (per completezza, i drawdown sono stati calcolati solo sui valori di chiusura dell’equity line, non con le operazioni aperte);
  4. Il profitto medio atteso, (expectancy) se consideriamo la size media delle operazioni eseguite,  è attorno al 7% per operazione (che si traduce circa nel 4,3% medio ad operazione sul capitale massimo a disposizione di 5000€), sicuramente non un fulmine di guerra, ma neanche male per un impiego di capitale massimo di due mesi;
  5. In termini di rendimento percentuale e controllo del rischio i tre approcci grosso modo si equivalgono (il che mi porta a pensare che anche un investitore con scarse conoscenze tecniche potrebbe applicare con un ottimo vantaggio statistico l’approccio buy and hold senza farsi troppi problemi). Si nota invece che la gestione più dinamica dell’approccio di breakout, unito alle regole di gestione del capitale e del rischio applicate, permette di sfruttare più efficientemente il capitale a disposizione, mantenendo costante il rischio e contemporaneamente aumentando il guadagno in termini prettamente monetari.

In conclusione, a prescindere dalla strategia analizzata, il risultato ottenuto potrebbe inquadrare questo tipo di operatività come componente satellite di un portafoglio statico, con obiettivo di generare extraprofitti da utilizzare per i ribilanciamenti oppure per recuperare minusvalenze pregresse, mantenendo comunque un profilo di rischio limitato.

E’ importante notare che tutto il lavoro è stato sviluppato su un ETC quotato in euro (in particolare lo Xetra Gold, Ticker: 4GLD), questo ovviamente introduce una variabile ulteriore nel contesto della stagionalità che è rappresentata dall’andamento del cambio EUR/USD nel corso della finestra temporale. Per eliminare questo effetto sarebbe necessario operare su un sottostate quotato e regolato direttamente in USD o hedgiato, ma ho comunque preferito optare per 4GLD in modo da sfruttare l’operatività nel mio personale contesto di investimento. Inoltre si potrebbe appuntare che 4GLD ha uno storico limitato a 14 anni, tuttavia gli approcci descritti possono essere tranquillamente ripetuti magari sull’equivalente ETC americano, che ha storico maggiore, per saggiarne la robustezza, ma non si adatterebbero comunque ad un investitore europeo che volente o nolente, deve fare i conti con gli strumenti che ha a disposizione ed anche con l’effetto del cambio valutario o scegliere prodotti a cambio coperto (comunque con storici limitati). Se qualcuno volesse provare ad estendere lo studio in questo senso, sarei molto curioso di vederne i risultati.

Concludo sottolineando che se qualcuno fosse interessato a capire meglio o mettere mano ai dati, lascio in condivisione tutto il lavoro in formato excel editabile (per semplicità si possono modificare le variabili nelle caselle in giallo chiaro per vedere come cambiano i risultati). Consiglio però caldamente di metterci mano in proprio e fare le modifiche che si ritenessero opportune prima di applicare uno qualsiasi dei tre approcci in reale. Lo scopo principale del post è quello di avere un riscontro, in modo magari che tutti insieme possiamo apportare migliorie alle strategie, pertanto se avete commenti o suggerimenti magari anche da parte di Gabriele Bellelli e Maurizio Papi sarei ben contento di discuterne.

Un saluto e buoni investimenti a tutti!

Edit: successivamente alla pubblicazione di questi risultati, ho testato anche l’ETC con copertura valutaria XAD1; la stessa strategia sopra proposta porta a risultati decisamente poco soddisfacenti nella finestra invernale, mentre si comporta meglio nella finestra estiva dal 15/07 al 31/08, dove invece a soffrire è l’ETC a cambio aperto 4GLD. Questo comportamento potrebbe trovare una spiegazione se combiniamo anche gli effetti di stagionalità del Dollaro Americano, che tende ad essere debole nel mese di Dicembre, per poi rafforzarsi nei primi mesi dell’anno.


Queste sono le situazioni che preferisco: come scrivo spesso nei miei articoli, reputo la condivisione della conoscenza fondamentale per migliorarci e per una società più consapevole delle proprie capacità. Il post di Michele non solo condivide il suo lavoro, bensì lancia l’opportunità di raccoglierlo e di migliorarlo. Negli anni ho acquisito un po’ di esperienza nell’analisi di Trading System, questa occasione mi è sembrata ottima per dare il mio contributo per definire una strategia di Trading sulla stagionalità dell’oro. Nei prossimi paragrafi vedremo come ho “riprogettato” il Trading System, che per l’occasione ho chiamato “Aureum“, parola latina che significa “d’oro”.

Trading System Aureum

Il computer è un ambiente di lavoro eccezionale, perché a seconda dell’attività che bisogna svolgere, ha lo strumento adatto allo scopo. Per questa occasione ho deciso di mettermi davanti alla ProRealTime, una delle più note piattaforme di Trading e di Analisi Tecnica, e di tornare ad una programmazione imperativa pura e dura come quella fornita in questa piattaforma.

Il Trading System che andremo a realizzare si basa sulla stagionalità dell’oro, pertanto il primo passaggio sarà quello di verificare quali mesi dell’anno sono più favorevoli per operare. Nella figura 1 ho riportato i rendimenti cumulati mensilmente dall’ETC SGLD.MI dal 2004 al 2022. I mesi dove si sono concentrati maggiormente i guadagni sono i due mesi prettamente invernali, gennaio e febbraio, e quelli estivi, luglio e agosto. La finestra invernale è nota a molti, per essere precisi inizia intorno a metà dicembre e si conclude a metà febbraio, ma quella estiva è a volte trascurata anche se altrettanto interessante. Per il nostro “Aureum”, prenderemo queste due finestre:

  • Da 15 dicembre al 15 febbraio;
  • Dal 1 luglio al 31 agosto;
Figura 1 – Rendimenti medi mensili di SGLD.MI

Le regole di ingresso e di uscita che useremo si basano sui canali di Donchian, degli indicatori che creano una zona all’interno della quale la linea dei prezzi si muove. La loro definizione è tutto sommato semplice, ad ogni istante temporale si registrano i prezzi massimo e minimo degli x periodi precedenti. La figura 2 mostra un esempio, nella quale si è scelto un periodo uguale a 10, con i seguenti segnali:

  • Si entra a mercato quando la linea dei prezzi incrocia al rialzo la banda superiore del canale;
  • Si esce quando la linea dei prezzi incrocia al ribasso la banda inferiore del canale.

A differenza del set-up proposto nella versione originale del Trading System, con un ordine limite in acquisto all’1% sopra il prezzo di chiusura della candela segnale, l’ordine di acquisto è effettuato a mercato nel giorno seguente al segnale.

Figura 2 – Esempio di canali di Donchian

L’ultima istruzione è l’utilizzo di una media mobile come trailing stop, che termina l’operazione alla prima occasione utile nel caso che si esca fuori dalla finestra di stagionalità. Per quanto riguarda il money management, ho preferito utilizzare un capitale costante per ogni operazione, in modo che durante il backtest tutti i trade siano confrontabili tra loro.

Riporto di seguito il codice ProRealTime che ho scritto e che metto liberamente a disposizione di tutti:

// *** PARAMETRI E INPUT
// (N1, N2, N3) sono i parametri da ottimizzare
X0 = Close
X1 = DonchianChannelUp[N1]
X2 = DonchianChannelDown[N2]
X3 = Average[N3](close)

// Condizioni per entrare su posizioni long
ONCE K0 = 0
ONCE SL = 0
K1 = (Month = 12 AND Day > 14) OR (Month = 1) OR (Month = 2 AND Day < 15) OR (Month = 7 ) OR (Month = 8)
K3 = X0 crosses over X1

// Condizioni per uscire su posizioni long
K2 = NOT K1
K4 = X0 crosses under SL
K6 = X0 crosses under X3

// Money Management (capitale fisso)
positionsize = 10000 / open

// *** ESECUZIONE ***
IF Month = 3 OR Month = 9 THEN
    K0 = 0
ENDIF

// istruzione per entrare su posizioni long
IF NOT LongOnMarket AND K0 = 0 AND K1 AND K3 THEN
    BUY positionsize SHARES AT MARKET
    K0 = 1
    SL = X2
ENDIF

// istruzione per uscire da posizioni long
If LongOnMarket AND K2 AND K6 THEN
    SELL AT MARKET
ENDIF

// Stop Loss
If LongOnMarket AND K4 THEN
    SELL AT MARKET
ENDIF

Backtest

Il test sul passato è una fase che permette di smussare gli angoli di un Trading System . Si sente parlare molto sui social network di come sia poco utile (se non inutile) lavorare sulle serie storiche, che nulla è uguale, tutto evolve e il futuro è sempre diverso. La mia opinione è diametralmente opposta, io sposo la concezione ciclica della storia di Macchiavelli, nella quale ad essere uguali sono gli uomini, con le loro paure ed avidità che portano a ripetere nel tempo le stesse azioni, raccolte e incorporate dai mercati finanziari. Disporre di un Trading System che presenti dei risultati positivi nei backtest è il presupposto fondamentale per fare bene anche nel futuro, quando i cicli economici ripresenteranno le stesse sfide e opportunità del passato.

Utilizzando le potenzialità di ProRealTime, ho provato varie configurazioni del Trading System “Aureum”, al variare dell’ampiezza dei canali di Donchian e della media mobile di trailing stop, oltre a provare alcuni ETC sull’oro. Per non annoiarci con grafici, tabelle che richiederebbero un articolo a parte, fornisco subito la combinazione che ho ritenuto un buon compromesso tra rendimento e stabilità:

  • 4 giorni per il periodo della banda superiore di Donchian. Questo è un valore relativamente basso, favorisce ad “Aureum” di entrare alla prima occasione a mercato quando si apre la finestra stagionale.
  • 8 giorni per il periodo della banda inferiore di Donchian. Il segnale di uscita ha un periodo doppio rispetto a quello di ingresso, evitando che “Aureum” chiuda la posizione in anticipo. Ricordiamo che questo valore è determinato all’ingresso e rimane costante, non si aggiorna dinamicamente.
  • 8 giorni per la media mobile (trailing stop). Anche in questo caso il periodo è doppio rispetto all’ingresso, cercando di lasciar correre il potenziale profitto.
  • ETC GBS.MI come sottostante. Il prodotto di casa Wisdowtree è quotato dal lontano marzo 2004 sulla borsa di Parigi e sul sito è disponibile tutta la serie storica dei NAV quotato in dollari.

In figura 3 è disponibile la curva dei rendimenti cumulati per Aureum, a confronto con una strategia “compra & dimentica” che equivale ad un investitore che avesse comprato all’inizio della serie storica e avesse lasciato l’ETC fermo nel conto titoli.

Figura 3 – Rendimenti cumulati per “Compra & Dimentica” e “Aureum $”

La curva di “Compra & Dimentica” è costruita su quotazioni in euro, per simulare correttamente la situazione di un investitore dell’eurozona, mentre “Aureum” usa le quotazioni in dollari. Contrariamente a quanto si pensi, l’oro a cambio coperto ha una volatilità maggiore della sua controparte a cambio aperto e poiché “Aureum” riesce a sfruttare la volatilità a proprio favore, la scelta dell’oro a cambio coperto porta a risultati decisamente migliori.

La figura 3 è corredata di tre rettangoli che evidenziano tre distinte fasi temporali: una rialzista una ribassista ed una laterale. È di estrema utilità avere in questa serie storica tutte e tre le principali fasi, permettono di vedere il comportamento di un trading system senza vizi:

  • Nella fase rialzista (2005-2011), l’oro ha più che raddoppiato le proprie quotazioni in solo 8 anni, una progressione che la maggior parte dei Trading System non riesce a tenere il passo.
  • Nella fase ribassista (2012-2013), l’oro ha avuto una correzione importante sotto i colpi del Quantitative Easing della FED, ma questo non ha preoccupato il nostro “Aureum” che invece è andato controcorrente, ha sfruttato i rimbalzi e realizzato un guadagno del 30%.
  • Nella fase laterale (2014-2019), “Aureum” ha continuato a guadagnare costantemente, generando un extra-rendimento alpha di tutto rispetto.

Quello che sorprende non sono i rendimenti, ma la riduzione di rischio che si accompagna con “Aureum”. La figura 4 non ha bisogno di commenti, il nostro trading system ha la capacità di abbattere il rischio rispetto alla semplice detenzione di oro.

Figura 4 – Drawdown per “Compra e Dimentica” e “Aureum”

Simulazione

Usciti da un backtest ottimistico, passiamo ad una simulazione che permetta di validare il risultato ottenuto nel paragrafo precedente. In questo caso utilizziamo il metodo “Walk Forward”, che simula il comportamento di un investitore del passato che non avrebbe avuto a disposizione tutta la serie storica che invece noi abbiamo. Con la figura 5 come riferimento, se spostiamo le lancette dell’orologio indietro nel tempo e tornassimo per esempio nel 2012, avremo a disposizione una serie storica che inizia sempre nel 2004 ma che si interrompe nel 2012. Su questa porzione di serie storica (barra blu nella prima riga in figura 5), effettueremo un backtest per trovare i migliori parametri del nostro Trading System, i quali saranno utilizzati operativamente nei due anni successivi (barra rossa nella prima riga in figura 5). Arrivati nel 2014, ora abbiamo a disposizione 2 anni in più da usare nel nostro backtest, perciò spostiamo in avanti la finestra di osservazione e calcoliamo un nuovo set di parametri, che useremo nei due anni successivi, dal 2014 al 2016. Procedendo in questa maniera, la nostra equity line è composta da tutti i segmenti rossi, ottenuti solo con i dati che sono disponibili in ogni momento della serie storica.

Figura 5 – Esempio di Walk Forward

ProRealTime fornisce un modulo Walk Forward per simulare il proprio Trading System. Con riferimento alla figura 6, possiamo vedere che il grafico è diviso in due parti da una linea verticale tratteggiata, a sinistra c’è la parte in-sample, che corrisponde alla barra blu della figura 5, mentre a destra c’è quella out-of-sample, formata da 5 sottoparti, corrispondenti alle barre rosse.

Figura 6 – Walk Forward sul Trading System “Aureum”

L’equity line dal 2013 al 2022 è quella che avremmo ottenuto se avessimo calcolato i parametri di “Aureum” con la serie storica disponibile in quel momento e aggiornati periodicamente. La regolarità della curva dimostra come il nostro Trading System abbia risultati persistenti nel tempo, soprattutto negli anni fino al 2019, che ha visto le quotazioni dell’oro in una fase di lateralità.

Il backtest e la simulazione ci hanno dato informazioni e risultati del passato, ma nessuna indicazione sul futuro vero, quello che abbiamo davanti. Il futuro è incerto per definizione ma la statistica ci può dare una mano per comprendere quello che potremo ottenere, almeno in termini di probabilità.

Orizzonte Temporale

La figura 7 riporta la distribuzione delle operazioni condotte da “Aureum”, categorizzate in base al rendimento conseguito. Ipotizziamo che le operazioni future del Trading System rispettino questa distribuzione, in pratica è come se “Aureum” ogni volta scegliesse casualmente le operazioni da quelle riportate nel grafico.

Intuitivamente possiamo capire che “Aureum” è vantaggioso, le barre verdi sono molto più numerose di quelle rosse, la possibilità di finire con un guadagno positivo dopo un certo numero di operazioni sarebbe molto probabile. Una distribuzione come questa, sbilanciata nel semipiano positivo, è in grado di generare guadagni, ma se all’inizio “Aureum” dovesse incappare in una serie di rendimenti negativi allora avrebbe bisogno di tempo per recuperare. La domanda corretta da porsi è: “dopo quanto tempo possiamo affermare, con un buon margine di sicurezza, che la strategia chiuderà in guadagno?”

Figura 7 – Distribuzione dei risultati del Trading System “Aureum”

Stiamo parlando del concetto di orizzonte temporale, che ho trattato in dettaglio in una serie dedicata di articoli, nei quali ho introdotto una formula che permette di quantificare in maniera intuitiva l’orizzonte temporale:

\text{Orizzonte } =

\begin{pmatrix}
  k \cdot
  \displaystyle \frac{ \text{Rischio} }{ \text{Rendimento} }
\end{pmatrix} ^2

La formula mostra come rischio e rendimento partecipano entrambi alla determinazione del tempo minimo per avere una sicurezza statistica che l’investimento finisca in guadagno, mentre il parametro k quantifica il grado di rischio dell’investitore, con valori suggeriti che possono variare da 1 (grado di rischio elevato) a 2 (rischio basso). Se scegliessimo k = 1.5 (moderata tolleranza al rischio), per “Aureum” avremo:

  • Rendimento medio per trade 4.1%
  • Rischio medio per trade (deviazione standard) 7.0%
  • Orizzonte temporale 7

Poiché “Aureum” esegue al massimo 2 operazioni l’anno, significa che la nostra strategia sarà profittevole con un buon livello di fiducia dopo 3 anni e mezzo. Può sembrare un tempo relativamente lungo, però le poche operazioni l’anno danno poco tempo ad “Aureum” di recuperare se partisse con il piede sbagliato. Sapere quale sia l’orizzonte temporale di una strategia è molto importante, perché deve aiutarci ad essere meno emotivi e a non giudicare dopo un solo singolo trade.

Conclusioni

Per chi volesse cimentarsi con “Aureum” e provarlo sui mercati, il mio consiglio è di utilizzare i seguenti parametri visti nel backtest e che riporto qui:

  • 4 giorni per il periodo della banda superiore di Donchian.
  • 8 giorni per il periodo della banda inferiore di Donchian.
  • 8 giorni per la media mobile semplice.
  • ETC con ISIN DE000A1EK0G3 e ticker XAD1.MI

Usare un ETC non è mandatorio, se vogliamo ridurre il capitale investito sfruttando in modo intelligente la leva finanziaria allora possiamo affidarci agli strumenti derivati, come i certificates a leva.

Per chi volesse approfondire la mia interpretazione sull’orizzonte temporale, vi lascio il link agli articoli, mentre se volete conoscere la strategia stagionale più famosa, qui potete trovare il mio personale contributo Sell-in-May-and-Go-Away. Se preferite YouTube, vi consiglio di guardare il seguente Investire nell’oro seguendo la stagionalità favorevole.

Per chi volesse contattare Michele Ricci, qui può trovare il link al suo profilo Facebook, mentre qui può scaricare i fogli di calcolo realizzati su excel con i dettagli della sua strategia ed eventualmente lasciare un proprio commento per contribuire con le proprie idee Gruppo “Investire con Gabriele Bellelli”.

Con un tempismo che non sembra casuale, recentemente è stato pubblicato il seguente articolo Backtest Simulazioni e Proiezioni che Differenza c’è di Luca Giusti, un trader sistematico dalla lunga e invidiabile carriera. L’articolo spiega in modo sintetico e preciso quali sono i passaggi fondamentali per validare un qualsiasi Trading System e non è un caso che ho voluto rispettare queste linee guida anche per “Aureum”. Nel prossimo articolo andremo a conoscere meglio il pensiero di Luca Giusti, recensendo il suo ultimo libro “Portafogli per l’Investitore”.

Intanto vi ringrazio e vi auguro un buon trading stagionale!



Se hai domande o curiosità da chiedermi, non esitare a scrivermi nel modulo qui in basso, oppure mi trovi su Facebook e su LinkedIn. Se vuoi rimanere sempre aggiornato e non perderti nessun articolo appena esce, iscriviti alla newsletter compilando il seguente modulo:

Se apprezzi i miei articoli e il progetto MP Investit, puoi sostenermi con un contributo libero tramite PayPal o con una ricompensa del browser Brave. Questo mi motiva e mi incentiva a produrre contenuti sempre migliori. Grazie!

Articoli simili

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *