Szukam pewnych niezawodnych technik usuwania wartości odstających i błędów (bez względu na przyczynę) z danych finansowych szeregów czasowych (tj. Tickdata).
Dane finansowe szeregów czasowych od tyknięcia do tyka są bardzo nieporządne. Zawiera ogromne przerwy (czasowe), gdy giełda jest zamknięta, i wykonuje ogromne skoki, gdy giełda ponownie się otwiera. Gdy giełda jest otwarta, wszelkiego rodzaju czynniki wprowadzają transakcje na poziomach cen, które są nieprawidłowe (nie wystąpiły) i / lub nie są reprezentatywne dla rynku (skok z powodu nieprawidłowo wprowadzonej oferty lub ceny sprzedaży). Ten artykuł autorstwa tickdata.com (PDF) dobrze opisuje problem, ale oferuje kilka konkretnych rozwiązań.
Większość dokumentów, które mogę znaleźć w Internecie, które wspominają o tym problemie, albo go ignorują (zakłada się, że tickdata została odfiltrowana), albo zawierają filtrowanie jako część jakiegoś ogromnego modelu handlowego, który ukrywa wszelkie użyteczne kroki filtrowania.
Czy ktoś jest świadomy bardziej dogłębnej pracy w tym obszarze?
Aktualizacja: te pytania wydają się podobne na powierzchni, ale:
- Finansowe szeregi czasowe są (przynajmniej na poziomie tyknięcia) nieokresowe.
- Efekt otwarcia jest dużym problemem, ponieważ nie możesz po prostu użyć danych z ostatniego dnia jako inicjalizacji, nawet jeśli naprawdę tego chcesz (bo inaczej nie masz nic). Zdarzenia zewnętrzne mogą spowodować, że otwarcie nowego dnia będzie się znacznie różnić zarówno pod względem poziomu bezwzględnego, jak i zmienności z poprzedniego dnia.
- Bardzo nieregularna częstotliwość przychodzących danych. Przy otwarciu i zamknięciu dnia ilość punktów danych na sekundę może być 10 razy większa niż średnia w ciągu dnia. Drugie pytanie dotyczy regularnie pobieranych danych.
- „Wartości odstające” w danych finansowych wykazują pewne specyficzne wzorce, które można wykryć za pomocą konkretnych technik, które nie mają zastosowania w innych domenach, a ja częściowo szukam tych konkretnych technik.
- W bardziej ekstremalnych przypadkach (np. Awaria pamięci flash) wartości odstające mogą stanowić ponad 75% danych w dłuższych odstępach czasu (> 10 minut). Ponadto (wysoka) częstotliwość przychodzących danych zawiera pewne informacje o odbiegającym aspekcie sytuacji.
źródło
Odpowiedzi:
Problem jest zdecydowanie trudny .
Mechaniczne zasady Podobnie jak +/- N1 razy odchyleń standardowych, lub + / N2 razy MAD, lub +/- N3 IQR albo ... będzie zawieść bo zawsze są jakieś serie, które są różne, jak na przykład:
Byłem tam, zrobiłem to, ... w poprzedniej pracy. Możesz spróbować uzupełnić każdą serię za pomocą statków relacji arbitrażowych ( np. Zakładając, że USD / EUR i EUR / JPY są uważane za dobre, możesz wypracować przedziały wokół tego, jaka powinna być USD / JPY; podobnie dla instrumentów pochodnych od bazowych itp. Pp.
Dostawcy danych komercyjnych starają się w tym celu, a ci, którzy są ich klientami, wiedzą… nadal nie wyklucza to błędów.
źródło
Dodam referencje w formie papierowej, gdy wrócę do komputera, ale oto kilka prostych sugestii:
Zdecydowanie zacznij od pracy ze zwrotami. Jest to bardzo ważne, aby poradzić sobie z nieregularnymi odstępami, w których można naturalnie uzyskać duże różnice cenowe (szczególnie w weekendy). Następnie możesz zastosować prosty filtr, aby usunąć zwroty znacznie poza normą (np. W porównaniu z dużą liczbą odchyleń standardowych). Zwroty dostosują się do nowego poziomu bezwzględnego, więc duże rzeczywiste zmiany spowodują utratę tylko jednego tiku. Sugeruję użycie filtra dwuprzebiegowego ze zwrotami pobranymi z 1 kroku n kroków, aby poradzić sobie z klastrami wartości odstających.
Edycja 1: Jeśli chodzi o wykorzystanie cen zamiast zwrotów: ceny aktywów zwykle nie są stacjonarne, więc IMO może stanowić dodatkowe wyzwanie. Aby uwzględnić skutki dotyczące nieregularności i mocy, doradziłbym jakąś korektę, jeśli chcesz uwzględnić je w swoim filtrze. Możesz skalować zmiany cen według przedziału czasu lub według zmienności. Możesz odnieść się do literatury „zrealizowanej zmienności” w celu omówienia tego. Omówiono także w Dacorogna i in. glin.
Aby uwzględnić zmiany zmienności, możesz spróbować oprzeć obliczenia zmienności o tej samej porze dnia w ciągu ostatniego tygodnia (wykorzystując sezonowość).
źródło
Zmieniłem (z pewnym opóźnieniem) moją odpowiedź, aby wyrazić twoje obawy związane z brakiem „możliwości dostosowania” bezwarunkowego wariata / mediany.
Możesz znaleźć więcej informacji (i link do pakietu R) w tym dokumencie :
źródło