Markets › Metals · XAUUSD spot (broker data)

Previous Day High and Low Strategy on Gold (XAUUSD): Sneaky Pivot Backtest

On Dow futures, a reversal at yesterday's high or low after the first 15-minute candles passed five of our six gates. We ran the same rule on 22 years of gold minute data, from the COMEX open, with costs and against random days, to see whether it travels. It did not.

XAUUSD (spot gold) · 15-minute bars from the 08:20 New York COMEX open · reversal at the previous day's high or low, four versions · Protocol v1.0 plus the 8 Oct 2026 rules

Buried · No proven edge

Five gates on the Dow. Two at most on gold.

BornFrozen 23 Oct 2026 (snx_spec.md), before any gold level was computed
Died23 Oct 2026

Variants tried: 4 · Passed every gate: 0 · Best: 2 of 6 · Holdout opened: yes (already used)

Short answer: not on gold. The previous day high and low reversal (the “sneaky pivot”) that looked promising on Dow futures lost money after costs in all four versions on 22 years of XAUUSD minute data, from -$0.12 to -$0.34 an ounce a trade; the best version passed two of our six gates.

00The verdict in three lines

  • Does the previous day high and low strategy work on gold? Not in our test: all four versions lost money after costs from 2004 to 2026, between -$0.12 and -$0.34 an ounce a trade, and lost in the 2013-2019 validation years and in the holdout.
  • On the Dow it looked promising (positive in every period, five of six gates for three versions). On gold the best version passed two gates.
  • Buried: the quick-target versions by costs (a small profit before costs), the other two with no proven edge (a loss before costs).

01The rule, and why we moved it to gold

The “sneaky pivot” comes from a YouTube day trader (The Rumers): mark yesterday's high and low; when the first 15-minute candle of the day reaches one of them, wait for a confirming candle in the other direction and enter as price crosses it, with the stop beyond the tested low (or high) and the target back across the range. Our Dow futures backtest of the sneaky pivot describes the video and the four versions in full.

  • In other words: a sweep of the previous day's low or high (the PDL or PDH, as ICT traders call them) followed by a reversal, on 15-minute bars.
  • Why gold: 22 years of minute data, about three times the Dow sample, so a real edge would have room to pass the strength gate; and a market that does not move with US stock indices, so a positive result would be new evidence.
  • Chosen after a good result. We picked this test because the Dow result was good, which is a reason for suspicion, so the strength bar stayed at the strict level (t ≥ 2.5).
  • An adaptation, not a copy: gold trades almost around the clock, so the day and the first candle had to be fixed: the broker day (17:00 to 17:00 New York) and the COMEX open at 08:20 New York, gold's most liquid open. Both were fixed in advance; we did not try other opening times.

02Yesterday's high and low on gold: what the data says

  • The first 15-minute bar after the COMEX open (08:21 to 08:35) reached yesterday's low on 19.9% of 5,297 days and yesterday's high on 26.4%.
  • Does gold go on to the next level after breaking yesterday's low? About half the time. When the previous day's low broke between 08:36 and 13:30, the next lower level (the swing low) was reached by 13:30 the same day on 54.9% of 1,784 days, and price came all the way back to yesterday's high on only 3.4%. After a break of yesterday's high, the swing high followed on 51.8% of 2,105 days. Almost the same figures as on the Dow, and again not the “almost every single time” of the video.

03How we adapted the rules to gold

  • Lines: the previous broker day's high and low (17:00 to 17:00 New York); a usable day has at least 600 one-minute bars and its 08:21 bar.
  • Setup: bar 1 (08:21-08:35 New York) reaches yesterday's low (strict) or comes within 10% of the 20-day average daily range of it (near) for a buy; the same at yesterday's high for a sell. A first bar reaching both: no trade.
  • Sneaky candle: the first green bar (for a buy) among bar 2 (08:36-08:50) and bar 3 (08:51-09:05). Entry: $0.01 above its high, by the end of bar 4 (09:20). Stop: $0.01 below the lowest low since 08:21; a touch of the stop before the entry cancels the setup.
  • Targets: T1 = bar 1's high (for a buy); T2 = yesterday's high. Otherwise out at 13:30 New York, the COMEX close, so no position is held overnight. One trade a day; sells are mirrored.

