Koneoppiminen Pelasti Perseeni, Kun Staattiset Säännöt Epäonnistuivat
Tässä on asia, jota kukaan ei kerro algoritmikaupankäynnistä: maailman paras strategia muuttuu arvottomaksi, kun markkinaregiimi vaihtuu. Opin tämän kalliilla tavalla helmikuussa 2018, kun keskihajontaan perustuva järjestelmäni – joka oli ollut kannattava 3 peräkkäistä vuotta – menetti 23 % kahdeksassa päivässä VIX-räjähdyksen aikana.
Two Sigmassa meillä oli sanonta: "Markkinoilla on muisti, mutta ne ovat myös skitsofreenisiä." Lähdettyäni kauppaamaan omaa pääomaani käytin 18 kuukautta rakentaakseni sen, mistä tulisi regimintunnistuskehykseni. Ei siksi, että halusin – vaan koska minun oli pakko.
Perinteinen lähestymistapa? Koodaa eri strategiat eri markkinaolosuhteisiin. Ongelma? Siihen mennessä, kun huomaat regimin vaihtuneen, tuloksesi vuotavat jo verta. Todellinen regimintunnistus tapahtuu ennen liikettä, ei sen jälkeen.

Piilotettu Markov-malli, Joka Muutti Kaiken
Maaliskuu 2020. Kun kaikki väittelivät, oliko COVID "vain flunssa", regimintunnistusmallini teki jotain mielenkiintoista – se vaihtoi "trendaavasta" "kriisi"-tilaan 21. helmikuuta, täydet 10 päivää ennen varsinaista romahdusta. Ei siksi, että se ennusti pandemiaa, vaan koska markkinoiden mikrorakenne huusi jo.
Tässä on yksinkertaistettu versio siitä, mikä pelasti salkkuni:
def detect_regime(features):
# Piirteet: volatiliteettisuhteet, korrelaatiomatriisit, volyymikuviot
regime_probabilities = hmm_model.predict_proba(features)
if regime_probabilities['crisis'] > 0.7:
return 'defensive'
elif regime_probabilities['trending'] > 0.6:
return 'momentum'
else:
return 'mean_reversion'
Taika ei ole mallissa – se on piirteissä. Useimmat regimintunnistukset epäonnistuvat, koska ihmiset syöttävät siihen vääriä syötteitä. Liukuvat keskiarvot? Hyödyttömiä. RSI? Vielä pahempi. Tarvitset piirteitä, jotka vangitsevat markkinoiden mikrorakenteen:
- Toteutuneen/implisiittisen volatiliteetin suhteet useilla aikaväleillä
- Poikkituotteiden korrelaatiomatriisit (kun joukkovelkakirjat ja osakkeet liikkuvat yhdessä, regimit vaihtuvat)
- Tilausvirran epätasapainon pysyvyys (kuinka kauan suunnattu paine kestää)
- Päivänsisäinen volatiliteetin klusteroituminen (pelko näkyy 15 minuutin pylväissä ennen päivätasoa)
Nykyinen mallini käyttää 47 piirrettä, mutta nämä neljä vastaavat 71 %:sta regimiluokituksen tarkkuudesta.

