Sei sulla pagina 1di 15

Esercizi MATLAB su

Titoli Azionari ed Analisi Tecnica


—————
Appunti per l’insegnamento di
Metodi Computazionali per la Finanza
Anno Accademico 2019/2020

Riccardo Cambini
Dipartimento di Economia e Management
Università di Pisa,
Via Cosimo Ridolfi 10, 56124 Pisa, ITALY
E-mail: riccardo.cambini@unipi.it

Versione 28 Aprile 2020

Piattaforma E-learning : https://elearning.ec.unipi.it/course/view.php?id=1116

1
1 Tabelle di Dati di Borsa - Figure contenenti un unico grafico
Di seguito indicheremo con T , T 1, T 2, T 3, delle tabelle dei prezzi di un singolo titolo o indice di borsa, in cui
la prima colonna corrisponde alle date mentre le altre colonne corrispondono ai vari prezzi giornalieri del titolo
(massimi, minimi, apertura, chiusura, chiusura aggiustata) ed ai volumi di scambio. Tali tabelle saranno input
di function MATLAB che riceveranno in ingresso dati provenienti da files “NomeTitolo.csv” scaricati da “Yahoo
Finanza” e controllati preliminarmente a cura dei candidati (sostituzione dei “null” con dei “NaN” e verifica
dell’ordine temporale crescente delle date).

1.1 Analisi Grafica


Esercizio 1.1 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Quotazioni” per il periodo [day1, day2]
il grafico dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , evidenziando inoltre le massime e le minime
quotazioni raggiunte dai titoli nel periodo considerato.

Esercizio 1.2 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Massimi-Minimi” per il periodo
[day1, day2] il grafico dei prezzi massimi, minimi, di chiusura, del titolo di cui alla tabella T .

Esercizio 1.3 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Massimi-Minimi” per il periodo
[day1, day2] il grafico dei prezzi massimi, minimi, di chiusura, del titolo di cui alla tabella T , evidenziando inoltre
il massimo ed il minimo prezzo di chiusura raggiunto dal titolo nel periodo considerato.

Esercizio 1.4 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “High-Low-Close” per il periodo
[day1, day2] il grafico “High-Low-Close” (grafico prezzi di chiusura e per ogni giornata un segmento verticale
avente come estremi massimo e minimo prezzo) del titolo di cui alla tabella T .

Esercizio 1.5 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “High-Low-Close” per il periodo
[day1, day2] il grafico “High-Low-Close” del titolo di cui alla tabella T , evidenziando inoltre il massimo ed il
minimo prezzo di chiusura raggiunto dal titolo nel periodo considerato.

Esercizio 1.6 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Candlestick” per il periodo [day1, day2]
il grafico a “candele giapponesi” del titolo di cui alla tabella T .

Esercizio 1.7 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Volumi” per il periodo [day1, day2] il
grafico a barre dei volumi di scambio del titolo di cui alla tabella T .

1.2 Oscillatori
1.2.1 Variazioni Assolute e Variazioni Relative
Esercizio 1.8 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Variazioni Assolute” per il periodo
[day1, day2] il grafico delle variazioni assolute dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , evidenziando
inoltre le massime e le minime variazioni assolute raggiunte dai titoli nel periodo considerato.

Esercizio 1.9 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Variazioni Relative” per il periodo
[day1, day2] il grafico delle variazioni relative dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , evidenziando
inoltre le massime e le minime variazioni relative raggiunte dai titoli nel periodo considerato.

2
1.2.2 Momentum
Esercizio 1.10 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Momentum” per il periodo [day1, day2]
il grafico dei momentum a 5, 10 e 14 giorni dei prezzi di chiusura del titolo di cui alla tabella T .

Esercizio 1.11 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, due date day1 e day2, con day1 < day2, e due interi p1 ≥ 2 e p2 ≥ 2 e rappresenta nella figura “Momentum”
per il periodo [day1, day2] il grafico dei momentum a p1 e p2 giorni dei prezzi di chiusura del titolo di cui alla
tabella T .

Esercizio 1.12 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Momentum” per il periodo [day1, day2]
il grafico dei momentum a 14 giorni dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , evidenziando inoltre
i massimi ed i minimi momentum raggiunti dai titoli nel periodo considerato.

Esercizio 1.13 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corrispon-
denti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura “Momentum”
per il periodo [day1, day2] il grafico dei momentum a p giorni dei prezzi di chiusura dei titoli di cui alle tabelle T1 ,
T2 e T3 .

Esercizio 1.14 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corrispon-
denti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura “Momentum”
per il periodo [day1, day2] il grafico dei momentum a p giorni dei prezzi di chiusura dei titoli di cui alle tabelle T1 ,
T2 e T3 , evidenziando inoltre i massimi ed i minimi momentum raggiunti dai titoli nel periodo considerato.

1.2.3 Momentum Relativi


Esercizio 1.15 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Momentum Relativi” per il periodo
[day1, day2] il grafico dei momentum relativi a 5, 10 e 14 giorni dei prezzi di chiusura del titolo di cui alla tabella
T.

Esercizio 1.16 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, due date day1 e day2, con day1 < day2, e due interi p1 ≥ 2 e p2 ≥ 2 e rappresenta nella figura “Momentum
Relativi” per il periodo [day1, day2] il grafico dei momentum relativi a p1 e p2 giorni dei prezzi di chiusura del
titolo di cui alla tabella T .

