Table of Contents
- Quick Reference: Strategy at a Glance
- Who Is Clement Ang?
- How the Strategy Works
- Entry Rules (Detailed)
- 1. EMA Trend Alignment
- 2. Pullback to Mid EMA (21)
- 3. Candle Quality Filter (40% Body Minimum)
- 4. Cooldown Period (3 Bars)
- Exit System: Stops, Targets & Trailing
- Session Management: No Overnight Risk
- Non-Repainting Design
- Backtest Results: NQ1! Futures
- 1-Hour Chart — 21 Months
- 15-Minute Chart — 3 Months
- On-Chart Visuals and Info Table
- Live Info Table
- How to Automate with PickMyTrade
- Step 1: Add the Strategy to TradingView
- Full Pine Script v6 Code
- Step 2: Enable PickMyTrade Alerts
- Step 3: Create One TradingView Alert
- Step 4: Connect to Your Broker
- Pine Script Settings Reference
- Frequently Asked Questions
- What is the NQ Momentum Intraday Strategy?
- What timeframes does it work on?
- Does it trade both long and short?
- Does this strategy repaint?
- What about overnight risk?
- Why is the win rate below 50%?
- Can I use this on other futures like ES or YM?
- How do I automate it?
- Who is Clement Ang and what is the US Trading Championship?
- Final Thoughts
- Ready to Automate Your NQ Trades?
- Get Started in 3 Steps
- You May Also Like
- Disclaimer
Clement Ang didn't just compete in the US Trading Championship — he posted a combined return of over 520% as a finalist. His edge? A systematic momentum approach to NQ futures that most retail traders overlook: waiting for EMA alignment, buying pullbacks, and letting the math do the work.
We rebuilt his core concept into a fully coded, backtested, and automatable Pine Script v6 strategy: the NQ Momentum Intraday [PickMyTrade]. It trades both long and short on NQ1! futures, uses ATR-based stops with a 2.5 R:R target, and flattens before the close every day. No overnight risk. No discretion. No repainting.
The result? +$37,660 (+37.66%) on the 1-hour chart over 21 months of backtesting. And it's free — with webhook automation built in for PickMyTrade users.
Quick Reference: Strategy at a Glance
| Setting | Value |
|---|---|
| Timeframes | 15-minute, 1-hour |
| Direction | Bidirectional (long and short) |
| Instrument | NQ1! (E-mini NASDAQ-100 Futures) |
| Entry type | Market on confirmed bar close |
| Trend filter | 9/21/50 EMA alignment |
| Stop-loss | 1.5x ATR below/above entry |
| Take profit | 2.5 R:R (risk-to-reward) |
| Trailing stop | After 1R profit, trail by 1 ATR |
| Session | RTH only (09:30–15:45 ET) |
| EOD flatten | 15:55–16:00 ET |
| Initial capital | $100,000 |
| Commission | $2.50 per contract per side |
| Repainting | None (process_orders_on_close = false) |
| Automation | Webhook JSON via PickMyTrade |
| Pine Script | v6 (free) |
Who Is Clement Ang?
Clement Ang is a US Trading Championship finalist who achieved a combined return of over 520% trading NQ futures. He was recently featured on Words of Rizdom (593K subscribers, 117K+ views), where he broke down his systematic approach to momentum trading.
His core methodology: identify momentum using EMA alignment, wait for a pullback entry, and manage risk with fixed reward-to-risk ratios. No guessing, no tape reading — just rules. The NQ Momentum Intraday strategy codifies this approach into a fully automated Pine Script v6 strategy that anyone can run.
How the Strategy Works
The strategy is built on a simple premise: when a strong trend is in place, pullbacks to a key moving average are buying (or selling) opportunities.
Here's the full sequence:
- Three EMAs align — the 9 EMA is above the 21 EMA, which is above the 50 EMA (for longs; reversed for shorts). This confirms the trend direction.
- Price pulls back to the 21 EMA — the mid-range average acts as dynamic support. Within the last 5 bars, price must have touched or crossed this level.
- A strong candle confirms — the entry bar must have at least 40% body relative to its range, closing above the 9 EMA for longs (below for shorts).
- The trade executes with an ATR-based stop and a 2.5x risk-reward target. If the trade moves 1R in your favor, a trailing stop kicks in.
- All positions flatten before the market close (15:55–16:00 ET).
No oscillators, no volume filters, no pattern recognition. Just trend, pullback, confirmation, and risk management.

