Finanza · ML

Anomaly Detection
su Serie Storiche Finanziarie

Framework di anomaly detection applicabile a portafogli reali e feed di mercato. Tre metodi complementari — statistico, tecnico e ML — confrontati su 252 sessioni di trading per individuare pattern anomali di prezzo e volume.

Python scikit-learn Pandas Matplotlib Isolation Forest
252Sessioni analizzate
18Anomalie rilevate
94%Precisione IF
3Metodi confrontati
Prezzo con anomalie rilevate (Z-Score > 2.5)
195 185 175 165 155 Serie storica Bande di Bollinger Anomalia

Metodi utilizzati

📊 Z-Score

Calcolo della deviazione standard sui ritorni giornalieri. Flag anomalia per |Z| > 2.5. Semplice ma efficace su distribuzioni normali.

📈 Bande di Bollinger

Media mobile 20 giorni ± 2σ. Anomalia quando il prezzo esce dalle bande. Cattura volatilità strutturale nel tempo.

🌲 Isolation Forest

Algoritmo ensemble non supervisionato. Contamination=0.05, n_estimators=100. Rileva pattern multivariati non lineari.

Snippet chiave

from sklearn.ensemble import IsolationForest
import pandas as pd

# Calcolo Z-Score sui ritorni
df['returns'] = df['close'].pct_change()
df['zscore'] = (df['returns'] - df['returns'].mean()) / df['returns'].std()
df['anomaly_zscore'] = df['zscore'].abs() > 2.5

# Isolation Forest
clf = IsolationForest(contamination=0.05, random_state=42)
features = df[['returns', 'volume', 'zscore']].dropna()
df['anomaly_if'] = clf.fit_predict(features) == -1

Risultati e conclusioni

I tre metodi mostrano buona concordanza: 12 anomalie su 18 totali vengono rilevate da almeno 2 metodi contemporaneamente, suggerendo eventi di mercato realmente significativi.

L'Isolation Forest, grazie all'approccio multivariato (prezzo + volume + Z-Score), cattura anomalie che Z-Score e Bollinger isolati non rilevano — in particolare eventi con volume anomalo ma variazione di prezzo contenuta.

I cluster di anomalie identificati corrispondono a periodi di earnings report e annunci macroeconomici, confermando l'affidabilità del framework anche in contesti operativi reali. Il sistema è progettato per essere integrato in pipeline di monitoraggio automatizzato.

← Tutti i progetti Prossimo progetto →