• Non ci sono risultati.

Calibrazione dei parametri delle Bande di Bollinger per lo sviluppo di una Strategia di Trading

N/A
N/A
Protected

Academic year: 2021

Condividi " Calibrazione dei parametri delle Bande di Bollinger per lo sviluppo di una Strategia di Trading "

Copied!
40
0
0

Testo completo

(1)

Capitolo 3

Calibrazione dei parametri delle Bande di Bollinger per lo sviluppo di una Strategia di Trading

3.1 MATLAB e Yahoo Finanza: come reperire i dati storici delle quotazioni dei titoli azionari

Prima di procedere alla calibrazione dei parametri delle bande di Bollinger con il software MATLAB, bisogna vedere come inserire i dati delle quotazioni dei titoli all’interno del programma. Esistono diversi metodi per fare ciò, in ogni caso si devono scaricare tali dati da alcuni siti internet, come Bloomberg, Reuters o Yahoo Finanza (che utilizzeremo) e successivamente caricarli in MATLAB. Lo stesso programma, attraverso alcuni toolbox ed una connessione ad internet, agevola tale operazione; infatti ci si può connettere direttamente da esso (senza l’utilizzo di un browser) a tali siti, per scaricare i dati ed immetterli rapidamente nel workspace. Infine, avendo questi dati raccolti in un foglio di calcolo elettronico (ad esempio in un file Excel) si possono importare in MATLAB con una semplice operazione.

3.1.1 Ottenere i dati storici dal sito Yahoo Finanza e caricarli su MATLAB

