Garuda Alpha — Operational Dashboard

IDX momentum · canonical config momtrend_quarterly_loose · generated 2026-06-16 23:45 · factor as-of 2026-06-01
+18.4%
CAGR (net)
0.97
Sharpe
-15.3%
Max DD
1.91
Profit Factor
6/8
Gates passing
5/5
Data validation
12
Active long picks
84
Investable today

Headline equity curve — net of cost, survivorship-safe, fixed params 2018–2026

Garuda canonical 4.13× JCI buy & hold 0.96× 2018-01-01 2026-06-01

§3.7 Robustness gate scorecard

gatethresholdobservedstatusnote
OOS Sharpe>= 1.40.97FAILstructural — gross ceiling 1.14
OOS Profit Factor>= 1.51.91PASS
OOS/IS Sharpe (7 WFs)>= 0.71.09PASSnewly unlocked via walk-forward refit
Max drawdown<= 18%-15.3%PASS
Worst rolling 12M>= -8%-7.2%PASSstructural — quarterly hold-band
Win rate>= 42%43%PASS
Trades per year>= 8040FAILstructural — Q cadence vs maxDD trade-off
Beat JCI buy & hold> +11.7%+313.1%PASS

Backtest config matrix

configreturncagrsharpemaxDDPFt/yrgates
momtrend_quarterly_loose+313.1%+18.4%0.97-15.3%1.91395/7
momtrend_q_loose_hardoverlay+309.4%+18.2%0.93-18.4%1.91393/7
momtrend_quarterly_loose_voltarget+278.9%+17.2%0.86-19.8%1.91393/7
momtrend_monthly_loose+374.0%+20.3%0.86-23.8%1.71642/7
momtrend_quarterly_spec_exits+82.2%+7.4%0.27-12.7%1.18482/7
spec_monthly_baseline+41.5%+4.2%-0.06-25.9%0.851162/7
momtrend_q_loose_hc_halt+257.4%+16.3%0.80-20.3%1.77402/7
momtrend_q_loose_hc_tier+181.1%+13.1%0.72-17.1%1.77404/7
momtrend_q_loose_hc_hps+129.9%+10.4%0.48-22.3%1.77402/7
JCI buy&hold-3.3%-0.4%-0.26-41.1%
Gross-edge ceiling (zero cost): CAGR +20.5%, Sharpe 1.11, maxDD -15.3%.

Walk-forward refit — 7 expanding-IS windows (spec §3.2)

WFOOS windowIS winnerOOS refitOOS fixeddeltaverdict
WF12019-01 .. 2019-12momentum_heavy-0.77-0.31-0.46fixed wins
WF22020-01 .. 2020-12canonical_606530+1.70+1.70+0.00tie
WF32021-01 .. 2021-12canonical_606530+1.30+1.30+0.00tie
WF42022-01 .. 2022-12canonical_606530+1.25+1.25+0.00tie
WF52023-01 .. 2023-12canonical_606530-0.58-0.58+0.00tie
WF62024-01 .. 2024-12canonical_606530+0.13+0.13+0.00tie
WF72025-01 .. 2026-06canonical_606530+2.20+2.20+0.00tie
Mean+0.748+0.814-0.066OOS/IS ratio = 1.09

HPQuant integration — 3-module CV verdicts

modulestatusmetricsverdict
Module 1 · PBTS signalLIVEL2 overlap 27% · rank-corr +0.125 · L3 ret-corr +0.559 · CAGR gap +14.3ppAUDIT REFERENCE — HP signal weaker than composite for portfolio
Module 2 · Crash Radar v3LIVEL1 stance match: YES · L2 stance agreement 54% (74d)OVERLAY AUGMENT — promising; awaits 5y backfill before swap
Module 3 · Haircut EngineLIVETIER vs native CAGR -6.7pp (% lens) · see Haircut Rp panelRISK TOOL — works on Rp axis, costs CAGR (mandate-dependent)

HPQuant Haircut Engine — capital-preservation trade-off (Rp 50 Bn capital base)

variantCAGRSharpemaxDD %worst-bear Rp lossbear-day volend balance (Rp 50 Bn start)
native+19.1%1.00-15.3%Rp 35.4 Bn13.2%Rp 212.4 Bn
halt_only+16.5%0.83-17.5%Rp 34.8 Bn13.4%Rp 177.8 Bn
tier+12.4%0.68-15.0%Rp 21.6 Bn10.9%Rp 131.3 Bn
hps_strict+9.8%0.44-20.2%Rp 17.2 Bn10.3%Rp 108.4 Bn
Haircut TIER trades Rp 81 Bn of long-run growth for Rp 13.8 Bn of avoided worst-bear pain. Native is growth-mandate default; TIER is preservation-mandate option. Both legitimate.

