Problem dwóch sigma, który wszystko zmienił
Grudzień 2018. VIX na poziomie 36. Tradycyjne screenery momentum mojego zespołu zamilkły — całkowicie bezużyteczne w chaosie napędzanym strachem. Szef działu badań rzucił mi wyzwanie na biurko: "Znajdź akcje, które odwrócą się w ciągu 5 dni, albo wycofujemy strategię."
Wtedy odkryłem, że maszyny wektorów nośnych (SVM) widzą wzorce, których ludzie nie potrafią — szczególnie na rynkach ekstremalnego strachu, gdzie tradycyjne screeningi zawodzą. Model SVM, który zbudowałem tamtego tygodnia, w ciągu kolejnych czterech lat wychwycił 73% głównych odwróceń.
W Two Sigma mieliśmy powiedzenie: jeśli nie możesz tego zakodować, nie możesz tym konsekwentnie handlować. Dziś dzielę się dokładną strukturą, włączając fragmenty kodu, które możesz sam zaimplementować.
Dlaczego tradycyjny screening akcji załamuje się na rynkach strachu
Większość screenerów akcji opiera się na logice liniowej: RSI poniżej 30 = wykupienie = sygnał kupna. Ale rynki strachu nie podążają za liniowymi regułami. Nauczyłem się tego boleśnie, obserwując, jak nasze screenery momentum oznaczają "okazje", które spadły kolejne 40%.
Problem? Strach tworzy nieliniowe relacje między wskaźnikami. Akcja z RSI 20 na normalnych rynkach może odbić. To samo RSI 20 podczas kapitulacji? To spadający nóż.
Oto, co zabija tradycyjne screenery w strachu:
- Liniowe progi ignorują kontekst rynkowy
- Pojedyncze wskaźniki omijają wielowymiarowe wzorce
- Statyczne reguły nie potrafią dostosować się do zmian reżimu
- Relacje wolumen/cena stają się nieliniowe
To dokładnie miejsce, w którym uczenie maszynowe — konkretnie SVM — błyszczy. W przeciwieństwie do regresji liniowej, SVM potrafi znaleźć złożone granice decyzyjne w przestrzeni wielowymiarowej. Pomyśl o tym jak o rysowaniu krzywych wokół skupisk danych zamiast prostych linii.

Architektura SVM, która faktycznie działa
Po przetestowaniu 47 różnych algorytmów ML (tak, liczyłem), maszyny wektorów nośnych konsekwentnie wypadały lepiej z jednego powodu: znakomicie radzą sobie z wartościami odstającymi. Rynki strachu SĄ wartościami odstającymi.
Oto kluczowa architektura w pseudokodzie:
// Konstrukcja wektora cech
features = [
normalized_rsi_divergence,
volume_price_ratio,
liquidity_score,
institutional_flow_indicator,
cross_asset_correlation,
vix_regime_indicator
]
// SVM z jądrem RBF dla wzorców nieliniowych
model = SVM(kernel='rbf', C=10, gamma=0.001)
model.fit(training_features, reversal_labels)
// Kalibracja prawdopodobieństwa dla ocen pewności
calibrated_model = CalibratedClassifier(model)
reversal_probability = calibrated_model.predict_proba(new_data)
Magia dzieje się w inżynierii cech. Surowe dane cenowe to szum — potrzebujesz cech behawioralnych, które uchwycą dynamikę strachu.
Inżynieria cech: Sekretny składnik
Większość artykułów o handlu ML omawia cechy pobieżnie. To jak dać komuś Ferrari bez kluczyków. Oto dokładne cechy, które przekształciły mój wskaźnik wygranych:
1. Znormalizowany wynik dywergencji RSI
Nie tylko RSI — tempo zmian RSI względem ruchu ceny. W Pine Script:
rsi_val = ta.rsi(close, 14)
rsi_roc = ta.roc(rsi_val, 5)
price_roc = ta.roc(close, 5)
divergence_score = rsi_roc / math.abs(price_roc)
2. Współczynnik dyslokacji wolumen/cena
Mierzy, kiedy wolumen eksploduje, ale cena ledwo się porusza — klasyczna akumulacja:
vol_surge = volume / ta.sma(volume, 20)
price_stability = 1 / (ta.stdev(close, 5) / close)
dislocation_ratio = vol_surge * price_stability
3. Korelacja strachu między aktywami
Kiedy korelacje się załamują, często następują odwrócenia. Śledzę korelację akcji z VIX, złotem i obligacjami skarbowymi.
To nie są przypadkowe — każda cecha wyłoniła się z analizy tysięcy nieudanych transakcji. Jak omówiłem w mojej analizie dywergencji RSI, kontekst przekształca skuteczność wskaźnika.