Il sito web Yahoo Finanza (http://it.finance.yahoo.com) offre gratuitamente i dati storici delle quotazioni dei titoli azionari. Per accedere alla quotazioni bisogna cercare il titolo desiderato nel menù del sito alla voce "Quotazioni". Ogni titolo azionario ha un codice identificativo ben preciso ed unico a livello mondiale. Ad esempio il titolo della società “Eni S.p.A.” quotata in Borsa Italiana ha come codice: ENI.MI; inserendolo si arriva alle pagine contenenti tutti i dati storici relativo ad esso (https://it.finance.yahoo.com/q?s=ENI.MI). Il principale indice azionario delle Borsa Italiana è il FTSE MIB (Financial Times Stock Exchange Milano Indice di Borsa), il quale racchiude le azioni delle società italiane ed estere maggiormente

!69

(2)

capitalizzate sui mercati gestiti da Borsa Italiana S.p.A, arrivando a rappresentare circa l’80% della capitalizzazione del mercato azionario italiano. Questo indice è operativo dal 1 giugno 2009, dopo la fusione di Borsa Italiana (S&P MIB) con il London Stock Exchange, che ha dato vita al London Stock Exchange Group. I titoli componenti tale indice sono:

Componenti indice FTSE MIB - Marzo 2016

Nome società Simbolo

1 A2A S.p.A A2A.MI

2 ANIMA Holding S.p.A. ANIM.MI

3 Atlantia S.p.A. ATL.MI

4 Azimut Holding S.p.A. AZM.MI

5 Banca Mediolanum S.p.A. BMED.MI

6 Banca Monte dei Paschi di Siena S.p.A. BMPS.MI 7 Banca Popolare dell’Emilia Romagna Società

cooperativa a r.l.

BPE.MI

8 Banca Popolare di Milano Società cooperativa a r.l.

PMI.MI

9 Banca Popolare Società Cooperativa a r.l. BP.MI

10 Buzzi Unicem S.p.A. BZU.MI

11 Campari-Milano S.p.A. CPR.MI

12 CNH Industrial N.V. CNHI.MI

13 Enel S.p.A. ENEL.MI

14 Enel Green Power S.p.A. EGPW.MI

15 Eni S.p.A. ENI.MI

16 Exor S.p.A. EXO.MI

17 Ferrari N.V. RACE.MI

18 Fiat Chrysler Automobiles N.V. FCA.MI

19 Finmeccanica S.p.A. FNC.MI

20 Generali S.p.A. G.MI

21 Intesa Sanpaolo S.p.A. ISP.MI

22 Italcementi S.p.A. IT.MI

23 Luxottica S.p.A. LUX.MI

24 Mediaset S.p.A. MS.MI

(3)

È possibile avere i dati giornalieri, settimanali e mensili, basta selezionare il pulsante desiderato e premere su “Ottieni i Dati”; inoltre si può selezionare anche la data iniziale e quella finale della ricerca.

Dopo che si sono ottenuti a video i dati storici di proprio interesse è possibile scaricarli sul proprio computer o pendrive. Per fare ciò si deve andare in fondo alla pagina e cliccare su “Scarica in foglio di calcolo”, successivamente si apre una finestra pop-up che chiede dove salvare il file in formato “.csv”. Esso contiene tutti i dati storici ricercati, salvati in un formato standard opensource, in modo tale da poterli importare in qualsiasi software capace di gestire tabelle.

Supponiamo di aver ottenuto dal sito Yahoo Finanza dei dati storici relativi al titolo azionario “ENI.MI”, e che siano salvati nel file

“ENI.csv”; per importarli in MATLAB come prima cosa occorre copiare questo file nella Current Folder. A questo punto, per caricare in MATLAB la tabella basta utilizzare il comando “readtable()”. Non

25 Mediobanca S.p.A. MB.MI

26 Moncler S.p.A. MONC.MI

27 Poste Italiane S.p.A. PST.MI

28 Prysmian S.p.A. PRY.MI

29 Saipem S.p.A. SPM.MI

30 Salvatore Ferragamo S.p.A. SFER.MI

31 Snam S.p.A. SRG.MI

32 STMicroelectronics N.V. STM.MI

33 Telecom Italia S.p.A. TIT.MI

34 Tenaris S.A. TEN.MI

35 Terna - Rete Elettrica Nazionale S.p.A. TRN.MI

36 UBI Banca S.p.A. UBI.MI

37 UniCredit S.p.A. UCG.MI

38 Unipol S.p.A. UNI.MI

39 UnipolSai Assicurazioni S.p.A. US.MI 40 Yoox Net-A-Porter Group S.p.A. YNAP.MI

Nome società Simbolo

!71

(4)

ci si deve preoccupare del “Warning” prodotto da MATLAB; esso è causato dal fatto che il nome dell’ultima colonna della tabella è stato salvato nel file .csv come “Adj Close” mentre MATLAB non accetta né spazi né punteggiature nei nomi delle colonne.

Il comando “readtable()” permette di caricare tabelle salvate in un file di testo (formato: .txt, .dat, .csv) oppure in un foglio di calcolo elettronico (formato: .xls, .xlsx, .xlsb, .xlsm, .xltm, .xltx, .ods). In questi ultimi caso, si deve far attenzione all’uso di file in formato proprietario commerciale, in quanto essi possono dare problemi nella corretta importazione dei dati. Perciò si consiglia di utilizzare file in formato standard opensource (.csv). Ad esempio, se si prende il file

“ENI.csv” ottenuto da Yahoo Finanza, lo si importa in Microsoft Excel e lo si salva nel formato .xlsx, è sempre possibile caricare i dati in MATLAB, ma l’esito potrebbe non essere quello desiderato. I problemi principali sono dovuti al formato applicato da Excel alle varie celle ed al separatore utilizzato per le cifre decimali (in Italia si usa la “,” mentre nei paesi anglosassoni il “.”).

Inoltre MATLAB utilizza vari formati per la visualizzazione delle

date; di default le date vengono scaricati in formato numerico. Se

invece abbiamo delle date in formato letterale e vogliamo ricavare

l’equivalente in formato numerico, basta utilizzare il comando

datenum().Se il formato delle date non è di proprio gradimento è

possibile cambiarlo con il comando “datetime()”; esso permette di

(5)

esprimere le date nel formato desiderato. Però, se le date sono espresse in formato standard numerico, occorre allora utilizzare anche l’opzione ‘ConvertFrom’.

3.1.2 Caricare in MATLAB i dati storici tramite il Datafeed Toolbox

Nel caso in cui in MATLAB sia installato il Datafeed Toolbox ed il computer sia collegato alla rete internet, è possibile attraverso il programma collegarsi direttamente al sito Yahoo Finanza e scaricare i dati storici delle quotazioni dei titoli.

Per caricare i dati online occorre aprire una connessione con Yahoo e poi utilizzare il comando “fetch()”.

!73

(6)

Come si vede i dati sono scaricati in formato numerico in una matrice e non in una tabella. Le sette colonne corrispondono rispettivamente a: Data, Apertura, Massimo, Minimo, Chiusura, Volume, Chiusura Aggiustata (cioè il prezzo di chiusura aggiustato, quindi sottratto, per dividendi e split). È utile ricordare che è possibile scaricare i dati di solamente una, o alcune, delle colonne 2-6.

Il comando “array2table()” permette di trasformare un intero array in una tabella. Si osservi che occorre convertire opportunamente le date della prima colonna, essendo esse espresse in formato numerico;

inoltre, bisogna eseguire il comando “format long g” per visualizzare

in modo più chiaro i Volumi.

(7)

Comunque si possono creare delle tabelle anche con il comando standard “table()”, però preliminarmente bisogna definire come vettori le singole colonne della tabella. Successivamente, per ottenere la tabella basterà quindi usare il comando “table()”.

In alternativa, è possibile mettere le date come nomi delle righe invece che come prima colonna. Si osservi che in tal caso occorre convertire le date come stringhe di testo con il comando “cellstr()”.

Come esempio potremmo scrivere nell’editor di MATLAB una function che, dato il codice identificativo di un titolo azionario, riesca

!75

(8)

a scaricare i dati storici in formato tabellare, così da poterla lanciare nella “Command Window” attraverso un solo comando:

Quindi per eseguire la function bisognerà scrivere nella “Command Window” il seguente comando, il quale si riferisce ai dati storici del titolo scelto (in questo caso le azioni ENI):

Con questa function si ottengono tutti i dati della serie storica del titolo scelto, dal primo giorno di quotazione in borsa fino alla data corrente. Per limitare il periodo temporale, per esempio al solo primo trimestre del 2016, si modifica il codice inserendo nella stringa

“datainizio” e “datafine” con le date desiderate.

(9)

3.1.3 Scaricare i dati delle quotazioni dei titoli attraverso l’applicazione Financial Time Series di MATLAB

Un ulteriore metodo per ottenere i dati delle quotazioni dei titoli attraverso il software MATLAB, è quello di utilizzare un’app, che è presente nel Financial Time Series Toolbox, la quale permette di creare e gestire i fints object. In aggiunta, con il Datafeed Toolbox ed il Database Toolbox è possibile scaricare i dati da sorgenti esterne (es.

Yahoo Finanza, Bloomberg, ecc.). Per scaricare i dati esterni bisogna innanzitutto aprire la Financial Time Series app, selezionare il percorso File->Load->Datafeed Toolbox per aprire il toolbox.

Successivamente per connettersi al server esterno si clicca il tab Connection, in questo caso si seleziona Yahoo!, e ci si connette per caricare i dati nell’app. Per scaricare i dati del titolo desiderato, bisogna cliccare il tab Data, immettere il codice identificativo, in seguito si spunta il tipo di dati da scaricare: correnti o storici; e successivamente si scegli il dato che si vuole ottenere (es. prezzi di apertura,chiusura,massimo e minimo ecc.). Infine, si immette il nome della variabile che sarà caricata nel Workspace di MATLAB e si clicca sul pulsante Get Data. Questo è un modo molto semplice e veloce per ottenere i dati delle quotazioni in quanto non bisogna scrivere alcun comando in MATLAB, ma bisogna solamente selezione i dati che si vogliono scaricare tramite una finestra.

!77

(10)

3.1.4 Costruire un Financial Time Series Object in MATLAB

Il Financial Time Series Object (fints) è un particolare tipo di file di MATLAB che contiene una serie di date e di dati per uno specifico titolo, cioè rappresenta la serie storica. Utilizzando i fints MATLAB può essere molto utile, infatti il programma consente di effettuare grafici finanziari o calcolare i vari indicatori tecnici, immettendo come input del comando questa tipologia di file. Per creare un Financial Time Series Object si utilizza il comando fints inserendo come input il vettore data della serie storica (esso deve essere sempre espresso in formato numerico, sarà MATLAB a convertire le date in formato letterale), il vettore (o i vettori) delle quotazioni del titolo, la frequenza delle stesse e infine una descrizione dell’oggetto.

Questa function permette di creare un fints per un qualsiasi titolo:

Per far partire la function basterà il codice del titolo di cui si

vogliono scaricare i dati ed immettere nel Workspace un comando:

(11)

3.2 Disegnare i grafici delle serie storiche dei dati azionari tramite il Financial Toolbox

Dopo aver scaricato e caricato i dati delle serie storiche delle quotazioni dei titoli, MATLAB, attraverso il Financial Toolbox, permette di rappresentarle in modo diretto nei grafici. A tal fine occorre preliminarmente creare un cosiddetto “Financial Time Series (fints) object” che poi può essere rappresentato tramite il comando

“plot()”, il quale permette di creare disegnare i grafici. Si osservi che le date devono essere convertite in formato numerico tramite il comando “datenum()”.

!79

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Tempo 10.5

11 11.5 12 12.5 13 13.5

14 Quotazioni ENI

ENI

(12)

È possibile tracciare il grafico anche di serie storiche di altri titoli in un unico grafico, così da poterle confrontare facilmente.

MATLAB permette di creare vari tipi di grafici finanziari; dal semplice grafico lineare, il quale necessita di un solo input (es. prezzo di chiusura/apertura), ma anche i grafici a barre o quelli a candela, che hanno bisogno di quattro input: prezzi di apertura, chiusura, massimo e minimo.

3.2.1 Disegnare i grafici a barre dei dati storici delle quotazioni dei titoli in MATLAB

I grafici a barre sono tra i più utilizzati dagli analisti poiché danno una serie di informazioni, non visualizzatili in un semplice grafico lineare. Infatti, come sappiamo, per realizzare un barchart bisogna avere come input prezzi di apertura e chiusura, prezzo massimo e minimo.

Se in MATLAB è installato il Financial Toolbox possiamo creare i diversi tipi di grafici finanziari, quindi anche un barchart, attraverso l’uso di alcuni comandi. Preliminarmente, si devono scaricare e

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Tempo 2

4 6 8 10 12

14 Quotazioni ENI - ENEL - FCA

ENI ENEL FCA

(13)

caricare in una tabella o in un vettore colonna i prezzi di apertura, massimo, minimo e di chiusura, per ciascuna data del periodo da noi considerato. Si faccia attenzione che le date devono essere convertite in formato numerico, utilizzando il comando “datenum()”, altrimenti si ha uno sfasamento temporale sull’asse delle ascisse.

Per realizzare un grafico a barre, bisogna utilizzare il comando

“highlow()” e come input si immettono, nell’ordine, i vettori colonna o le colonne della tabella (attraverso il comando generico NomeTabella.NomeColonna) del prezzo massimo, minimo, chiusura, ed in opzione anche i prezzi di apertura, il colore del grafico, il vettore e il formato della data:

3.2.2 Disegnare i grafici a candela dei dati storici delle quotazioni dei titoli in MATLAB

Un’altra tipologia di rappresentazione grafica dei dati dei titoli finanziari è la candlestick. Essa si è rapidamente diffusa nel mondo degli analisti, poiché come i grafici a barre rappresenta sul grafico un numero maggiore di informazioni rispetto ad un semplice grafico

!81

01-Jan-2016 01-Feb-2016 01-Mar-2016 01-Apr-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5

14 Grafico a barre azioni ENI I trim. 2016

(14)

lineare. Inoltre, è visivamente più apprezzabile ed intuitiva, in quanto al variare del colore delle candele, l’analista riesce subito a capire l’andamento dei prezzi della giornata di borsa: infatti come sappiamo, se il colore della candela è bianco il prezzo di chiusura della seduta è stato maggiore rispetto a quello di apertura, viceversa, se la candela è nera il primo è stato minore del secondo.

Sempre con il Financial Toolbox installato in MATLAB, e dopo aver scaricato ed importato nel Workspace i dati storici del titolo desiderato (si ricordi che le date devono essere sempre espresse in forma numerica), è possibile attraverso il comando candle() rappresentare i prezzi del titolo della serie storica in un grafico a candela. Gli input da immettere nel comando devono essere nell’ordine i vettori colonna del: prezzo massimo, prezzo minimo, prezzo di chiusura e prezzo di apertura; in aggiunta si può specificare il colore, il vettore e il formato delle date:

In questo caso, si è scelto il colore nero (comando ‘k’) per il grafico:

se la candela è piena, cioè nera, allora il prezzo di chiusura è stato

01-Jan-2016 01-Feb-2016 01-Mar-2016 01-Apr-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5

14 Candlestick azioni ENI I trim. 2016

(15)

minore di quello di apertura, viceversa se la candela non è colorata, e quindi bianca.

3.2.3 Esempio di function che permette di ottenere il grafico a barre e il candlestick di un qualsiasi titolo

Un altro esempio molto utile può essere quello di scrivere nell’editor di MATLAB una function che permetta, una volta ottenuti i dati di un qualsiasi titolo e per un periodo di tempo determinato, di ottenere il grafico a barre e quello a candela. Inoltre, tale operazione ci consente di risparmiare del tempo, soprattutto se dobbiamo lavorare su grafici di diversi titoli, in quanto con un unico comando potremmo disegnarli, poiché basta solamente ottenere ed immettere come input della function il codice identificativo dei vari titoli. In questo caso, consideriamo le azioni ENEL S.p.A., tenendo come periodo di riferimento sempre il primo trimestre del 2016:

Lanciando la function nella Command Window utilizzando il codice identificativo delle azioni ENEL, cioè ‘ENEL.MI’, avremo subito su schermo i grafici dei prezzi delle azioni per il periodo considerato su

!83

(16)

due diverse finestre; la prima figura sarà il barchart, mentre la seconda sarà il candlestick:

>> grafici(‘ENEL.MI’)

3.3 Calcolare le bande di Bollinger dal vettore colonna dei prezzi di chiusura di un titolo con MATLAB

Dopo aver scaricato ed importato nel Workspace di MATLAB i dati delle serie storiche relativi ai prezzi di chiusura di un titolo, per un

12/27 01/03 01/10 01/17 01/24 01/31 02/07 02/14 02/21 02/28 03/06 03/13 03/20 03/27 04/03 Giorni

3.3 3.4 3.5 3.6 3.7 3.8 3.9 4

4.1 Grafico a Barre Titolo ENEL.MI

12/27 01/03 01/10 01/17 01/24 01/31 02/07 02/14 02/21 02/28 03/06 03/13 03/20 03/27 04/03 Giorni

3.3 3.4 3.5 3.6 3.7 3.8 3.9 4

4.1 Grafico a Candela Titolo ENEL.MI

(17)

determinato periodo temporale, procederemo al calcolo delle bande mediana, superiore ed inferiore di Bollinger. Infatti il software da come output i livelli di queste tre bande attraverso l’utilizzo del comando bollinger(). Tale comando prende come input un vettore colonna con i prezzi del titolo scelto (in questo caso utilizzeremo i prezzi di chiusura), e poi in aggiunta si possono specificare i giorni utilizzati per il calcolo della media mobile, il tipo di media mobile e infine il numero di deviazioni standard per la banda superiore e inferiore. Se questi tre input non vengono immessi nel comando, MATLAB procederà al calcolo delle bande attraverso delle impostazioni default: utilizzerà 20 giorni per il calcolo della media, questa sarà una media mobile semplice ed il numero di deviazioni standard di distanza della bande superiore ed inferiore sarà 2.

Come esempio utilizzeremo sempre le azioni di ENI S.p.A., però in questo caso poiché per il calcolo standard delle bande si utilizza una media mobile semplice a 20 giorni, per ottenere i dati di esse nel periodo considerato, cioè il primo trimestre del 2016, dovremmo scaricare anche i dati delle quotazioni relativi a dicembre 2015.

Invece che lavorare con le tabelle, possiamo creare ed utilizzare un fints relativo alle quotazioni dei prezzi di chiusura del titolo in esame, ed inserirlo come input del comando bollinger(). In tal caso MATLAB darà come risultato 3 nuovi fints con il calcolo dei valori delle bande di Bollinger (rispettivamente mediana, superiore ed inferiore) relativi ai prezzi del titolo e nel periodo considerato.

!85

(18)

Un esempio di function che permette di calcolare i valori standard

delle bande di Bollinger per i prezzi di chiusura di un qualsiasi titolo

(relativi al periodo preso in considerazione, cioè dal 1/12/15 al

31/3/16), è:

(19)

Come sempre per far partire la function bisognerà solamente inserire, come input, il simbolo del titolo scelto:

3.3.1 Costruire il grafico relativo ai prezzi di chiusura e alle bande di Bollinger con MATLAB

Un primo modo per costruire in MATLAB il grafico delle bande di Bollinger è quello dell’utilizzo del comando plot(). Preliminarmente, però, dopo aver scaricato i dati da Yahoo Finanza ed averli importati nel Workspace, dobbiamo creare i fints relativi ai prezzi di chiusura del titolo scelto per il periodo di tempo preso in considerazione, e quello relativo alle bande mediana, superiore ed inferiore.

Successivamente inseriremo nel comando plot questi due input, così potremmo creare il grafico e visualizzare su schermo i valori dei prezzi di chiusura e delle tre bande di Bollinger. In questo caso i parametri utilizzati nel calcolo delle bande sono quelli standard e cioè una media mobile semplice a 20 giorni e la distanza delle bande superiore ed inferiore da quella mediana è uguale rispettivamente a +/- 2 deviazioni standard.

!87

(20)

In MATLAB, è presente un comando specifico per disegnare graficamente le bande di Bollinger e i prezzi di chiusura di un titolo.

Tale comando è bolling() che prende come input il vettore dei prezzi del titolo (in questo caso utilizzeremo le quotazioni di chiusura) ed il numero di giorni utilizzati per il calcolo della media mobile. In opzione si possono aggiungere altri parametri come input: l’esponente utilizzato per calcolare i pesi degli elementi della media mobile(per la media mobile semplice si usa lo 0, che è il valore di default); il numero di deviazioni standard di distanza delle bande, cioè un fattore moltiplicativo che ci specifica come dovrebbero essere strette le bande intorno alla media (di default questo valore è 2). Con questo comando MATLAB procede ad effettuare il grafico delle bande di Bollinger, senza darne i valori (quindi non vengono inserite altre variabili nel Workspace). Inoltre, se scarichiamo i dati da Yahoo Finanza con il comando fetch(), ottenendoli dal più recente al più remoto, dovremmo riordinare i vettori delle date e dei prezzi in ordine cronologico, in quanto il comando bolling() traccerà il grafico partendo dal primo valore del vettore colonna; si può utilizzare il comando flipud() che crea un nuovo vettore con gli elementi invertiti (dall’ultimo al primo).

10-Jan-2016 20-Feb-2016 01-Apr-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5 14 14.5 15

15.5 Grafico Bande di Bollinger e prezzi di chiusura azioni ENI

Prezzi di chiusura BandaMed BandaSup BandaInf

(21)

Se invece specifico gli output che voglio ottenere, cioè la media mobile e le bande superiore ed inferiore, allora si può sempre utilizzare il comando []=bolling(), che ha come input sempre le stesse variabili, però in questo caso MATLAB, non traccerà nessun grafico delle bande, ma calcolerà tali valori e darà come risultato dei vettori.

La differenza rispetto al comando bollinger() è che, i vettori delle tre bande partiranno direttamente dal primo valore utile, cioè dopo il numero di giorni scelti per il calcolo della media mobile. Quindi i vettori risultanti saranno di dimensioni minori (diminuiti in base ai giorni necessari al calcolo della media mobile) rispetto a quello scelto come input.

Se si vuole ottenere il grafico delle bande di Bollinger dati i prezzi di chiusura di un qualsiasi titolo è utile creare una function così da poterla lanciare immettendo come input il codice del titolo scelto.

!89

01-Jan-2016 25-Jan-2016 22-Feb-2016 07-Mar-2016 31-Mar-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5 14

14.5 Bande di Bollinger azioni ENI

(22)

>> bollgrafico(‘ENEL.MI’)

Nell’esempio il periodo di riferimento è sempre il primo trimestre del 2016, se si vuole cambiare l’arco temporale basterà modificare la stringa della data di inizio e di fine nel codice della function.

01-Jan-2016 20-Jan-2016 10-Feb-2016 11-Mar-2016 31-Mar-2016

Giorni 3.3

3.4 3.5 3.6 3.7 3.8 3.9 4

4.1 Bande di Bollinger titolo ENEL.MI

Chiusura BandaM BandaS BandaI

(23)

3.3.2 Esempio di function che permette di tracciare il grafico a candele dei prezzi insieme alle bande di Bollinger

Per un’analista interessato alla volatilità storica dei prezzi di un titolo, può essere utile evidenziare graficamente il comportamento passato dei prezzi (apertura, massimo, minimo e chiusura) con quello delle bande di Bollinger. In questo caso, è utile scrivere una function su MATLAB, la quale consenta di ottenere in un unico grafico, per un qualsiasi titolo e un qualsiasi arco temporale prescelto, sia un candlestick che le bande mediana, superiore ed inferiore di Bollinger.

>> Bollcandele(‘ENI.MI’,’12/1/15’,’3/31/16’)

!91

10-Jan-2016 20-Feb-2016 01-Apr-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5 14

14.5 Grafico a candela e bande di Bollinger titolo ENI.MI

(24)

3.3.3 Calcolare i valori degli indicatori %b e BandWidth in MATLAB

Come detto in precedenza, esistono due indicatori basati sulle bande di Bollinger; essi forniscono informazioni aggiuntive quando si effettuano decisioni di investimento, e verranno utilizzati nell’analisi.

L’indicatore %b dice dove i prezzi si trovano in relazione alle fasce di trading: quando i prezzi toccano la banda superiore, esso è uguale ad 1; viceversa quando essi toccano quella inferiore, esso è 0.

Riprendendo la formula:

Il BandWidth invece indica l’ampiezza delle bande: quando è estremamente piccolo, esiste un’alta probabilità di vedere cambiamenti radicali nella direzione del prezzo. Riprendendo la formula:

Per calcolare il valore di questi due indicatori su MATLAB, è necessario, innanzitutto scaricare le quotazioni dei prezzi di chiusura del titolo desiderato, dal sito Yahoo Finanza con il comando fetch().

Successivamente, poiché tali valori vengono inseriti in un vettore

colonna, dal più recente al più remoto, si dovrà rovesciarli per averli

in ordine cronologico; tale operazione si effettua con il comando

flipud(). Dopo si procederà al calcolo delle bande di Bollinger relative

ai prezzi di chiusura del titolo con il comando bollinger() e

successivamente si calcoleranno tali valori applicando le formule di

cui sopra. Si noti che i vettori relativi ai valori delle bande avranno i

primi elementi senza un valore numerico, poiché vengono calcolati

dopo N giorni di tempo (dove N è uguale al numero di giorni utilizzati

nel calcolo della media mobile). Quindi, per effettuare il calcolo dei

valori di tali indicatori bisognerà partire dal primo valore delle bande

di cui è possibile ottenere un risultato numerico.

(25)

Tale function permette di calcolare i valori di questi indicatori per un qualsiasi titolo e per un qualsiasi periodo temporale considerato. Le bande di Bollinger sono calcolate con i parametri standard, cioè con l’utilizzo di una media mobile semplice a 20 giorni e la distanza dalle bande è uguale a +/- 2 deviazioni standard.

Per lanciare la function bisognerà scrivere nella CommandWindow i due output e immettere come input: il codice identificativo del titolo desiderato e la data di inizio e fine dell’arco temporale analizzato. I valori di questi due indicatori, soprattutto quelli del %b, verranno utilizzati per disegnare un grafico secondario, rispetto a quello dei prezzi, che sarà di supporto per le decisioni di investimento dell’investitore.

!93

(26)

Infatti, per realizzare in un unico grafico quello principale dei prezzi e quello secondario, con l’indicatore %b, si utilizza il comando subplot(), che suddivide in due blocchi la finestra per poter disegnare le due figure.

!94

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5 14

14.5 Grafico a candela e bande di Bollinger ENI

0 0.5 1

1.5 %b

%b

(27)

3.4 Ottimizzazione dei parametri delle bande di Bollinger È essenziale per un investitore avere possibilità di aggiustare i parametri di un qualsiasi metodo, non solo per un singolo titolo ma anche per un indice azionario, ecc. Questi parametri possono variare anche tenendo conto del fatto che il periodo analizzato può essere di lungo termine, così come di breve termine. Come già detto, si sa che le bande di Bollinger generano i migliori risultati analizzando i dati a breve termine con una parametrizzazione, tuttavia, è necessaria un’altra per analizzare i dati di lungo termine.

In questo lavoro di tesi si cerca di stabilire quale parametrizzazione e in quale situazione dovrebbe essere usata. Il lavoro di ricerca è basato su un investitore che è interessato ad un investimento di breve termine. Per l’analisi sono utilizzati due titoli azionari del mercato di borsa italiano. I grafici delle bande di Bollinger sono disegnati usando tre differenti tipi di parametri per ognuna delle azioni. Si assume che l’investitore osserverà il prezzo azionario e, secondo i segnali generati, istantaneamente prenderà una decisione; il tempo minimo per il processo decisionale è di un giorno. Così, ogni giorno l’investitore decide se comprare, vendere, o mantenere la sua posizione nel mercato. Alla fine del periodo di tempo determinato, i rendimenti sono calcolati per ciascun insieme di parametri. Come sappiamo, le bande di Bollinger hanno alcuni parametri che possono essere modificati: innanzitutto il tipo di media mobile utilizzata per il calcolo della banda mediana (in questo caso si utilizza una media mobile semplice); una seconda possibile modifica riguarda la distanza tra banda mediana e le bande superiore ed inferiore, di solito essa è descritta in numeri di deviazioni standard (il valore di default è uguale a 2); infine, si può modificare la lunghezza della media mobile misurata in giorni.

I parametri ottimali delle bande di Bollinger sono calibrati utilizzando i dati storici, in modo da poter avere fiducia dei segnali generati, solo nel caso in cui il processo del prezzo delle azioni è

!95

(28)

fermo e stabile. Tuttavia, per un investimento di breve periodo questi requisiti non sono necessari.

Nell’esempio analizzato useremo i dati storici di ENI S.p.A.

(ENI.MI) e ENEL S.p.A. (ENEL.MI), società quotate, e tra le più capitalizzate, nel mercato azionario italiano.

3.4.1 Calibrazione dei parametri delle bande di Bollinger

Applicando l’analisi grafica per un investimento a breve termine, si è capito che nella maggioranza dei casi le bande di Bollinger sono distanti e il prezzo attraversa il canale di trading solo dopo estreme variazioni dello stesso. In aggiunta, la media mobile calcolata per 20 giorni, è in ritardo rispetto l’oscillazione dei prezzi. Assorbendo le variazioni di prezzo estreme, la media mobile può solo indicare le tendenze a lungo termine e perdere i movimenti a breve. A causa di questo, un investitore di breve periodo fa molto meno decisioni di investimento rispetto ad uno di lungo termine; in quanto può essere dedotto che, utilizzando gli stessi parametri per le bande di trading, ad un investitore a breve vengono generati meno segnali rispetto a quelli che ha uno a lungo termine. Questi problemi ci portano a concludere che i parametri delle bande di Bollinger (lunghezza e metodo di calcolo della media mobile, distanza tra le bande), dovrebbero essere selezionati individualmente per gli investitori a breve e lungo termine.

La nostra ricerca si focalizza sui parametri ottimi per un investitore a breve termine.

L’analisi grafica delle azioni di ENI S.p.A. (ENI.MI) e di ENEL S.p.A. (ENEL.MI) è stata eseguita seguendo tre gruppi di parametri:

1) N=20, K=2;

