ICT 1st Pres. FVGs & RTH Open Gaps version 13/01/2026
ICT 1st Pres. FVGs & RTH Open Gaps
By Timo Haapsaari (@hqtimppa) based on ICT (Inner Circle Trader / Michael J.
Huddleston) teachings.
This indicator identifies and displays:
• First Presented Fair Value Gaps (FVGs) after Midnight Open (00:00 NY)
• First Presented FVGs after NY Open (09:30 NY)
• Regular Trading Hours (RTH) Opening Gaps (16:14 close vs 09:30 open)
All detections are based on 1-minute data for accuracy across any timeframe.
Special thanks to cephxs (https:x.com/dyk_ceph) for inspiration on settings
structure and visual appearance.
Happy trading! 📈
รูปแบบชาร์ต
eBacktesting - Learning: PD ArrayseBacktesting - Learning: PD Arrays helps you practice one of the most important “Smart Money” ideas: price tends to react from specific delivery areas (PD Arrays) like Imbalances (FVGs), Order Blocks, and Breakers.
Use this to train your eyes to:
- Spot where an imbalance/OB is created (often after displacement)
- Wait for price to return into that area
- Study the reaction (hold, reject, or slice through) and what that implies next
These indicators are built to pair perfectly with the eBacktesting extension, where traders can practice these concepts step-by-step. Backtesting concepts visually like this is one of the fastest ways to learn, build confidence, and improve trading performance.
Educational use only. Not financial advice.
Daily Upside LinePlots an intraday upside line.
Uses proprietary breakout score logic to show when intraday setups are ripe for continuation.
Finds the average of these lines to plot the upside line
Heikin Ashi Swing Setup DailyTFHeikin Ashi Swing Setup is a trend-following swing trading indicator designed for Daily timeframe traders.
This indicator combines:
Heikin Ashi candle strength
EMA-based trend confirmation
RSI momentum filter
ATR-based price expansion logic
The goal is to capture strong directional swing moves while avoiding sideways and noisy markets.
BUY Signal Logic
Strong bullish Heikin Ashi candle (no lower wick)
Price above EMA 50
EMA slope upward (trend confirmation)
RSI between 50–70
Price sufficiently away from EMA (ATR filter)
SELL Signal Logic
Strong bearish Heikin Ashi candle (no upper wick)
Price below EMA 50
EMA slope downward
RSI between 30–50
ATR-based price expansion confirmed
Recommended Usage
Timeframe: Daily
Markets: Stocks & Indices
Holding Period: 5–20 trading days
Best used with:
Weekly trend analysis
Supply & Demand zones
Previous swing highs/lows
MES ORB Fakeout Alert - No RSIVWAP Integration: In 2025/2026 trading, price action often "reverses" to the VWAP. If the MES breaks the ORB High but stays below the VWAP, it’s a high-probability fakeout. This script catches that.
Relative Volume (Effort vs. Result): Instead of RSI, it looks at the Volume SMA. If the market tries to break a level with less volume than the 20-candle average, the "effort" isn't there, and the "result" (the breakout) is likely a lie.
Automatic Session Handling: It specifically looks at America/New_York time to ensure the 9:30 AM open is captured correctly regardless of where you are located.
QUARTERS THEORY XAUUSDThe “Quarter Theory XAUUSD” indicator on TradingView is designed to automatically plot horizontal price levels in $25 increments on your chart, providing traders with a clear visual representation of key psychological and technical price points. These levels are particularly useful for instruments like XAU/USD, where price often reacts to round numbers, forming support and resistance zones that can be leveraged for both scalping and swing trading strategies. By showing all $25 increments as horizontal white lines, the indicator ensures that traders can quickly identify potential entry and exit points, without the need for manual drawing or repeated calculations.
The indicator works by calculating the nearest $25 multiple relative to the current market price and then drawing horizontal lines across the chart for all increments within a defined range. This range can be customized to suit the instrument being traded; for example, for gold (XAU/USD), a typical range might extend from 0 to 5000, covering all practical price levels that could be relevant in both high and low market conditions. By using Pine Script’s persistent variables, the indicator efficiently creates these lines only once at the start of the chart, avoiding unnecessary resource usage and preventing TradingView from slowing down, which can happen if lines are redrawn every bar.
From a trading perspective, these levels serve multiple purposes. For scalpers, the $25 increments act as micro support and resistance points, helping to determine short-term price reactions and potential breakout zones. Scalpers can use these levels to enter positions with tight stop-loss orders just beyond a level and take profits near the next $25 increment, which aligns with common price behavior patterns in highly liquid instruments. For swing traders, the same levels provide broader context, allowing them to identify areas where price might pause or reverse over several days. Swing traders can use these levels to align trades with the prevailing trend, particularly when combined with other indicators such as moving averages or trendlines.
Another key advantage of the Quarterly Levels indicator is its simplicity and visual clarity. By plotting lines in a uniform white color and extending them to the right, the chart remains clean and easy to read, allowing traders to focus on price action and market dynamics rather than cluttered technical drawings. This visual consistency also helps in backtesting and strategy development, as traders can quickly see how price interacts with each level over time. Additionally, the use of round-number increments leverages the psychological tendencies of market participants, as many traders place stop orders or entry points near these levels, making them natural zones of interest.
Overall, the Quarterly Levels indicator combines efficiency, clarity, and practical trading utility into a single tool. It streamlines chart analysis, highlights meaningful price zones, and supports both scalping and swing trading approaches, making it an essential addition to a trader’s toolkit. By understanding how to integrate these levels into trading strategies, traders can make more informed decisions, manage risk effectively, and identify high-probability trade setups across various market conditions.
EMA and DEMA CrossesCombined crosses for EMA and Double EMA
Gives Buy and Sell signals basis all 3 conditions
Supply & Demand Sniper369Indicator Philosophy: The Convergence of Structure and Liquidity
The Supply & Demand Sniper369 is not just another signal generator; it is a professional-grade execution framework built on the principles of Institutional Order Flow and Liquidity Engineering. While standard indicators often lag or provide signals in "no-man's land," this script is designed to identify high-probability reversal points by combining macro-structural zones with micro-execution triggers.
What Makes This Script Original?
Most scripts treat Supply/Demand and Entry Triggers as separate entities. The originality of the Sniper369 lies in its Strict Hierarchical Logic. It employs a "Two-Factor Authentication" system for trades:
1. Structural Validation: Identifying where "Smart Money" has historically left unfilled orders.
2. Liquidity Sweep Confirmation: Using the Enigma 369 logic to detect a specific manipulation pattern (a stop-run or "sweep") that occurs exclusively within those structural zones.
By using Pine Script v6 Object-Oriented Programming, the script manages dynamic arrays of boxes and lines that auto-delete upon mitigation, ensuring your chart remains a clean, actionable workspace.
Underlying Concepts & Calculations
1. Macro: Structural Supply & Demand
The indicator calculates zones based on Pivot Strength and Volatility Scaling.
Calculations: It scans for major structural pivots ( and ). Once a pivot is confirmed, it doesn't just draw a line; it calculates a zone width based on the Average True Range (ATR).
Why it works: Institutions do not enter at a single price; they enter in "pockets" of liquidity. Using ATR-based zones ensures that on high-volatility pairs (like Gold or GBP/JPY), your zones are appropriately wide, while on lower-volatility pairs, they remain tight and precise.
2. Micro: The Enigma 369 Sniper Logic
Once price enters a zone, the "Sniper" logic activates. This is based on the Institutional Wick-Liquidity concept.
The Sweep: The script looks for a candle that breaks the high/low of the previous candle (trapping "breakout" traders) but fails to hold that level.
The Mean Threshold (50% Wick): A core calculation of the Enigma logic is the midpoint of the rejection wick.
Calculation: for Sells.
Logic: Institutions often re-test the 50% level of a long wick to fill the remaining orders before the real move starts.
How to Use the Indicator
Step 1: Wait for Structural Alignment
Observe the Teal (Demand) and Red (Supply) boxes. These are your "Points of Interest" (POI). Do not take any trades until the price is physically touching or inside these boxes.
Step 2: Monitor for the Sniper Trigger
When the price is inside a zone, look for the appearance of the Solid and Dotted lines.
The Solid Line: This is the extreme of the manipulation candle. It serves as your structural invalidation level (Stop Loss).
The Dotted Line: This is the 50% Wick level. It is your "Sniper Entry" target.
Step 3: Execution & Alerts
The script features a built-in alert system that notifies you the moment a Sniper activation occurs inside a zone.
Conservative Entry: Place a Limit Order at the Dotted Line.
Aggressive Entry: Market enter on the close of the Sniper candle if the price has already reacted strongly.
Exit: Target the opposing Supply or Demand zone for a high Risk-to-Reward ratio.
Technical Summary for Traders
Trend Detection: Uses an EMA-50 Filter to ensure Snipers only fire in the direction of the dominant trend (optional).
Scalping/Day Trading: Optimized for the 1m, 5m, and 15m timeframes, but functions perfectly on 4H/Daily for swing traders.
Dynamic Cleanup: The script automatically deletes lines if the price closes past them, signaling that the "Liquidity Grab" was actually a breakout, thus preventing you from entering a losing trade.
Breaker Blocks Finder | Gold | ProjectSyndicateProjectSyndicate Breaker Blocks Finder
📊 Overview
The ProjectSyndicate Breaker Blocks Finder (PS BB Finder) is a professional-grade Pine Script indicator designed to detect and display Bullish and Bearish Breaker Blocks based on Smart Money Concepts (SMC) methodology. This indicator is specifically optimized for XAUUSD (Gold) trading but works reliably across all symbols and timeframes.
Key Features
✅ Non-Repainting: Breaker blocks never change position after formation
✅ Multi-Timeframe Support: Optimized for M5, M10, M15, M20, M30, and H1
✅ Highly Customizable: 10+ user-configurable settings
✅ Visual Clarity: Color-coded boxes and labels for easy identification
✅ Performance Optimized: Handles 1000+ candles without lag
✅ Cross-Symbol Compatible: Works on Forex, Crypto, Stocks, Indices, and Commodities
✅ Displacement Detection: Uses ATR-based displacement to filter false signals
🎯 What are Breaker Blocks?
A Breaker Block is a failed order block that becomes a new support or resistance zone after being invalidated by price. It represents a market structure shift where institutional traders (smart money) have flipped their position.
Bullish Breaker Block
A Bullish Breaker Block forms when:
1 A bearish order block (resistance zone) exists
2 Price breaks ABOVE this zone with strong displacement
3 The former resistance zone now becomes SUPPORT
4 Price may retest this zone before continuing higher
Visual: Green box with "BB ▲" label
Bearish Breaker Block
A Bearish Breaker Block forms when:
5 A bullish order block (support zone) exists
6 Price breaks BELOW this zone with strong displacement
7 The former support zone now becomes RESISTANCE
8 Price may retest this zone before continuing lower
Visual: Red box with "BB ▼" label
⚙️ Default Settings
Setting Default Range Description
Lookback Period 1000 100-5000 Number of historical candles to analyze
Max Breaker Blocks 5 1-50 Maximum number of breaker blocks to display
Swing Detection Length 10 2-20 Bars on each side to confirm swing high/low. Higher = more significant swings
Use Displacement Filter true true/false Enable to filter breaker blocks by displacement size
Displacement Multiplier 2.0 0.5-5.0 Minimum move size as multiple of ATR. Higher = stricter detection
Invalidation Method Close Close/Wick Close = Conservative (candle must close beyond zone)Wick = Aggressive (wick touch is enough)
📈 Recommended Timeframes & Settings
This indicator is optimized for the following timeframes. Use these settings as a starting point.
Lower Timeframes (M5, M10, M15, M20)
These settings are designed to capture faster price movements and are the default settings for the indicator.
Setting Recommended Value
Lookback Period 1000
Max Breaker Blocks 5
Swing Detection Length 10
Use Displacement Filter true
Displacement Multiplier 2.0
Invalidation Method Close
Higher Timeframes (M30, H1)
For these timeframes, a less strict displacement filter is recommended to capture more significant, but less frequent, breaker blocks.
Setting Recommended Value
Lookback Period 1000
Max Breaker Blocks 5
Swing Detection Length 10
Use Displacement Filter true
Displacement Multiplier 1.0
Invalidation Method Close
🎓 How to Use
Step 1: Identify Breaker Blocks
Once the indicator is loaded, breaker blocks will automatically appear on your chart:
• Green boxes = Bullish breaker blocks (former resistance, now support)
• Red boxes = Bearish breaker blocks (former support, now resistance)
Step 2: Wait for Retest
The most reliable trading opportunities occur when price retests the breaker block zone:
• For bullish breaker blocks, wait for price to come back down to the green zone
• For bearish breaker blocks, wait for price to come back up to the red zone
Step 3: Look for Confluence
Combine breaker blocks with other SMC concepts for higher probability setups:
• Fair Value Gaps (FVG) within the breaker block zone
• Liquidity grabs before the retest
• Break of Structure (BoS) or Change of Character (ChoCH) confirmation
Step 4: Enter the Trade
Bullish Setup:
• Entry: At or near the bullish breaker block zone
• Stop Loss: Below the breaker block
• Take Profit: Previous swing high or higher
Bearish Setup:
• Entry: At or near the bearish breaker block zone
• Stop Loss: Above the breaker block
• Take Profit: Previous swing low or lower
🛡️ Non-Repainting Guarantee
This indicator is 100% non-repainting, meaning:
✅ Breaker blocks never change position after formation
✅ Historical breaker blocks remain in the exact same location indefinitely
✅ Backtesting results are reliable and consistent
🐛 Troubleshooting
Issue: No Breaker Blocks Appearing
Solutions:
• Ensure "Use Displacement Filter" is enabled.
• On M30/H1, try lowering the "Displacement Multiplier" to 1.0.
• Scroll back in history; blocks may not be present on the most recent bars.
Issue: Too Many Breaker Blocks
Solutions:
• Increase "Displacement Multiplier" to 2.5 or 3.0.
• Increase "Swing Detection Length" to 12-15.
• Decrease "Max Breaker Blocks" to 3-4.
Long + Short + Signal//@version=6
indicator("Long + Short + Signal", overlay=true)
Buy = input.bool(false, "Buy ")
Sell = input.bool(false, "Sell ")
// ================= INPUTS =================
// ---- LONG ----
periodK_Long = 50
smoothK_Long = 3
periodD_Long = 3
// ---- SHORT ----
periodK_Short = 14
smoothK_Short = 3
periodD_Short = 3
// ================= FUNCTIONS =================
f_stoch_long(tf) =>
k = request.security(syminfo.tickerid, tf,
ta.sma(ta.stoch(close, high, low, periodK_Long), smoothK_Long))
d = request.security(syminfo.tickerid, tf,
ta.sma(k, periodD_Long))
k > 50 and d > 50 ? color.green : k < 40 and d < 40 ? color.red : color.gray
f_stoch_short(tf) =>
k = request.security(syminfo.tickerid, tf,
ta.sma(ta.stoch(close, high, low, periodK_Short), smoothK_Short))
d = request.security(syminfo.tickerid, tf,
ta.sma(k, periodD_Short))
k > 60 and d > 60 ? color.green : k < 40 and d < 40 ? color.red : color.gray
// ================= TABLE =================
// 2 rows × 8 columns
var table t = table.new(position.top_right, 8, 2, border_width=3)
if barstate.islast
// ===== HEADINGS (BIGGER) =====
table.cell(
t, 0, 0, "Short",
bgcolor=color.black,
text_color=color.white,
text_size=size.large,
text_halign=text.align_center
)
table.cell(
t, 0, 1, "Long",
bgcolor=color.black,
text_color=color.white,
text_size=size.large,
text_halign=text.align_center
)
// ===== LONG ROW =====
table.cell(t, 1, 0, "1m", bgcolor=f_stoch_short("1"), text_color=color.white, text_size=size.normal)
table.cell(t, 2, 0, "5m", bgcolor=f_stoch_short("5"), text_color=color.white, text_size=size.normal)
table.cell(t, 3, 0, "15m", bgcolor=f_stoch_short("15"), text_color=color.white, text_size=size.normal)
table.cell(t, 4, 0, "60m", bgcolor=f_stoch_short("60"), text_color=color.white, text_size=size.normal)
table.cell(t, 5, 0, "D", bgcolor=f_stoch_short("D"), text_color=color.white, text_size=size.normal)
table.cell(t, 6, 0, "W", bgcolor=f_stoch_short("W"), text_color=color.white, text_size=size.normal)
table.cell(t, 7, 0, "M", bgcolor=f_stoch_short("M"), text_color=color.white, text_size=size.normal)
// ===== SHORT ROW =====
table.cell(t, 1, 1, "1m", bgcolor=f_stoch_long("1"), text_color=color.white, text_size=size.normal)
table.cell(t, 2, 1, "5m", bgcolor=f_stoch_long("5"), text_color=color.white, text_size=size.normal)
table.cell(t, 3, 1, "15m", bgcolor=f_stoch_long("15"), text_color=color.white, text_size=size.normal)
table.cell(t, 4, 1, "60m", bgcolor=f_stoch_long("60"), text_color=color.white, text_size=size.normal)
table.cell(t, 5, 1, "D", bgcolor=f_stoch_long("D"), text_color=color.white, text_size=size.normal)
table.cell(t, 6, 1, "W", bgcolor=f_stoch_long("W"), text_color=color.white, text_size=size.normal)
table.cell(t, 7, 1, "M", bgcolor=f_stoch_long("M"), text_color=color.white, text_size=size.normal)
lengthK = 14
lengthD = 3
lengthEMA = 3
emaEma(source, length) => ta.ema(ta.ema(source, length), length)
highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))
// ===== BUY / SELL CONDITIONS =====
buyEntry = ta.crossover(smi, 50)
buyExit = ta.crossunder(smi, 50)
sellEntry = ta.crossunder(smi, -40)
sellExit = ta.crossover(smi, -40)
// ===== PLOTS =====
plotshape( Buy and buyEntry, title="BUY", style=shape.triangleup,location=location.belowbar, color=color.green,size=size.small, text="BUY")
plotshape( Buy and buyExit, title="EXIT BUY", style=shape.triangledown, location=location.abovebar, color=color.lime,size=size.tiny, text="EXIT")
plotshape( Sell and sellEntry,title="SELL", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="SELL")
plotshape( Sell and sellExit, title="EXIT SELL", style=shape.triangleup, location=location.belowbar, color=color.orange, size=size.tiny, text="EXIT")
shortest = ta.ema(close, 9)
shortEMA = ta.ema(close, 21)
longer = ta.ema(close, 50)
longest = ta.ema(close, 200)
plot(shortest, color=color.red, title="EMA 9")
plot(shortEMA, color=color.orange, title="EMA 21")
plot(longer, color=color.aqua, title="EMA 50")
plot(longest, color=color.blue, title="EMA 200")
Crypto Camp Day Key LevelsDaily key levels Daily key levels Daily key levels Daily key levels Daily key levels Daily key levels
Range Marker by Vinay SinghThis indicator marks back and forth range on given timeframes. good indicator to test range breakout.
Multi-Filter Profit MaximizerDescription : This script is a trend-following system designed to maximize profits by capturing extended trends while filtering out market noise. It integrates four core components:
SuperTrend (Customized): Acts as a dynamic trailing stop and trend baseline.
ADX Filter: Ensures signals only occur during active volatility to avoid choppy markets.
CVD (Cumulative Volume Delta): Validates the price movement with actual volume flow.
Stochastic Momentum: Pinpoints high-probability entry entries within the trend.
--------------------------------------------------------------------------------------------------------------
How to Use This Indicator (Profit Maximization Manual)
This indicator is designed to prioritize **“win rate” and “price range”** over the number of entries.
Market Environment Recognition (Background & Lines):
Green background & green line: An uptrend. Focus solely on long positions.
Red background & red line: A downtrend. Focus solely on short positions.
EMA 200 (Orange Line): The iron rule is to go long if the candlestick is above this line, and short if it's below.
Entry (BUY / SELL Signals):
Enter when the BUY or SELL label appears.
This is the moment when the “trend direction,” “momentum via ADX,” “fund flow via CVD,” and “timing via Stochastic” all align perfectly.
Profit Maximization Exit (Most Critical):
Stop Loss (SL): Exit immediately if the candle body breaks below the green (or red) SuperTrend line right after entry. No hesitation.
Take Profit (TP):
Method A (Trend Riding): Hold until the SuperTrend line changes color. If a major trend emerges, this can yield tremendous profits.
Method B (Conservative Approach): Take half the profit at roughly a 1:2 risk-reward ratio, then hold the remainder aligned with the SuperTrend.
Why This is “The Best”
Many indicators get whipped back and forth in range-bound markets, spitting out profits. It's coded to generate absolutely no signals when ADX < 20 (weak market). Furthermore, using SuperTrend as the stop-loss line forces a structure that comes closest to the Holy Grail of trading: **“Small losses, unlimited profits as long as the trend continues.”**
eBacktesting - Learning: InducementeBacktesting - Learning: Inducement
Inducement is the “trap” move that often shows up right before a real push. Price briefly takes an internal swing level (a small high/low), pulls traders in the wrong direction, and then snaps back — usually right before continuing toward the larger objective.
How to study it:
- First, get a simple trend bias (are we making higher highs/higher lows, or lower highs/lower lows?).
- Watch the most recent internal swing level inside that trend.
- An inducement often looks like a quick sweep through that internal level, followed by a close back on the “correct” side.
These indicators are built to pair perfectly with the eBacktesting extension, where traders can practice these concepts step-by-step. Backtesting concepts visually like this is one of the fastest ways to learn, build confidence, and improve trading performance.
Educational use only. Not financial advice.
Gold Scalp//@version=5
indicator("scalp strategy (Boxed)", overlay=true)
// Ensure 5-minute chart
isFiveMin = timeframe.isminutes and timeframe.multiplier == 5
// New York time (EST/EDT auto)
nyHour = hour(time, "America/New_York")
nyMinute = minute(time, "America/New_York")
// Target times (exact candle close)
triggerTime =
(nyHour == 11 and nyMinute == 0) or
(nyHour == 19 and nyMinute == 0) or
(nyHour == 14 and nyMinute == 0) or
(nyHour == 6 and nyMinute == 0) or
(nyHour == 8 and nyMinute == 0) or
(nyHour == 21 and nyMinute == 0) or
(nyHour == 00 and nyMinute == 0)
// Final trigger
trigger = isFiveMin and triggerTime and barstate.isconfirmed
// Draw box + label
if trigger
box.new(bar_index - -5, high, bar_index, low, bgcolor=color.new(#0e06eb, 76), border_color=color.rgb(4, 252, 136))
label.new(bar_index, high, "", style=label.style_label_down, color=color.rgb(11, 48, 3), textcolor=color.white, size=size.small)
// Alert
alertcondition(trigger, title="LETS GO", message="5-minute candle CLOSED at key EST time")
EST Time Table//@version=6
indicator("EST Time Table", overlay = true)
// ─── Table Settings ─────────────────────────────────────────────
var table timeTable = table.new(
position.top_right,
1, 12,
border_width = 1
)
// ─── Header ────────────────────────────────────────────────────
if barstate.isfirst
table.cell(timeTable, 0, 0, "Time (EST)",
bgcolor = color.black,
text_color = color.white,
text_size = size.normal)
// ─── Time Rows ─────────────────────────────────────────────────
times = array.from(
"2:00 AM",
"6:00 AM",
"8:00 AM",
"8:30 AM",
"9:00 AM",
"9:30 AM",
"10:00 AM",
"11:00 AM",
"14:00 PM",
"19:00 PM",
"21:00 PM"
)
// ─── Fill Table ────────────────────────────────────────────────
for i = 0 to array.size(times) - 1
bg = i % 2 == 0 ? color.rgb(220, 220, 220) : color.white
table.cell(
timeTable,
0,
i + 1,
array.get(times, i),
bgcolor = bg,
text_color = color.black,
text_size = size.normal
)
MNQ BandsMNQ Bands – Execution Clean MNQ Bands – Execution Clean MNQ Bands – Execution Clean MNQ Bands – Execution Clean MNQ Bands – Execution Clean MNQ Bands – Execution Clean
Crypto Swing 5% Volatility Scanner (v6)The script is a work in progress and will look for crypto that has a min +-5% Volatility for day trading.
EMA 9/24/50/100/200 with Labels on chart lines This Pine Script® v6 indicator plots five distinct Exponential Moving Averages (EMAs) onto a single trading chart to help identify trend direction and momentum. By calculating the 9, 24, 50, 100, and 200-period averages, the script allows you to visualize short-term price action alongside long-term support and resistance levels. It uses a color-coded hierarchy and varying line thicknesses to make the different timeframes easy to distinguish at a glance.
with labels on the lines
EMA 9/24/50/100/200 v6This Pine Script® v6 indicator plots five distinct Exponential Moving Averages (EMAs) onto a single trading chart to help identify trend direction and momentum. By calculating the 9, 24, 50, 100, and 200-period averages, the script allows you to visualize short-term price action alongside long-term support and resistance levels. It uses a color-coded hierarchy and varying line thicknesses to make the different timeframes easy to distinguish at a glance.
MACD Trend Count ScoreThis indicator is designed to confirm potential future trends in an asset’s price by analyzing the MACD histogram in the past. It works by counting positive and negative MACD bars within the selected chart timeframe to calculate a Strength Index, which reflects the past trend direction and intensity.
Summarizing the predominance of positive or negative bars across higher timeframes in the past such as daily, weekly, bi-weekly, and quarterly, it provides insight to anticipate how the trend may evolve in upcoming periods, according to the predetermined range scales Strong Bullish, Moderate Bullish, Neutral, Moderate Bearish and Strong Bearish.
Additionally, a dedicated module linked to the strength index is optimized for short-term charts (2-minute, 5-minute and 15-minute timeframes), making it a valuable tool for day trading strategies.
Enhanced MTF Bias Table by Odegos# Enhanced MTF Bias Table - Publication Description
## Short Description (for TradingView listing)
Multi-timeframe bias indicator combining Market Structure Shifts (MSS) with EMA analysis. Displays real-time bias across 7 timeframes (5m-Weekly) with distance metrics and volatility measurements. Perfect for identifying trend alignment and potential reversal points.
---
## Full Description
### Overview
The **Enhanced MTF Bias Table** is a comprehensive multi-timeframe analysis tool designed to help traders quickly identify market bias across different time horizons. By combining Market Structure Shift (MSS) detection with Exponential Moving Average (EMA) analysis, this indicator provides a clear, color-coded view of market sentiment from short-term (5-minute) to long-term (weekly) timeframes.
### What This Indicator Does
**Core Functionality:**
- **Multi-Timeframe Analysis**: Simultaneously monitors 7 different timeframes (5m, 15m, 30m, 1h, 4h, Daily, Weekly)
- **Market Structure Detection**: Identifies when price breaks previous swing highs/lows, indicating potential trend changes
- **EMA-Based Bias**: Combines market structure with price distance from a customizable EMA to determine bias strength
- **Visual Market Structure Shifts**: Draws horizontal lines on the chart when significant market structure shifts occur
- **Real-Time Metrics**: Displays distance from EMA and ATR (volatility) for each timeframe
### How It Works
**Bias Calculation Logic:**
The indicator uses a sophisticated two-factor approach to determine market bias:
1. **Market Structure Analysis**:
- Tracks swing highs and lows using pivot points
- Identifies when price breaks above previous highs (bullish structure) or below previous lows (bearish structure)
- Uses a customizable lookback period to filter noise
2. **EMA Distance Analysis**:
- Measures how far price is from the selected EMA
- Strong bias requires BOTH structure break AND significant distance from EMA
- Neutral zone prevents false signals when price consolidates near the EMA
**Bias Categories:**
- **Strong ↑** (Dark Green): Bullish market structure + price above EMA threshold
- **Weak ↑** (Light Green): Bullish structure OR price moderately above EMA
- **Neutral** (Orange): Price within neutral zone around EMA
- **Weak ↓** (Light Red): Bearish structure OR price moderately below EMA
- **Strong ↓** (Dark Red): Bearish market structure + price below EMA threshold
### Key Features
**📊 Customizable Table Display:**
- Two table styles: Compact (minimal) or Full (detailed with labels)
- 9 position options to fit any chart layout
- Toggle distance from EMA and ATR displays
- Shows current symbol, timeframe, and date
**📈 Flexible Indicator Settings:**
- Adjustable EMA length (default: 50)
- Customizable MSS lookback period (5-50 bars)
- Breakout threshold adjustment for different instruments
- Neutral zone configuration to reduce noise
**📍 Visual Market Structure Shifts:**
- Draws horizontal lines at significant structure breaks
- Customizable colors for bullish/bearish MSS
- Optional text labels ("MSS") for easy identification
- Adjustable line width and style (solid, dashed, dotted)
**📉 EMA Overlay:**
- Optional EMA display on chart
- Full customization: color, width, line style
- Helps visualize the reference point for bias calculations
**🎨 Full Color Customization:**
- Independent color controls for all bias levels
- Customize header and table appearance
- Matches any chart theme or preference
### Best Use Cases
**1. Trend Alignment:**
Use the MTF table to identify when multiple timeframes align in the same direction. When 5-6 or more timeframes show the same bias, it indicates strong directional momentum.
**2. Divergence Detection:**
Look for disagreements between timeframes. For example, if higher timeframes (Daily/Weekly) show bearish bias while lower timeframes (5m/15m) show bullish bias, it may indicate a counter-trend bounce or potential reversal setup.
**3. Entry Timing:**
Use higher timeframe bias for direction and lower timeframe bias for entry timing. Enter trades when your trading timeframe aligns with higher timeframe bias.
**4. Risk Management:**
When lower timeframes show opposite bias to higher timeframes, it suggests trading against the major trend—requiring tighter stops and smaller positions.
**5. Market Structure Confirmation:**
The MSS lines help identify key levels where market structure changed, useful for:
- Stop loss placement (below/above MSS levels)
- Target setting (previous structure points)
- Breakout confirmation
### Recommended Settings by Instrument
**Index Futures:**
- **ES (S&P 500)**: Breakout Threshold: 0.15%, Neutral Zone: 0.15%
- **NQ (Nasdaq)**: Breakout Threshold: 0.25%, Neutral Zone: 0.20%
- **YM (Dow Jones)**: Breakout Threshold: 0.20%, Neutral Zone: 0.20%
**Forex Pairs:**
- **Major Pairs**: Breakout Threshold: 0.10%, Neutral Zone: 0.10%
- **Volatile Pairs**: Breakout Threshold: 0.20%, Neutral Zone: 0.15%
**Cryptocurrencies:**
- Breakout Threshold: 0.30-0.50%, Neutral Zone: 0.25-0.40%
- Higher volatility requires larger thresholds
### Understanding the Metrics
**Distance from EMA (%):**
- Positive values = Price above EMA (bullish territory)
- Negative values = Price below EMA (bearish territory)
- Larger absolute values = Stronger deviation from mean
- Useful for identifying overextended moves
**ATR (%):**
- Measures current volatility as percentage of price
- Higher values = More volatile conditions
- Helps adjust position sizing and stop distances
- Compare across timeframes to see where volatility concentrates
### Tips for Optimal Use
1. **Start with higher timeframes**: Check Daily and Weekly bias first to understand the bigger picture
2. **Use the 50 EMA default**: It's widely used and provides reliable support/resistance
3. **Adjust MSS lookback for your style**: Lower values (5-7) for day trading, higher values (15-25) for swing trading
4. **Watch for neutral zones**: Orange/neutral readings often precede significant moves
5. **Combine with price action**: Use MSS lines as reference points for entries and exits
6. **Don't ignore weak signals**: "Weak" bias often precedes strong moves as structure builds
### What Makes This Different
Unlike simple moving average indicators, this script:
- Combines TWO confirmation factors (structure + distance) for more reliable signals
- Provides context across multiple timeframes simultaneously
- Visually marks important market structure changes on your chart
- Offers both compact and detailed display modes
- Includes volatility measurement to gauge market conditions
### Technical Notes
- Uses `request.security()` to fetch data from multiple timeframes
- Implements `pivothigh()` and `pivotlow()` for swing detection
- All calculations use `lookahead=barmerge.lookahead_off` to prevent repainting
- MSS lines drawn in real-time as structure breaks occur
- Optimized for performance with minimal script resources
### Disclaimer
This indicator is a tool for analysis and does not provide trading signals or financial advice. Always:
- Use proper risk management
- Combine with other forms of analysis
- Test thoroughly in a demo environment
- Understand that past performance doesn't guarantee future results
- Consider market conditions and fundamental factors
---
## Tags (for TradingView)
multi-timeframe, market-structure, bias, trend, EMA, momentum, support-resistance, price-action, volatility, ATR, swing-trading, day-trading
## Category
Trend Analysis / Multi-Timeframe Analysis
---
## Quick Start Guide
**For Day Traders:**
1. Add indicator to your chart
2. Focus on 5m, 15m, 30m, and 1h timeframes
3. Look for alignment across these timeframes
4. Use MSS lines as entry/exit reference points
**For Swing Traders:**
1. Add indicator to your chart
2. Focus on 4h, Daily, and Weekly timeframes
3. Wait for 2-3 timeframe alignment
4. Use lower timeframes only for entry timing
**For Position Traders:**
1. Add indicator to your chart
2. Focus on Daily and Weekly timeframes
3. Ignore short-term noise
4. Enter when both show same strong bias






