Kolme Regiimitilaa, Jotka Oikeasti Merkitsevät
Unohda akateemiset paperit, jotka puhuvat 7 eri markkinaregiimistä. Käsiteltyäni 8 vuoden tick-dataa futuureista, forexistä ja kryptosta, vain kolme regiimiä vaikuttavat todella tulokseesi:
1. Momentum-regiimi (38 % markkina-ajasta)
Ominaista pysyvät suunnatut liikkeet, joiden palautukset ovat alle 38,2 % Fibonacci-tasolla. Korrelaatiot pysyvät positiivisina, volatiliteetti laajenee asteittain. Tällöin trendinseuranta tulostaa rahaa. Momentum-algoritmini toimivat täydellä positokoolla täällä.
2. Keskihajontaregiimi (49 % markkina-ajasta)
Useimpien algoritmikauppiaiden leipä. Volatiliteetti supistuu, vaihteluvälit pitävät, korrelaatiot palautuvat keskiarvoon. Mutta tässä on saalis – tällä regiimillä on kaksi alatilaa, joita kutsun "terveeksi sahaukseksi" ja "puristetuksi jouseksi". Jälkimmäinen edeltää väkivaltaisia liikkeitä.
3. Kriisiregiimi (13 % markkina-ajasta)
Kaikki korrelaatiot menevät arvoon 1 tai -1. Volatiliteetti räjähtää. Likviditeetti katoaa. Perinteiset strategiat eivät vain alisuoriudu – ne romahtavat. Kriisiregiimien aikana leikkaan positokokoja 75 % ja vaihdan vain volatiliteettiarbitraasiin.
Keskeinen oivallus? Regiimit klusteroituvat. Kriisi seuraa puristusta 73 % ajasta. Momentum seuraa kriisiä 67 % ajasta. Tämä järjestys antaa sinulle etulyöntiaseman.
Oman Regimintunnistusjärjestelmän Rakentaminen
Anna kun säästän sinut 6 kuukauden yritykseltä ja erehdykseltä. Tässä on kehys, joka todella toimii tuotannossa:
class RegimeDetector:
def __init__(self, lookback=252, retrain_frequency=30):
self.features = ['vol_ratio', 'correlation_eigenvalue',
'flow_persistence', 'intraday_clustering']
self.model = HiddenMarkovModel(n_states=3)
self.scaler = RobustScaler() # Käsittelee poikkeavia arvoja paremmin
def calculate_features(self, data):
# Tässä taika tapahtuu
features = {}
# Volatiliteettiregiimi
features['vol_ratio'] = data['realized_vol'] / data['implied_vol']
# Korrelaatiorakenne
corr_matrix = calculate_rolling_correlation(data, window=21)
features['correlation_eigenvalue'] = np.max(np.linalg.eigvals(corr_matrix))
# Mikrorakenne
features['flow_persistence'] = calculate_order_flow_autocorrelation(data)
return self.scaler.transform(features)
Kriittiset osat, jotka useimmat oppaat ohittavat:
- Käytä RobustScaleria, älä StandardScaleria. Markkinadatalla on paksut hännät, jotka rikkovat normaalin standardoinnin.
- Uudelleenkouluta kuukausittain, ei päivittäin. Regiimimallit ovat herkkiä ylisovittumiselle kohinaan.
- Aloita enintään 3 tilalla. Enemmän tiloja = enemmän tapoja huijata itseäsi otoksen sisäisellä suorituskyvyllä.

