Conditioning beats prediction
After running dozens of strategies through a locked, real-fill gate, one number kept showing up: profit factor 1.1. Pairs trading, calendar effects, overnight drift, day trading — almost every raw edge in liquid futures lands near 1.1, the statistical equivalent of a slightly loaded coin. Then we found the lever that moves it. It isn't a better prediction. It's conditioning — only being exposed in the right state.
The ceiling nobody advertises
Here is what survives our gate, after fills, across 2008–2026:
| Edge | Profit factor |
|---|---|
| Overnight drift (long every night), index futures | 1.07–1.15 |
| Intraday session (long every day) | 1.06–1.11 |
| Monday / OPEX / jobs-report calendar effects | 1.1–1.3 |
| Z-score pairs mean reversion | < 1.0 (failed) |
This is not a coincidence, and it is not a failure of effort. Liquid futures are picked over by people with better data and faster machines than anyone reading this. What's left for bar-level strategies is thin by definition. A backtest that hands you profit factor 3 on the E-mini is, almost always, a fill artifact. The honest ceiling is around 1.1–1.3.
The lever: condition, don't predict
We took the weakest survivor — "be long the overnight session, every night" (profit factor 1.07, Sharpe 0.36, max drawdown −24%) — and added one binary filter: only hold overnight after a down day. No prediction, no model. Just a state check on yesterday's close.
| Overnight, index futures | PF (train/test) | Sharpe | Max DD |
|---|---|---|---|
| Every night | 1.07 / 1.11 | 0.36 | −24% |
| Only after a down day | 1.21 / 1.19 | 0.97 | −13% |
The same trade, filtered by a single state variable: profit factor up from 1.07 to 1.21, Sharpe nearly tripled, drawdown roughly halved — and it held in both the 2008–2017 and 2018–2026 blocks. We did nothing to predict tomorrow. We just stopped showing up on the nights that don't pay.
Why it works: mean reversion after weakness is one of the few behavioral regularities that survives in index futures. "Long every night" dilutes that signal across nights where it doesn't exist. Conditioning concentrates your exposure into the state where the edge actually lives — and, as a bonus, keeps you flat through many of the nights that produce the worst losses.
The part that didn't work — and why it matters more
Naturally, we tried to stack edges: overnight-after-down on two indices, plus the calendar effects, combined into one book. The result was honest and instructive. The combined Sharpe (0.84 out of sample) barely beat the best single component (0.85). Stacking bought us more trades and a smoother ride, but no real lift.
The reason: every one of those edges is the same bet — long equity beta, timed differently. Correlated edges don't diversify; they just re-express the same risk. Real compounding needs edges that are genuinely independent — different asset classes, different directions — so that one is paying while another isn't. That is the entire design problem of a multi-strategy book, and most retail "diversification" fails it by stacking ten flavors of the same long.
What this means if you trade a funded account
Two things. First, stop hunting for the profit-factor-3 strategy; it isn't there, and chasing it is how you end up with an over-fit backtest and a blown evaluation. Second, the edge that is there — thin, conditioned, real — lives or dies on rule math: a 1.2-profit-factor system produces losing streaks by design, and a trailing-drawdown or daily-loss rule will end your account during one of them unless the exposure is sized and timed for it.
That is the layer we build: per-firm rule engines, guard layers, and pass-lock, wrapped around honestly thin, honestly conditioned edges. Our own bots run it in public — including the losing nights.