2) N=10, K=1,5;

3) N=5, K=1,6;

dove N sono i giorni utilizzati per il calcolo della media mobile

semplice, e K è il numero di +/- deviazioni standard di distanza della

banda superiore ed inferiore da quella mediana.

(29)

Inoltre sono stati utilizzati nella ricerca i due indicatori che derivano dalle bande di Bollinger: il %b e il BandWidth. Il periodo di tempo della ricerca va dal 1/1/2016 al 31/3/2016.

3.4.1.1 Le bande di Bollinger con i parametri N=20 e K=2

Iniziamo la nostra analisi nel calcolare e disegnare il grafico delle bande di Bollinger utilizzando una media mobile semplice a 20 giorni e una distanza di +/- 2 deviazioni standard come distanza tra le bande superiore ed inferiore e da quella mediana. Per quanto riguarda le azioni ENI con questi parametri abbiamo già precedentemente effettuato tutti i calcoli e disegnato il grafico:

Per quanto riguarda le azioni ENEL, invece, in precedenza avevamo calcolato i valori delle bande di Bollinger con questi parametri, a questo punto dobbiamo calcolare i valori dell’indicatore

%b ed effettuare i due grafici. Utilizzeremo delle function, precedentemente create ed analizzate, per velocizzare e semplificare lo scaricamento dei dati storici e le procedure di calcolo.