Esercizio 1.17 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Momentum Relativi” per il periodo
[day1, day2] il grafico dei momentum relativi a 14 giorni dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 ,
evidenziando inoltre i massimi ed i minimi momentum relativi raggiunti dai titoli nel periodo considerato.

Esercizio 1.18 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura “Momentum
Relativi” per il periodo [day1, day2] il grafico dei momentum relativi a p giorni dei prezzi di chiusura dei titoli di
cui alle tabelle T1 , T2 e T3 .

Esercizio 1.19 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura “Momentum
Relativi” per il periodo [day1, day2] il grafico dei momentum relativi a p giorni dei prezzi di chiusura dei titoli di
cui alle tabelle T1 , T2 e T3 , evidenziando inoltre i massimi ed i minimi momentum relativi raggiunti dai titoli nel
periodo considerato.

1.2.4 ROC
Esercizio 1.20 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Rate of Change” per il periodo
[day1, day2] il grafico dei ROC a 5, 10 e 14 giorni dei prezzi di chiusura del titolo di cui alla tabella T .

3
Esercizio 1.21 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, due date day1 e day2, con day1 < day2, e due interi p1 ≥ 2 e p2 ≥ 2 e rappresenta nella figura “Rate of
Change” per il periodo [day1, day2] il grafico dei ROC a p1 e p2 giorni dei prezzi di chiusura del titolo di cui alla
tabella T .

Esercizio 1.22 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Rate of Change” per il periodo [day1, day2]
il grafico dei ROC a 14 giorni dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , evidenziando inoltre i
massimi ed i minimi ROC raggiunti dai titoli nel periodo considerato.

Esercizio 1.23 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura “Rate of
Change” per il periodo [day1, day2] il grafico dei ROC a p giorni dei prezzi di chiusura dei titoli di cui alle tabelle
T1 , T2 e T3 .

Esercizio 1.24 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura “Rate of
Change” per il periodo [day1, day2] il grafico dei ROC a p giorni dei prezzi di chiusura dei titoli di cui alle tabelle
T1 , T2 e T3 , evidenziando inoltre i massimi ed i minimi ROC raggiunti dai titoli nel periodo considerato.

1.3 Analisi del Trend


Esercizio 1.25 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Medie Mobili” per il periodo [day1, day2]
il grafico dei prezzi di chiusura del titolo di cui alla tabella T , con in evidenza il massimo e minimo prezzo raggiunto
nel periodo considerato, oltre alle corrispondenti medie mobili semplici, ponderate ed esponenziali a 14 giorni.

Esercizio 1.26 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Medie Mobili” per
il periodo [day1, day2] il grafico dei prezzi di chiusura del titolo di cui alla tabella T , con in evidenza il massimo
e minimo prezzo raggiunto nel periodo considerato, oltre alle corrispondenti medie mobili semplici, ponderate ed
esponenziali a p giorni.

Esercizio 1.27 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Medie Mobili” per il periodo [day1, day2]
il grafico dei prezzi di chiusura del titolo di cui alla tabella T , con in evidenza il massimo e minimo prezzo raggiunto
nel periodo considerato, oltre alle corrispondenti medie mobili semplici a 5, 10 e 14 giorni.

Esercizio 1.28 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Medie Mobili” per il periodo [day1, day2]
il grafico dei prezzi di chiusura del titolo di cui alla tabella T , con in evidenza il massimo e minimo prezzo raggiunto
nel periodo considerato, oltre alle corrispondenti medie mobili ponderate a 5, 10 e 14 giorni.

Esercizio 1.29 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Medie Mobili” per il periodo [day1, day2]
il grafico dei prezzi di chiusura del titolo di cui alla tabella T , con in evidenza il massimo e minimo prezzo raggiunto
nel periodo considerato, oltre alle corrispondenti medie mobili esponenziali a 5, 10 e 14 giorni.

Esercizio 1.30 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Medie
Mobili” per il periodo [day1, day2] il grafico delle medie mobili semplici a p giorni dei prezzi di chiusura dei titoli
di cui alle tabelle T1 , T2 e T3 .

Esercizio 1.31 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Medie
Mobili” per il periodo [day1, day2] il grafico delle medie mobili ponderate a p giorni dei prezzi di chiusura dei titoli
di cui alle tabelle T1 , T2 e T3 .

Esercizio 1.32 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Medie
Mobili” per il periodo [day1, day2] il grafico delle medie mobili esponenziali a p giorni dei prezzi di chiusura dei
titoli di cui alle tabelle T1 , T2 e T3 .

4
1.4 Analisi della Volatilità
Esercizio 1.33 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “True Range” per il periodo [day1, day2]
il grafico del TR del titolo di cui alla tabella T , con in evidenza il massimo e minimo TR raggiunto nel periodo
considerato, oltre ai corrispondenti ATR, WTR e ETR a 14 giorni.

Esercizio 1.34 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo,, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “True Range” per
il periodo [day1, day2] il grafico del TR del titolo di cui alla tabella T , con in evidenza il massimo e minimo TR
raggiunto nel periodo considerato, oltre ai corrispondenti ATR, WTR e ETR a p giorni.

Esercizio 1.35 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “True Range” per il periodo [day1, day2]
il grafico del TR del titolo di cui alla tabella T , con in evidenza il massimo e minimo TR raggiunto nel periodo
considerato, oltre ai corrispondenti ATR a 5, 10 e 14 giorni.

