Rilevamento anomalo affidabile in periodi finanziari


16

Sto cercando alcune tecniche robuste per rimuovere valori anomali ed errori (qualunque sia la causa) dai dati finanziari delle serie temporali (ad esempio tickdata).

I dati delle serie temporali tick-by-tick sono molto confusi. Contiene enormi lacune (temporali) quando lo scambio è chiuso e fa enormi salti quando lo scambio si riapre. Quando lo scambio è aperto, tutti i tipi di fattori introducono negoziazioni a livelli di prezzo errati (non si sono verificati) e / o non rappresentativi del mercato (un picco a causa di un'offerta immessa in modo errato o chiedere il prezzo, ad esempio). Questo documento di tickdata.com (PDF) fa un buon lavoro nel delineare il problema, ma offre alcune soluzioni concrete.

La maggior parte dei documenti che posso trovare online che menzionano questo problema o lo ignorano (si presume che i tickdata vengano filtrati) o includano il filtro come parte di un enorme modello di trading che nasconde eventuali utili passaggi di filtro.

Qualcuno è a conoscenza di un lavoro più approfondito in questo settore?

Aggiornamento: questa domanda sembra simile in superficie ma:

  • Le serie temporali finanziarie sono (almeno a livello di tick) non periodiche.
  • L'effetto di apertura è un grosso problema perché non puoi semplicemente usare i dati dell'ultimo giorno come inizializzazione anche se ti piacerebbe davvero (perché altrimenti non hai nulla). Gli eventi esterni potrebbero far sì che l'apertura del nuovo giorno differisca notevolmente sia a livello assoluto che a livello di volatilità rispetto al giorno precedente.
  • Frequenza selvaggiamente irregolare dei dati in arrivo. In prossimità dell'apertura e della chiusura della giornata, la quantità di punti dati al secondo può essere 10 volte superiore alla media durante il giorno. L'altra domanda riguarda i dati regolarmente campionati.
  • I "valori anomali" nei dati finanziari mostrano alcuni schemi specifici che potrebbero essere rilevati con tecniche specifiche non applicabili in altri settori e, in parte, cerco quelle tecniche specifiche.
  • In casi più estremi (ad esempio il crash del flash) gli outlier potrebbero ammontare a oltre il 75% dei dati su intervalli più lunghi (> 10 minuti). Inoltre, la (alta) frequenza dei dati in arrivo contiene alcune informazioni sull'aspetto anomalo della situazione.

1
Non penso che questo sia un duplicato a causa della natura dei dati. Il problema discusso sull'altra domanda riguardava regolarmente serie temporali con valori anomali occasionali (almeno è così che l'ho interpretato). La natura dei dati tick per tick porterebbe a soluzioni diverse a causa dell'effetto di apertura dello scambio.
Rob Hyndman,

possibile duplicato dell'algoritmo semplice per il rilevamento di valori anomali online di una serie storica generica Si propone di chiudere questa domanda come duplicato. Potresti farci sapere al meta thread se e in che modo il tuo contesto è diverso dalla domanda che ho collegato?

@Rob Ma l'effetto di apertura dello scambio determina solo quando è necessario eseguire l'algoritmo. La questione fondamentale rimane la stessa. Anche nei dati di rete si ha l'effetto di apertura dell'ufficio in cui il traffico raggiunge un picco non appena viene aperto un ufficio. Per lo meno, l'OP dovrebbe collegarsi a quella domanda, scansionare le risposte lì e spiegare perché le soluzioni lì non funzionano in modo che una risposta adatta possa essere pubblicata per questa domanda.

1
Sono d'accordo con @Rob. Questo tipo di dati può rappresentare una sfida unica, quindi non è un duplicato.
Shane

1
Penso che appartenga qui. La domanda riguarda l'analisi delle serie temporali spaziate in modo irregolare e molto rumorose. Hai mai visto "Un'introduzione alla finanza ad alta frequenza" di Dacorogna, Olsen e molti altri? O gli articoli degli stessi autori?
Peter R

Risposte:


14

Il problema è decisamente difficile .

Regole meccaniche come i +/- N1 volte deviazioni standard, o + / N2 volte MAD, o +/- N3 IQR o ... verranno a mancare perché ci sono sempre alcune serie che sono diversi come ad esempio:

  • aggiustamenti come il tasso interbancario possono essere costanti per qualche tempo e poi saltare all'improvviso
  • allo stesso modo, ad esempio, per alcuni scambi di valute che escono da una spina
  • alcuni strumenti sono implicitamente spread; questi possono essere vicini allo zero per periodi e all'improvviso una varietà di salti improvvisi

