Un processo aleatorio definisce una successione di variabili casuali. Vengono utilizzate nell’ambito finanziario per modellizzare l’andamento di fenomeni di interesse
come prezzi e quantità scambiate. Quali sono i tipi di processi aleatori? Il caso più semplice di processo aleatorio è rappresentato dalla Trading Strategy (insieme o algoritmo di regole prefissate per vendere o acquistare lotti di un certo strumento finanziario di cui i più importanti sono CME e Globex). Gli strumenti principali sono le azioni (o stock), i Futures, le ETF, le Stock Option e le Future Options. Da un punto di vista della programmazione matematica la trattazione può essere fatta in modo uniforme (la categorizzazione ha più senso in campo economico piuttosto che matematico). Qualunque sia lo strumento finanziario che stiamo studiando può essere visto come un processo aleatorio parametrizzato rispetto al tempo e che ad un certo
istante t assumerà un certo prezzo P(t). Possiamo suddividere i processi in discreti e continui a seconda di come voglio considerare l’andamento del tempo. Supponiamo di aver ideato una Trading Strategy: ora nasce la necessità di testare questa strategia e vedere come si comporta per quanto riguarda profitti e perdite. Per fare ciò possiamo usare dati del passato (si parla quindi di Back Test), dati simulati (e cioè creare un processo aleatorio, generati dal computer) oppure usare il Forward Testing (dati reali ma transazioni simulate). Quando andiamo a simulare una sequenza di prezzi è sempre necessario considerare le due sequenze di prezzo più o meno parallele di Bid e Ask.
Modellizzazione del prezzo
Da un punto di vista pratico il prezzo Ask è quello applicato quando compriamo un certo numero di azioni. Se allo stesso tempo qualcuno venderà il nostro stesso strumento finanziario dovrà tenere in considerazione il prezzo Bid. Il prezzo Spread equivale alla differenza tra prezzo ask e bid (rappresenta la remunerazione del mercato). Altra caratteristica importante è che il prezzo si muove su intervalli definiti (il prezzo varia con salti finiti): si parla quindi di minima variazione di prezzo di uno strumento finanziario con il termine Tick. Ad ogni istante le curve Bid e Ask sono sostanzialmente costituite da gradini pari all’incremento minimo di prezzo che è possibile per quel certo strumento. Per intervalli temporali molto ampi non vedremo più la microstructure ma osserveremo un andamento più curvilineo. In conclusione avremo tempi e prezzi discreti. L’equivalente del Tick (utilizzato per le azioni) è
il Pip (per gli scambi in euro, dollari,..). Quello che ci interessa è la generazione di fenomeni aleatori che possano simulare il fenomeno di interesse come la variazione del prezzo. Per prima cosa dobbiamo considerare tempi discreti e per ogni tempo t devo generare due curve Ask e Bid. queste curve generano uno spread aleatorio e da un certo t al successivo t+1 ci muoveremo ad incrementi fissati (Tick o Pip). Ovviamente i tempi sono relativi alla disponibilità dei dati.
Simulazione della strategia
Il primo passo consiste nel generare il processo aleatorio che rappresenta il nostro prezzo. Su questa serie andremo a plottare gli ordini che dipendono dalle regole
(Trading Strategy) con cui voglio fare questo ordine. In seguito dovremo generare le curve di Ask e Bid da cui deriva lo Spread , mediante l’applicazione della
strategia, potremo calcolare il PnL (profit and loss) e altri parametri di interesse.
Il Pnl è una funzione dei prezzi correnti. Supponiamo di aver comprato una quantità Q al prezzo Pb e di averlo poi venduto ad un tempo successivo al prezzo Ps.
Il Pnl assume dunque valore pari a Q*(Ps-Pb) e può essere positivo (profit) o negativo (loss). Alcuni strumenti finanziari come i Futures hanno anche un altro par che modifica
la perdita e il profitto, il moltiplicatore, che va a moltiplicare la formala standard del Pnl.
Random Walk
Per generare una random walk dobbiamo stabilire dei punti di partenza: supponiamo, quindi di avere uno Stock Exchage o un file csv che ci fornisce un flusso di dati
ma, poiché noi siamo interessati alla generazione, ricorreremo alla creazione dei dati mediante un generatore di un processo aleatorio che a sua volta userà un generatore di numeri pseudo casuali. Questi dati saranno il tempo a cui il dato arriva, un prezzo Bid e Ask. Noi dovremo generare tutti e tre questi elementi tenendo a mente il vincolo del Tick (minimo incremento di prezzo) che potrà essere positivo o negativo. Quindi potremo usare un processo di Bernoulli per determinare questo salto verso l’alto (con probabilità p) o il basso (con probabilità 1-p) quando passo dal tempo t al tempo t+1.