← Strategies

Indonesia Momentum Beta

12-month momentum on Jakarta Composite (JK) equities · JCI MA200 regime · 15 stocks equal weight · monthly rebalance · 2004–2026

Report date: 2026-08-25 · Data: EODHD daily (~1,014 JK tickers) · Research strategy — no live signal is running for this market

This report leads with the honest number, not the biggest one. This backtest went through three rounds of scrutiny this cycle: a self-audit, an independent reimplementation, and a hostile adversarial audit explicitly designed to break it. The raw full-period backtest reports CAGR +28.0% / Sharpe 0.99 — that number is real (the engine reproduces it to the decimal) but it is inflated by survivorship bias and favorable conventions. The numbers below are what survives after those corrections.

+15.1%
CAGR, net
0.56
Sharpe, net
-47.5%
Max Drawdown
2026 YTD
-28%

2017–2026 standalone (survivorship-clean window), net of an estimated 100bps round-trip transaction cost and a 6% IDR risk-free rate. This is the closest thing to "what an investor would actually have realized." Excess-of-cash Sharpe: 0.38.

Read the full adversarial audit →

Methodology

Why the headline number is lower than the raw backtest

The raw, full-period configuration (12-month momentum, top15 equal-weight, mcap ≥ 1T IDR, JCI MA200 regime, 2004–2026) backtests to CAGR +28.0%, Sharpe 0.99, MaxDD -41.8%. A hostile adversarial audit independently reimplemented the engine from raw price data and reproduced this figure to the decimal, month by month — the arithmetic is not in question. What is in question is whether that number describes an investable strategy. Four corrections bring it down, cumulatively:

1. Survivorship bias (the largest effect)

The EODHD Indonesia dataset contains zero delistings before 2017 — every one of the ~1,014 price histories that ends early only starts doing so from 2017 onward. Real IDX delistings ran at roughly 5–15 companies per year across 2004–2016, and a cross-reference against an officially compiled IDX delistings list (112 rows, 2005–2015 Fact Books plus secondary sources) confirmed 0 of 56 real delisted companies from that period exist as dead stocks in the dataset. Five are high-confidence, momentum-shaped blow-ups the strategy would plausibly have held before their collapse:

Quantified impact: -1.5 to -2.5pp CAGR (range -1 to -4pp) on the 2004–2016 leg, and a Sharpe hit that is disproportionate because the missing losses concentrate in the 2008 and 2015 crisis years — the reported 2004–2016 Sharpe of 1.36 is plausibly closer to 1.0–1.2 in reality. Even the "clean" 2017+ window is not fully clean: the dataset has ~26 real delisted stocks against an estimated 40–60 real IDX delistings over 2017–2026 (15 official delistings in 2025 alone vs. 10 in the dataset). The 2017–2026 numbers on this page should be read as a ceiling, not a central estimate.

2. Benchmark and cost conventions

The raw backtest compares a total-return strategy against a price-only JCI benchmark (overstating alpha by ~2–3pp), assumes zero risk-free rate in a currency where cash yields ~6% (Sharpe 0.99 → ~0.85 on an excess-return basis), and charges zero transaction costs against a strategy that turns over ~32% of the portfolio per month. At 100bps round-trip cost, CAGR falls to +21.7% and Sharpe to 0.82 on the full period; at 200bps, +15.6% / 0.64.

3. In-sample parameter selection

This configuration (12-month lookback, top 15, 1T IDR floor, MA200 regime) was the best cell of a 5×7 grid plus 6 moving-average variants, itself selected from a multi-market search. The parameter surface is a smooth plateau rather than an isolated spike (6-month lookback: Sharpe 1.06; 9-month: 0.96; 12-month: 0.99 — all in the same range), which mitigates but does not eliminate the winner's-curse expectation that live results run below backtest.

Step-down from raw to honestCAGRSharpeMaxDD
Raw, full period 2004–2026 (inflated)+28.0%0.99-41.8%
2004–2016 leg alone (survivorship-affected)+34.7%1.36-24.8%
2017–2026 standalone, gross (survivorship-clean window)+19.1%0.66-41.8%
2017–2026, net of 100bps costs + 6% rf (headline)+15.1%0.56-47.5%

Source: hostile adversarial audit, Table D (full report →). The 2017–2026 gross figure was independently recomputed from the audit's reproduced monthly return series for this page and matches to one decimal.

Annual returns (raw, gross, no cost)

From the audit's reproduced monthly return series — the same series underlying the raw +28.0%/0.99 headline. Years before 2017 (shaded) sit inside the window with confirmed 0% delisting coverage and should be read as an upper bound, not a clean estimate. This table is gross of the 100bps cost applied to the net headline above.

YearReturnYearReturnYearReturn

2004 is a dead warm-up year (12-month momentum needs a full year of lookback) included at 0% in the audit's n=270 count — the strategy is effectively live from 2005. 2026 is partial (through July).

3-year rolling CAGR

Trailing 3-year annualized return, computed on the same raw monthly series, at each year-end. Shows the same pattern as the annual table: elevated and volatile through the survivorship-affected years, compressing sharply after 2017.

Year-end3Y CAGRYear-end3Y CAGR

Caveats and risks

What the audit process concluded. The hostile audit's own verdict, translated: it would not put real capital into this strategy in its current form, with 85/100 confidence in that judgment. What survives independent, adversarial scrutiny is the signal itself — the engine reproduces exactly, there is no lookahead, and randomized/inverted placebo tests behave as they should (inverted ranking collapses to Sharpe 0.18 with an -80% drawdown; random selection tracks the market). What does not survive is the headline 28%/0.99 as a forward-looking expectation. The honest, investable estimate is CAGR ~15%, Sharpe ~0.5–0.7, MaxDD -35% to -45% — a decent strategy, not an exceptional one.

Why beta — and why research-only. This strategy has no live signal running. It exists as a backtest that has been through unusually heavy scrutiny (self-audit, independent reimplementation, hostile adversarial audit) and come out reduced but real. Before any live capital, the audit's own next steps would need to happen first: reconstructing the universe with the official IDX/KSEI delistings list to directly measure survivorship impact, measuring real IBKR execution costs for IDX names, and a frozen paper-trading period comparing live fills to backtest closes.

Read the full adversarial audit →  ·  Strategy overview page →