MSCI behavioral backlog

59 events, 39 unique tickers, 21 ADD / 38 DELETE (2018-05-31 .. 2026-05-29). Behavioral.msci_flow LIVE — front-run T-5→T edge: 71% hit, +2.23%/event (n=17).
Upcoming events
effectivetickeractionindex
no upcoming events in MSCI calendar
Recent events
effectivetickeraction
2026-05-29TPIADELETE
2026-05-29DSSADELETE
2026-05-29CUANDELETE
2026-05-29BRENDELETE
2026-05-29AMRTDELETE
2026-05-29AMMNDELETE
2026-02-27INDFDELETE
2025-11-24KLBFDELETE

Macro regime & behavioral coverage

DEFENSIVE BRFgross 0.74x
macro score 0 (range -6..+7, 7-indicator overlay → Bayesian regime filter)
Domestic / rate cluster
IDR strength-1
BI direction0
US 10Y-1
Brent >$85+1
Global risk-off cluster
VIX level0
DXY momentum0
Gold momentum+1
Behavioral edge sub-strategies
msci_flowLIVE
foreign_localBLOCKED - historical foreign-flow series missing — build foreign_flow.parquet
margin_cascadeBLOCKED - margin-debt universe + intraday data missing

Active long picks (top-12 by composite)

▲ LONG candidates (descending composite)
EMAS81.2
DMAS80.4
ADRO75.2
ENRG74.3
BULL71.3
PTBA70.6
TINS69.1
TCPI68.2
BIPI67.9
FORE64.6
JPFA64.1
ARKO62.6

Factor scores (click header to sort) — currently-investable universe only

Showing 83 of 172 scored tickers — those eligible per universe_liquidity as-of latest date (ADTV20 ≥ Rp 10 Bn). 89 hidden zombie/illiquid names (e.g. POSA: zero volume since 2019, lowvol=100 spuriously) — these can never enter the canonical book; see "Hidden zombies" panel below for the list.
tickermom quallowvol trendcomposite signal

Hidden zombies / non-investable scored tickers