Ylisovittamisen Ansat, Jotka Tappavat Useimmat ML-kauppiaat
Tässä kohtaa ärsytän ML-evankelistoja: suurin osa koneoppimisesta kaupankäynnissä on monimutkaista käyrän sovitusta. Olen rakentanut malleja, joilla on 93 %:n otoksen sisäinen tarkkuus, mutta jotka menettivät rahaa tuotannossa. Miksi? Ne oppivat kohinan, eivät signaalia.
Ensimmäisessä regimintunnistusmallissani oli yli 200 piirrettä ja se käytti monimutkaista neuroverkkojen yhdistelmää. Se pystyi "ennustamaan" vuoden 2008 kriisin täydellisesti. Takaisintestauksessa. Live-kaupankäynnissä? Se heilahteli regiimien välillä joka toinen päivä, tuottaen enemmän transaktiokustannuksia kuin alfaa.
Ratkaisu ei ole vähemmän ML:ää – se on älykkäämpää ML:ää:
- Piirteiden suunnittelu > mallin monimutkaisuus. Yksinkertainen HMM loistavilla piirteillä voittaa neuroverkon roskasyötteillä.
- Walk-forward-validointi on ehdoton. Kouluta 2019-2020, validoi 2021, testaa 2022. Jos se ei yleisty eri markkinasykleissä, se on arvoton.
- Regiimin vakaus on tärkeämpää kuin tarkkuus. Parempi havaita regiimit myöhään mutta pysyä niissä kuin heilua jokaisella volatiliteettipiikillä.
Nykyinen mallini uhraa 20 % teoreettista tarkkuutta 80 % enemmän vakautta varten. Tämä kompromissi tulostaa rahaa.
Live-kaupankäynnin Tulokset: Hyvä, Huono ja Ruma
Puhutaan todellisista luvuista regiimiadaptiivisista strategioistani viimeisen 18 kuukauden ajalta:
Hyvä: Lokakuun 2024 Treasury-volatiliteettipiikin aikana regimintunnistin vaihtoi kriisitilaan 2 päivää etuajassa. Tulos? +8,7 %, kun osta ja pidä -menetelmä menetti 12 %.
Huono: Väärät signaalit kesän 2024 "sahausalueella" aiheuttivat 7 tarpeetonta regiminvaihtoa. Jokainen vaihto maksaa noin 0,3 % transaktiokustannuksissa ja liukumisessa. Se on -2,1 % kuollutta painoa.
Ruma: Malli missasi täysin tammikuun 2025 krypton flash-romahduksen. Miksi? Krypton mikrorakenne eroaa perinteisistä markkinoista, ja piirteeni oli kalibroitu futuuridatalla. Menetin 4,2 % ennen manuaalista ohitusta. Opittu läksy – regimintunnistus ei ole yksi koko sopii kaikille -ratkaisu eri omaisuusluokissa.
Kokonaissuorituskyky: +31,4 % vs. +19,2 % staattisille strategioille. Mutta todellinen arvo ei ole ylimääräisissä tuotoissa – se on paremmassa unessa, kun tiedän algoritmieni mukautuvan, kun markkinat menevät psykoosiin.
Integrointi Todellisiin Kaupankäyntijärjestelmiin
Teoria on kivaa. Toteutus maksaa laskut. Tässä on, miten regimintunnistus integroituu todelliseen kaupankäynti-infrastruktuuriin:
# Riskienhallintakerros
position_size = base_size * regime_risk_multiplier[current_regime]
if current_regime == 'momentum':
active_strategies = ['trend_following', 'breakout']
disable_strategies(['mean_reversion', 'arbitrage'])
elif current_regime == 'mean_reversion':
active_strategies = ['range_trading', 'pairs']
disable_strategies(['trend_following'])
else: # crisis
active_strategies = ['volatility_arb']
reduce_all_positions(0.25)
Kriittiset toteutustiedot:
- Regiimisiirtymissä tarvitaan puskureita. Älä vaihda strategiaa ensimmäisellä signaalilla – vaadi 2-3 peräkkäistä vahvistusjaksoa.
- Positokoon säätö tapahtuu ennen strategiamuutoksia. Vähennä riskiä ensin, kysy kysymyksiä myöhemmin.
- Pidä aina "regiimineutraali" suojaus. Minun on pitkä volatiliteetti epävarmuuden aikana.
Kauppiaille, jotka käyttävät FibAlgon indikaattoreita, moniaikavälin signaalit täydentävät regimintunnistusta hyvin – ne auttavat vahvistamaan, kun lyhyemmät aikavälit alkavat kohdistua regimimuutoksiin ennen kuin päiväkaaviot ehtivät mukaan.

