Alcuni indicatori: Moving Mean, Running Mean, Running Variance

Moving Mean
Con il termine “moving mean” (media mobile) si indica uno strumento costruito per l’analisi delle serie storiche. In ambito economico le medie mobili vengono utilizzate nell’analisi tecnica, in cui si studia l’andamento dei prezzi dei mercati finanziari e consentono infatti ai trader di capire qual è l’andamento dei prezzi nel corso del tempo. Questi indicatori smorzano l’andamento delle osservazioni e rappresentano un andamento “di fondo”, privo di rumore. Esistono molti tipi di medie mobili, ognuna con i suoi pro/contro. Qui facciamo l’esempio della media mobile semplice, che può essere calcolata con la seguente formula:



Con questa formula possiamo calcolare una media mobile a K termini partendo dall’istante t.

Running Mean e Running Variance

Stiamo parlando di due indicatori che consentono di aggiornare media e varianza di una lista di osservazioni man mano che nuovi valori si aggiungono ai dati considerati, pensiamo ad esempio alla ricezione di prezzi in tempo reale. I due indicatori possono essere calcolati con le seguenti formule ricorsive




Vediamone la sintassi in VB.net in cui si calcola running mean e running variance di una serie storica di prezzi:
Mostriamo un codice VB.NET che implementa il calcolo della running mean e della running variance.



'RUNNING MEAN & RUNNING VARIANCE- PREZZO BID

ListaRunningMean = New List(Of SingolaOss)
ListaRunningVariance = New List(Of SingolaOss)

Dim RunningMean As Decimal = 0
Dim RunningMean_PassoPrecedente As Decimal = 0
Dim RunningVariance As Decimal = 0
Dim RunningVariance_PassoPrecedente As Decimal = 0
Dim Passo As Integer = 0

For Each oss As SingolaOss In ListaBID
Passo += 1
RunningMean = RunningMean_PassoPrecedente + (oss.Prezzo - RunningMean_PassoPrecedente) / Passo
RunningVariance = RunningVariance_PassoPrecedente + (oss.Prezzo - RunningMean_PassoPrecedente) * (oss.Prezzo - RunningMean)

Dim OsservazioneMedia As New SingolaOss
With OsservazioneMedia
.Istante = oss.Istante
.Prezzo = RunningMean
End With

Me.RichTextBox1.AppendText("prices:" & oss.Prezzo & "mean:" & Math.Round(RunningMean, 2) & "var:" & Math.Round(RunningVariance, 6) & Environment.NewLine)

Dim OsservazioneVarianza As New SingolaOss
With OsservazioneVarianza
.Istante = oss.Istante
.Prezzo = RunningVariance
End With

ListaRunningMean.Add(OsservazioneMedia)
ListaRunningVariance.Add(OsservazioneVarianza)

RunningMean_PassoPrecedente = RunningMean
RunningVariance_PassoPrecedente = RunningVariance

Next

Commenti

Post popolari in questo blog

Resampling dei dati

Metodi di calcolo del PNL

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