# Fibonacci "Golden Zone" scalping on ES futures (1- and 5-minute bars, New York open) - specification (RIP Backtest protocol v1.0 plus the 8 Oct 2026 rules)

Specification written and **frozen 2026-10-14 (approved by the owner the same day, draft 1 unchanged)**, before any opening range, impulse, Fibonacci level, signal or trade of this test was computed. Once frozen, any change of a rule is documented and treated as a separate test; bugs may be fixed.

## Why this test, and what was looked at before
- **Chosen by the owner** on 2026-10-14. The source is an answer of **Google's AI search** (Google AI Overview / AI Mode) to a question about Fibonacci retracement scalping on 1- and 5-minute charts, pasted by the owner. It has no author and no date; the article describes it as "the version of the strategy that Google's AI gives", not as anyone's method. Of its three parts, the general part (impulse, Golden Zone, confirmation) is too vague to test without inventing most rules, and the order-flow part (order book, absorption, volume delta, Volume Profile) needs data we do not have. We test its most specific part, **"The /ES Golden Zone Strategy"**: the 09:30 opening range, the breakout push, the Fibonacci grid on it, entry in the 50% to 61.8% zone, the stop beyond 78.6% or the swing low, the target at the swing high or the 127.2% extension, and the VWAP confluence it calls "the absolute highest-probability setups". The four variants were proposed by us and approved by the owner the same day ("fa-le pe toate").
- Earlier tests on this ES file: many (RSI(2), Supertrend, Bollinger, Donchian, RSI divergence, MACD, golden crosses, Coppock, EMA 9/21, intraday momentum, noise area breakout, VWAP strategies), and before the protocol an opening-range breakout with fair value gaps. **One Fibonacci retracement rule was tested on the site before** (61.8% pullback on 1-hour EUR/USD, 2 variants, Buried). No number of this test was looked at.

## Instrument and data
- **ES** (E-mini S&P 500), 1 contract, NinjaTrader's back-adjusted 1-minute file with real contract volume (`ES_1min.csv`, `na_lib.load('ES')`, the loader of the noise area and VWAP tests), 2020-01-01 to 2026-09-25 17:00 New York, minutes stamped at their close.
- **Session:** 09:30 to 16:00 New York, or the exchange's earlier close on early-close days (calendar of `rb_lib.js`). Only the session's minutes are used; no position is held outside it.
- **Bars:** the 1-minute bars as they are (1M variants); 5-minute session bars closing at 09:35, 09:40, ... built from the minutes that exist (5M variants), as in the VWAP test. A bar with no minute does not exist.
- **Holes (rule 3):** `data_holes.json`; trades open across a known hole are counted, and every gate and verdict is recomputed without them.

## The setup (both timeframes)
- **Opening range (OR):** the high and low of the minutes stamped in (09:30, 09:35] (the "initial 5-minute opening range"; the source says not to trade the first 5 to 10 minutes). A session with fewer than 3 of these 5 minutes has no setup.
- **Breakout:** a **long setup** starts at the close of the first bar of the variant's timeframe, after the opening range, that **closes above the OR high**; a **short setup** at the first bar that closes below the OR low. At most one setup per direction per session.
- **The grid (long):** **L** = the lowest low of the session from 09:30 up to and including the breakout bar (the start of the push, "the Session Low"); **H** = the highest high from the breakout bar up to the last completed bar (the end of the push; it can only rise until the entry). Levels: **Z50 = H - 0.5 (H - L)**, **Z618 = H - 0.618 (H - L)**, **Z786 = H - 0.786 (H - L)**, the extension **X1272 = H + 0.272 (H - L)**. Recalculated at every bar close until the entry; inside a bar the levels of the last close apply. Short: the mirror (H = the session high up to the breakdown bar, L = the lowest low since).
- **Broken setup:** "if a retracement sweeps deep past the 78.6% level, the trend continuation setup is completely broken". Before an entry, a minute whose low is at or below Z786 (long; high at or above it for a short) cancels the setup for the rest of the session (in the 1M variants after the limit order of that minute is filled, if it is).
- **Entry window:** entries only until **11:30** New York; a setup without an entry by then is cancelled. This is our reading of "trade only during high-volume market opens"; the source gives no time. A position is then held until its stop, its target or the session close.
- **One position at a time** per variant; a setup is not traded while a position is open, and is still valid after the exit if it has not been cancelled. At most one trade per direction per session.