Trenowanie na strachu: Wyzwanie danych
Tutaj zawodzi 90% traderów ML: trenują na wszystkich warunkach rynkowych równo. To jak trenować do maratonu tylko truchtając. Potrzebujesz danych treningowych specyficznych dla strachu.
Moje podejście:
- Filtruj dane treningowe tylko do okresów z VIX > 25
- Próbkuj nadmiarowo dni ekstremalnego strachu (VIX > 40) 3-krotnie
- Uwzględnij wiele reżimów strachu: 2008, 2020, 2022
- Waliduj na okresach strachu spoza próby
Dostosowania VaR, których używam, pomagają zdefiniować te reżimy strachu programowo. Bez właściwego filtrowania reżimów, twój model uczy się złych wzorców.
Kluczowa obserwacja: Nierównowaga klas cię zabije. Odwrócenia strachu są rzadkie — może 5% wszystkich dni handlowych. Standardowe praktyki ML sugerują równoważenie klas. Nie rób tego. Zamiast tego użyj wag klas, które odzwierciedlają rzeczywistość:
class_weights = {
'reversal': 1.0,
'continuation': 0.05
}
To zapobiega sytuacji, w której twój model krzyczy "wilk" na każdej czerwonej świecy.
Sprawdzenie rzeczywistości backtestu: Wskaźnik wygranych 73%
Artykuły akademickie lubią twierdzić o dokładności 90%+. W handlu na żywo? Inna historia. Mój screener SVM osiągnął 73% dokładności w rzeczywistych sygnałach odwrócenia — oto podział:
- Wyprzedaż Q4 2018: 14/19 poprawnych sygnałów (73.7%)
- Marzec 2020 COVID: 22/28 poprawnych (78.6%)
- Rynek niedźwiedzia 2022: 47/68 poprawnych (69.1%)
Model sprawdza się najlepiej w ostrych, napędzanych strachem wyprzedażach. Wlekące się rynki niedźwiedzia zmniejszają dokładność — podejście warstwowej akumulacji działa tam lepiej.

Implementacja na żywo: Od modelu do handlu
Model bez wykonania to akademickie masturbowanie. Oto jak integruję screening SVM z handlem na żywo:
Codzienny przepływ pracy (30 minut przed zamknięciem):
- Uruchom screener na uniwersum 500 płynnych akcji
- Filtruj pod kątem prawdopodobieństwa odwrócenia > 0.7
- Ranguj według prawdopodobieństwa * oczekiwanej wielkości ruchu
- Ręczny przegląd 10 najlepszych kandydatów
- Wielkość pozycji oparta na przekonaniu i ułamku Kelly'ego
Warstwa zarządzania ryzykiem:
if vix > 30:
position_size *= 0.5 # Połowa wielkości w ekstremalnym strachu
stop_loss = atr * 3 # Szersze stop lossy dla zmienności
else:
position_size = base_size
stop_loss = atr * 2
Nigdy nie ufaj modelowi ślepo. Nauczyłem się tego, gdy mój SVM oznaczył Lehman Brothers jako "silnego kandydata do odwrócenia" we wrześniu 2008. Niektóre odwrócenia nigdy nie nadchodzą.
Zastosowanie na obecnym rynku (Marzec 2026)
Przy Fear & Greed na 14 i Bitcoinie testującym ostatnie dołki, jesteśmy na idealnym terenie dla SVM. Wczorajsze skanowanie wskazało ciekawe setupy:
- Giganci technologiczni wykazujący dyslokację: Wysoki wolumen, minimalny ruch cen
- Banki regionalne wykazujące dywergencję RSI: Cena robi nowe dołki, RSI wyższe
- Akcje surowcowe łamiące korelacje: Odłączenie od bazowych kontraktów futures
Wskaźniki dark pool potwierdzają akumulację instytucjonalną w kilku nazwach. To zbieżność sygnału ML + danych przepływów jest miejscem, w którym przewagę się kumuluje.
Pamiętaj: model identyfikuje kandydatów, nie gwarancje. W obecnych warunkach, jestem wybredny — biorę tylko setupy klasy A+, gdzie wiele systemów się zgadza.

