The Chop Trader — build specification

Status: a lead worth building, not a proven strategy. The underlying effect has since been measured directly -- see CHOP_EDGE_FINDINGS.md. It is real, and it is roughly break-even against a 10 bps round trip. Read §1 before §5, because the evidence is thinner than the specification is detailed, and it would be easy to read a careful build spec as an endorsement it has not earned.

This document is what you would hand someone to build a chop-specialist BTC trader from scratch, together with the bar it must clear before anyone trusts it with money.


1. What the evidence actually is

Across four holdout evaluations of generalist policies evolved on 5-minute BTC, the CHOP window is where the two best-generalising champions both made money:

runCHOP Sharpereturndrawdowntradesbuy & hold
run 1, control−1.38−6.1%−9.7%36−0.9%
run 1, light-mutation+0.35+0.3%−1.6%50−0.9%
run 2−2.26−10.0%−18.0%44−0.9%
run 3+1.64+8.2%−9.5%36−0.9%

Two of four are positive. That is the honest headline. Three caveats, all of which matter more than the +1.64:

  1. Every row above measures the same single 90-day window (2026-02-01 → 2026-05-01).

This is n=1, evaluated four times, not four pieces of evidence.

  1. The two negatives came from the two worst-generalising runs (run 1's control had

dead biases; run 2 was catastrophically overfit at −4.97 train-to-holdout gap). The two positives came from the runs that generalised best overall. That is a suggestive pattern, not a controlled result.

  1. None of these were chop specialists. They were generalists that happened to do

well in chop. Nobody has yet built or tested the strategy this document describes.

What makes it interesting anyway: CHOP is the only regime where the champion beat buy-and-hold by a wide margin rather than merely losing less. In run 3 the champion returned +8.2% where holding returned −0.9%. In BULL the same champion made +4.1% against buy-and-hold's +39.1% — it lost badly by simply not being long. Chop is the regime where an active strategy has something to add that holding cannot.


2. Why chop is a plausible place for edge

A choppy market is defined by high realised volatility and near-zero net movement — price travels a long way and arrives nowhere. Mechanically that means price is repeatedly reverting, and reversion is one of the few genuinely exploitable microstructure behaviours.

The contrast with the other regimes explains why the generalist struggled everywhere else:

an 8-hour maximum hold is structurally handicapped — it cannot hold a trend.

That is a mechanism, not a curve fit, which is the main reason this lead is worth pursuing rather than discarding as a multiple-comparisons artefact.


3. The hard part: detecting chop causally

The window labelling in this project used each block's own realised behaviour — that is legitimate for choosing study windows but is unusable live, because it needs the future. A live trader must classify the regime from trailing bars only.

A first attempt at this used a trailing 90-day return and produced a "BEAR" label on a window that returned +20.6% and a "CHOP" label on one that returned +81.2%. The lesson: a trailing indicator describes the past, and using it as a label for the present is how you get nonsense.

Causal chop score. Compute all of these over a trailing window (200 bars ≈ 16.7h, plus 1-day/7-day confirmations), and require agreement:

signalchop conditionwhy
Kaufman efficiency ratio< 0.15net move/ sum(bar moves). Near zero = travelled far, arrived nowhere
realised volatility z-score vs trailing 30 days> 0separates CHOP (violent) from FLAT (quiet) — this is the discriminator nothing else provides
net return over the window**\ret\< 5%**no directional drift to ride
lag-1 return autocorrelation< 0negative = mean-reverting
direction-change densityhighfraction of bars flipping sign
position in 200-bar rangemid-rangenot breaking out

Require at least 4 of 6, and require the state to persist for some minimum number of bars before acting, so a single noisy bar cannot flip the regime.

Do not skip the persistence requirement. A regime detector that flickers will whipsaw the strategy into exactly the losses chop trading is supposed to harvest.


4. Trading rules

Long-only is the safer starting point — shorts have been killed twice on evidence in sibling projects (short leg negative in 6/6 up years). Add them only if a controlled test earns them.

Entry. Only while the chop detector is active. The move size matters more than the level, and the relationship is not monotonic -- see CHOP_EDGE_FINDINGS.md:

move faded (sigma of trailing window)measured edge
0-0.5+2.06 bps (too small to pay costs)
0.5-1.5+8 to +10 bps (the tradeable band)
2-3-1.20 bps (gone)
3+-20.17 bps (actively harmful)

and fading it loses 20 bps. This is a hard rule, not a sizing adjustment.

the start of a genuine breakout, which is the failure mode that kills mean reversion

Exit — whichever comes first:

must stop trading when the market stops being choppy, not ride a position into a trend.

Sizing. Fixed fraction of equity, and cap leverage at 2×. Pyramiding is optional and was not what produced the results above; add it only after the base version works.

Costs. Assume 5 bps/side minimum, and require the strategy to survive 10 bps. Every result in this project so far has died at the fee wall: run 3's champion was +0.03 Sharpe at 2 bps and −1.00 at 10 bps. A chop strategy trades often, so it is maximally exposed to this. If it does not clear 10 bps it is not a strategy.


5. Features to give the model

If the strategy is evolved rather than hand-coded, these are the inputs that matter, grouped by what they tell it:

Regime state (added in run 4 for exactly this reason) rvol_200, rvol_1d, rvol_7d, rvol_30d, vol_z_vs_30d, ret_200, ret_7d, ret_30d, eff_ratio_200, range_200_over_close, pos_in_range_200, dir_changes_200, autocorr_200

Reversion signals Bollinger %b and bandwidth, distance from the 200-bar mean in ATR units, RSI(14), consecutive-bar run length

The raw price window 200 normalised closes, z_i = (c_i/c_last − 1)/σ_window. Ablation showed the raw window dominated every engineered indicator combined (Δ Sharpe −13.0 when removed, versus −1.11 for the best single indicator). The model is fundamentally a price-shape reader. Do not replace this with summary statistics.

Standardise every feature by median/IQR fitted on training data only. At 5-minute resolution raw indicator scales differ by ~500× (close_over_ema20 sd ≈ 0.002 versus vol_z_288 sd ≈ 1.07), and unstandardised, eleven of thirty-nine features were effectively invisible to the network.


6. The bar it must clear

Fix these before running anything, and do not move them afterwards:

  1. Multiple chop windows. The single biggest weakness of the current evidence.

There are 14 CHOP candidate windows in the 2017–2026 archive; train on some, hold out others. One window is not a result.

  1. Beat buy-and-hold and cash on each held-out chop window.
  2. Beat a random-timing control — 200 random schedules matched on trade count and

hold length. Must clear the 95th percentile.

  1. Survive 10 bps/side.
  2. Regime-detector honesty check. Run the detector on the whole archive and confirm

the periods it flags actually look choppy in hindsight. A detector that fires everywhere is not detecting anything.

  1. Trade in the periods it claims. ≥100 trades/year while active.

Failing any of these means it does not work, and should be reported that way.


7. How this most likely fails

Stated in advance so it is not rationalised away later:

idle most of the time, so annualised returns will look small even if the mechanism is real.

may be ending. This is the single most likely failure mode.

one where the range finally breaks. The volume filter and the ATR stop exist for this.


8. Provenance

Derived from the BTC Regime GA experiment: 5-minute BTCUSDT, 2017-08 → 2026-09, regime-labelled 90-day windows, holdout strictly later in time than all training data and read once per champion. Four holdout reads to date, all disclosed in RESULTS.md. No configuration tested so far has passed its pre-registered criteria — including the generalists that produced the chop numbers above.