Testable hypothesis

A testable hypothesis is a trading idea written precisely enough that a dataset could contradict it: it names the instrument, session, bar construction, the condition, what is measured afterwards, and what result would count as a rejection, all decided before the test is run.

Senzoukria · Glossary · Updated September 2026


What makes a statement testable

"Buy strong orderflow" cannot be tested because two people would implement it differently and neither could be shown wrong. "On MNQ, regular session, 500-tick bars, when the closed bar's delta exceeds a stated threshold, the next bar's return is measured against bars where it does not" can be. The second version can be run twice by different people and produce the same table.

The beginner's guide to quantitative trading frames the first task not as coding but as deciding what evidence would make you reject the idea. A hypothesis that survives every outcome is not a hypothesis; it is a preference.

The fields to fix in advance

  • Instrument and contract, with the roll policy if the window spans an expiry.
  • Session and time zone, so that a bar at 09:31 means the same thing every day.
  • Bar construction: time, tick, volume, range or delta bars, with the exact size.
  • The condition, including the lookback and the threshold, using only data available at the bar's close.
  • The outcome measured, for example the distribution of the next bar's return, and the comparison group.
  • The data the test excludes, and why.
  • The rejection criterion: what result means the idea is dropped rather than tweaked.

Hypothesis, rule, strategy

The three are often confused. A hypothesis is a claim about the data. A rule is the deterministic procedure derived from it: entry timing, stop, target, position size and session cutoff. A strategy is the rule plus its execution assumptions, costs and account constraints. A research question about whether a delta condition changes the next bar's distribution is a hypothesis; it is not yet an entry recommendation, and it should not be tested as one.

In Senzoukria

The desktop does not have a screen called "hypothesis"; the discipline lives in how the tools are used. The Scripts editor is where a rule is written down in JavaScript or Python and versioned; the Run on sample data button executes a draft on sample bars to catch errors, and only a saved version backtested on a declared historical interval counts as a test. The Auto backtest panel then reports the run with costs, and its Gauntlet section, headed "is this edge real?", lists checks such as walk-forward, a permutation test and the probability of backtest overfitting. The journal keeps the rejection decisions.

Common mistakes

  • Writing the hypothesis after seeing the chart pattern that inspired it and choosing the threshold that fits that instance.
  • Marking the level with information that only became available later, which introduces look-ahead.
  • Changing the rule each time a test disappoints, which turns the test set into training data.
  • Recording only the version that was kept, not the number of variants tried.

This page in other languages

Frequently asked questions

Does a testable hypothesis need to be coded?
No. It needs to be unambiguous. Code helps because it forces every field to be specified and makes the test repeatable, but a written rule and a spreadsheet of closed bars can test a simple claim. Code becomes valuable once the same procedure has to be repeated across periods and versions.
What is a rejection criterion and why decide it first?
It is the result that would make you drop the idea, stated before the test: for example, no measurable difference between the condition group and the comparison group after costs. Deciding it first prevents redefining what counts as success after the numbers are in.
Can orderflow or GEX observations be part of a hypothesis?
Yes, as inputs whose availability at decision time is preserved. A bid/ask delta rule needs executed volume with a documented side classification; a GEX rule needs timestamped option observations from that day, not a present-day profile substituted into the past.

Keep reading