!97

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5 14

14.5 ENI N=20, K=2

31-Dec-2015-0.5 31-Jan-2016 02-Mar-2016 02-Apr-2016

0 0.5 1

1.5 %b

%b

(30)

Avendo a disposizione tutti i dati utili, si procede al disegno dei grafici, utilizzando i seguenti comandi:

I due grafici (quello di ENI e di ENEL) rappresentano i segnali di vendita (contrassegnati in rosso) e di acquisto (contrassegnati in verde) generati dalle bande di Bollinger. Il canale di trading con i parametri N=20 e K=2 è piuttosto ampio, quindi solo i segnali rari vengono generati.

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Giorni 3.3

3.4 3.5 3.6 3.7 3.8 3.9 4

4.1 ENEL N=20, K=2

31-Dec-2015-0.5 31-Jan-2016 02-Mar-2016 02-Apr-2016

0 0.5 1

1.5 %b

%b

(31)

3.4.1.2 Le bande di Bollinger con i parametri N=10 e K=1,5 Per modificare i parametri utilizzati per il calcolo delle bande modificheremo le function, già utilizzate in precedenza, inserendo i nuovi valori: una media mobile semplice di 10 giorni (N=10) e una distanza tra banda superiore/inferiore rispetto a quella mediana di +/- 1,5 deviazioni standard (K=1,5).

