Markets › FX · GBPUSD spot (broker data), 15-minute bars from 1-minute data

Pivot Point Trading Strategy on GBP/USD: Classic Pivots Backtested on 15-Minute Bars

The classic daily pivot points traded the three standard ways, a reversal at S1 or R1, a breakout towards R2 or S2 and a London-open bias, on GBP/USD from 2004 to 2026: 11,807 trades with costs and a control.

GBP/USD · 15-minute bars built from 1-minute data · Protocol v1.0 plus the 8 Oct 2026 rules

Buried · No proven edge

Three ways to trade the pivot. Random days did about as well.

BornLevels, rules, variants, costs and gates frozen 7 Nov 2026 (piv_spec.md), before any pivot level was computed
Died11 Nov 2026, on the corrected clock (first run 7 Nov)

Variants tried: 3 · Passed every gate: 0 · Holdout opened: yes (already used)

Short answer: not in our test. The classic daily pivot points on GBP/USD 15-minute bars, traded the three standard ways (a reversal at S1 or R1 back to the pivot, a breakout through R1 or S1 towards R2 or S2, and a London-open bias relative to the pivot, long above it and short below it), made about nothing before costs from 2004 to 2026 and ended between -1.76 and -0.85 pips a trade after 1.5 pips of costs, over 11,807 trades. All three versions were buried.

00The verdict in three lines

  • Pivot points are price levels drawn from the previous day's high, low and close, and many traders use them as support and resistance. We tested the classic daily pivots the three standard ways that trading guides describe: a reversal at S1 or R1 back to the pivot (PIV-REV), a breakout through R1 or S1 towards R2 or S2 (PIV-BRK), and a London-open bias, long above the pivot and short below it, with half the position out at R1 or S1 (PIV-LDN). GBP/USD 15-minute bars, January 2004 to September 2026, 1.5 pips of costs a trade, rules frozen before the run.
  • All three versions were buried, and all three lost money after costs: -0.85, -1.70 and -1.76 pips a trade over 11,807 trades. Before costs the reversal made +0.65 pips a trade, less than half of the cost, and the breakout and the London bias lost 0.20 and 0.26.
  • The levels were not shown to pick better moments than random days: the same trades moved to other days, at the same London time and with the same distances, did about as well (percentiles 81.6, 49.6 and 11.0; 95 is needed). The win rates look good, 53.5% for the reversal and 55.7% for the breakout, but their targets were usually closer than their stops (median 0.86 and 0.62 of the stop).

01The pivot levels and our rules

The classic (floor) pivots are computed once a day from the previous forex day, which runs from 17:00 to 17:00 New York; Sunday evening counts as Monday. H, L and C are that day's high, low and close.

LevelFormula
Pivot (P)(H + L + C) / 3
R1 and S1R1 = 2P − L; S1 = 2P − H
R2 and S2R2 = P + (H − L); S2 = P − (H − L)
PartPIV-REV: reversalPIV-BRK: breakoutPIV-LDN: London-open bias
SignalThe first 15-minute bar ending 08:15 to 16:00 London whose low is at or below S1 and whose close is above it (long), or whose high is at or above R1 and whose close is below it (short).The first bar in the same window that closes above R1 (long) or below S1 (short).The bar ending 08:15 London: a close above P is a long, below P a short.
Stop1 pip beyond S2 (long) or R2 (short).P.10 pips beyond P; after the first target, the entry.
TargetP.R2 (long) or S2 (short).Half at R1 (long) or S1 (short), the other half at R2 or S2.
ExitThe target, the stop, or the last minute before 17:00 New York: no position is held over the daily rollover.

A signal uses the close of a completed 15-minute bar, and the trade is entered at the open of the next minute. Stops and targets are then checked on 1-minute bars: a level that a minute opens beyond fills at that open, and when a stop and a target are touched in the same minute, the stop is taken. Each version trades at most once a day: only the first signal counts, and there is no trade if the entry is already beyond its target or its stop. Where the guides differ (how far the stop goes, where the target is), we fixed one common rule in advance and did not tune it.

