mercoledì 5 dicembre 2012

MEDIE MOBILI

MEDIE MOBILI APPLICATE A PREZZI DI AZIONI

Le medie mobili (moving average) sono uno strumento per depurare i prezzi dagli elementi erratici (rumore di fondo). Stimano il ciclo trend attraverso trasformazioni (filtri) lineari della serie, che hanno lo scopo di annullare l’effetto delle altre componenti per evidenziare il trend.
dove:

m1 è il numero dei periodi precedenti t;
m2 è il numero dei periodi successivi a t;
θi è un peso attribuito agli m1 + m2 + 1 termini della somma;
k = m1 + m2 + 1 è il periodo o l'ordine della media mobile.
Una media mobile viene detta

semplice se i pesi θi sono tutti uguali a 1 / k (in tal caso, si tratta di una normale media aritmetica);
centrata se m1 = m2;
simmetrica se centrata e se θi − m = θi + m per ogni   compreso tra 1 e m1 = m2.
Quanti più elementi sono presenti nella serie storica alla quale la Media Mobile è applicata, tanto meno reattiva sarà la media (ad esempio una media mobile a 20 periodi è più reattiva di una media mobile a 60 periodi). Uno strategia molto utilizzata è il crossover tra due medie mobili (crossover doppio) o tra tre medie mobili (crossover triplo).
Nel caso del crossover tra due medie mobili:
Il segnale di acquisto (B=buy) si ha quando la media mobile più veloce incrocia al rialzo la media mobile più lenta.
Il segnale di vendita (S=sell) si ha quando la media mobile più veloce incrocia al ribasso la media mobile più lenta.
La media mobile è, quindi, un indicatore usato molto spesso in analisi tecnica per mostrare il valore medio di un prezzo in un certo periodo di tempo.
La media mobile dei valori è utile dal punto di vista grafico per mettere in rilievo la direzione di un trend, attenuando le fluttuazioni del prezzo che possono confondere il trader nell'interpretazione del grafico.
Il termine media mobile deriva dal fatto che il numero di osservazioni rimane costante nel tempo e che l'aggiornamento del valore della media avviene alimentando l'algoritmo con l'introduzione del dato più recente con l'eliminazione del valore più vecchio che rientrava nel calcolo relativo al giorno precedente, in caso di rilevazioni giornaliere. Le medie mobili si suddividono in medie mobili semplici e medie mobili ponderate. Le medie mobili semplici si costruiscono sommando i dati di chiusura per un periodo variabile a propria scelta, si divide il risultato ottenuto per il numero di giorni considerati. Le medie mobili ponderate si calcolano assegnando un peso maggiore ai dati più recenti con una ponderazione aritmetica.
La formula generale per la compilazione della media mobile è la seguente:
Mt = (Pt + Pt-1 + Pt-2 + .....+ Pt-n+1) / n
Mt = valore della media mobile al tempo t.
P = prezzo o valore dell'indice di riferimento.
n = numero delle osservazioni (ampiezza della media mobile).
La formula per procedere all'aggiornamento è la seguente:
Mt+1 = Mt + ((Pt+1 - Pt-n+1) / n)
Mt+1 = Valore della media mobile dell'ultimo giorno.
Questo tipo di funzione tende a smorzare l' erraticità dei prezzi e questo effetto è tanto più evidente quanto maggiore è la media mobile. La sua rappresentazione grafica è una curva che segue la linea dei prezzi con un andamento più regolare eliminando i "rumori" .Uno tra i principali obiettivi che ci si pone con l'utilizzazione di questo algoritmo è proprio quello di eliminare gli elementi casuali che entrano nella formazione del prezzo, provocando delle esasperazioni nei movimenti.
Trend
Moving Average
Molto corto
5-13 Giorni
Corto
14-25 Giorni
Medio
26-49 Giorni
Medio Lungo
50-100 Giorni
Molto Lungo
100-200 Giorni

Media mobile semplice:
Questa media mobile è calcolata sommando un determinato numero di prezzi di chiusura recenti e dividendo il totale per il numero di selezioni effettuate. Per chiarire meglio, sommando gli ultimi 20 prezzi di chiusura di un titolo e dividendo il totale per 20, si otterrà la media mobile a 20 giorni. Su un grafico, questo calcolo è eseguito per ciascun periodo indicato sullo stesso.
Media mobile esponenziale:
Una media mobile esponenziale differisce da quella "semplice" in quanto attribuisce maggior peso ai dati più recenti.
Sono disponibili sei differenti periodi per entrambe le tipologia di media mobile (a 5, 10, 20, 50, 100 e 200 giorni).
Come sappiamo esistono grosso modo tre tipi di medie mobili: aritmetica, ponderata ed esponenziale. La media più usata in assoluto rimane sempre la media aritmetica, anche se l’esponenziale sta prendendo sempre più piede, tanto che anche nella costruzione dei più comuni oscillatori la media che ha dato i migliori risultati operativi è quella esponenziale, infatti in ambito algoritmico è sempre la più utilizzata.
Spesso comunque, indipendentemente dal tipo le medie mobili possono dare dei falsi segnali operativi. Ma esiste un sistema per rendere la media mobile, non infallibile, ma quasi. Si tratta di accostare alla media
PROGRAMMAZIONE