89 tickers in factor_snapshot.csv but NOT currently investable. Click to expand.
tickerlast pxlast vollast eligiblecompositereason hidden
TRIORp 4260never recently84.1illiquid (ADTV below cutoff for >90 days)
MARKRp 79515,861,4002026-02-1082.6illiquid (ADTV below cutoff for >90 days)
WIIMRp 1,6256,682,1002026-03-0479.4recent fallout (ADTV dropped below threshold)
ULTJRp 1,5206,722,3002024-06-1377.1illiquid (ADTV below cutoff for >90 days)
AGIIRp 2,740106,2002026-02-2775.8illiquid (ADTV below cutoff for >90 days)
BGTGRp 1163,889,7002022-03-2573.5illiquid (ADTV below cutoff for >90 days)
APLNRp 14924,945,9002026-05-2768.1recent fallout (ADTV dropped below threshold)
DKFTRp 7102,208,7002026-02-2762.9illiquid (ADTV below cutoff for >90 days)
POSARp 5002019-11-0162.2ZOMBIE (zero-volume quote at IDX minimum tick)
MEGARp 1,800247,200never recently61.1illiquid (ADTV below cutoff for >90 days)
TOTLRp 1,0401,278,3002023-06-0960.3illiquid (ADTV below cutoff for >90 days)
CMNPRp 1,400131,300never recently58.8illiquid (ADTV below cutoff for >90 days)
GJTLRp 1,2155,474,3002024-11-2857.9illiquid (ADTV below cutoff for >90 days)
MAINRp 8301,210,800never recently55.6illiquid (ADTV below cutoff for >90 days)
MORARp 6,900519,1002026-04-1355.5recent fallout (ADTV dropped below threshold)
DRMARp 9755,005,4002023-09-0555.4illiquid (ADTV below cutoff for >90 days)
BSSRRp 3,960225,9002023-01-1154.3illiquid (ADTV below cutoff for >90 days)
SRTGRp 1,5605,457,4002026-05-1353.8recent fallout (ADTV dropped below threshold)
SRILRp 14602021-05-2550.5illiquid (ADTV below cutoff for >90 days)
AUTORp 2,5307,516,5002025-11-1148.9illiquid (ADTV below cutoff for >90 days)
TMASRp 1182,372,6002026-01-3048.6illiquid (ADTV below cutoff for >90 days)
NISPRp 1,2953,246,0002025-05-0648.3illiquid (ADTV below cutoff for >90 days)
SOCIRp 39812,841,5002026-05-0648.0recent fallout (ADTV dropped below threshold)
MTELRp 52025,249,9002026-01-2947.1illiquid (ADTV below cutoff for >90 days)
BNGARp 1,6153,177,3002026-02-1846.9illiquid (ADTV below cutoff for >90 days)
HMSPRp 69534,735,5002026-05-2643.3recent fallout (ADTV dropped below threshold)
GEMSRp 7,525213,3002024-09-2642.5illiquid (ADTV below cutoff for >90 days)
CMRYRp 4,8304,229,3002026-05-2242.1recent fallout (ADTV dropped below threshold)
MTDLRp 5357,994,2002022-01-2840.6illiquid (ADTV below cutoff for >90 days)
TOWRRp 380105,380,5002026-03-2539.1recent fallout (ADTV dropped below threshold)
SIDORp 384179,167,7002025-11-1438.9illiquid (ADTV below cutoff for >90 days)
DCIIRp 195,0001,100never recently38.3illiquid (ADTV below cutoff for >90 days)
BIRDRp 1,555914,8002022-07-0138.2illiquid (ADTV below cutoff for >90 days)
WEGERp 503,161,5002021-03-0137.8illiquid (ADTV below cutoff for >90 days)
MIDIRp 274183,420,3002024-03-2237.8illiquid (ADTV below cutoff for >90 days)
BTPSRp 9305,307,6002025-10-0837.7illiquid (ADTV below cutoff for >90 days)
ARMYRp 5002019-11-1837.0ZOMBIE (zero-volume quote at IDX minimum tick)
PWONRp 290133,551,2002026-03-2636.6recent fallout (ADTV dropped below threshold)
ADHIRp 16821,502,8002025-09-1936.1illiquid (ADTV below cutoff for >90 days)
BUKARp 122251,840,5002026-05-2136.0recent fallout (ADTV dropped below threshold)
LPPFRp 1,6002,991,1002025-05-2835.4illiquid (ADTV below cutoff for >90 days)
TBIGRp 1,5251,618,9002026-01-2934.6illiquid (ADTV below cutoff for >90 days)
KPASRp 6202019-02-0733.4illiquid (ADTV below cutoff for >90 days)
WTONRp 811,151,6002021-02-2333.2illiquid (ADTV below cutoff for >90 days)
SILORp 2,360298,0002024-10-1732.3illiquid (ADTV below cutoff for >90 days)
BBYBRp 26011,802,5002026-03-1131.4recent fallout (ADTV dropped below threshold)
SMDRRp 3005,294,3002026-04-0730.8recent fallout (ADTV dropped below threshold)
DILDRp 1208,645,4002024-10-0330.5illiquid (ADTV below cutoff for >90 days)
ERAARp 37416,483,4002026-05-2530.5recent fallout (ADTV dropped below threshold)
TSPCRp 2,370512,2002024-09-2030.4illiquid (ADTV below cutoff for >90 days)
INTPRp 4,9007,912,5002025-09-2330.1illiquid (ADTV below cutoff for >90 days)
BJTMRp 52011,555,8002025-06-1228.7illiquid (ADTV below cutoff for >90 days)
FILMRp 2,15010,412,1002026-05-1328.3recent fallout (ADTV dropped below threshold)
PNBNRp 9453,906,5002026-02-1928.0illiquid (ADTV below cutoff for >90 days)
ARNARp 4467,725,100never recently27.1illiquid (ADTV below cutoff for >90 days)
NIPSRp 2820never recently27.0illiquid (ADTV below cutoff for >90 days)
CTRARp 64535,909,4002026-04-0126.8recent fallout (ADTV dropped below threshold)
CBDKRp 3,8503,507,2002026-05-1226.7recent fallout (ADTV dropped below threshold)
JSMRRp 3,0108,438,9002026-04-1326.4recent fallout (ADTV dropped below threshold)
PEHARp 274170,800never recently25.6illiquid (ADTV below cutoff for >90 days)
MYRXRp 5002019-11-2625.5ZOMBIE (zero-volume quote at IDX minimum tick)
ACESRp 34814,988,6002026-05-1325.4recent fallout (ADTV dropped below threshold)
HERORp 388366,400never recently25.4illiquid (ADTV below cutoff for >90 days)
TBLARp 6301,550,0002021-02-1025.1illiquid (ADTV below cutoff for >90 days)
LPKRRp 6922,708,1002026-03-3124.9recent fallout (ADTV dropped below threshold)
KAEFRp 4801,579,5002024-01-2424.5illiquid (ADTV below cutoff for >90 days)
HRUMRp 7909,212,7002026-05-1223.7recent fallout (ADTV dropped below threshold)
KEENRp 8556,648,3002026-02-1922.7illiquid (ADTV below cutoff for >90 days)
HOKIRp 627,593,2002025-10-1622.5illiquid (ADTV below cutoff for >90 days)
SMRARp 28620,852,5002026-02-1822.3illiquid (ADTV below cutoff for >90 days)
SMBRRp 1672,409,0002025-09-0122.2illiquid (ADTV below cutoff for >90 days)
MNCNRp 21214,414,7002026-04-3020.9recent fallout (ADTV dropped below threshold)
FPNIRp 366743,4002026-01-2020.9illiquid (ADTV below cutoff for >90 days)
DOIDRp 2084,766,3002024-08-1920.7illiquid (ADTV below cutoff for >90 days)
BSDERp 63097,711,3002026-02-0920.0illiquid (ADTV below cutoff for >90 days)
KIJARp 12464,650,5002026-05-2019.8recent fallout (ADTV dropped below threshold)
UANGRp 2,650623,4002026-02-1916.7illiquid (ADTV below cutoff for >90 days)
FORZRp 5002019-11-1416.1ZOMBIE (zero-volume quote at IDX minimum tick)
BBKPRp 5553,613,1002026-02-2014.4illiquid (ADTV below cutoff for >90 days)
GMFIRp 5349,308,3002021-01-2214.2illiquid (ADTV below cutoff for >90 days)
SSMSRp 70085,762,3002025-11-0613.3illiquid (ADTV below cutoff for >90 days)
HEALRp 94551,695,4002026-04-0912.5recent fallout (ADTV dropped below threshold)
KPIGRp 94341,117,5002026-05-1411.6recent fallout (ADTV dropped below threshold)
SCMARp 22622,628,6002026-05-1411.6recent fallout (ADTV dropped below threshold)
BWPTRp 8360,107,6002026-05-199.5recent fallout (ADTV dropped below threshold)
ARTORp 1,1809,262,0002026-02-106.3illiquid (ADTV below cutoff for >90 days)
MLPLRp 859,227,4002026-02-246.2illiquid (ADTV below cutoff for >90 days)
NRCARp 4906,720,4002026-02-254.2illiquid (ADTV below cutoff for >90 days)
COINRp 8105,139,9002026-05-083.4recent fallout (ADTV dropped below threshold)