Entry Rules (Detailed)
1. EMA Trend Alignment
Short rule: 9 EMA < 21 EMA < 50 EMA
The three-EMA stack is one of the oldest trend-identification techniques. When all three averages line up in order, you have a trend. When they cross and tangle, you have chop. The strategy only trades when the stack is clean.
2. Pullback to Mid EMA (21)
Within the last 5 bars, price must have touched or dipped below the 21 EMA (for longs) or risen above it (for shorts). This ensures you're buying a pullback, not chasing. The 5-bar lookback gives flexibility — the touch doesn't need to happen on the entry bar.
3. Candle Quality Filter (40% Body Minimum)
Small-bodied candles (dojis, spinning tops) signal indecision. The strategy requires a decisive candle:
- For longs: Bullish close above the 9 EMA
- For shorts: Bearish close below the 9 EMA
- Body must be ≥ 40% of the total candle range
4. Cooldown Period (3 Bars)
After any trade closes — stop, target, or EOD flatten — the strategy waits 3 bars before looking for a new setup. This prevents whipsaw re-entries.
Exit System: Stops, Targets & Trailing
| Exit Component | Trigger | Action |
|---|---|---|
| Stop-loss | 1.5x ATR from entry | Full close |
| Take-profit | 2.5x risk from entry | Full close |
| Trailing stop | After 1R profit, 1 ATR trail | Full close |
| EOD flatten | 15:55–16:00 ET | Full close |
The trailing stop is key: once the trade reaches 1R of profit, it follows price at 1 ATR distance. For longs it only moves up; for shorts it only moves down. If price reverses by 1 ATR from its best point, the trade closes with a profit. If it keeps running, the trailing stop follows.
Session Management: No Overnight Risk
- Trading window: 09:30 – 15:45 ET (new entries only during RTH)
- Flatten window: 15:55 – 16:00 ET (all open positions close)
- 15-minute gap between last entry and flatten prevents opening trades that would immediately close
- Every day starts flat — no overnight holds, no gap risk, no overnight margin
Non-Repainting Design
This strategy does not repaint. Every decision uses closed-bar data only:
barstate.isconfirmedgates entry logic — no entry fires until the bar closesprocess_orders_on_close = falsefills orders at the next bar's pricecalc_on_every_tick = falseprevents mid-bar recalculation- No future data, no
lookahead, no repainting indicators
What you see in the backtest is what you would have seen in real time.
Backtest Results: NQ1! Futures
Results using default settings on NQ1! with $100,000 initial capital, 5% margin, and $2.50 commission per contract per side:
1-Hour Chart — 21 Months

| Metric | Value |
|---|---|
| Period | Jan 2, 2025 – Oct 7, 2026 |
| Total PnL | +$37,660.00 (+37.66%) |
| Max Drawdown | $34,832.50 (28.54%) |
| Win Rate | 48.67% (146 of 300) |
| Profit Factor | 1.133 |
| Long PnL | +$29,185.00 |
| Short PnL | +$8,475.00 |
| Expectancy | $125.53 per trade |
15-Minute Chart — 3 Months
| Metric | Value |
|---|---|
| Period | Jul 1, 2026 – Oct 7, 2026 |
| Total PnL | +$5,570.00 (+5.57%) |
| Max Drawdown | $23,112.50 (17.98%) |
| Win Rate | 44.55% (45 of 101) |
- Profitable on both timeframes with identical default settings
- Both long and short sides profitable on 1H ($29K long, $8.5K short)
- Sub-50% win rate, still profitable — the 2.5 R:R means winners are substantially larger than losers
- Max drawdown is meaningful (28.54% on 1H) — position sizing is critical
- The strategy works best in trending markets; during chop, the EMA filter keeps you out of most trades
Important: These are hypothetical backtest results on historical data. Past performance does not indicate future results. Always paper-trade before committing real capital.
On-Chart Visuals and Info Table
The strategy plots directly on the chart with clear visual signals:
- Three EMAs: Fast 9 (blue), Mid 21 (orange), Slow 50 (gray)
- Entry signals: Blue triangles below bars for longs, orange triangles above bars for shorts
- SL/TP lines: Red lines for stop-loss, green lines for take-profit (visible during open positions)
- Session highlighting: Background shading during the flatten window