La funzione che calcola la media mobile è costruita seguendo la logica di un raggio k secondo la quale contiamo k termini a sinistra e k termini a destra del valore centrale.

 


martedì 4 dicembre 2012

SERIE STORICHE

Serie storiche
In statistica, una serie storica (o temporale) si definisce come un insieme di variabili casuali ordinate rispetto al tempo, ed esprime la dinamica di un certo fenomeno nel tempo. Le serie storiche vengono studiate sia per interpretare un fenomeno, individuando componenti di trend, di ciclicità, di stagionalità e/o di accidentalità, sia per prevedere il suo andamento futuro.
In generale, per serie si intende la classificazione di diverse osservazioni di un fenomeno rispetto ad un carattere qualitativo. Se tale carattere è il tempo, la serie viene detta storica o temporale.
Il fenomeno osservato, detto variabile, può essere osservato in dati istanti di tempo (variabile di stato: numero dei dipendenti di un'azienda, quotazione di chiusura di un titolo negoziato in borsa, livello di un tasso di interesse ecc.) o alla fine di periodi di lunghezza definita (variabili di flusso: vendite annuali di un'azienda, PIL trimestrale ecc.).
Indicando con Y il fenomeno, si indica con Yt un'osservazione al tempo t, potendo t variare da 1 a T, dove T è il numero complessivo degli intervalli o dei periodi temporali considerati.
In generale una serie storica è così definita yt={y1,y2,y3,....,yT};la serie storica avrà dimensione T.
Titoli azionari
AZIONI, CIOE' PEZZI DI IMPRESA
Che Cosa sono le azioni o Titoli Azionari?
Cosa sono e come funzionano questi valori che ci consentono di guadagnare denaro investendo sui prodotti più vari, magari proprio su quelli che consumiamo e usiamo tutti i giorni, dal dentifricio all'automobile?
Un titolo azionario altro non è che un certificato che fa diventare il suo possessore socio di una determinata società. Le azioni, che rappresentano una parte del capitale sociale di un'impresa, danno al titolare una serie di diritti: diritto alla partecipazione agli utili (dividendo), diritto di partecipare agli aumenti di capitale sottoscrivendo nuove azioni o di acquistare obbligazioni convertibili di nuova emissione, diritto di partecipare all'assemblea degli azionisti esercitando il diritto di voto che è proporzionale al numero di azioni possedute.
Il trading per eccellenza si effettua sui titoli azionari. Del resto possono dare ottime soddisfazioni così come grandi delusioni. Ma forse sta proprio in questo il fascino che cattura tantissimi investitori e ormai in larga parte anche piccoli investitori.
Soprattutto con i titoli azionari viene fuori l'emotività degli investitori e del mercato stesso. Per questo risulta importante identificare quei titoli che danno maggiori chance di profitto.
Non si direbbe ma ogni titolo ha un suo "stile" di movimento caratteristico, quindi riuscire ad identificarlo ci permette di scegliere i migliori di ogni paniere, sui quali operare. Non devo operare su di un titolo perché mi piace la società che ci sta dietro o perché me lo hanno consigliato. Naturalmente questo criterio è perseguibile solo se si hanno a disposizione le serie storiche dei titoli o dei grafici di almeno un paio di anni.
Generazione di numeri casuali
Con VB.NET per generare numeri pseudo-casuali si utilizza la classe Random, che produce una sequenza di numeri che soddisfano determinati requisiti statistici di casualità.
Utilizzare un calcolatore, che è un oggetto puramente deterministico e quindi prevedibile, per generare un numero casuale e quindi imprevedibile sembra essere problematico. In effetti nessun calcolatore è in grado di generare numeri puramente casuali, ma solo numeri pseudo – casuali ossia numeri generati da algoritmi numerici deterministici in grado di superare una serie di test statistici che conferiscono a tali numeri un’apparente casualità. L’algoritmo restituisce una sequenza di valori che dipendono da un numero specificato, detto seme della sequenza, caricato nel generatore stesso. Il seme viene poi trasformato per ottenere il primo valore della sequenza, e applicando la stessa trasformazione si ottiene il valore successivo della sequenza, e così via.
Se lo stesso valore di inizializzazione è utilizzato ripetutamente, viene generata la stessa serie di numeri, perché anche le operazioni matematiche sono uguali. Un modo per produrre sequenze diverse consiste nel rendere il valore di inizializzazione dipendente da un fattore temporale, producendo così una diversa serie a ogni nuova istanza di Random. Per impostazione predefinita, il costruttore senza parametri della classe Random utilizza il clock di sistema (ossia l’ora corrente del giorno) per generare il valore di inizializzazione, ma è possibile passare un valore di base come argomento inserendolo tra parentesi dopo New Random. È meglio utilizzare l’ora corrente come valore di base, perché è molto probabile che cambi l’istante di tempo ogni volta che creiamo un oggetto Random.
Tuttavia, poiché il clock ha una risoluzione limitata, l’utilizzo del costruttore senza parametri per creare oggetti Random diversi in stretta successione dà origine a generatori di numeri casuali che producono sequenze identiche di numeri casuali. Questo problema può essere evitato creando un unico oggetto Random che generi molti numeri casuali nel tempo, anziché creare ripetutamente nuovi oggetti Random che generino un solo numero casuale.
Si possono generare numeri pseudo – casuali aventi diverse distribuzioni (ossia ogni numero ha una determinata probabilità di cadere in un dato intervallo). Ad esempio si possono generare numeri distribuiti in modo uniforme se in tale distribuzione ogni numero in un dato intervallo ha la stessa probabilità di essere selezionato.
 