04How we tested it

XAUUSD, the 1-minute bid history of an IC Markets MetaTrader 4 demo server, 11 June 2004 to 7 October 2026: 5,297 trading days (2004 to 2006 are thin, so many of their days are not usable). Costs: $0.30 an ounce a round trip, as in every gold test on the site. Periods: 2004 to 2012, 2013 to 2019, and a holdout from 2020 already used by our earlier gold tests. First-period bar t ≥ 2.5. Control: every trade moved to another day, entered at the open of the same minute with the same stop and target distances, 500 times. Clock: the rule depends on the time of day, so the frozen run uses the clock correction of our EMA 9/20 gold test, and the run was repeated on the uncorrected file; a third run on the clock of our clock audit was added after the results (section 09). Engine check: hand-made days for the broker day, the 08:21 bar, both tolerances, setups both ways, the sneaky candle on bar 2 and bar 3, a cancelled setup, both targets and the 13:30 exit, and an independent re-implementation that matched every one of the 4,157 trades on all three clocks (snx_selftest_result.txt).

05Results: does the sneaky pivot work on gold?

VariantRuleTradesWin rateGross per trade, per ozNet per trade, per ozNet total, per ozProfit factorVerdict
SX-STRICT-T1First 15-minute bar touches yesterday's high or low; target: the far end of that first bar61261.8%+$0.15-$0.15-$950.90Buried
SX-STRICT-T2First bar touches yesterday's high or low; target: the opposite end of yesterday's range1,22139.3%-$0.04-$0.34-$4190.89Buried
SX-NEAR-T1First bar comes within 10% of the average daily range of the line; target: the far end of the first bar77762.9%+$0.18-$0.12-$940.92Buried
SX-NEAR-T2Within 10%; target: the opposite end of yesterday's range1,54739.0%-$0.01-$0.31-$4740.90Buried
-$600-$400-$200$020052008201120142017202020232026validationholdout*SX-STRICT-T2SX-NEAR-T2SX-STRICT-T1SX-NEAR-T1

Cumulative net dollars per ounce by month. One ounce is a hundredth of a standard 100-ounce lot. * Holdout already used before this test.

How the trades ended

VariantTargetStop13:30 closeMedian risk (entry to stop)Median target distanceMedian time in tradeLargest drawdown (closed trades, per oz)
SX-STRICT-T166.3%31.0%2.6%$3.36$1.8416 min-$215.85
SX-STRICT-T26.1%51.1%42.8%$4.02$18.99147 min-$627.12
SX-NEAR-T167.4%30.1%2.4%$3.30$1.7315 min-$225.66
SX-NEAR-T28.0%50.9%41.2%$3.98$17.62138 min-$672.97

The T1 versions take a small target (a median $1.84) against a larger stop ($3.36) and win about 62% of the time, usually within a quarter of an hour; before costs that made a little, after $0.30 it lost. The T2 versions aim at the other end of yesterday's range, a median $18.99 away, and reach it on 6.1% of trades; the rest end at the stop or at 13:30, and they lost even before costs. Longs lost more than shorts in every version (SX-STRICT-T1 longs -$122.41, shorts +$27.72; SX-STRICT-T2 longs -$404.87, shorts -$14.20; SX-NEAR-T1 longs -$144.56, shorts +$50.55; SX-NEAR-T2 longs -$398.65, shorts -$75.57).

06Same rule, Dow vs gold

The two markets have different units, so we compare them in R: the result of a trade divided by its risk (entry to stop).

VersionDow: before costsDow: costDow: netDow: gatesGold: before costsGold: costGold: netGold: gates
STRICT-T1+0.075 R0.033 R+0.042 R5/6+0.068 R0.104 R-0.036 R1/6
STRICT-T2+0.125 R0.027 R+0.099 R5/6+0.068 R0.090 R-0.022 R1/6
NEAR-T1+0.066 R0.034 R+0.033 R5/6+0.079 R0.106 R-0.027 R2/6
NEAR-T2+0.107 R0.027 R+0.080 R4/6+0.064 R0.091 R-0.028 R1/6