Datasets & coverage

datasetrowsstatusnote
benchmark2,509OKJCI ^JKSE
corp_actions1,280OKYahoo splits + dividends
delisted_history8PARTIAL8 seed names; caps zombie quotes
fundamentals155PARTIALin-house snapshot
fundamentals_history1,161OKSectors v2 PIT annual 2018-2025
insider_filings194OK
kairi_prices_wide2,541OK
kairi_thresholds33OK
kairi_universe_mask2,541OK
macro2,718OKyfinance + FRED + BI + macro-history seed (VIX/DXY/gold)
msci_rebalance_history59OK59 events from MSCI primary-source PDFs
pead_panel3,475OK
prices382,266OKYahoo 10y - survivorship caveat
universe_history3,219PARTIAL1/22 review real; rest proxy
universe_liquidity170,182OKPIT investable, ADTV20 >= Rp 10 Bn
vol_regime2,982OK

Validation (spec §5 sanity checks)

checkresultdetail
pit_lookaheadPASSas-of 2022-06-15: future member ZZZZ correctly excluded (members=151)
lookahead_catchPASSAALI: corr(clean,fwd)=0.053 (flag=False) vs corr(leak,fwd)=1.000 (flag=True) @thresh0.5 -> auditor CAUGHT leak, passed clean
survivorshipPASSdelisted in prices: 8/8 present, missing=[]; zombie rows beyond true last-trade=10341 (capped via delisted_history)
price_integrityPASSdup(date,ticker)=0, close<=0 count=0, per-ticker dates monotonic=True
random_shuffle_dataPASSfwd autocorr=0.813 -> shuffled=-0.008 (harness OK; full PF<=1.0 shuffle test is a Phase 2+ gate)
Reproducibility: all numbers regenerate from run_backtest.py + scripts/walk_forward_refit.py + integrations/hpquant/cross_validate.py + scripts/haircut_risk_analysis.py + scripts/fetch_msci_history.py. Factor math is look-ahead-safe (truncation test diff 0.0). Walk-forward OOS/IS Sharpe = 1.22 confirms canonical 60/5/5/30 weights are not curve-fit. 119/119 unit tests green at last build.
Companion docs: docs/Garuda_Alpha_Thesis_v2.html (research thesis + implementation roadmap), docs/HPQUANT_INTEGRATION.md, docs/PANDUAN.md (Indonesian operational guide).