La function per calcolare, con questi parametri, le bande di Bollinger dati i prezzi di chiusura del I trimestre 2016 per un generico titolo sarà:

Mentre quella per il calcolo dei valori degli indicatori derivanti dalle bande, sarà:


Scaricando i dati storici delle quotazioni del I trimestre 2016 sul Workspace, ed utilizzando la function “SerieStorica” che crea il fints,

!99

(32)

procederemo al calcolo delle bande e degli indicatori e nella loro rappresentazione grafica così come fatto in precedenza.

Per quanto riguarda le azioni ENI i nuovi valori delle bande e dell’indicatore %b saranno:

Invece, i nuovi valori delle bande e dell’indicatore %b per le azioni ENEL, sono:

Ottenuti i nuovi valori delle bande e dell’indicatore, dobbiamo

tracciare i due grafici. Per fare ciò si immettono i medesimi comandi

utilizzati in precedenza, solamente che ora essi avranno come input

questi nuovi valori. Disegnati i grafici si evidenzieranno i segnali di

acquisto e di vendita dati dall’intersezione dei prezzi con le bande e

dall’indicatore %b: quelli verdi saranno i segnali di acquisto, mentre i

rossi saranno segnali di vendita.

(33)

Il grafico delle azioni ENI è:

Invece, il grafico delle azioni ENEL è:

