Należąca do użytkownika platforma do budowy portfeli i backtestingu, umożliwiająca porównywanie jawnie zdefiniowanych strategii inwestycyjnych z pogłębioną analizą portfela.
Podsumowanie
Regima to działający MVP do budowy portfeli, stosowania strategii inwestycyjnych i oceny ich historycznego zachowania.
Wiele narzędzi do backtestingu pokazuje wykresy wyników, nie przedstawiając dostatecznie jasno założeń stojących za strategią. Regima wychodzi z przeciwnego założenia: użytkownik wybiera określone podejście do budowy portfela i otrzymuje analitykę pomagającą wyjaśnić zachowanie portfela.
Status
Działający MVP
Podstawowe funkcje optymalizacji portfela i backtestingu są zaimplementowane. Pozostała praca dotyczy analizy statystycznej, zakresu produktu i otaczającego go doświadczenia użytkownika.
Problem
Narzędzia do backtestingu często ułatwiają stworzenie wykresu wyników, ale utrudniają zrozumienie, co ten wynik wygenerowało. Portfel może być przedstawiony za pomocą historycznych stóp zwrotu i miar ryzyka bez jasnego pokazania ram alokacji, stojących za nią założeń ani sposobu porównania z alternatywą.
Utrudnia to odróżnienie portfela wynikającego ze strategii od zbioru analiz złożonych dopiero po fakcie.
Regima ma jasno pokazywać metodę budowy portfela i łączyć ją z wynikającą z niej analizą wyników, ryzyka i atrybucji.
Pierwotna koncepcja zakładała również użycie danych o składzie indeksu w ujęciu point-in-time, aby ograniczyć survivorship bias. Wiarygodne datasety tego typu są płatne, dlatego w obecnym MVP nie uznano tego problemu za rozwiązany i nie przedstawia się go jako funkcji produktu.
Co robi
Użytkownik definiuje portfel, wybiera strategię optymalizacji i ocenia jego historyczne zachowanie.
Obecny system obejmuje:
- optymalizację średnia–wariancja (MVO);
- alokację równoważoną (1/N);
- alokację risk parity opartą na wkładzie do ryzyka;
- historyczne dane cenowe i fundamentalne;
- okresowy rebalancing lub rebalancing oparty na progach;
- konfigurowalne koszty, pozwalające realistyczniej szacować wyniki;
- analitykę wyników, ryzyka i atrybucji czynnikowej.
Celem nie jest tylko pokazanie jednej wartości stopy zwrotu, lecz dostarczenie kontekstu wyjaśniającego, jak ta wartość powstała.
Od strategii do analizy
Założenia backtestu pozostają widoczne
Definicja eksperymentu
Wybór portfela, okresu historycznego i dostępnych danych rynkowych.
Wybór alokacji
Budowa portfela metodą średnia–wariancja, równych wag lub risk parity.
Reguły działania
Okresowy lub progowy rebalancing oraz konfigurowalne koszty.
Analiza wyniku
Ocena wyników wraz z ryzykiem, składem portfela i atrybucją czynnikową.
Decyzje metodologiczne
Główne decyzje projektowe mają zachować widoczny związek między strategią a wynikiem:
- sposób budowy portfela jest wybierany jawnie, a nie ukryty za jednym domyślnym podejściem;
- reguły i wyzwalacze rebalancingu są częścią konfiguracji backtestu;
- koszty transakcyjne i inne konfigurowalne koszty można uwzględnić w szacunkach wyników;
- wyniki są prezentowane razem z miarami ryzyka i atrybucji;
- różne podejścia do alokacji można porównywać w ramach tego samego workflow analitycznego.
Takie decyzje przedkładają przejrzystość i użyteczność analityczną nad jedną nagłówkową wartość stopy zwrotu.
System
| Warstwa | Technologia |
|---|---|
| Frontend | SvelteKit |
| Backend | FastAPI |
| Baza danych | PostgreSQL |
| Analityka | SciPy, scikit-learn |
| Dane rynkowe | yfinance |
| Packaging | Docker |
Frontend zapewnia interfejs do budowy portfela i analizy, a backend odpowiada za przetwarzanie danych i workflow analityczny.
Zrzuty ekranu
Stopa zwrotu w kontekście ryzyka
Zobacz zrzut w pełnym rozmiarze - Kontekst uruchomienia · góra
- Portfel, lista aktywów i okres historyczny identyfikują eksperyment stojący za wykresem.
- Ryzyko obok wyniku · podsumowanie
- Wskaźnik Sharpe’a i maksymalne obsunięcie są widoczne obok miar stopy zwrotu.
Wgląd w rzeczywisty skład portfela
Zobacz zrzut w pełnym rozmiarze - Data stanu · prawy górny róg
- Data wskazuje, której alokacji dotyczy analiza.
- Wagi pozycji · słupki
- Względne wagi ujawniają koncentrację portfela niewidoczną w samej stopie zwrotu.
Przyczyna rebalancingu pozostaje widoczna
Zobacz zrzut w pełnym rozmiarze - Przyczyna · druga kolumna
- Początkowa alokacja i okresowy rebalancing są zapisane jako różne typy zdarzeń.
- Koszty i szczegóły · prawa strona
- Wiersz przedstawia koszt i przejście do szczegółów zmian alokacji.
Zmiana alokacji na poziomie pojedynczej pozycji
Zobacz zrzut w pełnym rozmiarze - Przed i po · środkowe kolumny
- Wagi pojedynczych pozycji pokazują zmianę ukrytą za zbiorczym zdarzeniem rebalancingu.
- Zmienione pozycje · wiersze
- Widok obejmuje pozycje z niezerową zmianą względem poprzedniego stanu.
Ograniczenia i kolejne kroki
Obecny MVP koncentruje się na podstawowym workflow optymalizacji i backtestingu. Może uwzględniać konfigurowalne koszty przy szacowaniu wyników, ale nie modeluje jeszcze stóp zwrotu z perspektywy podatkowej.
Planowane prace obejmują:
- optymalizację minimalnego ryzyka;
- podejście do optymalizacji oparte na machine learning, przy czym konkretna metoda nie została jeszcze wybrana;
- ulepszenia interfejsu użytkownika;
- analizę probabilistycznego Sharpe ratio, aby ocenić, czy wyniki portfela są istotnie lepsze od wybranego funduszu lub benchmarku.
Są to planowane prace rozwojowe i nie należy ich traktować jako obecnie zaimplementowanych funkcji.
Dlaczego go zbudowałem
Chciałem stworzyć narzędzie portfelowe, które łączy budowę portfela, optymalizację i analizę ryzyka bez konieczności odtwarzania tego samego pipeline’u analitycznego dla każdego eksperymentu.
Regima pozwala również uwidocznić metodologię inwestycyjną w samym produkcie: podejście do alokacji, reguły portfela, miary ryzyka i atrybucję można analizować, zamiast traktować je jako szczegóły implementacji.