Trading con le Bande di Bollinger
In questo articolo utilizziamo un indicatore molto conosciuto nel panorama dell’Analisi Tecnica: le bande di Bollinger.
Vuoi un aiuto per migliorare il tuo approccio al trading? Clicca qui >>>
Questo indicatore prende il nome direttamente dal suo inventore John Bollinger, che analizzò il comportamento dei prezzi all’allontanarsi e all’avvicinarsi dalla propria media mobile. Per fare questo Bollinger pensò bene di inserire due bande, calcolate come la deviazione standard della media semplice dei prezzi.
John Bollinger, con le sue famose bande, ha cercato di trovare un modo per racchiudere e contenere i prezzi all’interno di fasce di prezzo ben definite.
Le due bande, superiore e inferiore, possono diventare il “trigger” di ingresso della strategia: un’uscita dei prezzi dalle bande identifica un’esplosione di volatilità tale per cui i prezzi dovrebbero continuare la loro corsa nella direzione presa, oppure invertire la rotta prestabilita ed effettuare un’inversione, qualora ad un’uscita dalle bande segua un rientro repentino all’interno delle stesse.
Le Bande di Bollinger sono formate da 3 elementi e sono calcolate tramite le seguenti funzioni matematiche:
- UpperBand = Average(PriceValue,Periods)+NumDev*StandardDev(PriceValue,Periods,1)
- MedianPrice = Average(PriceValue,Periods)
- LowerBand = Average(PriceValue,Periods)-NumDev*StandardDev(PriceValue,Periods,1)
In questo articolo analizzeremo principalmente due tipologie di ingresso e andremo a vedere come queste strategie si comportano al variare del time frame.
In particolar modo valuteremo gli effetti di un ingresso di tipo “reversal” sulle bande di Bollinger e un ingresso di tipo “trend following”, entrambi applicati su diversi time frame, per vedere quale sia il modo migliore di utilizzare questi segnali.
L’applicazione della teoria: Reversal Strategy
Per quanto concerne la tipologia di ingresso “reversal” utilizzeremo lo script seguente:
inputs: Periods(20),DevUp(2),DevDn(-2);
inputs: Stoploss(3),Target(0);
var: UpperBand(0),LowerBand(0),ATR(0);
vars: okl(true),oks(true);if sessionlastbar[1] then begin
okl=true;
oks=true;
end;UpperBand = BollingerBand(C,Periods,DevUp);
LowerBand = BollingerBand(C,Periods,DevDn);ATR = averagetruerange(5);
if okl and C crosses over LowerBand then buy next bar market;
if oks and C crosses under UpperBand then sellshort next bar market;if marketposition=1 then okl=false;
if marketposition=-1 then oks=false;if LastBarOnChart then setexitonclose;
if Stoploss>0 then setstoploss(Stoploss*ATR*Bigpointvalue);
if Target>0 then setprofittarget(Target*ATR*bigpointvalue);
Come è possibile notare, è stato inserito uno stop loss di base a 3 volte l’ATR a 5 periodi, mentre il pattern di ingresso è definito in questo modo: per il lato long aspetteremo una close di barra sotto la banda inferiore ed entreremo al verificarsi di una close al di sopra della banda inferiore. Un po’ come se fosse un falso breakout sul livello della “LowerBand”.
Per il lato short faremo esattamente il contrario, aspetteremo una close oltre la banda superiore e alla prima close al di sotto della “UpperBand” entreremo a mercato short (figura 1). Inoltre sono state aggiunte due variabili (“OKL” e “OKS”), atte a limitare il numero di ingressi nella stessa direzione nell’arco della stessa giornata. Senza le suddette variabili, abbassando il time frame, la frequenza degli ingressi aumenterebbe in maniera spropositata.
I test
Andiamo ad analizzare i risultati su un paniere estremamente variegato, che contiene al suo interno sottostanti appartenenti a diverse categorie:
- AUDUSD
- EURGBP
- EURJPY
- EURNZD
- EURUSD
- GBPCAD
- GBPJPY
- GBPUSD
- NZDUSD
- USDCAD
- USDCHF
- USDJPY
- Crude Oil Future (energetici)
- Gold Future (metalli preziosi)
- Mini S&P500 (azionario)
- 30yrs Bond (obbligazionario)
Innanzitutto analizziamo il comportamento della strategia Reversal sulle bande di Bollinger, impostando come time frame 1440M (giornaliero), rettificato non sulle “adjusted close”, ma sulle close effettive del mercato. Questo ultimo punto fa un’enorme differenza, in quanto è importante lavorare su prezzi effettivamente colpiti dal mercato e non su prezzi “aggiustati”.
Nelle figure da 2 a 5 notiamo come la strategia produca utili nel periodo tra il 2010 e il 2021. Il netprofit supera i 100.000$ a fronte di un drawdown di oltre 150.000$ e un average trade di 100$. Ne deriva che l’equity del sistema sia crescente, ma molto frastagliata nel tempo.
Provando a ridurre il time frame dei sottostanti e testando la strategia su barre a 240 minuti otteniamo un’equity pessima (visibile in figura 6), anche se non troppo differente da quella ottenuta nel test precedente e migliore (leggermente) nell’ultima fase del backtest.
I risultati non sono quelli che speravamo di ottenere. Probabilmente il fatto di utilizzare time frame più lunghi non gioca a favore delle strategie con logica reversal, in quanto passa più tempo fra un trade e l’altro, lasciando i trade in balia degli eventi per diversi giorni o settimane, senza poter invertire la posizione presa. Vediamo dunque se provando a ridurre ulteriormente il time frame a 30M i risultati migliorano.
Ovviamente avremo un numero di trade superiore alle versioni precedenti, in quanto ci sono molte più barre a disposizione. I risultati che la strategia propone (apprezzabili nelle figure da 7 a 10) stavolta sono leggermente migliori. L’equity line ha un andamento crescente, principalmente frutto del forte rally nel periodo iniziale di backtest, ma tutto sommato è qualcosa che potrebbe fornire un buon punto di partenza. Per contro, l’average trade risulta essere davvero troppo piccolo (3$) per essere preso in considerazione per il live trading, ma questo dato è da contestualizzare rispetto al gran numero di trade che la strategia effettua.
A rigor di logica verrebbe quindi naturale pensare che non avrebbe senso spingersi ulteriormente al ribasso come lasso temporale, per non andare incontro a “noise” eccessivo. Diminuendo ulteriormente il time frame, la strategia diventerebbe di difficile valutazione, sia in termini di average trade conseguente e sia in termini di validità del segnale (su time frame a 5 minuti le bande di Bollinger hanno certamente validità inferiore rispetto al giornaliero perché forniscono una quantità notevole di operazioni).
Trend Following Strategy
Andiamo ora a prendere in analisi il rovescio della medaglia della strategia precedente: compreremo al verificarsi di una chiusura sopra la banda superiore e venderemo a seguito di una chiusura sotto la banda inferiore.
Questa strategia denota chiare caratteristiche trend following, in quanto si vanno a cercare evidenti dimostrazioni di forza o debolezza e poi si entra a mercato nella direzione del trend, come mostrato nella figura 11.
Questa strategia si differenzia dalla precedente solo per quelle righe di codice che sono responsabili dell’ingresso a mercato.
if okl and C crosses over UpperBand then buy next bar market;
if oks and C crosses under LowerBand then sellshort next bar market;
Osserviamo dunque il comportamento della strategia all’aumentare e diminuire del lasso temporale, e per prima cosa eseguiamo i test sul time frame maggiore: il 1440M (giornaliero).
Nella figura 12 notiamo come l’equity line del sistema sia un disastro!
Ci sono sicuramente momenti in cui la strategia sembra rispondere bene, ma nel complesso non possiamo certo ritenerci soddisfatti dei test condotti.
Vediamo se accorciando il time frame a 240M i risultati migliorano.
I risultati (figure da 13 a 15) su time frame a 240M sono opposti a quelli visti sulla reversal: l’equity è crescente nel primo periodo di backtest. Tuttavia sembrerebbe che a seguito dello scoppio della pandemia da COVID (Marzo 2020) la costanza mostrata nei primi 10 anni di backtest (2010-2020) venga erosa da un bruttissimo periodo recente. L’average trade si attesta infatti a soli 11$, ovviamente troppo poco per poter anche solo pensare di attivare questa strategia così com’è in live.
Dunque è possibile pensare che la reversal desse cattivi risultati a fronte di trade lunghi. Trattandosi proprio di una strategia di tipo reversal, nello sciagurato caso in cui la strategia si fosse trovata in errore, avrebbe dovuto tenere il trade aperto per parecchio tempo prima di poter chiudere in stop loss o in reverse. Questo talvolta potrebbe configurare trade molto negativi, in quanto non vi è un metodo efficace di tagliare i trade perdenti. Per quanto riguarda il trend following invece, sembrerebbe che abbassando il time frame a 240M si riesca ad ottenere una gestione più dinamica della posizione rispetto al daily e le operazioni che scaturiscono ne traggano un qualche beneficio.
Quel che è certo è che questa mancanza di continuità nei risultati al variare del lasso temporale, ci fa presagire che laddove abbiamo visto risultati anche solo leggermente positivi, questi potrebbero trattarsi di casi prettamente isolati, e che messi di fronte ad un ulteriore approfondimento potrebbero sciogliersi come neve al sole.
Per quanto riguarda questo articolo fermiamo qui i test per evitare di confondere troppo le idee con altre tipologie di ingresso, consci di aver fornito idee potenzialmente promettenti su alcuni mercati per lo sviluppo di strategie automatiche.
Conclusioni
In questo articolo abbiamo messo alla prova le famose bande di Bollinger, testandone i benefici e i rischi connessi al loro utilizzo. La conclusione è che ci sia sicuramente del buono, qua e là, da cui poter prendere spunto, ma quel che è certo è che non tutte le combinazioni proposte hanno confermato risultati positivi, soprattutto su time frame più lunghi come il daily.
Occorre dunque essere ragionevoli nell’osservare i risultati, ogni qualvolta si stia ottimizzando o testando un’idea di trading, sia essa famosa o meno, perché si sa che in questa meravigliosa materia le insidie possono nascondersi dietro ogni angolo.
Alla prossima!
Andrea Unger
Vuoi un aiuto per migliorare il tuo approccio al trading? Clicca qui >>>