Live Info Table
A compact info table in the top-right corner shows real-time status:
| Row | What it shows |
|---|---|
| Trend | BULL / BEAR / FLAT with color |
| Session | OPEN / CLOSED |
| Position | LONG / SHORT / FLAT |
| Cooldown | Ready or bars remaining |
| Net P&L | Running profit/loss |
| ATR | Current ATR value |
How to Automate with PickMyTrade
Every entry, exit, and flatten sends a webhook-ready JSON alert message. Four steps to full automation:
Step 1: Add the Strategy to TradingView
Open the Pine Editor, paste the strategy code, and click "Add to chart." Set the symbol to NQ1! and the timeframe to 15m or 1H.
Full Pine Script v6 Code
Copy the entire code below and paste it into TradingView's Pine Editor:
//@version=6
strategy("NQ Momentum Intraday [PickMyTrade]",
overlay = true,
initial_capital = 100000,
default_qty_type = strategy.fixed,
default_qty_value = 1,
commission_type = strategy.commission.cash_per_contract,
commission_value = 2.50,
margin_long = 5,
margin_short = 5,
process_orders_on_close = false,
pyramiding = 0,
calc_on_every_tick = false,
max_bars_back = 500)
// ── Colours ─────────────────────────────────────────────────────────
C_BULL = #2962FF
C_BEAR = #FF6D00
C_SL = #E05252
C_TP = #3FA45B
C_FLAT = color.gray
// ── Inputs ──────────────────────────────────────────────────────────
grp1 = "Trend & Entry"
i_fastLen = input.int(9, "Fast EMA", minval=2, group=grp1)
i_midLen = input.int(21, "Mid EMA", minval=5, group=grp1)
i_slowLen = input.int(50, "Slow EMA", minval=10, group=grp1)
i_atrLen = input.int(14, "ATR Length", minval=5, group=grp1)
i_atrMult = input.float(1.5, "SL ATR Multiple", minval=0.5, step=0.1, group=grp1)
i_rrRatio = input.float(2.5, "R:R Target", minval=1.0, step=0.1, group=grp1)
grp2 = "Filters"
i_trendReq = input.bool(true, "Require EMA alignment (fast>mid>slow for longs)", group=grp2)
i_pullback = input.bool(true, "Require pullback to mid EMA", group=grp2)
i_bodyPct = input.float(40.0, "Min body % of candle range", minval=10, step=5, group=grp2)
i_cooldown = input.int(3, "Bars cooldown after exit", minval=0, group=grp2)
grp3 = "Session (ET)"
i_sessStart = input.session("0930-1545", "RTH Trading Window", group=grp3)
i_flatStart = input.int(1555, "Flatten start (HHMM)", group=grp3)
i_flatEnd = input.int(1600, "Flatten end (HHMM)", group=grp3)
grp4 = "Risk Management"
i_trailAfterR = input.float(1.0, "Trail after R multiple", minval=0.5, step=0.1, group=grp4)
i_trailATR = input.float(1.0, "Trail ATR distance", minval=0.5, step=0.1, group=grp4)
grp5 = "PickMyTrade Webhook"
i_usePMT = input.bool(false, "Enable PickMyTrade alerts", group=grp5)
i_token = input.string("", "PMT Token", group=grp5)
i_symbol = input.string("NQ", "PMT Symbol", group=grp5)
i_qty = input.int(1, "PMT Quantity", group=grp5, minval=1)
// ── Calculations ────────────────────────────────────────────────────
emaFast = ta.ema(close, i_fastLen)
emaMid = ta.ema(close, i_midLen)
emaSlow = ta.ema(close, i_slowLen)
atr = ta.atr(i_atrLen)
// Session logic (US/Eastern)
inSession = not na(time(timeframe.period, i_sessStart, "America/New_York"))
etHour = hour(time, "America/New_York")
etMinute = minute(time, "America/New_York")
etHHMM = etHour * 100 + etMinute
inFlatWindow = etHHMM >= i_flatStart and etHHMM <= i_flatEnd
// Trend alignment
bullTrend = i_trendReq ? (emaFast > emaMid and emaMid > emaSlow) : (emaFast > emaMid)
bearTrend = i_trendReq ? (emaFast < emaMid and emaMid < emaSlow) : (emaFast < emaMid)
// Pullback check: price touched or dipped below/above mid EMA recently (within 5 bars)
touchedMidFromAbove = ta.lowest(low, 5) <= emaMid
touchedMidFromBelow = ta.highest(high, 5) >= emaMid
pullbackOk_long = i_pullback ? touchedMidFromAbove : true
pullbackOk_short = i_pullback ? touchedMidFromBelow : true
// Body quality filter
bodySize = math.abs(close - open)
candleRng = high - low
bodyRatio = candleRng > 0 ? bodySize / candleRng * 100 : 0
bodyOk = bodyRatio >= i_bodyPct
// Bullish / bearish candle
bullCandle = close > open and bodyOk
bearCandle = close < open and bodyOk
// Cooldown after last exit
var int barsSinceExit = 100
if strategy.closedtrades > 0
lastExitBar = strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1)
barsSinceExit := bar_index - lastExitBar
else
barsSinceExit := 100
cooldownOk = barsSinceExit >= i_cooldown
// ── Entry Signals ───────────────────────────────────────────────────
longSignal = bullTrend and pullbackOk_long and bullCandle and close > emaFast
shortSignal = bearTrend and pullbackOk_short and bearCandle and close < emaFast
// ── Entry Gate ──────────────────────────────────────────────────────
canEnter = barstate.isconfirmed and strategy.position_size == 0 and not inFlatWindow and inSession and cooldownOk
// ── SL / TP calc ────────────────────────────────────────────────────
slDist = atr * i_atrMult
// ── Execute Entries ─────────────────────────────────────────────────
var float entryPrice = na
var float stopPrice = na
var float tpPrice = na
var bool isLong = false
var bool trailing = false
if canEnter and longSignal
entryPrice := close
stopPrice := close - slDist
tpPrice := close + slDist * i_rrRatio
isLong := true
trailing := false
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", stop=stopPrice, limit=tpPrice)
if canEnter and shortSignal
entryPrice := close
stopPrice := close + slDist
tpPrice := close - slDist * i_rrRatio
isLong := false
trailing := false
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", stop=stopPrice, limit=tpPrice)
// ── Trailing Stop Logic ─────────────────────────────────────────────
if strategy.position_size != 0
profitPts = isLong ? (close - entryPrice) : (entryPrice - close)
riskPts = math.abs(entryPrice - stopPrice)
rMultiple = riskPts > 0 ? profitPts / riskPts : 0
if rMultiple >= i_trailAfterR and not trailing
trailing := true
if trailing
trailDist = atr * i_trailATR
if isLong
newStop = close - trailDist
if newStop > stopPrice
stopPrice := newStop
strategy.exit("Long Exit", "Long", stop=stopPrice, limit=tpPrice)
else
newStop = close + trailDist
if newStop < stopPrice
stopPrice := newStop
strategy.exit("Short Exit", "Short", stop=stopPrice, limit=tpPrice)
// ── EOD Flatten ─────────────────────────────────────────────────────
if inFlatWindow and strategy.position_size != 0
strategy.close_all(comment="EOD Flat")
// ── PMT Alerts ──────────────────────────────────────────────────────
if i_usePMT
if canEnter and longSignal
alert('{"ticker": "' + i_symbol + '", "action": "buy", "quantity": "' + str.tostring(i_qty) + '", "token": "' + i_token + '", "sl": "' + str.tostring(stopPrice, "#.##") + '", "tp": "' + str.tostring(tpPrice, "#.##") + '"}', alert.freq_once_per_bar_close)
if canEnter and shortSignal
alert('{"ticker": "' + i_symbol + '", "action": "sell", "quantity": "' + str.tostring(i_qty) + '", "token": "' + i_token + '", "sl": "' + str.tostring(stopPrice, "#.##") + '", "tp": "' + str.tostring(tpPrice, "#.##") + '"}', alert.freq_once_per_bar_close)
if inFlatWindow and strategy.position_size != 0
alert('{"ticker": "' + i_symbol + '", "action": "close", "token": "' + i_token + '"}', alert.freq_once_per_bar_close)
// ── Plots ───────────────────────────────────────────────────────────
plot(emaFast, "Fast EMA", C_BULL, 2)
plot(emaMid, "Mid EMA", C_BEAR, 2)
plot(emaSlow, "Slow EMA", C_FLAT, 1, plot.style_line)
plotshape(canEnter and longSignal, "Long Signal", shape.triangleup, location.belowbar, C_BULL, size=size.small)
plotshape(canEnter and shortSignal, "Short Signal", shape.triangledown, location.abovebar, C_BEAR, size=size.small)
// SL/TP lines
plot(strategy.position_size > 0 ? stopPrice : na, "Long SL", C_SL, 1, plot.style_linebr)
plot(strategy.position_size > 0 ? tpPrice : na, "Long TP", C_TP, 1, plot.style_linebr)
plot(strategy.position_size < 0 ? stopPrice : na, "Short SL", C_SL, 1, plot.style_linebr)
plot(strategy.position_size < 0 ? tpPrice : na, "Short TP", C_TP, 1, plot.style_linebr)
// ── Info Table ──────────────────────────────────────────────────────
var table infoTbl = table.new(position.top_right, 2, 6, bgcolor=color.new(color.black, 85))
if barstate.islast
trend_str = bullTrend ? "BULL" : bearTrend ? "BEAR" : "FLAT"
trend_clr = bullTrend ? C_BULL : bearTrend ? C_BEAR : C_FLAT
sess_str = inSession ? "OPEN" : "CLOSED"
pos_str = strategy.position_size > 0 ? "LONG" : strategy.position_size < 0 ? "SHORT" : "FLAT"
pnl = strategy.netprofit
table.cell(infoTbl, 0, 0, "Trend", text_color=color.white, text_size=size.small)
table.cell(infoTbl, 1, 0, trend_str, text_color=trend_clr, text_size=size.small)
table.cell(infoTbl, 0, 1, "Session", text_color=color.white, text_size=size.small)
table.cell(infoTbl, 1, 1, sess_str, text_color=inSession ? C_TP : C_SL, text_size=size.small)
table.cell(infoTbl, 0, 2, "Position", text_color=color.white, text_size=size.small)
table.cell(infoTbl, 1, 2, pos_str, text_color=strategy.position_size > 0 ? C_BULL : strategy.position_size < 0 ? C_BEAR : C_FLAT, text_size=size.small)
table.cell(infoTbl, 0, 3, "Cooldown", text_color=color.white, text_size=size.small)
table.cell(infoTbl, 1, 3, cooldownOk ? "Ready" : str.tostring(i_cooldown - barsSinceExit) + " bars", text_color=cooldownOk ? C_TP : C_SL, text_size=size.small)
table.cell(infoTbl, 0, 4, "Net P&L", text_color=color.white, text_size=size.small)
table.cell(infoTbl, 1, 4, "$" + str.tostring(pnl, "#,##0.00"), text_color=pnl >= 0 ? C_TP : C_SL, text_size=size.small)
table.cell(infoTbl, 0, 5, "ATR", text_color=color.white, text_size=size.small)
table.cell(infoTbl, 1, 5, str.tostring(atr, "#.##"), text_color=color.white, text_size=size.small)
Step 2: Enable PickMyTrade Alerts
In the strategy settings under "PickMyTrade Webhook":
- Toggle Enable PickMyTrade alerts to On
- Enter your PMT Token
- Set PMT Symbol to "NQ"
- Set PMT Quantity to your contract size
Step 3: Create One TradingView Alert
- Right-click the strategy on the chart
- Select "Add alert on NQ Momentum Intraday [PickMyTrade]"
- Set trigger to: Once per bar close
- Enable Webhook URL and paste your PickMyTrade endpoint
Step 4: Connect to Your Broker
PickMyTrade receives the webhook JSON and routes the order to your broker (NinjaTrader, Tradovate, etc.). The alert messages include all order details:
Entry example (long):
{
"ticker": "NQ",
"action": "buy",
"quantity": "1",
"token": "YOUR_TOKEN",
"sl": "31150.25",
"tp": "31620.50"
}EOD flatten:
{
"ticker": "NQ",
"action": "close",
"token": "YOUR_TOKEN"
}One TradingView alert handles everything — entries, exits, trailing stops, and EOD flatten.
Pine Script Settings Reference
| Group | Setting | Default | Description |
|---|---|---|---|
| Trend & Entry | Fast EMA | 9 | Short-term trend direction |
| Trend & Entry | Mid EMA | 21 | Pullback level |
| Trend & Entry | Slow EMA | 50 | Long-term trend confirmation |
| Trend & Entry | ATR Length | 14 | Volatility measurement period |
| Trend & Entry | SL ATR Multiple | 1.5 | Stop-loss distance in ATR |
| Trend & Entry | R:R Target | 2.5 | Reward-to-risk ratio |
| Filters | Min body % | 40% | Minimum candle body ratio |
| Filters | Cooldown bars | 3 | Pause before next entry |
| Session (ET) | RTH Window | 0930–1545 | Hours for new entries |
| Session (ET) | Flatten | 1555–1600 | Close all positions |
| Risk Mgmt | Trail after R | 1.0 | Profit level to activate trailing |
| Risk Mgmt | Trail ATR | 1.0 | Trailing stop distance |
| PickMyTrade | Enable alerts | Off | Toggle webhook alerts |
| PickMyTrade | Symbol | NQ | Symbol sent in webhook |
| PickMyTrade | Quantity | 1 | Contracts per order |
Frequently Asked Questions
What is the NQ Momentum Intraday Strategy?
A bidirectional intraday strategy for NQ futures that trades EMA pullbacks during aligned trends. It uses a 9/21/50 EMA alignment filter, pullback confirmation, ATR-based stops with a 2.5 R:R target, and a trailing stop that activates after 1R of profit. It runs on 15-minute and 1-hour charts and ships as a free Pine Script v6 strategy with webhook-ready alerts for PickMyTrade automation.
What timeframes does it work on?
15-minute and 1-hour charts. Both timeframes are profitable with the same default settings. The 1-hour chart provides more data for backtesting and tends to produce smoother equity curves.
Does it trade both long and short?
Yes. The strategy takes long entries when the EMA stack is bullish (9 > 21 > 50) and short entries when bearish (9 < 21 < 50). Both sides are profitable in backtesting: +$29,185 on longs and +$8,475 on shorts.
Does this strategy repaint?
No. All decisions use barstate.isconfirmed (closed bars only), process_orders_on_close = false fills orders on the next bar, and calc_on_every_tick = false prevents mid-bar recalculation.
What about overnight risk?
There is none. The strategy flattens all positions between 15:55 and 16:00 ET every day. No overnight holds, no gap risk.
Why is the win rate below 50%?
The 2.5 R:R target means each winner is 2.5 times larger than each loser. At a 48.67% win rate on 1H, the math works: (0.4867 × 2.5) − (0.5133 × 1) = +0.70 expected value per unit of risk. The strategy profits by making more on winners, not by winning more often.
Can I use this on other futures like ES or YM?
The code is written for NQ (E-mini NASDAQ-100) but the logic works on ES, YM, or other index futures. You'd need to adjust the margin settings and potentially the ATR multipliers for different instruments' volatility profiles.
How do I automate it?
Enable the PickMyTrade webhook alerts in the strategy settings, create a single TradingView alert with the webhook URL pointing to your PickMyTrade endpoint. Every entry, exit, and EOD flatten sends its own JSON payload automatically. PickMyTrade routes orders to your broker (NinjaTrader, Tradovate, etc.).
Who is Clement Ang and what is the US Trading Championship?
Clement Ang is a US Trading Championship finalist who achieved a combined return of over 520%. The US Trading Championships are a prestigious annual trading competition. Ang's approach emphasizes systematic momentum trading on NQ futures using EMA pullback entries — the same core concept this strategy is built on.
Final Thoughts
The NQ Momentum Intraday Strategy strips intraday NQ trading down to its core: trend, pullback, confirmation, stop, target. No fancy indicators, no curve-fitting, no magic numbers. Three EMAs, an ATR-based stop, a fixed R:R target, and a trailing stop.
The 1-hour backtest shows +$37,660 (+37.66%) over 21 months with 300 trades. Both long and short sides contribute. The win rate is under 50%, but the positive risk-reward ratio makes the strategy profitable. The same settings work on 15-minute charts too, confirming the logic is robust.
The best use case: run it on NQ1! on the 1-hour chart during RTH, automate it through PickMyTrade, and let the rules handle execution while you focus on risk management and position sizing.
Ready to Automate Your NQ Trades?
PickMyTrade connects your TradingView strategies directly to your broker with zero manual intervention:
- One webhook handles entries, stops, targets, and EOD flattens
- Works with NinjaTrader, Tradovate, and other supported brokers
- Paper-trade mode for testing before going live
- Real-time order monitoring and trade logs
Get Started in 3 Steps
- Paste the strategy into TradingView Pine Editor and add it to your NQ1! chart
- Enable PickMyTrade alerts in strategy settings and create one TradingView alert with your webhook URL
- Connect your broker through PickMyTrade and start receiving automated NQ orders
Start your free trial at pickmytrade.trade →
You May Also Like
- Fabio Valentini Scalping Strategy: Settings & Rules (NQ)
- How to Use ClawdBot for Creating TradingView Strategies
Disclaimer
This strategy is provided for educational and research purposes only. The backtest results shown are hypothetical and do not represent real trading. Past performance does not guarantee future results. Futures trading involves substantial risk of loss and is not suitable for every investor. Always consult a qualified financial advisor and test any strategy on a paper account before committing real capital.
Copyright 2026 PickMyTrade
