Przykład obliczeniowy danych historycznych (wyjaśniony z jawnymi założeniami)
Co oznaczają dane historyczne
Dane historyczne to zbiór przeszłych obserwacji, które zapisujesz, a następnie wykorzystujesz do obliczeń, porównań lub testów. W praktyce zwykle obejmują one takie elementy jak znaczniki czasu, zaobserwowane wartości (na przykład cenę), a czasami dodatkowe pola (na przykład spread lub szczegóły związane z wykonaniem). Kluczową ideą jest to, że dane historyczne to „dane wejściowe z przeszłości”, a nie obietnica tego, co wydarzy się w przyszłości.
Przykład obliczeniowy jest przydatny, ponieważ wymusza podanie każdego założenia: jakie daty zastosowano, jak obliczono stopy zwrotu, jakie koszty uwzględniono (lub nie uwzględniono) oraz co się dzieje, gdy dane są niekompletne.
Jak działa przykład obliczeniowy (z jawnymi założeniami)
Poniżej znajduje się scenariusz, który demonstruje mechanikę danych historycznych bez polegania na żadnych danych z rynku na żywo.
Ustawienie scenariusza (wszystkie założenia)
Załóżmy, że analizujesz prostą regułę przy użyciu 10 kolejnych codziennych obserwacji.
- Daty: Dzień 1 do Dnia 10 są stałe; nie będziesz ich zmieniać.
- Zaobserwowane wartości: Masz historyczną „cenę średnią” (mid price) dla każdego dnia. (Znasz już te ceny średnie ze swojego zbioru danych; nie pobierasz ich w czasie rzeczywistym.)
- Definicja stopy zwrotu: Definiujesz dzienną stopę zwrotu jako (Zamknięcie − Otwarcie) / Otwarcie dla danego dnia.
- Założenie stałego kosztu: Zakładasz koszt transakcyjny w wysokości 0,10% na transakcję, stosowany zawsze, gdy reguła mówi „handluj”. Jeśli Twój zbiór danych nie zawiera kosztów, musisz albo (a) zamodelować koszty, albo (b) przyznać, że przetestowałeś wersję bez kosztów.
- Logika reguły (przykładowa reguła): Handluj w dni, w których stopa zwrotu z poprzedniego dnia jest dodatnia. W tych dniach transakcyjnych zakładasz, że kupujesz po cenie otwarcia następnego dnia i sprzedajesz po cenie zamknięcia tego dnia.
- Założenie dotyczące wykonania: Zakładasz, że możesz wykonać transakcję po zarejestrowanych cenach otwarcia i zamknięcia użytych w historycznym zbiorze danych (bez poślizgu).
Minizbiór danych
Użyj tych historycznych stóp zwrotu dla Dni 1–10. (Są to Twoje zarejestrowane wartości; traktuj je jako dane.)
- Dzień 1: Otwarcie 100, Zamknięcie 102 → stopa zwrotu = 0,02 (2%)
- Dzień 2: Otwarcie 102, Zamknięcie 101 → stopa zwrotu = -0,009803…
- Dzień 3: Otwarcie 101, Zamknięcie 103 → stopa zwrotu = 0,019802…
- Dzień 4: Otwarcie 103, Zamknięcie 103 → stopa zwrotu = 0
- Dzień 5: Otwarcie 103, Zamknięcie 105 → stopa zwrotu = 0,019417…
- Dzień 6: Otwarcie 105, Zamknięcie 104 → stopa zwrotu = -0,009523…
- Dzień 7: Otwarcie 104, Zamknięcie 106 → stopa zwrotu = 0,019231…
- Dzień 8: Otwarcie 106, Zamknięcie 107 → stopa zwrotu = 0,009434…
- Dzień 9: Otwarcie 107, Zamknięcie 106 → stopa zwrotu = -0,009345…
- Dzień 10: Otwarcie 106, Zamknięcie 108 → stopa zwrotu = 0,018868…
Stosowanie reguły opartej na danych historycznych
Reguła zależy od znaku stopy zwrotu z poprzedniego dnia.
- Nie możesz handlować w Dniu 1, ponieważ nie ma stopy zwrotu z „poprzedniego dnia”. Zatem zacznij handlować od Dnia 2.
Załóżmy, że dniami transakcyjnymi są te, w których stopa zwrotu z dnia (t−1) jest dodatnia.
- Dzień 2: poprzednia (Dzień 1) stopa zwrotu dodatnia → handluj w Dniu 2. Stopa zwrotu netto = (stopa zwrotu z Dnia 2) − 0,10% = -0,009803… − 0,001
- Dzień 3: poprzednia (Dzień 2) stopa zwrotu ujemna → brak transakcji w Dniu 3. Stopa zwrotu netto = 0
- Dzień 4: poprzednia (Dzień 3) stopa zwrotu dodatnia → handluj w Dniu 4. Stopa zwrotu netto = 0 − 0,001
- Dzień 5: poprzednia (Dzień 4) stopa zwrotu zerowa → nie jest dodatnia, więc brak transakcji w Dniu 5 (zgodnie z tą regułą). Stopa zwrotu netto = 0
- Dzień 6: poprzednia (Dzień 5) stopa zwrotu dodatnia → handluj w Dniu 6. Stopa zwrotu netto = -0,009523… − 0,001
- Dzień 7: poprzednia (Dzień 6) stopa zwrotu ujemna → brak transakcji w Dniu 7. Stopa zwrotu netto = 0
- Dzień 8: poprzednia (Dzień 7) stopa zwrotu dodatnia → handluj w Dniu 8. Stopa zwrotu netto = 0,009434… − 0,001
- Dzień 9: poprzednia (Dzień 8) stopa zwrotu dodatnia → handluj w Dniu 9. Stopa zwrotu netto = -0,009345… − 0,001
- Dzień 10: poprzednia (Dzień 9) stopa zwrotu ujemna → brak transakcji w Dniu 10. Stopa zwrotu netto = 0
Co pokazuje ten przykład
Ten scenariusz pokazuje, czego zwykle wymaga korzystanie z danych historycznych:
- Jasna definicja pól obliczanych (jak obliczane są stopy zwrotu).
- Jawne określenie czasu reguły (czy używasz informacji z poprzedniego dnia, aby działać następnego dnia).
- Założenie modelu kosztów (tutaj: stałe 0,10% na transakcję).
- Założenia dotyczące wykonania (brak poślizgu; używasz zarejestrowanych cen otwarcia/zamknięcia).
Różne założenia dałyby różne wyniki, nawet przy zachowaniu tego samego historycznego zbioru danych.
Istotne ograniczenia i tryby awarii
Dane historyczne są przydatne, ale mają ograniczenia, które mogą spowodować, że „przykład obliczeniowy” będzie odbiegać od rzeczywistych wyników.