Esercizio 1.36 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “True Range” per il periodo [day1, day2]
il grafico del TR del titolo di cui alla tabella T , con in evidenza il massimo e minimo TR raggiunto nel periodo
considerato, oltre ai corrispondenti WTR a 5, 10 e 14 giorni.

Esercizio 1.37 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “True Range” per il periodo [day1, day2]
il grafico del TR del titolo di cui alla tabella T , con in evidenza il massimo e minimo TR raggiunto nel periodo
considerato, oltre ai corrispondenti ETR a 5, 10 e 14 giorni.

Esercizio 1.38 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “True
Range” per il periodo [day1, day2] il grafico dell’ATR a p giorni dei titoli di cui alle tabelle T1 , T2 e T3 .

Esercizio 1.39 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “True
Range” per il periodo [day1, day2] il grafico del WTR a p giorni dei titoli di cui alle tabelle T1 , T2 e T3 .

Esercizio 1.40 Scrivere una function MATLAB che riceve come input tre tabelle T1 , T2 e T3 , i nomi dei corri-
spondenti titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “True
Range” per il periodo [day1, day2] il grafico dell’ETR a p giorni dei titoli di cui alle tabelle T1 , T2 e T3 .

1.5 Altri
Esercizio 1.41 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Candlestick” per il periodo [day1, day2]
il grafico a “candele giapponesi” del titolo di cui alla tabella T oltre alla media mobile ponderata a 5 giorni dei
prezzi di chiusura del titolo.

Esercizio 1.42 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “High-Low” per il periodo [day1, day2]
il grafico “High-Low-Close” del titolo di cui alla tabella T oltre alla media mobile esponenziale a 5 giorni dei prezzi
di chiusura del titolo.

5
2 Tabelle di Dati di Borsa - Figure contenenti due grafici
Di seguito sono forniti esercizi, tratti dalle prove d’esame degli ultimi due anni, che rappresentano combinazioni di
quelli presentati nella precedente sezione. Con T , T 1, T 2, T 3, sono indicate delle tabelle dei prezzi di un singolo
titolo o indice di borsa, in cui la prima colonna corrisponde alle date mentre le altre colonne corrispondono ai vari
prezzi giornalieri del titolo (massimi, minimi, apertura, chiusura, chiusura aggiustata) ed ai volumi di scambio. Tali
tabelle saranno input di function MATLAB che riceveranno in ingresso dati provenienti da files “NomeTitolo.csv”
scaricati da “Yahoo Finanza” e controllati preliminarmente a cura dei candidati (sostituzione dei “null” con dei
“NaN” e verifica dell’ordine temporale crescente delle date).

Esercizio 2.1 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Quotazioni e Volumi” per il periodo
[day1, day2] i due seguenti distinti grafici:

• l’andamento dei prezzi di chiusura del titolo di cui alla tabella T , con in evidenza il massimo e minimo prezzo
raggiunto nel periodo considerato, oltre alle corrispondenti medie mobili semplici a 14 giorni;
• grafico a barre dei volumi di scambio del titolo di cui alla tabella T .

Esercizio 2.2 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Quotazioni e ROC”
per il periodo [day1, day2] i due seguenti distinti grafici:
• l’andamento dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , con in evidenza i massimi ed i minimi
prezzi raggiunti dai titoli nel periodo considerato;

• l’andamento del ROC a p giorni dei titoli di cui alle tabelle T1 e T2 , con in evidenza i massimi ed i minimi
valori raggiunti dai ROC nel periodo considerato.

Esercizio 2.3 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Quotazioni e WMA” per il periodo
[day1, day2] i due seguenti distinti grafici:
• l’andamento dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , con in evidenza i massimi ed i minimi
prezzi raggiunti dai titoli nel periodo considerato;
• l’andamento delle medie mobili ponderate a 10 giorni dei titoli di cui alle tabelle T1 e T2 , con in evidenza i
massimi ed i minimi valori raggiunti dalle medie mobili nel periodo considerato.

Esercizio 2.4 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Medie Mobili e Volumi” per il periodo
[day1, day2] i due seguenti distinti grafici:
• l’andamento delle medie mobili semplici a 5, 10 e 14 giorni del titolo di cui alla tabella T , con in evidenza i
massimi e minimi valori raggiunti dalle medie mobili nel periodo considerato;
• grafico a barre dei volumi di scambio del titolo di cui alla tabella T .

Esercizio 2.5 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Candele e Volumi” per il periodo
[day1, day2] i due seguenti distinti grafici:
• grafico delle candele giapponesi del titolo di cui alla tabella T ;
• grafico a barre dei volumi di scambio del titolo di cui alla tabella T .

Esercizio 2.6 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “High-Low e Variazioni Relative” per
il periodo [day1, day2] i due seguenti distinti grafici:
• grafico High-Low-Close del titolo di cui alla tabella T , con in evidenza il massimo ed il minimo prezzo di
chiusura raggiunto dal titolo nel periodo considerato;

6
• l’andamento delle variazioni relative dei prezzi di chiusura del titolo di cui alla tabella T , evidenziando inoltre
la massima e la minima variazione relativa raggiunta nel periodo considerato.