## The four variants (long and short)
- **FO-1M-LIM (1-minute, aggressive limit):** while a long setup is active, a **buy limit at Z618** for the next minute, from the levels at the last minute's close. **Filled** only in a minute whose low **trades through it by at least one tick** (low <= Z618 - 0.25), at Z618, or at the minute's open if it opens below Z618; a fill at or below Z786 is cancelled instead (broken setup). **Stop** one tick below Z786; **target** H, "the previous swing high" (the 0% level), both from the levels used for the fill, fixed after it. The source's table gives a 1-minute stop of 2.5 to 3.5 points and a target of 4 to 6 points (about 1:1.5); its levels give a different ratio (from Z618, the target is about 3.7 times the stop). **We follow the levels it names**, not the ratio; the article says so.
- **FO-5M-CONF (5-minute, conservative confirmation):** a long signal at the close of a 5-minute bar of an active setup when (a) its low is at or below Z50 and above Z786 ("taps into the 50% to 61.8% zone"), (b) it closes above Z618, and (c) it is a **bullish pin bar** (lower wick, from the low to the lower of open and close, at least 60% of the bar's range) or a **bullish engulfing** (it closes above its open, the previous 5-minute bar of the session closed below its open, and its body covers the previous body: open <= previous close and close >= previous open). Entry at the open of the next minute. **Stop** one tick below L ("1 tick below the 1.0 level (Swing Low)"); **target** X1272 (the 127.2% extension), levels from the signal bar, fixed after it. Short: the mirror (bearish pin bar, bearish engulfing).
- **FO-1M-VWAP:** FO-1M-LIM, with the limit placed only in minutes where Z618 is **within 2.00 points of the session VWAP** at the last minute's close ("aligns perfectly within 1 to 2 points of the daily VWAP line").
- **FO-5M-VWAP:** FO-5M-CONF, with the signal taken only when Z618 is within 2.00 points of the session VWAP at the signal bar's close.
- **Session VWAP:** the volume-weighted average of the 1-minute typical price (high + low + close) / 3 from 09:30, restarting every session.

## Exits and execution (all variants)
- Stop and target are checked on every 1-minute bar from the entry minute (the stop also in the entry minute, the target from the next minute). If both are touched in the same minute, **the stop is taken**. A level gapped through fills at that minute's open. A position still open at the session close is closed at the close of the session's last minute.
- No news filter is applied: the releases the source names (CPI, NFP) come at 08:30, before the session, and FOMC decisions at 14:00, after the entry window.

## Not tested (said in the article)
The order book (DOM) and absorption, volume delta and the volume of the pullback, Volume Profile and the Point of Control, the 20- and 50-period EMA and RSI divergence filters, the 20-EMA bounce trigger, the 1-minute engulfing trigger, the 161.8% extension, crude oil and NQ, other session times. They will not be tried after seeing the result.

## Costs and results
- **Costs:** $30.76 per contract per round trip (commission plus one tick of slippage on each fill), as in every ES test on the site, also for the limit entries (whose fill already requires a trade-through). Results in **dollars per contract**, with points and R (the result divided by the distance from the entry to the stop) next to them.

## Periods, gates, control
- **Periods (by entry date):** development 2020 to 2023; validation January 2024 to March 2025; holdout April 2025 to September 2026 (**already used** by earlier ES tests).
- **Six gates per variant:** validation profit factor >= 1.2; at least 50 trades in each period; development **t >= 2.5** (four variants here plus two of the earlier Fibonacci retracement test make more than four variants of Fibonacci retracement entries); above the 95th percentile of 500 runs of the matched control; positive without the 10 best trades; holdout net positive (flagged used). Fewer than 30 trades: Inconclusive.
- **Matched control (moved entries):** every real trade's entry moved, all together, by one random circular offset of at least 5% of the sessions, to the first minute at or after the same time of day in another session, same direction, with the **same stop and target distances in points** from its fill, the same exit rules and session close, the same costs, one position at a time. 500 runs, seeds 1000 + run. Statistic: the average net dollars per trade.

## Engine and self-test (before the run)
A new engine (`fo_lib.js`) and a self-test that must pass before any result is printed:
1. Hand-worked sessions: the opening range and a session with too few minutes; the breakout by close (not by a wick); L and H and the levels, H rising until the entry; the limit fill only on a one-tick trade-through, at the level or the gapped open; the broken setup at Z786 (also a gap below it); the pin bar and the engulfing, a touch that closes below Z618, a touch below Z786; the VWAP and the 2-point condition; stop in the entry minute, target not in it, both in one minute, gaps; the 11:30 cut; one position at a time and one trade per direction; the session close and an early close.
2. 5-minute session bars and the VWAP against a naive recomputation on the real data.
3. An **independent re-implementation** matched trade by trade for all four variants on the real data.
4. The control at offset 0 reproduces the real trades of all four variants.

## Before the article
Results go to the owner first: all four variants, every gate, long and short separately, how many setups, orders and fills, trades per year, results before and after costs, by year, by entry time and by the size of the push (H - L), the stops and targets in points against the source's 2.5 to 6 points, how trades ended, the hole check. One article, published only with the owner's agreement.

## Reading the result
"Buried" or "Inconclusive" mean a statistically convincing edge was not demonstrated; neither is proof that none exists. One market, two timeframes, the rules of one AI answer as read here.
