Stitch
Build a Consensus model from voters and watch its equity as you change it: the fast engine runs on precomputed minute bars in milliseconds; the tick engine confirms. The optimizer searches voters, weights, windows, regimes and parameters on the GPU or on every core.
GC (gold)
no bars loaded
0 workers
GPU: not tried
The vote
the voters that vote
as many voters as an opening
both
Equity (net ticks, one micro of GC)
| Range | Days | Trades | /day | Net ticks | Ticks/day | Win | PF | Max DD | Hold |
|---|
The voters 19 on, 20 points
| Points | Voter | Parameters | Window (UTC) | Regime | |
|---|---|---|---|---|---|
| EMA stack trend | fast EMA 9 · mid EMA 26 · slow EMA 50 | always | low mid high | ||
| EMA side trend | EMA period 50 | always | low mid high | ||
| EMA cross on the slow EMA's side trend | bar minutes 15 · fast EMA 9 · slow EMA 26 · filter EMA 50 | always | low mid high | ||
| MACD histogram momentum | bar minutes 5 · fast EMA 12 · slow EMA 26 · signal EMA 9 | always | low mid high | ||
| RSI side momentum | bar minutes 10 · RSI period 14 · long above 55 · short under 45 | always | low mid high | ||
| Delta-RSI turn with the RSI side momentum | bar minutes 10 · RSI length 14 · D-RSI window 13 · signal length 9 | always | low mid high | ||
| ADX direction trend | bar minutes 5 · ADX period 14 · ADX above 20 | always | low mid high | ||
| Session VWAP side trend | dead band (ticks) 0 | always | low mid high | ||
| Bollinger fade reversion | period 20 · sigma 2 | always | low mid high | ||
| Cumulative delta flow | minutes 30 · share of the volume 0.05 | always | low mid high | ||
| Volume climax reversal reversion | volume multiple 3 · mean over bars 20 · stall (body per contract) 0.5 · rejection wick 0.4 · aggressors with the move 0.1 · vote for minutes 15 · RSI past 70 · RSI under 30 · RSI period 14 | always | low mid high | ||
| Swing structure trend | bar minutes 5 · lookback bars 20 | always | low mid high | ||
| Supertrend trend | bar minutes 5 · ATR period 10 · ATR multiple 3 | always | low mid high | ||
| Donchian position trend | minutes 60 · band (share of the range) 0.2 | always | low mid high | ||
| Half-hour drive momentum | minutes 30 · share of the range 0.6 | always | low mid high | ||
| Opening-range break session | London range 1 · New York range 1 | always | low mid high | ||
| New York open's overnight state session | — | always | low mid high | ||
| Overnight rule session | share of the mean range 0.5 | always | low mid high | ||
| Learned voter learned | — | always | low mid high | ||
| Book imbalance flow | minutes 5 · long at or above 0.6 · short at or under 0.4 | always | low mid high | ||
| Order-flow imbalance flow | minutes 30 · share of the absolute flow 0.1 | always | low mid high | ||
| Big prints flow | minutes 30 · share of the big-print volume 0.2 | always | low mid high | ||
| Sweeps flow | minutes 15 · net sweeps 3 | always | low mid high | ||
| Absorption reversion | volume multiple 2 · range at most (× mean) 0.5 · aggressors one-sided (share) 0.3 · vote for minutes 15 · mean over bars 20 | always | low mid high | ||
| Pace burst flow | volume multiple 3 · vote for minutes 10 · mean over bars 20 | always | low mid high | ||
| Clock clock | side (1 long, −1 short) -1 | always | low mid high | ||
| Range break momentum | minutes 30 · vote for minutes 15 | always | low mid high | ||
| EMA bounce trend | bar minutes 5 · fast EMA 9 · slow EMA 21 · tolerance (ticks) 10 · break (ticks past the slow EMA) 20 · hold (bars) 6 · with the stack only (1) or any side (0) 1 | always | low mid high | ||
| EMA slope trend | EMA period 50 · over bars 10 · share of the ATR 0.5 | always | low mid high | ||
| Keltner channel trend | EMA period 20 · ATR multiple 2 · with (1) or against (−1) 1 | always | low mid high | ||
| Hourly RSI side momentum | bar minutes 60 · RSI period 14 · long above 55 · short under 45 | always | low mid high | ||
| Volatility break momentum | range at least (× ATR) 3 · vote for minutes 15 | always | low mid high | ||
| Stochastic reversion | bar minutes 5 · %K period 14 · %D smoothing 3 · upper 80 · lower 20 · with (1) or against (−1) -1 | always | low mid high | ||
| CCI momentum | bar minutes 5 · period 20 · level 100 · with (1) or against (−1) 1 | always | low mid high | ||
| Parabolic SAR trend | bar minutes 5 · step 0.02 · max step 0.2 | always | low mid high | ||
| Ichimoku trend | bar minutes 5 · Tenkan 9 · Kijun 26 · Senkou B 52 | always | low mid high | ||
| Efficiency ratio trend | bar minutes 5 · over bars 20 · efficiency at least 0.5 | always | low mid high | ||
| VWAP bands reversion | σ multiple 2 · with (1) or against (−1) -1 | always | low mid high | ||
| RSI divergence reversion | bar minutes 5 · RSI period 14 · window (bars) 30 · RSI margin 3 · vote for minutes 30 | always | low mid high | ||
| Previous session's levels session | break (1), fade (−1), previous close's side (0) 0 | always | low mid high | ||
| Engulfing bar momentum | bar minutes 5 · body at least (× ATR) 0.5 · vote for minutes 30 | always | low mid high | ||
| Session range position session | upper share 0.9 · lower share 0.1 · after minutes of the session 120 · with (1) or against (−1) -1 | always | low mid high | ||
| Volume profile value area session | bin (ticks) 10 · value area share 0.7 · after minutes of the session 120 · with (1) or against (−1) -1 | always | low mid high | ||
| Round level reversion | level step (dollars) 50 · within ticks 20 · vote for minutes 15 · with (1) or against (−1) -1 | always | low mid high | ||
| Delta divergence flow | window (minutes) 30 · vote for minutes 30 | always | low mid high | ||
| Opening gap session | gap at least (ticks) 30 · for minutes 60 · fill (−1) or continuation (1) -1 | always | low mid high | ||
| Session-close EMA side trend | sessions 5 | always | low mid high |
A window is when the voter may vote (outside it abstains); the regime chips are the volatility regimes it votes in (the 1-minute ATR against the previous five sessions' mean: low under 0.75, high over 1.33). The parameters recompute that voter's votes (a few hundred milliseconds); everything else is instant.
Saved models keep several and compare them; any one can become the Consensus tab's settings
No saved models yet. Name the model in the form and save it; the table keeps its result per range.
Optimizer
idle
Oct–Dec 2025, the first quarter (the rest unseen)
ticks a day over the fitted months
Fitted on Oct 25, Nov 25, Dec 25; 2023 H1, 2023 H2, 2024 H1, 2024 H2, 2025 H1, 2025 H2, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct 26 and the the final quarters are never seen by the search, so those columns are the honest ones. The fitness is the mean ticks a day over the fitted months. Click a row to load it into the form, then run the overfit check in the Checks tab on it.
Each voter alone fit every voter's parameters and window on the fitted months, judged on the others; then search the combination with "voter parameters" off
Is it overfit? the model in the form, tested two ways
nothing (a model made by hand)
Two tests, per range. Neighbours: every one-step change to the model (a voter's points up or down, its parameters to the next grid value, its window, its regimes, the shares, the holds, the stop) is run; a real edge is a hill, so most neighbours stay positive and the median stays near the model; a fit to noise is a spike, and its neighbours fall off. Placebo: the model is run with its voters' votes taken from other days (the same bar of another session, so the time of day stays and the day does not); the share of these shuffled worlds the model beats says whether its result is distinguishable from luck. The ranges the optimizer fitted on are marked; the unfitted ones are the ones that count.
Trade autopsy every trade of the model in the form: who held it, and what that cost
the worst first
Learned models
A small transformer over the last bars (every voter's vote at several parameter sets, the bar's readings, the clock) predicting whether the close is up or down by the threshold after the horizon. Trained on the train stage, early-stopped on the validate stage, its trading hours chosen there, read once on the test stage; the final stage is computed but hidden until you reveal it. Trained headless:
node --max-old-space-size=16384 scripts/research/consensus-learn.ts --name <name> [--horizon 30 --threshold 8 --context 32 --variants 2 --d 48 --layers 2 --epochs 20]; this tab lists what was trained.no learned model yet