Esercizio 2.7 Scrivere una function MATLAB che riceve come input una tabella T , il nome del corrispondente
titolo, e due date day1 e day2, con day1 < day2, e rappresenta nella figura “Quotazioni e TR” per il periodo
[day1, day2] i due seguenti distinti grafici:
• l’andamento dei prezzi di chiusura del titolo di cui alla tabella T , con in evidenza il massimo e minimo prezzo
raggiunto nel periodo considerato, oltre alle corrispondenti medie mobili semplici a 14 giorni;
• l’andamento del TR del titolo di cui alla tabella T , con in evidenza il massimo e minimo TR raggiunto nel
periodo considerato, oltre ai corrispondenti WTR ed ETR a 10 giorni.

Esercizio 2.8 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Quotazioni e Medie Mobili” per il periodo
[day1, day2] i due seguenti distinti grafici:

• l’andamento dei prezzi di chiusura del titolo di cui alla tabella T1 , con in evidenza il massimo e minimo prezzo
raggiunto nel periodo considerato, oltre alle corrispondenti medie mobili semplici a 14 giorni;
• l’andamento dei prezzi di chiusura del titolo di cui alla tabella T2 , con in evidenza il massimo e minimo prezzo
raggiunto nel periodo considerato, oltre alle corrispondenti medie mobili esponenziali a 14 giorni.

Esercizio 2.9 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2 e rappresenta nella figura “Quotazioni e Variazioni Percentuali” per
il periodo [day1, day2] i due seguenti distinti grafici:
• l’andamento dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , con in evidenza i massimi ed i minimi
prezzi raggiunti dai titoli nel periodo considerato;

• l’andamento delle variazioni relative dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , con in evidenza
le massime e le minime variazioni relative raggiunte nel periodo considerato.

Esercizio 2.10 Scrivere una function MATLAB che riceve come input due tabelle T1 e T2 , i nomi dei corrispondenti
titoli, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Quotazioni e
Momentum Relativi” per il periodo [day1, day2] i due seguenti distinti grafici:
• l’andamento dei prezzi di chiusura dei titoli di cui alle tabelle T1 e T2 , con in evidenza i massimi ed i minimi
prezzi raggiunti dai titoli nel periodo considerato;
• l’andamento dei momentum relativi a p giorni dei titoli di cui alle tabelle T1 e T2 , con in evidenza i massimi
ed i minimi valori raggiunti dai momentum relativi nel periodo considerato.

7
3 Tabelle relative ad un portafoglio titoli
Di seguito indicheremo con P una tabella dei prezzi di chiusura di un portafoglio titoli, la prima colonna corrisponde
alle date mentre le altre colonne ai prezzi di chiusura di distinti titoli azionari. Tale tabella sarà input di function
MATLAB che riceveranno in ingresso dati provenienti da un file “NomeFile.mat” da caricarsi a cura dei candidati.

3.1 Figure contenenti un unico grafico


Esercizio 3.1 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1 e
nomeT 2, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Quotazioni” per il periodo [day1, day2]
il grafico dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2, evidenziando inoltre le massime e
le minime quotazioni raggiunte dai titoli nel periodo considerato.

Esercizio 3.2 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Variazioni Assolute” per il periodo
[day1, day2] il grafico delle variazioni assolute dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2,
evidenziando inoltre le massime e le minime variazioni assolute raggiunte dai titoli nel periodo considerato.

Esercizio 3.3 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Variazioni Relative” per il periodo
[day1, day2] il grafico delle variazioni relative dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2,
evidenziando inoltre le massime e le minime variazioni relative raggiunte dai titoli nel periodo considerato.

Esercizio 3.4 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Momentum” per il periodo
[day1, day2] il grafico dei momentum a 14 giorni dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e
nomeT 2, evidenziando inoltre i massimi ed i minimi momentum raggiunti dai titoli nel periodo considerato.

Esercizio 3.5 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura
“Momentum” per il periodo [day1, day2] il grafico dei momentum a p giorni dei prezzi di chiusura dei titoli di cui
alle colonne nomeT 1, nomeT 2 e nomeT 3.

Esercizio 3.6 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura
“Momentum” per il periodo [day1, day2] il grafico dei momentum a p giorni dei prezzi di chiusura dei titoli di cui
alle colonne nomeT 1, nomeT 2 e nomeT 3, evidenziando inoltre i massimi ed i minimi momentum raggiunti dai
titoli nel periodo considerato.

Esercizio 3.7 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Momentum Relativi” per il periodo
[day1, day2] il grafico dei momentum relativi a 14 giorni dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e
nomeT 2, evidenziando inoltre i massimi ed i minimi momentum relativi raggiunti dai titoli nel periodo considerato.

Esercizio 3.8 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura
“Momentum Relativi” per il periodo [day1, day2] il grafico dei momentum relativi a p giorni dei prezzi di chiusura
dei titoli di cui alle colonne nomeT 1, nomeT 2 e nomeT 3.

Esercizio 3.9 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura
“Momentum Relativi” per il periodo [day1, day2] il grafico dei momentum relativi a p giorni dei prezzi di chiusura
dei titoli di cui alle colonne nomeT 1, nomeT 2 e nomeT 3, evidenziando inoltre i massimi ed i minimi momentum
relativi raggiunti dai titoli nel periodo considerato.

Esercizio 3.10 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Rate of Change” per il periodo
[day1, day2] il grafico dei ROC a 14 giorni dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2,
evidenziando inoltre i massimi ed i minimi ROC raggiunti dai titoli nel periodo considerato.

