ATCHVWAPStrategy v1.0.0.0 for NinjaTrader 8 by automated-trading.ch, published 1 Nov 2026 (today). Closed source: backtest/playback free, live needs a Premium licence (nothing bought or signed up). A fully mechanical trend-pullback on a higher-timeframe RTH VWAP with every parameter and default published, plus the seller's full 226-trade MNQ 1-minute list.
Each day a VWAP (HLC3, 15m candles by default) anchors at 09:30 ET with ±1.28σ std1 bands. On each closed chart bar a long arms when close > rising VWAP and < upper std1 (short = mirror). The trigger is the first counter candle (Immediate) or the first close beyond the prior bar's extreme (Wait For Pullback). Before entry: % change vs the HTF close N back ≥ 0.1%, trigger bar doesn't touch a std1 level, closes on the trend side of the VWAP and is still inside the band. Stop: VWAP / SuperTrend / last swing (5) / Auto (nearer of swing and std1, VWAP fallback) + offset. TP: W/L ratio (2 default) or points / $. Optional %-breakeven and SuperTrend trailing. Sizing: $-risk adjusted ($100 target, $120 max, qty 1–6). Daily stops; flat 30 s before session close.
Session clock: VWAP anchor 09:30 ET = 23:30 AEST (US summer) / 00:30 AEST (US winter). Report entries all fell 09:50–11:29 ET (23:50–01:29 / 00:50–02:29 AEST). Report exits by 16:55 ET (06:55 / 07:55 AEST).
| Label | Count |
|---|---|
| Missing | 32 |
| Partly coded | 9 |
| Coded | 6 |
| Not stated | 4 |
| Claim | 3 |
| Not needed | 1 |
| Total | 55 |
Check sequence: 1) in session → 2) daily stop not hit → 3) update HTF VWAP + bands → 4) arm → 5) trigger candle → 6) pre-entry checks (VWAP side, min % change, no std1 touch, inside band, SuperTrend filter); any fail = keep waiting → 7) stop, qty (skip if < Min Qty), TP → 8) breakeven / SuperTrend trail; flat before close.
All VWAP rules are Missing: H7's UseVWAPBias is an empty placeholder (H7 Builder, 1 Nov 2026).
| ID | Section | Rule | Exact logic | How to test | Label vs H7 | H7 note | Source |
|---|---|---|---|---|---|---|---|
| AV-GEN-01 | General | Fully mechanical, auto strategy for NT8; one instance per instrument | No discretion; every decision from parameters | Plugin off = +60 parity; on = deterministic rerun gives identical trades | Missing | No ATCH plugin in H7 | Overview/Features |
| AV-GEN-02 | General | Execute Historical Trades toggle (backtest vs live) | Historical mode allowed when checked | n/a (platform) | Not needed | NT/H7 runs historical by default | Params 1. General |
| AV-TIM-01 | Time | Session clock time zone EST (default) / CET / Local, DST auto | Sessions interpreted in chosen zone | Unit: 09:30 EST stays 09:30 ET across DST | Coded | H7 SessionStart/End are EST | Params 2 |
| AV-TIM-02 | Time | Entries only inside Trading Sessions (default 09:30-16:00) | new entries allowed if bar close time in any window | Funnel: no entry stamped outside window; check all 226 trades ET entry ∈ 09:30-16:00 | Partly coded | H7 has one session window (SessionStart/EndHour/Minute); multi-window string missing | Params 2 |
| AV-TIM-03 | Time | Flat 30 s before session close; nothing overnight | close all at session close − 30 s | Every trade exits same day ≤ close; report shows exits 22:55 Zurich = 16:55 ET | Partly coded | H7 session_calendar flatten 16:55 ET (≈ matches report 16:55 exits) | FAQ / Features |
| AV-VWP-01 | VWAP | VWAP computed from higher-timeframe candles (15 min default) | bars per HTF candle = HTF/chartTF; non-time charts: HTF value = N bars | Unit: 15m VWAP on 1m chart equals VWAP of resampled 15m bars | Missing | H7 UseVWAPBias is an empty placeholder (H7 Builder 1 Nov) | Params 3 |
| AV-VWP-02 | VWAP | VWAP window 09:30-16:00 ET; anchors at first HTF candle inside window; stops accumulating outside | daily reset at window start | Unit: VWAP at 09:45 ET = first 15m candle typical price | Missing | none | Params 3 |
| AV-VWP-03 | VWAP | Separate long/short VWAP price source (HLC3 default; Open/High/Low/Close/HL2/OHLC4/HLCC4) | price_i per HTF candle × volume | Unit per source | Missing | none | Params 3 |
| AV-VWP-04 | VWAP | Std1 band = VWAP ± 1.28 × volume-weighted standard deviation | sigma = sqrt(Σv(p−vwap)²/Σv) | Unit vs hand calc; overlay on example images | Missing | none | Params 3 |
| AV-VWP-05 | VWAP | VWAP rising = last value > previous value (falling = <) | compare last two HTF VWAP points | Unit | Missing | none | Overview |
| AV-ARM-01 | Arm | Arm long: bar closes above rising VWAP and below upper std1, inside session | close>VWAP & VWAP rising & close<upper1 | Funnel per bar; all 101 report longs must have been armed | Missing | none | Overview |
| AV-ARM-02 | Arm | Arm short: close below falling VWAP and above lower std1 (mirror) | close<VWAP & VWAP falling & close>lower1 | Funnel; 125 report shorts | Missing | none | Overview |
| AV-ARM-03 | Arm | Arm persistence when conditions break before trigger | NOT STATED → switch AVDisarmWhenInvalid | Compare trade capture with switch on/off | Not stated | switch | — |
| AV-ARM-04 | Arm | Manual Long/Short Armed buttons (directional bias) | static enable per side | n/a | Missing | AllowLong/AllowShort may exist in host; map | Status card |
| AV-ENT-01 | Entry | Immediate mode: first pullback candle (red for long, green for short) after arm triggers entry | first bar with close<open (long) after arm | Entry minute = first counter candle after arm ±1 bar | Missing | none | Params 3 / Ex 1,4 |
| AV-ENT-02 | Entry | Wait For Pullback mode: first candle closing above previous candle high (long) / below previous low (short) | close>high[1] (long) | Switch test | Missing | none | Params 3 |
| AV-ENT-03 | Entry | Entry fill price | NOT STATED (market at bar close → next bar open assumed) | Check trade list entry prices vs 1m open of next bar | Not stated | switch AVEntryFill | — |
| AV-ENT-04 | Entry | Min Price Change %: trigger-bar close vs close of HTF candle N back ≥ +0.1% long / ≤ −0.1% short (0 = off) | (close−htfClose[N])/htfClose[N]*100 | Unit; check on reproduced trades | Missing | none | Params 3 |
| AV-ENT-05 | Entry | Price Change Lookback (VWAP points), default value not stated | 1 = last closed HTF candle | Switch {1,2} | Missing | none (default not stated) | Params 3 / Ex 1 |
| AV-ENT-06 | Entry | Pre-entry: trigger candle must not touch a std1 level | high/low of trigger bar must not reach band (which band/TF not stated) | Funnel log count of blocks | Missing | none | FAQ 'why no trade' |
| AV-ENT-07 | Entry | Pre-entry: trigger candle closes on the trend side of the VWAP | long: close>VWAP | Funnel | Missing | none | FAQ |
| AV-ENT-08 | Entry | Pre-entry: price still inside the std1 band | long: close<upper1 | Funnel | Missing | none | FAQ |
| AV-ENT-09 | Entry | SuperTrend entry filter (off default): long only while ST green, short only red, on bar just closed | trend[−1]==up | Switch test | Missing | H7 supertrend() exists only inside Greg plugin, not as entry gate | Params 3 |
| AV-ENT-10 | Entry | Blocked entry keeps waiting for next candle | setup remains armed | Funnel | Missing | none | FAQ |
| AV-ENT-11 | Entry | Daily-risk stop blocks new entries | after daily limit hit → no entries | Unit | Partly coded | H7 daily $ limits exist | FAQ |
| AV-STP-01 | Stop | VWAP stop: lower (long)/higher (short) of last two HTF VWAP values + offset | min(vwap[1],vwap[2])−off | Unit | Missing | none | Params 4 |
| AV-STP-02 | Stop | SuperTrend stop: current ST line on stop side + offset | st_line−off | Unit | Missing | indicator exists (Greg), stop mode missing | Params 4 |
| AV-STP-03 | Stop | Last Swing Point stop: last confirmed swing low/high (period 5 each side) + offset | pivot(5,5) | Implied stop vs swing on 1m | Partly coded | H7 HourStats/Sweep swing stops exist with different swing definitions | Params 4 / Ex 3,5 |
| AV-STP-04 | Stop | Auto stop: nearer of last swing and exec-TF std1 band; VWAP fallback if neither within allowed risk | internals of 'allowed risk' NOT STATED | Implied stop distance (from losers) vs both candidates | Missing | none | Params 4 / Ex 3 |
| AV-STP-05 | Stop | StopLoss Offset (points) widens every stop method | stop −/+ off | Unit | Missing | none | Params 4 |
| AV-TGT-01 | Target | TP = Win/Loss ratio × stop distance (default 2) | tp = entry ± R×ratio | Winner pts / matched loser pts ≈ ratio | Partly coded | H7 has RR-style targets in some plugins, not as a generic stop×ratio for this stop set | Params 4 |
| AV-TGT-02 | Target | Examples use 1.1:1 | CONTRADICTION C1 | Switch {2.0,1.1,1.25} | Missing | switch | Ex 1 |
| AV-TGT-03 | Target | TP Points (10 default) | tp = entry ± pts | Unit | Coded | BaselineProfitTargetPoints | Params 4 |
| AV-TGT-04 | Target | TP Currency ($200 default) | pts = $/(qty×pv) | Unit | Missing | none | Params 4 |
| AV-MGT-01 | Manage | Price breakeven at % of way to TP (+) or % of way to stop (−), −100..100 | when price reaches entry+pct×(tp−entry) move stop to entry | Example 5 (−90) replay; scratch trades in list (12 with |$|<60) | Partly coded | H7 BE is in points (Advanced_BreakEvenTriggerPoints), no % or negative trigger | Params 4 / Ex 5 |
| AV-MGT-02 | Manage | BE price offset | NOT STATED | switch AVBreakevenOffsetTicks | Not stated | switch | — |
| AV-MGT-03 | Manage | SuperTrend order management: once close ≥1 tick beyond ST line against the position, tighten stop to that bar low/high ± offset | only tightens | Unit | Missing | H7 TrailMode SuperTrend is Greg-only and trails differently | Params 4 |
| AV-STR-01 | SuperTrend | Mode ATR or Adaptive | Adaptive formula NOT STATED | n/a | Partly coded | textbook ATR mode only | Params 6 |
| AV-STR-02 | SuperTrend | Period 14, Multiplier 2.618, MA type HMA, Smooth 14 | how MA/smooth enter NOT STATED | Visual vs example images | Partly coded | H7 supertrend(atr_period,mult) no MA/smooth | Params 6 |
| AV-QTY-01 | Sizing | Quantity mode Fixed or Risk Adjusted (default) | Partly coded | H7 Fixed + RiskPercent(account %) | Params 4 | ||
| AV-QTY-02 | Sizing | Fixed Order Qty | qty = N | Unit | Coded | FixedQuantity/Contracts | Params 4 |
| AV-QTY-03 | Sizing | Risk Adjusted: qty from stop distance and Target Risk $ (100 default; report $400) | qty = TargetRisk/(stop pts×pv); rounding NOT STATED | Report: qty × loser pts × $2 ≈ $384 median (≤ $531 max) | Missing | H7 sizes by account %, not fixed $ | Params 4 / Report |
| AV-QTY-04 | Sizing | Max Allowed Risk $ (120 default) above target | accept if real risk ≤ max | Max loser $531 vs implied max $480 (+slip) | Missing | none | Params 4 |
| AV-QTY-05 | Sizing | Max Qty 6 (0 = none) | cap qty | Report qty 7/12/19 present → C3 | Missing | none | Params 4 |
| AV-QTY-06 | Sizing | Min Qty 1: calculated qty below → skip entry | skip | Unit | Missing | none | Params 4 |
| AV-DAY-01 | Daily | Stop @ daily profit $ | stop new entries | Unit | Coded | UseDailyProfitTarget | Params 5 |
| AV-DAY-02 | Daily | Stop @ daily loss $ | stop new entries | Unit | Coded | UseDailyLossLimit | Params 5 |
| AV-DAY-03 | Daily | Stop @ daily winning count | Unit | Missing | none | Params 5 | |
| AV-DAY-04 | Daily | Stop @ daily losing count | Unit | Missing | none | Params 5 | |
| AV-DAY-05 | Daily | Stop @ daily trades count | Unit; report max trades/day | Coded | Advanced_MaxTradesPerDay | Params 5 | |
| AV-CLM-01 | Claim | MNQ 1m $400 risk 2025-10-01→2026-10-30: 226 trades, net $17,431.10, PF 1.48, DD −$2,262.20, 54.4% win, NT Lifetime commissions | claim; trade list published | Recompute from list (done: sums match); farm rerun after +61 | Claim | — | Performance report |
| AV-CLM-02 | Claim | Tick-level fills, '99% conformant' backtests | claim | Compare farm 1m vs their fills | Claim | — | Features |
| AV-CLM-03 | Claim | Backtest period not hand-picked | claim | n/a | Claim | — | Performance report |
| AV-TIM-05 | Time | Report evidence: all 226 entries 09:50-11:29 ET although default session is 09:30-16:00 | CONTRADICTION C9 → switch sessions {09:30-16:00, 09:30-11:30} | Reproduce trade list with each; count entries after 11:30 | Not stated | switch | Trade list |
| AV-VWP-06 | VWAP | Report evidence: earliest entry 09:50 ET fits HTF 10m (Example 1 uses 10m) not 15m default | CONTRADICTION C5 → switch HTF {15,10} | Reproduce with each | Missing | switch | Trade list / Ex 1 |