Before costs, the gold trades earned about as much per unit of risk as the Dow trades on the quick-target versions (+0.068 R against +0.075 R a trade on the strict one), and less on the others. The costs differ more: about 0.03 R a trade on the Dow and 0.10 R on gold, because $0.30 is a large slice of the small stops gold had when it traded near $425 an ounce. And gold's results were not steady: the Dow versions had development t-statistics up to 1.58, gold's were between -0.66 and 0.10.

07Sneaky pivot or random day?

VariantTradesReal net per tradeMoved trades, medianMoved, 5th to 95thPercentile (95 needed)
SX-STRICT-T1612-$0.15-$0.31-$0.53 to -$0.1088.0
SX-STRICT-T21,221-$0.34-$0.22-$0.53 to +$0.0426.4
SX-NEAR-T1777-$0.12-$0.31-$0.50 to -$0.1395.4
SX-NEAR-T21,547-$0.31-$0.23-$0.48 to +$0.0130.4

The quick-target versions did better than the same trades on random days (the 88.0th and 95.4th percentile), but the random days themselves lost about $0.31 an ounce a trade: a small target against a wider stop, with $0.30 to pay, loses on an ordinary day. Beating that is not the same as making money. The T2 versions did worse than most random sets.

08By period and by year

Variant2004 to 2012 (trades)2013 to 2019 (trades)Holdout* 2020 to Oct 2026 (trades)t, first periodPF, second period
SX-STRICT-T1-$4.49 (178)-$74.32 (231)-$15.88 (203)-0.120.72
SX-STRICT-T2-$75.37 (419)-$106.80 (416)-$236.90 (386)-0.660.86
SX-NEAR-T1+$4.22 (224)-$51.29 (289)-$46.94 (264)0.100.83
SX-NEAR-T2-$27.71 (532)-$90.67 (522)-$355.84 (493)-0.210.91
YearSX-STRICT-T1 net per oz (trades)SX-STRICT-T2 net per oz (trades)SX-NEAR-T1 net per oz (trades)SX-NEAR-T2 net per oz (trades)
2004 (from 11 Jun)no trade+$0.28 (4)+$0.99 (1)-$4.04 (7)
2005-$1.34 (5)-$10.23 (13)-$1.34 (6)-$11.23 (15)
2006-$7.48 (14)-$12.34 (32)-$1.34 (22)+$16.97 (45)
2007+$14.97 (25)-$5.24 (58)+$19.32 (32)-$10.25 (78)
2008+$0.53 (25)-$40.37 (64)+$1.51 (27)-$38.92 (80)
2009+$2.44 (25)+$21.69 (71)-$7.30 (30)+$23.28 (84)
2010-$8.54 (20)-$3.22 (58)-$4.17 (24)+$3.73 (68)
2011-$6.53 (26)-$55.24 (52)-$7.47 (33)-$61.67 (69)
2012+$1.46 (38)+$29.30 (67)+$4.02 (49)+$54.42 (86)
2013-$43.45 (37)-$158.59 (61)-$27.13 (50)-$132.52 (78)
2014-$2.73 (40)+$33.40 (69)-$1.97 (41)+$15.20 (78)
2015-$7.77 (28)-$18.75 (47)-$3.85 (35)-$20.18 (61)
2016+$12.12 (33)+$2.43 (54)+$14.78 (41)+$15.44 (73)
2017-$4.81 (36)+$33.28 (72)-$4.93 (45)+$39.17 (88)
2018-$5.95 (27)-$5.38 (60)-$3.99 (37)-$3.00 (73)
2019-$21.73 (30)+$6.81 (53)-$24.20 (40)-$4.78 (71)
2020-$15.84 (26)-$66.37 (53)-$29.77 (33)-$109.98 (64)
2021+$15.27 (30)+$28.53 (51)+$13.41 (36)+$38.77 (69)
2022+$27.23 (35)+$90.88 (58)+$20.47 (47)+$35.30 (79)
2023-$19.98 (25)+$5.71 (52)-$34.40 (33)+$17.45 (69)
2024+$26.84 (31)+$44.01 (55)+$22.20 (39)+$64.56 (66)
2025+$12.60 (31)+$86.25 (66)-$0.24 (41)+$74.04 (81)
2026 (to 7 Oct)-$62.00 (25)-$425.91 (51)-$38.61 (35)-$475.98 (65)