8
Esercizio 3.11 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura “Rate of
Change” per il periodo [day1, day2] il grafico dei ROC a p giorni dei prezzi di chiusura dei titoli di cui alle colonne
nomeT 1, nomeT 2 e nomeT 3.

Esercizio 3.12 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 2 e rappresenta nella figura “Rate of
Change” per il periodo [day1, day2] il grafico dei ROC a p giorni dei prezzi di chiusura dei titoli di cui alle colonne
nomeT 1, nomeT 2 e nomeT 3, evidenziando inoltre i massimi ed i minimi ROC raggiunti dai titoli nel periodo
considerato.

Esercizio 3.13 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Medie
Mobili” per il periodo [day1, day2] il grafico delle medie mobili semplici a p giorni dei prezzi di chiusura dei titoli
di cui alle colonne nomeT 1, nomeT 2 e nomeT 3.

Esercizio 3.14 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Medie
Mobili” per il periodo [day1, day2] il grafico delle medie mobili ponderate a p giorni dei prezzi di chiusura dei titoli
di cui alle colonne nomeT 1, nomeT 2 e nomeT 3.

Esercizio 3.15 Scrivere una function MATLAB che riceve come input una tabella P , tre nomi di colonna nomeT 1,
nomeT 2 e nomeT 3, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Medie
Mobili” per il periodo [day1, day2] il grafico delle medie mobili esponenziali a p giorni dei prezzi di chiusura dei
titoli di cui alle colonne nomeT 1, nomeT 2 e nomeT 3.

3.2 Figure contenenti due grafici


Esercizio 3.16 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Quotazioni e
ROC” per il periodo [day1, day2] i due seguenti distinti grafici:
• l’andamento dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2, con in evidenza i massimi
ed i minimi prezzi raggiunti dai titoli nel periodo considerato;
• l’andamento del ROC a p giorni dei titoli di cui alle colonne nomeT 1 e nomeT 2, con in evidenza i massimi
ed i minimi valori raggiunti dai ROC nel periodo considerato.

Esercizio 3.17 Scrivere una function MATLAB che riceve come input una tabella P , due indici di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Quotazioni e WMA” per il periodo
[day1, day2] i due seguenti distinti grafici:
• l’andamento dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2, con in evidenza i massimi
ed i minimi prezzi raggiunti dai titoli nel periodo considerato;
• l’andamento delle medie mobili ponderate a 10 giorni dei titoli di cui alle colonne nomeT 1 e nomeT 2, con in
evidenza i massimi ed i minimi valori raggiunti nel periodo considerato dalle medie mobili.

Esercizio 3.18 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, e rappresenta nella figura “Quotazioni e Medie Mobili” per il
periodo [day1, day2] i due seguenti distinti grafici:

• l’andamento dei prezzi di chiusura del titolo di cui alla colonna nomeT 1, con in evidenza il massimo e minimo
prezzo raggiunto nel periodo considerato, oltre alle corrispondenti medie mobili semplici a 14 giorni;
• l’andamento dei prezzi di chiusura del titolo di cui alla colonna nomeT 2, con in evidenza il massimo e minimo
prezzo raggiunto nel periodo considerato, oltre alle corrispondenti medie mobili esponenziali a 14 giorni.

Esercizio 3.19 Scrivere una function MATLAB che riceve come input una tabella P , due indici di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2 e rappresenta nella figura “Quotazioni e Variazioni Percentuali”
per il periodo [day1, day2] i due seguenti distinti grafici:

9
• l’andamento dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2, con in evidenza i massimi
ed i minimi prezzi raggiunti dai titoli nel periodo considerato;
• l’andamento delle variazioni relative dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2,
con in evidenza le massime e le minime variazioni relative raggiunte nel periodo considerato.

Esercizio 3.20 Scrivere una function MATLAB che riceve come input una tabella P , due nomi di colonna nomeT 1
e nomeT 2, due date day1 e day2, con day1 < day2, ed un intero p ≥ 5 e rappresenta nella figura “Quotazioni e
Momentum Relativi” per il periodo [day1, day2] i due seguenti distinti grafici:
• l’andamento dei prezzi di chiusura dei titoli di cui alle colonne nomeT 1 e nomeT 2, con in evidenza i massimi
ed i minimi prezzi raggiunti dai titoli nel periodo considerato;
• l’andamento dei momentum relativi a p giorni dei titoli di cui alle colonne nomeT 1 e nomeT 2, con in evidenza
i massimi ed i minimi valori raggiunti dai momentum relativi nel periodo considerato.

10
4 Massimi, Minimi e Contatori in un portafoglio titoli
Di seguito indicheremo con P una tabella dei prezzi di chiusura di un portafoglio titoli, la prima colonna corrisponde
alle date mentre le altre colonne ai prezzi di chiusura di distinti titoli azionari. Tale tabella sarà input di function
MATLAB che riceveranno in ingresso dati provenienti da un file “NomeFile.mat” da caricarsi a cura dei candidati.

Esercizio 4.1 Scrivere una function MATLAB

