Anteprima
Vedrai una selezione di 12 pagine su 53
Valutazione di trading system con Matlab Pag. 1 Valutazione di trading system con Matlab Pag. 2
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 6
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 11
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 16
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 21
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 26
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 31
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 36
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 41
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 46
Anteprima di 12 pagg. su 53.
Scarica il documento per vederlo tutto.
Valutazione di trading system con Matlab Pag. 51
1 su 53
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
paradigm4-stock_thumble.jpg Questo lavoro riguarda l’analisi dei prezzi di chiusura di alcuni indici scaricati dal Yahoo Finanza, in particolare si è fatto riferimento alle quotazioni di Enel. L’esecutore del programma potrà di volta in volta scegliere quale titolo analizzare. I prezzi di chiusura possono essere visti come una serie di dati, denominata serie storica. I dati, ordinate temporalmente, vengono racchiusi in un vettore, su questo vettore si concentrerà l’analisi. Dopo aver sinteticamente descritto le funzionalità di Matlab nel primo e nel secondo capitolo, di valutare la statistica descrittiva nel terzo, il quarto capitolo si occup dell’analisi del trend. Il quinto capitolo riguarda la valutazione del trading system per mezzo di Matlab, il codice creato verrà dettagliatamente spiegato.
INDICE
1. Introduzione a Matlab
Premessa
1.2 Interfaccia di Matlab
1.3 Script di Matlab
2. Come importare i dati su Matlab
2.1 Introduzione
2.2 Importare dati con “copia-incolla”
2.3 Importare dati da foglio Excel
2.4 Importare dati da un file di testo
2.5 Importare dati in formato .csv
2.6 Importare quotazioni storiche dal sito Yahoo
3. Analisi della Statistica descrittiva con Matlab Statistica descrittiva con Matlab Grafici con Matlab
4. Analisi delle Serie Storiche Introduzione Trend
5. Valutazione del Trading System
Introduzione
Calcolo delle Medie Mobili
Esempio di Operatività
Calcolo delle Utilità
Indici di performance
Appendice
Bibliografia
Scarica il lavoro in pdf Valutazione di trading system con Matlab
scarica il file di Matlab
Estratto del documento

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

enel.m

Dalle due immagini si nota che il file riportato è una matrice; si è già

evidenziato in precedenza che il lavoro in oggetto ha l’obiettivo di analizzare un

vettore. Cosa bisogna fare per scomporre la matrice? È semplicissimo:

>>N=A(1,:);

>>B=A(2,:);

>>C=A(3,:);

>>D=A(4,:);

>>E=A(5,:);

dove N è la prima colonna della matrice A; B è la seconda; C la terza e così via.

10

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

2.3 Importare dati da un file di testo

Cosa si può fare se i dati sono riportati in un file di testo e non in un foglio

elettronico excel? Anche in questo caso Matlab fornisce delle soluzioni. Si supponga

che il nome sia “file.txt” generato ovviamente con un programma esterno.

Innanzitutto si apre il file assegnandogli un nome interno, ad esempio nomefile, in

lettura (‘r’ che sta per “read”); il nome del file esterno deve essere posto entro apici

perché è una stinga.

Nomefile= fopen (‘file.txt’,’r’);

Si preleva dall’archivio nomefile la matrice A leggendo, ad esempio, due

colonne di numeri in formato “%g”.