Ci sono stato, l'ho fatto, ... in un precedente lavoro. Potresti provare a raggruppare ogni serie usando navi di relazione di arbitraggio ( ad es. Supponendo che USD / EUR e EUR / JPY siano ritenuti buoni, puoi elaborare bande attorno a ciò che dovrebbe essere USD / JPY; allo stesso modo per i derivati ​​da un sottostante ecc. Pp.

I fornitori di dati commerciali espandono alcuni sforzi su questo, e quelli che sono clienti loro sanno ... non esclude ancora errori.


+1 sì, niente è perfetto. Tickdata.com (di cui viene menzionato il documento) include anche valori anomali e rimuove anche troppi dati validi (se confrontati con un'altra fonte). I dati di Olsen sono quasi terribili e in genere sono solo indicativi. C'è una ragione per cui le banche pagano grandi team operativi per lavorare su questo.
Shane

Mi piace la tua idea sull'uso di relazioni arbitrarie conosciute. hai provato questo nel tuo lavoro precedente?
jilles de wit,

No, non l'abbiamo mai formalizzato completamente. Ma penso che ne abbiamo usati alcuni semplici (cioè ETF vs indice sottostante ecc.). Sono passati alcuni anni.
Dirk Eddelbuettel,

8

Aggiungerò alcuni riferimenti cartacei quando torno a un computer, ma ecco alcuni semplici suggerimenti:

Sicuramente iniziare lavorando con i ritorni. Questo è fondamentale per affrontare la spaziatura irregolare in cui è possibile ottenere naturalmente grandi lacune di prezzo (soprattutto nei fine settimana). Quindi è possibile applicare un semplice filtro per rimuovere i rendimenti ben al di fuori della norma (ad es. Rispetto a un numero elevato di deviazioni standard). I rendimenti si adatteranno al nuovo livello assoluto, quindi grandi cambiamenti reali comporteranno la perdita di un solo tick. Suggerisco di usare un filtro a due passaggi con i rendimenti presi da 1 passaggio e n passaggi per gestire i cluster di valori anomali.

Modifica 1: Per quanto riguarda l'utilizzo dei prezzi piuttosto che i rendimenti: i prezzi delle attività tendono a non essere stazionari, quindi l'IMO che può comportare ulteriori sfide. Per tenere conto dell'irregolarità e degli effetti della legge sul potere, consiglierei un qualche tipo di aggiustamento se si desidera includerli nel filtro. È possibile ridimensionare le variazioni di prezzo in base all'intervallo di tempo o alla volatilità. È possibile fare riferimento alla documentazione "volatilità realizzata" per alcune discussioni al riguardo. Discusso anche in Dacorogna et. al.

Per tenere conto delle variazioni della volatilità, è possibile provare a basare il calcolo della volatilità dalla stessa ora del giorno della settimana passata (utilizzando la stagionalità).


Usando solo i rendimenti diventi molto vulnerabile alle scale (ovvero una sequenza di prezzi che sale o scende dalla norma, dove ogni singolo ritorno è accettabile, ma come gruppo rappresentano un valore anomalo). Idealmente, useresti sia il livello di ritorno che quello assoluto.
jilles de wit,

5

Ho (con qualche ritardo) cambiato la mia risposta per riflettere la tua preoccupazione per la mancanza di "adattabilità" del pazzo / mediana incondizionato.

(μ^t,σ^t)

Xt-μ^tσ^t

Puoi trovare ulteriori informazioni (e un link a un pacchetto R) in questo documento :

Boudt, K. e Croux, C. (2010). Stima M robusta di modelli GARCH multivariati.


Ho provato qualcosa di simile, ma questo metodo non è molto efficace nel gestire bruschi cambiamenti nella volatilità. Questo porta a sottofiltrare in periodi di quiete e sovrafiltrare durante i periodi più occupati.
jilles de wit,

Non capisco questo "Questo porta a sottofiltrare in periodi tranquilli e sovrafiltrare durante i periodi più occupati", spieghi?
user603

In periodi tranquilli la volatilità dei prezzi tende ad essere più bassa, quindi i prezzi più vicini alla media possono essere considerati anomali. Tuttavia, poiché si utilizza MAD per (presumibilmente) un'intera giornata di negoziazione (o anche più a lungo), questi valori anomali si trovano a meno di 3 MAD dalla mediana e non verranno filtrati. È vero il contrario per i periodi di maggiore attività con movimenti dei prezzi più elevati (verranno filtrati i movimenti dei prezzi accettabili). Quindi il problema si riduce alla corretta stima della MAD in ogni momento, che è il problema per cominciare.
jilles de wit,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.