[M inQuot, DayM inQuot, T itM axP erc, M axP erc, DayM axRib, M axRib, N umT it] = es 4 1(P )
che preliminarmente suddivide la tabella P in un array di date D ed in un array di quotazioni Q e successivamente
restituisce come output:
• per ogni titolo la minima quotazione raggiunta M inQuot e la giornata DayM inQuot (indice di riga) in cui
si è raggiunta tale minima quotazione (si supponga tale giornata sia unica);
• il titolo T itM axP erc (indice di colonna di Q) che ha avuto la massima variazione percentuale M axP erc;
• la giornata DayM axRib (indice di riga) in cui il titolo T itM axP erc ha avuto il massimo ribasso percentuale
M axRib;

• il numero N umT it di titoli che nella giornata DayM axRib hanno avuto un rialzo.

Esercizio 4.2 Scrivere una function MATLAB


[T itM axRibP erc, DayM inV arAss, V arM ax, T itV arM ax, DayV arM ax, N umDay] = es 4 2(P )
che preliminarmente suddivide la tabella P in un array di date D ed in un array di quotazioni Q e successivamente
restituisce come output:
• il vettore T itM axRibP erc che fornisce per ciascuna giornata (ad esclusione della prima) il titolo (indice di
colonna di Q) che ha avuto il massimo ribasso percentuale (si supponga che tale titolo sia unico);
• il vettore DayM inV arAss che fornisce per ciascun titolo la giornata (indice di riga) in cui si è avuta la
minima variazione assoluta (si supponga che tale giornata sia unica);
• il titolo T itV arM ax (indice di colonna di Q) che ha avuto la massima variazione assoluta V arM ax (si
supponga tale variazione sia unica) e la giornata DayV arM ax (indice di riga) in cui si è avuta tale variazione;
• il numero di giornate N umDay in cui il titolo T itV arM ax ha avuto un ribasso percentuale superiore al 6%.

Esercizio 4.3 Scrivere una function MATLAB


[T itM axRib, M axRib, T itM axAss, M axAss, DayInf, N umDay] = es 4 3(P )
che preliminarmente suddivide la tabella P in un array di date D ed in un array di quotazioni Q e successivamente
restituisce come output:

• il titolo T itM axRib (indice di colonna di Q) che ha avuto il massimo ribasso percentuale M axRib (si supponga
che tale ribasso percentuale sia unico);
• il titolo T itM axAss (indice di colonna di Q) che ha avuto il massimo rialzo assoluto M axAss (si supponga
che tale rialzo assoluto sia unico).

• la lista DayInf delle giornate (indici di riga) in cui il titolo T itM axAss ha avuto una variazione percentuale
inferiore al −8%;
• il numero di giornate N umDay in cui il titolo T itM axRib ha avuto un rialzo mentre il titolo T itM axAss
ha avuto un ribasso.

Esercizio 4.4 Scrivere una function MATLAB


[T itV arM ax, T itV arM in, V arM ax, V arM in, DayRib, N umDay] = es 4 4(P, day)
che riceve come input una tabella P ed una data day, preliminarmente suddivide la tabella P in un array di date
D ed in un array di quotazioni Q e successivamente restituisce come output:

11
• il titolo T itV arM ax (indice di colonna di Q) ed il titolo T itV arM in (indice di colonna di Q) che nella
giornata day hanno avuto rispettivamente la massima variazione percentuale V arM ax e la minima variazione
percentuale V arM in (si supponga che tali titoli siano unici);
• la lista DayRib delle giornate (indici di riga) in cui i titoli T itV arM ax e T itV arM in hanno avuto un ribasso
ed in particolare il titolo T itV arM ax ha avuto un ribasso percentuale inferiore al ribasso percentuale del
titolo T itV arM in;
• il numero di giornate N umDay in cui il titolo T itV arM ax ha avuto un rialzo mentre il titolo T itV arM in
ha avuto un ribasso.

Esercizio 4.5 Scrivere una function MATLAB


[T itM ax, DayM axRib, T itM axP erc, M axP erc, DayM axP erc, N umDay] = es 4 5(P, day)
che riceve come input una tabella P ed una data day, preliminarmente suddivide la tabella P in un array di date
D ed in un array di quotazioni Q e successivamente restituisce come output:
• il titolo T itM ax (indice di colonna di Q) che nella giornata day ha avuto la massima variazione percentuale
(si supponga che tale titolo sia unico).
• il vettore DayM axRib che fornisce per ciascun titolo la giornata (indice di riga) in cui si è avuto il massimo
ribasso assoluto (si supponga che tale giornata sia unica);
• il titolo T itM axP erc che ha avuto il massimo ribasso percentuale M axP erc (si supponga tale ribasso
percentuale sia unico) e la giornata DayM axP erc (indice di riga) in cui si è avuto tale ribasso;
• il numero di giornate N umDay in cui il titolo T itM ax ha avuto un rialzo mentre il titolo T itM axP erc ha
avuto un ribasso.

Esercizio 4.6 Scrivere una function MATLAB


[T itM ax, DayM axRib, T itM axAss, M axAss, DayM axAss, N umDay] = es 4 6(P, day)
che riceve come input una tabella P ed una data day, preliminarmente suddivide la tabella P in un array di date
D ed in un array di quotazioni Q e successivamente restituisce come output:
• il titolo T itM ax (indice di colonna di Q) che nella giornata day ha avuto la massima variazione assoluta (si
supponga che tale titolo sia unico).
• il vettore DayM axRib che fornisce per ciascun titolo la giornata (indice di riga) in cui si è avuto il massimo
ribasso percentuale (si supponga che tali giornate siano uniche);
• il titolo T itM axAss (indice di colonna di Q) che ha avuto il massimo ribasso assoluto M axAss (si supponga
che tale ribasso assoluto sia unico) e la giornata DayM axAss (indice di riga) in cui si è avuto tale ribasso;
• il numero di giornate N umDay in cui il titolo T itM ax ha avuto un rialzo percentuale superiore al 1% mentre
il titolo T itM axAss ha avuto un ribasso percentuale superiore allo 0.4%.

