% Scaricare dal sito di Yahoo le quotazioni di poste italiane alla borsa
% valore di Milano
% % https://it.finance.yahoo.com/quote/PST.MI/history?p=PST.MI
%
% Se si scarica il file direttamente dal sito l'output è in formato csv
% Ad esempio PST.MI.csv
%
% il file in formato xlsx è nel sito con il nome PSTMI.xlsx.
%
% Guardare in preview il contenuto del file 
% Importare il file come timetable nella variabile Y
% Costruire il grafico a candele Giapponesi per l'intero periodo
% Costruire il grafico a candele Giapponesi con riferimento alle 
% osservazioni specificate in una variabile chiamata seltime.
% Assegnare a seltime l'indicazione delle prime 20 osservazioni.
% Costruire il grafico high-low, prezzo-volume e kagi con riferimento alle osservazioni in
% seltime della serie storica
% Quale grafico preferite tra tutti quelli visti finora? 
% Sentitetivi liberi di mandarmi una mail con le vostre preferenze.

%
%% Soluzione

nomefile='PSTMI.xlsx';


% Guardare in preview il contenuto del file 
opts = detectImportOptions(nomefile);
preview(nomefile,opts)

%
%% Caricamento file dentro MATLAB

Y=readtimetable(nomefile);
% Per veriricare che il file è stato caricato correttamente faccio il
% preview delle prime 8 righe
head(Y)

%
%% Costruire il grafico candlestick per l'intero periodo.
% Le colonne 5, 6 del dataset vengono ignorate Andava bene anche l'istruzione candle(Y(:,1:4))

figure
candle(Y)

%
%% I grafici che seguono si riferiscono al sottoperiodo denominato seltime

seltime=1:20;

%
%% Grafico a candele Giapponesi delle osservazioni dentro seltime

figure
candle(Y(seltime,:))

%%
%% Grafico highlow delle osservazioni dentro seltime

figure
highlow(Y(seltime,:),'b');
title('High low plot')

%
%% Prezzo e volume delle osservazioni dentro seltime

figure
Y1=Y(:,{'Open', 'High' 'Low' 'Close' 'Volume'});
priceandvol(Y1(seltime,:))
% Si noti che utilizzo l'istruzione sgtitle invece di title per inserire il
% titolo in alto e non sopra il secondo subplot.
sgtitle('Prezzo e volume plot')

%
% La funzione kagi effettua il plot della variabile denominata Price quando l'input è una timetable. Di conseguenza andiamo a rinominare il prezzo di chiusura "Price"

figure
Yc=Y;
Yc.Properties.VariableNames{'Close'} = 'Price';
kagi(Yc(seltime,:))
title('kagi plot del prezzo di chiusura')