In questo articolo dedicato al mondo degli indicatori andremo ad analizzare una modalità di utilizzo delle Bande di Bollinger. Sappiamo che questo indicatore è rappresentato da una media mobile, di solito si utilizza quella a 20 periodi, e dalle sue seconde deviazioni standard, una positiva e l’altra negativa. Il presupposto di questa teoria è quello di racchiudere i prezzi all’interno di queste bande.

Cosa accadrebbe se utilizzassimo i numeri che ci vengono forniti dall’indicatore in un’altra maniera? In che modo potrebbero esserci di aiuto le deviazioni standard dei prezzi per costruire dei trading system?

Ecco l’idea: possiamo asserire che se la differenza tra la banda superiore e la banda inferiore, chiamata BandWidth, sia in qualche modo “stretta”, allora il mercato oggetto dell’analisi si troverebbe in un momento di calma, di attesa, che potrebbe presagire un breakout imminente, la cosiddetta calma prima della tempesta.

Scherzi a parte, chi ha dimestichezza con i Pattern avrà già notato che spesso le rotture/breakout e la volatilità si manifestano dopo giornate di indecisione, o comunque non troppo estese.

Vuoi un aiuto per migliorare il tuo approccio al trading? Clicca qui >>>

In figura 1 è visibile la configurazione dell’indicatore BandWidth. Andremo a ricercare quei momenti in cui la distanza tra le bande non è troppo estesa in termini percentuali.

Figura 1: Esempio BandWidth

I test

Procediamo allora con i test e proviamo a mettere su carta l’idea di testare il filtro del cosiddetto BandWidth su una strategia trend following.

Lo script in formato EasyLanguage / PowerLanguage che abbiamo utilizzato è il seguente:

inputs: Per(3);

LevelLong = HighestFC(H,Per);
LevelShort = LowestFC(L,Per);

buy next bar LevelLong stop;
sellshort next bar LevelShort stop;

Una semplice strategia trend following, che analizzata su un time frame a 1440 minuti (equivalente ad un giornaliero), entra sul massimo o il minimo delle ultime tre sessioni.

Nelle figure da 2 a 5 riporto i risultati che si ottengono applicando lo script al seguente paniere:

  • 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)

Figura 2: Average trade trend following strategy

Figura 3. Equity Trend following strategy

Figura 4: Overview Trend following strategy

Figura 5: Performance Summary Trend following strategy

Ben 14 sottostanti su 16 apportano dei profitti al portafoglio. In totale i profitti della strategia ammontano a 417.389$, a fronte di un drawdown di -201.400$. Nota dolente, a voler essere magnanimi, al momento è l’average trade che si attesta intorno ai 50$.

Di seguito prendiamo in analisi i risultati con l’inserimento di un filtro che tenga in considerazione la larghezza delle bande di Bollinger. Se questa larghezza è inferiore ad una percentuale dell’attuale valore del sottostante, allora seguiremo gli ingressi a breakout del sistema. Ho utilizzato la percentuale affinché i risultati potessero essere quanto più uniformi per tutti i sottostanti analizzati, in quanto facenti parte delle più svariate categorie, Forex, Commodity e Equity Index, con tick e “scaling” diversi fra loro.

Lo script in formato EasyLanguage / PowerLanguage è il seguente:

inputs: Per(3),Perc(0.05);
vars: LevelLong(0),LevelShort(0);
vars: BandWidth(0),Percentuale(0);

LevelLong = HighestFC(H,Per);
LevelShort = LowestFC(L,Per);
BandWidth = BollingerBand(C,20,2)-BollingerBand(C,20,-2);
Percentuale = Perc*C[1];

if BandWidth<Percentuale then begin
   buy next bar LevelLong stop;
   sellshort next bar LevelShort stop;
end;

Andiamo anche a inserire in questa strategia delle condizioni di uscita in stoploss o in takeprofit, calcolati sull’average true range a 5 periodi (ovvero 5 giorni essendo su un timeframe a 1440M). Rispettivamente a 2 volte l’ATR e 3 volte l’ATR.

L’input chiamato “Perc” indica la percentuale massima della larghezza delle bande di Bollinger e sarà il primo parametro che andremo ad analizzare.

Ottimizzando questo valore in un range che va dal 1% al 20% di escursione del sottostante, notiamo come operando trend following, soltanto quando la distanza tra le bande è inferiore al 7%, i risultati migliorino sensibilmente. I trade totali passano da circa 9000 a meno di 5700, con un net profit che raggiunge circa i 383.000$. Con l’inserimento di questo filtro la strategia  migliora, in ogni parametro, i risultati che si ottenevano con il semplice trend following.

Prendendo per buono ciò che l’ottimizzazione dell’input “Perc” ha mostrato, andiamo avanti con i test e  selezioniamo il 7% come valore per proseguire nella nostra analisi. Tale valore presenta caratteri molto positivi e anche gli intorni sembrano apportare dei benefici al sistema.

Spostandoci anche verso valori più alti, in questo caso meno restrittivi, vediamo che i risultati si mantengono buoni e di certo in miglioramento rispetto all’idea di base (figure da 6 a 9).

Figura 6: Average trade con filtro Bandwidth

Figura 7: Equity con filtro BandWidth

Figura 8: Overview con filtro BandWidth

Figura 9: Summary con filtro BandWidth

L’average trade passa dai precedenti 50$ a 65$ con l’inserimento del filtro. Un ottimo miglioramento, che se aggiunto anche ad altri fattori, come il DrawDown che migliora, complice per la verità anche l’inserimento di uno stoploss protettivo e anche il Guadagno totale della strategia che aumenta passando dai 417.000$ agli oltre 550.000$, possiamo considerare questo modo alternativo di utilizzare le Bande di Bollinger in modo senz’altro positivo.

Conclusioni

In conclusione possiamo ritenerci soddisfatti dei test condotti con l’utilizzo del BandWidth siccome abbiamo notato dei discreti miglioramenti con l’applicazione di questo filtro su una strategia di tipo trend following.

I risultati allo stato attuale rappresentano un punto buon punto di partenza, ma non certo dei risultati definitivi, in quanto l’average trade di 65$ non è assolutamente ancora abbastanza capiente da coprire gran parte dei costi che il trading live richiede, come lo slippage, le commissioni oppure i costi di infrastruttura, come il VPS o il datafeed.

Intorno a questo codice è possibile giocare e spaziare a nostro piacimento per migliorare e affinare i parametri, ma i test, lo ricordo sempre, vanno effettuati con cognizione di causa, perciò ogni volta che effettuate dei test ricordatevi il buon senso!

Il BandWidth, in definitiva, potrebbe essere utilizzato per affinare un sistema trend following, oppure su un sistema reversal, utilizzandolo al contrario. Si potrebbe anche aggiungere un filtro aggiuntivo che sfrutti le medie mobili e integri l’idea di base dell’indicatore. Le possibilità sono tante, lascio a voi cari lettori, il compito di indagare sulle altre possibili configurazioni dell’indicatore BandWidth.

Alla prossima!

Andrea Unger

Vuoi un aiuto per migliorare il tuo approccio al trading? Clicca qui >>>

Tag: , , , ,