Il canale di trading con i parametri N=10 e K=1,5 si adatta bene ai movimenti del prezzo nel periodo di tempo selezionato, poiché li segue più dai vicino.

!101

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Giorni 3.3

3.4 3.5 3.6 3.7 3.8 3.9 4

4.1 ENEL N=10, K=1,5

31-Dec-2015-0.5 31-Jan-2016 02-Mar-2016 02-Apr-2016

0 0.5 1

1.5 %b

%b

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5 14

14.5 ENI N=10, K=1,5

31-Dec-2015-0.5 31-Jan-2016 02-Mar-2016 02-Apr-2016

0 0.5 1

1.5 %b

%b

(34)

3.4.1.3 Le bande di Bollinger con i parametri N=5 e K=1,25 Anche in questo caso modificheremo le precedenti function, con i nuovi parametri utilizzati nel calcolo delle bande di Bollinger: una media mobile semplice di 5 giorni (N=5) e una distanza tra banda superiore/inferiore rispetto a quella mediana di +/- 1,25 deviazioni standard (K=1,25).

La function per calcolare, con questi parametri, le bande di Bollinger dati i prezzi di chiusura del I trimestre 2016 per un generico titolo sarà:

Invece quella per calcolare gli indicatori %b e BandWidth sarà così modificata:

Dopo aver scaricato la serie storica dei dati delle quotazioni dei due

titoli azionari, possiamo calcolare i rispettivi valori delle bande e degli

indicatori attraverso l’utilizzo di queste due function. Successivamente

si tracceranno i grafici, così come fatto precedentemente.

(35)

Per le azioni ENI i valori delle bande di Bollinger e dell’indicatore

%b con i nuovi parametri N=5 e K=1,25 saranno:

Mentre, i nuovi valori delle bande e dell’indicatore %b per le azioni ENEL, sono:

Calcolati i nuovi valori delle bande di Bollinger e dell’indicatore

%b con i nuovi parametri, immettendo i comandi per effettuare i grafici, analizzati in precedenza, MATLAB procederà al loro tracciamento; successivamente si evidenzieranno i segnali di acquisto, in verde, e di vendita, in rosso, rispettivamente dati dal contatto dei prezzi di chiusura con la banda inferiore o con quella superiore.

Inoltre tali segnali sono confermati dall’andamento dell’indicatore

%b, infatti se esso è uguale o minore di 0, questo sarà un segnale di acquisto; se, invece, esso è uguale o maggiore di 1, sarà di vendita.

!103

(36)

Il nuovo grafico per le azioni ENI è:

Quello, invece, delle azioni ENEL è:

Con i parametri impostati a N=5 giorni utilizzati per il calcolo della media mobile semplice e, K=+/- 1,25 deviazioni standard di distanza tra bande superiore e inferiore rispetto alla mediana, il canale di

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Giorni 3.3

3.4 3.5 3.6 3.7 3.8 3.9 4

4.1 ENEL N=5, K=1,25

31-Dec-2015-0.5 31-Jan-2016 02-Mar-2016 02-Apr-2016

0 0.5 1

1.5 %b

%b

31-Dec-2015 31-Jan-2016 02-Mar-2016 02-Apr-2016

Giorni 10.5

11 11.5 12 12.5 13 13.5 14

14.5 ENI N=5, K=1,25

31-Dec-2015-0.5 31-Jan-2016 02-Mar-2016 02-Apr-2016

0 0.5 1

1.5 %b

%b

(37)

trading è piuttosto stretto, quindi, vengono generati un numero maggiore di segnali.

3.4.2 Risultati della calibrazione dei parametri delle bande di Bollinger

Supponiamo di applicare una strategia di trading determinata dalle seguenti regole:

• Capitale iniziale per l’investimento è 100 unità di moneta.

• Quando il prezzo di chiusura penetra la banda inferiore (in questo caso l’indicatore %b è piccolo o uguale a 0), il segnale di acquisto è generato (nei precedenti grafici esso è evidenziato con un ovale verde), l’investitore compra l’azione, se esso non la detiene già in portafoglio; mentre non fa nulla, se egli ha già questo tipo di azione.

• Quando il prezzo di chiusura penetra la banda superiore (in questo caso l’indicatore %b è alto o uguale ad 1), si genera il segnale di acquisto (nei precedenti grafici è evidenziato con un ovale rosso), l’investitore vende l’azione dal portafoglio.

• L’investitore può fare un’altra transazione dopo la vendita.

Applicando queste regole, si è effettuato una simulazione di investimento (seguendo i segnali generati dai grafici del paragrafo precedente), e il profitto è stato sommato successivamente per ogni serie di parametri.

!105 Rendimenti di ENI e ENEL con differenti parametri

-8%

-4%

0%

4%

8%

12%

16%

N=20, K=2 N=10, K=1,5 N=5, K=1,25

ENI ENEL

(38)