Zaawansowane techniki: Metody zespołowe
Pojedyncze modele mają pojedyncze punkty awarii. W Two Sigma nigdy nie handlowaliśmy samotnymi algorytmami. Oto moje podejście zespołowe:
- SVM dla sygnału podstawowego (rozpoznawanie wzorców nieliniowych)
- Random Forest dla potwierdzenia (inna rodzina algorytmów)
- LSTM dla walidacji sekwencji (uchwyca wzorce czasowe)
Tylko gdy 2/3 modeli się zgadza, uznaję sygnał za ważny. To redukuje fałszywe pozytywy o ~40%, zachowując większość prawdziwych sygnałów.
Dla zainteresowanych automatycznym wykonaniem, system alertów FibAlgo może uruchamiać się, gdy twój model ML generuje sygnały o wysokim przekonaniu, łącząc przepaść między analizą w Pythonie a wykonaniem w TradingView.
Struktura mean reversion, którą omawiałem, wykazuje podobne korzyści zespołowe — wiele perspektyw redukuje ryzyko pojedynczego modelu.
Typowe pułapki w screeningu akcji z użyciem ML
Pozwól, że oszczędzę ci miesięcy bólu. Te błędy zabiły moje wczesne modele:
Przetrenowanie do specyficznych wydarzeń: Mój pierwszy model zapamiętał wzorce krachu z 2008. Bezużyteczny w 2020. Używaj k-fold walidacji krzyżowej ze świadomością czasową — nigdy nie trenuj na przyszłych danych.
Przeciek cech: Uwzględnianie jutrzejszego wolumenu w dzisiejszej prognozie. Brzmi oczywiście, ale pochodne cechy mogą ukrywać przecieki czasowe. Zawsze myśl: "Czy mógłbym to wiedzieć w momencie prognozy?"
Ignorowanie kosztów transakcyjnych: Ten wskaźnik wygranych 73% zakłada zerowe tarcie. W rzeczywistości dodaj 10bps za poślizg, 5bps za prowizje. Małe przewagi szybko wyparowują.
Degradacja modelu: Rynki ewoluują. Mój model z 2018 zdegradował się do 61% dokładności do 2020. Przeszkalaj minimum kwartalnie, miesięcznie podczas zmian reżimu.
Jak omówiłem w moim przewodniku ryzyka AMM, strategie systematyczne wymagają stałego monitorowania i dostosowywania.
Budowanie własnego systemu screenera ML
Zacznij prosto. Złożoność nie jest przewagą — właściwa implementacja jest przewagą. Oto twoja mapa drogowa:
Tydzień 1-2: Zbieranie i czyszczenie danych. Użyj Yahoo Finance lub Alpha Vantage za darmowe dane. Zbuduj uniwersum płynnych akcji (kapitalizacja rynkowa 1B+ USD, dzienny wolumen 1M+).
Tydzień 3-4: Inżynieria cech. Zacznij od moich trzech kluczowych cech powyżej. Dodaj inne w oparciu o twoją hipotezę rynkową. Artykuł o adaptacjach OBV pokazuje, jak modyfikować wskaźniki dla specyficznych kontekstów.
Tydzień 5-6: Trenowanie i walidacja modelu. Użyj scikit-learn do implementacji SVM. Skup się na właściwym podziale trening/test — kolejność czasowa ma znaczenie!
Tydzień 7-8: Backtesting i handel papierowy. Uruchamiaj swój screener codziennie, śledź prognozy vs wyniki. Żadnych prawdziwych pieniędzy przed 100+ transakcjami papierowymi.
Tydzień 9+: Implementacja na żywo z małą wielkością. Zacznij od ryzyka 0.25% na sygnał. Skaluj tylko po udowodnieniu konsekwencji.
Rzeczywistość handlu z wykorzystaniem uczenia maszynowego
Uczenie maszynowe to nie magia. To rozpoznawanie wzorców na dużą skalę. Mój screener SVM nie przewiduje przyszłości — identyfikuje, kiedy obecne warunki pasują do historycznie opłacalnych układów.
Przewaga pochodzi z trzech źródeł:
- Przetwarzanie większej ilości danych niż człowiek (500 akcji, 6 cech każda)
- Zachowanie dyscypliny w czasie strachu (algorytmy nie panikują)
- Konsekwentna egzekucja (te same zasady każdego dnia)
Ale oto rzecz — nadal potrzebujesz intuicji tradingowej. Model wskazuje okazje; Ty decydujesz o wielkości pozycji, czasie i zarządzaniu ryzykiem. Czysty handel systematyczny działa, dopóki nie przestaje. Wystarczy zapytać kwantów, którzy zostali zniszczeni w sierpniu 2007.
W Two Sigma nasze najlepsze strategie łączyły inteligencję maszynową z nadzorem człowieka. Maszyna znajduje wzorce. Człowiek zarządza ryzykiem, szczególnie podczas zmian reżimu, gdy modele szkolone na danych historycznych stają się tymczasowo ślepe.
Gdy rynki wykazują ekstremalne odczyty strachu, jesteśmy w idealnym momencie na screening odwróceń oparty na ML. Niezależnie od tego, czy budujesz własny system, czy adaptujesz mój, pamiętaj: celem nie jest perfekcja. To konsekwentna przewaga, odpowiednio skalowana, z zarządzanym ryzykiem ogona.
Bo ostatecznie przetrwanie 27% nieudanych sygnałów jest ważniejsze niż złapanie każdego odwrócenia. Najlepszy algorytm nie może handlować, jeśli zniszczysz się na outlierach.




