← Back to blog

Research

A Forecast You Can't Cheat

Optional bias gate with causal context windows

veto vs strict · refresh bars · reversal skip

July 8, 2026 · 8 min read

Foundation models for K-lines are tempting: plug in a forecast, filter bad trades, print alpha. They're also a lookahead trap wearing a lab coat.

Filter, not signal

VuManChu and fib logic still generate entries. Kronos adds a directional bias column — bullish, neutral, bearish — from a short forward forecast. Veto mode blocks longs into bearish bias and shorts into bullish bias. Strict mode is harsher. The strategy remains the strategy.

Causal or useless

  • Context window ends strictly before the bar being gated — no peeking at the entry candle.
  • Forecast refreshes every N bars, not every tick — bias held constant between refreshes.
  • Results cached to disk keyed by data window — second research pass doesn't torch the GPU.
  • Optional skip for reversal-tagged entries — don't veto the trades your system explicitly labels as reversals.

What we learned sweeeping

On a already-filtered dual-timeframe reversal stack, Kronos often trimmed trades without beating the baseline risk-adjusted stats. That's a useful result — it means the filter works as designed (it blocks things) but isn't free alpha. Research belongs in A/B backtests, not in live deploy by default.

Submodule vendored, CPU inference fine, GPU optional. If the model isn't checked out, backtest fails with a clear error — not a silent neutral bias.