A=fscanf(nomefile, “%g %g”, [2 inf];

A=A’;

Si può notare che si utilizza il nome interno (nomefile); poi il formato(“%g

%g”); e infine il numero di elementi per riga (2) e, non sapendo quante righe ci siano,

si mette inf, il tutto entro parentesi quadre per indicare la matrice da prelevare.

Per ultimo si chiude il file:

fclose (nomefile);

Si riportano, di seguito, i comandi ritenuti più utili:

Æ

aprire fopen(…)

Æ

chiudere fclose(…)

Æ

scrivere fprint(…)

Æ

leggere fscanf(…) 11

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

2.4 Importare dati in formato csv

Per importare ingenti quantità di dati da elaborare su Matlab spesso vengono

utilizzati file con estensione “.csv” (comma separated value). Questi file sono semplici

file di testo con una caratteristica particolare; i loro elementi sono separati da una

virgola o da un punto e virgola. Inoltre i numeri decimali sono inseriti con carattere di

separazione tra la parte intera e la parte decimale, utilizzando il carattere virgola, al

posto dell’anglosassone punto; mentre il carattere di separazione tra gli elementi

risulta essere il punto e virgola.

Potrebbe non sembrare un problema a prima vista, ma immediatamente si

scopre che per Matlab, il punto e virgola e la virgola vengono considerate al pari per

quanto riguarda il formato di file “.csv”, per cui è necessario sostituire tutti i caratteri

virgola con il carattere punto. Aprire i file con un editor di testo e provvedere alla

sostituzione è alquanto scomodo e richiede tempi lunghi soprattutto quando i dati sono

numerosi. Si è ritento opportuno allora creare un breve e semplice script, contenente

una funzione da far eseguire in Matlab, che provvedesse “da solo” a sostituire alla

virgola il punto. Lo script è stato realizzato in linguaggio Java, esso altro non fa che

copiare carattere per carattere un file di un altro file sostituendo la virgola con il punto.

function replaceCommaWithDot(inputFile, outputFile)

fin=java.io.FileInputStream(inputFile)

fout=java.io.FileOutputStream(outputFile)

ii=0;

punto=’.’;

while ii<1

ch=fin.read();

if ch==-1

ii=1;

end

if (ii<1) & ch≈=44

fout.write(ch);

end

if(ii<1) & ch==44 12

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

fout.write (46);

end

end

fin.close();

fout.close();

Occorre precisare che il nome è lo stesso.

Si è visto come sostituire la virgola con il punto, ma non si è ancora in grando

di importare un file “.csv”. Per l’acquisizione di tale file è stata realizzata una funzione

“acqusisci_da_file” che restituisce una struttura di Matlab prendendo in ingresso un

file. Questa struttura, chiamata ad esempio quotazioni (se si ipotizza che i dati da

importare e analizzare siano delle quotazioni), è definita con i seguenti campi, ottenuti

da una selezione di quelli a disposizione nel file scaricato dal sito www.borsaedati.it:

Quotazioni

Tempo datenum tempo in valore assoluto (numero double)

Titolo char nome del titolo quotato in borsa

Valore double valore della quotazione del titolo

Volume double quantità di scambi del titolo

una volta aperto il file sono stati acquisiti i dati con la funzione “textscan” di Matlab in

seguito sono stati inseriti nei campi della struttura quotazioni, grazie ad un ciclo for

che itera per tuta la lunghezza dei dati a disposizione. La funzione è realizzata con lo

script visualizzabile qui:

function quotazioni=acquisisci_da_file(file)

fd=fopen(file);

dati=textscan(fd,’%s%n%s%n%n%n%n%n’,’delimiter’.’;’);

for I=1:size(dati(1),1)

quotazioni(i).tempo=detenum([char(dati{3}(i),’‘,char(dati{4}(i))],’dd/mm/yy

yy HH:MM’);

quotazioni (i).titolo=(char(dati{1}(i));

quotazioni (i).valore=(dati{2}(i));

quotazioni (i).volume=(dati{9}(i));

end

fclose(fd); 13

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

2.5 Importare quotazioni storiche da yahoo

Matlab, con la collaborazione del portale Yahoo, fornisce un’opportunità

importantissima e che velocizza gli operatori che operano sul trading system: è

possibile l’acquisizione dei dati dal web attraverso un sevizio gratuito. Ci si può

facilmente interfacciare con Yahoo utilizzando il seguente script su Matlab:

Connect = yahoo

con tale script si effettua la connessione al server dati di quote.yahoo.com, e si ha la

possibilità di interfacciarsi con il portale per ottenere le quotazioni dei titoli richiesti.

Lo script da utilizzare per disconnettersi è, invece, il seguente:

close(connect)

L’importazione dei dati da internet non conviene se l’acquisizione delle

quotazioni avviene a frequenza di un minuto con ampiezza temporale un giorno.

Bisognerebbe infatti a ogni minuto inviare una richiesta per ogni titolo e durante tutta

la giornata, quindi sarebbero approssimativamente 40 richieste al minuto, per 8 ore.

Nel caso in cui si volesse, però, considerare un altro tipo di analisi di dati queste

funzioni potrebbero essere tenute in considerazione. 14

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

3 Capitolo

Analisi della Statistica descrittiva su Matlab

3.1 Statistica descrittiva su Matlab

Questo capitolo affronta le problematiche relative al calcolo della statistica

descrittiva, sempre attraverso Matlab, della osservazioni storiche scaricate dal sito

internet di Yahoo; si farà, qui, riferimento alle quotazioni della società Enel spa, ma il

discorso è, ovviamente, analogo per qualsiasi altra società.

La statistica descrittiva comprende una serie di calcoli tra cui la media. Come

calcolarla su Matlab? È semplicissimo, caricata la serie di dati in uno dei modi visti in

precedenza, si scrive, per esempio, sul Command Window (in quanto ci fornisce

direttamente il risultato, ma potremmo anche utilizzare l’Editor):

>>mean(enel)

ans =

7.1819

Ma la statistica descrittiva si compone di una serie di valori. Tenendo presente

che il procedimento è il medesimo e l’unica particella che si modifica è “mean”, si

riporta di seguito una tabella con gli indici della statistica descrittiva con la particella

per poterle calcolare; inoltre, la tabella contiene anche i valori scaturiti dall’analisi sui

dati Enel scaricati:

Statistica descrittiva Comando su Matlab Risultato

Media Mean 7.1819

Mediana Median 7.0600

Moda Mode 6.9700 15

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

Deviazione Standard Std 0.4182

Varianza Var 0.1749

Covarianza Cov 0.1749

Valore minimo Min 6.5000

Valore massimo Max 8.3900

2

Kurtosis Kurtosis 3.2292

3

Skewness Skewness 0.9661

3.2 Grafici su Maltab

L’analisi statistica però non si ferma ad individuare gli indici suddetti, ma è

importante anche analizzare il grafico della serie storica. Matlab permette, con un

semplice comando, di creare un diagramma cartesiano che viene visualizzato in una

nuova finestra:

>>plot(enel)

2 L’indice di Kurtosis fornisce informazioni sull’appiattimento, cioè misura la concentrazione o dispersione dei

dati attorno al valore centrale. Se l’indice assume il valore zero, la distribuzione è mesocurtica, se i valori sono

inferiore al valore –3 la distribuzione è detta platicurtica e presenta una forma appiattiva con valori

maggiormente concentrati nelle code, se, infine, l’indice assume i valori maggiori di 3 la distribuzione è

leptocurtica con picco accentuato data dalla concentrazione dei dati intono al valore massimo

3 L’indice di Skewness, o di Pearson, se pari a zero, indica che le osservazioni sono distribuite come una curva

normale di Gauss, dunque c’è simmetria. Se l’indice è minore di zero significa che la serie storica è asimmetrica

negativamente (il valore medio è minore della moda); se invece, è maggiore di zero la serie è asimmetrica

positivamente (il valore medio è maggiore della moda). 16

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

Figura 1: Diagramma cartesiano della serie storica dei prezzi di chiusura della società quotata

Enel spa

Come in quasi tutti i programmi che forniscono grafici, anche in Matlab è

possibile personalizzare la figura inserendo il titolo e il nome degli assi cartesiani. Il

programma consente di fare ciò in due metodi differenti:

♦ Attraverso il “menù” dopo che la figura è stata realizzata. I passaggi

sono: “insert”, “X label” (per inserire il nome dell’ascissa) “Y label” (per

il nome dell’ordinata) e “title” (per il titolo).

♦ Oppure, attraverso il Command Window, o l’Editor, in contemporanea

con la richiesta della creazione del diagramma cartesiano. Si riportano di

seguito alcuni esempi:

o nomeTitolo=Enel

ky=1;

for k=1:size(quotazioni, 2)

if strcmq(Enel, quotazioni(k).titolo)

yy(ky)=quotazioni(k).valore; 17

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

ky=ky+1;

end

end

plot(yy,’-bp’,’MarkerFaceColor’,’r’),

ylabel(‘Valre del titolo(Euro)’),

xlabel(‘Tempo(giorni)’)

title(‘Valore del titolo Enel spa’),

grid on

nel caso in cui si voglia creare un grafico prendendo i valori di un vettore

o che sono inseriti in una matrice:

tit=’inserisci nome titolo’;

ii=4; %riga del titolo

tit=quotazioni (ii).titolo;

ww=QuotMatrix(ii, :) ;

plot(ww,’r’) ;

title([‘Quotazioni del titolo’,tit);

è, inoltre, possibile stampare più titoli in un’unica figura:

o tit=’inserisci nome titolo’;

for ii=1:40 %se i titoli sono 40

tit=quotazioni(ii).titolo;

ww=QuotMatrix(ii,;) ;

subplot(10,4,ii) ;

plot(ww) ;

grid on;

title([‘Quotazioni del titotlo’,tit]);

end

Matlab ti permette, ancora, di inserire alcuni valori della statistica descrittiva

sul diagramma cartesiano. Una volta richiamato il grafico, come è possibile notare

nella figura 1, esiste un menù, cliccando su “tools”, “data statistics” otterremo: 18

Angela Petrosillo Valutazione di trading system con Matlab

…………………………………………………………………………………………………

Figura 2: Diagramma cartesiano della serie storica dei prezzi di chiusura della società quotata

Enel spa con la visualizzazione del Data Statistics

Dettagli
53 pagine