Metodi e modelli per la generazione della serie storica di prezzi

Ricerche e studi condotti nell’ambito della finanza evidenziano che la formazione del prezzo di un’azione è indipendente dal precedente prezzo di mercato dell’azione stessa, e che la corrispondente storia dei prezzi non risulta essere un indicatore affidabile per i prezzi futuri di lungo periodo.
Possiamo affermare che il movimento che caratterizza l’andamento dei prezzi è definibile come un processo stocastico, data la sua natura casuale ed imprevedibile.
Il modello noto come passeggiata aleatoria (Random walk) è il modello base utilizzato per descrivere i movimenti dei prezzi azionari nei principali modelli di gestione del rischio.
Nelle applicazioni economico-finanziarie si utilizzano prevalentemente passeggiate aleatorie. I modelli sofisticati utilizzati in queste applicazioni si ottengono mediante trasformazioni di un modello base di passeggiata aleatoria.


Modello base di passeggiata aleatoria
Data un retta, fissato su un asse un punto origine e, e scelta una unità di misura u, si considerino i punti di ascissa hu con h intero qualunque. Si consideri una particella inizialmente posta nell’origine: per effetto di un primo urto essa si sposta nel punto di ascissa +u1/2 oppure −u1/2; con lo stesso meccanismo, in seguito a un altro urto ritorna all’origine o transita nel punto di ascissa 2u1/2 e così via. La probabilità di uno spostamento a destra è, a ogni passo e indipendentemente dal cammino percorso nei passi precedenti e dal tempo trascorso dall’inizio della passeggiata e uguale alla probabilità di uno spostamento a sinistra, quindi uguale a 1/2. Gli spostamenti avvengono con cadenza regolare a intervalli di ampiezza u.
Dal punto di vista economico, si considera, ad ogni istante di tempo, una scommessa (vinta se il passo è a destra, persa altrimenti) con posta u1/2 . La posizione ad un certo istante di tempo corrisponde allora alla determinazione assunta dalla variabile guadagno cumulato (somma algebrica dei guadagni di ciascuna delle scommesse). Il guadagno cumulato all’epoca, dato da t=nu (dopo n spostamenti) segue una legge binomiale con media 0 e varianza t. Il senso di tale asserzione è che il guadagno cumulato è (2k−n)·u con probabilità pari a quella della vincita di esattamente k scommesse sulle n totali. Per u che tende a 0 e per n che diverge in modo che il prodotto nu sia sempre pari a t, la distribuzione di probabilità del guadagno cumulato converge allora a una distribuzione normale sempre con media 0 e varianza t. In particolare, per t=1 il guadagno cumulato tende a una distribuzione normale standard. Il processo di guadagno cumulato associato ad una passeggiata aleatoria nel continuo è detto Processo di Wiener. Una prima variazione consiste nel modificare la posta di ogni partita moltiplicandola per un coefficiente positivo s, divenendo quindi su1/2. Pertanto la distribuzione limite del guadagno al tempo t ha media 0 e varianza s2t.
Una seconda variazione prevede che vi sia inoltre un guadagno algebrico certo mu (positivo se m>0, negativo in caso contrario). La distribuzione limite del guadagno al tempo t è sempre normale ma ora con media mt e varianza s2t. L’equazione differenziale stocastica che governa tale processo è dG=mdt+sdW, dove con dW si indica il differenziale del processo di Wiener e con dG il differenziale del processo continuo del guadagno cumulato.Tale equazione fu utilizzata da Bachelier per i suoi studi sulle variazioni dei prezzi azionari.La soluzione dell’equazione dell’equazione differenziale, con la condizione iniziale G(0)=0 è il processo aleatorio G(t)=mt+sW(t), dove W è appunto la generica variabile del processo di Wiener.