* The holdout years were already used by our earlier gold tests.

2026 was the worst year of every version. That is partly scale: the cost is a fixed $0.30 an ounce, but gold went from about $425 in 2004-2005 to about $4,456 in 2026, and the median risk per trade from about $1.21 to $20.45 (on SX-STRICT-T2), so recent trades weigh far more in dollars. In R, which removes the scale, the result is still a small loss: SX-STRICT-T1 -0.036 R, SX-STRICT-T2 -0.022 R, SX-NEAR-T1 -0.027 R, SX-NEAR-T2 -0.028 R a trade.

09Does the clock matter?

The broker's file labels some weeks an hour off, which matters for a rule tied to 08:20. The frozen run uses the correction of our EMA 9/20 gold test, which moves 20 weeks of 2020 to 2026 in which the server followed the European clock change. Our clock audit of 9 October 2026, built on the 08:30 US data releases, also found the labels an hour early in most weeks of 2004 to 2010, which that correction does not move. After seeing the results we ran the test a third time on the audit's clock. It is a check, not a new rule; the verdict is the frozen run's.

VariantFrozen run: net per trade (trades; first-period t; gates)Uncorrected file: net per trade (trades; first-period t; gates)Clock audit (check added after): net per trade (trades; first-period t; gates)
SX-STRICT-T1-$0.15 (612; t -0.12; 1/6)-$0.15 (613; t -0.12; 1/6)-$0.18 (648; t -0.67; 1/6)
SX-STRICT-T2-$0.34 (1,221; t -0.66; 1/6)-$0.38 (1,230; t -0.66; 1/6)-$0.36 (1,222; t -0.36; 1/6)
SX-NEAR-T1-$0.12 (777; t 0.10; 2/6)-$0.12 (778; t 0.10; 2/6)-$0.14 (820; t -0.32; 1/6)
SX-NEAR-T2-$0.31 (1,547; t -0.21; 1/6)-$0.35 (1,558; t -0.21; 1/6)-$0.35 (1,554; t -0.12; 1/6)

Every version lost money and was buried on all three clocks. On the audit's clock the 2004 to 2012 period was slightly negative in every version.

10The gates

VariantTrades1. PF ≥ 1.2 in validation2. ≥ 50 trades in each period3. t ≥ 2.5 on development4. Above the 95th percentile of the moved-trade control5. Positive without the 10 best trades6. Holdout net positive (already used)
SX-STRICT-T1612failpassfailfailfailfail
SX-STRICT-T21,221failpassfailfailfailfail
SX-NEAR-T1777failpassfailpassfailfail
SX-NEAR-T21,547failpassfailfailfailfail
VariantCauseGates failedVerdict
SX-STRICT-T1Costs1, 3, 4, 5, 6Buried
SX-STRICT-T2No proven edge1, 3, 4, 5, 6Buried
SX-NEAR-T1Costs1, 3, 5, 6Buried
SX-NEAR-T2No proven edge1, 3, 4, 5, 6Buried

The data-gap check removed 151, 368, 195 and 470 trades on days touching a known gap in the data; no verdict changed. Costs: positive before costs, negative after. No proven edge: negative even before costs.

TWhat this shows, and what to take into your own tests

What the results show

  • On gold, the reversal at the previous day's high or low lost money after costs in all four versions over 22 years of XAUUSD minute data: from -$0.12 to -$0.34 an ounce a trade.
  • Before costs, the two versions taking the quick target (the far end of the first 15-minute candle) made a little, +$0.15 and +$0.18 an ounce a trade; the $0.30 cost took more than that. The two aiming at the other end of yesterday's range lost money even before costs.
  • The same rule passed four or five of six gates on Dow futures. On gold the 2004 to 2012 period that decides the strength gate came out flat (t from -0.66 to 0.10), and 2013 to 2019 and the holdout lost money in every version.

What remains unknown

  • COMEX gold futures with their real session and fills; we used a broker's spot price.
  • Another opening time for gold (the London open, or the 09:30 stock open). We fixed the COMEX open in advance and did not search for a better one.
  • Whether the Dow result itself holds on new data: its forward test starts on 26 October 2026.