Il risultato conferma le raccomandazioni incontrate nelle letteratura (vedi Bollinger, 2001) di usare un piccolo arco temporale per il calcolo della media mobile e bande strette quando si deve effettuare un investimento di breve termine. La redditività era bassa, all’incirca il -5,8% per ENI e il 6,28% per ENEL, usando il primo gruppo di parametri, cioè 20 giorni per il calcolo della media mobile (N=20) e +/- 2 deviazioni standard la distanza tra le bande superiore ed inferiore da quella mediana (K=2). Con la seconda serie di parametri, N=10 giorni e K= +/-1,5 deviazioni standard, la redditività aumenta; infatti per le azioni ENI è circa il 14,85%, invece per ENEL è circa il 12,53%. Tuttavia il terzo gruppo di parametri, in cui si ha un canale di trading stretto ed una media mobile calcolata con un periodo temporale molto corto (N=5 e K=+/-1,25), porta ad un risultato peggiore e la redditività non raggiunge il massimo; infatti essa è, per ENI circa l’8,17%, mentre per ENEL è circa il 10,48%.

Va notato, che per un investimento a breve termine i parametri delle

bande di Bollinger dovrebbero essere calibrati a N=10 giorni per il

calcolo della media mobile e K=+/- 1,5 deviazioni standard la distanza

tra le bande. Come mostrato sopra, questi parametri consentono, in

entrambi i casi, il raggiungimento della migliore redditività per gli

investimenti a breve termine. Questo perché il prezzo non può

raggiungere le bande del canale di trading quando quest’ultimo è

ampio; però, dall’altra parte, le bande sono attraversate ripetutamente

se il canale di trading è stretto e la media mobile è calcolata per un

breve periodo. In questo caso i segnali generati possono essere

ingannevoli, causando una perdita per l’investitore. Inoltre,

l’investitore tende ad avere un minor numero di transazioni ed a non

apportare modifiche al suo portafoglio, tenendo conto che ogni

transazione viene tassata dalle norme del mercato finanziario.

(39)

3.5 Conclusioni e discussioni

Il fattore umano prevale sempre nonostante il metodo scelto nella gestione degli investimenti; esso influenza il profitto atteso ed il rischio ammissibile. Ogni singolo investitore ha la propria percezione del rischio ed un’unica interpretazione di ciascuna metodologia di investimento. In tal modo gli stessi metodi di investimento possono dare differenti profitti per un particolare investitore.

I rendimenti dei titoli non sono distribuiti normalmente, quindi l’ipotesi che il 95% dei dati rientra nel canale di trading dato dalle bande di Bollinger con una distanza di +/-2 deviazioni standard, è respinta per la maggior parte dei titolo del mercato borsistico italiano.

Di solito, i rendimenti hanno una distribuzione con “code grasse”, perciò meno del 95% dei dati rientrano in questo canale di trading.

L’indicatore %b insieme alle bande di Bollinger è stato usato come segnale di conferma; tutti i grafici ed i calcoli di questo lavoro di tesi sono stati sviluppati utilizzando MATLAB e alcuni suoi toolbox.

Il risultato della nostra analisi, eseguita sulle azioni di ENI S.p.A. e ENEL S.p.A., mostra che un investitore di breve periodo dovrebbe applicare i seguenti parametri per le bande di Bollinger: N=10 e K=1,5. I rendimenti delle azioni ENI e di ENEL, nel periodo di tempo di riferimento (dal 1/1/2016 al 31/3/2016), raggiunti con questi parametri sono rispettivamente circa il 14,85% e il 12,53%; mentre per con N=20 e K=2 divengono il -5,8% e il 6,28%; infine con i parametri N=5 e K=1,25 il profitto sarà del 8,17% e del 10,48%.

Durante la ricerca, è stato dedotto che usando gli stessi parametri delle bande di Bollinger, si generano meno segnali nei casi di breve periodo, e maggiori segnali sono generati nel lungo termine. Ecco perché sono necessari gruppi specifici di parametri nel caso di investimenti a lungo termine ed altri per quelli a breve, in modo tale da ottenere il massimo profitto in entrambi i casi.

Tuttavia, un investimento a breve termine deve essere valutato anche considerando i costi di transazione e le tasse. Infatti è essenziale, valutare il peso che tali costi, sostenuti per ogni

!107

(40)

transazione effettuata, hanno sul profitto finale. Inoltre, i parametri ottimi dovrebbero essere calibrati individualmente per i differenti costi di transazione. In un investimento a lungo termine, i parametri delle bande di Bollinger dovrebbero essere selezionati individualmente.

Sarebbe molto interessante confrontare i risultati ottenuti da un

investitore di breve periodo (speculatore) e quelli raggiunti da uno di

lungo.

Riferimenti

Documenti correlati

Another public voice, within this community, was that of Manuel Laranjeira, who wrote on the subject of mysticism and concluded that the men of faith were certainly abnormal but not

Results: Data derived from RCT and observational studies clearly documented that TRT can improve erectile function and libido as well as other sexual activities in men with

Per fortuna l’informatore decide di aiutare ancora l’ispettore fornendogli indizi proprio attraverso il computer. Il numero

Fornendo al materiale semiconduttore una quantità di energia superiore al gap gli elettroni hanno la possibilità dii passare dalla banda di valenza ( BV) alla banda di

Petrich) di costruzione delle bande, dedotto da quello usato da Lallement per i semi gruppi completamente regolari, con l'uso di una espressione esplicita del- l'inviluppo

Tandis que l’arrière-plan de l’ultime case convoque le cubisme analytique au travers de l’effet- Demoiselles d’Avignon qui en nimbe la voûte céleste, le

- Il comando imposta come punto di inserimento del testo l’estremo in alto a sinistra, sulla base del font corrente.. Set text

Il reticolo cristallino fisico, formato da atomi, invece può essere descritto come costituito da celle unitarie di base identiche, ciascuna delle quali è disposta in corrispondenza di