Programmazione
 
Genera una sequenza di numeri casuali per i prezzi bid e ask, prezzo a cui posso vendere e a cui posso comprare, al variare del tempo. Riporto il risultato su un grafico ottenendo una serie storica dei prezzi nel tempo.

http://martinaroma.blogspot.it/p/esercizi.html (ESERCIZIO 4)
https://www.box.com/s/s8rierzv101n6ja40a7f




mercoledì 10 ottobre 2012

SCARTO QUADRATICO MEDIO

La Deviazione Standard
La deviazione standard o scarto tipo  o scarto quadratico medio è un indice statistico che consente di misurare la dispersione delle singole osservazioni intorno alla media aritmetica.
La deviazione standard è semplicemente la radice quadrata della varianza, la quale viene coerentemente rappresentata con il quadrato di sigma (σ²).

 
File:Standard deviation illustration.gif 

         



  • "<x>" è la media aritmetica
·         "xi" è il singolo valore che assume il fenomeno da valutare;


ALGORITMO

Di seguito viene presentato un semplice algoritmo per calcolare lo scarto quadratico medio:

1
Inizio

2
Assegna I = 0
V(n)
Assegna e inizializza a 0 il valore dell’indice I; Definisce un vettore V di n elementi
3
Esegui Randomize
Inizializzazione del valore di randomizzazione
4
Immetti il valore di INF, SUP
Richiesta del valore inferiore e del valore superiore degli n valori da generare
5
Calcola I = I + 1
Incrementa il contatore I
6
Calcola
N = int((SUP – INF + 1)*Rnd + INF)
Genera il numero casuale fra gli estremi forniti
7
Assegna V(I) = N
“Scrive” il numero generato nell’I-esimo elemento del vettore V (I incrementato - passo 5 - per ogni numero generato)
8
Calcola T = T + N
Somma i valori generati per calcolare la media (passo 10) dopo aver generato, tramite un ciclo iterativo controllato al passo 9, gli n valori richiesti
9
Se I < 100 vai al punto 5 altrimenti prosegui
10
Calcola M = int(T/100)
11
Assegna I = 0
Azzeramento dell’indice I per poter effettuare la lettura del vettore V e calcolare, (al passo 13) lo scarto fra i singoli valori e la media calcolata al passo 10
12
Calcola I = I + 1
13
Calcola S = V(I) - M
14
Calcola TS = TS + (S * S)
Somma degli scarti quadratici
15
Se I < n  vai al punto 12 altrimenti prosegui

16
Calcola SQ = int(Sqr(TS / n))
Calcolo dello scarto quadratico medio dopo aver letto gli n valori dal vettore V
17
Stampa
SCARTO QUADRATICO MEDIO

18
Fine


LEGGENDA:
Randomize= inizializzazione valore di randomizzazione;
Rnd = random (restituisce un numero maggiore o uguale a zero e minore di 1);
int = intero;
Sqr=radice quadrata
Cancellazione numerica
La conseguenza più grave della rappresentazione con precisione finita dei numeri reali è
senza dubbio il fenomeno della cancellazione numerica, ovvero la perdita di cifre significative
dovuta ad operazioni di sottrazione quando il risultato è più piccolo di ciascuno dei due operandi; questo fenomeno si verifica quando i due operandi sono “quasi uguali” ed è anche conosciuto come Catastrophical cancellation.

ESEMPIO:
Abbiamo i seguenti due numeri reali:
Supponiamo che l'architettura del calcolatore ci permetta di memorizzare solo le prime 6 cifre dopo la virgola, quindi i due numeri per essere rappresentati all'interno del calcolatore, verrebbero troncati (supponiamo per semplicità mediante chopping) appena dopo la sesta cifra:

Effettuando la sottrazione e riscrivendo il risultato nella notazione floating point, si ha:

Mentre il risultato reale è pari a: 0.00000123.