JA//SYSTEMS eagle mark JA//SYSTEMS

Research

The studies I'd show a risk desk: failures included.

Three complete case studies from my own research log. One is a bug hunt that destroyed most of a backtest's edge. One is a negative result that killed a strategy I believed in for years. One is a genuine discovery inside an already-validated system. They're presented the way they happened (question, method, result) because how a researcher handles bad news is the only credential that matters.

Case study 01 · Bias hunt

The backtest that read tomorrow's newspaper

The question: A multi-timeframe trend system had validated beautifully: a 10-instrument portfolio showing +0.185R per trade over ~3,000 trades, a 57.6% win rate, eight instruments cleared for deployment. Before capital went anywhere near it, one question had to survive an audit: does the backtest know anything at decision time that the live system couldn't have known?

The method: Line-by-line reconstruction of what information each decision could legally see. The bug, once found, was quiet: the higher-timeframe trend windows were sliced by bar open time, which admitted the still-forming daily bar (carrying its final close, up to ~23 hours of future information) into the trend filter on every single evaluation. Because a daily bar's eventual close correlates with the outcome of a breakout taken during that day, the filter was subtly grading entries with the answer key.

Before and after: the look-ahead bias in the higher-timeframe trend filter BEFORE: BIASED backtest sliced higher-timeframe bars by OPEN time still forming decision time t bar's FUTURE final close feeds the filter HIGHER-TF TREND FILTER sees up to ~23h of the future AFTER: CORRECTED only bars fully CLOSED at decision time are admitted excluded last completed close only HIGHER-TF TREND FILTER point-in-time information only
Simplified for publication. The bias: slicing higher-timeframe windows by bar open time admitted the still-forming bar, whose final close lies hours in the future, into the trend filter at every decision. The fix admits only bars fully closed at decision time.

The result: The corrected backtest collapsed the portfolio edge from +0.185R to +0.053R; roughly 70% of the claimed edge was the bias. Win rate fell from 57.6% to 51.9%. Of ten instruments, exactly one survived the acceptance bar.

The step most backtests never get: a control run. The old, biased slicing was re-emulated bit-for-bit on identical fresh data and reproduced the original results to within a few hundredths of an R, proving the collapse was caused by the bias fix, not by a shifted data window. That's the difference between "the numbers changed" and "the cause is isolated."

What it became: The invalidated benchmark was retired in writing so it could never be used as a target again. The surviving instrument was rebuilt around what a follow-up exit study proved actually carried the edge, revalidated on the corrected engine, and is the system that trades live today. The bias class itself became a permanent item on my audit checklist, including checking that the live scanner's bar handling matches the corrected backtest's semantics exactly, because a backtest and a live feed can disagree about time in both directions.

+0.185R

claimed edge, biased

+0.053R

edge after correction

−5.7pp

win-rate inflation removed

1 / 10

instruments surviving

Case study 02 · Negative result, published

123 pairs, 116,199 setups, no edge

The question: Before going systematic, I traded a daily-chart directional-bias pattern by hand and believed in it. Most traders never test the beliefs they're actually risking money on. This study asked the uncomfortable version: across the entire fiat FX universe, with zero look-ahead, does the pattern predict anything at all?

The method: 123 currency pairs, ~8 years of daily history each, 116,199 pattern instances: every continuation, excursion, and bias-flip measured with point-in-time data only, checkpointed per pair so the whole study is reproducible with two commands. No entries, no stops, no cherry-picked examples: pure statistical validation of the belief itself.

The result: On liquid majors, the only pairs a retail trader can actually trade, next-day continuation came out at 49.6%. A coin flip, slightly worse. The seductive part was the pooled number: across all 123 pairs the pattern looked predictive several days out. That turned out to be a composition artifact: persistent drift in pegged and exotic crosses whose spreads are untradeably wide. The pattern "works" precisely where it cannot be traded, which is how plenty of trading folklore survives.

What it became: The strategy was retired, in writing, with the data attached. No tweaking until something passed, no quiet shelving. The study cost days and saved years, and it set the internal rule that every manual conviction gets the same treatment before it touches capital: if a belief can't survive its own universe-wide test, it isn't an edge, it's a memory.

49.6%

next-day continuation, liquid majors

116,199

setups measured

123

pairs, ~8y daily history

0

strategies deployed from it

Case study 03 · Discovery

The edge was only ever on one side

The question: The EURCHF mean-reversion system had already passed a full validation: positive every year in the test window, confirmed on a held-out year, statistically significant. A later strategy review asked a question the original 288-configuration grid search structurally couldn't ask: the design fades dislocations in both directions by construction, but is the edge actually symmetric?

The method: No new backtest, no new parameters: just re-cutting the existing validated trade log by direction. That matters: when a split is decided after seeing the data, the honest protocol is to treat the result as a hypothesis, demand year-by-year sign consistency, and plan from the conservative end of a bootstrap interval rather than the point estimate. All of that is in the write-up.

The result: The split was not subtle. Buying the downside dislocations: +0.392R per trade across 192 trades, positive in all six years, including the low-volatility 2026 patch that drags the combined system toward zero. Fading the upside: −0.062R across 126 trades, negative in four of six years. The system's entire edge lives on one side of the book; the other side has been quietly taxing it the whole time. The economic story is coherent: the two directions face different structural flows in that pair, which is what separates a finding from a fluke.

What it became: Not an instant "upgrade." One-siding the book concentrates exposure to the pair's known catastrophic scenario (a central-bank regime break of the kind that pair has produced before), so the finding is coupled, non-negotiably, to event blackouts and reduced sizing before it ships. A bigger lesson got written into the process: grids explore the axes a template exposes and silently ignore the ones it doesn't. Direction, regime admission, stop logic: enumerate the frozen axes before refining the searched ones. The money is usually in an axis nobody varied.

+0.392R

buy side · 192 trades

−0.062R

sell side · 126 trades

6 / 6

positive years, buy side

~70%

of per-trade edge unlocked

Standing methodology

The rules every study runs under