---
title: "A Forecast You Can't Cheat"
description: "Treat Kronos as a causal filter, not an oracle: no peeking ahead, scheduled refreshes, and disk-cached forecasts for research."
canonical: https://www.tradelogger.dev/blog/kronos-veto
date: 2026-07-08
---

# A Forecast You Can't Cheat

*Optional bias gate with causal context windows*

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.
Canonical HTML: https://www.tradelogger.dev/blog/kronos-veto