Yleiset Epäonnistumistavat ja Miten Välttää Ne
Anna kun säästän sinut virheiltä, jotka maksoivat minulle kuusinumeroisia summia:
Epäonnistumistapa 1: Piirrevuoto
Implisiittisen volatiliteetin käyttäminen volatiliteettiregiimien havaitsemiseen vaikuttaa fiksulta, kunnes tajuat, että IV hinnoittelee jo regiimiodotukset. Ennustat menneisyyttä. Pysy toteutuneissa mittareissa ja mikrorakenteessa.
Epäonnistumistapa 2: Regiimisiirtymän heilunta
Markkinat eivät vaihda regiimiä siististi. Aina on sotkuinen siirtymäjakso. Ratkaisuni? "Siirtymätila", joka pitää positiot minimissä, kunnes uusi regiimi vakiintuu.
Epäonnistumistapa 3: Omaisuuskohtainen kalibrointi
S&P-futuureilla koulutettu regimintunnistin epäonnistuu spektaakkelinomaisesti forexissä. Jokaisella omaisuusluokalla on ainutlaatuinen mikrorakenne. Rakenna erillisiä malleja tai käytä siirto-oppimista varovasti.
Epäonnistumistapa 4: Makrotapahtumien huomiotta jättäminen
Mikään ML-malli ei ennustanut Brexitiä tai Sveitsin frangin irrotusta. Regimintunnistus auttaa reagoimaan nopeammin, ei ennustamaan mustia joutsenia. Pidä aina katkaisijat "mahdottomille" tapahtumille.
Adaptiivisen Kaupankäynnin Tulevaisuus
8 vuoden regimintunnistusjärjestelmien rakentamisen ja rikkomisen jälkeen tässä on vastakkaismielipiteeni: tulevaisuus ei ole monimutkaisemmissa malleissa – se on yksinkertaisemmissa malleissa, jotka mukautuvat nopeammin.
Markkinat ovat tulossa tehokkaammiksi korkeataajuisella tasolla, mutta enemmän regiimiriippuvaisiksi päivä-/viikkotasolla. Keskuspankkien interventio, algoritminen laumakäyttäytyminen, passiivisten virtojen dominanssi – nämä luovat erillisiä regiimejä, joita yksinkertaiset adaptiiviset järjestelmät voivat hyödyntää.
Seuraava projektini? Regimintunnistuksen yhdistäminen likviditeettipainotettuun analyysiin ennustaakseen regimisiirtymiä ennen kuin ne täysin ilmenevät. Varhaiset tulokset osoittavat 4-6 tunnin etumatkaa suurissa muutoksissa.
Etulyöntiasema vuonna 2026 ei ole parhaassa mallissa – se on mallissa, joka myöntää olevansa väärässä ja mukautuu. Staattiset strategiat ovat kuolleita. Jos et osaa koodata adaptiivista käyttäytymistä, käytät eilisen työkaluja huomisen markkinoilla.
Seuraavat askeleesi
Aloita yksinkertaisesti. Unohda neuroverkot ja keskity perusasioihin markkinatilojen tunnistamisessa:
- Laske liukuva 20 päivän toteutuneen/implisiittisen volatiliteetin suhde pääasialliselle kaupankäyntivälineellesi
- Piirrä markkinatilan muutokset, kun suhde ylittää 90 päivän liukuvan keskiarvonsa
- Tee backtestaus nykyiselle strategiallesi kussakin markkinatilassa
- Toteuta positioiden koon säätö markkinatilan perusteella (älä vielä muuta strategiaa)
- Vasta kun tämä toimii, lisää kehittyneempiä ominaisuuksia ja malleja
Muista: markkinatilan tunnistus on työkalu, ei strategia. Se kertoo, mitä strategioita kannattaa käyttää milloinkin. Tuotto syntyy siitä, että sinulla on hyvät strategiat kuhunkin markkinatilaan ja kurinalaisuus vaihtaa niiden välillä järjestelmällisesti.
Markkinat muuttuvat yhä omituisemmiksi. Kaupankäyntijärjestelmiesi on parempi olla valmiita sopeutumaan, tai liityt niiden loistavien strategioiden hautausmaahan, jotka toimivat siihen asti kunnes eivät enää toimineet. Two Sigman piireissä meillä oli toinenkin sanonta: "Markkinoita ei kiinnosta tuloslaskelmasi." Mutta kunnollisella markkinatilan tunnistuksella ainakin näet rekan ennen kuin se ajaa päällesi.


