What kind of rule is it?
Twenty-two kinds are supported. Pick the one closest to how you think about a trade.
Why these nineteen ?
Nineteen , and between them they cover nearly everything day traders actually run: the morning move, the opening range and its retest, the overnight gap, yesterday's or last week's levels, pivots, inside bars, fair-value gaps, Donchian channels, average crosses, MACD, RSI, stochastics, Supertrend, VWAP, Keltner or Bollinger bands, plain time-of-day, and a line-and-shape type that takes any line your chart draws (VWAP, an average, a band, yesterday's levels, the pivots) with a stretch, a cross, a break or a reclaim, and an oscillator-and-level type (RSI, CCI, Williams %R, ADX and the DIs, MACD, Stochastics; crossing a level or past it). Each one has settings, so thousands of specific rules fit inside them. Anything else, send it by mail from the front page and a person builds it; about a week.
Nineteen rule families, each a small state machine with a fixed parameter set and a declared primary tunable for the sensitivity exam. Clock-exit families (A, C, E, P, S) and hold-exit families (the rest) share one fill model, one cost model and one optional bracket with an honest intrabar policy. Every family but T and V is verified by generating a standalone file and matching the engine to the cent; their standalones wait on the generator, so a T or V report that clears the gate says so on the record instead of attaching code. Not expressible here: multi-leg, indicator stacks, discretionary filters.
Type A
The morning move
Measure how far price moved from an early time (say 8:00) to a later time (say 9:30). If it moved enough, trade against it or with it. Out at a set time.
Type C
Opening range breakout
The first N minutes after the open set a high and a low. Trade the first close outside that range, with the break or against it. Out at a set time.
Type E
The overnight gap
Compare the open to yesterday's 4:00 close. If the gap is big enough, bet it fills or bet it runs. Out at a set time.
Type B
Last week's high or low
Price pokes beyond last week's high or low, stays there a few minutes, then comes back inside. Trade against that poke or with it. Out after a set number of minutes.
Type D
Yesterday's high or low
Same idea, with yesterday's high and low instead of last week's. More signals, shorter memory.
Type F
Moving-average cross
A fast average of recent prices crosses a slow one. Trade with the cross or against it, inside a time window. Out after a set number of minutes.
Type H
Channel (Keltner or Bollinger)
An average with a band around it. Price closes outside the band; bet it comes back inside or keeps going. Out after a set number of minutes.
Type G
Distance from VWAP
Price stretches a set percent away from the day's volume-weighted average. Bet it snaps back or keeps going. Out after a set number of minutes.
Type I RSI extremes
RSI climbs above 70 or drops below 30, then crosses back. Bet on the snap-back, or bet the move continues. Out after a set number of minutes.
Type J MACD cross
The MACD line crosses its signal line. Trade with the cross or against it. Out after a set number of minutes.
Type K Stochastic
%K crosses %D while the oscillator sits in the overbought or oversold zone. Fade it or follow it.
Type L Donchian breakout
Price closes above the highest high (or below the lowest low) of the last N minutes. The classic trend-following trigger.
Type M Supertrend flip
A trailing line built from average true range flips from below price to above it, or back. Trade the flip.
Type N Floor pivots
Yesterday's high, low and close set today's pivot, R1/S1 and R2/S2. Trade a close through R or S, with it or against it.
Type O Inside-bar breakout
A bar on a higher timeframe sits entirely inside the one before it. Trade the break of its range.
Type P Time of day
No indicator at all. Buy (or sell) at one clock time, get out at another, every day. The purest "this hour is usually up" rule.
Type Q RSI crosses its own average
A short RSI crosses above its own moving average while it is still low, price is above the fast average, and the two price averages sit close together. Longs by default. Out after a set number of minutes.
Type R Fair-value gap
Three bars in a row leave a band of prices the middle one jumped clean over. When a later bar closes back inside that band, trade in the gap's direction. The "Silver Bullet" setup, written down as a rule. Out after a set number of minutes.
Type S Opening-range retest
The first N minutes set a high and a low. Price closes outside the range, comes back to touch the edge it broke, then closes outside it again. That second close is the trade, with the break or against it. The "pullback entry." Out at a set time.
Type U Swept-level fair-value gap
A reference candle (the 9:00 hour by default) sets a high and a low. Price trades through one edge, closes back inside, and a three-bar gap opens against the sweep. The first close back into that gap is the trade, against the sweep: short after the high is swept, long after the low. The "silver bullet" as it is taught in five steps. Out at a set time; the swept edge and the far edge are the natural stop and target on the next step.
Type T A line and a shape
Pick a line your chart already draws: VWAP, a moving average, a Bollinger, Keltner or Donchian band, yesterday's high, low, open or close, the overnight high or low, or a pivot. Then pick what price does to it: stretches away from it, crosses it, breaks it for the first time that day, or comes back across it after a stretch. Fade it or follow it. Out after a set number of minutes.
Type V An oscillator and a level
Pick an oscillator your chart already draws: RSI, CCI, Williams %R, ADX or the DIs, MACD, Stochastics. Pick a level and what the value does to it: crosses it on this bar, or is past it for the first time today. Below the level, fade buys the bounce and follow sells; above it, the mirror. Out after a set number of minutes.
Next →
Which market?
Futures only, priced in dollars. Pick a group, then the contract.
Why futures only?
Because we test on one-minute data going back to 2008, and we only offer markets where we've checked exactly what one tick and one point are worth in dollars. If we can't vouch for that arithmetic, the market isn't on the list. Stocks and forex spot aren't here yet.
61 USD-settled futures on this form across equity indices, energy, metals, rates, currencies, agriculture and crypto, each with verified tick size and dollar-per-point; the engine holds 65, and the four not yet on the form (A6, B6, B, BR) are reachable through the code door. Unadjusted continuous series, ETH sessions, FirstRate one-minute bars. Non-USD contracts are excluded until the report can print native currency honestly.
Group
Contract
← Back
Next →
Conditions, direction, and two honest questions
The last choices before review.
Add conditions (optional) why are they counted?
Filters are how most rules get fooled. Add a condition, the backtest looks better, add another, better still, and by the third one you've built something that only works on the past. So nothing here stops you, and the report keeps score: every condition is named, its settings count against your score, it counts as one more version of the rule, and you see the trade count before and after each one.
Protocol v1.1, Amendment #2. Each filter is applied to the signal list at the signal bar or on completed prior days (no look-ahead). Each adds its tunables to the parsimony count, adds one lineage step, is perturbed ±10% in Exam VI, and appears in a condition-by-condition table; the base-vs-filtered comparison is printed for the whole stack. G6 still refuses a verdict under 100 trades.
No condition. Test the rule as it is.
Trend: only trade in the direction of a longer average
Volatility: only trade on busier (or quieter) days
Day of week: skip certain days
Squeeze: only after a day whose Bollinger bands sat inside its Keltner channel
Prior day's range: only after a wide (or narrow) day
Range width: only when today's opening range is in the top N% of recent sessions
Time of day: only signals inside a time band
Date range: only a slice of the history
Listed days: FOMC decisions, or the 8:30 payrolls and CPI mornings, skipped or kept
A filter removes days. Fewer days fit easier and prove less. Its settings count against your score, and the report shows what it removed.
Which list why?
A list of days kept on the engine with its source and the date it was checked, so nothing in it is typed from memory. The report prints the list's name, how many days it holds, where it came from and when it was verified. Four lists today: the FOMC decision days, 2008 to now, scheduled and unscheduled, from federalreserve.gov; and the 8:30 a.m. ET release days from bls.gov, 2008 to now, as one list of both payrolls and CPI or as either on its own.
Provenance-gated CSV (date, source_url, verified_on on every row) resolved by name on the engine; embedded into the standalone at generation. Counts as one tunable.
FOMC decision days (federalreserve.gov) 8:30 a.m. release days, payrolls and CPI together (bls.gov) Payrolls release days only, the Employment Situation (bls.gov) CPI release days only (bls.gov)
Skip them or keep only them
Skip those days Trade only those days
+ Add another condition
Before you add another condition
Every loss can buy a new excuse — the jersey, the lucky seat, the green cup — until the record looks perfect. The past never argues.
Add it if you want. It’s counted.
Never mind
Add it anyway
Direction why?
"Fade" means bet the move reverses: it went up, you sell. "Follow" means bet it continues: it went up, you buy. Same trigger, opposite trade. The coin-flip test is what tells you whether either one is really better than chance.
Mode maps sign of move to side. Fade: down-move → long, up-move → short. Follow: the reverse. The null is computed on the same signals with random sides, so mode is the exact decision being tested.
Fade — trade against the move
Follow — trade with the move
Sides why?
Both sides, longs only, or shorts only. Picking one side roughly halves the trades, so the report will say if the sample got too thin. Side filter applied after signal generation; the day still counts as traded even if its signal was on the excluded side. G6 refuses a verdict under 100 trades.
Both Longs only Shorts only
Bar size for signals why?
The chart your rule reads. Pick 3 and the averages, crosses and levels are computed on 3-minute bars, the way they'd look on a 3-minute chart. Fills, exits and costs still happen on the one-minute bars underneath, so nothing gets rounder or cheaper. Above 1 minute it counts as one more setting. One-minute bars aggregated by clock bucket (start-minute // N, per calendar day; OHLC first/max/min/last, V summed) for the signal pass only. Each signal fills at the first one-minute bar after the N-minute close; clock and hold exits are re-attached on the one-minute series; the null, filters and cost stress see one-minute fills. Adds one tunable when N > 1.
1 minute 2 minutes 3 minutes 5 minutes 10 minutes 15 minutes 30 minutes
Trades a day why?
One means the first signal of the day is the trade for that day, the way every rule has been scored so far. More than one means the rule can take a new signal after the previous trade is out on its clock, up to this many a day. It counts as one more setting. Rules that get out at a clock time (opening range, time of day) can't re-enter, and the form will say so. Re-entry cap. The family emits every qualifying signal in its window; a selection pass takes at most N a day and admits a new entry only after the previous trade's clock exit (exit_after_idx), which is side-independent so the null twins keep the same entries. Refused for clock-exit families A, C, E, P and for B. Adds one tunable above 1.
1 (first signal of the day) 2 3 5 10
What year did you start on this rule? required why ask?
The most important question on the form. Years you've already looked at can't prove anything, because you built the rule while looking at them. Years before that can. Tell us when you started, and everything earlier is scored as the honest test. If you say 2024, then 2008 to 2023 is the part that counts. Testing a rule you have never traded or tuned, a seller’s or a course’s? Choose this year.
Declared contamination boundary. Years ≥ this are the seen era; years before it are the unseen era that governs the null p, the bootstrap CI, and the era-consistency exam (calendar years as OOS windows, minimum 8). Declared, not sworn; the report's scope line says so. Choose 2009 or earlier and there is no unseen era, which the report will state plainly.
Every year before this one is the test. Years from this one on are the ones you already looked at, and they don't count in your favor.
Choose a year
2026 2025 2024
2023 2022 2021
2020 2019 2018
2017 2016 2015
2014 2013 2012
2011 2010 2009 or earlier
How many versions? why ask?
If you try ten versions of an idea and keep the best, the best one looks better than it really is, the same way the tallest of ten strangers is probably taller than average. Telling us how many you tried lets the report correct for it. Lying only makes your own report wrong. We also count submissions from your email, so the number used is the larger of the two.
Declared lineage. The reported p is also shown multiplicity-adjusted as 1 − (1 − p)^n, where n is max(declared, prior submissions from this address + 1). The code-offer gate uses the adjusted p. We can't recover your private search history; we can refuse to pretend it was zero.
This is the first version
Second version Third version
Fourth version Fifth version
Sixth or more
How did you find this?
Choose one, or leave it
Reddit
Discord
X
A search
Someone told me
Somewhere else
Email required
← Back
Review →
Your rule, written back to you
Read it once. This is exactly what gets tested.
Once you confirm, this rule is locked. It runs exactly as written above. Any change afterwards is a new submission, counted as one more version.
Fixed for every run: one-minute fills, exits and costs (signals on the bar size you chose) · full available history · $4.20 round-turn + 1 tick per side slippage · market orders at next bar's open · unadjusted continuous data. All printed on the report.
← Back
Lock it and run the test