Moto Browniano
Si tratta di un modello probabilistico ideato per descrivere l’evoluzione nel tempo di fenomeni rilevanti del mondo fisico, come i movimenti nello spazio di particelle immerse in un fluido; ha trovato successivamente grande applicazione anche nelle problematiche di tipo economico-finanziario.
La versione più semplice di moto browniano, usata da L. Bachelier (Théorie de la spéculation, «Annales Scientifiques de l’École Normale Supérieure», 3, 17, 1900) Processo standard di Wiener.
Rappresenta il modello che descrive l’evoluzione nel tempo continuo di una variabile, detta guadagno cumulato, in relazione all’accumulazione di un flusso di guadagni aleatori.
Nella versione continua, il guadagno deriva dall’esito di lanci, ripetuti a intervalli di tempo regolari Δt, di una moneta bilanciata, con posta pari a (Δt)1/2, per cui si vince se esce testa e si perde se esce croce. Il guadagno aleatorio di ogni singolo lancio ha media 0 e varianza Δt. Dopo n lanci indipendenti in un tempo totale T=n Δt, il guadagno totale ha distribuzione distribuzione binomiale di media 0 e varianza T.
Fissato T, al tendere a 0 di Δt, ovvero a infinito di n, tale distribuzione converge a una normale di media nulla e varianza T. La famiglia di tali distribuzioni, al variare di T in R, è detta processo di Wiener standard, processo a incrementi indipendenti su intervalli disgiunti, con valore iniziale W(0)=0 e incrementi Δt che in ogni intervallo di ampiezza Δt sono variabili normali di media 0 e varianza Δt. Dal punto di vista geometrico, si ottiene un grafico continuo ma non derivabile in nessun punto.


Sintassi
La sintassi in Visual Studio per la generazione di una passeggiata aleatoria bidimensionale è la seguente.
Per quanto riguarda le applicazioni finanziarie sarà sufficiente una random walk unidimensionale per la simulazione della serie dei prezzi su un determinato grafico.



Public Class Form1
    Public r As New Random  'generazione variabile casuale'
    Public b As Bitmap
    Public g As Graphics
    Public WithEvents t As New Timer
    Public PosizioneCorrenteParticella As Point
    Public PosizioneFuturaParticella As Point
    Public Passo As Integer = 5
    Public NumeroPassi As Long = 0
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       
        'generazione oggetti per la grafica'
        b = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
        g = Graphics.FromImage(b)
        'avvio timer per animazione'
        t.Interval = 50
        t.Start()
        'Inizializzazione particella
        PosizioneCorrenteParticella = New Point(b.Width / 2, b.Height / 2)
        Me.Label1.Text = NumeroPassi
    End Sub
    Private Sub t_Tick(sender As Object, e As EventArgs) Handles t.Tick
        Me.CalcoloNuovaPosizione()
        Me.Ridisegno()
        'aggiornamento posizione'
        PosizioneCorrenteParticella = PosizioneFuturaParticella
        NumeroPassi += 1
        Me.Label1.Text = NumeroPassi
    End Sub
    Sub CalcoloNuovaPosizione()
        'una di 4 direzioni a caso'
        Dim NumeroCasualeUniforme As Double = r.NextDouble
        Select Case NumeroCasualeUniforme
            Case Is < 0.25 'sinistra'
                PosizioneFuturaParticella = New Point(PosizioneCorrenteParticella.X - Passo, PosizioneCorrenteParticella.Y)
            Case Is < 0.5  'destra'
                PosizioneFuturaParticella = New Point(PosizioneCorrenteParticella.X + Passo, PosizioneCorrenteParticella.Y)
            Case Is < 0.75 'alto'
                PosizioneFuturaParticella = New Point(PosizioneCorrenteParticella.X, PosizioneCorrenteParticella.Y - Passo)
            Case Is < 1 'basso'
                PosizioneFuturaParticella = New Point(PosizioneCorrenteParticella.X, PosizioneCorrenteParticella.Y + Passo)
        End Select
        'barriere riflettenti'
        If PosizioneFuturaParticella.X > b.Width Then PosizioneFuturaParticella.X -= Passo
        If PosizioneFuturaParticella.X < 0 Then PosizioneFuturaParticella.X += Passo
        If PosizioneFuturaParticella.Y > b.Height Then PosizioneFuturaParticella.Y -= Passo
        If PosizioneFuturaParticella.Y < 0 Then PosizioneFuturaParticella.Y += Passo
    End Sub
    Sub Ridisegno()
        Dim penna As New Pen(Brushes.Green, 2)
        g.DrawLine(penna, PosizioneCorrenteParticella, PosizioneFuturaParticella)
        Me.PictureBox1.Image = b
    End Sub

End Class

Commenti

Post popolari in questo blog

Resampling dei dati

Indici di performance di una strategia di trading. Calmar Ratio, Sharpe Ratio, Sortino Ratio

Metodi di calcolo del PNL