Candlestick Patterns Backtester [Optimized]Candlestick Patterns Backtester
What this is: This indicator is based on a really cool candlestick pattern backtester that I found (I'll update this later when I remember where I got it from or find the actual author). The original had this massive table showing win/loss ratios for a bunch of candlestick patterns, and according to the built-in backtester, it was actually profitable - which was pretty impressive.
The Problem: I played around with the original for a while but honestly wasn't really able to get it to work well at all for actual trading. It was still pretty cool to look at though! The main issues were:
It was just a big static table - hard to do anything useful with it
Couldn't send signals out to other strategies
The code was a monster - like 2,000+ lines of repetitive mess
What I Did: I completely refactored this thing and got it down from 2,000+ lines to just a few hundred lines. Much cleaner now! Here's what it does:
45+ Candlestick Patterns - All the classics are in there
Dynamic Filtering - Set your own requirements (minimum win rate, profit factor, total trades, etc.)
Flexible Logic - Choose AND/OR logic for your filters
Signal Generation - Creates actual buy/sell signals you can use with other strategies
Visual Badges - Shows pattern badges on chart when they meet your criteria
Active Patterns Table - Only shows patterns that are currently profitable based on your settings
Settings You Can Adjust:
Minimum win rate threshold
Minimum profit factor
Minimum number of trades required
Whether to use AND or OR logic for filtering
Colors, badge display, debug options
Reality Check: Trading these patterns really wasn't for me, but it was still a great learning experience. The backtesting results look good on paper, but as always, past performance doesn't guarantee future results. Use this as a research tool and educational resource more than anything else.
Credit: This is based on someone else's original work that I heavily modified and optimized. I'll update this description once I track down the original author to give proper credit where it's due.
This introduction captures your casual, honest tone while explaining the technical improvements you made and setting realistic expectations about the indicator's practical use.
在腳本中搜尋"沪深主板45度上升的股票"
Angled Gann Time-Price Squares with S/RThis is a Pine Script indicator that implements Angled Gann Time-Price Squares based on W.D. Gann's trading theory. Here's what it does:
Core Functionality
Detects pivot highs and lows using a configurable lookback period
Creates angled squares by connecting pivot points to current price action when specific geometric conditions are met
Validates square formation by checking if the price movement follows proper Gann angles (typically 45°, 135°, etc.) within a tolerance range
Key Features
Real-time square tracking: Shows both completed squares and forming squares in progress
Support/Resistance levels: Automatically generates S/R lines from:
Square edge extensions
Diagonal extensions (pivot centers)
Quarter/half levels within squares (25%, 50%, 75%)
Visual feedback: Color-coded squares (green for up, red for down, orange for forming)
Projection lines: Predicts where squares might complete based on Gann angle theory
Gann Theory Application
The indicator follows Gann's principle that time and price move in geometric harmony. It looks for price movements that form perfect squares when plotted on a chart, where the diagonal of the square represents the natural flow of price and time at specific angles.
The generated support/resistance levels are particularly valuable because they're based on completed geometric patterns rather than just horizontal price levels, making them potentially more significant according to Gann methodology.
DP_ORB Entry & Exit IndicatorDisclaimer:
This indicator is for educational purposes only. It does not constitute financial advice. Always do your own research and manage your risk. Also, I cannot take full credit for 'ORB' as its a well known strategy amongst many traders, but I do need to give a special shout out to @TheBigDaddyMax for putting me on to this.
DP_ORB Entry & Exit Indicator
Description:
The DP_ORB Entry & Exit Indicator is a powerful tool designed for traders who utilize the Opening Range Breakout (ORB) strategy on the NYSE session. This indicator visually identifies the initial volatility window of the trading day, by marking the 15m High, and 15m Low into a ORB Box, & then tracks breakout opportunities, and provides clear, dynamic trade management levels—all directly on your chart.
Key Features:
Automatic Opening Range (ORB) Box:
Identifies and plots the high and low of the user-defined opening range (default 9:30–9:45 NYSE) for visual reference and strategy foundation.
Breakout Entry Signals:
Automatically detects and marks long or short breakout entries when price closes above or below the ORB range, with additional momentum confirmation.
Dynamic Stop Loss:
Stop loss is intelligently set to the previous bar’s low for long trades (or high for shorts), adapting to market structure at entry.
Take Profit Targets:
Up to three fully adjustable take-profit levels are plotted, calculated as percentages from entry, supporting progressive trade management.
Visual Trade Management:
Entry, stop loss, and take profit levels are displayed as extending dashed lines from entry point to the current bar, with labels always shown just to the right of price for clarity on all timeframes.
Automatic Reset and Cleanup:
Visuals and logic reset daily and upon exit, ensuring a clean, uncluttered chart experience.
How to Use:
Set your preferred opening range time and take profit levels in the settings.
Wait for a breakout and confirmation during the NYSE session.
Use the on-chart lines and labels to manage your trade according to your risk and strategy plan.
Best For:
Day traders and scalpers seeking a disciplined, visual, and fully-automated approach to opening range breakout trading.
Gold Power Hours Strategy📈 Gold Power Hours Trading Strategy
Trade XAUUSD (Gold) or XAUEUR during the most volatile hours of the New York session, using momentum and trend confirmation, with session-specific risk/reward profiles.
✅ Strategy Rules
🕒 Valid Trading Times ("Power Hours"):
Trades are only taken during high-probability time windows on Tuesdays, Wednesdays, and Thursdays , corresponding to key New York session activity:
Morning Session:
08:00 – 11:00 (NY time)
Afternoon Session:
12:30 – 16:00
19:00 – 22:00
These times align with institutional activity and economic news releases.
📊 Technical Indicators Used:
50-period Simple Moving Average (SMA50):
Identifies the dominant market trend.
14-period Relative Strength Index (RSI):
Measures market momentum with session-adjusted thresholds.
🟩 Buy Signal Criteria:
Price is above the 50-period SMA (bullish trend)
RSI is greater than:
60 during Morning Session
55 during Afternoon Session
Must be during a valid day (Tue–Thu) and Power Hour session
🟥 Sell Signal Criteria:
Price is below the 50-period SMA (bearish trend)
RSI is less than:
40 during Morning Session
45 during Afternoon Session
Must be during a valid day and Power Hour session
🎯 Trade Management Rules:
Morning Session (08:00–11:00)
Stop Loss (SL): 50 pips
Take Profit (TP): 150 pips
Risk–Reward Ratio: 1:3
Afternoon Session (12:30–16:00 & 19:00–22:00)
Stop Loss (SL): 50 pips
Take Profit (TP): up to 100 pips
Risk–Reward Ratio: up to 1:2
⚠️ TP is slightly reduced in the afternoon due to typically lower volatility compared to the morning session.
📺 Visuals & Alerts:
Buy signals: Green triangle plotted below the bar
Sell signals: Red triangle plotted above the bar
SMA50 line: Orange
Valid session background: Light pink
Alerts: Automatic alerts for buy/sell signals
Time Period Highlighter V2This indicator highlights custom time periods on any intraday chart in TradingView, making it easier to visualize your preferred trading sessions.
You can define up to three separate time ranges per day, each with precise start and end times down to the minute (e.g., 08:30 - 12:15, 14:00 - 16:45, and 20:00 - 22:30). The indicator shades the background of your chart during these periods, helping you quickly identify when you're most active or when specific market conditions occur.
Key Features:
Set start and end times (hours and minutes) for up to three trading sessions.
Automatically highlights these periods across any intraday timeframe.
Uses 24-hour time format aligned with your TradingView chart timezone.
Perfect for day traders, scalpers, or anyone needing clear visual cues for their trading windows.
This tool is especially useful for reviewing trading strategies, backtesting, or ensuring you're focusing on high-probability market hours.
Tip: Double-check that your chart timezone matches your desired session times for accurate highlighting.
GeeksDoByte 15m & 30m ORB + Prev Day High/LowCME_MINI:NQ1!
How It Works
Opening Ranges
At 9:30 ET, the script begins tracking the high & low.
It uses two fixed sessions:
15 min from 09:30 to 09:45
30 min from 09:30 to 10:00
On the very first bar of each session it initializes the range, then continuously updates the high/low on each new intraday bar.
Dashed lines are drawn when the session opens and extended horizontally across subsequent bars.
Previous Day’s Levels
Independently, it fetches yesterday’s high and low via a daily security call.
These historic levels are plotted as simple horizontal lines for daily context.
How to Use
Breakout Entries
A close above the 15 min ORB high can signal an early breakout; a further push above the 30 min ORB high confirms extended momentum.
Conversely, breaks below the respective lows can indicate short setups.
Support & Resistance
Yesterday’s high/low often act as magnet levels. If price is near the previous high when the opening ranges break, you get a confluence zone worth watching.
Trade Management
Combine the two opening-range levels to tier your stops or scale in.
For example, you might place an initial stop below the 15 min low and a wider stop below the 30 min low.
Options Strategy V1.3📈 Options Strategy V1.3 — EMA Crossover + RSI + ATR + Opening Range
Overview:
This strategy is designed for short-term directional trades on large-cap stocks or ETFs, especially when trading options. It combines classic trend-following signals with momentum confirmation, volatility-based risk management, and session timing filters to help identify high-probability entries with predefined stop-loss and profit targets.
🔍 Strategy Components:
EMA Crossover (Fast/Slow)
Entry signals are triggered by the crossover of a short EMA above or below a long EMA — a traditional trend-following method to detect shifts in momentum.
RSI Filter
RSI confirms the signal by avoiding entries in overbought/oversold zones unless certain momentum conditions are met.
Long entry requires RSI ≥ Long Threshold
Short entry requires RSI ≤ Short Threshold
ATR-Based SL & TP
Stop-loss is set dynamically as a multiple of ATR below (long) or above (short) the entry price.
Take-profit is placed as a ratio (TP/SL) of the stop distance, ensuring consistent reward/risk structure.
Opening Range Filter (Optional)
If enabled, the strategy only triggers trades after price breaks out of the 09:30–09:45 EST range, ensuring participation in directional moves.
Session Filters
No trades from 04:00 to 09:30 and from 16:00 to 20:00 EST, avoiding low-liquidity periods.
All open trades are closed at 15:55 EST, to avoid overnight risk or expiration issues for options.
⚙️ Built-in Presets:
You can choose one of the built-in ticker-specific presets for optimal conditions:
Ticker EMAs RSI (Long/Short) ATR SL×ATR TP/SL
SPY 8/28 56 / 26 14 1.4× 4.0×
TSLA 23/27 56 / 33 13 1.4× 3.6×
AAPL 6/13 61 / 26 23 1.4× 2.1×
MSFT 25/32 54 / 26 14 1.2× 2.2×
META 25/32 53 / 26 17 1.8× 2.3×
AMZN 28/32 55 / 25 16 1.8× 2.3×
You can also choose "Custom" to fully configure all parameters to your own market and strategy preferences.
📌 Best Use Case:
This strategy is especially suited for intraday options trading, where timing and risk control are critical. It works best on liquid tickers with strong trends or clear breakout behavior.
Open Range Breakout (ORB) with Alerts
🚀 ChartsAlgo – Open Range Breakout (ORB) with Alerts
The Open Range Breakout (ORB) Indicator by ChartsAlg is designed for intraday traders looking to capitalize on price movements after the market’s opening range. This tool is especially effective for futures (MNQ, MES) and high-volatility stocks or crypto where initial volatility sets the tone for the session.
This indicator identifies a user-defined opening range window, plots the high/low lines of that range, and visually alerts users when price breaks out above or below the range — with options to customize breakout repetitions, background fill, and alerts.
💡 What is an Open Range Breakout (ORB)?
The opening range represents the high and low established during the first few minutes of the trading session — usually 15 or 30 minutes. Many intraday strategies are based on the idea that breaking out of this initial range often signals strong momentum and trend continuation.
Traders often enter:
Long when price breaks above the range high.
Short when price breaks below the range low.
⚙️ How It Works
You define a session window (e.g., 09:30–09:45 EST).
The indicator tracks the high and low during this time.
Once the session ends, the high and low become your range breakout levels.
The indicator then:
Plots lines for visual clarity
Optionally fills background between the range
Triggers breakout signals if price crosses the levels
Provides alerts when breakouts occur
🛠️ Settings Breakdown
🔹 Session Settings
Range Session: Set your preferred window (e.g., 0930–0945). Can be premarket, first 30 mins, or any custom time.
Time zone: Use "America/New York" for EST (default) or change to "GMT+0" for international traders.
🔹 Breakout Settings
Bullish Breakout Signals: Number of allowed breakout alerts above the range.
Bearish Breakout Signals: Number of allowed breakout alerts below the range.
This prevents repeated alerts once breakout has been confirmed.
🔹 Display Settings
Show Background Fill: Fills area between high/low of the range for easier visual analysis.
Show Breakout Signals: Triangle markers plotted on the chart when breakouts happen.
Only Show Today’s Range: Keeps the chart clean by showing only the most current day’s range.
🔹 Color Settings
Range High/Low Line Colors: Choose any color for clarity.
Range Fill Color: Customize the highlight area for your chart style.
📊 Chart Features
Range High/Low Lines: Automatically plotted after range session ends.
Visual Fill Box: Optional background shading between the opening range.
Triangle Breakout Markers: Appear at the breakout candle.
Alerts: Can be used with TradingView’s alert system to notify you of breakouts in real-time.
🔔 Alerts
Two alert conditions are built in:
Bullish Breakout: Triggers when price breaks above the high of the range.
Bearish Breakout: Triggers when price breaks below the low of the range.
Example Alert Message:
📈 “Bullish Breakout above Open Range on AAPL!”
To activate:
Click “🔔 Alerts” on TradingView.
Set condition to this script.
Choose “ORB Breakout Up” or “ORB Breakout Down”.
Choose alert frequency and notification method.
⚠️ DISCLAIMER
ChartsAlgo tools are for informational and educational purposes only.
They are not financial advice or signals. Past performance does not guarantee future results. Use at your own risk and always implement solid risk management.
By using this indicator, you agree that you are solely responsible for any trades or decisions made based on the information provided.
OPR Asia-New-York [Elykia]This Pine Script indicator, called "OPR Asia-New-York ", displays time-based boxes corresponding to two specific trading periods known as OPR (Opening Price Range):
🎯 Purpose of the Indicator:
To visualize two key market time windows (morning and afternoon) as extended boxes, helping with technical analysis around opening ranges.
🕒 Two sessions displayed as boxes:
🔹 Morning OPR:
Default: from 09:00 to 09:15 (configurable)
The box extends until 10:30.
It captures the highest and lowest candle within this interval.
🔸 Afternoon OPR:
Default: from 15:30 to 15:45
The box extends until 17:30.
Follows the same logic as the morning session.
⚙️ Dashboard Options:
Enable or disable the morning or afternoon box individually
Select the timezone (e.g., GMT+2)
Customize all colors (morning/afternoon boxes, median line)
Set your own start/end/extension times for each session
📦 Each box includes:
A colored rectangle showing the price range (high/low)
A dotted median line between the high and low
The box and line extend until the end time defined
🧠 Usefulness for Traders:
Identify liquidity zones or consolidation areas
Trade setups like liquidity grabs, breakouts, or fakeouts around the OPR
Align with ICT methods or scalping strategies based on session behavior
Opening Range Breakout (ORB) with Fib RetracementOverview
“ORB with Fib Retracement” is a Pine Script indicator that anchors a full Fibonacci framework to the first minutes of the trading day (the opening-range breakout, or ORB).
After the ORB window closes the script:
Locks-in that session’s high and low.
Calculates a complete ladder of Fibonacci retracement levels between them (0 → 100 %).
Projects symmetric extension levels above and below the range (±1.618, ±2.618, ±3.618, ±4.618 by default).
Sub-divides every extension slice with additional 23.6 %, 38.2 %, 50 %, 61.8 % and 78.6 % mid-lines so each “zone” has its own inner fib grid.
Plots the whole structure and—optionally—extends every line into the future for ongoing reference.
**Session time / timezone** – Defines the ORB window (defaults 09:30–09:45 EST).
**Show All Fib Levels** – Toggles every retracement and extension line on or off.
**Show Extended Lines** – Draws dotted, extend-right projections of every level.
**Color group** – Assigns colors to buy-side (green), sell-side (red), and internal fibs (gray).
**Extension value inputs** – Allows custom +/- 1.618 to 4.618 fib levels for personalized projection zones.
Trap Candle (Trend H4 + RSI Filter)🔍 Trap Candle (Trend H4 + RSI Filter)
Description:
The Trap Candle indicator is designed to identify a specific and powerful two-candle price action pattern that often signals a false breakout followed by a strong reversal. It combines pure price action with two objective filters to increase signal quality and trend alignment.
📊 Pattern Logic:
Bullish Trap: The current candle breaks the previous candle’s low, but closes above its high (and is bullish).
Bearish Trap: The current candle breaks the previous candle’s high, but closes below its low (and is bearish).
This pattern often reveals institutional traps or stop hunts before directional movement.
🧠 Trend Filter (H4):
Ensures long signals occur only when the H4 close is higher than the previous H4 close (uptrend).
Ensures short signals occur only in a H4 downtrend.
Designed to align intraday entries (M15, H1) with higher timeframe momentum.
💪 RSI Confirmation:
Includes a configurable RSI filter on the current timeframe.
Only long signals are shown when RSI is above a user-defined threshold (e.g. 55).
Only short signals are shown when RSI is below a user-defined threshold (e.g. 45).
⚙️ Key Features:
Full customization of RSI period and thresholds.
Clean, visual signal plotting on the chart (with “Trap L” or “Trap S” labels).
Built-in alerts for both long and short trap candle setups.
Perfect for traders who want to trade smart reversals with trend and momentum confirmation.
✅ Recommended Timeframes:
M15 and H1 (entry)
Uses H4 for trend bias
If you’re looking to filter out noise and spot only the highest quality reversal setups, the Trap Candle (Trend H4 + RSI Filter) is a solid tool for any price action-based strategy.
Aftershock Playbook: Stock Earnings Drift EngineStrategy type
Event-driven post-earnings momentum engine (long/short) built for single-stock charts or ADRs that publish quarterly results.
What it does
Detects the exact earnings bar (request.earnings, lookahead_off).
Scores the surprise and launches a position on that candle’s close.
Tracks PnL: if the first leg closes green, the engine automatically re-enters on the very next bar, milking residual drift.
Blocks mid-cycle trades after a loss until the next earnings release—keeping the risk contained to one cycle.
Think of it as a sniper that fires on the earnings pop, reloads once if the shot lands, then goes silent until the next report.
Core signal inputs
Component Default Purpose
EPS Surprise % +0 % / –5 % Minimum positive / negative shock to trigger longs/shorts.
Reverse signals? Off Quick flip for mean-reversion experiments.
Time Risk Mgt. Off Optional hard exit after 45 calendar days (auto-scaled to any TF).
Risk engine
ATR-based stop (ATR × 2 by default, editable).
Bar time stop (15-min → Daily: Have to select the bar value ).
No pyramiding beyond the built-in “double-tap”.
All positions sized as % of equity via Strategy Properties.
Visual aids
Yellow triangle marks the earnings bar.
Diagnostics table (top-right) shows last Actual, Estimate, and Surprise %.
Status-line tool-tips on every input.
Default inputs
Setting Value
Positive surprise ≥ 0 %
Negative surprise ≤ –5 %
ATR stop × 2
ATR length 50
Hold horizon 350 ( 1h timeframe chart bars)
Back-test properties
Initial capital 10 000
Order size 5 % of equity
Pyramiding 1 (internal re-entry only)
Commission 0.03 %
Slippage 5 ticks
Fills Bar magnifier ✔ · On bar close ✔ · Standard OHLC ✔
How to use
Add the script to any earnings-driven stock (AAPL, MSFT, TSLA…).
Turn on Time Risk Management if you want stricter risk management
Back-test different ATR multipliers to fit the stock’s volatility.
Sync commission & slippage with your broker before forward-testing.
Important notes
Works on every timeframe from 15 min to 1 D. Sweet spot around 30min/1h
All request.earnings() & request.security() calls use lookahead_off—zero repaint.
The “double-tap” re-entry occurs once per winning cycle to avoid drift-chasing loops.
Historical stats ≠ future performance. Size positions responsibly.
CirclesCircles - Support & Resistance Levels
Overview
This indicator plots horizontal support and resistance levels based on W.D. Gann's mathematical approach of dividing 360 degrees by 2 and by 3. These divisions create natural price magnetism points that have historically acted as significant support and resistance levels across all markets and timeframes.
How It Works
360÷2 Levels (Blue): 5.63, 11.25, 33.75, 56.25, 78.75, etc.
360÷3 Levels (Red): 7.5, 15, 30, 37.5, 52.5, 60, 75, etc.
Both Levels (Yellow): 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180 - These are "doubly strong" as they appear in both calculations
Key Features
Auto-Scaling: Automatically adjusts for any price range (from $0.001 altcoins to $100K+ Bitcoin)
Manual Scaling: Choose from 0.001x to 1000x multipliers or set custom values
Full Customization: Colors, line widths, styles (solid/dashed/dotted)
Historical View: Option to show all levels regardless of current price
Clean Display: Adjustable label positioning and line extensions
Use Cases
Identify potential reversal zones before price reaches them
Set profit targets and stop losses at key mathematical levels
Confirm breakouts when price decisively moves through major levels
Works on all timeframes and all markets (stocks, crypto, forex, commodities)
Gann Theory
W.D. Gann believed that markets move in mathematical harmony based on geometric angles and time cycles. These 360-degree divisions represent natural balance points where price often finds support or resistance, making them valuable for both short-term trading and long-term analysis.
Perfect for traders who use:
Support/Resistance trading
Fibonacci levels
Pivot points
Mathematical/geometric analysis
Multi-timeframe analysis
Gann Support and Resistance LevelsThis indicator plots dynamic Gann Degree Levels as potential support and resistance zones around the current market price. You can fully customize the Gann degree step (e.g., 45°, 30°, 90°), the number of levels above and below the price, and the price movement per degree to fine-tune the levels to your strategy.
Key Features:
✅ Dynamic levels update automatically with the live price
✅ Adjustable degree intervals (Gann steps)
✅ User control over how many levels to display above and below
✅ Fully customizable label size, label color, and text color for mobile-friendly visibility
✅ Clean visual design for easy chart analysis
How to Use:
Gann levels can act as potential support and resistance zones.
Watch for price reactions at major degrees like 0°, 90°, 180°, and 270°.
Can be combined with other technical tools like price action, trendlines, or Gann fans for deeper analysis.
📌 This tool is perfect for traders using Gann theory, grid-based strategies, or those looking to enhance their visual trading setups with structured levels.
CandelaCharts - 1st Presented FVG 📝 Overview
The ICT 1st Presented Fair Value Gap refers to the first FVG that forms after the market opens at 9:30 AM New York local time. In a sideways market, it often acts as a catalyst for price movement in either direction, while in trending conditions, it tends to support and reinforce the prevailing trend.
This indicator automatically identifies the first Fair Value Gap (FVG) that forms after the New York session opens at 9:30 AM local time. Based on concepts taught by Inner Circle Trader (ICT), the 1st Presented FVG is a key institutional price imbalance that often sets the tone for the trading day.
📦 Features
Customize FVG session time (e.g. 09:30 – 10:00)
Show/hide session dividers
FVG visibility filter (e.g. Bullish / Bearish)
Advanced styling
Hide overlapping FVGs
Extend FVGs
Opening prices
⚙️ Settings
Show: Controls whether all, bullish only, or bearish only FVGs are displayed on the chart.
Session: Sets a specific time window (e.g. 09:30–10:00) to filter which FVGs are displayed.
Dividers: Toggles vertical session divider on the chart for visual separation.
Midline: Displays a midpoint (CE) line through the FVG; customizable color and thickness.
Border: Adds a border around each FVG zone.
Labels: Toggles label display for FVGs.
Hide Overlap: Hides overlapping FVGs to reduce visual clutter.
Extend: Extends each FVG forward in time.
Alerts: Enables alerts when price interacts with an FVG zone.
Opening Prices: Allows defining custom time-based levels (e.g. 00:00–00:01 and 18:00–18:01) with color and style options.
⚡️ Showcase
Simple
Labels
Bordered
Consequent Encroachment
Extended
Dividers
📒 Usage
How to Use the ICT 1st Presented Fair Value Gap in Trading
To apply the ICT 1st Presented Fair Value Gap (FVG), identify the first fair value gap of the day and extend it across the chart until 3:45 PM New York time.
You’ll often notice that some of the best trade setups form around this level. It tends to act as a key reference point for price action during the day—especially on trending days, where price frequently returns to this gap before continuing in its direction.
This level can also serve as an inverse fair value gap, offering opportunities in the opposite direction under the right conditions.
How to Disqualify the 1st Presented Fair Value Gap?
When the first fair value gap forms after 9:30 AM New York time, check the candles that came just before it.
If the candlestick that creates the FVG doesn’t break above or below the range of those previous candles, then it’s not a true inefficiency. In that case, it’s considered a disqualified 1st Presented Fair Value Gap—meaning it shouldn’t be used as a key reference level.
Refer to the example below to see what this looks like on the chart.
🚨 Alerts
This script provides alert options for all signals.
Bearish Signal
A bearish signal is triggered when the bearish 1st P.FVG is formed in interval 09:30 - 10:00.
Bullish Signal
A bullish signal is triggered when the bullish 1st P.FVG is formed in interval 09:30 - 10:00.
⚠️ Disclaimer
Trading involves significant risk, and many participants may incur losses. The content on this site is not intended as financial advice and should not be interpreted as such. Decisions to buy, sell, hold, or trade securities, commodities, or other financial instruments carry inherent risks and are best made with guidance from qualified financial professionals. Past performance is not indicative of future results.
BTC Dominance Zones (For Altseason)Overview
The "BTC Dominance Zones (For Altseason)" indicator is a visual tool designed to help traders navigate the different phases of the altcoin market cycle by tracking Bitcoin Dominance (BTC.D).
It provides clear, color-coded zones directly on the BTC.D chart, offering an intuitive roadmap for the progression of alt season.
Purpose & Problem Solved
Many traders often miss altcoin rotations or get caught at market tops due to emotional decision-making or a lack of a clear framework. This indicator aims to solve that problem by providing an objective, historically informed guide based on Bitcoin Dominance, helping users to prepare before the market makes its decisive moves. It distils complex market dynamics into easily digestible sections.
Key Features & Components
Color-Coded Horizontal Zones: The indicator draws fixed horizontal bands on the BTC.D chart, each representing a distinct phase of the altcoin market cycle.
Descriptive Labels: Each zone is clearly labeled with its strategic meaning (e.g., "Alts are dead," "Danger Zone") and the corresponding BTC.D percentage range, positioned to the right of the price action for clarity.
Consistent Aesthetics: All text within the labels is rendered in white for optimal visibility across the colored zones.
Symbol Restriction: The indicator includes an automatic check to ensure it only draws its visuals when applied specifically to the CRYPTOCAP:BTC.D chart. If applied to another chart, it displays a helpful message and remains invisible to prevent confusion.
Methodology & Interpretation
The indicator's methodology is based on the historical behavior of Bitcoin Dominance during various market cycles, particularly the 2021 bull run. Each zone provides a specific interpretation for altcoin strategy:
Grey Zone (BTC.D 60-70%+): "Alts Are Dead"
Interpretation: When Bitcoin Dominance is in this grey zone (typically above 60%), Bitcoin is king, and capital remains concentrated in BTC. This indicates that alt season is largely inactive or "dead". This phase is generally not conducive for aggressive altcoin trading.
Blue Zone (BTC.D 55-60%): "Alt Season Loading"
Interpretation: As BTC.D drops into this blue zone (below 60%), it signals that the market is "heating up" for altcoins. This is the time to start planning and executing your initial positions in high-conviction large-cap and strong narrative plays, as capital begins to look for more risk.
Green Zone (BTC.D 50-55%): "Alt Season Underway"
Interpretation: Entering this green zone (below 55%) signifies that "real momentum" is building, and alt season is genuinely "underway". Money is actively flowing from Ethereum into large and mid-cap altcoins. If you've positioned correctly, your portfolio should be showing strong gains in this phase.
Orange Zone (BTC.D 45-50%): "Alt Season Ending"
Interpretation: As BTC.D dips into this orange zone (below 50%), it suggests that altcoin dominance is reaching its peak, indicating the "ending" phase of alt season. While euphoria might be high, this is a critical warning zone to prepare for profit-taking, as it's a phase of "peak risk".
Red Zone (BTC.D Below 45%): "Danger Zone - Alts Overheated"
Interpretation: This red zone (below 45%) is the most critical "DANGER ZONE". It historically marks the point of maximum froth and risk, where altcoins are overheated. This is the decisive signal to aggressively take profits, de-risk, and exit positions to preserve your capital before a potential sharp correction. Historically, dominance has gone as low as 39-40% in this phase.
How to Use
Open TradingView and search for the BTC.D symbol to load the Bitcoin Dominance chart and view the indicator.
Double click the indicator to access settings.
Inputs/Settings
The indicator's zone boundaries are set to historically relevant levels for consistency with the Alt Season Blueprint strategy. However, the colors of each zone are fully customizable through the indicator's settings, allowing users to personalize the visual appearance to their preference. You can access these color options in the indicator's "Settings" menu once it's added to your chart.
Disclaimer
This indicator is provided for informational and educational purposes only. It is not financial advice. Trading cryptocurrencies involves substantial risk of loss and is not suitable for every investor. Past performance is not indicative of future results. Always conduct your own research and consult with a qualified financial professional before making any investment decisions.
About the Author
This indicator was developed by Nick from Lab of Crypto.
Release Notes
v1.0 (June 2025): Initial release featuring color-coded horizontal BTC.D zones with descriptive labels, based on Alt Season Blueprint strategy. Includes symbol restriction for correct chart application and consistent white text.
ORB Breakout Indicator - NQ1!The purpose of this indicator is to assist traders in rapidly identifying high-probability Opening Range Breakout (ORB) setups on the NQ1! 1-minute time frame (Nasdaq Futures)
Key Features:
Opening Range: Automatically plots the high and low of the 1st 15min of the (NYSE session) (09:30–09:45 EST)
Breakout Signals : Illustrates the first candle that breaks upward or downward and:
Green arrow for a bullish breakout
Red arrow for a bearish breakout
Clean Visuals: Dynamic lines show the high and low of the ORB window for easy reference.
(DON'T USE THIS ONLY FOR ENTRY SIGNALS, PAIR THIS WITH OTHER INFLUENCES TO GET HIGH PROBABILITY BREAKOUTS)
Yelober - Intraday ETF Dashboard# How to Read the Yelober Intraday ETF Dashboard
The Intraday ETF Dashboard provides a powerful at-a-glance view of sector performance and trading opportunities. Here's how to interpret and use the information:
## Basic Dashboard Reading
### Color-Coding System
- **Green values**: Positive performance or bullish signals
- **Red values**: Negative performance or bearish signals
- **Symbol colors**: Green = buy signal, Red = sell signal, Gray = neutral
### Example 1: Identifying Strong Sectors
If you see XLF (Financials) with:
- Day % showing +2.65% (green background)
- Symbol in green color
- RSI of 58 (not overbought)
**Interpretation**: Financial sector is showing strength and momentum without being overextended. Consider long positions in top financial stocks like JPM or BAC.
### Example 2: Spotting Weakness
If you see XLK (Technology) with:
- Day % showing -1.20% (red background)
- Week % showing -3.50% (red background)
- Symbol in red color
- RSI of 35 (approaching oversold)
**Interpretation**: Technology sector is showing weakness across multiple timeframes. Consider avoiding tech stocks or taking short positions in names like MSFT or AAPL, but be cautious as the low RSI suggests a bounce may be coming.
## Advanced Interpretations
### Example 3: Sector Rotation Detection
If you observe:
- XLE (Energy) showing +2.10% while XLK (Technology) showing -1.50%
- Both sectors' Week % values showing the opposite trend
**Interpretation**: This suggests money is rotating out of technology into energy stocks. This rotation pattern is actionable - consider reducing tech exposure and increasing energy positions (look at XOM, CVX in the Top Stocks column).
### Example 4: RSI Divergences
If you see XLU (Utilities) with:
- Day % showing +0.50% (small positive)
- RSI showing 72 (overbought, red background)
**Interpretation**: Despite positive performance, the high RSI suggests the sector is overextended. This divergence between price and indicator suggests caution - the rally in utilities may be running out of steam.
### Example 5: Relative Strength in Weak Markets
If SPY shows -1.20% but XLP (Consumer Staples) shows +0.30%:
**Interpretation**: Consumer staples are showing defensive strength during market weakness. This is typical risk-off behavior. Consider defensive positions in stocks like PG, KO, or PEP for protection.
## Practical Application Scenarios
### Day Trading Setup
1. **Morning Market Assessment**:
- Check which sectors are green pre-market
- Focus on sectors with Day % > 1% and RSI between 40-70
- Identify 2-3 stocks from the Top Stocks column of the strongest sector
2. **Midday Reversal Hunting**:
- Look for sectors with symbol color changing from red to green
- Confirm with RSI moving away from extremes
- Trade stocks from that sector showing similar pattern changes
### Swing Trading Application
1. **Trend Following**:
- Identify sectors with positive Day % and Week %
- Look for RSI values in uptrend but not overbought (45-65)
- Enter positions in top stocks from these sectors, using daily charts for confirmation
2. **Contrarian Setups**:
- Find sectors with deeply negative Day % but RSI < 30
- Look for divergence (price making new lows but RSI rising)
- Consider counter-trend positions in the stronger stocks within these oversold sectors
## Reading Special Conditions
### Example 6: Risk-Off Environment
If you observe:
- XLP (Consumer Staples) and XLU (Utilities) both green
- XLK (Technology) and XLY (Consumer Disc) both red
- SPY slightly negative
**Interpretation**: Classic risk-off rotation. Investors are moving to safety. Consider defensive positioning and reducing exposure to growth sectors.
### Example 7: Market Breadth Analysis
Count the number of sectors in green vs. red:
- If 7+ sectors are green: Strong bullish breadth, consider aggressive long positioning
- If 7+ sectors are red: Weak market breadth, consider defensive positioning or shorts
- If evenly split: Market is indecisive, focus on specific sector strength instead of broad market exposure
Remember that this dashboard is most effective when combined with broader market analysis and appropriate risk management strategies.
LRHA Trend Shift DetectorLRHA Trend Shift Detector (TSD)
The LRHA Trend Shift Detector is an advanced momentum exhaustion indicator that identifies potential trend reversals and changes by analyzing Linear Regression Heikin Ashi (LRHA) candle patterns. TSD focuses on detecting when strong directional moves begin to lose momentum.
🔬 Methodology
The indicator employs a three-stage detection process:
LRHA Calculation: Applies linear regression smoothing to Heikin Ashi candles, creating ultra-smooth trend-following candles that filter out market noise
Extended Move Detection: Identifies sustained directional moves by counting consecutive bullish or bearish LRHA candles
Momentum Exhaustion Analysis: Monitors for significant changes in candle size compared to recent averages
When an extended move shows clear signs of momentum exhaustion, the indicator signals a potential trend shift with red dots plotted above or below your candlesticks.
⚙️ Parameters
Core Settings
LRHA Length (11): Linear regression period for smoothing calculations. Lower values = more responsive, higher values = smoother trends.
Minimum Trend Bars (4): Consecutive candles required to establish an "extended move." Higher number detects longer term trend changes.
Exhaustion Bars (3): Number of consecutively smaller candles needed to signal exhaustion. Lower is more sensitive.
Size Reduction Threshold (40%): Percentage decrease in candle size to qualify as "exhaustion." Lower is more sensitive.
Trend Trading
Pullback Entries: Identify exhaustion in counter-trend moves for trend continuation
Exit Strategy: Recognize when main trend momentum is fading
Position Sizing: Reduce size when seeing exhaustion in your direction
🎛️ Optimization Tips
For More Signals (Aggressive)
- Decrease LRHA Length (7-9)
- Reduce Minimum Trend Bars (2-3)
- Lower Size Reduction Threshold (25-35%)
For Higher Quality (Conservative)
- Increase LRHA Length (13-18)
- Raise Minimum Trend Bars (5-6)
- Higher Size Reduction Threshold (45-55%)
⚠️ Important Notes⚠️
- **Not a Complete Strategy**: Use as confluence with other analysis methods
- **Market Context Matters**: Consider overall trend direction and key support/resistance levels
- **Risk Management Essential**: Always use proper position sizing and stop losses
- **Backtest First**: Optimize parameters for your specific trading style and instruments
TrendMaster Pro 2.3 with Alerts
Hello friends,
A member of the community approached me and asked me how to write an indicator that would achieve a particular set of goals involving comprehensive trend analysis, risk management, and session-based trading controls. Here is one example method of how to create such a system:
Core Strategy Components
Multi-Moving Average System - Uses configurable MA types (EMA, SMA, SMMA) with short-term (9) and long-term (21) periods for primary signal generation through crossovers
Higher Timeframe Trend Filter - Optional trend confirmation using a separate MA (default 50-period) to ensure trades align with broader market direction
Band Power Indicator - Dynamic high/low bands calculated using different MA types to identify price channels and volatility zones
Advanced Signal Filtering
Bollinger Bands Volatility Filter - Prevents trading during low-volatility ranging markets by requiring sufficient band width
RSI Momentum Filter - Uses customizable thresholds (55 for longs, 45 for shorts) to confirm momentum direction
MACD Trend Confirmation - Ensures MACD line position relative to signal line aligns with trade direction
Stochastic Oscillator - Adds momentum confirmation with overbought/oversold levels
ADX Strength Filter - Only allows trades when trend strength exceeds 25 threshold
Session-Based Trading Management
Four Trading Sessions - Asia (18:00-00:00), London (00:00-08:00), NY AM (08:00-13:00), NY PM (13:00-18:00)
Individual Session Limits - Separate maximum trade counts for each session (default 5 per session)
Automatic Session Closure - All positions close at specified market close time
Risk Management Features
Multiple Stop Loss Options - Percentage-based, MA cross, or band-based SL methods
Risk/Reward Ratio - Configurable TP levels based on SL distance (default 1:2)
Auto-Risk Calculation - Dynamic position sizing based on dollar risk limits ($150-$250 range)
Daily Limits - Stop trading after reaching specified TP or SL counts per day
Support & Resistance System
Multiple Pivot Types - Traditional, Fibonacci, Woodie, Classic, DM, and Camarilla calculations
Flexible Timeframes - Auto-adjusting or manual timeframe selection for S/R levels
Historical Levels - Configurable number of past S/R levels to display
Visual Customization - Individual color and display settings for each S/R level
Additional Features
Alert System - Customizable buy/sell alert messages with once-per-bar frequency
Visual Trade Management - Color-coded entry, SL, and TP levels with fill areas
Session Highlighting - Optional background colors for different trading sessions
Comprehensive Filtering - All signals must pass through multiple confirmation layers before execution
This approach demonstrates how to build a professional-grade trading system that combines multiple technical analysis methods with robust risk management and session-based controls, suitable for algorithmic trading across different market sessions.
Good luck and stay safe!
atr stop loss for double SMA v6Strategy Name
atr stop loss for double SMA v6
Credit: This v6 update is based on Daveatt’s “BEST ATR Stop Multiple Strategy.”
Core Logic
Entry: Go long when the 15-period SMA crosses above the 45-period SMA; go short on the inverse cross.
Stop-Loss: On entry, compute ATR(14)×2.0 and set a fixed stop at entry ± that amount. Stop remains static until hit.
Trend Tracking: Uses barssince() to ensure only one active long or short position; stop is only active while that trend persists.
Visualization
Plots fast/slow SMA lines in teal/orange.
On each entry bar, displays a label showing “ATR value” and “ATR×multiple” positioned at the 30-bar low (long) or high (short).
Draws an “×” at the stop-price level in green (long) or red (short) while the position is open.
Execution Settings
Initial Capital: $100 000, Size = 100 shares per trade.
Commission: 0.075% per trade.
Pyramiding: 1.
Calculations: Only on bar close (no intra-bar ticks).
Usage Notes
Static ATR stop adapts to volatility but does not trail.
Ideal for trending, liquid markets (stocks, futures, FX).
Adjust SMA lengths or ATR multiple for faster/slower signals.
X OROverview
Designed to plot hourly opening ranges (ORs) on an intraday chart. It primarily serves as a trading tool for assessing market direction and potential trading opportunities by analyzing price action relative to key OHLC (Open, High, Low, Close) levels within each hourly range.
The code provided is for each hour sessions from 2:00 AM to 3:00 PM for a complete session-based framework. In addition there is the RTH open range
Purpose
The core purpose of this indicator is to:
✅ Define each hourly range (based on the session’s opening bar) by recording the high and low of that range.
✅ Extend this range into the following bars for visual reference — serving as dynamic support and resistance zones.
✅ Monitor price action relative to each hourly OR, helping traders evaluate market direction and structure trades using concepts like:
Breakouts above/below the OR high/low.
Rejections or consolidations within the OR.
Continuation or reversal signals tied to each OR.
Key Features
The script marks the first bar of the session as the OR session start.
During this bar, it initializes:
Opening price
Session high
Session low
These levels form the initial range.
🔹 Dynamic Range Tracking
Throughout the one-minute OR session:
The highest and lowest prices are updated in real time, capturing intra-hour volatility.
A visual background box is drawn to highlight the OR range on the chart.
🔹 Range Extension
The script defines an extended session period after the initial OR (e.g., 2:00 AM-2:45 AM for the 2:00 AM session).
During this extension period:
The box persists on the chart, providing a contextual zone that traders can use as a dynamic support/resistance area.
🔹 Visual Representation
Transparent colored boxes highlight each session’s OR visually on the chart.
These boxes help traders easily identify whether price is trading:
Inside the OR
Breaking above the high (potential bullish continuation)
Breaking below the low (potential bearish continuation)
Application in Trading
🔍 Trading the Opening Range Breakout
Traders often use the OR high and low as breakout triggers. For example:
A price break above the OR high may signal bullish momentum.
A break below the OR low may signal bearish momentum.
⚖️ Support and Resistance
Even if breakouts fail, the OR can act as a pivot zone — offering areas for:
Stop placements
Target levels
Entry confirmations for fade trades or mean reversion strategies.
🕒 Session Awareness
By defining each hour’s OR individually (from 2:00 AM to 3:00 PM), traders can:
Analyze price behavior within each session.
Recognize when liquidity or volatility increases (e.g. around overlapping sessions like London open or New York open).
Summary
This Pine Script indicator provides a powerful framework for visualizing and trading hourly opening ranges. It enhances intraday analysis by:
Structuring price action within hourly boxes.
Highlighting key price levels relative to OHLC concepts.
Helping traders make more informed decisions by assessing price behavior around these critical ranges.
FVG Premium [no1x]█ OVERVIEW
This indicator provides a comprehensive toolkit for identifying, visualizing, and tracking Fair Value Gaps (FVGs) across three distinct timeframes (current chart, a user-defined Medium Timeframe - MTF, and a user-defined High Timeframe - HTF). It is designed to offer traders enhanced insight into FVG dynamics through detailed state monitoring (formation, partial fill, full mitigation, midline touch), extensive visual customization for FVG representation, and a rich alert system for timely notifications on FVG-related events.
█ CONCEPTS
This indicator is built upon the core concept of Fair Value Gaps (FVGs) and their significance in price action analysis, offering a multi-layered approach to their detection and interpretation across different timeframes.
Fair Value Gaps (FVGs)
A Fair Value Gap (FVG), also known as an imbalance, represents a range in price delivery where one side of the market (buying or selling) was more aggressive, leaving an inefficiency or an "imbalance" in the price action. This concept is prominently featured within Smart Money Concepts (SMC) and Inner Circle Trader (ICT) methodologies, where such gaps are often interpreted as footprints left by "smart money" due to rapid, forceful price movements. These methodologies suggest that price may later revisit these FVG zones to rebalance a prior inefficiency or to seek liquidity before continuing its path. These gaps are typically identified by a three-bar pattern:
Bullish FVG : This is a three-candle formation where the second candle shows a strong upward move. The FVG is the space created between the high of the first candle (bottom of FVG) and the low of the third candle (top of FVG). This indicates a strong upward impulsive move.
Bearish FVG : This is a three-candle formation where the second candle shows a strong downward move. The FVG is the space created between the low of the first candle (top of FVG) and the high of the third candle (bottom of FVG). This indicates a strong downward impulsive move.
FVGs are often watched by traders as potential areas where price might return to "rebalance" or find support/resistance.
Multi-Timeframe (MTF) Analysis
The indicator extends FVG detection beyond the current chart's timeframe (Low Timeframe - LTF) to two higher user-defined timeframes: Medium Timeframe (MTF) and High Timeframe (HTF). This allows traders to:
Identify FVGs that might be significant on a broader market structure.
Observe how FVGs from different timeframes align or interact.
Gain a more comprehensive perspective on potential support and resistance zones.
FVG State and Lifecycle Management
The indicator actively tracks the lifecycle of each detected FVG:
Formation : The initial identification of an FVG.
Partial Fill (Entry) : When price enters but does not completely pass through the FVG. The indicator updates the "current" top/bottom of the FVG to reflect the filled portion.
Midline (Equilibrium) Touch : When price touches the 50% level of the FVG.
Full Mitigation : When price completely trades through the FVG, effectively "filling" or "rebalancing" the gap. The indicator records the mitigation time.
This state tracking is crucial for understanding how price interacts with these zones.
FVG Classification (Large FVG)
FVGs can be optionally classified as "Large FVGs" (LV) if their size (top to bottom range) exceeds a user-defined multiple of the Average True Range (ATR) for that FVG's timeframe. This helps distinguish FVGs that are significantly larger relative to recent volatility.
Visual Customization and Information Delivery
A key concept is providing extensive control over how FVGs are displayed. This control is achieved through a centralized set of visual parameters within the indicator, allowing users to configure numerous aspects (colors, line styles, visibility of boxes, midlines, mitigation lines, labels, etc.) for each timeframe. Additionally, an on-chart information panel summarizes the nearest unmitigated bullish and bearish FVG levels for each active timeframe, providing a quick glance at key price points.
█ FEATURES
This indicator offers a rich set of features designed to provide a highly customizable and comprehensive Fair Value Gap (FVG) analysis experience. Users can tailor the FVG detection, visual representation, and alerting mechanisms across three distinct timeframes: the current chart (Low Timeframe - LTF), a user-defined Medium Timeframe (MTF), and a user-defined High Timeframe (HTF).
Multi-Timeframe FVG Detection and Display
The core strength of this indicator lies in its ability to identify and display FVGs from not only the current chart's timeframe (LTF) but also from two higher, user-selectable timeframes (MTF and HTF).
Timeframe Selection: Users can specify the exact MTF (e.g., "60", "240") and HTF (e.g., "D", "W") through dedicated inputs in the "MTF (Medium Timeframe)" and "HTF (High Timeframe)" settings groups. The visibility of FVGs from these higher timeframes can be toggled independently using the "Show MTF FVGs" and "Show HTF FVGs" checkboxes.
Consistent Detection Logic: The FVG detection logic, based on the classic three-bar imbalance pattern detailed in the 'Concepts' section, is applied consistently across all selected timeframes (LTF, MTF, HTF)
Timeframe-Specific Visuals: Each timeframe's FVGs (LTF, MTF, HTF) can be customized with unique colors for bullish/bearish states and their mitigated counterparts. This allows for easy visual differentiation of FVGs originating from different market perspectives.
Comprehensive FVG Visualization Options
The indicator provides extensive control over how FVGs are visually represented on the chart for each timeframe (LTF, MTF, HTF).
FVG Boxes:
Visibility: Main FVG boxes can be shown or hidden per timeframe using the "Show FVG Boxes" (for LTF), "Show Boxes" (for MTF/HTF) inputs.
Color Customization: Colors for bullish, bearish, active, and mitigated FVG boxes (including Large FVGs, if classified) are fully customizable for each timeframe.
Box Extension & Length: FVG boxes can either be extended to the right indefinitely ("Extend Boxes Right") or set to a fixed length in bars ("Short Box Length" or "Box Length" equivalent inputs).
Box Labels: Optional labels can display the FVG's timeframe and fill percentage on the box. These labels are configurable for all timeframes (LTF, MTF, and HTF). Please note: If FVGs are positioned very close to each other on the chart, their respective labels may overlap. This can potentially lead to visual clutter, and it is a known behavior in the current version of the indicator.
Box Borders: Visibility, width, style (solid, dashed, dotted), and color of FVG box borders are customizable per timeframe.
Midlines (Equilibrium/EQ):
Visibility: The 50% level (midline or EQ) of FVGs can be shown or hidden for each timeframe.
Style Customization: Width, style, and color of the midline are customizable per timeframe. The indicator tracks if this midline has been touched by price.
Mitigation Lines:
Visibility: Mitigation lines (representing the FVG's opening level that needs to be breached for full mitigation) can be shown or hidden for each timeframe. If shown, these lines are always extended to the right.
Style Customization: Width, style, and color of the mitigation line are customizable per timeframe.
Mitigation Line Labels: Optional price labels can be displayed on mitigation lines, with a customizable horizontal bar offset for positioning. For optimal label placement, the following horizontal bar offsets are recommended: 4 for LTF, 8 for MTF, and 12 for HTF.
Persistence After Mitigation: Users can choose to keep mitigation lines visible even after an FVG is fully mitigated, with a distinct color for such lines. Importantly, this option is only effective if the general setting 'Hide Fully Mitigated FVGs' is disabled, as otherwise, the entire FVG and its lines will be removed upon mitigation.
FVG State Management and Behavior
The indicator tracks and visually responds to changes in FVG states.
Hide Fully Mitigated FVGs: This option, typically found in the indicator's general settings, allows users to automatically remove all visual elements of an FVG from the chart once price has fully mitigated it. This helps maintain chart clarity by focusing on active FVGs.
Partial Fill Visualization: When price enters an FVG, the indicator offers a dynamic visual representation: the portion of the FVG that has been filled is shown as a "mitigated box" (typically with a distinct color), while the original FVG box shrinks to clearly highlight the remaining, unfilled portion. This two-part display provides an immediate visual cue about how much of the FVG's imbalance has been addressed and what potential remains within the gap.
Visual Filtering by ATR Proximity: To help users focus on the most relevant price action, FVGs can be dynamically hidden if they are located further from the current price than a user-defined multiple of the Average True Range (ATR). This behavior is controlled by the "Filter Band Width (ATR Multiple)" input; setting this to zero disables the filter entirely, ensuring all detected FVGs remain visible regardless of their proximity to price.
Alternative Usage Example: Mitigation Lines as Key Support/Resistance Levels
For traders preferring a minimalist chart focused on key Fair Value Gap (FVG) levels, the indicator's visualization settings can be customized to display only FVG mitigation lines. This approach leverages these lines as potential support and resistance zones, reflecting areas where price might revisit to address imbalances.
To configure this view:
Disable FVG Boxes: Turn off "Show FVG Boxes" (for LTF) or "Show Boxes" (for MTF/HTF) for the desired timeframes.
Hide Midlines: Disable the visibility of the 50% FVG Midlines (Equilibrium/EQ).
Ensure Mitigation Lines are Visible: Keep "Mitigation Lines" enabled.
Retain All Mitigation Lines:
Disable the "Hide Fully Mitigated FVGs" option in the general settings.
Enable the feature to "keep mitigation lines visible even after an FVG is fully mitigated". This ensures lines from all FVGs (active or fully mitigated) remain on the chart, which is only effective if "Hide Fully Mitigated FVGs" is disabled.
This setup offers:
A Decluttered Chart: Focuses solely on the FVG opening levels.
Precise S/R Zones: Treats mitigation lines as specific points for potential price reactions.
Historical Level Analysis: Includes lines from past, fully mitigated FVGs for a comprehensive view of significant price levels.
For enhanced usability with this focused view, consider these optional additions:
The on-chart Information Panel can be activated to display a quick summary of the nearest unmitigated FVG levels.
Mitigation Line Labels can also be activated for clear price level identification. A customizable horizontal bar offset is available for positioning these labels; for example, offsets of 4 for LTF, 8 for MTF, and 12 for HTF can be effective.
FVG Classification (Large FVG)
This feature allows for distinguishing FVGs based on their size relative to market volatility.
Enable Classification: Users can enable "Classify FVG (Large FVG)" to identify FVGs that are significantly larger than average.
ATR-Based Threshold: An FVG is classified as "Large" if its height (price range) is greater than or equal to the Average True Range (ATR) of its timeframe multiplied by a user-defined "Large FVG Threshold (ATR Multiple)". The ATR period for this calculation is also configurable.
Dedicated Colors: Large FVGs (both bullish/bearish and active/mitigated) can be assigned unique colors, making them easily distinguishable on the chart.
Panel Icon: Large FVGs are marked with a special icon in the Info Panel.
Information Panel
An on-chart panel provides a quick summary of the nearest unmitigated FVG levels.
Visibility and Position: The panel can be shown/hidden and positioned in any of the nine standard locations on the chart (e.g., Top Right, Middle Center).
Content: It displays the price levels of the nearest unmitigated bullish and bearish FVGs for LTF, MTF (if active), and HTF (if active). It also indicates if these nearest FVGs are Large FVGs (if classification is enabled) using a selectable icon.
Styling: Text size, border color, header background/text colors, default text color, and "N/A" cell background color are customizable.
Highlighting: Background and text colors for the cells displaying the overall nearest bullish and bearish FVG levels (across all active timeframes) can be customized to draw attention to the most proximate FVG.
Comprehensive Alert System
The indicator offers a granular alert system for various FVG-related events, configurable for each timeframe (LTF, MTF, HTF) independently. Users can enable alerts for:
New FVG Formation: Separate alerts for new bullish and new bearish FVG formations.
FVG Entry/Partial Fill: Separate alerts for price entering a bullish FVG or a bearish FVG.
FVG Full Mitigation: Separate alerts for full mitigation of bullish and bearish FVGs.
FVG Midline (EQ) Touch: Separate alerts for price touching the midline of a bullish or bearish FVG.
Alert messages are detailed, providing information such as the timeframe, FVG type (bull/bear, Large FVG), relevant price levels, and timestamps.
█ NOTES
This section provides additional information regarding the indicator's usage, performance considerations, and potential interactions with the TradingView platform. Understanding these points can help users optimize their experience and troubleshoot effectively.
Performance and Resource Management
Maximum FVGs to Track : The "Max FVGs to Track" input (defaulting to 25) limits the number of FVG objects processed for each category (e.g., LTF Bullish, MTF Bearish). Increasing this value significantly can impact performance due to more objects being iterated over and potentially drawn, especially when multiple timeframes are active.
Drawing Object Limits : To manage performance, this script sets its own internal limits on the number of drawing objects it displays. While it allows for up to approximately 500 lines (max_lines_count=500) and 500 labels (max_labels_count=500), the number of FVG boxes is deliberately restricted to a maximum of 150 (max_boxes_count=150). This specific limit for boxes is a key performance consideration: displaying too many boxes can significantly slow down the indicator, and a very high number is often not essential for analysis. Enabling all visual elements for many FVGs across all three timeframes can cause the indicator to reach these internal limits, especially the stricter box limit
Optimization Strategies : To help you manage performance, reduce visual clutter, and avoid exceeding drawing limits when using this indicator, I recommend the following strategies:
Maintain or Lower FVG Tracking Count: The "Max FVGs to Track" input defaults to 25. I find this value generally sufficient for effective analysis and balanced performance. You can keep this default or consider reducing it further if you experience performance issues or prefer a less dense FVG display.
Utilize Proximity Filtering: I suggest activating the "Filter Band Width (ATR Multiple)" option (found under "General Settings") to display only those FVGs closer to the current price. From my experience, a value of 5 for the ATR multiple often provides a good starting point for balanced performance, but you should feel free to adjust this based on market volatility and your specific trading needs.
Hide Fully Mitigated FVGs: I strongly recommend enabling the "Hide Fully Mitigated FVGs" option. This setting automatically removes all visual elements of an FVG from the chart once it has been fully mitigated by price. Doing so significantly reduces the number of active drawing objects, lessens computational load, and helps maintain chart clarity by focusing only on active, relevant FVGs.
Disable FVG Display for Unused Timeframes: If you are not actively monitoring certain higher timeframes (MTF or HTF) for FVG analysis, I advise disabling their display by unchecking "Show MTF FVGs" or "Show HTF FVGs" respectively. This can provide a significant performance boost.
Simplify Visual Elements: For active FVGs, consider hiding less critical visual elements if they are not essential for your specific analysis. This could include box labels, borders, or even entire FVG boxes if, for example, only the mitigation lines are of interest for a particular timeframe.
Settings Changes and Platform Limits : This indicator is comprehensive and involves numerous calculations and drawings. When multiple settings are changed rapidly in quick succession, it is possible, on occasion, for TradingView to issue a "Runtime error: modify_study_limit_exceeding" or similar. This can cause the indicator to temporarily stop updating or display errors.
Recommended Approach : When adjusting settings, it is advisable to wait a brief moment (a few seconds) after each significant change. This allows the indicator to reprocess and update on the chart before another change is made
Error Recovery : Should such a runtime error occur, making a minor, different adjustment in the settings (e.g., toggling a checkbox off and then on again) and waiting briefly will typically allow the indicator to recover and resume correct operation. This behavior is related to platform limitations when handling complex scripts with many inputs and drawing objects.
Multi-Timeframe (MTF/HTF) Data and Behavior
HTF FVG Confirmation is Essential: : For an FVG from a higher timeframe (MTF or HTF) to be identified and displayed on your current chart (LTF), the three-bar pattern forming the FVG on that higher timeframe must consist of fully closed bars. The indicator does not draw speculative FVGs based on incomplete/forming bars from higher timeframes.
Data Retrieval and LTF Processing: The indicator may use techniques like lookahead = barmerge.lookahead_on for timely data retrieval from higher timeframes. However, the actual detection of an FVG occurs after all its constituent bars on the HTF have closed.
Appearance Timing on LTF (1 LTF Candle Delay): As a natural consequence of this, an FVG that is confirmed on an HTF (i.e., its third bar closes) will typically become visible on your LTF chart one LTF bar after its confirmation on the HTF.
Example: Assume an FVG forms on a 30-minute chart at 15:30 (i.e., with the close of the 30-minute bar that covers the 15:00-15:30 period). If you are monitoring this FVG on a 15-minute chart, the indicator will detect this newly formed 30-minute FVG while processing the data for the 15-minute bar that starts at 15:30 and closes at 15:45. Therefore, the 30-minute FVG will become visible on your 15-minute chart at the earliest by 15:45 (i.e., with the close of that relevant 15-minute LTF candle). This means the HTF FVG is reflected on the LTF chart with a delay equivalent to one LTF candle.
FVG Detection and Display Logic
Fair Value Gaps (FVGs) on the current chart timeframe (LTF) are detected based on barstate.isconfirmed. This means the three-bar pattern must be complete with closed bars before an FVG is identified. This confirmation method prevents FVGs from being prematurely identified on the forming bar.
Alerts
Alert Setup : To receive alerts from this indicator, you must first ensure you have enabled the specific alert conditions you are interested in within the indicator's own settings (see 'Comprehensive Alert System' under the 'FEATURES' section). Once configured, open TradingView's 'Create Alert' dialog. In the 'Condition' tab, select this indicator's name, and crucially, choose the 'Any alert() function call' option from the dropdown list. This setup allows the indicator to trigger alerts based on the precise event conditions you have activated in its settings
Alert Frequency : Alerts are designed to trigger once per bar close (alert.freq_once_per_bar_close) for the specific event.
User Interface (UI) Tips
Settings Group Icons: In the indicator settings menu, timeframe-specific groups are marked with star icons for easier navigation: 🌟 for LTF (Current Chart Timeframe), 🌟🌟 for MTF (Medium Timeframe), and 🌟🌟🌟 for HTF (High Timeframe).
Dependent Inputs: Some input settings are dependent on others being enabled. These dependencies are visually indicated in the settings menu using symbols like "↳" (dependent setting on the next line), "⟷" (mutually exclusive inline options), or "➜" (directly dependent inline option).
Settings Layout Overview: The indicator settings are organized into logical groups for ease of use. Key global display controls – such as toggles for MTF FVGs, HTF FVGs (along with their respective timeframe selectors), and the Information Panel – are conveniently located at the very top within the '⚙️ General Settings' group. This placement allows for quick access to frequently adjusted settings. Other sections provide detailed customization options for each timeframe (LTF, MTF, HTF), specific FVG components, and alert configurations.
█ FOR Pine Script® CODERS
This section provides a high-level overview of the FVG Premium indicator's internal architecture, data flow, and the interaction between its various library components. It is intended for Pine Script™ programmers who wish to understand the indicator's design, potentially extend its functionality, or learn from its structure.
System Architecture and Modular Design
The indicator is architected moduarly, leveraging several custom libraries to separate concerns and enhance code organization and reusability. Each library has a distinct responsibility:
FvgTypes: Serves as the foundational data definition layer. It defines core User-Defined Types (UDTs) like fvgObject (for storing all attributes of an FVG) and drawSettings (for visual configurations), along with enumerations like tfType.
CommonUtils: Provides utility functions for common tasks like mapping user string inputs (e.g., "Dashed" for line style) to their corresponding Pine Script™ constants (e.g., line.style_dashed) and formatting timeframe strings for display.
FvgCalculations: Contains the core logic for FVG detection (both LTF and MTF/HTF via requestMultiTFBarData), FVG classification (Large FVGs based on ATR), and checking FVG interactions with price (mitigation, partial fill).
FvgObject: Implements an object-oriented approach by attaching methods to the fvgObject UDT. These methods manage the entire visual lifecycle of an FVG on the chart, including drawing, updating based on state changes (e.g., mitigation), and deleting drawing objects. It's responsible for applying the visual configurations defined in drawSettings.
FvgPanel: Manages the creation and dynamic updates of the on-chart information panel, which displays key FVG levels.
The main indicator script acts as the orchestrator, initializing these libraries, managing user inputs, processing data flow between libraries, and handling the main event loop (bar updates) for FVG state management and alerts.
Core Data Flow and FVG Lifecycle Management
The general data flow and FVG lifecycle can be summarized as follows:
Input Processing: User inputs from the "Settings" dialog are read by the main indicator script. Visual style inputs (colors, line styles, etc.) are consolidated into a types.drawSettings object (defined in FvgTypes). Other inputs (timeframes, filter settings, alert toggles) control the behavior of different modules. CommonUtils assists in mapping some string inputs to Pine constants.
FVG Detection:
For the current chart timeframe (LTF), FvgCalculations.detectFvg() identifies potential FVGs based on bar patterns.
For MTF/HTF, the main indicator script calls FvgCalculations.requestMultiTFBarData() to fetch necessary bar data from higher timeframes, then FvgCalculations.detectMultiTFFvg() identifies FVGs.
Newly detected FVGs are instantiated as types.fvgObject and stored in arrays within the main script. These objects also undergo classification (e.g., Large FVG) by FvgCalculations.
State Update & Interaction: On each bar, the main indicator script iterates through active FVG objects to manage their state based on price interaction:
Initially, the main script calls FvgCalculations.fvgInteractionCheck() to efficiently determine if the current bar's price might be interacting with a given FVG.
If a potential interaction is flagged, the main script then invokes methods directly on the fvgObject instance (e.g., updateMitigation(), updatePartialFill(), checkMidlineTouch(), which are part of FvgObject).
These fvgObject methods are responsible for the detailed condition checking and the actual modification of the FVG's state. For instance, the updateMitigation() and updatePartialFill() methods internally utilize specific helper functions from FvgCalculations (like checkMitigation() and checkPartialMitigation()) to confirm the precise nature of the interaction before updating the fvgObject’s state fields (such as isMitigated, currentTop, currentBottom, or isMidlineTouched).
Visual Rendering:
The FvgObject.updateDrawings() method is called for each fvgObject. This method is central to drawing management; it creates, updates, or deletes chart drawings (boxes, lines, labels) based on the FVG's current state, its prev_* (previous bar state) fields for optimization, and the visual settings passed via the drawSettings object.
Information Panel Update: The main indicator script determines the nearest FVG levels, populates a panelData object (defined in FvgPanelLib), and calls FvgPanel.updatePanel() to refresh the on-chart display.
Alert Generation: Based on the updated FVG states and user-enabled alert settings, the main indicator script constructs and triggers alerts using Pine Script's alert() function."
Key Design Considerations
UDT-Centric Design: The fvgObject UDT is pivotal, acting as a stateful container for all information related to a single FVG. Most operations revolve around creating, updating, or querying these objects.
State Management: To optimize drawing updates and manage FVG lifecycles, fvgObject instances store their previous bar's state (e.g., prevIsVisible, prevCurrentTop). The FvgObject.updateDrawings() method uses this to determine if a redraw is necessary, minimizing redundant drawing calls.
Settings Object: A drawSettings object is populated once (or when inputs change) and passed to drawing functions. This avoids repeatedly reading numerous input() values on every bar or within loops, improving performance.
Dynamic Arrays for FVG Storage: Arrays are used to store collections of fvgObject instances, allowing for dynamic management (adding new FVGs, iterating for updates).