Koryu · 黄龍
Koryu
← Research library
Research · 研究 · The system

The backtest says 773x. That is why we don't trust it yet.

16 Jul 20269 min readThe systemKoryu Research

Every number below is a backtest, not a track record. The rules were frozen in writing before this article was drafted, and the candidate they describe is running in shadow: it holds no capital and places no orders. Backtests flatter; live results are lower. Nothing here is a recommendation or investment advice. Decisions are yours.

Our crypto strategy of record has spent 92% of its days underwater and is currently 44% below its December 2024 high. That is not a malfunction, it is what a momentum strategy looks like from the inside, but it is a fair reason to ask whether the design can be improved. This is the answer we arrived at, the evidence for it, and the reason it is not live.

What version 1.0 does, and where it hurts

The strategy of record is deliberately small. Universe: the 15 major coins. Ranking: 60-day momentum, top five, equal weight, rebalanced every 14 days. Gate: hold nothing unless BTC closes above its 50-day moving average with the 20-day average also above the 50-day. One filter: skip coins whose perpetual funding is crowded on the long side (a z-score of 2 or more), the single addition that survived our validation battery, as told in the record of a dozen ideas and one seatbelt. Costs: 20 basis points per side. Over 2019-10 to 2026-07 that returns 70.9x with a Sharpe of 1.11 and a -45% maximum drawdown.

The pain is concentrated and legible. The win rate is 49%, a coin flip; the strategy compounds only because the average winner (+47%) is nearly four times the average loser (-12%), and ten trades out of 224 produced 48% of all winning return. It has endured two roughly two-year drawdowns. Its dead years are the bear years: 2022 returned -29% and 2025 returned -9%, because a long-only strategy in a downtrend can do nothing but sit in cash and wait. Two questions follow. Can the gate be smarter about when to be invested? And can the bear years earn instead of idle?

Change one: a committee instead of a threshold

The v1.0 gate is two moving-average comparisons. The candidate replaces it with a hidden Markov model: a statistical model that assumes the market is in one of a few unobservable states, each with its own return and volatility signature, and infers which state today most likely belongs to. Ours uses three states, fits on two BTC features (distance from the 50-day average, and the 5-day return), refits every 30 days on an expanding window, and is strictly causal, meaning the state assigned to any given day is computed only from data available on that day.

The first version of this worked well: 126.8x against the deterministic gate's 70.9x, and the validation-window drawdown fell from -44% to -27%. We had a pre-registered rule for exactly this moment, so we ran the plateau test before celebrating. A hidden Markov model is fit by an algorithm that starts from a random initialization; the random seed is not a parameter of the market, it is an implementation detail that should not matter. If the result depends on it, the result is luck. We re-ran the identical model under five seeds:

Gate (identical rules, different seed)Full periodValidation windowValidation drawdownDays invested
Deterministic gate (v1.0 baseline)70.9x4.2x-44%n/a
Seed 7 (the original result)126.8x6.2x-27%35%
Seed 99123.3x6.2x-27%32%
Seed 4262.5x3.8x-23%20%
Seed 142.5x3.6x-35%31%
Seed 2324.9x3.4x-27%30%
Ensemble: majority of all five147.0x6.2x-27%n/a

Read the middle of that table before the bottom. Three of the five models lose to the plain moving-average gate they were supposed to beat, and the spread between the best and worst member is five-fold on identical rules. The original 126.8x was a lucky draw: had we started with seed 23 we would have written this section as a rejection. So the verdict on the single-seed model was: do not adopt. The only thing that survived every seed was the drawdown cut, -23% to -35% against the deterministic -44%, matching what we found on equities: regime models are drawdown cutters, not return adders.

The fix follows from the diagnosis. If each model finds real structure but draws its boundaries noisily, averaging away the noise is the textbook move. So the candidate runs all five and turns the gate on when at least three vote risk-on. That vote returns 147.0x with the -27% drawdown intact, and the important part is not the number, it is that the vote beats every member it is built from, including the best one, while three of those members individually lose to the baseline. A committee that outperforms its own best member is the signature of variance reduction, and it is the strongest evidence we have that the model reads real regime structure with noisy edges rather than memorizing noise. It is also the reason the ensemble, not seed 7, is what we froze.

Change two: making the bear years work

