PipLedger
Today's forex newsNFP, CPI, FOMC and other high-impact eventsEconomic calendarCalendar →

New York session strategy for forex: the opening range breakout, with a free Pine Script

The first ninety minutes of the New York session are among the busiest of the forex day. US data comes out at 8:30, US stocks open at 9:30, and London is still trading. This strategy lets that first burst settle into a range, then trades the first decisive close outside it. Here are the rules, the times in IST for summer and winter, a worked EURUSD example with the lot size and a free TradingView script.

By M. A. Horaira. Updated 10 October 2026. 9 minute read.

The rules at a glance

  • Market: EURUSD or GBPUSD on the 15-minute chart
  • Range: the high and low from 8 to 9:30 a.m. New York time (17:30 to 19:00 IST in US summer time, 18:30 to 20:00 in winter), including the 8:30 data candle
  • Range size: between 0.15 and 0.6 times the daily ATR (14)
  • Entry: the first 15-minute candle between 9:30 and 11:30 a.m. New York time that closes beyond the range by at least a tenth of the ATR; enter at that close
  • Stop loss: the middle of the range (the other side, as a setting)
  • Target: twice the risk (2R); one trade a day, closed by noon New York time

Why the opening range includes the data

Most big US releases, such as the jobs report and inflation figures, come out at 8:30 a.m. New York time. The first candles after them can jump both ways. Instead of guessing the direction, this strategy lets the reaction happen and marks the whole range from 8:00 to 9:30. When the US stock market opens at 9:30 and the price later closes outside that range, the market has picked a side.

For gold there's a different New York setup on this site: the XAUUSD New York session strategy trades the break of the London range instead.

The timings in IST

All the times are fixed in New York time, so the IST times move by an hour when US clocks change. US clocks go back on 1 November 2026.

New York timeIST, US summer timeIST, US winter time
Range starts08:0017:3018:30
US data (most releases)08:3018:0019:00
US stock market opens, range ends09:3019:0020:00
Breakout window09:30–11:3019:00–21:0020:00–22:00
Close any open trade12:0021:3022:30

The rules, step by step

1. Mark the opening range

On a 15-minute EURUSD chart, mark the highest high and lowest low from 8:00 to 9:30 a.m. New York time: six candles, including the data candle.

2. Check its size

Skip the day if the range is less than 0.15 or more than 0.6 times the daily ATR. A tiny range is noise; a huge one often means the day's move has already happened.

3. Wait for a close outside it

Between 9:30 and 11:30, the first candle that closes above the range high (or below the low) by a tenth of the ATR is the signal. Enter at the close.

4. Stop at the middle, target 2R

Because the data candle often makes this range wide, the default stop is the middle of the range rather than the far side. The script lets you switch to the far side. The target is twice the risk. One trade a day, out by noon New York time.

Worked example: EURUSD, 15-minute chart

8:00 to 9:308:30 data9:30Target 1.1719Entry 1.1685Stop 1.1668Close above the range2R
Illustrative chart drawn for this guide to show the rules. It isn't a real day's prices. EURUSD, 15-minute candles from 8 a.m. New York time.

The 8:30 data candle swings from 1.1656 to 1.1680, and those turn out to be the range's low and high: 24 pips, inside the size band for a 65-pip daily ATR. After the stock market opens, EURUSD edges up, and the 10:00 candle (19:30 IST in summer) closes at 1.1685, above the range. The middle of the range, 1.1668, is the stop.

EURUSD long
Entry1.1685
Stop loss (middle of the range)1.1668, 17 pips away
Target (2R)1.1719, 34 pips away
Lot size at 1% of $10,000$100 ÷ (17 pips × $10) = 0.588, rounded down to 0.58 lots
Loss if the stop is hit$98.60
Profit at the target$197.20

EURUSD climbs steadily and reaches the target in the 11:45 candle, just before the noon cut-off. On many days the target isn't reached by noon, and the trade is closed for whatever it shows, a smaller win or a smaller loss.

When New York breakouts fail

Risk management

Common mistakes

  1. Trading the data candle itself. The whole point of the range is to let it settle.
  2. Marking the range in the wrong time zone. It follows New York's clock, not London's or India's.
  3. Holding into the afternoon. The busiest part of the day ends with London; the script closes at noon.

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.

  1. Open the chart. On TradingView, open EURUSD on the 15-minute chart.
  2. 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".
  3. 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.
  4. 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.
  5. Change one setting at a time. Compare the stop at the middle against the far side, the range end at 9:00 against 9:30, the breakout window to 11:00 against 11:30, and the 2R target against 1.5R. Then try GBPUSD and USDJPY.

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 New York and IST times, a worked example and a checklist, to keep next to your chart.