Esercizio 4.7 Scrivere una function MATLAB


[T itM ax, M axRibP erc, T itM in, M inP erc, DayM inP erc, DayM axRialz, N umDay] = es 4 7(P, day)
che riceve come input una tabella P ed una data day, preliminarmente suddivide la tabella P in un array di date
D ed in un array di quotazioni Q e successivamente restituisce come output:
• il titolo T itM ax (indice di colonna di Q) che nella giornata day ha avuto il massimo ribasso percentuale
M axRibP erc (si supponga che tale titolo sia unico).
• il titolo T itM in (indice di colonna di Q) che ha avuto la minima variazione percentuale M inP erc (si supponga
tale variazione percentuale sia unica) e la giornata DayM inP erc (indice di riga) in cui si è avuta tale minima
variazione;
• il vettore DayM axRialz che fornisce per ciascun titolo la giornata (indici di riga) in cui si è avuto il massimo
rialzo assoluto (si supponga che tale giornata sia unica);
• il numero di giornate N umDay in cui entrambi i titoli T itM ax e T itM in hanno avuto un rialzo.

12
Esercizio 4.8 Scrivere una function MATLAB
[T itM ax, M axP erc, DayM axP erc, DayM axRib, N umDay] = es 4 8(P )
che preliminarmente suddivide la tabella P in un array di date D ed in un array di quotazioni Q e successivamente
restituisce come output:
• il titolo T itM ax (indice di colonna di Q) che ha avuto la massima variazione percentuale M axP erc (si
supponga tale variazione percentuale sia unica) e la data DayM axP erc in cui si è avuta tale massima
variazione;
• il vettore DayM axRib che fornisce per ciascun titolo il giorno (indice di riga) in cui si è avuto il massimo
ribasso percentuale (si supponga che tale data sia unica per ciascun titolo);
• il numero di giornate N umDay in cui il titolo T itM ax ha avuto un rialzo percentuale superiore al 5%.

Esercizio 4.9 Scrivere una function MATLAB

[T itM ax, M axRib, DayM axRib, N umT it, N umRialzi] = es 4 9(P )


che preliminarmente suddivide la tabella P in un array di date D ed in un array di quotazioni Q e successivamente
restituisce come output:
• il titolo T itM ax (indice di colonna di Q) che ha avuto il massimo ribasso percentuale M axRib (si supponga
tale ribasso percentuale sia unico) e la data (indice di riga) DayM axRib in cui si è avuto tale massimo ribasso;

• il numero di titoli N umT it che nella giornata DayM axRib hanno avuto un ribasso;
• il vettore N umRialzi che indica il numero di rialzi avuti da ciascun titolo.

Esercizio 4.10 Scrivere una function MATLAB

[T itM ax, M axRib, DayM axRib, ListaDay, N umT it, T itR, M axN umRialz] = es 4 10(P )
che preliminarmente suddivide la tabella P in un array di date D ed in un array di quotazioni Q e successivamente
restituisce come output:
• il titolo T itM ax (indice di colonna di Q) che ha avuto il massimo ribasso percentuale M axRib (si supponga
tale ribasso percentuale sia unico) e la data DayM axRib (indice di riga) in cui si è avuto tale massimo ribasso;

• la lista ListaDay che fornisce le giornate (indici di riga) in cui il titolo T itM ax ha avuto un rialzo percentuale
superiore al 7%;
• il numero di titoli N umT it che nella giornata DayM axRib hanno avuto un rialzo;
• il titolo T itR che ha avuto il massimo numero di rialzi M axN umRialz.

Esercizio 4.11 Scrivere una function MATLAB


[M axRib, T itM axRib, DayM axRib, T itAss, M axAss, DayM inV ar, M inV ar, N umT it] = es 4 11(P )
che preliminarmente suddivide la tabella P in un array di date D ed in un array di quotazioni Q e successivamente
restituisce come output:
• il massimo ribasso percentuale M axRib (si supponga che tale valore sia unico), il titolo T itM axRib (indice
di colonna di Q) che ha avuto tale ribasso, la giornata DayM axRib (indice di riga) in cui si è avuto tale
ribasso;
• il titolo T itAss (indice di colonna di Q) che nella giornata DayM axRib ha avuto la massima variazione
assoluta M axAss (si supponga che tale titolo sia unico);
• la giornata DayM inV ar (indice di riga) in cui il titolo T itAss ha avuto la minima variazione percentuale
M inV ar (si supponga che tale giornata sia unica);
• il numero di titoli N umT it che nella giornata DayM inV ar hanno avuto una variazione percentuale inferiore
a M inV ar.

13
Esercizio 4.12 Scrivere una function MATLAB
[M axRial, T itRial, DayRial, DayM inAss, M inAss, T itP erc, M axP erc, N umDay] = es 4 12(P )
che preliminarmente suddivide la tabella P in un array di date D ed in un array di quotazioni Q e successivamente
restituisce come output:
• il massimo rialzo percentuale M axRial (si supponga che tale valore sia unico), il titolo T itRial (indice di
colonna di Q) che ha avuto tale rialzo, la giornata DayRial (indice di riga) in cui si è avuto tale rialzo;
• la giornata DayM inAss (indice di riga) in cui il titolo T itRial ha avuto la minima variazione assoluta
M inAss (si supponga che tale giornata sia unica);

