Sugli stop si legge di tutto e il contrario di tutto. Sicuramente molti come me rimpiangono di non aver impostato degli stop loss quando guardano posizioni sofferenti il portafoglio. Ho un Cattolica ondivaga tra un -35% e -25%. Seguo la prima regola che mi sono dato, non chiudere posizioni in perdita e così finché non cambio regola tengo la mia Cattolica sperando in un miracolo Generali. Dati i principi di base, ogni strategia si comporta in modo diverso in funzione degli stop e non sempre uno stop stretto o largo porta benefici. Ecco le regole di base degli stop loss che si trovano in giro:
Uno stop stretto riduce le perdite, ogni strategia deve avere degli stop
Stop troppo stretti non danno respiro alla strategia
Per verificare sul campo come si comportano le strategie in funzione degli stop ho scelto due strategie fondamentalmente diverse tra loro, la prima basata un MACD e la secondo su un pattern di candelstick. Nel primo test le eseguiamo senza stop loss, poi incrementiamo per passi 1%, 5%, 10% e 20%.
Senza stop loss
MACD
CandelStick
Qui di seguito le tabelle riepilogative per le due strategie in funzione degli stop loss
Risultati MACD
1%
5%
10%
20%
Senza
Time in Market
53.0%
52.0%
51.0%
51.0%
50.0%
Cumulative Return
35.27%
65.29%
64.22%
67.69%
70.45%
CAGR%
2.79%
4.68%
4.61%
4.81%
4.97%
Sharpe
0.27
0.42
0.41
0.42
0.44
Sortino
0.4
0.61
0.59
0.61
0.63
Max Drawdown
-34.48%
-36.0%
-34.54%
-35.52%
-34.9%
Longest DD Days
1167
1022
1091
1090
1078
Risultati strategia MACD in funzione dello stop loss
Emergono alcune evidenze, di cui la principale è che sia il drawdown che il periodo di Drawdown non sono influenzati dallo stop loss. L’obiettivo era quello di ridurre il rischio di perdite e invece lo stop loss ha influenzato solo in guadagno. In sintesi la strategia non ha avuto abbastanza respiro per esprime il proprio potenziale. Il Time in market fluttua leggermente perché in effetti raggiunto uno stop loss potenzialmente si può rientrare in strategia prima. In effetti prima si esce e prima si può rientrare.
Risultati CandleStick
1%
5%
10%
20%
Senza
15%
20%
Time in Market
73.0%
97.0%
99.0%
99.0%
99.0%
99.0%
99.0%
Cumulative Return
3.7%
24.98%
42.4%
65.97%
63.95%
64.57%
65.34%
CAGR%
0.33%
2.05%
3.27%
4.72%
4.6%
4.64%
4.68%
Sharpe
0.17
0.55
0.63
0.72
0.59
0.75
0.66
Sortino
0.24
0.79
0.91
1.04
0.83
1.1
0.94
Max Drawdown
-8.29%
-6.67%
-9.05%
-12.97%
-15.91%
-10.62%
-14.81%
Longest DD Days
1960
657
507
379
700
438
429
Tabella riepilogativa risultati strategia CandleStick in funzione dello stop loss
La strategia si comporta malissimo in presenza di stop stretti e sembra avere un comportamento particolarmente buono intorno al 15% di stop
Conclusioni
Il mito da sfatare è che gli stop stretti siano sempre utili a evitare perdite, nei casi visti sopra valori troppo stretti possono portare a risultati disastrosi perché la strategia non respira. Questo non significa che gli stop vanno tolti, vanno semplicemente utilizzati con cognizione di causa.
Attenzione quanto sopra si applica alle strategie che ho analizzato e non vuole essere un suggerimento di qualsiasi natura. Aggiungo che tra trading overnight e intraday ci sono differenze enormi nella gestione degli stop.
Di recente mi sono appassionato, per vari motivi tra cui la voglia di sperimentare nuove tecnologie, agli algoritmi di trading automatico. Qualche tempo fa ho letto un libro di AI (Artificial Intelligence) o all’italiana IA e mi sono chiesto se effettivamente algoritmi di ML (Machine Learning). La mia ambizione è solo quella di divertirmi con un nuovo giocatolo, non certo di competere con bravi scienziati, investitori e trader che si stanno cimentando con la materia. Fatte le prime prove mi sono reso conto che il passo verso algoritmi di AI possono arrivare solo dopo aver preso padronanza con la materia, ossia l’analisi tecnica e il backtesting.
Imparato un po’ di pyhton e le API Backtrader per il testing su dati storici mi sono creato la mia sandbox. Purtroppo in italiano non esiste un termine che esprime il significato per ‘sandbox‘, in tedesco direi Sandkiest, In italiano sarebbe sabbiera o qualcosa del genere. in pratica la scatola di sabbia in cui giocano i bambini nei parco giochi inglesi e tedeschi. In Italia si gioca con la sabbia al mare, non in una scatola come invece fanno i bambini tedeschi e inglesi. A ogni modo mi sono creato l’ambiente con cui giocare così composto:
Python con framework Backtrader
Storico dei dati giornalieri di alcune azioni FTSE MIB dal 2010 a fine 2020.
Algoritmi di trand following da sperimentare
Il paniere di azione è composto da alcune azioni che hanno dati storici fino al 2010 , nello specifico questo è l’elenco di 26 azioni che ho utilizzato per le mie prove:
La scelta di Backtrader è legata semplicemente al fatto che ho trovato una guida rapida e veloce che nel giro di una giornata mi ha consentito di implementare il primo algoritmo. E’ semplice intuitivo e con alcune funzioni di ottimizzazione degli algoritmi. Gestisce la simulazione con diversi aspetti come le commissioni, OCO, stop, limit, gestione del cash e dimensionamento degli ordini,…. Framework ben fatto con due limiti individuati fino ad ora:
Elevato utilizzo della memoria nelle ottimizzazione, per ottimizzare 5 parametri sul mio portafoglio di 10 pagina troppo. Sicuramente il fatto che uso un PC con 8GB non aiuta, ma credo che l’algoritmo sia pensato per le prestazioni a discapito della ram. In effetti le CPU (8) sono sempre a tappo quando gira l’ottimizzazione.
Il secondo limite è l’utilizzo degli stoploss, take profit e trailing stop. Tipicamente queste sono caratteristiche legate agli ordini stessi, su Backtrader vanno implementate ad hoc con alcuni accorgimenti in modo un po’ macchinoso.
Presa padronanza del sistema ho voluto fare delle prove con diverse strategie di trand following che si trovano abitualmente in giro. Ho saltato i classici incroci di medie e mi sono soffermato su 3 strategie che si appoggiano ad indicatori interessanti e popolari: HMA, MACD e RSI. Ho incrociato i diversi indicatori perché ovunque si legge che un indicatore da il segnale e il secondo la conferma. Ovviamente non mi sono inventato l’acqua calda ho iniziato con le strategie ritenute valide da esperti del settore.
I risultati che ho ottenuto mi hanno aperto gli occhi su alcuni nozioni studiate sulla carta e per le quali l’istinto darebbe indicazioni contrarie.
Di seguito i risultati delle prove fatte, con il seguente contesto di contorno:
Solo posizioni long
Entrate con importo costante da 10.000€
Cash iniziale 260.000€ sufficiente per coprire acquistare tutti i titoli insieme
Nessuna leva
Senza Stop loss o trailing stop
Prese di posizione solo al verificarsi di eventi legati alla strategia
Indici di valutazione: permanenza nel mercato, ritorno cumulativo, sharpe, max drowdown e DD più lungo, altri indicatori non sono interessanti almeno per me
Vengono applicate commissioni 6,75€ a eseguito e la tobing tax al 0,7%
Vengono utilizzati i dati di Yahoo Finance aggiustati sulle operazioni societarie (split, dividendi,…)
RSI
Entrata in situazione di iperventuto RSI < 30
Uscita dopo 5 giorni o RSI > 50
Il risultato è stato deludente, dal 2010 al 2018 ha raggiunto un ritorno di 15% ca, ma nel 2018 ha subito un calo importate e poi un crollo nel 2020 con il crollo dei mercati di marzo. Dopo 10 anni ha totalizzato ricavi netto tobin tax lordo cap.g. per 2.431€. La permanenza nel mercato è stato da 54%, ossia molto poco tenendo conto che sono 26 i titoli su cui operare.
Il risultato è decisamente migliore con un guadagno netto di 231.563€. Nel periodo 2011-2012 non è stato possibile entrare su alcune posizione per assenza di liquidità. L’impossibilità ad entrare in posizione altera il risultato della simulazione perché riduce le perdite ma ritarda anche i guadagni.
Il risultato non è entusiasmante, la liquidità è scarsa dal 2011 al 2013, molte operazioni non vengono eseguite assenza di liquidità e al termine del periodo il guadagno netto è di 89.761 € (netto tobin lordo cap.g.).
Il risultato più interessante è dato dalla strategia Buy and hold, ossia compro il 1/1/2010 e vendo il 31/12/2020. Bene, con questa strategia il P&L netto è di 433.342, ossia il capitale di partenza è moltiplicato per 2,66, una media di ca. 10% annuo.
Per riassumere la strategia vincente sembra essere Buy and Hold la migliore.
BAH
MACD
HMA
RSI
Time in Market
100.0%
55.0%
58.0%
50.0%
Cumulative Return
166.74%
89.06%
34.52%
0.94%
CAGR%
9.33%
5.96%
2.73%
0.08%
Sharpe
0.52
0.53
0.26
0.05
Sortino
0.71
0.76
0.37
0.06
Max Drawdown
-38.63%
-31.14%
-37.55%
-26.55%
Longest DD Days
970
1091
2037
959
Tabella comparativa strategie
Guardando il puro profitto la strategia ‘BuyAndHold’ è sicuramente la strategia migliore, ma a lunga distanza. In un decalogo di regole direi che la prima da mettere è di non chiudere una posizione in perdità salvo in caso di necessità di liquidità o per una strategia molto profittevole. Il periodo sott’acqua è molto lungo 970 giorni con una perdita massima del 38,63%.
Considerando l’indice di sharpe la strategia MACD sembra migliore perché in effette è più costante nel tempo. Una simulazione togliendo le commissioni e la tobin tax mostra come la MACD sia tutto sommato migliore per alcuni aspetti rispetto alla BuyAndHold. In particolare il periodo DD massimo è di ‘soli’ giorni 640 giorni, ben 330 in meno rispetto a BuyAndHold. L’indice di sharpe si porta a 0.62 e il rendimento si assesta su 288.923€. Nel corso di 10 anni vengono lasciati ben 50.000 in commissioni e tobin tax sul campo.
Time in Market
55.0%
Cumulative Return
111.12%
CAGR%
7.03%
Sharpe
0.62
Sortino
0.91
Max Drawdown
-30.2%
Longest DD Days
640
Strategia MACD 2010-2020 senza commissioni e tobin tax
Ecco il factsheet della strategia MACD senza commissioni