Markets › Metals · XAUUSD spot (broker data), 1-hour
Double Top Pattern Backtest: Gold (XAUUSD), 1-Hour Bars, 2004 to 2026
Double tops and double bottoms found by a mechanical rule on 22 years of 1-hour gold, traded the textbook way: a close through the neckline, the stop beyond the second top, the pattern's height as the target. With costs and a control.
Buried · No proven edgeThe double tops lost before costs. The double bottoms did what random days did.
Variants tried: 8 (4 reviewed, 4 in the first version) · Passed every gate: 0 · Best: 2 of 6 gates · Holdout opened: yes (already used)
Short answer: not in our test. Double tops and double bottoms found by a mechanical rule on gold 1-hour bars from 2004 to 2026, traded the textbook way (a close through the neckline, the stop beyond the second top, the pattern's height as the target), did not pass. Sold on the break, the double tops lost even before costs (-0.111 R and -0.132 R a trade); the double bottoms made a little, no more than the same buys on random days. All eight versions were buried.Compare all 20 gold strategies we tested →
00The verdict in three lines
- We tested the double top and its mirror, the double bottom, on 1-hour gold bars from July 2004 to October 2026: two near-equal tops found by a mechanical zigzag rule, a sell on the first 1-hour close below the low between them (the neckline), the stop one tick above the second top, and the target the pattern's height below the neckline. Double bottoms the other way round. $0.30 an ounce a round trip.
- None of the eight versions passed. In the main, reviewed set the two-sided versions lost (-15 R over 272 trades with the smaller patterns, -6 R over 107 with the larger), and the double tops lost even before costs. Double bottoms alone made +0.034 R and +0.085 R a trade, no better than the same buys on random days.
- The pattern did not beat chance in any version: placed on other days with the same stop and target distances, the same trades did as well (control percentiles 34.2 to 51.4; 95 needed). A first version of the rules, run before an outside review, gave the same answer.
01What we tested
A double top is two peaks at about the same price with a dip between them; the low of that dip is the neckline, and the pattern counts only when the price closes below it. The double bottom is the mirror image at a low. The rules we traded are the ones most often published:
- The definition. Lo, Mamaysky and Wang (Journal of Finance, 2000) define a double top as two peaks within 1.5% of their average, at least a month apart. Bulkowski's guide to the classic double top asks for a rise before it and peaks that differ little, and says the pattern is confirmed only by a close below the low between the peaks; until then, in his statistics, price goes on higher 60% of the time.
- The trade. Broker and education pages agree on the rest: enter on the close through the neckline, put the stop above the second peak, and take profit at the pattern's height projected from the neckline (the “measured move”).
Those definitions are written for daily charts. On 1-hour bars a percent of price means very different moves in 2005 and in 2025, so we measured the swings in units of gold's recent volatility, with the zigzag of our head-and-shoulders test on gold:
- Peaks and troughs come from a zigzag of the 1-hour closes. A peak is confirmed when the close falls k times the recent volatility below the highest close since the last trough (the volatility is the standard deviation of the 1-hour log changes over the previous 500 bars, about a month), a trough the same way upward. A pivot is known only from the bar that confirms it, so no rule looks ahead; our self-test checks this by cutting the data at four points and getting the same patterns and trades.
- Two sizes: k = 3 finds tops a median 24 hours of trading apart (a few days); k = 6, 69 hours apart (one to a few weeks).
- A valid double top: the first top, the low between and the second top, each confirmed; the 50-bar EMA of the 1-hour closes higher at the second top than at the first (a rise into it); and the two tops' closes no more than 0.3 × k × the 14-bar ATR of the 1-hour bars apart, read on the bar before the confirmation (about the 3% of the published rules, scaled to the hour).
- The break: the first 1-hour close below the neckline (the lowest low between the tops), before the next zigzag pivot and within as many 1-hour bars after the second top as there are between the tops; otherwise the pattern is dropped.
- The trade: entry at the next minute's open; stop one tick ($0.01) above the second top's highest high; target the neckline minus the height (top to neckline). If the stop and the target are touched in the same minute, the stop is taken. One position at a time: a pattern that breaks while a trade is open is ignored.
- Results in R, where R is the pattern's height: a trade that reaches its target makes about +1 R before costs.
- Four versions: DT-1 and DT-2 sell double tops and buy double bottoms (k = 3 and 6); DT-3 and DT-4 buy double bottoms only (gold rose from $384 to $4,110 an ounce over this file, which favours buying). The chart-pattern family on this gold file now has twelve versions, so the development t-statistic needed is 2.5.
How many patterns this finds: the smaller size found 713 valid patterns in 22 years (353 double tops and 360 double bottoms), of which 299 (41.9%) closed through the neckline in time; the larger size 255 and 118 (46.3%). Close to the 40% that Bulkowski's statistics imply for daily stock charts.
02Two versions of the rules
We froze a first version of the rules, ran it, and then received an outside review of its draft, written before any result existed. It asked for the trend to be an EMA instead of a higher high and a higher low, for the equal-tops tolerance to use the ATR, for a stop buffer of one tick, and for the no-look-ahead rule to be written down and tested. Our protocol treats any change after a freeze as a new test, so the reviewed rules were frozen as a second test and both are reported. The reviewed version is the main result; the first version is in section 10. The changes were not chosen after seeing the first results, and the answer did not change.
03Data and costs
Gold (XAUUSD), the 1-minute bid history of an IC Markets MetaTrader 4 demo server, from 11 June 2004 to 7 October 2026, built into 1-hour bars on the New York clock; patterns from the 501st bar (mid-July 2004). The prices are not republished. Clock: the file's time labels are an hour early in most weeks of 2004 to 2010; we used the clock of our audit, which moves those weeks. A check before the run confirmed that the US 08:30 data releases land in the right minute in every year (dtop_datacheck.txt). Costs: $0.30 per ounce per round trip, as in every gold test on the site, with no slippage, which is optimistic; $0.45 and $0.75 and two financing scenarios are in section 11. Periods: development 2004 to 2012, validation 2013 to 2019, holdout 2020 to 2026, already used by our earlier gold tests.
Engine check: for each version a self-test with hand-worked cases and an independent re-implementation that matched every zigzag pivot, pattern and trade (dtop2_selftest_result.txt, dtop_selftest_result.txt). Both passed on their first run.
04Results
The reviewed version. Net R after costs, without financing. The win rate is the share of trades that ended positive, with its 95% range.
| Variant | Rule | Trades | Gross per trade | Net after costs | Net per trade | Winners (95% range) | Profit factor | Verdict |
|---|---|---|---|---|---|---|---|---|
| DT-1 | Smaller patterns (k = 3): tops sold, bottoms bought | 272 | -0.030 R | -15 R | -0.054 R | 55.5% (50% to 61%) | 0.89 | Buried |
| DT-2 | Larger patterns (k = 6): tops sold, bottoms bought | 107 | -0.040 R | -6 R | -0.054 R | 53.3% (44% to 62%) | 0.89 | Buried |
| DT-3 | Smaller patterns: double bottoms bought only | 147 | +0.058 R | +5 R | +0.034 R | 59.2% (51% to 67%) | 1.08 | Buried |
| DT-4 | Larger patterns: double bottoms bought only | 52 | +0.099 R | +4 R | +0.085 R | 57.7% (44% to 70%) | 1.19 | Buried |
Cumulative net R by month. * Holdout already used before this test.
By period
| Variant | Development 2004 to 2012 (trades) | Validation 2013 to 2019 (trades) | Holdout* 2020 to Oct 2026 (trades) | Development t | Validation PF |
|---|---|---|---|---|---|
| DT-1 | +7 R (102) | -13 R (83) | -8 R (87) | 0.73 | 0.70 |
| DT-2 | -7 R (44) | -8 R (33) | +9 R (30) | -1.10 | 0.62 |
| DT-3 | +7 R (57) | -3 R (45) | +1 R (45) | 0.96 | 0.86 |
| DT-4 | -1 R (23) | +3 R (12) | +2 R (17) | -0.23 | 1.86 |
No version was positive in all three periods. DT-2 made +9 R in the holdout after losing in both earlier periods; with 30 trades, that is not evidence. In dollars per ounce DT-2 even ended positive ($791 an ounce over 22 years) while it lost in R: a trade at recent gold prices moves far more dollars than one in 2005, so the dollar total is dominated by the last years. Per R, every year counts the same.
Year by year, next to gold
| Year | Gold, first open → last close | DT-1 (trades) | DT-2 (trades) | DT-3 (trades) | DT-4 (trades) |
|---|---|---|---|---|---|
| 2004 (from July) | $384 → $437 (+14%) | -2 R (4) | -4 R (3) | -1 R (3) | -1 R (1) |
| 2005 | $437 → $515 (+18%) | +0 R (19) | -3 R (8) | +2 R (10) | -1 R (3) |
| 2006 | $517 → $636 (+23%) | -1 R (13) | +1 R (5) | +1 R (8) | -0 R (4) |
| 2007 | $638 → $832 (+30%) | -2 R (16) | -0 R (7) | +1 R (6) | -1 R (5) |
| 2008 | $841 → $867 (+3%) | +3 R (12) | -3 R (7) | +0 R (6) | +0 R (3) |
| 2009 | $874 → $1,098 (+26%) | +4 R (14) | +1 R (4) | +2 R (9) | -0 R (2) |
| 2010 | $1,095 → $1,408 (+29%) | -2 R (11) | +1 R (3) | -2 R (5) | +1 R (1) |
| 2011 | $1,416 → $1,564 (+10%) | +3 R (6) | -0 R (2) | +2 R (5) | +1 R (1) |
| 2012 | $1,567 → $1,675 (+7%) | +4 R (7) | -0 R (5) | +2 R (5) | +1 R (3) |
| 2013 | $1,673 → $1,208 (-28%) | -6 R (12) | +3 R (3) | -3 R (3) | – |
| 2014 | $1,225 → $1,187 (-3%) | -4 R (7) | -2 R (4) | -3 R (4) | +1 R (1) |
| 2015 | $1,187 → $1,061 (-11%) | -1 R (10) | +1 R (5) | -4 R (6) | +1 R (3) |
| 2016 | $1,065 → $1,151 (+8%) | -2 R (15) | -1 R (3) | +0 R (8) | +1 R (1) |
| 2017 | $1,152 → $1,302 (+13%) | +0 R (10) | +0 R (5) | +0 R (5) | +2 R (2) |
| 2018 | $1,310 → $1,279 (-2%) | +0 R (15) | -5 R (7) | +2 R (10) | -2 R (2) |
| 2019 | $1,282 → $1,520 (+19%) | -1 R (14) | -2 R (6) | +4 R (9) | +1 R (3) |
| 2020 | $1,520 → $1,893 (+25%) | +1 R (13) | -1 R (3) | -0 R (5) | -0 R (2) |
| 2021 | $1,909 → $1,828 (-4%) | -4 R (10) | -0 R (4) | -3 R (6) | -1 R (3) |
| 2022 | $1,831 → $1,824 (-0%) | +2 R (14) | +0 R (3) | +1 R (9) | -1 R (1) |
| 2023 | $1,827 → $2,063 (+13%) | +5 R (12) | +1 R (4) | +2 R (6) | +1 R (1) |
| 2024 | $2,063 → $2,625 (+27%) | +1 R (13) | +3 R (5) | +4 R (7) | +2 R (4) |
| 2025 | $2,624 → $4,316 (+64%) | -8 R (14) | +5 R (6) | +1 R (5) | +2 R (2) |
| 2026 (to 7 Oct) | $4,319 → $4,110 (-5%) | -6 R (11) | +1 R (5) | -3 R (7) | +0 R (4) |
DT-1 ended 11 of the 23 calendar years positive. With about a dozen trades a year, a single year says little either way.
05Double tops and double bottoms, separately
| Variant | Side | Trades | Gross per trade | Net per trade | Reached the target | Profit factor | Holdout* net |
|---|---|---|---|---|---|---|---|
| DT-1 | double tops (sells) | 132 | -0.111 R | -0.135 R | 52.3% | 0.75 | -9 R |
| DT-1 | double bottoms (buys) | 140 | +0.047 R | +0.023 R | 58.6% | 1.05 | +0 R |
| DT-2 | double tops (sells) | 57 | -0.132 R | -0.146 R | 50.9% | 0.73 | +7 R |
| DT-2 | double bottoms (buys) | 50 | +0.065 R | +0.051 R | 56.0% | 1.11 | +2 R |
| DT-3 | double bottoms (buys) | 147 | +0.058 R | +0.034 R | 59.2% | 1.08 | +1 R |
| DT-4 | double bottoms (buys) | 52 | +0.099 R | +0.085 R | 57.7% | 1.19 | +2 R |
The double tops lost before costs at both sizes (-0.111 R and -0.132 R a trade): selling the break of a double top did worse than nothing. The double bottoms made a little before and after costs. Gold's long rise helped every buy and hurt every sell, which is why the next section matters.
06How the trades ended
| Variant | Reached the target | At random, with the same levels | Came back to the neckline first | Average height | Distance to stop / target | Median hours held | Cost per trade |
|---|---|---|---|---|---|---|---|
| DT-1 | 55.5% | 56.9% | 82.4% | $21.46 | 1.11 R / 0.83 R | 43 | 0.024 R |
| DT-2 | 53.3% | 55.0% | 87.9% | $44.55 | 1.08 R / 0.88 R | 150 | 0.014 R |
| DT-3 | 59.2% | 56.5% | 81.0% | $21.22 | 1.10 R / 0.84 R | 43 | 0.024 R |
| DT-4 | 57.7% | 52.4% | 98.1% | $46.20 | 1.02 R / 0.92 R | 164 | 0.014 R |
Every trade ended at its stop or its target, so the win rate is the share that reached the target first: 53.3% to 59.2%. That looks good, but the stop sat further away than the target (the entry comes after the close through the neckline, already part of the way down). With these distances, a price moving at random reaches the target first in about 52.4% to 56.9% of trades (the column “at random”: the stop distance divided by the sum of both distances, trade by trade). The two-sided versions did a little worse than that and the bottoms-only versions a little better.
Bulkowski reports a 65% “pullback rate” for daily double tops (price returning to the breakout level); on 1-hour gold, 81.0% to 98.1% of the trades came back to the neckline before they ended.
07Is it the pattern or chance?
The moved-entry control: every real entry moved by one random offset of whole days, at least 5% of the series, to the same time of day on another day, same direction, with the stop and the target at the same distances measured in units of the volatility at the new time (so a small pattern of 2004 moved to 2024 keeps its size relative to the market); same costs, same one-position rule; 500 runs with fixed seeds. The bar is the 95th percentile of the average net R per trade.
| Variant | Trades | Real average per trade | Control trades (mean) | Control median | Control 5th to 95th | Percentile (95 needed) |
|---|---|---|---|---|---|---|
| DT-1 | 272 | -0.054 R | 213 | -0.025 R | -0.128 R to +0.073 R | 34.2 |
| DT-2 | 107 | -0.054 R | 83 | -0.035 R | -0.206 R to +0.168 R | 40.2 |
| DT-3 | 147 | +0.034 R | 118 | +0.028 R | -0.110 R to +0.147 R | 51.4 |
| DT-4 | 52 | +0.085 R | 41 | +0.104 R | -0.156 R to +0.334 R | 44.6 |
Every version sat in the middle or the lower half of its control. The double bottoms' small profit is what the same buys made on other days.
08The 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-entry control | 5. Positive without the 10 best trades | 6. Holdout net positive (already used) |
|---|---|---|---|---|---|---|---|
| DT-1 | 272 | fail | pass | fail | fail | fail | fail |
| DT-2 | 107 | fail | fail | fail | fail | fail | pass |
| DT-3 | 147 | fail | fail | fail | fail | fail | pass |
| DT-4 | 52 | pass | fail | fail | fail | fail | pass |
DT-1 had enough trades in every period (gate 2) and failed the other five. The others had too few trades in at least one period, and none came near the development t of 2.5.
09Verdict by variant
| Variant | Cause | Gates failed | Verdict |
|---|---|---|---|
| DT-1 | No proven edge | 1, 3, 4, 5, 6 | Buried |
| DT-2 | No proven edge | 1, 2, 3, 4, 5 | Buried |
| DT-3 | Fragile | 1, 2, 3, 4, 5 | Buried |
| DT-4 | Fragile | 2, 3, 4, 5 | Buried → Inconclusive (rule 3) |
The causes follow the protocol's definitions. No proven edge (DT-1, DT-2): the result was negative before costs. Fragile (DT-3, DT-4): positive, but not without the ten best trades. DT-4 is also Inconclusive by rule 3: 27 of its 52 trades were open across a suspect gap in the data, and the 25 left are too few for a verdict (section 11). Buried means that a convincing edge was not shown here; it does not prove that none exists.
TWhat this shows, and what to take into your own tests
What the results show
- Mechanically detected double tops on gold 1-hour bars did not predict a fall after the neckline broke: sold on the break, they lost 0.111 R and 0.132 R a trade even before costs (smaller and larger patterns).
- Double bottoms made a little (+0.034 R and +0.085 R a trade after costs), but the same buys placed on random days did as well: the control percentiles were 51.4 and 44.6, with 95 needed. Gold rose about 11-fold over these years, and buying almost any day paid.
- The win rates of 53.3% to 59.2% look good but come from the levels: the target sat closer than the stop, so a price moving at random would have reached it first in about 52.4% to 56.9% of trades.
What remains unknown
- How it does on new data. The holdout here (2020 to 2026) was already used by our earlier gold tests, so it is not a clean out-of-sample test.
- Double tops picked by eye, other definitions of equal tops, an entry on a retest of the neckline, partial exits, volume, other markets and other timeframes.
- Slippage. Every stop filled at its level; around news, real stops on gold fill worse.
Why it was buried
The pattern did not pick better moments than chance. Placed on other days with the same distances, the same trades did as well or better in every version (control percentiles 34.2 to 51.4). Costs were small (under 0.03 R a trade); the problem was before costs, where the tops lost and the bottoms earned only what gold's rise gave any buy.
What you can apply to your own tests
- Compare a pattern's win rate with what its own stop and target would give at random. A target closer than the stop wins more often by construction.
- Report the two sides of a pattern separately. Here the double bottoms looked fine and the double tops lost; together they hid each other.
- When a rule changes after a first run, report both runs. Here the reviewed rules found more patterns and the same answer.
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.
10The first version, and the head and shoulders
The first version used a rise before the pattern defined by the zigzag (the first top above the peak before it, and the low between the tops above the low before it), the equal-tops tolerance in units of the zigzag's volatility (0.3 × k × s), and no stop buffer. It found fewer patterns (383 and 141) and 317 trades in four versions, against 578 in the reviewed set:
| Variant | Trades | Gross per trade | Net after costs | Net per trade | Reached the target | Control percentile | Gates | Cause | Verdict |
|---|---|---|---|---|---|---|---|---|---|
| DT-LS-3 | 151 | +0.006 R | -3 R | -0.020 R | 57.6% | 49.6 | 1 of 6 | Costs | Buried |
| DT-L-3 | 75 | +0.115 R | +7 R | +0.089 R | 62.7% | 67.6 | 2 of 6 | Fragile | Buried |
| DT-LS-6 | 60 | +0.110 R | +6 R | +0.095 R | 61.7% | 80.4 | 1 of 6 | Fragile | Buried |
| DT-L-6 | 31 | +0.155 R | +4 R | +0.141 R | 61.3% | 59.8 | 1 of 6 | Fragile | Buried → Inconclusive (rule 3) |
The same picture: the two-sided version at the smaller size was at the middle of its control (49.6), with its double tops losing before costs (-6 R over 78 trades), and the bottoms-only versions made a little that random buys matched. DT-LS-3 is “Costs” by the protocol's definition because its gross was positive by +0.006 R a trade, which is zero in practice.
Against the head and shoulders. On the same gold file, our head-and-shoulders test (15-minute bars, the same zigzag) found that the smaller patterns beat every run of their control and passed five of six gates. The double top, a simpler shape with two peaks instead of three, showed nothing of the kind on 1-hour bars.
11Costs, financing and the data-gap check
Costs and financing. The verdicts use $0.30 an ounce and no financing. Higher costs change little, because the patterns are large next to the cost (under 0.03 R a trade at $0.30); only DT-3 turns negative, at $0.75. Scenario A charges 3% a year of the price for every day held, longs and shorts alike; scenario B applies the swap IC Markets charges today (long −57.03 and short +39.767 points per lot per night, Wednesday counting three) to every night, which is not the historical cost.
| Variant | $0.30 (verdict) | $0.45 | $0.75 | Scenario A: 3% a year | Scenario B: today's swap |
|---|---|---|---|---|---|
| DT-1 | -0.054 R (PF 0.89) | -0.066 R (PF 0.87) | -0.090 R (PF 0.82) | -20 R | -20 R |
| DT-2 | -0.054 R (PF 0.89) | -0.061 R (PF 0.88) | -0.076 R (PF 0.85) | -9 R | -7 R |
| DT-3 | +0.034 R (PF 1.08) | +0.022 R (PF 1.05) | -0.002 R (PF 0.99) | +2 R | -11 R |
| DT-4 | +0.085 R (PF 1.19) | +0.078 R (PF 1.18) | +0.065 R (PF 1.14) | +3 R | -6 R |
Data gaps (rule 3). Our rule 3 removes the trades that were open across a suspect or unclear gap in the data and recomputes every gate; if the verdict changes, the result is Inconclusive. The larger patterns hold for about a week, so many of their trades cross a gap:
| Variant | Trades | Removed | Net per trade | Verdict |
|---|---|---|---|---|
| DT-1 | 272 | 73 | -0.054 R → -0.008 R | Buried → Buried |
| DT-2 | 107 | 47 | -0.054 R → +0.024 R | Buried → Buried |
| DT-3 | 147 | 41 | +0.034 R → +0.071 R | Buried → Buried |
| DT-4 | 52 | 27 | +0.085 R → +0.146 R | Buried → Inconclusive |
| DT-LS-3 | 151 | 39 | -0.020 R → +0.104 R | Buried → Buried |
| DT-L-3 | 75 | 19 | +0.089 R → +0.156 R | Buried → Buried |
| DT-LS-6 | 60 | 30 | +0.095 R → +0.066 R | Buried → Buried |
| DT-L-6 | 31 | 19 | +0.141 R → +0.245 R | Buried → Inconclusive |
DT-4 (and DT-L-6 in the first version) are left with fewer than the 30 trades a verdict needs, so they are Inconclusive; no other verdict changed.
FAQCommon questions
Does the double top pattern work?
Not in our test on gold: over 895 trades in eight versions from 2004 to 2026, no version passed our gates, and none picked better moments than the same trades placed on other days (control percentiles 34.2 to 51.4; 95 needed). Selling the break of a double top lost money before costs.
What is the success rate of the double top pattern?
In our test 53.3% to 59.2% of the trades reached their target before their stop. That looks good, but the stop sat further from the entry than the target, so a price moving at random would have reached the target first about as often. A win rate means little without the distances behind it.
Where do you put the stop loss and the target on a double top?
We used the most common published rules: enter on the first close below the neckline (the low between the two tops), put the stop one tick above the second top, and set the target at the pattern's height (from the highest top to the neckline) below the neckline. With the entry already past the neckline, the stop was on average 1.0 to 1.1 times the pattern's height away and the target 0.8 to 0.9 times.
Is the double bottom better than the double top?
On gold, yes in the totals and no in the evidence. The double bottoms made +0.034 R and +0.085 R a trade after costs, while the double tops lost. But gold rose about elevenfold over these years, and the same buys placed on random days did as well, so the double bottom itself added nothing we could measure.
How was the double top detected without looking ahead?
Peaks and troughs came from a zigzag of 1-hour closes that confirms a peak only after the price has fallen a set multiple of the recent volatility from it. The two tops had to be within 0.3 times that multiple times the 14-bar ATR of each other, the 50-bar EMA had to rise into the second top, and nothing was used before it was confirmed. Our self-test cut the data at four points and got the same patterns and trades.
How was the double top pattern tested?
On 1-minute gold prices from a broker from 2004 to 2026, 1-hour bars, $0.30 an ounce of costs a trade with higher costs and two financing scenarios reported, rules written and dated before the data was run, results split into development, validation and holdout periods (the holdout already used by earlier gold tests), and a control that moves the same trades to other days. A first version of the rules was run before an outside review; both are reported. Read the protocol.
12Check our arithmetic
dtop2_spec.md · dtop_spec.md
dtop2_lib.js · dtop2_ref.js · dtop2_selftest.js · dtop2_run.js · dtop_lib.js · dtop_ref.js · dtop_selftest.js · dtop_run.js · dtop_datacheck.js
control_audit_lib.js · em_lib.js · fx_data.js · gh_lib.js · gold_audit_clock.js · gx_lib.js · hourly_lib.js · hs_lib.js · ma_lib.js · rb_lib.js · rs_lib.js · rsi2_protocol.js · clock_audit_fix.json · data_holes_xau.json · dtop_holes_audit.json · gc_rolls.json
dtop_datacheck.txt · dtop2_selftest_result.txt · dtop2_results.txt · dtop2_summary.json · dtop_selftest_result.txt · dtop_results.txt · dtop_summary.json
DT-1 · DT-2 · DT-3 · DT-4 · DT-LS-3 · DT-L-3 · DT-LS-6 · DT-L-6
data_manifest.md
To rerun it: set MT4_HISTORY to the folder that holds the XAUUSD1.hst history file, then run node dtop_datacheck.js --out=./dtop2_out, node dtop2_selftest.js and node dtop2_run.js (and the same without the 2 for the first version).
Code provenance: our own code, written from the published descriptions of the pattern and the rules fixed in the specifications. No third-party source code is used or published.
13Data notes
Source. A broker's demo history, not an exchange record; bid prices; costs constant across years. Clock. Corrected with our October 2026 audit, as described in section 03; the pattern rules do not depend on the time of day, but the control's “same time of day” does. Gaps. See section 11.
14Corrections
18 Oct 2026, navigation: added links to the new guide that compares all 11 gold strategy tests. No result changed.