Show the code (Pine Script v6, 78 lines)
//@version=6
// New York Session opening range strategy by PipLedger (https://pipledgerfx.com/new-york-session-strategy)
// Marks the high and low from 8 a.m. to 9:30 a.m. New York time (including the 8:30 data candle), then trades the first close outside that range before 11:30 a.m.
// Free to use and change. For education and backtesting only; not financial advice.
strategy("PipLedger: New York Opening Range", shorttitle="NY Range", 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
tz        = input.string("America/New_York", "Session time zone")
rangeSess = input.session("0800-0930", "Opening range (New York time)")
tradeSess = input.session("0930-1130", "Breakout window (New York time)")
closeHour = input.int(12, "Close any open trade at (hour, New York time)", minval=1, maxval=23)
bufAtr    = input.float(0.1, "Close beyond the range by at least (x ATR 14)", minval=0.0, step=0.05)
minRangeD = input.float(0.15, "Skip if the range is narrower than (x daily ATR 14)", minval=0.0, step=0.05)
maxRangeD = input.float(0.6, "Skip if the range is wider than (x daily ATR 14)", minval=0.05, step=0.05)
stopMode  = input.string("Range middle", "Stop loss at", options=["Range middle", "Opposite side"])
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)
dAtr = request.security(syminfo.tickerid, "D", ta.atr(14)[1], lookahead=barmerge.lookahead_on)  // daily ATR up to yesterday

inRange = not na(time(timeframe.period, rangeSess, tz))
inTrade = not na(time(timeframe.period, tradeSess, tz))
cutoff  = timestamp(tz, year(time, tz), month(time, tz), dayofmonth(time, tz), closeHour, 0)

// ---------- Opening range
var float rHigh = na
var float rLow  = na
var bool  done  = false

if inRange and not inRange[1]
    rHigh := high
    rLow  := low
    done  := false
else if inRange
    rHigh := math.max(rHigh, high)
    rLow  := math.min(rLow, low)

rangeOk  = not na(rHigh) and not na(dAtr) and rHigh - rLow >= minRangeD * dAtr and rHigh - rLow <= maxRangeD * dAtr
canTrade = inTrade and not inRange and not done and strategy.position_size == 0 and rangeOk and time_close < cutoff
longSig  = canTrade and close > rHigh + bufAtr * atr
shortSig = canTrade and close < rLow - bufAtr * atr
mid      = (rHigh + rLow) / 2

// ---------- Orders
if longSig
    float sl = stopMode == "Range middle" ? mid : rLow
    float q  = calcQty(close, sl)
    if q > 0
        strategy.entry("Long", strategy.long, qty=q)
        strategy.exit("Long exit", "Long", stop=sl, limit=close + (close - sl) * rr)
        done := true

if shortSig
    float sl = stopMode == "Range middle" ? mid : rHigh
    float q  = calcQty(close, sl)
    if q > 0
        strategy.entry("Short", strategy.short, qty=q)
        strategy.exit("Short exit", "Short", stop=sl, limit=close - (sl - 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(rHigh, "Range high", color=color.new(color.teal, 0), linewidth=2, style=plot.style_linebr)
plot(rLow, "Range low", color=color.new(color.orange, 0), linewidth=2, style=plot.style_linebr)
plot(mid, "Range middle", color=color.new(color.gray, 30), style=plot.style_linebr)
bgcolor(inRange ? color.new(color.gray, 90) : na, title="Opening range")
plotshape(longSig, "Long breakout", shape.triangleup, location.belowbar, color.teal, size=size.small)
plotshape(shortSig, "Short breakout", 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 NSE and BSE contracts close at 7:30 p.m. IST, which is 10 a.m. New York time in US summer and 9 a.m. in winter, so this window falls mostly after 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.

Quick answers

What time does the New York session open in IST?

The New York session starts at 8 a.m. New York time: 17:30 IST while the US is on summer time and 18:30 IST in winter. US clocks go back on 1 November 2026.

What is the New York opening range?

In this strategy it's the high and low from 8:00 to 9:30 a.m. New York time, which includes the 8:30 data releases and ends when US stocks open. A close outside it after 9:30 is the breakout signal.

Why is the stop at the middle of the range?

The data candle often makes the range wide, so a stop on the far side would need a small lot size and a distant target. The middle keeps the stop closer. You can switch to the far side in the script.

Which pairs suit a New York session strategy?

Pairs with the US dollar on one side move most in New York hours: EURUSD, GBPUSD, USDJPY and USDCAD. This example uses EURUSD.

Should I trade the 8:30 data?

This strategy doesn't. It lets the data reaction form part of the range and waits for a close outside it after 9:30, by which time spreads have usually settled.

How is this different from the gold New York strategy?

The gold page trades a break of the London session range in London's direction. This one uses the New York opening range itself and trades either direction.

More guides

All 81 guides →

हिंदी में पढ़ें: Lot size kaise nikale?, Prop firm challenge kaise pass kare?, Gold trading kaise kare?, Forex trading kya hai, और India में यह legal है या नहीं?

Trading psychology

The habits that decide whether a good strategy makes money.

All 14 trading psychology guides

8 popular prop firms

Well-known firms for forex, gold and index traders that were still operating in 2026. Compare their rules before you buy a challenge.

If a link in this list is a referral link, PipLedger may earn a commission if you sign up, at no extra cost to you. This list is not a recommendation. Programs, prices and rules change often, so check each firm's own site, including its margin and drawdown rules, before you buy a challenge.