Regular Trading Hours Opening Range Gap (RTH ORG)### Regular Trading Hours (RTH) Gap Indicator with Quartile Levels
**Overview**
Discover overnight gaps in index futures like ES, YM, and NQ, or stocks like SPY, with this enhanced Pine Script v6 indicator. It visualizes the critical gap between the previous RTH close (4:15 PM ET for futures, 4:00 PM for SPY) and the next RTH open (9:30 AM ET), helping traders spot potential price sensitivity formed during after-hours trading.
**Key Features**
- **Standard Gap Boxes**: Semi-transparent boxes highlight the gap range, with optional text labels showing day-of-week and "RTH" identifier.
- **Midpoint Line**: A customizable dashed line at the 50% level, with price labels for quick reference.
- **New: Quartile Lines (25% & 75%)**: Dotted lines (default width 1) mark the quarter and three-quarter points within the gap, ideal for finer intraday analysis. Toggle on/off, adjust style/color/width, and add labels.
- **High-Low Gap Variant**: Optional boxes and midlines for gaps between the prior close's high/low and the open's high/low—perfect for wick-based overlaps on lower timeframes (5-min or below recommended).
- **RTH Close Lines**: Extend previous close levels with dotted lines and price tags.
- **Customization Galore**: Extend elements right, limit historical displays (default: 3 gaps), no-plot sessions (e.g., avoid weekends), and time offsets for non-US indices.
**How to Use**
Apply to 15-min or lower charts for best results. Toggle "extend right" for ongoing levels. SPY auto-adjusts for its 4 PM close.
Tested on major indices—enhance your gap trading strategy today! Questions? Drop a comment.
Thanks to twingall for supplying the original code.
Thanks to The Inner Circle Trader (ICT) for the logical and systematic application.
รูปแบบชาร์ต
Needle XRThe Didi Index with Full Validation is a technical indicator developed for the TradingView platform, based on the concept of the Didi Index, created by Odir Aguiar (Didi). It uses the relationship between three exponential moving averages (EMAs) of different periods to identify trend reversal or continuation points, known as "needle points." To increase signal reliability, the indicator incorporates validations from four widely used technical indicators: MACD, TRIX, DMI/ADX, and Stochastic. Buy and sell signals are displayed only when all validation conditions are met, ensuring greater accuracy.
The indicator is plotted in a separate panel below the price chart, displaying the Didi Index lines (positive and negative), a central reference line, and clear buy (green triangles) and sell (red triangles) signals.
Doji Buy Signal (3-min, Body ≤ 6%)Doji Buy Signal (3-min, Body ≤ 6%) will give a Buy Signal when Doji Candle is formed
Doji Buy Signal (3-min, Body ≤ 6%)Doji Buy Signal (3-min, Body ≤ 6%) will give a buy signal when dojo candle is formed
3 Red Heikin Ashi with Higher Lows3 Red Heikin Ashi with Higher Lows. Will Give a Buy Signal when 3 Red Heikin Ashi with Higher Lows is formed
EMA 4/8/15The 4/8/15 are the main Moving Averages you need. . When it is inside the 4/8, it is moving slowly. If it detaches or launches above the 8, you have an increase in volume and price
Rudra ChakraA readymade template. Helps you to identify trend, momentum at a glance.
Blue dots for +momentum and red for -momentum.
Also the background Green, orange and red indicate the shift in trend. Buy signals indicate more than avg buying in some timeframe.
Estrategia MACD//@version=6
indicator("Trading Sessions", overlay = true, max_boxes_count = 500, max_lines_count = 500, max_labels_count = 500)
bool showSessionNames = input.bool(true, "Show session names")
bool showSessionOC = input.bool(true, "Draw session open and close lines")
bool showSessionTickRange = input.bool(true, "Show tick range for each session")
bool showSessionAverage = input.bool(true, "Show average price per session")
const string TZ_TOOLTIP_TEXT = "The session's time zone, specified in either GMT notation (e.g., 'GMT-5') or as an IANA time zone database name (e.g., 'America/New_York')."
+ " We recommend the latter since it includes other time-related changes, such as daylight savings."
const string FIRST_SESSION_GROUP = "First Session"
showFirst = input.bool(true, "Show session", group = FIRST_SESSION_GROUP, display = display.none)
firstSessionName = input.string("Tokyo", "Displayed name", group = FIRST_SESSION_GROUP, display = display.none)
firstSessionTime = input.session("0900-1500", "Session time", group = FIRST_SESSION_GROUP, display = display.none)
firstSessionTZ = input.string("Asia/Tokyo", "Session timezone", group = FIRST_SESSION_GROUP, display = display.none, tooltip = TZ_TOOLTIP_TEXT)
firstSessionColor = input.color(color.new(#2962FF, 85), "Session color", group = FIRST_SESSION_GROUP)
const string SECOND_SESSION_GROUP = "Second session"
showSecond = input.bool(true, "Show session", group = SECOND_SESSION_GROUP, display = display.none)
secondSessionName = input.string("London", "Displayed name", group = SECOND_SESSION_GROUP, display = display.none)
secondSessionTime = input.session("0830-1630", "Session time", group = SECOND_SESSION_GROUP, display = display.none)
secondSessionTZ = input.string("Europe/London", "Session timezone", group = SECOND_SESSION_GROUP, display = display.none, tooltip = TZ_TOOLTIP_TEXT)
secondSessionColor = input.color(color.new(#FF9800, 85), "Session color", group = SECOND_SESSION_GROUP)
const string THIRD_SESSION_GROUP = "Third session"
showThird = input.bool(true, "Show session", group = THIRD_SESSION_GROUP, display = display.none)
thirdSessionName = input.string("New York", "Displayed name", group = THIRD_SESSION_GROUP, display = display.none)
thirdSessionTime = input.session("0930-1600", "Session time", group = THIRD_SESSION_GROUP, display = display.none)
thirdSessionTZ = input.string("America/New_York", "Session timezone", group = THIRD_SESSION_GROUP, display = display.none, tooltip = TZ_TOOLTIP_TEXT)
thirdSessionColor = input.color(color.new(#089981, 85), "Session color", group = THIRD_SESSION_GROUP)
type SessionDisplay
box sessionBox
label sessionLabel
line openLine
line avgLine
line closeLine
float sumClose
int numOfBars
type SessionInfo
color color
string name
string session
string timezone
SessionDisplay active = na
method setName(SessionDisplay this, string name) =>
sessionLabel = this.sessionLabel
sessionBox = this.sessionBox
boxText = array.new()
if showSessionTickRange
boxText.push("Range: " + str.tostring((sessionBox.get_top() - sessionBox.get_bottom()) / syminfo.mintick, format.mintick))
if showSessionAverage
boxText.push("Avg: " + str.tostring(this.sumClose / this.numOfBars, format.mintick))
if showSessionNames
boxText.push(name)
sessionLabel.set_y(sessionBox.get_bottom())
sessionLabel.set_text(array.join(boxText, " "))
method createSessionDisplay(SessionInfo this) =>
boxColor = this.color
opaqueColor = color.new(boxColor, 0)
dis = SessionDisplay.new(
sessionBox = box.new(bar_index, high, bar_index, low, bgcolor = boxColor, border_color = na),
sessionLabel = label.new(bar_index, low, "", style = label.style_label_upper_left, textalign = text.align_left, textcolor = opaqueColor, color = color(na)),
openLine = showSessionOC ? line.new(bar_index, open, bar_index, open, color = opaqueColor, style = line.style_dashed, width = 1) : na,
closeLine = showSessionOC ? line.new(bar_index, close, bar_index, close, color = opaqueColor, style = line.style_dashed, width = 1) : na,
avgLine = showSessionAverage ? line.new(bar_index, close, bar_index, close, style = line.style_dotted, width = 2, color = opaqueColor) : na,
sumClose = close,
numOfBars = 1
)
linefill.new(dis.openLine, dis.closeLine, boxColor)
dis.setName(this.name)
this.active := dis
method updateSessionDisplay(SessionInfo this) =>
sessionDisp = this.active
sessionBox = sessionDisp.sessionBox
openLine = sessionDisp.openLine
closeLine = sessionDisp.closeLine
avgLine = sessionDisp.avgLine
sessionDisp.sumClose += close
sessionDisp.numOfBars += 1
sessionBox.set_top(math.max(sessionBox.get_top(), high))
sessionBox.set_bottom(math.min(sessionBox.get_bottom(), low))
sessionBox.set_right(bar_index)
sessionDisp.setName(this.name)
if showSessionOC
openLine.set_x2(bar_index)
closeLine.set_x2(bar_index)
closeLine.set_y1(close)
closeLine.set_y2(close)
if showSessionAverage
avgLine.set_x2(bar_index)
avg = sessionDisp.sumClose / sessionDisp.numOfBars
avgLine.set_y1(avg)
avgLine.set_y2(avg)
sessionDisp
method update(SessionInfo this) =>
bool isChange = timeframe.change("1D")
if (not na(time("", this.session, this.timezone))) // inSession
if na(this.active) or isChange
this.createSessionDisplay()
else
this.updateSessionDisplay()
else if not na(this.active)
this.active := na
getSessionInfos()=>
array sessionInfos = array.new()
if showFirst
sessionInfos.push(SessionInfo.new(firstSessionColor, firstSessionName, firstSessionTime, firstSessionTZ))
if showSecond
sessionInfos.push(SessionInfo.new(secondSessionColor, secondSessionName, secondSessionTime, secondSessionTZ))
if showThird
sessionInfos.push(SessionInfo.new(thirdSessionColor, thirdSessionName, thirdSessionTime, thirdSessionTZ))
sessionInfos
var array sessionInfos = getSessionInfos()
if timeframe.isdwm
runtime.error("This indicator can only be used on intraday timeframes.")
for info in sessionInfos
info.update()
RUDWAN OSMAN MUHUMED redsco trader
this indicator will help you to use ema 9 and ema 20 together with one indicator.
3SMA (1H only) by tophengzkyThis script plots three Simple Moving Averages (SMA 10, 20, 50), but they are only visible when the chart timeframe is set to 1 hour (1H).
It helps traders focus on higher timeframe trend direction without cluttering charts on other timeframes.
SMA1 = 10 (white)
SMA2 = 20 (yellow)
SMA3 = 200 (red)
Works only on 1H timeframe
Useful for swing traders and intraday traders who rely on hourly trend confirmation.
why 1 hr only? the only purpose of this is just to know the bias of the market weather it will reverse or it will continue the trend. As long as the price action did not cross this 3 SMA's the trend will continue.
as a trend trader it is very useful this strategy.. make it simple!
CCI + MACD Signal MTF (2nd-cross)This custom indicator combines the Commodity Channel Index (CCI) and the MACD to generate trading signals.
Basic signals (dots):
A green dot is plotted when CCI is above +100 and MACD is positive.
A red dot is plotted when CCI is below –100 and MACD is negative.
These dots help visualize momentum alignment between the two indicators.
Second-cross signals (text + alert):
The indicator also tracks cycles of the CCI.
When CCI first moves above +100 and later falls back below +100, this is counted as one completed cycle.
The next time CCI crosses back above +100 (the second cross), if MACD is still positive, a “BUY” label is plotted and a buy alert is triggered.
Conversely, when CCI first moves below –100 and later rises back above –100, that is one completed cycle.
The next time CCI crosses back below –100 (the second cross), if MACD is negative, a “SELL” label is plotted and a sell alert is triggered.
Alerts:
Alerts are only fired on the second-cross events (BUY or SELL), making them rarer but potentially more reliable than the basic dot conditions.
Timeframe flexibility:
Both the CCI and the MACD can be calculated on custom timeframes independently of the chart’s timeframe.
FEI: Futures Entry Identifier📘 FEI: Futures Entry Identifier
FEI is a modular, futures-grade entry engine designed for precision trading across GC1!, MNQ1!, ES1!, and related contracts. It combines manual SVP structure, CHoCH detection, and Colby-style candle strength filters to identify high-probability long and short entries.
🔧 Features
• Manual SVP inputs (VAH, VAL, POC)
• Symbol-aware filters for micro vs standard contracts
• Multi-timeframe signal logic (3m, 5m, 10m, 15m, 30m)
• CHoCH detection with optional engulfing filter (default off)
• FRVP entry zone plotting after CHoCH confirmation
• Candle coloring on CHoCH trigger
• Session-aware logic (ETH default, optional RTH-only)
• Narratable visuals and audit-safe alerts
🧭 How to Use
1. Input VAH, VAL, and POC manually
2. Select signal timeframe (e.g. 3m or 5m)
3. Watch for CHoCH (white candle = structural shift)
4. Entry line plots at top/bottom of recent range
5. Long/short markers appear when SVP + candle strength align
6. Toggle RTH-only mode if needed
🌟 Why It’s Unique
FEI is built for traders who demand clarity, structure, and precision. Every signal is narratable, audit-safe, and resolution-aware—ideal for futures overlays and sniper-grade entries.
Bollinger Breakout MarkersSubtle triangle markers that indicate when price extends out of the Bollinger bands to indicate overbought and oversold conditions
KAPITAS TBR 12am-8:30measures the range between 12am(true day open)-8:30am and has % levels where price is sensitive and likely to reverse
MA Crossover BIFTY BNF with Broker Inputs//@version=6
strategy("MA Crossover with Broker Inputs", overlay=true, margin_long=100, margin_short=100, process_orders_on_close=true)
// === BROKER & ORDER SETTINGS ===
broker = input.string("Dhan", title="Broker", options= )
orderType = input.string("MKT", title="Order Type", options= )
clientID = input.string("", title="Client ID (Optional)")
secretKey = input.string("", title="Secret Key (from JSON)")
// === INSTRUMENT SELECTION ===
instrument = input.string("BANKNIFTY", title="Select Instrument", options= )
expiryMode = input.string("Auto", title="Expiry Mode", options= )
manualExpiry = input.string("17Dec2025", title="Manual Expiry Date (if Manual Mode)")
optionType = input.string("CE", title="Option Type", options= )
strikeSel = input.string("ATM", title="Strike Selection", options= )
// === RISK MANAGEMENT ===
stopLossPts = input.int(50, title="Stop Loss (points)")
takeProfitPts = input.int(100, title="Take Profit (points)")
// === STRATEGY LOGIC: Moving Average Crossover ===
fastLength = input.int(9, title="Fast MA Length")
slowLength = input.int(18, title="Slow MA Length")
price = close
maFast = ta.sma(price, fastLength)
maSlow = ta.sma(price, slowLength)
// Crossover Long
if (ta.crossover(maFast, maSlow))
strategy.entry("Long", strategy.long, comment="MA Crossover Long")
// Crossunder Short
if (ta.crossunder(maFast, maSlow))
strategy.entry("Short", strategy.short, comment="MA Crossover Short")
// Apply SL and TP
strategy.exit("Exit Long", from_entry="Long", stop=close - stopLossPts, limit=close + takeProfitPts)
strategy.exit("Exit Short", from_entry="Short", stop=close + stopLossPts, limit=close - takeProfitPts)
// === PLOTS ===
plot(maFast, color=color.green, title="Fast MA")
plot(maSlow, color=color.red, title="Slow MA")
Gap ZonesThis TradingView indicator automatically detects daily price gaps and plots them clearly on any timeframe (intraday or daily).
It helps visualize where unfilled gaps are sitting, track whether they’ve been filled, and control how far the zone extends.
Key Features
1. Daily Gap Detection
• Works even when you’re on intraday charts (uses daily OHLC data).
• Marks both gap up (potential support zones) and gap down (potential resistance zones).
2. Shaded Gap Zones
• Each gap is highlighted as a band (greenish for up, reddish for down).
• Option to turn shading off if you just want horizontal lines.
3. Hide When Filled
• Once price closes or touches the far side of the gap, it disappears (configurable: Touch vs Close).
4. Lookback Window
• Gaps only show if they occurred within the past X trading days (default: 30).
• Prevents your chart from being cluttered with ancient gaps.
5. Multiple Gaps Tracked
• Can track up to 5 recent gaps simultaneously.
• Oldest gaps “roll off” as new ones form.
6. Finite Right-Edge Guides
• Optional horizontal guide lines extend to the right, but only for a fixed number of bars (default: 50).
• Cleaner than infinite extensions.
7. Gap-Day Marker
• Optional vertical line drawn on the bar where the gap first occurred.
⸻
⚙️ Inputs & Settings
When you apply the indicator, you’ll see these options:
• Lookback (trading days): How far back to scan for gaps (default 30).
• Max gaps to show (1..5): How many simultaneous gap zones to display.
• Min gap size (% of prior close): Filter out tiny gaps (default 0.25%).
• Hide gaps once filled: Removes a gap from the chart once filled.
• Fill rule uses CLOSE (off = Touch):
• Touch = filled when price trades through the level intraday.
• Close = filled only when a candle close crosses it.
• Show shading: Toggle zone fills on/off.
• Show vertical marker on gap day: Toggle gap-day marker line.
• Show finite right-edge lines: Toggle horizontal lines extending right.
• Right line length (bars): How far those lines extend (default 50 bars).
⸻
🟢 How to Use It
1. Apply on Any Chart
• Works best on daily or intraday (5m, 15m, 1h).
• Gaps are always calculated from daily data, so intraday charts will show higher-timeframe gaps correctly.
2. Interpret Colors
• Green shading = Gap Up (often acts as support).
• Red shading = Gap Down (often acts as resistance).
3. Watch for Fills
• When price re-enters the gap zone, the indicator checks if it’s “filled” (based on your Touch/Close setting).
• If “Hide When Filled” is on, the zone vanishes.
4. Trade Context
• Many traders use gaps as targets (expecting a fill) or levels of support/resistance.
• Combined with your bull put/bear call spread strategies, it helps confirm strong levels.
Al Brooks II.IOI.OO# Al Brooks Consecutive Bar Patterns (II/OO/IOI)
## Overview
This indicator automatically identifies Al Brooks' key consecutive bar patterns that signal important market transitions. Enhanced with both **traditional (high/low)** and **body (open/close)** detection methods for more accurate signals.
## Pattern Definitions
### 📊 II Pattern - Double Inside Bars
- **Signal**: Two consecutive inside bars
- **Market Meaning**: Volatility contraction, breakout pending
- **Trading**: Wait for breakout, trade with momentum
### 📊 OO Pattern - Double Outside Bars
- **Signal**: Two consecutive outside bars
- **Market Meaning**: Volatility expansion, trend acceleration or reversal
- **Trading**: Watch for exhaustion at key levels
### 📊 IOI Pattern - Inside-Outside-Inside
- **Signal**: Inside bar → Outside bar → Inside bar sequence
- **Market Meaning**: Market indecision, complex consolidation
- **Trading**: Avoid early entries, wait for clear direction
## Features
✅ **Dual Detection System**
- Traditional: Uses high/low prices (catches wicks)
- Body: Uses open/close prices (focuses on real trading range)
- Combined: Triggers when either condition is met
✅ **Visual Markers**
- Clear labels above/below bars
- Color-coded backgrounds
- Detection source indicators (h=high/low, b=body, +=both)
✅ **Smart Alerts**
- Real-time pattern detection
- Separate alerts for body-only patterns
- Customizable notification settings
## Settings
**Display Options**
- Show/hide each pattern type
- Toggle detection methods
- Customize colors
**Detection Modes**
- High/Low Detection: Traditional wick-based
- Body Detection: Open/Close based
- Show Source: Display what triggered the pattern
## Trading Tips
1. **Best Timeframes**: 1H, 4H, Daily
2. **Combine with**: Volume, trend indicators, support/resistance
3. **Risk Management**:
- II: Tight stops inside pattern
- OO: Wider stops due to volatility
- IOI: Scale in positions
## Label Meanings
- `ii` / `OO` / `ioi` = Base pattern detected
- `+h` suffix = High/Low triggered
- `+b` suffix = Body triggered
- `++` suffix = Both conditions met (strongest signal)
## Author Notes
Based on Al Brooks' price action methodology from his Trading Price Action series. This enhanced version adds body detection to filter out wick-only patterns and reduce false signals.
---
*For educational purposes only. Trading involves risk.*
**Version 2.0** | **Pine Script v6** | **@JimmC98**
Foxbrady D/G CrossFoxbrady D/G Cross - Golden Cross & Death Cross Indicator**
A clean and simple indicator that identifies Golden Cross and Death Cross events using the classic 50-day and 200-day simple moving averages.
Features:
- Blue line: 50-day SMA (fast moving average)
- Red line: 200-day SMA (slow moving average)
- Green "GC" label appears at the exact crossover point when a Golden Cross occurs (bullish signal)
- Red "DC" label appears at the exact crossover point when a Death Cross occurs (bearish signal)
- Built-in alert conditions for both events
- Customizable MA periods to suit your trading style
How to Use:
The Golden Cross (50 MA crossing above 200 MA) is traditionally viewed as a bullish long-term signal, while the Death Cross (50 MA crossing below 200 MA) is considered a bearish indicator. This indicator makes it easy to spot these events historically and receive alerts when they occur in real-time.
Perfect for swing traders and long-term investors looking to identify major trend changes.
IKIGAI ZigZags//@version=6
indicator("IKIGAI ZigZags", overlay = true, max_lines_count = 500, max_labels_count = 500)
import TradingView/ZigZag/7 as ZigZagLib
deviationInput = input.float(5.0, "Price deviation for reversals (%)", 0.00001, 100.0, 0.5, "0.00001 - 100"),
depthInput = input.int(10, "Pivot legs", 2),
lineColorInput = input(#2962FF, "Line color", display = display.data_window),
extendInput = input(true, "Extend to last bar", display = display.data_window),
showPriceInput = input(true, "Display reversal price", display = display.data_window),
showVolInput = input(true, "Display cumulative volume", display = display.data_window),
showChgInput = input(true, "Display reversal price change", inline = "priceRev", display = display.data_window),
priceDiffInput = input.string("Absolute", "", , inline = "priceRev", display = display.data_window, active = showChgInput)
// Create Zig Zag instance from user settings.
var zigZag = ZigZagLib.newInstance(
ZigZagLib.Settings.new(
deviationInput, depthInput, lineColorInput, extendInput, showPriceInput, showVolInput, showChgInput,
priceDiffInput, true)
)
// Update 'zigZag' object on each bar with new pivots, volume, lines, labels.
zigZag.update()
ORB Pro w/ Filters + Debug + ORB Fib + Golden Pocket + HTF Trend🚀 ORB Pro – Advanced Opening Range Breakout System
A professional ORB indicator with built-in filters, retest confirmation, EMA/HTF trend alignment, and automatic risk/reward targets. Designed to eliminate false breakouts and give traders clean LONG/SHORT signals with Fibonacci and debug overlays for maximum precision.
This script is an advanced Opening Range Breakout (ORB) system designed for futures, indices, and options traders who want more precision, cleaner entries, and higher win probability. It combines classic ORB logic with modern filters, Fibonacci confluence, and higher-timeframe trend confirmation.
The indicator automatically:
Plots the ORB box based on user-defined NY session times (default: 9:30–9:45 EST).
Generates long/short signals when price breaks the ORB range, with optional conditions like:
Candle close outside the range
Retest confirmation (with tolerance %)
Volume spike validation
EMA trend alignment
Higher-timeframe EMA slope alignment
Cooldown filters to prevent over-trading
Integrates Fibonacci retracements & extensions from the ORB box for confluence levels.
Includes Golden Pocket (0.5–0.618) retests for precision entries
Risk/Reward visualization — automatically plots stop loss and take profit levels based on user-defined R:R or fixed % levels.
Debug mode overlay to show why a signal is blocked (e.g., low volume, ORB too small, too late, wrong trend).
This tool is built for scalpers, day traders, and 0DTE options traders who need both flexibility and discipline.
⚙️ Inputs & Features
ORB Settings
ORB Start & End Time (NY) → Default: 9:30–9:45
Require Candle Close → Ensures breakouts are confirmed, not wick traps.
Retest Confirmation → Optional retest before entry (tolerance % adjustable).
Filters
Volume Spike → Validates breakouts only with above-average volume.
EMA Trend Filter → Confirms trade direction with EMA slope.
Higher Timeframe Trend → Optional (e.g., 15m ORB with 1h EMA alignment).
Cooldown Bars → Prevents consecutive false signals.
ORB Size Filter → Blocks signals when ORB is too small/too large.
Fibonacci Levels
Retracements: 0.236, 0.382, 0.5, 0.618, 0.786
Extensions: 1.272, 1.618
Golden Pocket Retest filter for high-probability trades
Risk Management
R:R Stops/Targets → Automatically plots SL/TP levels.
Custom Stop % / Take Profit % if not using R:R
Debug Overlay → Explains why signals are blocked
🧑💻 How to Use
Load the indicator on your chart (works best on 1m, 5m, and 15m).
Adjust ORB window (default 9:30–9:45 EST).
Select filters (candle close, retest, volume, EMA, HTF trend).
Watch for Long/Short labels outside ORB box with filters aligned.
Manage trades using plotted SL/TP levels or your own Webull/R:R calculator.
✅ Best Use Cases
Futures (NQ1!, ES1!)
ETFs (QQQ, SPY, IWM)
0DTE Options Trading
Scalping around market open
⚠️ Disclaimer
This tool is for educational purposes only. It does not constitute financial advice. Trading carries risk, and past performance does not guarantee future results. Always test on paper trading before using real capital.
-----------------------------------------
ORB Pro w/ Filters + Debug + ORB Fib + Golden Pocket + HTF Trend
A professional Opening Range Breakout (ORB) toolkit designed for intraday traders who want precision entries, risk-managed exits, and layered confirmation filters. Built for futures, stocks, and ETFs (e.g. NQ, ES, QQQ).
🔎 Core Logic
This script plots and trades breakouts from the Opening Range (9:30 – 9:45 NY time), then applies multiple confirmation filters before signaling a LONG or SHORT setup:
ORB Box: Defines the first 15 minutes of market activity (customizable).
Breakout Candle Confirmation: Requires a candle close outside the ORB box.
Retest Confirmation: Price must retest the ORB edge within tolerance before triggering.
Trend Filter: EMA confirmation to align trades with intraday trend.
Higher-Timeframe Trend Filter: Optional (default: 45-minute EMA) to avoid countertrend trades.
Fibonacci Levels: Auto-plot retracements (0.236 → 0.786) for confluence and trade management.
Golden Pocket Retest (Optional): Adds an extra precision filter at 0.5–0.618 retracement.
⚙️ Default Settings (Optimized for Beginners)
These are the pre-configured inputs so traders can load and trade immediately:
ORB Session: 9:30 – 9:45 NY
✅ Require Candle Close Outside ORB
✅ Require Retest Confirmation (tolerance 0.333%)
❌ Require Volume Spike (off by default, optional toggle)
✅ Require EMA Trend (50 EMA intraday)
✅ Require Higher-TF Trend (45m, EMA 21)
❌ Higher-TF EMA slope required (off)
✅ Cooldown Between Signals (10 bars)
ORB % Range: Min 0.3%, Max 0.5%
Max Minutes After ORB: 180
✅ ORB-based Risk/Reward Stops & Targets (default: 2R)
Stop Loss: 0.5% (if not R:R)
Take Profit: 1% (if not R:R)
✅ Debug Overlay (shows why signals are blocked)
✅ Fibonacci Retracements Plotted
❌ Extensions (off by default, toggle if needed)
✅ Golden Pocket Retest available, tolerance 0.11 (optional)
📈 Signals
Green "LONG" Label: Valid breakout above ORB with trend confirmation.
Red "SHORT" Label: Valid breakdown below ORB with trend confirmation.
Blocked (debug text): Signal suppressed by filters (low volume, too late, no retest, etc.).
🎯 Trade Management
Default R:R is 2:1 (stop at ORB edge, TP projected).
For manual trading (e.g., Webull, IBKR), you can use the plotted TP/SL boxes directly.
Fibonacci + Golden Pocket give additional profit-taking levels and retest filters.
✅ Best Practices
Use 15m chart for main ORB entries.
Confirm direction with HTF trend (45m EMA by default).
Avoid signals blocked by “Low Volume” or “Too Late” (debug helps identify).
Adjust ORB % range for asset volatility (tight for ETFs, wider for futures).
🚀 Why ORB Pro?
This is more than a standard ORB indicator. It’s a professional breakout system with filters designed to avoid false breakouts, automatically handle risk/reward, and guide traders with clear visual signals. Perfect for both systematic day traders and discretionary scalpers who want structure and confidence.
👉 Recommended starting point:
Load defaults → trade the 15m ORB with EMA + HTF filters on → let the script handle retests and stop/target placement.