Pivot levels were tried once before here, in October 2026 and not published: the weekly Fibonacci pivots of a Forex Factory thread, with the TDI indicator, on gold and four FX majors, under rules fixed in advance but not under this protocol; none of its 25 version-market pairs passed. Counting those, the pivot family has more than four variants, so the development t-statistic needed here is 2.5.

02Data and costs

GBP/USD, the 1-minute bid history of an IC Markets MetaTrader 4 demo server, January 2004 to 28 September 2026, the same file as our London breakout test, built into 15-minute bars on the clock. The file's clock was corrected before this run: in most weeks of 2004 to 2014 and in a few weeks a year since its time stamps were one hour early (the US data releases at 08:30 New York show up at 07:30), which our review of this article found before publication; the test was rerun on a copy corrected with the decisions of our October 2026 clock audit (gbp_clockfix.js; 7 of the 576 moved weeks look doubtful on a later check (under 1% of the trades) and were left as decided; the first run is kept as piv_results_v1_clock.txt). Our conversion from New York to London time, with each country's own clock changes, was checked against the time-zone database for every day. Of 5,905 forex days, 5,871 had pivot levels and an 08:15 London bar; 4 followed a short day (fewer than 600 minutes, such as a holiday), 29 had no minute at 08:15 London, and the first day has no previous day. Periods: development 2004 to 2012, validation 2013 to 2019, holdout 2020 to September 2026, already used by our six-strategy FX study, our ADX study and the London breakout test. Costs: 1.5 pips a round trip per whole position (for PIV-LDN, the two halves together), as in the London breakout test; no swap, since every trade is closed before the rollover. Engine check: piv_selftest.js checked London time against the time-zone database, the pivot formulas by hand, hand-built days (each version's signal, entry, stop and target, a minute opening beyond the stop, the stop and a target in one minute, the half exit and the stop moved to the entry, a day without the 08:15 bar, a short previous day), all three versions trade by trade against an independent re-implementation with its own reading of the file (0 differences), and the control at offset 0 (piv_selftest_result.txt).

03Results

Results in pips (0.0001) per trade of one whole position. The 95% range is the Wilson interval for the win rate.

VariantVersionTradesNet after costsNet per trade, pipsGross per trade, pipsWinners (95% range)Profit factorDrawdown on closed tradesVerdict
PIV-REVreversal at S1 or R1, target P3,283-2,788 pips-0.85+0.6553.5% (52% to 55%)0.96-4,641 pipsBuried
PIV-BRKbreakout of R1 or S1, target R2 or S23,452-5,863 pips-1.70-0.2055.7% (54% to 57%)0.91-7,524 pipsBuried
PIV-LDNLondon-open bias relative to P (long above, short below), two targets5,072-8,903 pips-1.76-0.2646.8% (45% to 48%)0.89-9,826 pipsBuried

Winners are trades that made money after costs. The console output (piv_results.txt) also counts the 3 reversal and 2 breakout trades that closed exactly at the cost (net zero) as winners, so it shows 53.6% and 55.8%.

-5,000020062008201020122014201620182020202220242026validationholdout*PIV-REVPIV-BRKPIV-LDN

Cumulative net result by month, pips. * Holdout already used by earlier GBP/USD tests.

By period, net pips

VariantDevelopment 2004-2012 (trades)Validation 2013-2019 (trades)Holdout* 2020-2026 (trades)Development tValidation PF
PIV-REV+815 (1,329)-1,108 (980)-2,495 (974)0.380.94
PIV-BRK-4,606 (1,390)+208 (1,034)-1,465 (1,028)-2.171.01
PIV-LDN-3,876 (1,943)-3,372 (1,619)-1,655 (1,510)-1.780.86

The periods disagree: the reversal made a little money from 2004 to 2012 and lost after that; the breakout lost from 2004 to 2012, made a little from 2013 to 2019 and lost again from 2020.

At other costs (not gates), pips a trade

VariantNo cost1.0 pip1.5 pips (the test)2.5 pips
PIV-REV+0.65-0.35-0.85-1.85
PIV-BRK-0.20-1.20-1.70-2.70
PIV-LDN-0.26-1.26-1.76-2.76

Even at 1 pip a round trip, all three lost money after costs; with no cost at all the reversal would have made +0.65 pips a trade, and the breakout and the London bias would still have lost (-0.20 and -0.26).

04How the trades ended

VariantWinnersMedian stop, pipsMedian first target, share of the stopTarget reached*StopClosed before 17:00 New YorkBefore costs, per tradeCosts, per tradeAfter costs, per trade
PIV-REV53.5%550.8636.6%27.4%36.0%+0.005 R0.030 R-0.025 R
PIV-BRK55.7%610.6245.0%22.2%32.8%+0.009 R0.028 R-0.019 R
PIV-LDN46.8%341.1244.7%45.9%9.4%+0.012 R0.054 R-0.043 R

* For PIV-LDN, the first target. R is the distance from the entry to the stop.

The reversal and the breakout won more trades than they lost, but their median first target was only 0.86 and 0.62 of the stop distance, so a full win was smaller than a full loss. In R, the reversal made +0.005 R a trade before costs, the breakout +0.009 R and the London bias +0.012 R: about zero in all three. For the breakout and the London bias the two measures even differ in sign (-0.20 and -0.26 pips a trade, but +0.009 R and +0.012 R), because each weighs the days differently.

Of the 5,072 London-bias trades, 1,218 took the first target and then went back to the entry, 589 reached both targets, 458 took the first target and closed the rest at the end of the day, 2,329 hit the stop with the whole position, and 478 reached neither.

05The levels moved closer together

The distances between the levels come from the previous day's range (H − L), and the median range of GBP/USD fell from 200 pips in 2009 to 73 in 2024.

0501001502002502004: median previous-day range 168 pips16820042005: median previous-day range 133 pips2006: median previous-day range 131 pips20062007: median previous-day range 120 pips2008: median previous-day range 184 pips20082009: median previous-day range 200 pips2002010: median previous-day range 154 pips20102011: median previous-day range 132 pips2012: median previous-day range 91 pips20122013: median previous-day range 100 pips2014: median previous-day range 80 pips20142015: median previous-day range 113 pips2016: median previous-day range 128 pips20162017: median previous-day range 92 pips2018: median previous-day range 101 pips20182019: median previous-day range 85 pips2020: median previous-day range 116 pips20202021: median previous-day range 87 pips2022: median previous-day range 114 pips20222023: median previous-day range 93 pips2024: median previous-day range 73 pips7320242025: median previous-day range 84 pips2026: median previous-day range 75 pips (to 28 September)752026

Median previous-day range by year, pips; 2026 to 28 September.

The reversal's median stop shrank from 70 pips in 2004 to 2012 to 45 in 2020 to 2026, so the same 1.5 pips grew from 0.023 R to 0.036 R of the risk on a trade. The London bias, with its fixed 10 pips beyond the pivot, paid the most: 0.054 R a trade over the whole test.

By year, net pips

YearMedian range, pipsPIV-REV tradesPIV-REV netPIV-BRK tradesPIV-BRK netPIV-LDN tradesPIV-LDN net
2004168133-471152+313231-1
2005133159-975152+406217+404
2006131135+129157+133225-36
2007120147-123148-666205-130
2008184142+521146-937207-1,197
2009200157+2,269159-2,212193-246
2010154154-107155-1,460210-1,971
2011132150-42167-44226-250
201291152-387154-139229-447
2013100135-405155+721237-432
201480136-162135+128228-1,296
2015113146-544155+330242+82
2016128133+128135+170227+28
201792145+306141-629226-555
2018101146-245160-166232-678
201985139-185153-345227-521
2020116158-283171-654223+748
202187150-244161-224219-720
2022114146-317146-265222-444
202393155-727163+3234-130
202473136-416139-307230-931
202584130-346141+283212+247
20267599-160107-300170-425

2026 counted to 28 September.

06Longs, shorts and the best trades

VariantLongs: trades / gross pipsShorts: trades / gross pips10 best trades, net pipsNet without them, pips
PIV-REV1,626 / +5981,657 / +1,538+1,920-4,708
PIV-BRK1,711 / +7851,741 / -1,470+1,438-7,301
PIV-LDN2,575 / -1,2692,497 / -26+2,346-11,249

Without its ten best trades, each version lost between 4,708 and 11,249 pips.

07Is it the levels or the market?

The benchmark is a moved-day control: every real trade keeps its London entry time, its direction and its stop and target distances in pips (for PIV-LDN both targets and the move of the stop), and all trades are moved together by one random offset of at least 5% of the trading days, then entered at the market on the new day, with the same exits and costs. 500 runs with fixed seeds; the bar is the 95th percentile of the average net pips per trade.

VariantTradesReal average per tradeControl medianControl 5th to 95thPercentile (95 needed)
PIV-REV3,283-0.85-1.54-2.63 to -0.3981.6
PIV-BRK3,452-1.70-1.70-2.74 to -0.5849.6
PIV-LDN5,072-1.76-1.15-1.94 to -0.3611.0

The reversal did a little better than the median moved run (percentile 81.6), the breakout landed on it (percentile 49.6), and the London bias did worse than about 89% of the moved runs (percentile 11.0). All three stayed inside the range that the moved runs give by chance, so the levels were not shown to pick better or worse moments than other days.

08The gates

VariantTrades1. PF ≥ 1.2 in validation2. ≥ 50 trades in each period3. t ≥ 2.5 on development4. Above the 95th percentile of the control5. Positive without the 10 best trades6. Holdout net positive (already used)
PIV-REV3,283failpassfailfailfailfail
PIV-BRK3,452failpassfailfailfailfail
PIV-LDN5,072failpassfailfailfailfail

09Verdict by variant

VariantCauseGates failedVerdict
PIV-REVCosts1, 3, 4, 5, 6Buried
PIV-BRKNo proven edge1, 3, 4, 5, 6Buried
PIV-LDNNo proven edge1, 3, 4, 5, 6Buried

By the protocol's definitions the reversal died of Costs, since it was positive before costs, but only by +0.65 pips a trade, and not clearly better than the same trades on other days. The breakout and the London bias lost before costs, so their cause is No proven edge. Even if trading the London bias the other way round earned exactly what it lost before costs, 0.26 pips a trade would not pay 1.5 pips of costs (see what happened when we reversed losing strategies).

Not tested here: Fibonacci, Camarilla and Woodie pivots, weekly and monthly pivots (weekly Fibonacci pivots were tried once, in October 2026, unpublished and outside this protocol; see section 01), other entries, stops and targets, confirmation by other indicators, other pairs and other brokers' data.

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

What the results show

  • Before costs, the classic daily pivot levels earned about nothing on GBP/USD 15-minute bars, traded the three standard ways: between -0.26 and +0.65 pips a trade (+0.005 to +0.012 R).
  • The reversal and the breakout won 53.5% and 55.7% of their trades, with targets usually closer than their stops (median 0.86 and 0.62 of the stop), and still lost after 1.5 pips of costs.
  • Placed on other days at the same London time, the same trades did about as well, so the levels were not shown to pick better moments to trade.

What remains unknown

  • Fibonacci, Camarilla, Woodie, weekly or monthly pivots, which this test did not cover (weekly Fibonacci pivots were tried once in October 2026, unpublished and outside this protocol: none of 25 version-market pairs passed).
  • Other entries, stops and targets around the same levels: we fixed one common rule for each of the three ways and did not tune it.
  • Other pairs and other brokers' data. A raw-spread account would pay less than 1.5 pips, but before costs there was almost nothing to keep.

Why it failed

The pivot levels are drawn from the previous day's range, and on GBP/USD the trades they picked did about as well as the same trades placed on other days: before costs the three ways earned between -0.26 and +0.65 pips a trade. A cost of 1.5 pips a trade, 0.028 R to 0.054 R of the risk, then turned the reversal's small gain into a loss and deepened the losses of the breakout and the London bias.

What you can apply to your own tests

  • Test a level against the same trades on random days. If it does not beat them, you have no evidence that the level adds anything.
  • Set the win rate against the payoff: 55% winners can still lose money when the targets are closer than the stops.
  • Look at the result before costs both in pips and in R: here the two did not even agree in sign for the breakout and the London bias.

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

What are pivot points in forex?

Price levels computed from the previous day's high (H), low (L) and close (C): the pivot P = (H + L + C) / 3, the resistances R1 = 2P - L and R2 = P + (H - L), and the supports S1 = 2P - H and S2 = P - (H - L). In forex the day usually ends at 17:00 New York.

Do pivot points work for day trading?

Not in our test on GBP/USD: the reversal, the breakout and the London-open bias made between -0.26 and +0.65 pips a trade before costs, and the same trades placed on other days at the same London time did about as well.

What is the win rate of a pivot point strategy?

In our test the reversal at S1 or R1 won 53.5% of its trades, the breakout 55.7% and the London-open bias 46.8%. A win rate above 50% did not mean a profit: the targets of the reversal and the breakout were usually closer than their stops, and none of the three made money after costs.

How was the pivot point strategy tested?

On 1-minute GBP/USD data from 2004 to 2026, with the file's clock corrected where it was one hour off (most weeks of 2004 to 2014 and in a few weeks a year since), built into 15-minute bars, London trading hours, 1.5 pips of costs a trade, every trade closed before the 17:00 New York rollover, rules written and dated before the data was run, development, validation and holdout periods (the holdout already used), a control that places the same trades on other days at the same London time, and every variant reported. Read the protocol.

10Check our arithmetic

Frozen specificationThe levels, rules, variants, costs, periods, gates and control, dated before any level was computed, with the run log (it records the fixes made before the run, a speed-up of the control and the 11 November 2026 clock correction with its reruns).
piv_spec.md
CodeThe engine (its readings at the top), the independent re-implementation, the self-test and the run. To rerun it: put your own MT4 GBPUSD1.hst in ./history/ (or set MT4_HISTORY to its folder), run node gbp_clockfix.js <folder> (it reads clock_audit_fix.json, the decisions of our October 2026 clock audit), then set MT4_HISTORY=<folder> and run node piv_selftest.js and node piv_run.js.
piv_lib.js · piv_ref.js · piv_selftest.js · piv_run.js
Shared code it usesThe GBP/USD loader, statistics and control helpers.
control_audit_lib.js · em_lib.js · fx_data.js · gh_lib.js · hourly_lib.js · ma_lib.js · rb_lib.js · rsi2_protocol.js
ResultsSelf-test result, the console output of the run, all numbers as one file, the clock fix and the first run on the uncorrected clock.
piv_selftest_result.txt · piv_results.txt · piv_summary.json · gbp_clockfix.js · clock_audit_fix.json · gbp_clockfix_result.txt · piv_results_v1_clock.txt
Trade logs (CSV)Every trade of every variant.
PIV-REV · PIV-BRK · PIV-LDN
Data recordThe holes in the GBP/USD data, and our data manifest (it points to the hashes of the gold and EUR/USD files of the same broker; no hash of the GBP/USD file was recorded).
data_manifest.md · data_holes_gbpusd.json

Code provenance: our own code. No third-party source code is used or published.

11Data notes

Holes. Trades open across a known hole in the data are removed in a second count; no verdict changes. The gap list was made on the uncorrected clock, so in the weeks moved by the clock fix its windows sit one hour early; this can only change which few trades the check removes, and no verdict depends on it.

VariantTradesRemovedNet per trade, pipsVerdict
PIV-REV3,28326-0.85 → -0.82Buried → Buried
PIV-BRK3,45227-1.70 → -1.61Buried → Buried
PIV-LDN5,07235-1.76 → -1.92Buried → Buried

Jumps. The largest 1-minute moves in the file are real events: the flash crash of 7 October 2016 (19:08 on 6 October New York, 1,080 pips in one minute, with several more minutes over 300 pips after it) and the Brexit vote result on 24 June 2016 (472 pips). Some prices look bad: on 26 December 2016 nine minutes between 04:02 and 04:53 New York have lows of 1.1959 to 1.2111 while the price stayed near 1.2275, and single wicks stand out on 22 October 2015 at 04:31 (164 pips) and on 26 October 2017 at 17:03 New York (104 pips). We left them in the data; the December 2016 prints set the pivots of 27 December 2016, which one PIV-LDN trade used (-7.80 pips).

12Corrections

None since publication.

+More tests and guides