Sector Rotation BVB: Tablou de Bord Momentum-Value cu Ratio și Semnale
Lecția de față transformă intuiția macro într-un motor cantitativ: un sistem de sector rotation BVB momentum value ratio tablou bord care îți spune lunar, cu cifre, exact când să muți alocare între bănci, energy și utilități, fără să mai depinzi de „simțul pieței". Ai stăpânit deja citirea ciclurilor BNR și logica rotației tactice între sectoarele Bursei de Valori București. Acum construim deasupra un momentum-value score sector BVB reproductibil, cu praguri numerice, ponderi explicite și reguli de tranzacționare — exact ce ar rula un fond cu mandat de sector relative strength BVB.
Vom calcula pas cu pas un scor compozit per sector, vom defini un proces de rebalansare lunară automată bursă ancorat în prima ședință a lunii, vom măsura ROI pe sector ratio versus benchmark și vom folosi un rotatie ciclu economic indicator ca filtru de regim. Totul închis într-un proces de signal generating sector momentum auditabil, plus un backtesting sector rotation strategie pe ultimii ~8 ani de date BVB, ca să știi ce te poți aștepta realist din punct de vedere al randamentului și al drawdown-ului.
Premisa dură rămâne aceeași: BVB este o piață mică, concentrată (TLV, BRD, SNP, SNG, EL, TGN, TEL, DIGI, TTS, M, FP), cu lichiditate inegală și fluxuri de Pilon II care domină marginal prețul. Orice model american de rotație (Stovall, dual-momentum Antonacci) trebuie recalibrat agresiv pentru cele ~3-5 „sectoare" investibile reale de aici. Nu vinzi semnale fine pe 11 sectoare GICS; lucrezi cu 4-5 coșuri groase și accepți granularitatea limitată.
Arhitectura tabloului de bord: trei straturi de semnal
Tabloul de bord nu este un singur număr, ci o stivă de trei straturi care se înmulțesc, nu se adună la întâmplare. Fiecare strat răspunde la o întrebare distinctă și are dreptul de veto într-o anumită zonă.
- Stratul 1 — Regim macro (filtru on/off). Faza ciclului BNR (dobândă-cheie, IPC vs țintă 2,5% ±1pp, curba 10Y-2Y, credit neguvernamental). Rol: stabilește ce coșuri au voie să primească alocare maximă și ce coșuri sunt plafonate. Nu generează ordine, ci limite.
- Stratul 2 — Momentum-Value score (rangul). Inima sistemului. Combină relative strength (cât de tare bate sectorul indicele) cu un ecart de value (cât de ieftin e față de propria mediană istorică). Rol: ordonează sectoarele și produce ponderile.
- Stratul 3 — Confirmare microstructură (gate de execuție). Lichiditate (ADTV — average daily traded value), breadth intra-sector (câte nume confirmă mișcarea), și trend de bază (preț peste MA200). Rol: blochează tranzacții pe semnale ilichide sau pe un singur nume care trage tot coșul.
Logica de compoziție: scor final = (Momentum-Value score) × multiplicator_regim × gate_execuție, unde multiplicatorul de regim ∈ {0,5; 0,8; 1,0; 1,2} iar gate-ul ∈ {0; 1}. Astfel un sector cu scor brut excelent dar ilichid sau aflat sub MA200 într-un regim ostil primește alocare zero, indiferent de cât de „frumos" arată momentum-ul. Aceasta este diferența dintre un model de specialist și un screener naiv.
Definirea coșurilor sectoriale BVB și a proxy-urilor
Pentru că BVB nu are ETF-uri sectoriale lichide locale, construiești coșuri sintetice echi-ponderate sau ponderate pe lichiditate. Recomand ponderare pe rădăcina pătrată a ADTV (un compromis între equal-weight, care supra-expune nume mici, și cap-weight, care te lasă cu un singur nume dominant).
- BANK: TLV, BRD (eventual BVB ca proxy de „financials"). Nucleu lichid, beta la dobândă și credit.
- ENERGY: SNP, SNG, plus OIL/gaz adiacent. Sensibil la prețuri commodity și la regimul fiscal (suprataxă pe energie).
- UTIL: EL, TGN, TEL. Cash-flow reglementat (ANRE), defensiv, dividend-payer.
- GROWTH/TECH-CONSUM: DIGI, TTS, M (MedLife). Durată lungă, sensibil la dobânda de actualizare.
- HOLDING/PROXY-PIAȚĂ: FP, SIF-uri — folosit ca filtru de breadth, nu ca țintă de rotație principală.
Benchmark-ul de relativizare: BET-TR (varianta total return, cu dividende reinvestite). Critic — dacă relativizezi față de BET „price", subestimezi sistematic băncile și utilitățile care plătesc dividende mari (randamente de 7-9% nu sunt rare la EL/TGN/bănci), distorsionând momentumul relativ. Întotdeauna total return contra total return.
Stratul 2: formula Momentum-Value score, pas cu pas
Aceasta este componenta vandabilă a sistemului. O construim din două sub-scoruri standardizate (z-score în cross-section, adică între sectoare la aceeași dată), apoi le combinăm cu o pondere care depinde de regim.
Sub-scorul de Momentum (relative strength)
Folosim momentum multi-orizont, „skip-month" (excludem ultima lună pentru a evita reversal-ul pe termen scurt), o tehnică standard de specialist:
- RS_3M = (P_sector / P_BETTR la t) / (P_sector / P_BETTR la t-3M) − 1
- RS_6M = idem pe 6 luni, cu skip de ultima lună (de la t-1M la t-7M)
- RS_12M = idem pe 12 luni, skip ultima lună (t-1M la t-13M)
Momentum_raw = 0,5 × RS_6M + 0,3 × RS_12M + 0,2 × RS_3M. Ponderea cea mai mare pe 6M pentru că pe BVB orizontul de 6 luni a fost istoric cel mai stabil semnal (12M e prea lent pe o piață care întoarce brusc; 3M e prea zgomotos). Apoi standardizezi: z_mom_i = (Momentum_raw_i − media pe sectoare) / abaterea standard pe sectoare.
Sub-scorul de Value (ieftinătate relativă proprie)
Aici e finețea pentru BVB: nu compari P/E-ul băncilor cu P/E-ul utilităților (sunt structural diferite), ci fiecare sector cu propria sa istorie. Calculezi un percentil de evaluare:
- Iei multiplul reprezentativ per sector: P/E forward pentru BANK/GROWTH, EV/EBITDA pentru ENERGY/UTIL (energy are volatilitate mare de profit, EV/EBITDA e mai stabil), plus dividend yield ca al doilea ancoraj pentru UTIL/BANK.
- Calculezi percentilul curent al multiplului față de propria distribuție pe 5 ani. Un sector la percentilul 20 (mai ieftin decât 80% din ultimii 5 ani) primește un value ridicat.
- Value_raw_i = 1 − percentil_evaluare_i (deci ieftin = scor mare), apoi z-score în cross-section: z_val_i.
Combinarea: scorul compozit cu pondere dependentă de regim
Aici intervine inteligența: ponderea momentum vs value nu e fixă, ci se mută cu faza ciclului. În expansiune timpurie/relansare momentum-ul conduce; în supraîncălzire/încetinire value-ul (ieftinătatea defensivelor) capătă greutate, pentru că momentum-ul devine o capcană (cumperi vârful ciclicelor).
- MV_score_i = w_mom × z_mom_i + w_val × z_val_i
- Faza 1 (relansare): w_mom = 0,70; w_val = 0,30
- Faza 2 (supraîncălzire): w_mom = 0,55; w_val = 0,45
- Faza 3 (încetinire): w_mom = 0,40; w_val = 0,60
- Faza 4 (fund de ciclu): w_mom = 0,35; w_val = 0,65 (cumperi ieftin înainte de întoarcere)
Acesta este rotatie ciclu economic indicator încorporat în chiar formula scorului, nu lipit pe deasupra. Faza o derivi din Stratul 1 (vezi mai jos cum o codifici numeric).
Exemplu numeric complet — tabloul de bord pentru o lună concretă
Să presupunem un moment de Faza 2 (supraîncălzire: IPC peste țintă și în creștere, BNR pe pauză la dobândă ridicată). Date ipotetice dar realiste pentru patru coșuri:
- ENERGY: Momentum_raw = +14% → z_mom = +1,30; EV/EBITDA la percentil 35 → Value_raw = 0,65 → z_val = +0,40
- BANK: Momentum_raw = +8% → z_mom = +0,50; P/E fwd la percentil 30 → z_val = +0,70
- UTIL: Momentum_raw = +2% → z_mom = −0,40; EV/EBITDA la percentil 60 → z_val = −0,30
- GROWTH: Momentum_raw = −6% → z_mom = −1,40; P/E fwd la percentil 75 → z_val = −0,80
Cu ponderile Fazei 2 (w_mom = 0,55; w_val = 0,45):
- ENERGY: 0,55 × 1,30 + 0,45 × 0,40 = 0,715 + 0,180 = +0,895
- BANK: 0,55 × 0,50 + 0,45 × 0,70 = 0,275 + 0,315 = +0,590
- UTIL: 0,55 × (−0,40) + 0,45 × (−0,30) = −0,220 − 0,135 = −0,355
- GROWTH: 0,55 × (−1,40) + 0,45 × (−0,80) = −0,770 − 0,360 = −1,130
Ranguri: ENERGY > BANK > UTIL > GROWTH. Acum traduci scorul în ponderi de portofoliu. Regulă recomandată: alocă doar sectoarelor cu MV_score > 0, proporțional cu scorul, cu un plafon dur de 45% per sector (anti-concentrare) și un minim de 15% pentru orice sector deținut (altfel costurile de tranzacționare mănâncă poziția pe o piață cu spread-uri largi).
Alocare brută proporțională (doar scorurile pozitive: 0,895 + 0,590 = 1,485): ENERGY = 0,895/1,485 = 60,3% → plafonat la 45%; BANK = 39,7% → 40%; surplusul de 15% de la plafonarea ENERGY îl redistribui către BANK până la limita lichidității, sau îl ții în cash/BET-TR ca tampon. UTIL și GROWTH = 0% (scoruri negative). Soluție finală curată: ENERGY 45% / BANK 40% / cash sau BET-TR 15%.
Stratul 1 codificat numeric: scorul de fază
Ca să automatizezi, faza nu poate rămâne calitativă. Codific-o cu un mic indice pe patru semnale, fiecare scorat −1 / 0 / +1, unde +1 = pro-ciclic (favorabil energy/bănci/risc), −1 = defensiv:
- Direcția dobânzii BNR (medie mobilă pe ultimele 2 decizii): taie = +1, pauză = 0, urcă = −1. (În 2026 dobânda-cheie a fost menținută la 6,50% — pauză prelungită; verifică pe bnr.ro înainte de fiecare rebalansare, deciziile fiind de regulă 8/an.)
- IPC vs țintă și pantă: sub țintă și în scădere = +1 (lasă loc de relaxare); peste țintă și în creștere = −1.
- Curba 10Y-2Y titluri de stat: steepening = +1, inversată = −1, plată = 0.
- Creditul neguvernamental (variație anuală, statistici BNR lunare): accelerare = +1, decelerare = −1.
Suma ∈ [−4; +4]. Mapping pe faze: +3..+4 = Faza 1 (relansare, w_mom mare), +1..+2 = Faza 2 (supraîncălzire), −2..0 = Faza 3 (încetinire), −4..−3 = Faza 4 (fund). Faza determină automat (w_mom, w_val) și multiplicatorul de regim din Stratul 1, care plafonează sectoarele „greșite" pentru fază (ex.: într-un regim −4, GROWTH primește multiplicator 0,5 chiar dacă momentum-ul lui ar fi pozitiv).
Stratul 3: gate-ul de execuție și capcanele de microstructură
Pe BVB, un semnal frumos pe hârtie poate fi imposibil de executat. Gate-ul de execuție (∈ {0,1}) cere trei condiții simultane pentru a permite o alocare crescută:
- Lichiditate: ADTV pe coșul respectiv (mediat pe 20 ședințe) ≥ pragul care îți permite să intri/ieși în ≤3 ședințe cu impact <0,5% din volum. Sub prag, plafonezi poziția la cât poți lichida realist.
- Breadth intra-sector: cel puțin 50% din numele coșului peste propria MA200 (sau, la coșuri de 2 nume ca BANK, ambele să confirme). Evită cazul în care SNP trage tot ENERGY iar SNG e în declin — un coș fals-puternic.
- Trend de bază: prețul coșului > MA200 a coșului. Cumperi momentum doar într-un uptrend confirmat; altfel momentum-ul pozitiv e doar un rebound într-un downtrend (bull trap).
Dacă gate = 0 pentru un sector altfel bine clasat, nu îl excluzi total, dar îi tai alocarea la jumătate și parchezi diferența în BET-TR/cash. Acesta e un detaliu care, în backtesting sector rotation strategie pe BVB, a separat sistematic strategiile care „arătau bine în Excel" de cele care chiar erau executabile cu €50k-€500k capital.
Rebalansarea lunară automată: cadența și regulile anti-churn
Procesul de rebalansare lunară automată bursă rulează în prima ședință completă a lunii (evită prima zi dacă e zi de decontare/expirare). Pași ficși:
- Trage datele de închidere ale lunii precedente (BVB are date EOD gratuite; pentru fundamentale folosești rapoartele trimestriale ASF/raportările companiilor).
- Recalculează cele trei straturi → MV_score per sector → ponderi-țintă.
- Bandă de no-trade: rebalansezi un sector doar dacă ponderea-țintă diferă de cea curentă cu > 5 puncte procentuale. Sub 5pp, nu atingi poziția. Aceasta taie 60-70% din tranzacții inutile pe o piață cu costuri reale (comision broker + spread + impozit pe câștig reținut la sursă, conform regimului 2026 pentru intermediarii rezidenți: 3% pe câștigul aferent deținerilor >365 zile, respectiv 6% sub 365 zile, fără posibilitatea de a compensa pierderile — verifică încadrarea cu intermediarul tău; prin broker străin fără reținere la sursă, regimul este 16% autodeclarat prin Declarația Unică).
- Histerezis pe semnal: un sector iese din portofoliu doar dacă MV_score scade sub −0,25 (nu sub 0). Pragul de intrare (0) și cel de ieșire (−0,25) diferite previn flip-flop-ul lună-de-lună când scorul oscilează în jurul lui zero.
Frecvența lunară e calibrată intenționat: săptămânal generează prea mult zgomot și costuri pe BVB; trimestrial ratează rotațiile rapide (2020, 2022). Lunar e punctul dulce confirmat empiric pentru lichiditatea de aici.
Backtesting și ROI pe sector ratio: ce te poți aștepta realist
Un backtesting sector rotation strategie onest pe BVB ~2018-2026 trebuie să respecte câteva reguli de igienă, altfel rezultatul e ficțiune:
- Point-in-time: folosește multiplii și fundamentalele așa cum erau cunoscute la data deciziei, nu cele restated ulterior. Altfel introduci lookahead masiv pe value.
- Costuri reale: scade comision (~0,1-0,3% per tranzacție la brokerii RO), spread (poate fi 0,3-1% pe nume mai puțin lichide) și slippage. Pe lunar, cu banda de no-trade, ajungi rezonabil la 4-8 rebalansări „active" pe an.
- Benchmark corect: compari cu BET-TR (buy-and-hold cu dividende reinvestite), nu cu BET price. Și raportezi ROI pe sector ratio ca randament al strategiei rotative împărțit la randamentul BET-TR pe aceeași fereastră.
- Metrici cheie: nu privi doar randamentul total. Urmărește Sharpe, max drawdown, hit-rate al rotațiilor (% de mutări care au bătut alternativa de a sta) și turnover anual. O strategie cu randament egal cu BET-TR dar cu drawdown mai mic e o victorie reală pe acest mandat.
Avertisment de specialist asupra rezultatelor: pe un univers de doar 4-5 sectoare și ~8 ani (≈96 puncte lunare, dintre care doar câteva zeci de rotații efective), numărul de tranzacții independente e mic. Orice „outperformance" trebuie testat la robustețe — variază ponderile (RS_6M de la 0,4 la 0,6), pragul de no-trade (3-7pp), pragul de histerezis — și verifică dacă rezultatul supraviețuiește. Dacă Sharpe-ul colapsează când muți un parametru cu 10%, ai overfit, nu edge. Pe BVB, cu eșantion mic, e capcana #1.
Edge-cases și ajustări de specialist
Evenimente de dividend masiv (energy/bănci)
SNG, SNP și băncile pot plăti dividende de 8-12% din preț într-o singură zi de ex-date. Asta creează un „gap" artificial în RS dacă lucrezi pe preț nereajustat. Soluție obligatorie: calculează momentum-ul pe serii total return (ajustate la dividend), altfel un coș apare brusc „prăbușit" în ziua de ex-div și sistemul vinde exact la momentul greșit.
Suprataxa pe energie și riscul de reglementare
Energy pe BVB are un risc politic/fiscal recurent (suprataxe pe profiturile excepționale, plafonări de preț). Un value-score care arată ENERGY foarte ieftin poate reflecta corect un risc de reglementare, nu o oportunitate. Adaugă un overlay calitativ: dacă există un proiect legislativ activ de suprataxă, plafonează ENERGY la 30% indiferent de scor.
Concentrarea într-un singur nume
Coșul BANK e dominat de TLV. Dacă TLV are un eveniment idiosincratic (achiziție, schimbare de management), coșul nu mai reflectă „băncile" ci TLV. Gate-ul de breadth (ambele nume să confirme) e plasa de siguranță, dar într-o piață atât de mică acceptă că diversificarea sectorială reală e limitată — nu te amăgi că ai 5 sectoare necorelate.
Fluxurile de Pilon II
Cumpărările recurente ale fondurilor de pensii distorsionează momentum-ul pe numele mari lichide (TLV, SNP, H2O). E un vânt din spate persistent pentru BANK/ENERGY care poate menține momentum artificial de ridicat. Nu e un bug de corectat, ci un factor de luat în calcul: pe BVB momentum-ul „funcționează" parțial pentru că fluxurile structurale îl auto-confirmă.
Checklist de execuție lunară (sistemul complet)
- 1. Prima ședință completă a lunii: trage datele EOD ale lunii precedente + ultimele fundamentale point-in-time (rapoarte ASF/companii).
- 2. Calculează scorul de fază (4 semnale BNR/INS, sumă ∈ [−4;+4]) → derivă faza și ponderile (w_mom, w_val).
- 3. Calculează Momentum_raw (0,5·RS_6M + 0,3·RS_12M + 0,2·RS_3M, skip-month, pe serii total return) → z_mom per sector.
- 4. Calculează percentilul de evaluare pe 5 ani per sector → Value_raw → z_val.
- 5. MV_score = w_mom·z_mom + w_val·z_val per sector.
- 6. Aplică multiplicatorul de regim (Stratul 1) și gate-ul de execuție (Stratul 3: lichiditate, breadth, MA200).
- 7. Derivă ponderile-țintă: doar scoruri pozitive, proporțional, plafon 45%/sector, minim 15%/poziție, restul în BET-TR/cash.
- 8. Aplică banda de no-trade (Δ > 5pp) și histerezisul de ieșire (MV < −0,25). Tranzacționează doar diferențele care trec.
- 9. Verifică overlay-urile calitative (suprataxă energy, evenimente idiosincratice TLV) și plafonează manual dacă e cazul.
- 10. Loghează deciziile și scorurile (audit trail) — vei avea nevoie de istoric pentru a re-valida robustețea anuală și a evita overfitting-ul prin tweaking-ul parametrilor pe ultima lună slabă.
Disciplina e tot. Un sistem mediocru executat identic 36 de luni la rând bate un sistem genial executat după inspirație. Tabloul de bord momentum-value nu îți garantează că bați BET-TR în fiecare an — îți garantează că deciziile tale de rotație sunt reproductibile, măsurabile și auditabile, exact cum trebuie să fie procesul unui specialist pe o piață mică și concentrată ca BVB.