The short leg only exists when BTC closes below its 50-day average with the 20-day also below the 50-day, the strict mirror of the long gate. It shorts the top five coins ranked by a bear score we froze months earlier, an 11-feature model built on training cycles that ended in October 2023 and published in our derivation journal. The universe is coins with an active perpetual market, over $5M in median 30-day dollar volume, and no pegged assets. The frictions are modeled honestly: 20 basis points a side, a per-slot loss cap at -100% to represent liquidation, and real daily funding payments from the actual funding series rather than an assumption.

Ranking choice is where this gets interesting, because the obvious ideas fail:

What to short in a downtrendFull period2022 bear2025-26 bear (out-of-sample)Funding paid
The frozen bear score5.26x2.52x2.00x-$223.4k
The biggest losers0.81x1.43x1.28x-$16.6k
The most extended2.57x2.42x1.09x-$184.9k
The frothiest0.86x1.14x1.13x-$67.9k

Shorting what has already fallen loses money. Shorting froth loses money. The frozen score, which never saw the 2025-26 bear when it was built, made 2.00x in it, after paying $223,400 of real funding on the way. Note what the funding column shows: the sleeve that earns is the sleeve that pays the most to hold its positions. That is the cost of being short in a market where shorts finance longs, and it is why a short backtest that omits funding is fiction.

We also ran the knobs, because a result that only exists at one setting is not a result. Across top-3, top-5, and top-8 baskets, 7, 14, and 21-day rebalances, and both gate definitions, every variant earns 1.5x to 4x in both bears, including the out-of-sample one. That is a plateau, not a spike. The full-period spread is wide (0.63x to 5.26x) and the reason is instructive: the losses come from gate false positives, shorting a correction inside a bull market and getting squeezed. The fix for that is a better classifier, not a different basket size.

The two legs together

The legs never overlap. Across 2,477 days, the long gate and the short gate were never both on, which is arithmetic rather than luck: one requires BTC above its 50-day average, the other requires it below.

LegFull periodSharpeMax drawdownValidation window
v1.0, deterministic long only70.9x1.11-45%4.2x / -44%
v2.0 long, ensemble gate147.0x1.47-49%6.2x / -27%
v2.0 short sleeve5.3x0.45-42%1.6x / -33%
v2.0 combined773.4x1.40-43%9.6x / -38%

The year-by-year record is where the design intent shows, combined against v1.0: 2019 +3% vs -19%, 2020 +60% vs +75%, 2021 +2,739% vs +1,683%, 2022 +68% vs -29%, 2023 +119% vs +140%, 2024 +103% vs +113%, 2025 +118% vs -9%, 2026 -7% vs -21%. The dead years flip, which was the entire point. Three mid-bull years give a little back, because the ensemble trades some chop-period upside for regime precision. And 2021 is a reminder to read multiples skeptically: a single mania year contributes most of every headline number in this article.

The bug we found in our own gate

The first regime run produced 151.2x, and it was wrong. Our walk-forward refit the model every 30 days, then asked it to label the days in that chunk. The library's default labeling answers a subtly different question: given the entire chunk, what was the most likely state path? That means a day's label could be informed by what happened up to 29 days later. It is a small leak, the kind that never announces itself, and it is worth about 24x of fictional return.

We rewrote the inference to be strictly causal, so each day is labeled using only the data available through that day, and re-ran. The result fell from 151.2x to 126.8x and survived, which is the only reason the idea is still alive. We are documenting this because a lookahead bug that improves your results is the easiest error in quantitative finance to leave in place, and the published version of a strategy is worth exactly as much as the rigor of the search for its own bugs, a theme we develop in the audit of our own backtest.

What we rejected on the way here

The published version is the survivor of a much longer list. Our equity system requires a regime flip to persist for 10 days before it acts, a convention that has served it well; ported to crypto it is a disaster, taking the deterministic gate from 70.9x to 26.2x with a worse drawdown (-52%), and the ensemble from 147.0x to 34.5x. Crypto falls too fast to spend ten days confirming; the confirmation lag rides the first leg down every time. Market-breadth gates, which are the best bear detector we measured, are too slow for the long side, where recoveries start before breadth improves. Hidden Markov gates on the short side died the moment we made inference causal. Threshold-based pick rules (momentum above 400%, acceleration, and similar) turned out to be mania artifacts that worked in two of seven bull cycles. And a search for per-coin criteria separating the strategy's winners from its losers found nothing: across 17 features, the discrimination was a coin flip. The only variable that separated winners from losers was the market tape itself, which is why this version changes the gate and not the ranking.

