Cum mi-a salvat Machine Learning pielea când regulile statice au eșuat
Iată ce nu-ți spune nimeni despre tradingul algoritmic: cea mai bună strategie din lume devine inutilă când regimul pieței se schimbă. Am învățat asta pe propria piele în februarie 2018, când sistemul meu de mean reversion — profitabil timp de 3 ani consecutiv — a pierdut 23% în 8 zile în timpul exploziei VIX.
La Two Sigma aveam o vorbă: „Piețele au memorie, dar sunt și schizofrenice." După ce am plecat să tranzacționez cu capital propriu, am petrecut 18 luni construind ceea ce avea să devină cadrul meu de detectare a regimurilor. Nu pentru că am vrut — ci pentru că a trebuit.
Abordarea tradițională? Codifici diferite strategii pentru diferite condiții de piață. Problema? Până realizezi că regimul s-a schimbat, P&L-ul tău deja sângerează. Detectarea reală a regimurilor are loc înainte de mișcare, nu după.

Modelul Markov Ascuns care a schimbat totul
Martie 2020. În timp ce toată lumea dezbătea dacă COVID-ul este „doar o gripă", modelul meu de detectare a regimurilor a făcut ceva interesant — a trecut din modul „trending" în modul „criză" pe 21 februarie, cu 10 zile întregi înainte de adevăratul crash. Nu pentru că a prezis pandemia, ci pentru că microstructura pieței țipa deja.
Iată versiunea simplificată a ceea ce mi-a salvat portofoliul:
def detect_regime(features):
# Features: rapoarte de volatilitate, matrici de corelație, modele de volum
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'
Magia nu stă în model — ci în features. Majoritatea sistemelor de detectare a regimurilor eșuează pentru că oamenii le hrănesc cu inputuri greșite. Medii mobile? Inutile. RSI? Și mai rău. Ai nevoie de features care captează microstructura pieței:
- Rapoarte de volatilitate realizată/implicită pe mai multe timeframe-uri
- Matrici de corelație cross-asset (când obligațiunile și acțiunile se mișcă împreună, regimurile se schimbă)
- Persistența dezechilibrului fluxului de ordine (cât durează presiunea direcțională)
- Clusteringul volatilității intraday (frica apare în baruri de 15 minute înainte de daily)
Modelul meu actual folosește 47 de features, dar aceste patru reprezintă 71% din acuratețea clasificării regimurilor.

Trei stări de regim care contează cu adevărat
Uită de lucrările academice care vorbesc despre 7 regimuri de piață diferite. După procesarea a 8 ani de date tick pe futures, forex și crypto, doar trei regimuri îți afectează cu adevărat P&L-ul:
1. Regimul Momentum (38% din timpul pieței)
Caracterizat prin mișcări direcționale persistente cu retrageri sub 38,2% Fibonacci. Corelațiile rămân pozitive, volatilitatea se extinde treptat. Aici trend following-ul tipărește bani. Algoritmii mei de momentum rulează la dimensiunea maximă a poziției aici.
2. Regimul Mean Reversion (49% din timpul pieței)
Pâinea și untul majorității traderilor algoritmici. Volatilitatea se contractă, range-urile se mențin, corelațiile revin la medie. Dar iată capcana — acest regim are două sub-stări pe care le numesc „healthy chop" și „compressed spring". Cea din urmă precede mișcări violente.
3. Regimul Criză (13% din timpul pieței)
Toate corelațiile merg la 1 sau -1. Volatilitatea explodează. Lichiditatea dispare. Strategiile tradiționale nu doar că subperformează — ele implodează. În timpul regimurilor de criză, reduc dimensiunile pozițiilor cu 75% și trec exclusiv pe arbitraj de volatilitate.
Insightul cheie? Regimurile se grupează. Criza urmează compresiei în 73% din cazuri. Momentumul urmează crizei în 67% din cazuri. Această secvențiere îți oferă un avantaj.
Construiește-ți propriul sistem de detectare a regimurilor
Lasă-mă să-ți economisesc 6 luni de încercări și erori. Iată cadrul care funcționează cu adevărat în producție:
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() # Gestionează mai bine outlier-ii
def calculate_features(self, data):
# Aici are loc magia
features = {}
# Regimul de volatilitate
features['vol_ratio'] = data['realized_vol'] / data['implied_vol']
# Structura corelației
corr_matrix = calculate_rolling_correlation(data, window=21)
features['correlation_eigenvalue'] = np.max(np.linalg.eigvals(corr_matrix))
# Microstructură
features['flow_persistence'] = calculate_order_flow_autocorrelation(data)
return self.scaler.transform(features)
Părțile critice pe care majoritatea tutorialelor le omit:
- Folosește RobustScaler, nu StandardScaler. Datele de piață au cozi groase care strică normalizarea standard.
- Reantrenează lunar, nu zilnic. Modelele de regim sunt sensibile la overfitting pe zgomot.
- Începe cu maximum 3 stări. Mai multe stări = mai multe moduri de a te păcăli cu performanța in-sample.