• il titolo T itP erc (indice di colonna di Q) che nella giornata DayM inAss ha avuto la massima variazione
percentuale M axP erc (si supponga che tale titolo sia unico);
• il numero di giornate N umDay in cui il titolo T itP erc ha avuto una variazione percentuale superiore a
M axP erc.

14
5 Altri esercizi
Di seguito indicheremo con T , T 1, T 2, T 3, delle tabelle dei prezzi di un singolo titolo o indice di borsa, in cui
la prima colonna corrisponde alle date mentre le altre colonne corrispondono ai vari prezzi giornalieri del titolo
(massimi, minimi, apertura, chiusura, chiusura aggiustata) ed ai volumi di scambio. Tali tabelle saranno input
di function MATLAB che riceveranno in ingresso dati provenienti da files “NomeTitolo.csv” scaricati da “Yahoo
Finanza” e controllati preliminarmente a cura dei candidati (sostituzione dei “null” con dei “NaN” e verifica
dell’ordine temporale crescente delle date).

Esercizio 5.1 Scrivere una function MATLAB “[f lag, rialz, ribas] = es 5 1(T 1, T 2, day1, day2)”, con day1 <
day2, che restituisce una variabile vero/falso f lag che indica se nel periodo [day1, day2] il numero di rialzi rialz
avuti dal titolo T 1 è stato o meno superiore al numero di ribassi ribas avuti dal titolo T 2 (ci si riferisca ai prezzi
di chiusura).

Esercizio 5.2 Scrivere una function MATLAB “[rialzi1, ribassi2] = es 5 2(T 1, T 2, day1, day2)”, con day1 <
day2, che restituisce il numero di rialzi rialzi1 che il titolo relativo alla tabella T 1 ha avuto nel periodo [day1, day2]
ed il numero di ribassi ribassi2 che il titolo relativo alla tabella T 2 ha avuto nel periodo [day1, day2] (ci si riferisca
ai prezzi di chiusura).

Esercizio 5.3 Scrivere una function MATLAB “[pres1, pres2, pres3, pres4] = es 5 3(T, day1, day2, day3, day4)”,
con day1 < day2, che restituisce come output i valori vero/falso pres1, pres2, pres3 e pres4, che indicano,
rispettivamente, se le date day1, day2, day3 e day4 sono o meno presenti nella tabella T .

Esercizio 5.4 Scrivere una function MATLAB “[f lag1, f lag2] = es 5 4(T 1, T 2, day1, day2, val)”, con day1 <
day2, che restituisce le due seguenti variabili vero/falso f lag1 e f lag2:

• f lag1 indica se nel periodo [day1,day2] il titolo T 1 ha avuto almeno una giornata con dei volumi di scambio
superiori a val,
• f lag2 indica se nel periodo [day1,day2] il titolo T 2 ha avuto almeno una giornata con dei volumi di scambio
superiori a val.

Esercizio 5.5 Scrivere una function MATLAB “[f lag1, f lag2] = es 5 5(T 1, T 2, p1, p2, day1, day2, val)”, con day1 <
day2, che restituisce le due seguenti variabili vero/falso f lag1 e f lag2:
• f lag1 indica se nel periodo [day1,day2] il titolo T 1 ha avuto almeno p1 giornate con dei volumi di scambio
superiori a val,

• f lag2 indica se nel periodo [day1,day2] il titolo T 2 ha avuto almeno p2 giornate con dei volumi di scambio
superiori a val.

Esercizio 5.6 Scrivere una function MATLAB “es 5 6(T, day1, day2, val1, val2)”, con day1 < day2, che determina
le due seguenti variabili vero/falso f lag1 e f lag2:

• f lag1 indica se nel periodo [day1,day2] il titolo T ha avuto almeno un prezzo di chiusura superiore a val1,
• f lag2 indica se nel periodo [day1,day2] il titolo T ha avuto almeno un prezzo di chiusura inferiore a val2.
La function salva poi le variabili f lag1 e f lag2 in un file denominato “Ris.mat”.

Esercizio 5.7 Scrivere una function MATLAB “lista = es 5 7(T )” che restituisce come output la lista delle
giornate (indici di riga) nelle quali il titolo T ha avuto un prezzo massimo inferiore al 100.45% del prezzo minimo.

Esercizio 5.8 Scrivere una function MATLAB “lista = es 5 8(T )” che restituisce come output la lista delle
giornate (indici di riga) nelle quali il titolo T ha avuto un prezzo massimo superiore al 109% del prezzo minimo.

Esercizio 5.9 Scrivere una function MATLAB “lista = es 5 9(P, day, val)” che preliminarmente suddivide la
tabella P in un array di date D ed in un array di quotazioni Q e successivamente restituisce come output la lista
dei titoli (indici di colonna di Q) che nella giornata day hanno avuto un ribasso percentuale maggiore di val. Nel
caso in cui i dati relativi alla giornata day non siano presenti nella tabella P la function deve assegnare alla variabile
lista il valore “NaN”.

15

Potrebbero piacerti anche