Why it was buried

It lost money after costs in every version, in the validation years and in the holdout, and the first nine years were flat. Only one version beat the same trades moved to random days, and mostly because the random days lose more with its small target and wider stop. Our cross-market scoreboard found that a good result on one market predicts little on another; this test is one more case.

What you can apply to your own tests

  • Do not carry a rule from one market to another on trust; test it there first, with the same rules fixed in advance.
  • Compare the cost with the typical risk, not the price: $0.30 an ounce was about a quarter of the median stop in 2004-2005 and under a fiftieth of it in 2026.
  • A target smaller than the stop needs a high win rate just to pay the spread: here 62% winners were not enough.

A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.

FAQCommon questions

Does the previous day high and low strategy work on gold?

Not in our backtest. From 2004 to 2026 every version lost money after a $0.30-an-ounce cost, in the 2013-2019 validation years and in the 2020-2026 holdout too. The versions with a quick target made a little before costs (+$0.15 an ounce a trade on the strict one); the cost took more.

How do you trade the previous day high and low on XAUUSD?

The rule we tested: mark yesterday's high and low (17:00 to 17:00 New York); if the first 15-minute candle after the 08:20 COMEX open reaches one of them, wait for a candle closing the other way, enter $0.01 beyond it by 09:20 with the stop beyond the tested low or high, and target the first candle's far end or the other end of yesterday's range; out by 13:30.

Does gold go to the next level after breaking the previous day low?

About half the time: after a break of yesterday's low between 08:36 and 13:30 New York, the next lower level was reached the same day on 55% of days, and after a break of yesterday's high the next higher level on 52%.

Why did it look good on Dow futures but not on gold?

In risk units the gold trades earned about as much before costs on the quick-target versions, but the cost was about three times larger relative to the stop, and the results were not steady: 2004 to 2012 was flat and later years lost. A good result on one market often fails on another, which is why we test it there.

How was the sneaky pivot tested on gold?

On IC Markets MT4 XAUUSD 1-minute data from June 2004 to October 2026, built into 15-minute bars from the COMEX open, with rules written and dated before the data was run, costs included on every trade, results split into development, validation and holdout periods, a random-entry control as the benchmark, and every variant reported, and repeated on three versions of the file's clock. Read the protocol.

11Check our arithmetic

Frozen specificationWhy gold, how the day and the first candle were fixed, the four versions, costs, periods, gates and control, dated before any gold level was computed.
snx_spec.md
CodeThe engine (its readings at the top, and the audit clock added after the results), the independent re-implementation, the self-test and the run (node snx_run.js). Needs the MT4 gold history.
snx_lib.js · snx_ref.js · snx_selftest.js · snx_run.js
Shared code and data checksThe MT4 loader, the clock correction, statistics and control helpers, the gold gap list, the clock audit's week-by-week decisions and the data manifest.
control_audit_lib.js · fx_data.js · gh_lib.js · gold_audit_clock.js · gx_lib.js · hourly_lib.js · ma_lib.js · rsi2_protocol.js · data_holes_xau.json · clock_audit_fix.json · data_manifest.md
ResultsSelf-test result, the console output of the run on each clock (with the level statistics), the clock comparison and all numbers.
snx_selftest_result.txt · snx_results.txt · snx_results_uncorrected.txt · snx_results_auditclock.txt · snx_clocks.json · snx_summary.json
Trade logs (CSV)Every trade: date, entry and exit (New York time), direction, sneaky bar, entry, stop, target, exit, risk in dollars per ounce, exit reason, gross and net dollars per ounce and R.
SX-STRICT-T1 · SX-STRICT-T2 · SX-NEAR-T1 · SX-NEAR-T2

Code provenance: our own code, written from the specification.

12Data notes

Source. A broker's demo history of spot gold (bid prices), not COMEX futures; the COMEX open and close are used only as times of day. Gaps inside the day are listed in data_holes_xau.json and never filled. Clock. See section 09. Fills: stop orders at their level, or a minute's open if it gapped through, which is optimistic for a spot price with a spread; costs are constant across the 22 years.

13Corrections

None since publication.

+More tests and guides