PatchTST, kwantyle i prognozy probabilistyczne na świecach minutowych

Świece minutowe podzielone na patche, transformer i wachlarz kwantyli.

Prognoza bez przedziału nie jest wynikiem. Nasz zespół badawczy trenuje transformery patchowe na świecach minutowych i raportuje kwantyle, bo pojedyncza przewidziana cena ukrywa to, co najważniejsze: skalę możliwego błędu.

Dane, na których pracujemy

Kolektor zapisuje zamknięte świece 1-minutowe OHLCV w TimescaleDB. O tym, czego model może się nauczyć, decyduje pięć cech:

  • tylko zamknięte świece, zapisujemy je po oznaczeniu przez giełdę jako potwierdzone;
  • dokładne liczby dziesiętne, ceny trafiają do kolumn numeric i nie przechodzą przez typy zmiennoprzecinkowe;
  • idempotentny zapis, klucz główny (source_id, ts) uniemożliwia duplikaty i ciche nadpisanie historii;
  • prawdziwe luki, żadna sztuczna świeca nie wypełnia weekendu, zawieszenia notowań ani awarii;
  • zapisane opóźnienie publikacji, 15 minut dla akcji z USA, zero dla spotu krypto.

Katalog zamawia pięć lat historii minutowej dla każdego instrumentu: krypto, akcje, opcje, indeksy i kontrakty terminowe.

Dlaczego PatchTST pasuje do danych minutowych

PatchTST dzieli szereg na patche pełniące rolę tokenów i traktuje każdy kanał niezależnie, zgodnie z oryginalną publikacją. Mają z tego wynikać dwie korzyści:

  • kontekst 512 minut kosztuje znacznie mniej uwagi niż 512 pojedynczych punktów;
  • jeden zestaw wag obsługuje tysiące instrumentów bez mieszania ich skal.

W Pythonie PatchTSTForPrediction przyjmuje past_values oraz past_observed_mask, więc nasze prawdziwe luki pozostają oznaczone jako brak danych, zamiast zostać po cichu zinterpolowane.

Kwantyle zamiast jednej liczby

Trenujemy głowice kwantylowe funkcją pinball albo używamy głowicy rozkładu z ujemną log-wiarygodnością i losujemy 100 ścieżek, z których odczytujemy kwantyle. Wynik rządzi się czterema zasadami:

Zasada Sprawdzenie
Publikuj q0,1, q0,5 i q0,9 mediana to jeden kwantyl, nie odpowiedź
Mierz pokrycie przedział 80% musi zawierać około 80% obserwacji
Napraw przecinające się kwantyle posortuj, potem skalibruj na świeżym zbiorze
Oceniaj pinball loss i CRPS sama trafność ukrywa szerokość przedziału

Jak prowadzimy badanie

  • każdy wiersz cech ma czas, w którym dana stała się publiczna, więc model nie uczy się z przyszłości;
  • walidacja walk-forward zachowuje odstęp i embargo między oknem treningowym a testowym;
  • najpierw baseline: ostatnia wartość, naiwna sezonowa, potem boosting na cechach tabelarycznych;
  • ziarna losowe, wersje bibliotek i manifesty zbiorów z sumą SHA256 są przypięte, więc wynik da się odtworzyć;
  • eksperymenty liczymy na maszynach preemptible, żeby ograniczyć koszt obliczeń.

Czego nie twierdzimy

Katalog instrumentów obejmuje aktywne tickery, czyli zawiera survivorship bias, który nazywamy wprost. Nie publikujemy tu wyników backtestu. Pytanie badawcze pozostaje wąskie: czy transformer patchowy da skalibrowane przedziały na danych minutowych lepsze od naiwnej sezonowej bazy? Pojęcia z tego tekstu wyjaśnia nasz słownik inżynierski.