Volume-Gated Trend Ribbon [QuantAlgo]🟢 Overview
The Volume-Gated Trend Ribbon employs a selective price-updating mechanism that filters market noise through volume validation, creating a trend-following system that responds exclusively to significant price movements. The indicator gates price updates to moving average calculations based on volume threshold crossovers, ensuring that only bars with significant participation influence the trend direction. By interpolating between fast and slow moving averages to create a multi-layered visual ribbon, the indicator provides traders and investors with an adaptive trend identification framework that distinguishes between volume-backed directional shifts and low-conviction price fluctuations across multiple timeframes and asset classes.
🟢 How It Works
The indicator first establishes a dynamic baseline by calculating the simple moving average of volume over a configurable lookback period, then applies a user-defined multiplier to determine the significance threshold:
avgVol = ta.sma(volume, volPeriod)
highVol = volume >= avgVol * volMult
The gated price mechanism employs conditional updating where the close price is only captured and stored when volume exceeds the threshold. During low-volume periods, the indicator maintains the last qualified price level rather than tracking every minor fluctuation:
var float gatedClose = close
if highVol
gatedClose := close
Dual moving averages are calculated using the gated price input, with the indicator supporting various MA types. The fast and slow periods create the outer boundaries of the trend ribbon:
fastMA = volMA(gatedClose, close, fastPeriod)
slowMA = volMA(gatedClose, close, slowPeriod)
Ribbon interpolation creates intermediate layers by blending the fast and slow moving averages using weighted combinations, establishing a gradient effect that visually represents trend strength and momentum distribution:
midFastMA = fastMA * 0.67 + slowMA * 0.33
midSlowMA = fastMA * 0.33 + slowMA * 0.67
Trend state determination compares the fast MA against the slow MA, establishing bullish regimes when the faster average trades above the slower average and bearish regimes during the inverse relationship. Signal generation triggers on state transitions, producing alerts when the directional bias shifts:
bullish = fastMA > slowMA
longSignal = trendState == 1 and trendState != 1
shortSignal = trendState == -1 and trendState != -1
The visualization architecture constructs a three-tiered opacity gradient where the ribbon's core (between mid-slow and slow MAs) displays the highest opacity, the inner layer (between mid-fast and mid-slow) shows medium opacity, and the outer layer (between fast and mid-fast) presents the lightest fill, creating depth perception that emphasizes the trend center while acknowledging edge uncertainty.
🟢 How to Use This Indicator
▶ Long and Short Signals: The indicator generates long/buy signals when the trend state transitions to bullish (fast MA crosses above slow MA) and short/sell signals when transitioning to bearish (fast MA crosses below slow MA). Because these crossovers only reflect volume-validated price movements, they represent significant level of participation rather than random noise, providing higher-conviction entry signals that filter out false breakouts occurring on thin volume.
▶ Ribbon Width Dynamics: The spacing between the fast and slow moving averages creates the ribbon width, which serves as a visual proxy for trend strength and volatility. Expanding ribbons indicate accelerating directional movement with increasing separation between short-term and long-term momentum, suggesting robust trend development. Conversely, contracting ribbons signal momentum deceleration, potential trend exhaustion, or impending consolidation as the fast MA converges toward the slow MA.
▶ Preconfigured Presets: Three optimized parameter sets accommodate different trading styles and market conditions. Default provides balanced trend identification suitable for swing trading on daily timeframes with moderate volume filtering and responsiveness. Fast Response delivers aggressive signal generation optimized for intraday scalping on 1-15 minute charts, using lower volume thresholds and shorter moving average periods to capture rapid momentum shifts. Smooth Trend offers conservative trend confirmation ideal for position trading on 4-hour to weekly charts, employing stricter volume requirements and extended periods to filter noise and identify only the most robust directional moves.
▶ Built-in Alerts: Three alert conditions enable automated monitoring: Bullish Trend Signal triggers when the fast MA crosses above the slow MA confirming uptrend initiation, Bearish Trend Signal activates when the fast MA crosses below the slow MA confirming downtrend initiation, and Trend Change alerts on any directional transition regardless of direction. These notifications allow you to respond to volume-validated regime shifts without continuous chart monitoring.
▶ Color Customization: Six visual themes (Classic, Aqua, Cosmic, Ember, Neon, plus Custom) accommodate different chart backgrounds and display preferences, ensuring optimal contrast and visual clarity across trading environments. The adjustable fill opacity control (0-100%) allows fine-tuning of ribbon prominence, with lower opacity values create subtle background context while higher values produce bold trend emphasis. Optional bar coloring extends the trend indication directly to the price bars, providing immediate directional reference without requiring visual cross-reference to the ribbon itself.
트렌드 어낼리시스
Trend Break Targets [MarkitTick]Trend Break Targets
Trend Break Targets is a technical analysis tool designed to assist traders in identifying trendline breakouts and projecting potential price targets based on market geometry. Unlike fully automated indicators that guess trendlines, this tool provides you with precise control by allowing you to manually Pivot Point the trendline to specific points in time, while automating the complex math of target projection and structure mapping.
Theoretical Basis & Concepts
This indicator is grounded in classic technical analysis principles found in foundational trading literature. It automates the following methodology:
Drawing a trend line between two key points to represent dynamic support or resistance.
Identifying a breakout when the price closes above or below this line, potentially signaling a change in trend.
Calculating a price target by measuring the vertical distance between the breakout line and the last high/low (pivot), then projecting that same distance in the direction of the breakout.
This concept is based on methods and "Measured Move" theories explained in classic books such as "Technical Analysis of Stock Trends" by Edwards & Magee, "Technical Analysis of the Financial Markets" by John Murphy, and in Thomas Bulkowski's Price Pattern Studies.
How It Works
Pivot Pointed Trendline Construction The script draws a trendline between two user-defined points in time (Start Date and End Date). It calculates the slope between these points and extends the line infinitely to the right, allowing you to define the exact structure (e.g., a resistance trendline on a wedge).
Breakout Detection The script monitors the "Price Source" (High, Low, or Close) relative to the extended trendline.
A Bullish Breakout (BC) occurs when the Close crosses above a bearish trendline.
A Bearish Breakout (BC) occurs when the Close crosses below a bullish trendline.
Dynamic Target Projection (The Math) Upon a confirmed breakout, the script automatically calculates three distinct targets by identifying the most significant "Swing Point" (Pivot) prior to the breakout.
Distance (D): The vertical distance between the Trendline and the Pivot Price at the specific bar where the pivot occurred.
Target 1 (T1): The Breakout Price +/- (Distance × 1.0). This represents a classic 1:1 measured move.
Target 2 (T2): The Breakout Price +/- (Distance × 1.618). Based on the Golden Ratio extension.
Target 3 (T3): The Breakout Price +/- (Distance × 2.618).
Market Structure (CHOCH) The script includes an optional Change of Character (CHOCH) module. This runs independently of the trendline logic, identifying local Swing Highs and Swing Lows based on the "Swing Detection Length." It plots dashed lines and labels to visualize immediate shifts in market structure.
How to Use This Tool
This is an interactive tool that requires user input to define the setup.
Identify a Setup: Locate a clear trend, wedge, or flag pattern on your chart.
Set Pivot Points: Go to the Indicator Settings. Input the exact Start Date and End Date corresponding to the two main touches of your trendline.
Monitor for Breakout: The script will extend the line. Wait for a "BC" label to appear.
Trade Management: Once "BC" prints, the T1, T2, and T3 lines will instantly render. These can be used as potential take-profit zones or areas to tighten stop-losses.
Settings & Configuration
Indicator Settings
Start/End Date: The timestamp Pivot Points for your trendline.
Price Source: Determines what price (High or Low) Pivot Points the line and triggers the breakout.
Pivot Left/Right: Adjusts the sensitivity for finding the "Pivot Before Break" used for target calculations.
Extend Target Line: How far forward the target lines are drawn.
Visual Style
Colors: Fully customizable colors for the Trendline, Breakout Labels, and each Target level (T1, T2, T3).
Gold Bullish Reversal
This analysis dissects a confirmed bullish reversal on Gold using a custom Trend Break system. The setup identifies a transition from a bearish corrective phase to bullish momentum, validated by a structural break and a geometric target projection.
Trend Identification (The Pivot Points) The descending white trendline serves as the primary dynamic resistance, defining the bearish correction.
Pivot Points: The line is drawn connecting two significant swing highs, marked by Label 1 and Label 2.
Logic: These points represent the "lower highs" characteristic of the previous downtrend. As long as price remained below this trajectory, the bearish bias was intact.
The Trigger: Breakout & Confirmation The transition occurs at the candle marked BC (Breakout Candle).
Breakout Criteria: The indicator logic dictates that a signal is only valid when the bar closes above the trendline. This filters out intraday wicks and ensures genuine buyer commitment.
CHOCH Confluence: Immediately following the breakout, a CHOCH (Change of Character) label appears. This signals a shift in market structure, indicating that the internal lower-high/lower-low sequence has been violated, adding probability to the reversal.
Target Projection: The Measured Move The vertical green lines (T1, T2) represent profit objectives derived from the depth of the prior move. The logic calculates the distance between the breakout line and the lowest pivot prior to the break.
T1 (Standard Target): This is a 1:1 projection of the pre-breakout volatility. We see price action initially stalling near this level, confirming it as a zone of interest.
T2 (Golden Ratio Extension): The second target is calculated as the initial distance multiplied by 1.618 (Fibonacci Golden Ratio). The chart shows the price rallying aggressively through T1 to tap the T2 zone, often considered an exhaustion or major take-profit level in harmonic extensions.
Conclusion Gold has successfully invalidated the 4-hour bearish trendline. The confluence of a confirmed close above resistance (BC) and a structural shift (CHOCH) provided a high-probability long setup. The price has now fulfilled the T2 (1.618) extension, suggesting traders should watch for consolidation or a reaction at this key Fibonacci resistance level.
Bearish Trendline Breakdown
The image displays a Bearish Trendline Breakdown on the Gold (XAUUSD) 4-hour chart. The indicator is actually functioning in "Low" mode here (connecting swing lows to form support), which triggers the bearish logic found in the code. Here is the step-by-step breakdown:
The Setup: Pivot Points & Trendline
Visual: The Blue Labels "1" and "2" connected by a white diagonal line.
Code Logic: These are the user-defined start and end points.
Pivot Point 1 (startDate): The starting pivot of the trendline.
Pivot Point 2 (endDate): The ending pivot.
Trendline: The code draws a line between these two points and extends it to the right (extend.right). In this specific image, the line acts as a Support Trendline.
The Trigger: Break Candle (BC)
Visual: The Red Label "BC" appearing just below the white trendline.
Code Logic: This is the execution signal. The code detects a "Down Break" (dnBreak) because the Price Source was likely set to "Low" and the candle's Close was lower than the Trendline Price at that specific bar (close < currLinePrice). This confirms the support level has been breached.
The Projection: Targets (T1 & T2)
Visual: The Green Labels "T1" and "T2" with dotted horizontal lines projected downward.
Code Logic: These are profit targets based on a "Measured Move."
Pivot Calculation: The script looks back for a recent "Pivot High" (the peak before the crash) to calculate the volatility/distance (dist) between that peak and the trendline.
T1 (Conservative): The price is projected downward by 1x that distance (currLinePrice - dist).
T2 (Extended): The price is projected downward by 1.618x that distance (Golden Ratio extension).
Market Context: CHOCH
Visual: The small Red/Orange "CHOCH" labels appearing above the price action.
Code Logic: This is a secondary confirmation system running independently of the trendline. It detects a Change of Character (structural shift). The red labels indicate a "Bearish CHOCH," meaning the price broke below a significant prior swing low (last_swing_low). This supports the bearish bias of the trendline break.
Disclaimer This tool is for educational and technical analysis purposes only. Breakouts can fail (fake-outs), and past geometric patterns do not guarantee future price action. Always manage risk and use this tool in conjunction with other forms of analysis.
Sideways Zone Breakout 📘 Sideways Zone Breakout – Indicator Description
Sideways Zone Breakout is a visual market-structure indicator designed to identify low-volatility consolidation zones and highlight potential breakout opportunities when price exits these zones.
This indicator focuses on detecting periods where price trades within a tight range, often referred to as sideways or consolidation phases, and visually marks these zones directly on the chart for clarity.
🔍 Core Concept
Markets often spend time moving sideways before making a directional move.
This indicator aims to:
Detect price compression
Visually highlight the sideways zone
Signal when price breaks above or below the zone boundaries
Instead of predicting direction, it simply reacts to range expansion after consolidation.
⚙️ How the Indicator Works
1️⃣ Sideways Zone Detection
The indicator looks back over a user-defined number of candles
It calculates the highest high and lowest low within that window
If the total price range remains within a defined percentage of the current price, the market is considered sideways
This helps filter out trending and highly volatile conditions.
2️⃣ Visual Zone Representation
When a sideways condition is detected:
A clear price zone is drawn between the recent high and low
The zone is displayed using a soft gradient fill for better visibility
Outer borders are added to enhance zone clarity without cluttering the chart
This makes consolidation areas easy to spot at a glance.
3️⃣ Breakout Identification
Once a sideways zone is active:
A bullish breakout is marked when price closes above the upper boundary
A bearish breakout is marked when price closes below the lower boundary
Directional arrows and labels are plotted directly on the chart to indicate these events.
📊 Visual Elements Included
Sideways consolidation zones with gradient fill
Upper and lower zone boundaries
Buy and Sell arrows on breakout
Optional text labels for clear interpretation
All visuals are designed to remain lightweight and readable on any chart theme.
🔧 User Inputs
Sideways Lookback (candles): Controls how many past candles are used to define the range
Max Range % (tightness): Determines how tight the range must be to qualify as sideways
Adjusting these inputs allows users to adapt the indicator to different instruments and timeframes.
📈 Usage Guidelines
Can be applied to any market or timeframe
Works well as a context or confirmation tool
Best used alongside volume, trend, or risk management tools
Signals should be validated with proper trade planning
⚠️ Disclaimer
This indicator is provided as open-source for educational and analytical purposes only.
It does not generate trade recommendations or guarantee outcomes.
Market conditions vary, and users are responsible for their own trading decisions.
Auto Trend [theUltimator5]The Auto Trend indicator was designed to be a unique pattern detection indicator without the use of standard pivot point logic or high/low lines. It is a study in pattern detection by using iterative best-fit logic.
The indicator automatically identifies and draws trend channels by analyzing price action across configurable lookback periods. It finds optimal high and low trendlines that contain price movement, with a middle line marking the trend's center.
Key Features:
Automatic Pattern Detection - Intelligently searches for the best lookback period where price stays within the channel boundaries
Dual Pattern Modes - Choose between Short (20-66 bars) for quick patterns or Long (50-500 bars) for extended trends. Note - the long pattern is fully configurable and can be set anywhere up to 5000 bars.
Smart Caching - Optimized performance that only recalculates when necessary
Customizable Starting Point - Click directly on the chart to set where the trend channel begins
Flexible Lookback Range - Set minimum and maximum lookback periods to match your trading style
Visual Debugging - Optional label displays the active lookback period and violation count
How It Works:
The indicator divides the lookback period into thirds, finds the highest and lowest closes in the first and last thirds, then draws trendlines connecting these points. It can automatically search through different lookback periods to find the one with the fewest price violations (closes outside the channel).
Settings:
Use Auto Lookback - Enable automatic optimal lookback detection
Pattern Length - Short (faster, 1-bar increments) or Long (broader, 5-bar increments)
Min/Max Lookback - Define the search range for the Long pattern
Manual Lookback - Override auto-detection with a fixed period
Custom Colors - Personalize the high, low, and middle line colors
Starting Point - Select where the trend analysis begins
Use Cases:
Identify dominant trend channels across different timeframes
Spot potential support and resistance levels
Determine trend strength and consistency
Time entries and exits based on channel position
The indicator supports up to 5000 bars of historical data for comprehensive trend analysis.
SuperTrend Long/Short Signals With Fibonacci“By using the updated version of the previously published indicator with a Fibonacci extension, you can obtain multiple take-profit levels and make profitable trades.
Wishing you plenty of profits.
Index & Stock Options Reference Tool-(ISORT) [Arjo]The Index & Stock Options Reference Tool-(ISORT) is an indicator that helps users observe price trend direction together with commonly used option strike levels for selected indices and stocks in Indian market .
The indicator integrates a smoothed trend framework with structured option-related data to help users observe how price direction aligns with commonly referenced option strike levels .
It does not generate trading signals, does not provide buy or sell recommendations, and does not evaluate profitability .
Key Features
1. Trend Context Engine
Uses a Super-Smoother filter combined with EMA smoothing
Highlights directional context through color-based trend states
Designed to reduce short-term noise
2. Dynamic ATM & Strike Reference
Automatically computes ATM strike and offset strike levels to select OTM strike
Strike intervals adapt to the selected index or stock
Supports both NSE and BSE instruments, including SENSEX
3. Expiry Awareness
User-selectable expiry date inputs
Displays a visual warning if the selected expiry has already passed
Helps avoid referencing outdated option contracts
4. Option Price Reference Panel
Displays last observed CALL and PUT prices (when available)
Allows optional manual entry values for analytical comparison
All price values are shown strictly as references
5. Informational Table Overlay
Customizable on-chart table layout
Displays strike, timestamp, price reference, and arithmetic P&L values
Table values are informational only, not predictive or advisory
How to Use
1. Select the Underlying Instrument
Choose whether to reference the current chart symbol or a custom index/stock from the input settings
Supported instruments include major NSE indices, selected stocks, and SENSEX
2. Configure Expiry Parameters
Enter the option expiry date using the Day, Month, and Year inputs
If an expired date is selected, the indicator will display a visual warning
This helps ensure option references remain time-relevant
3. Observe Trend Context
The smoothed trend line provides directional context only
Color changes reflect shifts in price structure, not trade instructions
This trend is intended for contextual analysis, not timing entries
4. Review Strike References
The indicator automatically calculates ATM and offset strike levels
Strike spacing adjusts based on the selected index or stock
These values serve as reference levels commonly observed in options markets
5. Interpret the Information Table
The on-chart table displays:
Strike level
Timestamp of the most recent context change
Last observed option price (when available)
Arithmetic price difference values
All values are informational references only and do not represent performance or outcomes
6. Optional Manual Inputs
Manual price fields can be used to compare external reference values
These inputs do not trigger signals or automated calculations
Important Notes
This indicator is not a trading system
It does not generate buy or sell signals
It does not provide financial or trading advice
It is intended for learning, observation, and market study
Disclaimer
This script is provided for educational and analytical purposes only. It does not constitute investment advice, trading advice. The author assumes no responsibility for decisions made using this indicator.
Happy Trading (Arjo)
Elev8+ Impulse Levels | Smart Support & ResistanceElev8+ Impulse Levels
Why does price reject specific levels that look "empty" on the chart?
The answer usually lies in the past. These are Institutional Impulses—footprints left behind by massive market moves that algorithms and smart money defend days or even weeks later.
The Elev8+ Impulse Levels indicator is designed to automatically reveal this hidden Market Structure. It scans for the "Perfect Storm" of Volume + Aggression and projects these critical levels forward for you.
🧠 How It Works (The Logic)
This is not a standard Support & Resistance tool. It does not look for swing highs or lows. Instead, it detects Market Intent.
The indicator highlights specific candles where:
Volume Spikes: Buying or Selling pressure exceeds the average by a significant multiplier.
Volatility Expands: The candle body is unusually large relative to recent price action (ATR).
When these two factors combine, it signals that a major player has entered the market. The closing price of this impulse becomes a "Line in the Sand" for future price action.
🎯 How to Trade This Strategy
We built a "Smart Line" feature into this tool that changes the visual style of the level based on price behavior. This helps you trade two distinct setups:
1. The Defense (Bounce)
Visual: 🟢 Solid Lines
The Setup: A Solid Line represents a Fresh Level that has never been touched.
Why it works: Institutions often defend their entry price. When price returns to a fresh Solid Line, look for a rejection or a bounce.
2. The Flip (Break & Retest)
Visual: ◌ Dotted Lines
The Setup: When a candle closes past a level, the indicator automatically dims it to a Dotted Line.
Why it works: This signals a "Breaker Block." If a Support level (Green) is broken, it often flips to become Resistance. Watch for price to come back and "kiss" the Dotted Line from the other side before continuing the trend.
✨ Key Features
Smart Visualization: Lines automatically switch from Solid to Dotted when broken, keeping your chart analysis clean and logical.
Impulse Coloring: The indicator highlights the specific candle that created the level, so you can see the origin of the move.
Fully Customizable: Adjust the sensitivity of the Volume and Size detection to fit any asset class (Crypto, Forex, Futures, or Stocks).
🚀 The Elev8+ Workflow
Elev8+ Impulse Levels gives you the "Map"—it tells you where the market is likely to react.
To know exactly when to enter, we recommend pairing this tool with our premium Elev8+ Reversal Indicator, which specializes in timing the entry signal precisely when price hits these high-value levels.
Build your narrative. See the structure. Elev8 your trading.
Disclaimer: Trading involves high risk. This tool is for educational purposes to assist with technical analysis and does not guarantee future performance.
Razzere Cloned! EzAlgo V.8.1showBuySell = input(true, "Show Buy & Sell", group="BUY & SELL SIGNALS")
hassasiyet = input.float(3, "Hassasiyet (1-6)", 0.1, 99999, group="BUY & SELL SIGNALS")
percentStop = input.float(1, "Stop Loss % (0 to Disable)", 0, group="BUY & SELL SIGNALS")
offsetSignal = input.float(5, "Signals Offset", 0, group="BUY & SELL SIGNALS")
showRibbon = input(true, "Show Trend Ribbon", group="TREND RIBBON")
smooth1 = input.int(5, "Smoothing 1", 1, group="TREND RIBBON")
smooth2 = input.int(8, "Smoothing 2", 1, group="TREND RIBBON")
showreversal = input(true, "Show Reversals", group="REVERSAL SIGNALS")
showPdHlc = input(false, "Show P.D H/L/C", group="PREVIOUS DAY HIGH LOW CLOSE")
lineColor = input.color(color.yellow, "Line Colors", group="PREVIOUS DAY HIGH LOW CLOSE")
lineWidth = input.int(1, "Width Lines", group="PREVIOUS DAY HIGH LOW CLOSE")
lineStyle = input.string("Solid", "Line Style", )
labelSize = input.string("normal", "Label Text Size", )
labelColor = input.color(color.yellow, "Label Text Colors")
showEmas = input(false, "Show EMAs", group="EMA")
srcEma1 = input(close, "Source EMA 1")
lenEma1 = input.int(7, "Length EMA 1", 1)
srcEma2 = input(close, "Source EMA 2")
lenEma2 = input.int(21, "Length EMA 2", 1)
srcEma3 = input(close, "Source EMA 3")
lenEma3 = input.int(144, "Length EMA 3", 1)
showSwing = input(false, "Show Swing Points", group="SWING POINTS")
prdSwing = input.int(10, "Swing Point Period", 2, group="SWING POINTS")
colorPos = input(color.new(color.green, 50), "Positive Swing Color")
colorNeg = input(color.new(color.red, 50), "Negative Swing Color")
showDashboard = input(true, "Show Dashboard", group="TREND DASHBOARD")
locationDashboard = input.string("Middle Right", "Table Location", , group="TREND DASHBOARD")
tableTextColor = input(color.white, "Table Text Color", group="TREND DASHBOARD")
tableBgColor = input(#2A2A2A, "Table Background Color", group="TREND DASHBOARD")
sizeDashboard = input.string("Normal", "Table Size", , group="TREND DASHBOARD")
showRevBands = input.bool(true, "Show Reversal Bands", group="REVERSAL BANDS")
lenRevBands = input.int(30, "Length", group="REVERSAL BANDS")
// Fonksiyonlar
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r : x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
securityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on)
swingPoints(prd) =>
pivHi = ta.pivothigh(prd, prd)
pivLo = ta.pivotlow (prd, prd)
last_pivHi = ta.valuewhen(pivHi, pivHi, 1)
last_pivLo = ta.valuewhen(pivLo, pivLo, 1)
hh = pivHi and pivHi > last_pivHi ? pivHi : na
lh = pivHi and pivHi < last_pivHi ? pivHi : na
hl = pivLo and pivLo > last_pivLo ? pivLo : na
ll = pivLo and pivLo < last_pivLo ? pivLo : na
f_chartTfInMinutes() =>
float _resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
f_kc(src, len, hassasiyet) =>
basis = ta.sma(src, len)
span = ta.atr(len)
wavetrend(src, chlLen, avgLen) =>
esa = ta.ema(src, chlLen)
d = ta.ema(math.abs(src - esa), chlLen)
ci = (src - esa) / (0.015 * d)
wt1 = ta.ema(ci, avgLen)
wt2 = ta.sma(wt1, 3)
f_top_fractal(src) => src < src and src < src and src > src and src > src
f_bot_fractal(src) => src > src and src > src and src < src and src < src
f_fractalize (src) => f_top_fractal(src) ? 1 : f_bot_fractal(src) ? -1 : 0
f_findDivs(src, topLimit, botLimit) =>
fractalTop = f_fractalize(src) > 0 and src >= topLimit ? src : na
fractalBot = f_fractalize(src) < 0 and src <= botLimit ? src : na
highPrev = ta.valuewhen(fractalTop, src , 0)
highPrice = ta.valuewhen(fractalTop, high , 0)
lowPrev = ta.valuewhen(fractalBot, src , 0)
lowPrice = ta.valuewhen(fractalBot, low , 0)
bearSignal = fractalTop and high > highPrice and src < highPrev
bullSignal = fractalBot and low < lowPrice and src > lowPrev
// Bileşen...
source = close
smrng1 = smoothrng(source, 27, 1.5)
smrng2 = smoothrng(source, 55, hassasiyet)
smrng = (smrng1 + smrng2) / 2
filt = rngfilt(source, smrng)
up = 0.0, up := filt > filt ? nz(up ) + 1 : filt < filt ? 0 : nz(up )
dn = 0.0, dn := filt < filt ? nz(dn ) + 1 : filt > filt ? 0 : nz(dn )
bullCond = bool(na), bullCond := source > filt and source > source and up > 0 or source > filt and source < source and up > 0
bearCond = bool(na), bearCond := source < filt and source < source and dn > 0 or source < filt and source > source and dn > 0
lastCond = 0, lastCond := bullCond ? 1 : bearCond ? -1 : lastCond
bull = bullCond and lastCond == -1
bear = bearCond and lastCond == 1
countBull = ta.barssince(bull)
countBear = ta.barssince(bear)
trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0
ribbon1 = ta.sma(close, smooth1)
ribbon2 = ta.sma(close, smooth2)
rsi = ta.rsi(close, 21)
rsiOb = rsi > 70 and rsi > ta.ema(rsi, 10)
rsiOs = rsi < 30 and rsi < ta.ema(rsi, 10)
dHigh = securityNoRep(syminfo.tickerid, "D", high )
dLow = securityNoRep(syminfo.tickerid, "D", low )
dClose = securityNoRep(syminfo.tickerid, "D", close )
ema1 = ta.ema(srcEma1, lenEma1)
ema2 = ta.ema(srcEma2, lenEma2)
ema3 = ta.ema(srcEma3, lenEma3)
= swingPoints(prdSwing)
ema = ta.ema(close, 144)
emaBull = close > ema
equal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds
higher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds
too_small_tf(res) => (timeframe.isweekly and res=="1") or (timeframe.ismonthly and str.tonumber(res) < 10)
securityNoRep1(sym, res, src) =>
bool bull_ = na
bull_ := equal_tf(res) ? src : bull_
bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on) : bull_
bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? "S" : "") : too_small_tf(res) ? (timeframe.isweekly ? "3" : "10") : res, src)
if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull_ := array.pop(bull_array)
array.clear(bull_array)
bull_
TF1Bull = securityNoRep1(syminfo.tickerid, "1" , emaBull)
TF3Bull = securityNoRep1(syminfo.tickerid, "3" , emaBull)
TF5Bull = securityNoRep1(syminfo.tickerid, "5" , emaBull)
TF15Bull = securityNoRep1(syminfo.tickerid, "15" , emaBull)
TF30Bull = securityNoRep1(syminfo.tickerid, "30" , emaBull)
TF60Bull = securityNoRep1(syminfo.tickerid, "60" , emaBull)
TF120Bull = securityNoRep1(syminfo.tickerid, "120" , emaBull)
TF240Bull = securityNoRep1(syminfo.tickerid, "240" , emaBull)
TF480Bull = securityNoRep1(syminfo.tickerid, "480" , emaBull)
TFDBull = securityNoRep1(syminfo.tickerid, "1440", emaBull)
= f_kc(close, lenRevBands, 3)
= f_kc(close, lenRevBands, 4)
= f_kc(close, lenRevBands, 5)
= f_kc(close, lenRevBands, 6)
= wavetrend(hlc3, 9, 12)
= f_findDivs(wt2, 15, -40)
= f_findDivs(wt2, 45, -65)
wtDivBull = wtDivBull1 or wtDivBull2
wtDivBear = wtDivBear1 or wtDivBear2
// Renkler
cyan = #00DBFF, cyan30 = color.new(cyan, 70)
pink = #E91E63, pink30 = color.new(pink, 70)
red = #FF5252, red30 = color.new(red , 70)
// Plotlar
off = percWidth(300, offsetSignal)
plotshape(showBuySell and bull ? low - off : na, "Buy Label" , shape.labelup , location.absolute, cyan, 0, "Buy" , color.white, size=size.normal)
plotshape(showBuySell and bear ? high + off : na, "Sell Label", shape.labeldown, location.absolute, pink, 0, "Sell", color.white, size=size.normal)
plotshape(ta.crossover(wt1, wt2) and wt2 <= -53, "Mild Buy" , shape.xcross, location.belowbar, cyan, size=size.tiny)
plotshape(ta.crossunder(wt1, wt2) and wt2 >= 53, "Mild Sell", shape.xcross, location.abovebar, pink, size=size.tiny)
plotshape(wtDivBull, "Divergence Buy ", shape.triangleup , location.belowbar, cyan, size=size.tiny)
plotshape(wtDivBear, "Divergence Sell", shape.triangledown, location.abovebar, pink, size=size.tiny)
barcolor(up > dn ? cyan : pink)
plotshape(showreversal and rsiOs, "Reversal Buy" , shape.diamond, location.belowbar, cyan30, size=size.tiny)
plotshape(showreversal and rsiOb, "Reversal Sell", shape.diamond, location.abovebar, pink30, size=size.tiny)
lStyle = lineStyle == "Solid" ? line.style_solid : lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
lSize = labelSize == "small" ? size.small : labelSize == "normal" ? size.normal : size.large
dHighLine = showPdHlc ? line.new(bar_index, dHigh, bar_index + 1, dHigh , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dHighLine )
dLowLine = showPdHlc ? line.new(bar_index, dLow , bar_index + 1, dLow , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dLowLine )
dCloseLine = showPdHlc ? line.new(bar_index, dClose, bar_index + 1, dClose, xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dCloseLine )
dHighLabel = showPdHlc ? label.new(bar_index + 100, dHigh , "P.D.H", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dHighLabel )
dLowLabel = showPdHlc ? label.new(bar_index + 100, dLow , "P.D.L", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dLowLabel )
dCloseLabel = showPdHlc ? label.new(bar_index + 100, dClose, "P.D.C", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dCloseLabel )
plot(showEmas ? ema1 : na, "EMA 1", color.green , 2)
plot(showEmas ? ema2 : na, "EMA 2", color.purple, 2)
plot(showEmas ? ema3 : na, "EMA 3", color.yellow, 2)
plotshape(showSwing ? hh : na, "", shape.triangledown, location.abovebar, color.new(color.green, 50), -prdSwing, "HH", colorPos, false)
plotshape(showSwing ? hl : na, "", shape.triangleup , location.belowbar, color.new(color.green, 50), -prdSwing, "HL", colorPos, false)
plotshape(showSwing ? lh : na, "", shape.triangledown, location.abovebar, color.new(color.red , 50), -prdSwing, "LH", colorNeg, false)
plotshape(showSwing ? ll : na, "", shape.triangleup , location.belowbar, color.new(color.red , 50), -prdSwing, "LL", colorNeg, false)
srcStop = close
atrBand = srcStop * (percentStop / 100)
atrStop = trigger ? srcStop - atrBand : srcStop + atrBand
lastTrade(src) => ta.valuewhen(bull or bear, src, 0)
entry_y = lastTrade(srcStop)
stop_y = lastTrade(atrStop)
tp1_y = (entry_y - lastTrade(atrStop)) * 1 + entry_y
tp2_y = (entry_y - lastTrade(atrStop)) * 2 + entry_y
tp3_y = (entry_y - lastTrade(atrStop)) * 3 + entry_y
labelTpSl(y, txt, color) =>
label labelTpSl = percentStop != 0 ? label.new(bar_index + 1, y, txt, xloc.bar_index, yloc.price, color, label.style_label_left, color.white, size.normal) : na
label.delete(labelTpSl )
labelTpSl(entry_y, "Entry: " + str.tostring(math.round_to_mintick(entry_y)), color.gray)
labelTpSl(stop_y , "Stop Loss: " + str.tostring(math.round_to_mintick(stop_y)), color.red)
labelTpSl(tp1_y, "Take Profit 1: " + str.tostring(math.round_to_mintick(tp1_y)), color.green)
labelTpSl(tp2_y, "Take Profit 2: " + str.tostring(math.round_to_mintick(tp2_y)), color.green)
labelTpSl(tp3_y, "Take Profit 3: " + str.tostring(math.round_to_mintick(tp3_y)), color.green)
lineTpSl(y, color) =>
line lineTpSl = percentStop != 0 ? line.new(bar_index - (trigger ? countBull : countBear) + 4, y, bar_index + 1, y, xloc.bar_index, extend.none, color, line.style_solid) : na
line.delete(lineTpSl )
lineTpSl(entry_y, color.gray)
lineTpSl(stop_y, color.red)
lineTpSl(tp1_y, color.green)
lineTpSl(tp2_y, color.green)
lineTpSl(tp3_y, color.green)
var dashboard_loc = locationDashboard == "Top Right" ? position.top_right : locationDashboard == "Middle Right" ? position.middle_right : locationDashboard == "Bottom Right" ? position.bottom_right : locationDashboard == "Top Center" ? position.top_center : locationDashboard == "Middle Center" ? position.middle_center : locationDashboard == "Bottom Center" ? position.bottom_center : locationDashboard == "Top Left" ? position.top_left : locationDashboard == "Middle Left" ? position.middle_left : position.bottom_left
var dashboard_size = sizeDashboard == "Large" ? size.large : sizeDashboard == "Normal" ? size.normal : sizeDashboard == "Small" ? size.small : size.tiny
var dashboard = showDashboard ? table.new(dashboard_loc, 2, 15, tableBgColor, #000000, 2, tableBgColor, 1) : na
dashboard_cell(column, row, txt, signal=false) => table.cell(dashboard, column, row, txt, 0, 0, signal ? #000000 : tableTextColor, text_size=dashboard_size)
dashboard_cell_bg(column, row, col) => table.cell_set_bgcolor(dashboard, column, row, col)
if barstate.islast and showDashboard
dashboard_cell(0, 0 , "EzAlgo")
dashboard_cell(0, 1 , "Current Position")
dashboard_cell(0, 2 , "Current Trend")
dashboard_cell(0, 3 , "Volume")
dashboard_cell(0, 4 , "Timeframe")
dashboard_cell(0, 5 , "1 min:")
dashboard_cell(0, 6 , "3 min:")
dashboard_cell(0, 7 , "5 min:")
dashboard_cell(0, 8 , "15 min:")
dashboard_cell(0, 9 , "30 min:")
dashboard_cell(0, 10, "1 H:")
dashboard_cell(0, 11, "2 H:")
dashboard_cell(0, 12, "4 H:")
dashboard_cell(0, 13, "8 H:")
dashboard_cell(0, 14, "Daily:")
dashboard_cell(1, 0 , "V.8.1")
dashboard_cell(1, 1 , trigger ? "Buy" : "Sell", true), dashboard_cell_bg(1, 1, trigger ? color.green : color.red)
dashboard_cell(1, 2 , emaBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 2, emaBull ? color.green : color.red)
dashboard_cell(1, 3 , str.tostring(volume))
dashboard_cell(1, 4 , "Trends")
dashboard_cell(1, 5 , TF1Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 5 , TF1Bull ? color.green : color.red)
dashboard_cell(1, 6 , TF3Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 6 , TF3Bull ? color.green : color.red)
dashboard_cell(1, 7 , TF5Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 7 , TF5Bull ? color.green : color.red)
dashboard_cell(1, 8 , TF15Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 8 , TF15Bull ? color.green : color.red)
dashboard_cell(1, 9 , TF30Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 9 , TF30Bull ? color.green : color.red)
dashboard_cell(1, 10, TF60Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 10, TF60Bull ? color.green : color.red)
dashboard_cell(1, 11, TF120Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 11, TF120Bull ? color.green : color.red)
dashboard_cell(1, 12, TF240Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 12, TF240Bull ? color.green : color.red)
dashboard_cell(1, 13, TF480Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 13, TF480Bull ? color.green : color.red)
dashboard_cell(1, 14, TFDBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 14, TFDBull ? color.green : color.red)
plot(showRevBands ? upperKC1 : na, "Rev.Zone Upper 1", red30)
plot(showRevBands ? upperKC2 : na, "Rev.Zone Upper 2", red30)
plot(showRevBands ? upperKC3 : na, "Rev.Zone Upper 3", red30)
plot(showRevBands ? upperKC4 : na, "Rev.Zone Upper 4", red30)
plot(showRevBands ? lowerKC4 : na, "Rev.Zone Lower 4", cyan30)
plot(showRevBands ? lowerKC3 : na, "Rev.Zone Lower 3", cyan30)
plot(showRevBands ? lowerKC2 : na, "Rev.Zone Lower 2", cyan30)
plot(showRevBands ? lowerKC1 : na, "Rev.Zone Lower 1", cyan30)
fill(plot(showRibbon ? ribbon1 : na, "", na, editable=false), plot(showRibbon ? ribbon2 : na, "", na, editable=false), ribbon1 > ribbon2 ? cyan30 : pink30, "Ribbon Fill Color")
// Alarmlar
alert01 = ta.crossover(ribbon1, ribbon2)
alert02 = bull
alert03 = wtDivBull
alert04 = wtDivBear
alert05 = bull or bear
alert06 = ta.crossover(wt1, wt2) and wt2 <= -53
alert07 = ta.crossunder(wt1, wt2) and wt2 >= 53
alert08 = ta.crossunder(ribbon1, ribbon2)
alert09 = rsiOb or rsiOs
alert10 = bear
alert11 = ta.cross(ribbon1, ribbon2)
alerts(sym) =>
if alert02 or alert03 or alert04 or alert06 or alert07 or alert10
alert_text = alert02 ? "Buy Signal EzAlgo" : alert03 ? "Strong Buy Signal EzAlgo" : alert04 ? "Strong Sell Signal EzAlgo" : alert06 ? "Mild Buy Signal EzAlgo" : alert07 ? "Mild Sell Signal EzAlgo" : "Sell Signal EzAlgo"
alert(alert_text, alert.freq_once_per_bar_close)
alerts(syminfo.tickerid)
alertcondition(alert01, "Blue Trend Ribbon Alert", "Blue Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert02, "Buy Signal", "Buy Signal EzAlgo")
alertcondition(alert03, "Divergence Buy Alert", "Strong Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert04, "Divergence Sell Alert", "Strong Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert05, "Either Buy or Sell Signal", "EzAlgo Signal")
alertcondition(alert06, "Mild Buy Alert", "Mild Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert07, "Mild Sell Alert", "Mild Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert08, "Red Trend Ribbon Alert", "Red Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert09, "Reversal Signal", "Reversal Signal")
alertcondition(alert10, "Sell Signal", "Sell Signal EzAlgo")
alertcondition(alert11, "Trend Ribbon Color Change Alert", "Trend Ribbon Color Change, TimeFrame={{interval}}")
INSTITUTIONAL VOLUME PROFILE + FIBONACCI + ENHANCED SIGNALS🎯 INSTITUTIONAL VOLUME PROFILE + FIBONACCI + ENHANCED SIGNALS
A professional-grade indicator combining Volume Profile analysis, Fibonacci retracements, Anchored VWAP, and intelligent signal filtering to identify high-probability institutional positioning and trade setups.
📊 CORE FEATURES
▸ Volume Profile with POC (Point of Control)
- Visualizes where institutional volume accumulated
- Identifies High Volume Nodes (HVN) as key support/resistance
- Shows Value Area (70% volume zone) for market equilibrium
▸ Dynamic Fibonacci Levels
- Auto-detects swing high/low for retracement levels
- Golden Pocket (0.618-0.65) highlight zone
- Bull/bear direction recognition
▸ Anchored VWAP
- Anchored to swing range start
- Institutional mean reversion baseline
- Real-time trend bias indicator
▸ Graded Signal System (A+/B/C)
- A+ Signals: High probability setups (VWAP cross + POC alignment)
- B Signals: Above-average quality (VWAP cross above POC)
- C Signals: Lower probability (counter-trend setups)
🎮 DISPLAY MODES
⚡ TRADING LIVE MODE
- Clean chart showing only A+ signals
- Minimal visual noise for active trading
- Perfect for intraday execution
📈 FULL OVERVIEW MODE
- Complete analysis with all zones visible
- Volume Profile + Fibonacci + Value Area
- All signal grades displayed
- Statistics dashboard
🔬 ADVANCED SIGNAL FILTERS
✓ Volume Confirmation
- Requires above-average volume on signals
- Filters out weak institutional participation
- Configurable volume multiple (default 1.2x)
✓ Momentum Filter
- Ensures price momentum aligns with signal direction
- Prevents counter-trend entries
- Configurable lookback period
✓ SR Proximity Upgrade ⭐ GAME CHANGER
- Automatically upgrades B/C signals to A+ when near key levels
- Detects proximity to POC and HVN zones
- Combines technical confluence for best setups
🔔 SMART ALERTS
▸ Configurable alerts for A+, B, or C signals
▸ Real-time notifications to your device
▸ No need to watch charts constantly
▸ "Once per bar close" prevents repainting
💡 HOW TO USE
FOR DAY TRADING:
1. Switch to "Trading Live" mode
2. Enable only A+ alerts
3. Set filters: Volume 1.5x, Momentum ON, Proximity 0.3%
4. Trade only A+ signals at key levels
FOR SWING TRADING:
1. Use "Full Overview" mode
2. Analyze Value Area and Fibonacci confluence
3. Set filters: Volume 1.2x, Momentum ON, Proximity 0.8%
4. Enter on A+ signals with multi-timeframe confirmation
FOR ANALYSIS:
1. Full Overview mode with all visuals enabled
2. Disable filters to see all raw signals
3. Study how institutions positioned at key zones
4. Plan trades around POC and Value Area
⚙️ RECOMMENDED SETTINGS
5-15 MIN CHARTS (Scalping):
- Lookback: 200-300 bars
- Volume: 1.5x, Momentum: 5 bars, Proximity: 0.3%
- Trading Live mode + A+ alerts only
1 HOUR CHARTS (Intraday):
- Lookback: 300 bars
- Volume: 1.3x, Momentum: 3 bars, Proximity: 0.5%
- Full Overview or Trading Live
4 HOUR CHARTS (Swing):
- Lookback: 300-500 bars
- Volume: 1.2x, Momentum: 3 bars, Proximity: 0.8%
- Full Overview mode
DAILY CHARTS (Position):
- Lookback: 300-500 bars
- Volume: 1.1x, Momentum: 2 bars, Proximity: 1.0%
- Full Overview mode
📈 KEY CONCEPTS
POC (Point of Control): Price level with highest volume - acts as magnet
Value Area: Zone containing 70% of volume - equilibrium range
HVN: High Volume Nodes - institutional accumulation zones
AVWAP: Anchored VWAP - institutional average entry price
Golden Pocket: 0.618-0.65 Fib zone - highest probability reversal area
🎯 TRADING STRATEGY TIPS
1. Wait for A+ signals - quality over quantity
2. Best setups occur at POC or Value Area boundaries
3. Use multiple timeframes for confirmation
4. Combine with your own risk management rules
5. Signals are high probability, not guaranteed - always use stops
ORB Pro - NY Opening Range Breakout [Elev8+]**ORB Pro - NY Opening Range Breakout ** is a comprehensive, professional-grade toolkit designed for intraday traders who rely on the **Opening Range Breakout (ORB)** strategy.
Unlike standard ORB indicators that simply draw lines, this suite offers a complete dashboard-driven system that monitors **four distinct sessions** simultaneously, providing real-time status updates and precision alerts.
### 🎯 What is the Opening Range Breakout (ORB)?
The Opening Range is the price range established during the first period of the trading session (e.g., the first 15 or 30 minutes). This period represents the initial balance between buyers and sellers. A breakout from this range often signals the likely trend direction for the remainder of the session.
### 🚀 Key Features
**1. Multi-ORB Monitoring**
Stop switching settings constantly. This suite monitors four key ranges at once:
* **Pre-Market 15m** (08:00 – 08:15 ET)
* **Pre-Market 30m** (08:00 – 08:30 ET)
* **NY Cash Open 15m** (09:30 – 09:45 ET)
* **NY Cash Open 30m** (09:30 – 10:00 ET)
**2. Smart Status Dashboard**
A compact panel in the bottom-right corner gives you the live state of every session:
* **⏳ Waiting:** The session has not started yet.
* **⚡ Forming:** The range is currently being built.
* **↔️ Range:** The range has formed, but price is still contained within the range.
* **🚀 BULL / 📉 BEAR:** A confirmed breakout has occurred.
* **⛔ OFF:** The session is disabled in settings.
**3. "Dynamic Resolution" Technology**
This is a unique pro feature.
* **Precision:** The script *always* calculates the High/Low levels using 1-minute data, ensuring your support/resistance lines are pixel-perfect regardless of your chart timeframe.
* **Flexibility:** Breakout signals (Alerts/Labels) are triggered based on your *current* chart timeframe. This allows you to trade a 5m or 15m breakout strategy while keeping 1m-level precision on your levels.
**4. Visual Clarity**
* **Breakout Labels:** Automatically plots "BULL" or "BEAR" labels on the exact candle that confirms a breakout.
* **Profit Targets:** Optional toggle to show 1x and 2x profit targets projected from the breakout level.
* **Time-Bound Signals:** Signals are strictly time-bound to the active window to prevent late, low-quality alerts.
### 🛠️ How to Use
1. **Add to Chart:** Works best on intraday timeframes (1m, 5m, 15m).
2. **Configure:** Enable the sessions you trade (e.g., NY 15m) in the settings.
3. **Wait for Forming:** Watch the box form live. The dashboard will show "⚡ Forming".
4. **Trade the Break:** Wait for a candle **Close** outside the range. The dashboard will flip to "BULL" or "BEAR" and a label will appear.
5. **Manage Risk:** Use the opposite side of the range or the midline as your stop loss.
### ⚙️ Settings Overview
* **Global Settings:** Toggle forming boxes, dashboard, and label visibility.
* **Breakout Method:** Choose between **Close** (safer) or **Wick** (aggressive) for signal triggers.
* **Session Groups:** Individually enable/disable the 4 distinct sessions and customize their colors/styles.
---
*Disclaimer: This tool is for educational and analytical purposes only. Past performance of a strategy does not guarantee future results. Always manage your risk.*
Abyss Protocol OneAbyss Protocol One — Momentum Exhaustion Trading System
Overview
Abyss Protocol One is a momentum exhaustion indicator designed to identify high-probability reversal points by detecting when price momentum has reached extreme levels. It combines Chande Momentum Oscillator (CMO) threshold signals with dynamic volatility-adjusted bands and multiple protective filters to generate buy and sell signals.
Core Concept
The indicator operates on the principle that extreme momentum readings (CMO reaching ±80) often precede mean reversion. Rather than chasing trends, Abyss Protocol waits for momentum exhaustion before signaling entries and exits.
Key Components
1. Dynamic Bands (Money Line ± ATR)
Center line uses linear regression (Money Line) for smooth trend representation
Bands expand and contract based on Bollinger Band Width Percentile (BBWP)
Low volatility (BBWP < 30): Tighter bands using lower multiplier
High volatility (BBWP > 70): Wider bands using higher multiplier
Bands visually adapt to current market conditions
2. CMO Exhaustion Signals
BUY Signal: CMO drops below -80 (oversold/momentum exhaustion to downside)
SELL Signal: CMO rises above +80 (overbought/momentum exhaustion to upside)
Thresholds are configurable for different assets and timeframes
3. ADX Filter
Signals only fire when ADX exceeds minimum threshold (default: 22)
Ensures there's enough directional movement to trade
Prevents signals during choppy, directionless markets
4. Band Contraction Filter
Calculates band width percentile rank over configurable lookback
When bands are contracted (below 18th percentile), ALL signals are blocked
Prevents trading during low-volatility squeeze periods where breakout direction is uncertain
5. Consecutive Buy Limit
Maximum of 3 consecutive buys allowed before a sell is required
Prevents overexposure during extended downtrends
Counter resets when a sell signal fires
6. Underwater Protection
Tracks rolling average of recent entry prices (last 10 entries within 7 days)
Blocks sell signals if current price is below average entry price
Prevents locking in losses during drawdowns
7. Signal Cooldown
Minimum 5-bar cooldown between signals
Prevents rapid-fire signals during volatile swings
8. Extreme Move Detection
Detects when price penetrates beyond bands by more than 0.6 × ATR
Extreme signals can bypass normal cooldown period
Fire intra-bar for faster response to capitulation/blow-off moves
Still respects max consecutive buys and underwater protection
Visual Features
Trend State Detection
The indicator classifies market conditions into six states based on EMA stack, price position, and directional indicators:
STRONG UP: Full bullish alignment (EMA stack + price above trend + bullish DI + ADX > threshold)
UP: Moderate bullish conditions
NEUTRAL: No clear directional bias
DOWN: Moderate bearish conditions
STRONG DOWN: Full bearish alignment
CONTRACTED: Bands squeezed, volatility low
ADX Trend Bar
Colored dots at chart bottom provide instant trend state visibility:
Lime = Strong Uptrend
Blue = Uptrend
Orange = Neutral
Red = Downtrend
Maroon = Strong Downtrend
White = Contracted
Volume Spike Highlighting
Purple background highlights candles where volume exceeds 2x the 20-bar average, helping identify institutional activity or significant market events.
Signal Labels
Buy labels show consecutive buy count (e.g., "BUY 2/3"), price, and CMO value
Sell labels show consecutive sell count, price, and CMO value
Extreme signals display in distinct colors (cyan for buys, fuchsia for sells)
Signal candles turn bright blue for easy identification
Info Panel
Real-time dashboard displaying:
Current trend state
CMO value with threshold status
CMO thresholds (buy/sell levels)
ADX with directional indicator (▲/▼) and signal eligibility
BBWP percentage
Buy/Sell counters
Average entry price (with underwater shield indicator 🛡 when protected)
Price position relative to Money Line
Band width percentile rank
Extreme move status
Signals status (OPEN/BLOCKED)
Recommended Use
Timeframe: 5-15 minute charts (parameters tuned for this range)
Best suited for: Assets with regular oscillations between overbought/oversold extremes
Trading style: Mean reversion, momentum exhaustion, scaled entries
Parameters Summary
Money Line Length: 12 — Smoothing for center line
ATR Length: 10 — Volatility measurement
Band Multiplier (Low/High Vol): 1.5 / 2.5 — Dynamic band width
CMO Length: 9 — Momentum calculation period
CMO Buy/Sell Threshold: -80 / +80 — Signal trigger levels
ADX Min for Signals: 22 — Minimum trend strength
Signal Cooldown: 5 bars — Minimum bars between signals
Max Consecutive Buys: 3 — Position scaling limit
Band Contraction Threshold: 18th %ile — Low volatility filter
Band Contraction Lookback: 188 bars — Percentile calculation period
Extreme Penetration: 0.6 × ATR — Threshold for extreme signals
Hull MA Al-Sat/@version=6
indicator("Hull MA Al-Sat", overlay=true, max_lines_count=500, max_labels_count=500)
// Kullanıcı girişi
length = input.int(21, "HMA Periyodu")
hma_source = input.source(close, "HMA Kaynağı")
plotThickness = input.int(3, "Çizgi Kalınlığı")
// HMA hesaplama
wma1 = ta.wma(hma_source, math.round(length / 2))
wma2 = ta.wma(hma_source, length)
diff = 2 * wma1 - wma2
hma = ta.wma(diff, math.round(math.sqrt(length)))
// Renkli çizgi
hmaColor = hma > hma ? color.green : color.red
plot(hma, color=hmaColor, linewidth=plotThickness)
// Al/Sat okları
plotshape(ta.crossover(hma, hma ), title="Al", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large)
plotshape(ta.crossunder(hma, hma ), title="Sat", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
SuperTrend Long/Short Signals“Provides trend-based long and short signals. With regular use while adhering to the entry, stop-loss, and take-profit levels, profits can be achieved.”
SB - Ultimate Clean Trend Pro Uses dynamic Moving colour coding for spotting chage of bias. Use set up with keeping VWAP in reference.
MNQ Pro Scalping | SMA20 + VWAP Color //@version=5
TIFFANY//@version=5
indicator("MNQ Pro Scalping | SMA20 + VWAP Color + ATR SLTP + Fake Breakout", overlay=true)
// ===== INPUTS =====
smaLen = input.int(20, "SMA Length")
atrLen = input.int(14, "ATR Length")
slMult = input.float(1.0, "SL = ATR x", step=0.1)
tpMult = input.float(1.5, "TP = ATR x", step=0.1)
showNY = input.bool(true, "Only New York Session (09:30–16:00 ET)")
// ===== NY SESSION FILTER =====
inNY = not showNY or time(timeframe.period, "0930-1600")
// ===== SMA 20 =====
sma20 = ta.sma(close, smaLen)
smaColor = close > sma20 ? color.green : color.red
plot(sma20, "SMA 20", color=smaColor, linewidth=2)
// ===== VWAP (COLOR CHANGE) =====
vwapVal = ta.vwap(hlc3)
vwapColor = close > vwapVal ? color.green : color.red
plot(vwapVal, "VWAP", color=vwapColor, linewidth=2)
// ===== ATR =====
atr = ta.atr(atrLen)
// ===== CROSS CONDITIONS =====
crossUp = ta.crossover(close, sma20)
crossDown = ta.crossunder(close, sma20)
// ===== VALID TRADE CONDITIONS =====
longCond = crossUp and close > vwapVal and inNY
shortCond = crossDown and close < vwapVal and inNY
// ===== ATR SL / TP LEVELS =====
longSL = close - atr * slMult
longTP = close + atr * tpMult
shortSL = close + atr * slMult
shortTP = close - atr * tpMult
// ===== PLOT SL / TP WHEN SIGNAL =====
plot(longCond ? longSL : na, "Long SL", color=color.red, style=plot.style_linebr)
plot(longCond ? longTP : na, "Long TP", color=color.green, style=plot.style_linebr)
plot(shortCond ? shortSL : na, "Short SL", color=color.red, style=plot.style_linebr)
plot(shortCond ? shortTP : na, "Short TP", color=color.green, style=plot.style_linebr)
// ===== FAKE BREAKOUT DETECTION =====
// Giá cắt SMA nhưng đóng nến quay ngược lại
fakeUp = ta.crossover(high, sma20) and close < sma20
fakeDown = ta.crossunder(low, sma20) and close > sma20
plotshape(fakeUp and inNY, title="Fake Up", style=shape.xcross, location=location.abovebar, color=color.red, size=size.small)
plotshape(fakeDown and inNY, title="Fake Down", style=shape.xcross, location=location.belowbar, color=color.green, size=size.small)
// ===== SIGNAL SHAPES =====
plotshape(longCond, title="LONG", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCond, title="SHORT", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// ===== ALERTS =====
alertcondition(longCond,
title="MNQ LONG – ATR Setup",
message="MNQ LONG: Cross ABOVE SMA20 | Above VWAP | ATR SL/TP valid")
alertcondition(shortCond,
title="MNQ SHORT – ATR Setup",
message="MNQ SHORT: Cross BELOW SMA20 | Below VWAP | ATR SL/TP valid")
alertcondition(fakeUp,
title="Fake Breakout UP",
message="WARNING: Fake breakout ABOVE SMA20")
alertcondition(fakeDown,
title="Fake Breakout DOWN",
message="WARNING: Fake breakout BELOW SMA20")
FVG 15 min PilotOverview
This indicator implements a fully automated FVG (Fair Value Gap) rejection trading strategy with precise entry management, session limitation, and performance tracking. The indicator identifies fair value gaps, waits for the first tap into the 0.79 level, and automatically accepts entries with a fixed stop loss and an adjustable risk-reward ratio.
Overview
This indicator implements a fully automated FVG (Fair Value Gap) rejection trading strategy with precise entry management, session limitation, and performance tracking. The indicator detects fair value gaps, waits for the first tap into the 0.79 level, and automatically accepts entries with a fixed stop loss and an adjustable risk-reward ratio.
... Core Trading Logic
Entry Conditions
For LONG (Bullish FVG Rejection):
A bullish FVG must exist (upward price gap)
FVG must not be older than X candles (default: 20)
FVG must not be larger than X ticks (default: 50)
FVG must not have been tapped (not even before the trading session)
Price must touch the 0.79 level of the FVG
Entry occurs exactly at the 0.79 level (79% of the lower to the upper edge of the FVG)
SL is placed X ticks below the entry (default: 25)
TP is calculated based on a risk:reward ratio (default: 1:1)
For SHORT (Bearish FVG Rejection):
Identical logic to bearish FVGs
Entry at the 0.79 level (79% of the upper to the lower edge)
SL X ticks above the entry
TP is calculated based on a risk:reward ratio
Stepped Multi Timeframe MAs with PDH PDL TDH TDL Dynamic Labels
Plots stepped (blocky) higher‑timeframe moving averages and VWAP on the current chart (HMA/EMA/VWMA/SMA/VWAP toggles).
Automatically switches MA source to the chart’s timeframe on Daily/Weekly/Monthly (e.g., Weekly chart shows weekly MAs), while intraday charts can use a user-selected higher timeframe.
Draws Previous Day High/Low (PDH/PDL) anchored from the exact candle that formed the level, then extends the line across the chart up to the latest bar.
Draws Today’s High/Low (TDH/TDL) the same way, and updates dynamically as new intraday highs/lows are made (the anchor shifts to the new wick candle).
Keeps labels readable by placing them above/below each line with no background and a clean grey style, and repositions label X based on the visible chart window (so labels stay at a consistent % from the right edge while you pan/zoom)
GK Zero-Lag Major BOS TrendGK ZERO-LAG Major BOS Trend
is a technical indicator designed to highlight breaks of structure BOS
in the direction of the prevailing trend
The script uses a zero-lag trend filter combined with confirmed structural high/low breaks to reduce noise and avoid minor or premature prints.
Print labels are only printed after candle close, ensuring stable, and confirmed prints
The indicator is designed to help traders identify trend continuation and structural shifts,
making it suitable as a confirmed tool across multiple markets and timeframes.
Best used on higher timeframes 5/15/30Min 2/3/4Hour
also resistance and support lines
Disclaimer
this indicator is provided for educational purposes only
Liquidity Sentiment Profile | LUPENIndicator Guide: Liquidity Sentiment Profile (LSP).
What is the LSP?
The Liquidity Sentiment Profile (LSP) is a "Next-Generation" oscillator designed to look beyond simple price action. While standard indicators (like RSI or MACD) primarily focus on where a candle closes, the LSP analyzes the micro-structure of the entire candle—specifically the relationship between the candle's Body, its Wicks (Shadows), and the Volume.
The Core Philosophy:
Wicks tell the truth: A long lower wick indicates that sellers pushed the price down, but buyers aggressively absorbed that liquidity and pushed it back up.
That is hidden bullish strength.
Volume validates intent: A price move with low volume is noise. A price move (or wick rejection) with high volume is a commitment by institutional players.
The LSP calculates a "Sentiment Score" between -100 and +100 based on these factors.
How to Read the Visuals
The Colors (Intensity)
color: Light Green - Bullish Acceleration. Buyers are in control, and momentum is increasing. This is the ideal time to be in a Long trade.
color: Dark Green - Bullish Deceleration. Buyers are still in control (price is likely rising), but the momentum is fading. This is a warning sign to tighten stop-losses or take profits.
color: Light Red - Bearish Acceleration. Sellers are dominating, and panic is increasing. This is the ideal time to be Short.
color: Dark Red - Bearish Deceleration. Sellers are still in control, but the downward pressure is exhausted. Be careful with new short positions.
The Lines & Fills
The Main Line: The actual LSP sentiment value.
The Yellow Signal Line: A smoothed average of the sentiment.
The Core Fill: The colored area between the Main Line and the Signal Line. When this area "glows", the trend is strong. When it dims (Dark), the trend is weak. Bearish Deceleration. Sellers are still in control, but the downward pressure is exhausted. Be careful with new short positions.
The Lines & Fills
The Main Line: The actual LSP sentiment value.
The Yellow Signal Line: A smoothed average of the sentiment.
The Core Fill: The colored area between the Main Line and the Signal Line. When this area "glows" (Neon), the trend is strong. When it dims (Dark), the trend is weak.
How to Use It (Trading Strategies)
Strategy A: The "Power Cross" (Trend Entry)
Use this for entering trends when the market wakes up.
Long Entry: Wait for the LSP line to cross ABOVE the Yellow Signal Line.
Confirmation: The fill color must turn Neon Green.
Short Entry: Wait for the LSP line to cross BELOW the Yellow Signal Line.
Confirmation: The fill color must turn Neon Red.
Strategy B: The "Absorption" Play (Reversals)
This is where the LSP shines. It detects when liquidity is being absorbed before price turns.
Bullish Absorption: The Price makes a Lower Low, but the LSP makes a Higher Low. This happens because the LSP detects the Volume on the Lower Wicks (buyers absorbing selling pressure). This is a high-probability reversal signal.
Bearish Absorption: The Price makes a Higher High, but the LSP makes a Lower High. The volume on the Upper Wicks suggests sellers are absorbing the buy orders.
Strategy C: The "Dimming" Exit (Risk Management)
Don't wait for the price to crash to exit a trade.
If you are in a Long trade (Neon Green) and the color instantly shifts to Dark Green, it means the "fuel" is running out. Consider taking partial profits or moving your Stop Loss to break even.
Standard oscillators (like RSI) often give false signals during strong trends (showing "Overbought" while price keeps going up). The LSP avoids this because it weights Volume and Wicks. If price goes up and volume increases, the LSP stays Neon Green, telling you the move is genuine, not just overextended.
Ichimoku Trading Checklist - 5 Rules🧠 Description
This indicator implements a rule-based checklist built on Ichimoku Kinko Hyo, complemented with RSI and price structure, designed to help traders objectively evaluate whether a bullish setup is valid or not.
⚠️ This indicator does NOT generate buy or sell signals.
⚠️ It is NOT a trading system or financial advice.
The core philosophy is discipline and consistency:
If there is no setup, there is no trade.
________________________________________
✅ The 5 Rules Evaluated
1. Chikou Span above price (26 bars back)
Confirms that current price is above historical price, validating a bullish context.
2. Bullish TK Cross (Tenkan-sen > Kijun-sen)
Measures bullish momentum within the Ichimoku framework.
3. Bullish divergence or convergence between RSI and price
Evaluates relative strength using recent RSI pivots and price structure.
4. Kumo breakout followed by a valid pullback
Requires a bullish cloud breakout and a pullback that respects the structure.
5. Bullish Kumo (green cloud / twist)
Confirms that the Ichimoku cloud supports a bullish bias.
________________________________________
🚦 Decision Traffic Light (Final Row)
The last row of the table provides a traffic-light style summary:
• 🟢 5/5 rules met → Valid setup
• 🟡 1–4 rules met → Incomplete setup
• 🔴 0 rules met → No trade
Core message displayed: “No setup, No trade!” 🚫
________________________________________
🎨 Customization
Through the Inputs panel, users can customize:
• Header, body, and footer background colors
• Traffic-light colors and icons (🟢 🟡 🔴)
• Text alignment (left / center / right)
• Optional rule counter (x/5)
⚠️ Tables do not use TradingView’s Style tab; all customization is handled via Inputs.
________________________________________
⏱️ Timeframe
The indicator is timeframe-agnostic, but it was designed and tested primarily on the 1H timeframe, where Ichimoku and RSI structure tend to be more consistent.
________________________________________
⚠️ Disclaimer
This script is provided for educational and informational purposes only.
It does not constitute financial advice or a recommendation to buy or sell any asset.
Trading involves risk, and all decisions remain the sole responsibility of the user.
Remember that every strategy is based on probabilities and scenarios that you have already tested in hundreds of trades.
________________________________________
👤 Author
© Yesid Correa Cano
Pine Script v6
License: Mozilla Public License 2.0 (MPL-2.0)
VP + Fib + AVWAP + Graded Signals An indicator for the discretionary trader
Avwap, Fib and VP is all you need.
Graded signals for conviction.
VX-Time Quadrant Overlay (Quarterly Cycles) by Ikaru-s-The Time Quadrant Overlay is a purely time-based visualization tool designed to structure market time into repeating quarterly cycles across multiple timeframes.
It does not generate trade signals, entries, or bias.
Its sole purpose is to provide time context, so price action can be interpreted within a clear cyclical framework.
What this indicator does
The indicator divides time into four repeating quarters (Q1–Q4) and displays them simultaneously across different time horizons, such as:
Weekly
Daily (6-hour quarters)
90-minute cycles
Micro cycles (within 90-minute structure)
Each row represents a different time cycle, allowing traders to see time alignment, transitions, and overlaps at a glance.
Quarter Structure
Each cycle follows the same repeating sequence:
Q1 – Early phase
Q2 – Expansion / “True Open” phase
Q3 – Continuation
Q4 – Late phase / Transition
The quarters are visualized using color-coded boxes, making it easy to see:
where the market currently is in time
when a new quarter begins
when multiple cycles align or diverge
Quarter Start Marker
An optional Quarter Start Marker (vertical dashed line) can be enabled to highlight the start of a selected quarter (default: Q2).
This is intended as a time reference, not a signal:
useful for planning
useful for contextualizing reactions to levels
useful for session and cycle awareness
How to use it (practical)
This tool is best used to:
provide time structure to existing analysis
plan around upcoming time transitions
contextualize reactions to levels or areas
understand where price is acting within a cycle
It works well alongside:
discretionary price action
session-based trading
futures and index markets
any methodology that respects time as a variable
Customization
The indicator is fully customizable:
Enable / disable individual cycles
Adjust box transparency and history depth
Toggle labels and pane labels
Enable / disable quarter start markers
Select which quarter to highlight
This allows the tool to remain clean on higher timeframes and detailed on lower ones.
Important Notes
This is a visual framework, not a strategy.
No claims of predictive power are made.
Time structure does not replace risk management or execution logic.
The indicator is designed to adapt across markets, but interpretation remains discretionary.
Final Thoughts
Time is often treated as secondary to price.
This tool exists to make time visible, structured, and easy to work with — nothing more, nothing less.
MP SESSIONS, DST, OTTMP SESSIONS, DST, OTT – What this indicator does
This script is a multi-session market timing tool that:
Draws full trading sessions on the chart (Asia, Sydney, Tokyo, Shanghai, Europe, London, New York, NYSE)
Automatically adjusts for Daylight Saving Time (DST) for Sydney, London, and New York
Shows a live info table with session times, DST status, and whether each session is currently open or closed
Adds optional custom “OTT” vertical lines at user-defined intraday times (for your own models, killzones, or time blocks)
Main Features (high level)
1. Market mode & time zone handling
Market Mode:
Forex
Stock
User Custom (you type your own session ranges)
TFlab suggestion (predefined “optimized” session times)
Time Zone Mode:
UTC
Session Local Time (local exchange time: Sydney, Tokyo, London, New York etc.)
Your Time Zone (converts to the user-selected TZ, e.g. UTC-4:00)
Handles separate time zones for:
Asia, Sydney, Tokyo, Shanghai, Europe, London, New York, NYSE
Has logic to recalculate session start/end depending on DST and the chosen mode.
2. Daylight Saving Time (DST) engine
The function DST_Detector:
Calculates when DST starts and ends for:
Australia/Sydney
Europe/London
America/New_York
Detects the correct Sunday (2nd, 4th, etc.) for start/end using day-of-week and week counts.
Returns 'Active' or 'Inactive' for each region.
These values are then used to shift the sessions (e.g. New York 13:00–21:00 vs 12:00–20:00 in UTC).
The script can also draw vertical lines on the chart when DST starts/ends and label them:
“Sydney DST Started / Ended”
“London DST Started / Ended”
“New York DST Started / Ended”
3. Session timing & sessions on the chart
The function Market_TimeZone_Calculator:
Based on Market Mode + Time Zone Mode + DST state, it returns:
Time ranges for: Sydney, Tokyo, Shanghai, Asia (combined), Europe, London, New York, NYSE
These ranges are in "HHMM-HHMM" format.
Then the script:
Converts these to time() conditions using the proper time zone
Creates boolean series like On_sesAsia, On_sesEurope, On_sesNewYork, etc., which are 1 when the session is open and 0 when closed.
4. Session high/low boxes & labels
The function LowHighSessionDetector:
Tracks high and low of each session while it’s active.
When a new session starts:
Resets and starts recording the session high/low.
While session is active:
Updates High with the max of current bar high and previous session high.
Updates Low with the min of current bar low and previous session low.
When the session is "on":
Draws a box from session low to high (box.new) and extends it to the right as long as the session continues.
Places a label with session name (Asia, London, New York, etc.) near the high:
Style depends on the session (down/right/left).
You have visibility toggles per session:
Asia Session, Sydney Session, Tokyo Session, Shanghai Session, Europe Session, London Session, New York Session, NYSE (for TFlab mode).
So you visually see:
A shaded box for each session
The full H/L range for that session
A text label with the session name.
5. Info table
The indicator builds a table in a corner of the chart showing:
Header:
“FOREX Session”, “Stock Market Trading Hours”, “User Custom Session”, or “TFlab suggestion” depending on mode.
Columns:
Session name (Asia, Sydney, Tokyo, Shanghai, Europe, London, New York, NYSE)
DST status for that region (“Active 🌞 / Inactive 🍂 / Not Observed”)
Session start time
Session end time
Current status (“Open / Closed”, with green/red background)
The function SplitFunction:
Parses the "HHMM-HHMM" strings for each session.
Converts them into:
Either raw times (if viewing in UTC/session local)
Or converted times in Your Time Zone using timestamp and hour/ minute with YourTZ.
Returns formatted Start and End strings like 9:30, 13:00, etc.
So the table is effectively a live session schedule that:
Auto-adjusts to DST
Can show times in your own time zone
Shows which session is open right now.
6. OTT vertical lines (custom intraday markers)
At the bottom, there is an OTT section which lets you draw up to three sets of vertical lines at specific times:
Each OTT block has:
Enable toggle (Enable OTT 1/2/3)
Start hour & minute
End hour & minute
Color
Global OTT settings:
Line style: Solid / Dashed / Dotted
Line width
Toggle: “Show OTT Labels?”
Logic:
is_ott_time() checks if current bar’s hour and minute match the OTT input time.
draw_ott():
When the bar time matches, draws a vertical line through the candle from low to high (extend.both).
Optionally adds a label above the bar, like "OTT1 Start", "OTT1 End", etc.
Use cases:
Marking open/close of your trading session
Defining killzones, news times, or custom model windows
Visual anchors for your intraday routine (NY open, 10 AM candle, etc.)






