Time zone: the list is in Europe/Zurich time (page script pfReportTimezone; all 226 match their chart API's UTC timestamps to the minute after conversion). Zurich − ET = 6 h, except 20 trades in the DST-gap weeks (late Oct and March), where it's 5 h. Every row has ET and UTC times, entry and exit price, qty, P&L and commission. Stops are filled for 89 full-size losers and targets for 119 full-size winners (their exit prices); the other rows carry the stop-distance range implied by $400 sizing.
As published: 226 trades · net $17,431.10 · PF 1.48 · win 54.4% · max DD $-2,262.20 · avg $77.13
Re-costed at farm fee $2.28 RT: 226 trades · net $16,791.16 · PF 1.46 · win 54.4% · max DD $-2,285.72 · avg $74.30 (from their list, not a farm run)
Long (farm fee): 101 trades · net $11,131.96 · PF 1.75 · win 59.4% · max DD $-1,656.70 · avg $110.22
Short (farm fee): 125 trades · net $5,659.20 · PF 1.26 · win 50.4% · max DD $-2,873.30 · avg $45.27
| Month (ET) | Trades | Net as published | Net at farm fee |
|---|---|---|---|
| 2025-10 | 10 | $347.50 | $318.10 |
| 2025-11 | 18 | $1,000.10 | $948.16 |
| 2025-12 | 10 | $285.30 | $256.88 |
| 2026-01 | 10 | $301.00 | $276.50 |
| 2026-02 | 16 | $1,917.20 | $1,877.02 |
| 2026-03 | 20 | $3,369.20 | $3,314.32 |
| 2026-04 | 16 | $805.20 | $750.32 |
| 2026-05 | 19 | $930.80 | $882.78 |
| 2026-06 | 31 | $1,510.40 | $1,420.24 |
| 2026-07 | 27 | $4,154.20 | $4,094.42 |
| 2026-08 | 19 | $1,713.20 | $1,658.32 |
| 2026-09 | 14 | $436.30 | $393.18 |
| 2026-10 | 16 | $660.70 | $600.92 |
Run on PC4 with a script (F:\trader_packs\ATCH_VWAP\scripts\atch_crosscheck.py) against PC4's NinjaTrader MNQ 1-minute export (UTC, bar-end stamps). Every 2026 trade was checked: 185. The 41 trades from Oct–Dec 2025 can't be checked because PC4 has no MNQ 12-25 data. Their prices are a back-adjusted "MNQ 12-26" series. One constant offset per contract fits every trade:
| PC4 contract | Roll offset (report − actual) | Trades | Entry and exit inside 1m bar (±0.30 pt) |
|---|---|---|---|
| MNQ 03-26 | +809.25 | 35 | 33 |
| MNQ 06-26 | +595.00 | 59 | 55 |
| MNQ 09-26 | +299.00 | 70 | 67 |
| MNQ 12-26 | −0.75 | 21 | 20 |
Result: entries 181/185, exits 179/185, both 175/185. The 10 misses are all within 0.45–0.55 pt (about 2 ticks) of the bar's range. That's consistent with PC4's export rounding prices to 0.1 and a ~0.75-pt basis between their feed and PC4's on the 12-26 contract. Caveat: 1-minute bars are often 20–60 pts wide, so landing inside a bar is a loose test on its own. The strong evidence is that one fixed offset per contract fits all 185 trades. A sample of 21 rows:
| # | PC4 contract | Side | Entry ET | Report entry | Roll offset | Actual entry | 1m bar low | 1m bar high | Actual exit | Exit bar low | Exit bar high | Both inside bar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 39 | 03-26 | Long | 2026-01-02 09:54 | 26553.5 | 809.25 | 25744.25 | 25735.0 | 25758.2 | 25649.75 | 25625.0 | 25668.0 | True |
| 48 | 03-26 | Short | 2026-01-30 11:03 | 26656.25 | 809.25 | 25847.0 | 25835.8 | 25850.0 | 25771.0 | 25754.5 | 25790.8 | True |
| 57 | 03-26 | Long | 2026-02-13 10:20 | 25563.0 | 809.25 | 24753.75 | 24743.8 | 24811.0 | 24840.0 | 24806.8 | 24845.8 | True |
| 66 | 03-26 | Long | 2026-03-03 11:11 | 25372.75 | 809.25 | 24563.5 | 24544.0 | 24564.2 | 24653.0 | 24622.5 | 24653.0 | True |
| 75 | 06-26 | Short | 2026-03-19 10:30 | 25021.75 | 595.0 | 24426.75 | 24422.2 | 24440.0 | 24521.75 | 24510.0 | 24540.5 | True |
| 84 | 06-26 | Long | 2026-03-31 11:20 | 24129.5 | 595.0 | 23534.5 | 23501.2 | 23534.8 | 23660.75 | 23609.2 | 23670.5 | True |
| 93 | 06-26 | Long | 2026-04-20 10:02 | 27371.25 | 595.0 | 26776.25 | 26741.0 | 26777.0 | 26736.25 | 26734.2 | 26756.0 | True |
| 102 | 06-26 | Long | 2026-05-05 10:39 | 28693.75 | 595.0 | 28098.75 | 28092.2 | 28100.0 | 28177.0 | 28164.8 | 28177.0 | True |
| 111 | 06-26 | Long | 2026-05-14 10:22 | 30237.5 | 595.0 | 29642.5 | 29628.8 | 29664.8 | 29763.5 | 29744.0 | 29768.2 | True |
| 120 | 06-26 | Short | 2026-06-01 10:09 | 30966.25 | 595.0 | 30371.25 | 30362.0 | 30384.0 | 30449.5 | 30432.0 | 30449.8 | True |
| 129 | 06-26 | Short | 2026-06-09 10:26 | 30104.0 | 595.0 | 29509.0 | 29461.5 | 29521.5 | 29344.75 | 29337.0 | 29411.5 | True |
| 141 | 09-26 | Long | 2026-06-18 10:15 | 30822.25 | 299.0 | 30523.25 | 30500.0 | 30536.2 | 30634.0 | 30620.8 | 30643.0 | True |
| 150 | 09-26 | Long | 2026-06-30 10:10 | 30633.75 | 299.0 | 30334.75 | 30305.8 | 30346.5 | 30406.0 | 30394.8 | 30418.5 | True |
| 159 | 09-26 | Short | 2026-07-15 09:58 | 30104.75 | 299.0 | 29805.75 | 29790.5 | 29819.8 | 29659.5 | 29655.0 | 29710.5 | True |
| 168 | 09-26 | Long | 2026-07-24 11:23 | 28797.5 | 299.0 | 28498.5 | 28496.0 | 28525.0 | 28598.0 | 28585.0 | 28599.2 | True |
| 177 | 09-26 | Short | 2026-07-31 11:19 | 28557.75 | 299.0 | 28258.75 | 28251.2 | 28273.0 | 28160.25 | 28132.0 | 28187.8 | True |
| 186 | 09-26 | Short | 2026-08-12 10:02 | 30203.0 | 299.0 | 29904.0 | 29870.0 | 29903.5 | 29852.0 | 29848.2 | 29895.2 | 0.5 pt off (entry) |
| 195 | 09-26 | Long | 2026-08-25 09:54 | 29660.75 | 299.0 | 29361.75 | 29335.5 | 29366.0 | 29316.25 | 29305.2 | 29345.2 | True |
| 204 | 09-26 | Short | 2026-09-11 10:41 | 29694.75 | 299.0 | 29395.75 | 29383.8 | 29401.8 | 29338.25 | 29334.0 | 29393.8 | True |
| 213 | 12-26 | Short | 2026-10-02 11:02 | 31179.25 | -0.75 | 31180.0 | 31148.8 | 31179.8 | 31092.0 | 31085.0 | 31121.2 | True |
| 222 | 12-26 | Short | 2026-10-27 09:59 | 29571.25 | -0.75 | 29572.0 | 29560.5 | 29582.2 | 29660.5 | 29626.8 | 29668.5 | True |
The +61 change request (plugin AV_VWAP, 49 switches, all default off, plus the test plan: parity → reproduction gate on the 226 trades → same period at farm fees → IS/OOS/hold-out → equity curves → Stage One instruments) was sent to the All_Hunter_7 Builder by David on 1 Nov 2026. This lane does not edit H7 code. No farm results yet.
PC4 F:\trader_packs\ATCH_VWAP\: master rules, rules CSV, 226-trade CSV (raw + converted), PC4 cross-check CSV and summary, summary JSON, chart-API JSON, H7 change request v61, source page, images, script. sha256 list in SHA256SUMS.txt.