The caveats, in full

The short sleeve has seen exactly two usable bear markets, because per-coin funding data does not exist before that, and one of the two is in-sample for the bear score. A two-event sample is not a distribution. The backtest also rides dying coins further down than reality usually permits, since exchanges tend to delist a perpetual before the asset finishes collapsing; that bias flatters the short leg. The -100% slot cap is kinder than real maintenance margins, and short slippage in practice exceeds 20 basis points.

On the long side: the ensemble's drawdown improvement is era-specific. In the validation window it cuts the drawdown from -44% to -27%, but measured over the full history its -49% is slightly worse than v1.0's -45%. We will not quote "drawdown cut" without that qualifier. The ensemble also missed a clean off-flip at the November 2025 bear onset that the plain gate caught, which is a specific reason the short side stays deterministic. And the gate has not been through our formal overfitting battery: it is one pre-registered design that cleared one pre-registered bar, which is weaker evidence than the multiples suggest. Every figure here also rests on a single asset-class era containing one 2021.

Why it is not live

Because we do not believe our own backtest yet, and neither should you. A frozen spec running forward in public, on data it has never seen, generating a record we cannot edit afterward, is the only evidence that settles the question. So both gates run every day on the shadow page: the current rules and the candidate, side by side, with every disagreement logged. The days they diverge are the test. Any change to the spec (a seed, a moving-average length, a threshold) restarts the clock, which is the constraint that keeps a shadow period honest rather than a slow-motion search for a flattering start date. We will re-examine after a regime flip or roughly three months, whichever comes first, and publish what we find whether or not it agrees with this article. Until then, version 1.0 remains the strategy of record and the shadow is a log. Decisions are yours.

Related reading
The systemWhat survived the gate: one filter out of a dozen6 min readThe systemThe Momentum Monitor methodology: every formula on the board6 min readThe systemThe Regime Dial methodology: the published formula5 min read
Frequently asked

What is Koryu's strategy v2.0?

A candidate long/short crypto strategy, not a live one. The long leg holds the top five majors by 60-day momentum, gated by a five-model hidden Markov ensemble instead of a moving-average threshold. The short leg activates only in confirmed downtrends and shorts the top five coins by a bear score frozen in October 2023, with real funding costs modeled. Combined, it backtests at 773.4x from October 2019 against version 1.0's 70.9x, with the 2022 and 2025 losses turning into gains.

Why use an ensemble of hidden Markov models instead of one?

Because a single model's result was seed luck. Re-running the identical model under five random initializations gave 24.9x, 42.5x, 62.5x, 123.3x, and 126.8x: a five-fold spread on identical rules, with three of the five losing to the plain moving-average gate they were meant to beat. The majority vote of all five returns 147.0x, beating every member it is built from. A committee outperforming its own best member is the signature of variance reduction rather than a lucky draw.

Does shorting crypto in a bear market actually work in backtest?

Only with the right selection rule, and only after paying for it. Shorting the biggest losers returns 0.81x and shorting the frothiest coins 0.86x: both lose money. The frozen bear score returns 5.26x over the full period and 2.00x in the 2025-26 bear it never saw during construction, after paying $223,400 in real funding. A short backtest that ignores funding payments is fiction.

What is a lookahead bug and did you have one?

It is when a backtest uses information that would not have been available at the time. Ours did: the regime model labeled each 30-day chunk using the whole chunk's data, so a day's state could be informed by up to 29 days of future prices. Fixing it to strictly causal inference cut the result from 151.2x to 126.8x. We publish this because a bug that inflates your results is the easiest one to leave in place.

Why isn't the strategy live if the backtest is that good?

Because backtests flatter and this one has real weaknesses: two usable bear markets total, a delisting bias that favors the short leg, an era-specific drawdown improvement, and no formal overfitting battery on the gate itself. The candidate runs in shadow instead, computed daily beside the current rules with every disagreement logged publicly. No capital follows it, and any change to the spec restarts the clock.

Does Koryu's 10-day confirmation rule work on crypto?

No, and this was one of the clearest negative results in the study. The 10-day confirmation convention that works on our equity system takes the crypto gate from 70.9x to 26.2x with a worse drawdown of -52%, and the ensemble from 147.0x to 34.5x. Crypto falls too fast to spend ten days confirming a regime change; the lag rides the first leg down every time.