Capcana Overfitting-ului care omoară majoritatea traderilor ML
Aici o să-i enervez pe evangheliștii ML: majoritatea machine learning-ului în trading este o curbă elaborată. Am construit modele cu 93% acuratețe in-sample care au pierdut bani în producție. De ce? Au învățat zgomotul, nu semnalul.
Primul meu model de detectare a regimurilor avea peste 200 de features și folosea un ansamblu complex de rețele neuronale. Putea „prezice" criza din 2008 perfect. În backtesting. În trading live? Oscila între regimuri la fiecare două zile, generând mai multe costuri de tranzacționare decât alpha.
Soluția nu este mai puțin ML — ci ML mai inteligent:
- Feature engineering > complexitatea modelului. Un HMM simplu cu features excelente bate o rețea neuronală cu inputuri proaste.
- Validarea walk-forward este obligatorie. Antrenează pe 2019-2020, validează pe 2021, testează pe 2022. Dacă nu generalizează pe diferite cicluri de piață, este inutil.
- Stabilitatea regimului contează mai mult decât acuratețea. Mai bine detectezi regimurile târziu dar rămâi în ele decât să oscilezi la fiecare spike de volatilitate.
Modelul meu actual sacrifică 20% acuratețe teoretică pentru 80% mai multă stabilitate. Acest compromis tipărește bani.
Rezultate în Trading Live: Binele, Răul și Urâtul
Să vorbim despre numere reale din strategiile mele adaptive de regim din ultimele 18 luni:
Binele: În timpul spike-ului de volatilitate al Trezoreriei din octombrie 2024, detectorul de regim a trecut în modul criză cu 2 zile mai devreme. Rezultat? +8,7% în timp ce buy-and-hold a pierdut 12%.
Răul: Semnale false în timpul „zonei de chop" din vara lui 2024 au cauzat 7 comutări inutile de regim. Fiecare comutare costă aproximativ 0,3% în costuri de tranzacționare și slippage. Asta înseamnă -2,1% în pierdere netă.
Urâtul: Modelul a ratat complet flash crash-ul crypto din ianuarie 2025. De ce? Microstructura crypto diferă de piețele tradiționale, iar feature-urile mele erau calibrate pe date futures. Am pierdut 4,2% înainte de override manual. Lecție învățată — detectarea regimurilor nu este universal valabilă pe toate clasele de active.
Performanța generală: +31,4% vs +19,2% pentru strategiile statice. Dar adevărata valoare nu sunt randamentele suplimentare — este somnul mai bun știind că algoritmii mei se adaptează când piețele o iau razna.
Integrarea cu Sistemele Reale de Trading
Teoria e frumoasă. Implementarea este cea care plătește facturile. Iată cum se integrează detectarea regimurilor cu infrastructura reală de trading:
# Stratul de management al riscului
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)
Detalii critice de implementare:
- Tranzițiile de regim au nevoie de buffere. Nu schimba strategiile la primul semnal — cere 2-3 perioade consecutive de confirmare.
- Dimensiunea pozițiilor se ajustează înaintea schimbării strategiilor. Redu riscul mai întâi, pune întrebări după.
- Menține întotdeauna un hedge „regim-neutral". Al meu este long volatilitate în perioade de incertitudine.
Pentru traderii care folosesc indicatorii FibAlgo, semnalele multi-timeframe completează bine detectarea regimurilor — ajută la confirmarea când timeframe-urile mai scurte încep să se alinieze cu schimbările de regim înainte ca graficele zilnice să prindă din urmă.

