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.
Buried · No proven edgeFive gates on the Dow. Two at most on gold.
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?
| Variant | Rule | Trades | Win rate | Gross per trade, per oz | Net per trade, per oz | Net total, per oz | Profit factor | Verdict |
|---|---|---|---|---|---|---|---|---|
| SX-STRICT-T1 | First 15-minute bar touches yesterday's high or low; target: the far end of that first bar | 612 | 61.8% | +$0.15 | -$0.15 | -$95 | 0.90 | Buried |
| SX-STRICT-T2 | First bar touches yesterday's high or low; target: the opposite end of yesterday's range | 1,221 | 39.3% | -$0.04 | -$0.34 | -$419 | 0.89 | Buried |
| SX-NEAR-T1 | First bar comes within 10% of the average daily range of the line; target: the far end of the first bar | 777 | 62.9% | +$0.18 | -$0.12 | -$94 | 0.92 | Buried |
| SX-NEAR-T2 | Within 10%; target: the opposite end of yesterday's range | 1,547 | 39.0% | -$0.01 | -$0.31 | -$474 | 0.90 | Buried |
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
| Variant | Target | Stop | 13:30 close | Median risk (entry to stop) | Median target distance | Median time in trade | Largest drawdown (closed trades, per oz) |
|---|---|---|---|---|---|---|---|
| SX-STRICT-T1 | 66.3% | 31.0% | 2.6% | $3.36 | $1.84 | 16 min | -$215.85 |
| SX-STRICT-T2 | 6.1% | 51.1% | 42.8% | $4.02 | $18.99 | 147 min | -$627.12 |
| SX-NEAR-T1 | 67.4% | 30.1% | 2.4% | $3.30 | $1.73 | 15 min | -$225.66 |
| SX-NEAR-T2 | 8.0% | 50.9% | 41.2% | $3.98 | $17.62 | 138 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).
| Version | Dow: before costs | Dow: cost | Dow: net | Dow: gates | Gold: before costs | Gold: cost | Gold: net | Gold: gates |
|---|---|---|---|---|---|---|---|---|
| STRICT-T1 | +0.075 R | 0.033 R | +0.042 R | 5/6 | +0.068 R | 0.104 R | -0.036 R | 1/6 |
| STRICT-T2 | +0.125 R | 0.027 R | +0.099 R | 5/6 | +0.068 R | 0.090 R | -0.022 R | 1/6 |
| NEAR-T1 | +0.066 R | 0.034 R | +0.033 R | 5/6 | +0.079 R | 0.106 R | -0.027 R | 2/6 |
| NEAR-T2 | +0.107 R | 0.027 R | +0.080 R | 4/6 | +0.064 R | 0.091 R | -0.028 R | 1/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?
| Variant | Trades | Real net per trade | Moved trades, median | Moved, 5th to 95th | Percentile (95 needed) |
|---|---|---|---|---|---|
| SX-STRICT-T1 | 612 | -$0.15 | -$0.31 | -$0.53 to -$0.10 | 88.0 |
| SX-STRICT-T2 | 1,221 | -$0.34 | -$0.22 | -$0.53 to +$0.04 | 26.4 |
| SX-NEAR-T1 | 777 | -$0.12 | -$0.31 | -$0.50 to -$0.13 | 95.4 |
| SX-NEAR-T2 | 1,547 | -$0.31 | -$0.23 | -$0.48 to +$0.01 | 30.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
| Variant | 2004 to 2012 (trades) | 2013 to 2019 (trades) | Holdout* 2020 to Oct 2026 (trades) | t, first period | PF, second period |
|---|---|---|---|---|---|
| SX-STRICT-T1 | -$4.49 (178) | -$74.32 (231) | -$15.88 (203) | -0.12 | 0.72 |
| SX-STRICT-T2 | -$75.37 (419) | -$106.80 (416) | -$236.90 (386) | -0.66 | 0.86 |
| SX-NEAR-T1 | +$4.22 (224) | -$51.29 (289) | -$46.94 (264) | 0.10 | 0.83 |
| SX-NEAR-T2 | -$27.71 (532) | -$90.67 (522) | -$355.84 (493) | -0.21 | 0.91 |
| Year | SX-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.
| Variant | Frozen 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
| Variant | Trades | 1. PF ≥ 1.2 in validation | 2. ≥ 50 trades in each period | 3. t ≥ 2.5 on development | 4. Above the 95th percentile of the moved-trade control | 5. Positive without the 10 best trades | 6. Holdout net positive (already used) |
|---|---|---|---|---|---|---|---|
| SX-STRICT-T1 | 612 | fail | pass | fail | fail | fail | fail |
| SX-STRICT-T2 | 1,221 | fail | pass | fail | fail | fail | fail |
| SX-NEAR-T1 | 777 | fail | pass | fail | pass | fail | fail |
| SX-NEAR-T2 | 1,547 | fail | pass | fail | fail | fail | fail |
| Variant | Cause | Gates failed | Verdict |
|---|---|---|---|
| SX-STRICT-T1 | Costs | 1, 3, 4, 5, 6 | Buried |
| SX-STRICT-T2 | No proven edge | 1, 3, 4, 5, 6 | Buried |
| SX-NEAR-T1 | Costs | 1, 3, 5, 6 | Buried |
| SX-NEAR-T2 | No proven edge | 1, 3, 4, 5, 6 | Buried |
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
snx_spec.md
snx_lib.js · snx_ref.js · snx_selftest.js · snx_run.js
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
snx_selftest_result.txt · snx_results.txt · snx_results_uncorrected.txt · snx_results_auditclock.txt · snx_clocks.json · snx_summary.json
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.