giovedì 3 aprile 2014

Random walk ed analisi delle serie storiche

Molti approcci statistici suggeriscono che, avendo a disposizione una serie storica di prezzi registrati sul mercato azionario, sia possibile prevedere il loro andamento futuro, costruendo un modello basato sulle osservazioni registrate sino a quel momento. Teorie probabilistiche alternative ipotizzano, al contrario, che i prezzi siano soggetti ad un moto del tutto casuale, che renda impossibile qualsivoglia tipo di previsione.

La random walk hypothesis è una teoria finanziaria secondo cui i prezzi del mercato azionario si evolvono secondo quella che, nell'ambito della teoria della probabilità, è chiamata passeggiata aleatoria (random walk): si tratta di un processo stocastico in cui si ipotizza che una particella si muova esclusivamente in due direzioni, con probabilità prefissate, in maniera del tutto casuale; il termine random walk deriva dal titolo del celebre testo di Burton Malkiel, professore di economia alla Princeton University, "A random walk down Wall Street", pubblicato nel 1973. La random walk hypothesis risulta comunque una teoria coerente con l'assunzione di mercati efficienti (efficient-market hypothesis - EMH), secondo la quale un investitore non può formulare una strategia di trading che gli permetta di acquistare strumenti finanziari, quali azioni, valute o future, ottenendo un rendimento atteso superiore a quello del mercato, e questo a prescindere dalle informazioni di cui dispone.

Un secondo approccio è quello basato sul concetto di moto browniano geometrico (geometric brownian motion - GBM), un processo stocastico in tempo continuo in cui si ipotizza che il logaritmo dei prezzi di mercato segua un moto browniano. Con questo termine si fa riferimento al moto disordinato con cui si muovono delle particelle, nella formulazione originaria presenti nei fluidi o nelle sospensioni fluide.
In modelli di questo tipo, detti di Black-Scholes, si ipotizza che:
  •  i rendimenti attesi delle azioni di interesse siano indipendenti dai prezzi di tali strumenti finanziari registrati nei diversi periodi;
  • il processo assuma solamente valori positivi, non potendo ovviamente essere i prezzi reali minori di zero.
In realtà continuano ad essere presenti aspetti non troppo realistici:
  • la volatilità, ossia la variazione nel tempo dei titoli azionari, è assunta costante, mentre risulterebbe più opportuno considerarla variabile nel tempo;
  • questi modelli implicano l'ipotesi di normalità dei rendimenti, non sempre soddisfatta dato che essi, solitamente, presentano una maggiore curtosi, ovvero code più "grasse" rispetto a quelle della gaussiana; inoltre la distribuzione è generalmente asimetrica negativamente.




Al fine di simulare un andamento casuale dei prezzi, riportiamo di seguito un algoritmo costruito per simulare una serie storia in cui, a partire da un prezzo iniziale pari a 100, si registrino aumenti e diminuzioni del tutto aleatori in corrispondenza dei periodi successivi. Questo meccanismo è ottenuto generando valori casuali compresi tra 0 ed 1 ed imponendo che:
  • ogni qual volta il valore generato sia minore di 0.5, il prezzo corrente subisca un incremento di una unità:
  • nel caso contrario, questo subisca una riduzione pari ad 1.
Vengono creati dunque una casella di testo, che conterrà i valori ottenuti, ad ogni step, relativi al prezzo azionario simulato, ed un bottone, cui saranno associati i comandi:




Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim R As New Random
        Dim PrezzoIniziale As Decimal = 100
        Dim Incremento As Decimal = 1
        Dim PrezzoCorrente As Double = PrezzoIniziale

        For i = 1 To 100
            If R.NextDouble < 0.5 Then
                PrezzoCorrente += Incremento
            Else PrezzoCorrente -= Incremento
                RichTextBox1.AppendText(PrezzoCorrente.ToString("#.##") & vbCrLf)


            End If

        Next



    End Sub
End Class




Cliccando sul bottone sarà quindi possibile visualizzare gli aumenti e decrementi simulati dall'algoritmo ad ogni step.

(Fonte: Wikipedia)

Nessun commento:

Posta un commento