How I work
The rules behind everything I publish here. I learned most of them by breaking them.
Every edge must make business sense
I need a reason a strategy works that I can explain in plain words, or see on a chart: who is on the other side, and why they keep paying. If I can’t explain the edge, I don’t trade it.
Ideas first, data second
I don’t data mine. The data tests an idea; I never search it for one. A pattern found by searching has to be explained before it counts.
Justify parameters, don’t fit them
Every parameter needs a reason that holds outside the sample I chose it on. The best number in a sweep is not a reason.
Rigorous, not academic
I’m not running a laboratory, but I hold myself to the same discipline: state the idea before the test, run a test that could fail, and get a result that reproduces.
Same data, same code, same answer
If I can’t reproduce a backtest, I can’t trust it. My price history is fingerprinted and my simulations are deterministic.
The data wins
Documents, comments and my own earlier conclusions are pointers. When I make a claim about a system, I check it against what the system actually did.
Unknown is not clean
A check that could not run has not passed. Silence from a system is not evidence that it is healthy.
Trades are the truth
Holdings, history and P&L are derived from trades. When they disagree with the trades, they are the ones that are wrong.
One implementation of the maths
Returns, drawdowns and ratios come from one tested framework, never from a spreadsheet written for the occasion.
Assume nothing about the data
Prices can be negative, exchange calendars can be wrong, and a feed can report healthy while sending nothing. I’ve met all three.
Publish the failures
A dead idea written down is one nobody has to kill twice, including me.