Moduri comune de eșec și cum să le eviți
Lasă-mă să te scap de greșelile care m-au costat șase cifre:
Modul de eșec 1: Scurgerea de features
Folosirea volatilității implicite pentru a detecta regimurile de volatilitate pare inteligentă până realizezi că IV include deja așteptările de regim. Prezici trecutul. Rămâi la metrici realizate și microstructură.
Modul de eșec 2: Oscilația tranziției de regim
Piețele nu schimbă regimurile curat. Există întotdeauna o perioadă de tranziție dezordonată. Soluția mea? O „stare de tranziție" care menține pozițiile minime până când noul regim se stabilizează.
Modul de eșec 3: Calibrarea specifică activului
Un detector de regim antrenat pe futures S&P va eșua spectaculos pe forex. Fiecare clasă de active are o microstructură unică. Construiește modele separate sau folosește transfer learning cu atenție.
Modul de eșec 4: Ignorarea evenimentelor macro
Niciun model ML nu a prezis Brexit sau depeg-ul francului elvețian. Detectarea regimurilor te ajută să reacționezi mai repede, nu să prezici lebede negre. Menține întotdeauna întrerupătoare pentru evenimente „imposibile".
Viitorul Tradingului Adaptiv
După 8 ani de construit și spart sisteme de detectare a regimurilor, iată părerea mea contrară: viitorul nu este în modele mai complexe — ci în modele mai simple care se adaptează mai repede.
Piețele devin mai eficiente la nivel high-frequency, dar mai dependente de regim la nivel zilnic/săptămânal. Intervenția băncilor centrale, herdingul algoritmic, dominația fluxului pasiv — acestea creează regimuri distincte pe care sistemele adaptive simple le pot exploata.
Următorul meu proiect? Combinarea detectării regimurilor cu analiza ponderată pe lichiditate pentru a prezice tranzițiile de regim înainte ca acestea să se manifeste complet. Rezultatele timpurii arată un avans de 4-6 ore pe schimbările majore.
Avantajul în 2026 nu este să ai cel mai bun model — ci să ai un model care recunoaște când greșește și se adaptează. Strategiile statice sunt moarte. Dacă nu poți codifica comportament adaptiv, tranzacționezi cu uneltele de ieri pe piețele de mâine.
Următorii tăi pași
Începe simplu. Lasă rețelele neuronale deoparte și concentrează-te pe elementele de bază ale regimurilor:
- Calculează raportul volatilității realizate/implcite pe 20 de zile pentru instrumentul tău principal de tranzacționare
- Trasează tranzițiile de regim atunci când raportul depășește media sa mobilă pe 90 de zile
- Testează istoric cum performează strategia ta actuală în fiecare regim
- Implementează ajustări ale dimensiunii pozițiilor în funcție de regim (fără modificări ale strategiei încă)
- Abia după ce acest lucru funcționează, adaugă caracteristici și modele mai sofisticate
Nu uita: detectarea regimurilor este un instrument, nu o strategie. Îți spune ce strategii să rulezi și când. Alpha provine din a avea strategii bune pentru fiecare regim și disciplina de a comuta între ele în mod sistematic.
Piețele vor continua să devină tot mai ciudate. Sistemele tale de tranzacționare ar face bine să fie pregătite să se adapteze, altfel vei ajunge în cimitirul strategiilor geniale care au funcționat până când nu au mai funcționat. La Two Sigma, mai aveam o vorbă: „Piața nu îi pasă de P&L-ul tău.” Dar cu o detectare corectă a regimurilor, măcar vei vedea camionul înainte să te lovească.


