The rules at a glance
- Market: GBPUSD or EURUSD on the 15-minute chart
- Direction: London's open at 8 a.m. London time sets the reference: during the overlap the price must be at least a quarter of the daily ATR above it for a long (below it for a short)
- Window: 8 to 11 a.m. New York time (17:30 to 20:30 IST in summer, 18:30 to 21:30 in winter), skipping the 8:30 data candle
- Entry: a candle whose low comes back to the 20 EMA (within 0.1 ATR) and that closes above the EMA as a bullish candle; enter at that close
- Stop loss: half an ATR below the EMA, or the candle's low if that's lower
- Target: twice the risk (2R); one trade a day, closed by noon New York time
Why the overlap matters
From 8 a.m. to about noon New York time, banks and funds in both of the biggest forex centres are trading. More orders usually mean tighter spreads and cleaner moves, and US data lands at 8:30 a.m. The forex market hours page shows the overlap live in IST.
By the time New York arrives, London has been trading for five hours and has often picked a direction. This strategy only trades in that direction. It doesn't buy the breakout; it waits for the price to come back to the 20 EMA and bounce, which gives a closer stop than buying at the top of the move.
The timings in IST
| Local time | IST, summer time | IST, winter time | |
|---|---|---|---|
| London opens (the reference price) | 08:00 London | 12:30 | 13:30 |
| Overlap window starts | 08:00 New York | 17:30 | 18:30 |
| US data (skipped) | 08:30 New York | 18:00 | 19:00 |
| Last entries | 11:00 New York | 20:30 | 21:30 |
| Close any open trade | 12:00 New York | 21:30 | 22:30 |
The summer column is for when both the UK and the US are on summer time. Between 25 October and 1 November 2026, the UK has changed its clocks and the US hasn't; London's open is then 13:30 IST and the New York times follow the summer column. The same happens the other way from 14 to 28 March 2027, when the US has changed and the UK hasn't.
The rules, step by step
1. Note London's open
Mark the price at 8 a.m. London time. That's the day's reference.
2. Check the direction when New York opens
From 8 a.m. New York time, the price must be at least a quarter of the daily ATR above London's open for a long, or below it for a short. If London went nowhere, there's no trade.
3. Wait for the pullback to the 20 EMA
On the 15-minute chart, the signal is a candle whose low comes back to the 20 EMA, to within a tenth of the ATR, and that closes above the EMA as a bullish candle. Signals from the 8:30 candle are skipped, because the data can whip the price both ways.
4. Stop, target and cut-off
The stop goes half an ATR below the EMA, or at the candle's low if that's lower. The target is 2R. One trade a day; anything open at noon New York time is closed.
Worked example: GBPUSD, 15-minute chart
20 EMA
GBPUSD opens London at 1.3405 and climbs all morning. When New York opens, it's 47 pips higher, well over a quarter of the 90-pip daily ATR, so it's a long day. After the 8:30 data, the price eases back. The 09:30 candle (19:00 IST) dips to 1.3434, just under the 20 EMA at 1.3436, and closes at 1.3447, bullish and back above it. Half an ATR below the EMA is lower than the candle's low, so the stop goes at 1.3432.
| GBPUSD long | |
|---|---|
| Entry | 1.3447 |
| Stop loss | 1.3432, 15 pips away |
| Target (2R) | 1.3477, 30 pips away |
| Lot size at 1% of $10,000 | $100 ÷ (15 pips × $10) = 0.667, rounded down to 0.66 lots |
| Loss if the stop is hit | $99.00 |
| Profit at the target | $198.00 |
The pound resumes its rise and reaches the target by 11:30 New York time. Days when London's move reverses in New York end at the stop instead, which is why the direction filter needs a clear move, not just a few pips.
Risk management
- Size from the stop. Pullback stops in the overlap are often 10 to 20 pips on GBPUSD.
- One trade a day. A second pullback after a stop-out often means the day has turned.
- Watch 10 a.m. releases and London's close around 11 a.m. New York time; both can reverse the move.
Common mistakes
- Trading against London without a reason. These rules only buy when London rallied.
- Buying the 8:30 spike. The data candle is skipped for a reason.
- Getting the time zones mixed up. London's open is in London time; the window is in New York time.
Backtest it yourself on TradingView
This page doesn't quote a win rate or a profit figure, and you should be wary of anyone who does without showing the test. Results change with the market, the dates, the data feed and the costs you put in. The honest way is to run the test yourself, and the free script below does the work in a couple of minutes.
- Open the chart. On TradingView, open GBPUSD on the 15-minute chart.
- Add the script. Open the Pine Editor from the Pine icon in the panel on the right of the chart (older layouts have it as a tab under the chart), delete the code that's already there, paste this strategy's code and click "Add to chart".
- Put in your costs. Open the strategy's settings and go to Properties. Enter your broker's commission and a little slippage. A test without costs flatters every strategy, and short-term ones most of all.
- Read the Strategy Tester. The panel under the chart shows the net profit, the maximum drawdown, the profit factor, the number of trades and a list of every trade. Click a few trades and check on the chart that each one follows the rules. Trade sizes are shown in units rather than lots: 100,000 units is one lot of a forex pair, and 100 ounces is one lot of gold.
- Change one setting at a time. Compare the direction threshold (0 to 0.5 × the daily ATR), the EMA length (10, 20 and 34), the stop distance below the EMA and the window ending at 10 a.m. against 11 a.m. Then try EURUSD.
As a rough guide, don't trust a result with fewer than 100 trades, a profit factor under 1 once costs are in, or a drawdown you couldn't sit through with real money. Settings tuned to look good on one stretch of history often fail on the next, so check the same settings on dates you didn't tune them on, then demo trade the strategy for a few weeks. How much history you can test depends on your TradingView plan: the free plan loads 5,000 candles, which is a few months of 15-minute candles but years of daily ones.
The script sizes each trade from the stop loss and your risk percentage, starts with $10,000 and assumes 1:100 leverage (a 1% margin setting), so the tester doesn't flag margin calls on normal forex trade sizes. Change these under Properties to match your account. By default TradingView fills orders at the open of the candle after the signal, so the fill can differ a little from the signal candle's close.
Download the free Pine Script and PDF
The script is written in Pine Script version 6 for this guide and follows the rules above. It can't read the economic calendar, so skipping news days is up to you. It's free to use, change and share. The PDF is a one-page cheat sheet with the rules, the London, New York and IST times, a worked example and a checklist, to keep next to your chart.
Show the code (Pine Script v6, 77 lines)
//@version=6
// London–New York Overlap strategy by PipLedger (https://pipledgerfx.com/london-new-york-overlap-strategy)
// Takes London's direction (where the price is against London's 8 a.m. open) and buys the first pullback to the 20 EMA during the overlap, 8 to 11 a.m. New York time (sells the mirror image).
// Free to use and change. For education and backtesting only; not financial advice.
strategy("PipLedger: London-New York Overlap", shorttitle="LDN-NY Overlap", overlay=true, initial_capital=10000, pyramiding=0, default_qty_type=strategy.fixed, default_qty_value=1, margin_long=1, margin_short=1, currency=currency.USD)
// ---------- Inputs
lonTz = input.string("Europe/London", "London time zone")
nyTz = input.string("America/New_York", "New York time zone")
lonOpenT = input.session("0800-0815", "London open candle (London time)")
overlap = input.session("0800-1100", "Trading window (New York time)")
closeHour = input.int(12, "Close any open trade at (hour, New York time)", minval=1, maxval=23)
emaLen = input.int(20, "Pullback EMA", minval=5)
moveD = input.float(0.25, "Price must be this far from London's open (x daily ATR 14)", minval=0.0, step=0.05)
touchAtr = input.float(0.1, "A pullback counts within (x ATR 14) of the EMA", minval=0.0, step=0.05)
stopAtr = input.float(0.5, "Stop at least this far below the EMA (x ATR)", minval=0.0, step=0.1)
skipData = input.bool(true, "Skip signals from 8:30 to 8:45 New York (US data releases)")
rr = input.float(2.0, "Target (R multiple)", minval=0.5, step=0.25)
riskPct = input.float(1.0, "Risk per trade (% of equity)", minval=0.1, maxval=5.0, step=0.1)
// ---------- Helpers
fx = strategy.convert_to_account(1.0) // one unit of the chart's quote currency in account currency (1 on USD-quoted charts)
calcQty(float entry, float stop) =>
float dist = math.abs(entry - stop)
dist > 0 and not na(fx) ? strategy.equity * riskPct / 100 / (dist * syminfo.pointvalue * fx) : 0.0
atr = ta.atr(14)
ema = ta.ema(close, emaLen)
dAtr = request.security(syminfo.tickerid, "D", ta.atr(14)[1], lookahead=barmerge.lookahead_on) // daily ATR up to yesterday
isLonOpen = not na(time(timeframe.period, lonOpenT, lonTz))
inWindow = not na(time(timeframe.period, overlap, nyTz))
inData = not na(time(timeframe.period, "0830-0845", nyTz))
cutoff = timestamp(nyTz, year(time, nyTz), month(time, nyTz), dayofmonth(time, nyTz), closeHour, 0)
// ---------- London's open sets the day's direction
var float lonOpen = na
var bool done = false
if isLonOpen and not isLonOpen[1]
lonOpen := open
done := false
upDay = not na(lonOpen) and not na(dAtr) and close - lonOpen >= moveD * dAtr
dnDay = not na(lonOpen) and not na(dAtr) and lonOpen - close >= moveD * dAtr
// ---------- Signals: a pullback to the EMA during the overlap, closing back with London's move
canTrade = inWindow and not done and strategy.position_size == 0 and time_close < cutoff and not (skipData and inData)
longSl = math.min(low, ema - stopAtr * atr)
shortSl = math.max(high, ema + stopAtr * atr)
longSig = canTrade and upDay and low <= ema + touchAtr * atr and close > ema and close > open
shortSig = canTrade and dnDay and high >= ema - touchAtr * atr and close < ema and close < open
// ---------- Orders
if longSig
float q = calcQty(close, longSl)
if q > 0
strategy.entry("Long", strategy.long, qty=q)
strategy.exit("Long exit", "Long", stop=longSl, limit=close + (close - longSl) * rr)
done := true
if shortSig
float q = calcQty(close, shortSl)
if q > 0
strategy.entry("Short", strategy.short, qty=q)
strategy.exit("Short exit", "Short", stop=shortSl, limit=close - (shortSl - close) * rr)
done := true
// the candle that closes at the cut-off sends the order, so it fills at the cut-off time
if strategy.position_size != 0 and time_close >= cutoff
strategy.close_all(comment="New York cut-off")
// ---------- Chart
plot(ema, "20 EMA", color=color.new(color.orange, 0), linewidth=2)
plot(lonOpen, "London open", color=color.new(color.gray, 20), style=plot.style_stepline)
bgcolor(inWindow ? color.new(color.blue, 94) : na, title="Overlap window")
plotshape(longSig, "Long", shape.triangleup, location.belowbar, color.teal, size=size.small)
plotshape(shortSig, "Short", shape.triangledown, location.abovebar, color.red, size=size.small)Trading this from India
Residents can trade EURUSD, GBPUSD and USDJPY futures and options on NSE and BSE through a SEBI-registered broker. The contracts are quoted the same way as the spot pair, one lot is 1,000 units of the base currency, and they're cash-settled in rupees. They trade only from 9 a.m. to 7:30 p.m. IST, volumes are thin and not every broker offers them, so check the hours and the spread first. The exchange contracts close at 7:30 p.m. IST, so only the first part of the overlap, until 10 a.m. New York time in US summer (9 a.m. in winter), falls inside Indian exchange hours. Trading forex or CFDs with offshore online platforms isn't allowed for residents under FEMA, even if the app is easy to download. Details are in is forex trading legal in India.
Related strategies: London breakout, opening range breakout, ICT kill zones, previous day high and low, XAUUSD London session, XAUUSD New York session, Asian session range. All 40 strategies are compared on one page in forex trading strategies.