لbsm15// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
// © LuxAlgo
//@version=5
indicator("لbsm15", overlay = true, max_lines_count = 500, max_boxes_count = 500, max_bars_back = 3000)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
liqGrp = 'Liquidity Detection'
liqLen = input.int (7, title = 'Detection Length', minval = 3, maxval = 13, inline = 'LIQ', group = liqGrp)
liqMar = 10 / input.float (6.9, 'Margin', minval = 4, maxval = 9, step = 0.1, inline = 'LIQ', group = liqGrp)
liqBuy = input.bool (true, 'Buyside Liquidity Zones, Margin', inline = 'Buyside', group = liqGrp)
marBuy = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Buyside', group = liqGrp)
cLIQ_B = input.color (color.new(#4caf50, 0), '', inline = 'Buyside', group = liqGrp)
liqSel = input.bool (true, 'Sellside Liquidity Zones, Margin', inline = 'Sellside', group = liqGrp)
marSel = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Sellside', group = liqGrp)
cLIQ_S = input.color (color.new(#f23645, 0), '', inline = 'Sellside', group = liqGrp)
lqVoid = input.bool (false, 'Liquidity Voids, Bullish', inline = 'void', group = liqGrp)
cLQV_B = input.color (color.new(#4caf50, 0), '', inline = 'void', group = liqGrp)
cLQV_S = input.color (color.new(#f23645, 0), 'Bearish', inline = 'void', group = liqGrp)
lqText = input.bool (false, 'Label', inline = 'void', group = liqGrp)
mode = input.string('Present', title = 'Mode', options = , inline = 'MOD', group = liqGrp)
visLiq = input.int (3, ' # Visible Levels', minval = 1, maxval = 50, inline = 'MOD', group = liqGrp)
//-----------------------------------------------------------------------------}
//General Calculations
//-----------------------------------------------------------------------------{
maxSize = 50
atr = ta.atr(10)
atr200 = ta.atr(200)
per = mode == 'Present' ? last_bar_index - bar_index <= 500 : true
//-----------------------------------------------------------------------------}
//User Defined Types
//-----------------------------------------------------------------------------{
// @type used to store pivot high/low data
//
// @field d (array) The array where the trend direction is to be maintained
// @field x (array) The array where the bar index value of pivot high/low is to be maintained
// @field y (array) The array where the price value of pivot high/low is to be maintained
type ZZ
int d
int x
float y
// @type bar properties with their values
//
// @field o (float) open price of the bar
// @field h (float) high price of the bar
// @field l (float) low price of the bar
// @field c (float) close price of the bar
// @field i (int) index of the bar
type bar
float o = open
float h = high
float l = low
float c = close
int i = bar_index
// @type liquidity object definition
//
// @field bx (box) box maitaing the liquity level margin extreme levels
// @field bxz (box) box maitaing the liquity zone margin extreme levels
// @field bxt (box) box maitaing the labels
// @field brZ (bool) mainains broken zone status
// @field brL (bool) mainains broken level status
// @field ln (line) maitaing the liquity level line
// @field lne (line) maitaing the liquity extended level line
type liq
box bx
box bxz
box bxt
bool brZ
bool brL
line ln
line lne
//-----------------------------------------------------------------------------}
//Variables
//-----------------------------------------------------------------------------{
var ZZ aZZ = ZZ.new(
array.new (maxSize, 0),
array.new (maxSize, 0),
array.new (maxSize, na)
)
bar b = bar.new()
var liq b_liq_B = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var liq b_liq_S = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var b_liq_V = array.new_box()
var int dir = na, var int x1 = na, var float y1 = na, var int x2 = na, var float y2 = na
//-----------------------------------------------------------------------------}
//Functions/methods
//-----------------------------------------------------------------------------{
// @function maintains arrays
// it prepends a `value` to the arrays and removes their oldest element at last position
// @param aZZ (UDT, array, array>) The UDT obejct of arrays
// @param _d (array) The array where the trend direction is maintained
// @param _x (array) The array where the bar index value of pivot high/low is maintained
// @param _y (array) The array where the price value of pivot high/low is maintained
//
// @returns none
method in_out(ZZ aZZ, int _d, int _x, float _y) =>
aZZ.d.unshift(_d), aZZ.x.unshift(_x), aZZ.y.unshift(_y), aZZ.d.pop(), aZZ.x.pop(), aZZ.y.pop()
// @function (build-in) sets the maximum number of bars that is available for historical reference
max_bars_back(time, 1000)
//-----------------------------------------------------------------------------}
//Calculations
//-----------------------------------------------------------------------------{
x2 := b.i - 1
ph = ta.pivothigh(liqLen, 1)
pl = ta.pivotlow (liqLen, 1)
if ph
dir := aZZ.d.get(0)
x1 := aZZ.x.get(0)
y1 := aZZ.y.get(0)
y2 := nz(b.h )
if dir < 1
aZZ.in_out(1, x2, y2)
else
if dir == 1 and ph > y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == 1
if aZZ.y.get(i) > ph + (atr / liqMar)
break
else
if aZZ.y.get(i) > ph - (atr / liqMar) and aZZ.y.get(i) < ph + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_B.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_B.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor = color(na), border_color = color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Buyside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_bottom, text_color = color.new(cLIQ_B, 25), bgcolor = color(na), border_color = color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_B, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_B, 0), style = line.style_dotted))
)
alert('buyside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_B.size() > visLiq
getLast = b_liq_B.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
if pl
dir := aZZ.d.get (0)
x1 := aZZ.x.get (0)
y1 := aZZ.y.get (0)
y2 := nz(b.l )
if dir > -1
aZZ.in_out(-1, x2, y2)
else
if dir == -1 and pl < y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == -1
if aZZ.y.get(i) < pl - (atr / liqMar)
break
else
if aZZ.y.get(i) > pl - (atr / liqMar) and aZZ.y.get(i) < pl + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_S.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_S.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor=color(na), border_color=color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Sellside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_top, text_color = color.new(cLIQ_S, 25), bgcolor=color(na), border_color=color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_S, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_S, 0), style = line.style_dotted))
)
alert('sellside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_S.size() > visLiq
getLast = b_liq_S.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
for i = 0 to b_liq_B.size() - 1
x = b_liq_B.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.h > x.bx.get_top()
x.brL := true
x.brZ := true
alert('buyside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, math.min(x.ln.get_y1() + marBuy * (atr), b.h))
x.bxz.set_rightbottom(b.i + 1, x.ln.get_y1())
x.bxz.set_bgcolor(color.new(cLIQ_B, liqBuy ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marBuy * (atr) and b.h < x.ln.get_y1() + marBuy * (atr)
x.bxz.set_right(b.i + 1)
x.bxz.set_top(math.max(b.h, x.bxz.get_top()))
if liqBuy
x.lne.set_x2(b.i + 1)
else
x.brZ := false
for i = 0 to b_liq_S.size() - 1
x = b_liq_S.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.l < x.bx.get_bottom()
x.brL := true
x.brZ := true
alert('sellside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, x.ln.get_y1())
x.bxz.set_rightbottom(b.i + 1, math.max(x.ln.get_y1() - marSel * (atr), b.l))
x.bxz.set_bgcolor(color.new(cLIQ_S, liqSel ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marSel * (atr) and b.h < x.ln.get_y1() + marSel * (atr)
x.bxz.set_rightbottom(b.i + 1, math.min(b.l, x.bxz.get_bottom()))
if liqSel
x.lne.set_x2(b.i + 1)
else
x.brZ := false
if lqVoid and per
bull = b.l - b.h > atr200 and b.l > b.h and b.c > b.h
bear = b.l - b.h > atr200 and b.h < b.l and b.c < b.l
if bull
l = 13
if bull
st = math.abs(b.l - b.l ) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.l + i * st, b.i, b.l + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
st = math.abs(b.l - b.h ) / l
for i = 0 to l - 1
if lqText and i == 0
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_bottom, text_color = na, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
if bear
l = 13
if bear
st = math.abs(b.h - b.h) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
st = math.abs(b.l - b.h) / l
for i = 0 to l - 1
if lqText and i == l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_top, text_color = na, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
if b_liq_V.size() > 0
qt = b_liq_V.size()
for bn = qt - 1 to 0
if bn < b_liq_V.size()
cb = b_liq_V.get(bn)
ba = math.avg(cb.get_bottom(), cb.get_top())
if math.sign(b.c - ba) != math.sign(b.c - ba) or math.sign(b.c - ba) != math.sign(b.l - ba) or math.sign(b.c - ba) != math.sign(b.h - ba)
b_liq_V.remove(bn)
else
cb.set_right(b.i + 1)
if b.i - cb.get_left() > 21
cb.set_text_color(color.new(color.gray, 25))
//-----------------------------------------------------------------------------}
在脚本中搜索"high low"
Day-Type Detector — Rejection / FNL / Outside / StopRun (Clean)Day-Type Detector — Rejection / FNL / Outside / Stop-Run (Clean Version)
This indicator identifies four high-impact candlestick day-types commonly used in professional price-action and auction-market trading: Rejection Days, Failed New Low (FNL) Days, Outside Days, and Stop-Run Days. These patterns often precede major directional moves, reversals, and absorption events, making them particularly valuable for swing traders, positional traders, and short-term discretionary traders.
The script is designed to work across all timeframes and is built around volatility-adjusted measurements using Average Daily Range (ADR) for accuracy and consistency.
What This Indicator Detects
1. Rejection Day (Bullish & Bearish)
A Rejection Day is a wide-range bar that rejects a previous extreme.
The indicator identifies rejection based on:
Range > ADR × threshold
Long lower wick (for bullish) or long upper wick (for bearish)
Close located in the strong zone of the day’s range
These conditions highlight areas where aggressive counter-orderflow entered the market.
2. Failed New Low (FNL) / Failed New High
An FNL day traps traders who attempted breakout selling or buying.
The indicator checks for:
A break beyond the previous session’s low or high
Immediate rejection back inside
Midpoint recapture conditions
ADR-normalized range requirements
These days often trigger powerful directional reversals.
3. Outside Day (Bullish & Bearish)
An Outside Day is a statistically significant expansion day that breaks both the previous high and low.
The script validates:
High > previous high and low < previous low
Range > ADR threshold
Close beyond prior session extreme to complete the rejection sequence
Outside Days often represent stop runs, shakeouts, or trend accelerations.
4. Stop-Run Day (Bullish & Bearish)
Stop-Run Days are aggressive volatility expansions and tend to be the largest ranges within short windows.
This detector identifies them using:
Range > ADR × multiplier
Close located near the extreme of the day (top for bullish, bottom for bearish)
Strong body relative to total range
Break above/below previous session extreme
These patterns indicate capitulation or forced liquidation and are often followed by continuation or sharp counter-rotation.
Key Features
✔ Historical Pattern Marking
All qualifying bars are marked on the chart using plotshape() in global scope, ensuring full historical visibility.
✔ Event Logging & Table Display
A table (top-right of the chart) displays the most recent pattern detections, including:
Timestamp
Pattern type
Bar index
This allows users to monitor and study past pattern occurrences without scanning the chart manually.
✔ ADR-Adjusted Detection
Volatility uncertainty is removed by anchoring all thresholds to ADR.
This ensures consistency across:
Different symbols
Different timeframes
Different market regimes
✔ Alerts Included
Alerts are preconfigured for:
Rejection Day Bull / Bear
FNL Bull / Bear
Outside Day Bull / Bear
Stop-Run Bull / Bear
This allows the user to receive real-time notifications when major day-type structures develop.
How to Use
Add the indicator to any timeframe chart.
Enable or disable:
Historical markers
History table
ADR diagnostics
Watch for shape markers or use alerts for real-time signals.
Use the history table to review recent occurrences.
Combine these day-types with:
Market structure levels
High/low volume nodes (LVNs)
Support/resistance zones
Trend context
These day-types are most effective when they occur near meaningful structural levels because they show where strong order-flow entered the market.
Best Practices
Use higher timeframes (1H–1D) for swing entries.
Confirm signals with market structure or volume profile.
Treat these day-types as context, not standalone signals.
Observe follow-through behavior in the next 1–3 bars after detection.
Credits
This script is based on concepts commonly seen in auction-market theory and professional price-action frameworks, such as Rejection Days, Failed New Lows, Outside Days, and Stop-Run behaviors.
All calculations and logic have been rebuilt from scratch to ensure clean, reliable, and optimized Pine Script v6 execution.
Scout Regiment - D17# Scout Regiment - D17 Indicator
## English Documentation
### Overview
Scout Regiment - D17 is a comprehensive TradingView indicator that combines multiple technical analysis tools into one powerful overlay indicator. It provides traders with market structure analysis, divergence detection, volume profiling, smart money concepts, and session analysis.
### Key Features
#### 1. **EMA (Exponential Moving Averages)**
- **Purpose**: Trend identification and dynamic support/resistance levels
- **Configuration**: 13 customizable EMAs with adjustable periods
- **Default Active EMAs**: EMA 3 (21), EMA 5 (55), EMA 7 (144), EMA 8 (233)
- **Uses**: Identify trend direction, entry/exit points, and trend strength
- **Color Coding**: Different colors for easy visual distinction
#### 2. **TFMA (Timeframe Moving Averages)**
- **Purpose**: Multi-timeframe trend analysis
- **Features**:
- 3 EMAs on higher timeframes
- Dynamic labels showing trend direction
- Price difference percentage display
- Customizable timeframe settings
- **Default Settings**: 21-period timeframe with lengths 55, 144, and 233
- **Benefits**: Align trades with higher timeframe trends
#### 3. **DFMA (Daily Frame Moving Averages)**
- **Purpose**: Daily timeframe perspective on any chart
- **Features**: Similar to TFMA but specifically for daily analysis
- **Default Timeframe**: 1D (Daily)
- **Use Case**: Long-term trend confirmation and positioning
#### 4. **PMA (Price Moving Averages)**
- **Purpose**: Price channel analysis with filled areas
- **Configuration**: 7 customizable moving averages with fill zones
- **Default Lengths**: 12, 144, 169, 288, 338, 576, 676
- **Visual**: Color-filled zones between selected MAs for channel trading
#### 5. **VWAP (Volume Weighted Average Price)**
- **Purpose**: Institutional trading levels and fair value
- **Features**:
- Multiple anchor periods (Session, Week, Month, Quarter, Year, etc.)
- Standard deviation bands
- Corporate event anchoring (Earnings, Dividends, Splits)
- **Use Case**: Identify institutional support/resistance and mean reversion opportunities
#### 6. **Divergence Detector**
- **Purpose**: Identify potential trend reversals
- **Supported Indicators**: MACD, MACD Histogram, RSI, Stochastic, CCI, Williams %R, Bias, Momentum, OBV, SOBV, VWmacd, CMF, MFI, and external indicators
- **Divergence Types**:
- Regular Bullish/Bearish
- Hidden Bullish/Bearish
- **Features**:
- Automatic divergence line drawing
- Customizable detection parameters
- Color-coded alerts
#### 7. **Volume Profile & Node Detection**
- **Purpose**: Identify key price levels based on volume distribution
- **Features**:
- Volume Profile with POC (Point of Control)
- Value Area High (VAH) and Value Area Low (VAL)
- Peak and trough volume node detection
- Highest/lowest volume node highlighting
- **Lookback**: Configurable (default 377 bars)
- **Use Case**: Identify support/resistance zones and liquidity areas
#### 8. **Smart Money Concepts**
- **Purpose**: Track institutional trading patterns
- **Features**:
- Market Structure (BOS - Break of Structure, CHoCH - Change of Character)
- Internal and Swing structures
- Strong/Weak Highs and Lows
- Equal Highs/Lows detection
- Fair Value Gaps (FVG)
- **Modes**: Historical or Present (latest only)
- **Use Case**: Trade with institutional flow
#### 9. **Trading Sessions**
- **Purpose**: Analyze market behavior during different global sessions
- **Available Sessions**:
- Asian Session
- Sydney, Tokyo, Shanghai, Hong Kong
- European Session
- London, New York, NYSE
- **Features**:
- Session boxes with high/low visualization
- Real-time countdown timers
- Volume and price change tracking
- Information table with session statistics
- **Customization**: Choose which sessions to display, colors, and box styles
### How to Use
#### For Trend Following:
1. Enable EMAs 3, 5, 7, and 8
2. Use TFMA for higher timeframe confirmation
3. Look for price above/below key EMAs for trend direction
4. Use VWAP as additional confirmation
#### For Reversal Trading:
1. Enable Divergence Detector with MACD Histogram and Bias
2. Look for divergences at key support/resistance levels
3. Confirm with Smart Money CHoCH signals
4. Use Volume Profile nodes as entry/exit targets
#### For Intraday Trading:
1. Enable Trading Sessions
2. Focus on high-volume sessions (London, New York overlap)
3. Use session highs/lows as support/resistance
4. Trade Fair Value Gaps during active sessions
#### For Swing Trading:
1. Use DFMA for daily trend
2. Enable PMA for channel identification
3. Look for price reactions at volume profile value areas
4. Confirm with swing structure breaks
### Best Practices
1. **Don't Overcrowd**: Enable only the components you need for your strategy
2. **Multi-Timeframe Analysis**: Always check higher timeframe TFMA/DFMA
3. **Confluence**: Look for multiple signals confirming the same direction
4. **Volume Confirmation**: Use Volume Profile to validate price action
5. **Session Awareness**: Be aware of which session is active for volatility expectations
### Performance Optimization
- Disable unused features to improve chart loading speed
- Use "Present Mode" for Smart Money Concepts if historical data isn't needed
- Reduce Volume Profile lookback period on slower devices
### Alerts
The indicator includes alert conditions for:
- All divergence types (8 conditions)
- Smart Money structure breaks (8 conditions)
- Equal highs/lows detection
- Fair Value Gaps formation
---
## 中文说明文档
### 概述
Scout Regiment - D17 是一款综合性TradingView指标,将多个技术分析工具整合到一个强大的叠加指标中。它为交易者提供市场结构分析、背离检测、成交量分析、聪明钱概念和时区分析。
### 核心功能
#### 1. **EMA(指数移动平均线)**
- **用途**:趋势识别和动态支撑阻力位
- **配置**:13条可自定义周期的EMA
- **默认启用**:EMA 3(21)、EMA 5(55)、EMA 7(144)、EMA 8(233)
- **应用**:识别趋势方向、进出场点位和趋势强度
- **颜色编码**:不同颜色便于视觉区分
#### 2. **TFMA(时间框架移动平均线)**
- **用途**:多时间框架趋势分析
- **特点**:
- 3条更高时间框架的EMA
- 显示趋势方向的动态标签
- 价格差异百分比显示
- 可自定义时间框架设置
- **默认设置**:21周期时间框架,长度为55、144和233
- **优势**:使交易与更高时间框架趋势保持一致
#### 3. **DFMA(日线框架移动平均线)**
- **用途**:在任何图表上提供日线时间框架视角
- **特点**:与TFMA类似,但专门用于日线分析
- **默认时间框架**:1D(日线)
- **使用场景**:长期趋势确认和定位
#### 4. **PMA(价格移动平均线)**
- **用途**:价格通道分析与填充区域
- **配置**:7条可自定义的移动平均线,带填充区域
- **默认长度**:12、144、169、288、338、576、676
- **视觉效果**:选定MA之间的彩色填充区域,用于通道交易
#### 5. **VWAP(成交量加权平均价格)**
- **用途**:机构交易水平和公允价值
- **特点**:
- 多个锚定周期(交易日、周、月、季度、年等)
- 标准差波段
- 企业事件锚定(财报、分红、拆股)
- **使用场景**:识别机构支撑阻力和均值回归机会
#### 6. **背离检测器**
- **用途**:识别潜在趋势反转
- **支持指标**:MACD、MACD柱状图、RSI、随机指标、CCI、威廉指标、乖离率、动量、OBV、SOBV、VWmacd、CMF、MFI及外部指标
- **背离类型**:
- 常规看涨/看跌背离
- 隐藏看涨/看跌背离
- **特点**:
- 自动绘制背离连线
- 可自定义检测参数
- 颜色编码警报
#### 7. **成交量分布与节点检测**
- **用途**:基于成交量分布识别关键价格水平
- **特点**:
- 成交量分布图与POC(控制点)
- 价值区域高点(VAH)和低点(VAL)
- 峰值和低谷成交量节点检测
- 最高/最低成交量节点突出显示
- **回溯期**:可配置(默认377根K线)
- **使用场景**:识别支撑阻力区域和流动性区域
#### 8. **聪明钱概念**
- **用途**:追踪机构交易模式
- **特点**:
- 市场结构(BOS-突破结构、CHoCH-结构转变)
- 内部和摆动结构
- 强/弱高低点
- 等高/等低检测
- 公允价值缺口(FVG)
- **模式**:历史模式或当前模式(仅最新)
- **使用场景**:跟随机构资金流动交易
#### 9. **交易时区**
- **用途**:分析不同全球时段的市场行为
- **可用时段**:
- 亚洲时段
- 悉尼、东京、上海、香港
- 欧洲时段
- 伦敦、纽约、纽交所
- **特点**:
- 时段方框显示高低点
- 实时倒计时
- 成交量和价格变化追踪
- 时段统计信息表格
- **自定义**:选择显示哪些时段、颜色和方框样式
### 使用方法
#### 趋势跟随策略:
1. 启用EMA 3、5、7和8
2. 使用TFMA进行更高时间框架确认
3. 观察价格在关键EMA上方/下方确定趋势方向
4. 使用VWAP作为额外确认
#### 反转交易策略:
1. 启用背离检测器(MACD柱状图和乖离率)
2. 在关键支撑阻力位寻找背离
3. 用聪明钱CHoCH信号确认
4. 使用成交量分布节点作为进出场目标
#### 日内交易策略:
1. 启用交易时区
2. 关注高成交量时段(伦敦、纽约重叠时段)
3. 使用时段高低点作为支撑阻力
4. 在活跃时段交易公允价值缺口
#### 波段交易策略:
1. 使用DFMA确定日线趋势
2. 启用PMA识别通道
3. 观察价格在成交量分布价值区域的反应
4. 用摆动结构突破确认
### 最佳实践
1. **避免过度拥挤**:仅启用策略所需的组件
2. **多时间框架分析**:始终检查更高时间框架的TFMA/DFMA
3. **汇合点**:寻找多个信号确认同一方向
4. **成交量确认**:使用成交量分布验证价格行为
5. **时段意识**:了解当前活跃时段以预期波动性
### 性能优化
- 禁用未使用的功能以提高图表加载速度
- 如果不需要历史数据,对聪明钱概念使用"当前模式"
- 在较慢设备上减少成交量分布回溯期
### 警报
指标包含以下警报条件:
- 所有背离类型(8个条件)
- 聪明钱结构突破(8个条件)
- 等高/等低检测
- 公允价值缺口形成
---
## Technical Support
For questions or issues, please refer to the TradingView community or contact the indicator creator.
## 技术支持
如有问题,请参考TradingView社区或联系指标创建者。
Live Session Extremes: Asia / London / NY (5m)This script automatically tracks and plots the live high and low levels of the three major Forex trading sessions:
Asia Session (18:00–03:00) — Teal
London Session (03:00–08:00) — Blue
New York Session (08:00–12:00) — Red
Designed specifically for 5-minute charts, it updates in real time as each session forms new highs or lows.
You always see the most recent session’s levels, cleanly plotted and color-coded on your chart.
✔ Features
Live updating lines for each session’s high & low
Lines anchored to the exact candles that created the extreme
Auto-cleaning: old session levels are deleted when a new session begins
Clear labeling:
Asia High / Asia Low (Teal)
London High / London Low (Blue)
NY High / NY Low (Red)
Extend-right option for projecting session levels into future price action
Built for precision session-based strategies such as:
Liquidity grabs
Session sweeps
BOS/CHOCH analysis
ICT-style trading
High/low power levels
DAO - Demand Advanced Oscillator# DAO - Demand Advanced Oscillator
## 📊 Overview
DAO (Demand Advanced Oscillator) is a powerful momentum oscillator that measures buying and selling pressure by analyzing consecutive high-low relationships. It helps identify market extremes, divergences, and potential trend reversals.
**Values range from 0 to 1:**
- **Above 0.70** = Overbought (potential reversal down)
- **Below 0.30** = Oversold (potential reversal up)
- **0.30 - 0.70** = Neutral zone
---
## ✨ Key Features
✅ **Automatic Divergence Detection**
- Bullish divergences (price lower low + DAO higher low)
- Bearish divergences (price higher high + DAO lower high)
- Visual lines connecting divergence points
✅ **Multi-Timeframe Analysis**
- View higher timeframe DAO on current chart
- Perfect for trend alignment strategies
✅ **Signal Line (EMA)**
- Customizable EMA for trend confirmation
- Crossover signals for momentum shifts
✅ **Real-Time Statistics Dashboard**
- Current DAO value
- Market status (Overbought/Oversold/Neutral)
- Trend direction indicator
✅ **Complete Alert System**
- Overbought/Oversold signals
- Bullish/Bearish divergences
- Signal line crosses
- Level crosses
✅ **Fully Customizable**
- Adjustable periods and levels
- Customizable colors and zones
- Toggle features on/off
---
## 📈 Trading Signals
### 1. Divergences (Most Powerful)
**Bullish Divergence:**
- Price makes lower low
- DAO makes higher low
- Signal: Strong reversal up likely
**Bearish Divergence:**
- Price makes higher high
- DAO makes lower high
- Signal: Strong reversal down likely
### 2. Overbought/Oversold
**Overbought (>0.70):**
- Market may be overextended
- Consider taking profits or looking for shorts
- Can remain overbought in strong trends
**Oversold (<0.30):**
- Market may be oversold
- Consider buying opportunities
- Can remain oversold in strong downtrends
### 3. Signal Line Crossovers
**Bullish Cross:**
- DAO crosses above signal line
- Momentum turning positive
**Bearish Cross:**
- DAO crosses below signal line
- Momentum turning negative
### 4. Level Crosses
**Cross Above 0.30:** Exiting oversold zone (potential uptrend)
**Cross Below 0.70:** Exiting overbought zone (potential downtrend)
---
## ⚙️ Default Settings
📊 Oscillator Period: 14
Number of bars for calculation
📈 Signal Line Period: 9
EMA period for signal line
🔴 Overbought Level: 0.70
Upper threshold
🟢 Oversold Level: 0.30
Lower threshold
🎯 Divergence Detection: ON
Auto divergence identification
⏰ Multi-Timeframe: OFF
Higher TF overlay (optional)
All parameters are fully customizable!
---
## 🔔 Alerts
Six pre-configured alerts available:
1. DAO Overbought
2. DAO Oversold
3. DAO Bullish Divergence
4. DAO Bearish Divergence
5. DAO Signal Cross Up
6. DAO Signal Cross Down
**Setup:** Right-click indicator → Add Alert → Choose condition
---
## 💡 How to Use
### Best Practices:
✅ Focus on divergences (strongest signals)
✅ Combine with support/resistance levels
✅ Use multiple timeframes for confirmation
✅ Wait for price action confirmation
✅ Practice proper risk management
### Avoid:
❌ Trading on indicator alone
❌ Fighting strong trends
❌ Ignoring market context
❌ Overtrading
### Recommended Settings by Trading Style:
**Day Trading:** Period 7-10, All alerts ON
**Swing Trading:** Period 14-21, Divergence alerts
**Scalping:** Period 5-7, Signal crosses
**Position Trading:** Period 21-30, Weekly/Daily TF
---
## 🌍 Markets & Timeframes
**Works on all markets:**
- Forex (all pairs)
- Stocks (all exchanges)
- Cryptocurrencies
- Commodities
- Indices
- Futures
**Works on all timeframes:** 1m to Monthly
---
## 📊 How It Works
DAO calculates the ratio of buying pressure to total market pressure:
1. **Calculate Buying Pressure (DemandMax):**
- If current high > previous high: DemandMax = difference
- Otherwise: DemandMax = 0
2. **Calculate Selling Pressure (DemandMin):**
- If previous low > current low: DemandMin = difference
- Otherwise: DemandMin = 0
3. **Apply Smoothing:**
- Calculate SMA of DemandMax over N periods
- Calculate SMA of DemandMin over N periods
4. **Final Formula:**
```
DAO = SMA(DemandMax) / (SMA(DemandMax) + SMA(DemandMin))
```
This produces a normalized value (0-1) representing market demand strength.
---
## 🎯 Trading Strategies
### Strategy 1: Divergence Trading
- Wait for divergence label
- Confirm at support/resistance
- Enter on confirming candle
- Stop loss beyond recent swing
- Target: opposite level or 0.50
### Strategy 2: Overbought/Oversold
- Best for ranging markets
- Wait for extreme readings
- Enter on reversal from extremes
- Target: middle line (0.50)
### Strategy 3: Trend Following
- Identify trend direction first
- Use DAO to time entries in trend direction only
- Enter on pullbacks to oversold (uptrend) or overbought (downtrend)
- Trade with the trend
### Strategy 4: Multi-Timeframe
- Enable MTF feature
- Trade only when both timeframes align
- Higher TF = trend direction
- Lower TF = precise entry
---
## 📂 Category
**Primary:** Oscillators
**Secondary:** Statistics, Volatility, Momentum
---
## 🏷️ Tags
dao, oscillator, momentum, overbought-oversold, divergence, reversal, demand-indicator, price-exhaustion, statistics, volatility, forex, stocks, crypto, multi-timeframe, technical-analysis
---
## ⚠️ Disclaimer
**This indicator is for educational purposes only.** It does not constitute financial advice. Trading involves substantial risk of loss. Always conduct your own research, use proper risk management, and consult with financial professionals before making trading decisions. Past performance does not guarantee future results.
---
## 📄 License
Open source - Free to use for personal trading, modify as needed, and share with attribution.
---
**Version:** 1.0
**Status:** Production Ready ✅
**Pine Script:** v5
**Trademark-Free:** 100% Safe to Publish
---
*Made with 💙 for traders worldwide*
Session Breakout, Retest, Reversal + Large Move Alert## **Session Breakout, Retest, Reversal + Large Move Alert**
### Overview
A powerful multi-functional indicator designed for day traders and futures traders to identify session-based breakout opportunities, retest confirmations, and significant price movements across all futures contracts (Gold, E-mini S&P 500, Nasdaq, Crude Oil, and more).
### Key Features
**📊 Pre-Market Session Tracking**
- Automatically calculates pre-market/overnight session highs and lows
- Displays session ranges with customizable colors and styling
- Extends lines through the entire trading session for easy reference
- Supports overnight sessions (e.g., 4 PM – 7:30 AM for Gold futures)
**🚀 Breakout Detection**
- Identifies breakouts above/below pre-market highs and lows
- Uses close-price confirmation to filter false signals from wicks
- Displays "BO ↑" and "BO ↓" labels at breakout points
- Generates instant alerts when breakouts occur
**♻️ Retest Failed Tracking**
- Monitors price retests after breakouts
- Detects when retests fail to reach previous support/resistance
- Labels "RF" (Retest Failed) for high-probability trade setups
- Helps identify reversal opportunities
**📈 First 5-Minute Analysis**
- Captures first 5 minutes of market open (customizable timeframe)
- Tracks first 5-minute highs and lows separately
- Essential for mean-reversion and breakout confirmation strategies
- Blue lines extend through the trading session for easy tracking
**⚡ Large Move Alerts**
- Detects significant price movements based on point thresholds
- Individual thresholds for 5+ different symbols:
- GC (Gold): 15 points
- ES (E-mini S&P 500): 15 points
- NQ (E-mini Nasdaq): 50 points
- CL (Crude Oil): 1.5 points
- Custom: Fully adjustable
- Auto-detects symbol from chart ticker
- Labels show exact point movement and candle direction
### Customization Options
**Symbol Configuration**
- **Auto-Mode**: Automatically detects trading symbol from chart ticker
- **Manual-Mode**: Select specific symbol (GC, ES, NQ, CL, or Custom)
**Session Settings**
- Fully customizable pre-market session time (24-hour format)
- Adjustable market open time for first 5-minute window
- Market close hour and minute configuration
- Support for any timezone
**Point Move Thresholds by Symbol**
- Set independent thresholds for each of your trading symbols
- Quickly adjust settings when switching between different futures
- Includes helpful tooltips for recommended values
**Display & Styling**
- Toggle all visual elements on/off individually
- Customizable colors for all lines and labels:
- Pre-market high/low colors
- Breakout labels (up/down)
- Retest failed labels
- First 5-minute session lines
- Large move indicators
- Text size options: tiny, small, normal, large, huge
### How It Works
1. **Session Tracking**: The indicator identifies your pre-market session and marks the high and low with labeled lines (PH/PL)
2. **Breakout Signal**: Once the market opens, it monitors for close prices above/below the pre-market levels and alerts you with "BO ↑" or "BO ↓"
3. **Retest Confirmation**: After a breakout, it tracks retests and labels "RF" when the retest fails to reach the opposite extreme, confirming trade direction
4. **Large Move Detection**: Simultaneously monitors for significant point moves that exceed your symbol-specific thresholds
5. **Alert Triggers**: Get real-time alerts for:
- Breakout Up/Down
- Any Breakout
- Large Move events
### Alert Conditions
The indicator includes four alert conditions:
- **Breakout Up Alert**: Price closes above pre-market high
- **Breakout Down Alert**: Price closes below pre-market low
- **Any Breakout Alert**: Either breakout condition triggers
- **Large Move Alert**: Point movement exceeds threshold for current symbol
### Ideal For
- ✅ Day traders (breakout/retest strategies)
- ✅ Futures traders (Gold, Oil, Stock Index Contracts)
- ✅ Intraday scalpers (first 5-minute analysis)
- ✅ Swing traders (session-based levels)
- ✅ Multi-symbol traders (independent thresholds per symbol)
### Disclaimer
This indicator is designed for educational and informational purposes. Past performance does not guarantee future results. Always use proper risk management and position sizing. Test thoroughly on historical data before trading live.
Close-Only Market StructureDYOR NFA
Function of the Close-Only Market Structure Script
The script is a custom indicator designed to display the market's structural trend based only on closing prices, ignoring price wicks (highs and lows) to focus on conviction.
pivotLengthInt Input: This user setting controls the sensitivity of the structure detection. It determines how many bars to look left and right to define a swing point (e.g., a setting of 5 means a bar's close must be the highest/lowest of the 5 preceding and 5 succeeding bars).
Swing Point Identification (SH/SL): It uses the ta.pivothigh() and ta.pivotlow() functions on the close price series to define Swing Highs (SH) and Swing Lows (SL).
Structure Tracking (structureType): It compares the most recent confirmed SH and SL against the immediately preceding ones (prevSH and prevSL) to classify the trend as one of the following four states:
HH (Higher High, Higher Low): Strong Uptrend
LL (Lower High, Lower Low): Strong Downtrend
HL/LH: Complex structure, consolidation, or reversal zones.
Structure Lines: It plots two continuous stepped lines (lastSH and lastSL) that hold the price of the most recent confirmed swing points, visually defining the current structure boundaries.
BOS Detection (Break of Structure): It identifies and plots a marker (BOS) when the current bar's close definitively breaks (closes above) the lastSH or closes below the lastSL, signaling a continuation of the trend or a major structural change.
Visual Confirmation:
Plots small SH/SL labels at the confirmed swing points.
Plots small HH/HL/LH/LL labels at the swing points to show the confirmed structural state.
Applies a light background color (green for bullish/ranging-up, red for bearish/ranging-down) for an at-a-glance view of the bias.
Alerts: It provides conditions for setting up notifications when a Bullish BOS or Bearish BOS occurs.
🚀 How to Use the Script
Open TradingView: Go to the chart where you want to apply the indicator.
Open Pine Editor: Click the Pine Editor tab at the bottom of the screen.
Paste and Save:
Copy the final, corrected Pine Script code.
Delete any existing code in the editor and paste the new code.
Click the Save button (or name the script) and then click Add to Chart.
Adjust Settings:
On the chart, hover over the indicator name ("Close-MS v6") and click the Gear Icon (Settings).
Pivot Lookback (L&R): Change this value to adjust sensitivity:
Smaller number (e.g., 3): More swings detected, structure changes faster, more noise.
Larger number (e.g., 10): Fewer swings detected, structure is more significant, less noise (recommended for higher timeframes).
Interpret the Chart:
The Red Stepped Line shows your current resistance (SH).
The Green Stepped Line shows your current support (SL).
Green Background: General bullish bias (making Higher Highs/Lows).
Red Background: General bearish bias (making Lower Highs/Lows).
BOS Triangle: Signals that the price has closed and validated a break of the previous structural high or low.
Set Alerts (Optional):
Click the Alert button (bell icon) on the TradingView toolbar.
Set the Condition to the indicator ("Close-MS v6").
Select the specific Alert Condition you want to monitor (e.g., "Bullish BOS" or "Bearish BOS").
[FS] Pivot Measurements# Pivot Measurements
An advanced TradingView indicator that combines LuxAlgo's pivot point detection algorithm with automatic measurement calculations between consecutive pivots.
## Features
### Pivot Detection
- **Regular Pivots**: Detects standard pivot highs and lows using configurable pivot length
- **Missed Pivots**: Identifies missed reversal levels that occurred between regular pivots
- **Visual Indicators**:
- Regular pivot highs: Red downward triangle (▼)
- Regular pivot lows: Teal upward triangle (▲)
- Missed pivots: Ghost emoji (👻)
- **Zigzag Lines**: Connects pivots with colored lines (solid for regular, dashed for missed)
- **Ghost Levels**: Horizontal lines indicating missed pivot levels
### Measurement System
- **Automatic Measurements**: Calculates price movements between consecutive pivots
- **Visual Display**:
- Transparent colored boxes (blue for upward, red for downward movements)
- Measurement labels showing:
- Price change (absolute and percentage)
- Duration (bars, days, hours, minutes)
- Volume approximation
- **Smart Positioning**: Labels positioned outside boxes (above for upward, below for downward)
- **Color Coding**: Blue for positive movements, red for negative movements
## Parameters
### Pivot Detection
- **Pivot Length** (default: 50): Number of bars on each side to identify a pivot point
- **Regular Pivots**: Toggle and colors for regular pivot highs and lows
- **Missed Pivots**: Toggle and colors for missed pivot detection
### Measurements
- **Number of Measurements** (1-10, default: 10): Maximum number of measurements to display
- **Show Measurement Boxes**: Toggle to show/hide measurement boxes and labels
- **Box Transparency** (0-100, default: 90): Transparency level for measurement boxes
- **Border Transparency** (0-100, default: 50): Transparency level for box borders
- **Label Background Transparency** (0-100, default: 30): Transparency level for label backgrounds
- **Label Size**: Size of measurement labels (tiny, small, normal, large)
## Usage
1. Add the indicator to your chart
2. Configure the **Pivot Length** based on your timeframe:
- Lower values for shorter timeframes (e.g., 10-20 for 1-5 min)
- Higher values for longer timeframes (e.g., 50-100 for daily)
3. Adjust pivot colors and visibility as needed
4. Customize measurement display settings:
- Set the number of measurements to display
- Adjust transparency levels for boxes, borders, and labels
- Choose label size
## Technical Details
- **Pine Script Version**: v6
- **Pivot Detection**: Based on () algorithm for detecting regular and missed pivots
- **Measurement Calculation**:
- Measures between consecutive pivots (from most recent to older)
- Calculates price change, percentage change, duration, and approximate volume
- Automatically sorts pivots chronologically
- **Performance**: Optimized with helper functions to reduce code duplication
## Notes
- The indicator automatically limits the number of stored pivots to optimize performance
- Measurements are only created when there are at least 2 pivots detected
- All measurements are recalculated on each bar update
- The indicator uses `max_bars_back=5000` to ensure sufficient historical data
## License
This indicator uses LuxAlgo's pivot detection algorithm from (). Please refer to the original LuxAlgo license for pivot detection components.
LibPvotLibrary "LibPvot"
This is a library for advanced technical analysis, specializing
in two core areas: the detection of price-oscillator
divergences and the analysis of market structure. It provides
a back-end engine for signal detection and a toolkit for
indicator plotting.
Key Features:
1. **Complete Divergence Suite (Class A, B, C):** The engine detects
all three major types of divergences, providing a full spectrum of
analytical signals:
- **Regular (A):** For potential trend reversals.
- **Hidden (B):** For potential trend continuations.
- **Exaggerated (C):** For identifying weakness at double tops/bottoms.
2. **Advanced Signal Filtering:** The detection logic uses a
percentage-based price tolerance (`prcTol`). This feature
enables the practical detection of Exaggerated divergences
(which rarely occur at the exact same price) and creates a
"dead zone" to filter insignificant noise from triggering
Regular divergences.
3. **Pivot Synchronization:** A bar tolerance (`barTol`) is used
to reliably match price and oscillator pivots that do not
align perfectly on the same bar, preventing missed signals.
4. **Signal Invalidation Logic:** Features two built-in invalidation
rules:
- An optional `invalidate` parameter automatically terminates
active divergences if the price or the oscillator breaks
the level of the confirming pivot.
- The engine also discards 'half-pivots' (e.g., a price pivot)
if a corresponding oscillator pivot does not appear within
the `barTol` window.
5. **Stateful Plotting Helpers:** Provides helper functions
(`bullDivPos` and `bearDivPos`) that abstract away the
state management issues of visualizing persistent signals.
They generate gap-free, accurately anchored data series
ready to be used in `plotshape` functions, simplifying
indicator-side code.
6. **Rich Data Output:** The core detection functions (`bullDiv`, `bearDiv`)
return a comprehensive 9-field data tuple. This includes the
boolean flags for each divergence type and the precise
coordinates (price, oscillator value, bar index) of both the
starting and the confirming pivots.
7. **Market Structure & Trend Analysis:** Includes a
`marketStructure` function to automatically identify pivot
highs/lows, classify their relationship (HH, LH, LL, HL),
detect structure breaks, and determine the current trend
state (Up, Down, Neutral) based on pivot sequences.
---
**DISCLAIMER**
This library is provided "AS IS" and for informational and
educational purposes only. It does not constitute financial,
investment, or trading advice.
The author assumes no liability for any errors, inaccuracies,
or omissions in the code. Using this library to build
trading indicators or strategies is entirely at your own risk.
As a developer using this library, you are solely responsible
for the rigorous testing, validation, and performance of any
scripts you create based on these functions. The author shall
not be held liable for any financial losses incurred directly
or indirectly from the use of this library or any scripts
derived from it.
bullDiv(priceSrc, oscSrc, leftLen, rightLen, depth, barTol, prcTol, persist, invalidate)
Detects bullish divergences (Regular, Hidden, Exaggerated) based on pivot lows.
Parameters:
priceSrc (float) : series float Price series to check for pivots (e.g., `low`).
oscSrc (float) : series float Oscillator series to check for pivots.
leftLen (int) : series int Number of bars to the left of a pivot (default 5).
rightLen (int) : series int Number of bars to the right of a pivot (default 5).
depth (int) : series int Maximum number of stored pivot pairs to check against (default 2).
barTol (int) : series int Maximum bar distance allowed between the price pivot and the oscillator pivot (default 3).
prcTol (float) : series float The percentage tolerance for comparing pivot prices. Used to detect Exaggerated
divergences and filter out market noise (default 0.05%).
persist (bool) : series bool If `true` (default), the divergence flag stays active for the entire duration of the signal.
If `false`, it returns a single-bar pulse on detection.
invalidate (bool) : series bool If `true` (default), terminates an active divergence if price or oscillator break
below the confirming pivot low.
Returns: A tuple containing comprehensive data for a detected bullish divergence.
regBull series bool `true` if a Regular bullish divergence (Class A) is active.
hidBull series bool `true` if a Hidden bullish divergence (Class B) is active.
exgBull series bool `true` if an Exaggerated bullish divergence (Class C) is active.
initPivotPrc series float Price value of the initial (older) pivot low.
initPivotOsz series float Oscillator value of the initial pivot low.
initPivotBar series int Bar index of the initial pivot low.
lastPivotPrc series float Price value of the last (confirming) pivot low.
lastPivotOsz series float Oscillator value of the last pivot low.
lastPivotBar series int Bar index of the last pivot low.
bearDiv(priceSrc, oscSrc, leftLen, rightLen, depth, barTol, prcTol, persist, invalidate)
Detects bearish divergences (Regular, Hidden, Exaggerated) based on pivot highs.
Parameters:
priceSrc (float) : series float Price series to check for pivots (e.g., `high`).
oscSrc (float) : series float Oscillator series to check for pivots.
leftLen (int) : series int Number of bars to the left of a pivot (default 5).
rightLen (int) : series int Number of bars to the right of a pivot (default 5).
depth (int) : series int Maximum number of stored pivot pairs to check against (default 2).
barTol (int) : series int Maximum bar distance allowed between the price pivot and the oscillator pivot (default 3).
prcTol (float) : series float The percentage tolerance for comparing pivot prices. Used to detect Exaggerated
divergences and filter out market noise (default 0.05%).
persist (bool) : series bool If `true` (default), the divergence flag stays active for the entire duration of the signal.
If `false`, it returns a single-bar pulse on detection.
invalidate (bool) : series bool If `true` (default), terminates an active divergence if price or oscillator break
above the confirming pivot high.
Returns: A tuple containing comprehensive data for a detected bearish divergence.
regBear series bool `true` if a Regular bearish divergence (Class A) is active.
hidBear series bool `true` if a Hidden bearish divergence (Class B) is active.
exgBear series bool `true` if an Exaggerated bearish divergence (Class C) is active.
initPivotPrc series float Price value of the initial (older) pivot high.
initPivotOsz series float Oscillator value of the initial pivot high.
initPivotBar series int Bar index of the initial pivot high.
lastPivotPrc series float Price value of the last (confirming) pivot high.
lastPivotOsz series float Oscillator value of the last pivot high.
lastPivotBar series int Bar index of the last pivot high.
bullDivPos(regBull, hidBull, exgBull, rightLen, yPos)
Calculates the plottable data series for bullish divergences. It manages
the complex state of a persistent signal's plotting window to ensure
gap-free and accurately anchored visualization.
Parameters:
regBull (bool) : series bool The regular bullish divergence flag from `bullDiv`.
hidBull (bool) : series bool The hidden bullish divergence flag from `bullDiv`.
exgBull (bool) : series bool The exaggerated bullish divergence flag from `bullDiv`.
rightLen (int) : series int The same `rightLen` value used in `bullDiv` for correct timing.
yPos (float) : series float The series providing the base Y-coordinate for the shapes (e.g., `low`).
Returns: A tuple of three `series float` for plotting bullish divergences.
regBullPosY series float Contains the static anchor Y-value for Regular divergences where a shape should be plotted; `na` otherwise.
hidBullPosY series float Contains the static anchor Y-value for Hidden divergences where a shape should be plotted; `na` otherwise.
exgBullPosY series float Contains the static anchor Y-value for Exaggerated divergences where a shape should be plotted; `na` otherwise.
bearDivPos(regBear, hidBear, exgBear, rightLen, yPos)
Calculates the plottable data series for bearish divergences. It manages
the complex state of a persistent signal's plotting window to ensure
gap-free and accurately anchored visualization.
Parameters:
regBear (bool) : series bool The regular bearish divergence flag from `bearDiv`.
hidBear (bool) : series bool The hidden bearish divergence flag from `bearDiv`.
exgBear (bool) : series bool The exaggerated bearish divergence flag from `bearDiv`.
rightLen (int) : series int The same `rightLen` value used in `bearDiv` for correct timing.
yPos (float) : series float The series providing the base Y-coordinate for the shapes (e.g., `high`).
Returns: A tuple of three `series float` for plotting bearish divergences.
regBearPosY series float Contains the static anchor Y-value for Regular divergences where a shape should be plotted; `na` otherwise.
hidBearPosY series float Contains the static anchor Y-value for Hidden divergences where a shape should be plotted; `na` otherwise.
exgBearPosY series float Contains the static anchor Y-value for Exaggerated divergences where a shape should be plotted; `na` otherwise.
marketStructure(highSrc, lowSrc, leftLen, rightLen, srcTol)
Analyzes the market structure by identifying pivot points, classifying
their sequence (e.g., Higher Highs, Lower Lows), and determining the
prevailing trend state.
Parameters:
highSrc (float) : series float Price series for pivot high detection (e.g., `high`).
lowSrc (float) : series float Price series for pivot low detection (e.g., `low`).
leftLen (int) : series int Number of bars to the left of a pivot (default 5).
rightLen (int) : series int Number of bars to the right of a pivot (default 5).
srcTol (float) : series float Percentage tolerance to consider two pivots as 'equal' (default 0.05%).
Returns: A tuple containing detailed market structure information.
pivType series PivType The type of the most recently formed pivot (e.g., `hh`, `ll`).
lastPivHi series float The price level of the last confirmed pivot high.
lastPivLo series float The price level of the last confirmed pivot low.
lastPiv series float The price level of the last confirmed pivot (either high or low).
pivHiBroken series bool `true` if the price has broken above the last pivot high.
pivLoBroken series bool `true` if the price has broken below the last pivot low.
trendState series TrendState The current trend state (`up`, `down`, or `neutral`).
Sunmool's NY Lunch Model BacktestingICT NY Lunch Model Backtesting (12:00–13:00 NY) 🗽🍔
This research indicator tests an ICT narrative using the New York lunch window (12:00–13:00 America/New_York). It records that hour’s high/low and measures, during the post-lunch session (default 13:00–16:00), how often:
⬆️ If the afternoon trends up, the Lunch Low gets swept first.
⬇️ If the afternoon trends down, the Lunch High gets swept first.
It reports these as conditional probabilities, not trade signals. 📈
👀 What it shows
🟦 Lunch Range box (toggle): high/low from 12:00–13:00 NY
🔻🔺 Sweep signals (bar-anchored)
Low sweep: triangle below bar + optional “L”
High sweep: triangle above bar + optional “H”
🧱 Optional small box wrapping the swept candle
📊 Stats table (top-right)
P(L-swept | Up) — % of Up-days where Lunch Low was swept
P(H-swept | Down) — % of Down-days where Lunch High was swept
🔁 Contradictions + sample sizes (Up-days / Down-days)
🎯 Direction logic (Up/Down)
Anchor: 13:00 open (pmOpen) ⏰
Threshold: ATR × multiple or % from 13:00
Close ≥ pmOpen + threshold → Up-day
Close ≤ pmOpen − threshold → Down-day
Tiny moves under the threshold are ignored to reduce noise 🧹
⚙️ Inputs
🌐 Timezone: America/New_York (DST handled)
🍽️ Lunch window: 1200–1300
🕓 Post-lunch window: default 1300–1600 (try 17:00/20:00 for sensitivity)
📐 Trend threshold: ATR / Percent (with length/multiple or % level)
📅 Weekdays-only toggle (FX/Equities style)
👁️ Display toggles: Lunch box / sweep arrows / sweep text / sweep candle box / stats table
🔔 TF hint when chart TF > 15m
🧭 How to use
Use 5–15m charts for accurate lunch range capture.
Scroll ~1 year for meaningful samples.
Run sensitivity checks: vary ATR/% thresholds and the post-lunch end time.
For crypto, compare with vs without weekends. 🚀
🧠 Reading the results
High P(L-swept | Up) with a solid Up-day count ⇒ on up afternoons, lunch low is often swept.
High P(H-swept | Down) ⇒ on down afternoons, lunch high is often swept.
Lower Contradictions = cleaner tendency.
Remember: this is a probabilistic tendency, not a rule. 🎲
📝 Notes & limits
All markers (arrows, text, sweep boxes) are bar-anchored; the lunch range box is a research overlay you can toggle.
Real-time vs historical bar building can differ—interpret on bar close. 🔒
mysourcetypesncsLibrary "mysourcetypes"
Libreria personale per sorgenti estese (Close, Open, High, Low, Median, Typical, Weighted, Average, Average Median Body, Trend Biased, Trend Biased Extreme, Volume Body, Momentum Biased, Volatility Adjusted, Body Dominance, Shadow Biased, Gap Aware, Rejection Biased, Range Position, Adaptive Trend, Pressure Balanced, Impulse Wave)
rclose()
Regular Close
Returns: Close price
ropen()
Regular Open
Returns: Open price
rhigh()
Regular High
Returns: High price
rlow()
Regular Low
Returns: Low price
rmedian()
Regular Median (HL2)
Returns: (High + Low) / 2
rtypical()
Regular Typical (HLC3)
Returns: (High + Low + Close) / 3
rweighted()
Regular Weighted (HLCC4)
Returns: (High + Low + Close + Close) / 4
raverage()
Regular Average (OHLC4)
Returns: (Open + High + Low + Close) / 4
ravemedbody()
Average Median Body
Returns: (Open + Close) / 2
rtrendb()
Trend Biased Regular
Returns: Trend-weighted price
rtrendbext()
Trend Biased Extreme
Returns: Extreme trend-weighted price
rvolbody()
Volume Weighted Body
Returns: Body midpoint weighted by volume intensity
rmomentum()
Momentum Biased
Returns: Price biased towards momentum direction
rvolatility()
Volatility Adjusted
Returns: Price adjusted by candle's volatility
rbodydominance()
Body Dominance
Returns: Emphasizes body over wicks
rshadowbias()
Shadow Biased
Returns: Price biased by shadow length
rgapaware()
Gap Aware
Returns: Considers gap between candles
rrejection()
Rejection Biased
Returns: Emphasizes price rejection levels
rrangeposition()
Range Position
Returns: Where close sits within the candle range (0-100%)
radaptivetrend()
Adaptive Trend
Returns: Adapts based on recent trend strength
rpressure()
Pressure Balanced
Returns: Balances buying/selling pressure within candle
rimpulse()
Impulse Wave
Returns: Detects impulsive moves vs corrections
Auto Fibonacci LevelsAuto Fibonacci Momentum Zones with Visible Range Table
Overview and Originality
The Auto Fibonacci Momentum Zones indicator offers a streamlined, static overlay of Fibonacci retracement levels inspired by extreme RSI momentum thresholds, enhanced with a dynamic table displaying the high and low of the currently visible chart range. This isn't a repackaged RSI oscillator or basic Fib drawer—common in TradingView's library—but a purposeful fusion of geometric harmony (Fibonacci ratios) with momentum psychology (RSI extremes at 35/85), projected as fixed horizontal reference lines on the price chart. The addition of the visible range table, powered by PineCoders' VisibleChart library, provides real-time context for the chart's current view, enabling traders to quickly assess range compression or expansion relative to these zones.
This script's originality stems from its "static momentum mapping": by hardcoding Fib levels on a dynamic chart, it creates universal psychological support/resistance lines that transcend specific assets or timeframes.
Unlike dynamic Fib tools that auto-adjust to price swings (risking noise in ranging markets) or standalone RSI plots (confined to panes), this delivers clean, bias-adjustable overlays for confluence analysis. The visible range table justifies the library integration—it's not a gratuitous add-on but a complementary tool that quantifies the "screen real estate" of price action, helping users correlate Fib touches with actual volatility. Drawn from original code (no auto-generation or public templates), it builds TradingView's body of knowledge by simplifying multi-tool workflows into one indicator, ideal for discretionary traders who value visual efficiency over algorithmic complexity.
How It Works: Underlying Concepts
Fibonacci retracements, derived from the Fibonacci sequence and the golden ratio (≈0.618), identify potential reversal points based on the idea that markets retrace prior moves in predictable proportions: shallow (23.6%, 38.2%), mid (50%), and deep (61.8%, 78.6%).
Adjustable Outputs
1. The "Invert Fibs" toggle (default: true) for bearish/topping bias, can be flipped aligning with trend context.
2. Fibonacci Levels: Seven semi-transparent horizontal lines are drawn using `hline()`:
- 0.0 at high (gray).
- 0.236: high - (range × 0.236) (light cyan, shallow pullback).
- 0.382: high - (range × 0.382) (teal, common retracement).
- 0.5: midpoint average (green, equilibrium).
- 0.618: high - (range × 0.618) (amber, golden pocket for reversals).
- 0.786: high - (range × 0.786) (orange, deep support).
- 1.0 at low (gray).
Colors progress from cool (shallow) to warm (deep) for intuitive scanning.
3. Optional Fib Labels: Right-edge text labels (e.g., "0.618") appear only if enabled, positioned at the last bar + offset for non-cluttering visibility.
4. Visible Range Table: Leveraging the VisibleChart library's `visible.high()` and `visible.low()` functions, a compact 2x2 table (top-right corner) updates on the last bar to show the extrema of bars currently in view. This mashup enhances utility: Fib zones provide fixed anchors, while the table's dynamic values reveal if price is "pinned" to a zone (e.g., visible high hugging 0.382 signals resistance). The library is invoked sparingly for performance, adding value by bridging static geometry with viewport-aware data—unavailable in built-ins without custom code.
How to Use It
1. Setup:
Add to any chart (e.g., 15M for scalps, Daily for swings). As an overlay, lines appear directly on price candles—adjust chart scaling if needed.
2. Input Tweaks:
Invert Fibs: Enable for downtrends (85 top), disable for uptrends (35 bottom).
Show Fibs: Toggle labels for ratio callouts (off for clean charts).
Show Table: Display/hide the visible high/low summary (red for high, green for low, formatted to 2 decimals).
3. Trading Application:
Zone Confluence: Seek price reactions at each fibonacci level—e.g., a doji at 0.618 + rising volume suggests entry; use 0.0/1.0 as invalidation.
Range Context: Check the table: If visible high/low spans <20% of the Fib arc (e.g., both near 0.5), anticipate breakout; wider spans signal consolidation.
Multi-Timeframe: Overlay on higher TF for bias, lower for precision—e.g., Daily Fibs guide 1H entries.
Enhancements: Pair with volume or candlesticks; set alerts on line crosses via TradingView's built-in tools. Backtest on your symbols to validate (e.g., equities favor 0.382, forex the 0.786).
This indicator automates advanced Fibonacci synthesis dynamically, eliminating manual measurement and calculations.
published by ozzy_livin
Ultimate Oscillator (ULTOSC)The Ultimate Oscillator (ULTOSC) is a technical momentum indicator developed by Larry Williams that combines three different time periods to reduce the volatility and false signals common in single-period oscillators. By using a weighted average of three Stochastic-like calculations across short, medium, and long-term periods, the Ultimate Oscillator provides a more comprehensive view of market momentum while maintaining sensitivity to price changes.
The indicator addresses the common problem of oscillators being either too sensitive (generating many false signals) or too slow (missing opportunities). By incorporating multiple timeframes with decreasing weights for longer periods, ULTOSC attempts to capture both short-term momentum shifts and longer-term trend strength, making it particularly valuable for identifying divergences and potential reversal points.
## Core Concepts
* **Multi-timeframe analysis:** Combines three different periods (typically 7, 14, 28) to capture various momentum cycles
* **Weighted averaging:** Assigns higher weights to shorter periods for responsiveness while including longer periods for stability
* **Buying pressure focus:** Measures the relationship between closing price and the true range rather than just high-low range
* **Divergence detection:** Particularly effective at identifying momentum divergences that precede price reversals
* **Normalized scale:** Oscillates between 0 and 100, with clear overbought/oversold levels
## Common Settings and Parameters
| Parameter | Default | Function | When to Adjust |
|-----------|---------|----------|---------------|
| Fast Period | 7 | Short-term momentum calculation | Lower (5-6) for more sensitivity, higher (9-12) for smoother signals |
| Medium Period | 14 | Medium-term momentum calculation | Adjust based on typical swing duration in the market |
| Slow Period | 28 | Long-term momentum calculation | Higher values (35-42) for longer-term position trading |
| Fast Weight | 4.0 | Weight applied to fast period | Higher weight increases short-term sensitivity |
| Medium Weight | 2.0 | Weight applied to medium period | Adjust to balance medium-term influence |
| Slow Weight | 1.0 | Weight applied to slow period | Usually kept at 1.0 as the baseline weight |
**Pro Tip:** The classic 7/14/28 periods with 4/2/1 weights work well for most markets, but consider using 5/10/20 with adjusted weights for faster markets or 14/28/56 for longer-term analysis.
## Calculation and Mathematical Foundation
**Simplified explanation:**
The Ultimate Oscillator calculates three separate "buying pressure" ratios using different time periods, then combines them using weighted averaging. Buying pressure is defined as the close minus the true low, divided by the true range.
**Technical formula:**
```
BP = Close - Min(Low, Previous Close)
TR = Max(High, Previous Close) - Min(Low, Previous Close)
BP_Sum_Fast = Sum(BP, Fast Period)
TR_Sum_Fast = Sum(TR, Fast Period)
Raw_Fast = 100 × (BP_Sum_Fast / TR_Sum_Fast)
BP_Sum_Medium = Sum(BP, Medium Period)
TR_Sum_Medium = Sum(TR, Medium Period)
Raw_Medium = 100 × (BP_Sum_Medium / TR_Sum_Medium)
BP_Sum_Slow = Sum(BP, Slow Period)
TR_Sum_Slow = Sum(TR, Slow Period)
Raw_Slow = 100 × (BP_Sum_Slow / TR_Sum_Slow)
ULTOSC = 100 × / (Fast_Weight + Medium_Weight + Slow_Weight)
```
Where:
- BP = Buying Pressure
- TR = True Range
- Fast Period = 7, Medium Period = 14, Slow Period = 28 (defaults)
- Fast Weight = 4, Medium Weight = 2, Slow Weight = 1 (defaults)
> 🔍 **Technical Note:** The implementation uses efficient circular buffers for all three period calculations, maintaining O(1) time complexity per bar. The algorithm properly handles true range calculations including gaps and ensures accurate buying pressure measurements across all timeframes.
## Interpretation Details
ULTOSC provides several analytical perspectives:
* **Overbought/Oversold conditions:** Values above 70 suggest overbought conditions, below 30 suggest oversold conditions
* **Momentum direction:** Rising ULTOSC indicates increasing buying pressure, falling indicates increasing selling pressure
* **Divergence analysis:** Divergences between ULTOSC and price often precede significant reversals
* **Trend confirmation:** ULTOSC direction can confirm or question the prevailing price trend
* **Signal quality:** Extreme readings (>80 or <20) indicate strong momentum that may be unsustainable
* **Multiple timeframe consensus:** When all three underlying periods agree, signals are typically more reliable
## Trading Applications
**Primary Uses:**
- **Divergence trading:** Identify when momentum diverges from price for reversal signals
- **Overbought/oversold identification:** Find potential entry/exit points at extreme levels
- **Trend confirmation:** Validate breakouts and trend continuations
- **Momentum analysis:** Assess the strength of current price movements
**Advanced Strategies:**
- **Multi-divergence confirmation:** Look for divergences across multiple timeframes
- **Momentum breakouts:** Trade when ULTOSC breaks above/below key levels with volume
- **Swing trading entries:** Use oversold/overbought levels for swing position entries
- **Trend strength assessment:** Evaluate trend quality using momentum consistency
## Signal Combinations
**Strong Bullish Signals:**
- ULTOSC rises from oversold territory (<30) with positive price divergence
- ULTOSC breaks above 50 after forming a base near 30
- All three underlying periods show increasing buying pressure
**Strong Bearish Signals:**
- ULTOSC falls from overbought territory (>70) with negative price divergence
- ULTOSC breaks below 50 after forming a top near 70
- All three underlying periods show decreasing buying pressure
**Divergence Signals:**
- **Bullish divergence:** Price makes lower lows while ULTOSC makes higher lows
- **Bearish divergence:** Price makes higher highs while ULTOSC makes lower highs
- **Hidden bullish divergence:** Price makes higher lows while ULTOSC makes lower lows (trend continuation)
- **Hidden bearish divergence:** Price makes lower highs while ULTOSC makes higher highs (trend continuation)
## Comparison with Related Oscillators
| Indicator | Periods | Focus | Best Use Case |
|-----------|---------|-------|---------------|
| **Ultimate Oscillator** | 3 periods | Buying pressure | Divergence detection |
| **Stochastic** | 1-2 periods | Price position | Overbought/oversold |
| **RSI** | 1 period | Price momentum | Momentum analysis |
| **Williams %R** | 1 period | Price position | Short-term signals |
## Advanced Configurations
**Fast Trading Setup:**
- Fast: 5, Medium: 10, Slow: 20
- Weights: 4/2/1, Thresholds: 75/25
**Standard Setup:**
- Fast: 7, Medium: 14, Slow: 28
- Weights: 4/2/1, Thresholds: 70/30
**Conservative Setup:**
- Fast: 14, Medium: 28, Slow: 56
- Weights: 3/2/1, Thresholds: 65/35
**Divergence Focused:**
- Fast: 7, Medium: 14, Slow: 28
- Weights: 2/2/2, Thresholds: 70/30
## Market-Specific Adjustments
**Volatile Markets:**
- Use longer periods (10/20/40) to reduce noise
- Consider higher threshold levels (75/25)
- Focus on extreme readings for signal quality
**Trending Markets:**
- Emphasize divergence analysis over absolute levels
- Look for momentum confirmation rather than reversal signals
- Use hidden divergences for trend continuation
**Range-Bound Markets:**
- Standard overbought/oversold levels work well
- Trade reversals from extreme levels
- Combine with support/resistance analysis
## Limitations and Considerations
* **Lagging component:** Contains inherent lag due to multiple moving average calculations
* **Complex calculation:** More computationally intensive than single-period oscillators
* **Parameter sensitivity:** Performance varies significantly with different period/weight combinations
* **Market dependency:** Most effective in trending markets with clear momentum patterns
* **False divergences:** Not all divergences lead to significant price reversals
* **Whipsaw potential:** Can generate conflicting signals in choppy markets
## Best Practices
**Effective Usage:**
- Focus on divergences rather than absolute overbought/oversold levels
- Combine with trend analysis for context
- Use multiple timeframe analysis for confirmation
- Pay attention to the speed of momentum changes
**Common Mistakes:**
- Over-relying on overbought/oversold levels in strong trends
- Ignoring the underlying trend direction
- Using inappropriate period settings for the market being analyzed
- Trading every divergence without additional confirmation
**Signal Enhancement:**
- Combine with volume analysis for confirmation
- Use price action context (support/resistance levels)
- Consider market volatility when setting thresholds
- Look for convergence across multiple momentum indicators
## Historical Context and Development
The Ultimate Oscillator was developed by Larry Williams and introduced in his 1985 article "The Ultimate Oscillator" in Technical Analysis of Stocks and Commodities magazine. Williams designed it to address the limitations of single-period oscillators by:
- Reducing false signals through multi-timeframe analysis
- Maintaining sensitivity to short-term momentum changes
- Providing more reliable divergence signals
- Creating a more robust momentum measurement tool
The indicator has become a standard tool in technical analysis, particularly valued for its divergence detection capabilities and its balanced approach to momentum measurement.
## References
* Williams, L. R. (1985). The Ultimate Oscillator. Technical Analysis of Stocks and Commodities, 3(4).
* Williams, L. R. (1999). Long-Term Secrets to Short-Term Trading. Wiley Trading.
CandelaCharts - Session Opening📝 Overview
The CandelaCharts – Session Opening indicator highlights a custom session window, builds the live high/low as the session unfolds, and then publishes finalized Range High , Range Low , and Consequent Encroachment (Mid) levels once the window closes. A subtle one‑bar divider marks each new session start, and a shaded box visualizes the evolving range while the session is active.
📦 Features
Discover the core tools this indicator provides—from live range tracking to post‑session levels and alerts.
Custom Session Window – Track any intraday opening window you define (e.g., 09:00–10:00).
Timezone Control – Align sessions precisely with your market using selectable timezones (e.g., America/New_York, GMT±X).
Live Session Box – A translucent box expands in real time as highs/lows update during the session.
Post‑Session Levels – Finalized Range High , Range Low , and CE (Mid) lines print only after the session completes to avoid interim noise.
Session Divider – A one‑bar background tint clearly marks the first bar of each session.
Alerts – Receive notifications at session start and end.
⚙️ Settings
Configure timing, timezone alignment, visuals, and toggles to match your market and workflow.
Session – Defines the specific time range for the session window (e.g., 0900-1000). During this window the indicator tracks the running high/low.
Timezone – Specifies the timezone used to interpret the session window, ensuring alignment with exchange hours.
Colors – Selects the colors for Range High (Up), Range Low (Down), and the session Background box/divider.
Session Range – Shows the finalized Range High/Low/Mid lines outside of the session; lines appear starting one bar after the session closes.
Session Dividers – Enables the one‑bar background tint on the session’s first bar.
⚡️ Showcase
Preview a simple chart example with Session Opening applied.
🚨 Alerts
Set notifications for key moments: when a session begins and when it ends.
Session Start : Triggers on the first bar inside the configured session window.
Session End : Triggers on the first bar after the session window closes.
⚠️ Disclaimer
This section clarifies the risks and intended use.
Trading involves significant risk, and many participants may incur losses. The content on this site is not intended as financial advice and should not be interpreted as such. Decisions to buy, sell, hold, or trade securities, commodities, or other financial instruments carry inherent risks and are best made with guidance from qualified financial professionals. Past performance is not indicative of future results.
Volatility Channel Oscillator█ OVERVIEW
"Volatility Channel Oscillator" is a technical indicator that analyzes price volatility relative to dynamic price channels, displaying an oscillator, its moving average, and signals based on crossovers and divergences. The indicator offers customizable overbought and oversold levels, gradient visualization, and divergence detection, supported by alerts for key signals.
█ CONCEPTS
The VCO indicator creates dynamic price channels based on a moving average of the price (calculated as the arithmetic mean of the high and low prices: (high + low) / 2) and market volatility (measured as the average candle range and body size). These channels are not displayed on the chart but are used to calculate the oscillator value, which reflects the position of the closing price relative to the channel width, scaled to a range from -100 to +100, with the zero line as the central point. A moving average of the oscillator (SMA) smooths its values, enabling signals based on crossovers with the zero line or overbought/oversold levels. The indicator also detects divergences between price and the oscillator, which may indicate potential trend reversals. VCO is useful for identifying market momentum, reversal points, and trend confirmation, especially when combined with other technical analysis tools.
█ FEATURES
- Volatility Channels: Calculates invisible chart boundaries based on a simple moving average (SMA) of the price (high + low) / 2 and volatility (average candle range and body). The length parameter (default 30) sets the SMA length, and scale (default 200%) adjusts the channel width.
- Oscillator: Determines the oscillator value in the range of -100 to +100, indicating the closing price's position relative to the volatility channel. Displayed with dynamic coloring (green for positive values, red for negative).
- Oscillator Moving Average: A simple moving average (SMA) of the oscillator values, smoothing its movements. The signalLength parameter (default 20) defines the SMA length. Displayed in yellow with an optional gradient.
- Overbought/Oversold Levels: Configurable thresholds for the oscillator (overbought, default 50; oversold, default -50) and its moving average (maOverbought, default 30; maOversold, default -30), shown as horizontal lines with optional gradients. Band colors change dynamically (red for overbought, green for oversold, gray for neutral) based on the moving average's position relative to maOverbought/maOversold, reinforcing other signals.
- Divergences: Detects bullish (price forms a lower low, oscillator a higher low) and bearish (price forms a higher high, oscillator a lower high) divergences using pivots (pivotLength, default 2). Divergences are displayed with a delay equal to the pivot length; larger lengths increase reliability but delay signals. Use as additional confirmation.
Signals:
- Overbought/Oversold Crossovers: Green triangles (buy) when the oscillator crosses above the oversold level, red triangles (sell) when it crosses below the overbought level.
- Zero Line Crossovers: Buy/sell signals when the oscillator crosses the zero line upward (buy) or downward (sell).
- Moving Average Crossovers: Buy/sell signals when the oscillator's moving average crosses the zero line or the maOverbought/maOversold levels. Dynamic band color changes (red/green) at these crossovers reinforce other signals.
- Visualization: Gradient lines for the oscillator, its moving average, overbought/oversold levels, and zero line, with adjustable transparency. Gradient fill between the oscillator and zero line.
Divergence Labels: "Bull" (bullish) and "Bear" (bearish) labels with customizable color and transparency.
- Alerts: Built-in alerts for divergences, overbought/oversold crossovers, and zero line crossovers by the oscillator and its moving average.
█ HOW TO USE
Add to Chart: Apply the indicator via Pine Editor or the Indicators menu on TradingView.
Configure Settings:
- Channel and Oscillator Settings: Adjust the channel SMA length (length, default 30) and channel scaling (scale, default 200%). Increase scale for high-volatility markets.
- Threshold Levels: Set oscillator overbought (overbought, default 50) and oversold (oversold, default -50) levels, and moving average thresholds (maOverbought, default 30; maOversold, default -30).
- Divergence Settings: Enable/disable divergence detection (calculateDivergence) and set pivot length (pivotLength, default 2). Larger values increase reliability but delay signals.
- Signal Settings: Choose signal types (signalType): overbought/oversold, zero line, moving average, or all.
- Styling: Customize colors for the oscillator, moving average, horizontal levels, and divergence labels. Adjust gradient and fill transparency.
Interpreting Signals:
- Buy Signals: Green triangles below the bar when the oscillator or its moving average crosses above the oversold level or zero line.
- Sell Signals: Red triangles above the bar when the oscillator or its moving average crosses below the overbought level or zero line.
- Moving Average Signals: Green/red triangles when the moving average crosses maOverbought/maOversold levels, indicating potential reversals or trend continuation. Dynamic band color changes (red for overbought, green for oversold) at these crossovers reinforce other signals.
- Divergences: "Bull" (bullish) and "Bear" (bearish) labels indicate potential trend reversals with a delay based on pivot length. Use as confirmation.
- Overbought/Oversold Levels: Monitor price reactions in these zones as potential reversal points. Dynamic band color changes based on the moving average reinforce signals.
Signal Confirmation: Use VCO with other tools, such as pivot levels (for key turning points) or Fibonacci levels (for support/resistance zones).
█ APPLICATIONS
- Trend Trading: Zero line crossovers by the oscillator or its moving average identify momentum in uptrends or downtrends.
- Range Trading: Overbought/oversold levels help identify entry/exit points in sideways markets.
- Divergences: Use bullish/bearish divergences as additional confirmation of reversals, especially near key price levels.
- Trend Identification: To analyze trends over a longer perspective, increase the moving average length (signalLength) for more stable signals.
█ NOTES
- Test the indicator across different timeframes and markets to optimize parameters, such as length and scale, for your trading style.
- In strong trends, overbought/oversold levels may persist, requiring additional signal verification.
- Divergences are more reliable on higher timeframes (H4, D1), where market noise is reduced, but their delay requires caution.
- In low-liquidity markets, signals may be less effective, so use on high-liquidity assets is recommended.
Asian, UK & NY SessionTimes and Day Highs and LowsWhat It Does
The Asian, UK & NY Sessions indicator automatically identifies and highlights the three major global trading sessions on your chart.
For each session, it:
Detects session time in its local timezone.
Tracks the session’s highest and lowest prices.
Plots colored horizontal lines to show those levels throughout the trading day.
Optionally shades each session’s background in its signature color for instant visual context:
🟡 Asian Session: Yellow background
🔴 London Session: Red background
🔵 New York Session: Blue background
This helps traders see how price reacts within and between sessions — spotting overlaps, liquidity zones, and daily ranges.
⚙️ Inputs and Variables
Input Description
Extend lines until next session start (extendLines) Extends each session’s high/low lines forward until the next session begins.
Show prices in scale column (showScaleValues) Controls whether the price labels for session highs/lows appear on the chart’s right-hand price scale.
Show All Session Highs & Lows (showAllHighsLows) Master switch — turn this off to hide all session lines instantly, keeping the chart clean.
Show Session Backgrounds (showBackgrounds) Turns all background shading on or off. When off, all session colors disappear.
Background Opacity (bgOpacityAll) Adjusts the transparency for all session backgrounds (0 = solid, 100 = fully transparent).
🎨 Visual Color Scheme
Session Background High/Low Line
Asian Yellow Green
London Red Red
New York Blue Blue
Each color has a consistent role — making it easy to distinguish sessions even in replay or live view.
Price Tracking:
For each session, the indicator resets High and Low when the new session starts, then updates them as bars print.
Display Control:
If lines or backgrounds are disabled via settings, they’re completely hidden (no clutter, no partial transparency).
💡 How Traders Use It
Identify daily ranges in each global session.
Compare volatility between markets.
Align entries or exits with session transitions.
Observe how price respects previous session highs/lows.
HTF Candle Highs and Lows with Labels + High Probability Signals█ OVERVIEW
This indicator overlays Weekly, Daily, and H4 High/Low levels directly onto your chart, allowing traders to visualize key support and resistance zones from higher timeframes. It also includes high probability breakout signals that appear one candle after a confirmed breakout above or below these levels, filtered by volume and candle strength.
Use this tool to identify breakout opportunities with greater confidence and clarity.
█ FEATURES
• Plots Weekly, Daily, and H4 High and Low levels using request.security. • Customizable line colors, widths, and label sizes. • Toggle visibility for each timeframe independently. • Signals appear one candle after a confirmed breakout: • Bullish: Close above HTF High, strong candle, high volume. • Bearish: Close below HTF Low, strong candle, high volume. • Signal shapes match the color of the broken level for visual clarity.
█ HOW TO USE
1 — Enable the timeframes you want to track using the input toggles. 2 — Watch for triangle-shaped signals: • Upward triangle = Bullish breakout. • Downward triangle = Bearish breakout. 3 — Confirm the breakout: • Candle closes beyond the HTF level by at least 0.1%. • Candle body shows momentum (close > open for bullish, close < open for bearish). • Volume exceeds 20-period average. 4 — Enter trade on the candle after the signal. 5 — Use the HTF level as a reference for stop-loss placement. 6 — Combine with other indicators (e.g., RSI, EMA) for confluence.
█ LIMITATIONS
• Signals may lag by one candle due to confirmation logic. • Not optimized for low-volume assets or illiquid markets. • Best used in trending environments; avoid during consolidation. • Does not include automatic alerts (can be added manually).
█ BEST PRACTICES
• Use on H1 or higher timeframes for cleaner signals. • Avoid trading during news events or low volatility. • Backtest thoroughly before live trading. • Adjust breakout percentage and volume filter based on asset volatility. • Maintain a trading journal to track performance.
All Levels This script draws key price levels on your chart, including:
• Previous Day (PD): High, Low, Close
• Day Before Yesterday (DBY): High, Low, Close
• Pre-Market (PM): High and Low
• Today’s levels: High, Low, Open, Close
• Current bar levels: High, Low, Open, Close
Each level is displayed as a horizontal line with a label showing the level value.
It works on any timeframe, including 1-minute charts, and automatically updates as new bars form.
⸻
2. Features
1. Custom Colors
Each type of level has its own color, declared as a const color. For example:
• Previous Day High = red
• Today’s Close = gold
• Pre-Market High = fuchsia
2. Right-Extending Lines
All horizontal levels extend to the right, so you always see them on the chart.
3. Persistent Labels
Every line has a label at the right side showing its name and price. For example:
• PDH 422
• TODL 415.5
4. Dynamic Updates
The script updates automatically whenever a new bar forms, so levels stay accurate.
5. Session-Based Pre-Market
You can define the pre-market session (default “04:00–09:30 EST”). The script calculates the high and low of this session only.
6. Checkbox Inputs
You can enable/disable entire groups of levels:
• Previous Day
• Day Before Yesterday
• Pre-Market
• Today
• Current bar
Tristan's Box: Pre-Market Range Breakout + RetestMarket Context:
This is designed for U.S. stocks, focusing on pre-market price action (4:00–9:30 AM ET) to identify key support/resistance levels before the regular session opens.
Built for 1 min and 5 min timelines, and is intended for day trading / scalping.
Core Idea:
Pre-market range (high/low) often acts as a magnet for price during regular hours.
The first breakout outside this range signals potential strong momentum in that direction.
Retest of the breakout level confirms whether the breakout is valid, avoiding false moves.
Step-by-Step Logic:
Pre-Market Range Identification:
Track high and low from 4:00–9:30 AM ET.
Draw a box spanning this range for visual reference and calculation.
Breakout Detection:
When the first candle closes above the pre-market high → long breakout.
When the first candle closes below the pre-market low → short breakout.
The first breakout candle is highlighted with a “YOLO” label for visual confirmation.
Retest Confirmation:
Identify the first candle whose wick touches the pre-market box (high touches top for short, low touches bottom for long).
Wait for the next candle: if it closes outside the box, it confirms the breakout.
Entry Execution:
Long entry: on the confirming candle after a wick-touch above the pre-market high.
Short entry: on the confirming candle after a wick-touch below the pre-market low.
Only the first valid entry per direction per day is taken.
Visuals & Alerts:
Box represents pre-market high/low.
Top/bottom box border lines show the pre-market high / low levels cleanly.
BUY/SELL markers are pinned to the confirming candle.
Added a "YOLO" marker on breakout candle.
Alert conditions trigger when a breakout is confirmed by the retest.
Strategy Type:
Momentum breakout strategy with confirmation retest.
Combines pre-market structure and risk-managed entries.
Designed to filter false breakouts by requiring confirmation on the candle after the wick-touch.
In short, it’s a pre-market breakout momentum strategy: it uses the pre-market high/low as reference, waits for a breakout, and then enters only after a confirmation retest, reducing the chance of entering on a false spike.
Always use good risk management.
Volumatic Fair Value Gaps [BigBeluga]🔵 OVERVIEW
The Volumatic Fair Value Gaps indicator detects and plots size-filtered Fair Value Gaps (FVGs) and immediately analyzes the bullish vs. bearish volume composition inside each gap. When an FVG forms, the tool samples volume from a 10× lower timeframe , splits it into Buy and Sell components, and overlays two compact bars whose percentages always sum to 100%. Each gap also shows its total traded volume . A live dashboard (top-right) summarizes how many bullish and bearish FVGs are currently active and their cumulative volumes—offering a quick read on directional participation and trend pressure.
🔵 CONCEPTS
FVGs (Fair Value Gaps) : Imbalance zones between three consecutive candles where price “skips” trading. The script plots bullish and bearish gaps and extends them until mitigated.
Size Filtering : Only significant gaps (by relative size percentile) are drawn, reducing noise and emphasizing meaningful imbalances.
// Gap Filters
float diff = close > open ? (low - high ) / low * 100 : (low - high) / high *100
float sizeFVG = diff / ta.percentile_nearest_rank(diff, 1000, 100) * 100
bool filterFVG = sizeFVG > 15
Volume Decomposition : For each FVG, the indicator inspects a 10× lower timeframe and aggregates volume of bullish vs. bearish candles inside the gap’s span.
100% Split Bars : Two inline bars per FVG display the % Bull and % Bear shares; their total is always 100%.
Total Gap Volume : A numeric label at the right edge of the FVG shows the total traded volume associated with that gap.
Mitigation Logic : Gaps are removed when price closes through (or touches via high/low—user-selectable) the opposite boundary.
Dashboard Summary : Counts and sums the active bullish/bearish FVGs and their total volumes to gauge directional dominance.
🔵 FEATURES
Bullish & Bearish FVG plotting with independent color controls and visibility toggles.
Adaptive size filter (percentile-based) to keep only impactful gaps.
Lower-TF volume sampling at 10× faster resolution for more granular Buy/Sell breakdown.
Per-FVG volume bars : two horizontal bars showing Bull % and Bear % (sum = 100%).
Per-FVG total volume label displayed at the right end of the gap’s body.
Mitigation source option : choose close or high/low for removing/invalidating gaps.
Overlap control : older overlapped gaps are cleaned to avoid clutter.
Auto-extension : active gaps extend right until mitigated.
Dashboard : shows count of bullish/bearish gaps on chart and cumulative volume totals for each side.
Performance safeguards : caps the number of active FVG boxes to maintain responsiveness.
🔵 HOW TO USE
Turn on/off FVG types : Enable Bullish FVG and/or Bearish FVG depending on your focus.
Tune the filter : The script already filters by relative size; if you need fewer (stronger) signals, increase the percentile threshold in code or reduce the number of displayed boxes.
Choose mitigation source :
close — stricter; gap is removed when a closing price crosses the boundary.
high/low — more sensitive; a wick through the boundary mitigates the gap.
Read the per-FVG bars :
A higher Bull % inside a bullish gap suggests constructive demand backing the imbalance.
A higher Bear % inside a bearish gap suggests supply is enforcing the imbalance.
Use total gap volume : Larger totals imply more meaningful interest at that imbalance; confluence with structure/HTF levels increases relevance.
Watch the dashboard : If bullish counts and cumulative volume exceed bearish, market pressure is likely skewed upward (and vice versa). Combine with trend tools or market structure for entries/exits.
Optional: hide volume bars : Disable Volume Bars when you want a cleaner FVG map while keeping total volume labels and the dashboard.
🔵 CONCLUSION
Volumatic Fair Value Gaps blends precise FVG detection with lower-timeframe volume analytics to show not only where imbalances exist but also who powers them. The per-gap Bull/Bear % bars, total volume labels, and the cumulative dashboard together provide a fast, high-signal read on directional participation. Use the tool to prioritize higher-quality gaps, align with trend bias, and time mitigations or continuations with greater confidence.
Session Levels [odnac]This indicator plots the high and low levels of the three main trading sessions—Asia, Europe, and New York—along with the previous day’s high, low, and open. Each session’s time range can be customized using a UTC offset, and the indicator automatically tracks session highs and lows as price develops.
Functions:
Plots session highs and lows for Asia, Europe, and New York.
Shows previous day’s high, low, and open as reference levels.
Session times are fully configurable with hour and minute precision, including UTC offset adjustment.
Each session level is marked with both a line and a label for clarity.
Color customization for each session and previous day levels.
Designed for intraday timeframes (1–60 minutes).
Filter Condition:
When the filter option is enabled, the indicator adjusts how levels are drawn:
A session high above the current close is displayed as a solid line with a visible label.
Once price closes above that high, the line becomes dotted and dimmed, and the label also becomes less emphasized.
Similarly, a session low below the current close is displayed as a solid line and label.
If price closes below that low, the line switches to dotted and dimmed, with the label adjusted accordingly.
This behavior highlights only the most relevant levels for the current market position while still keeping breached levels visible in a subdued style, making it easier to spot active breakout or liquidity zones.
Smart Structure Breaks & Order BlocksOverview (What it does)
The indicator “Smart Structure Breaks & Order Blocks” detects market structure using swing highs and lows, identifies Break of Structure (BOS) events, and automatically draws order blocks (OBs) from the origin candle. These zones extend to the right and change color/outline when mitigated or invalidated. By formalizing and automating part of discretionary analysis, it provides consistent zone recognition.
Main Components
Swing Detection: ta.pivothigh/ta.pivotlow identify confirmed swing points.
BOS Detection: Determines if the recent swing high/low is broken by close (strict mode) or crossover.
OB Creation: After a BOS, the opposite candle (bearish for bullish BOS, bullish for bearish BOS) is used to generate an order block zone.
Zone Management: Limits the number of zones, extends them to the right, and tracks tagged (mitigated) or invalidated states.
Input Parameters
Left/Right Pivot (default 6/6): Number of bars required on each side to confirm a swing. Higher values = smoother swings.
Max Zones (default 4): Maximum zones stored per direction (bull/bear). Oldest zones are overwritten.
Zone Confirmation Lookback (default 3): Ensures OB origin candle validity by checking recent highs/lows.
Show Swing Points (default ON): Displays triangles on swing highs/lows.
Require close for BOS? (default ON): Strict BOS (close required) vs loose BOS (line crossover).
Use candle body for zones (default OFF): Zones drawn from candle body (ON) or wick (OFF).
Signal Definition & Logic
Swing Updates: Latest confirmed pivots update lastHighLevel / lastLowLevel.
BOS (Break of Structure):
Bullish – close breaks last swing high.
Bearish – close breaks last swing low.
Only one valid BOS per swing (avoids duplicates).
OB Detection:
Bullish BOS → previous bearish candle with lowest low forms the OB.
Bearish BOS → previous bullish candle with highest high forms the OB.
Zones: Bull = green, Bear = red, semi-transparent, extended to the right.
Zone States:
Mitigated: Price touches the zone → border highlighted.
Invalidated:
Bull zone → close below → turns red.
Bear zone → close above → turns green.
Chart Appearance
Swing High: red triangle above bar
Swing Low: green triangle below bar
Bull OB: green zone (border highlighted on touch)
Bear OB: red zone (border highlighted on touch)
Invalid Zones: Bull zones turn reddish, Bear zones turn greenish
Practical Use (Trading Assistance)
Trend Following Entries: Buy pullbacks into green OBs in uptrends, sell rallies into red OBs in downtrends.
Focus on First Touch: First mitigation after BOS often has higher reaction probability.
Confluence: Combine with higher timeframe trend, volume, session levels, key price levels (previous highs/lows, VWAP, etc.).
Stops/Targets:
Bull – stop below zone, partial take profit at swing high or resistance.
Bear – stop above zone, partial take profit at swing low or support.
Parameter Tuning (per market/timeframe)
Pivot (6/6 → 4/4/8/8): Lower for scalping (3–5), medium for day trading (5–8), higher for swing trading (8–14). Increase to reduce noise.
Strict Break: ON to reduce false breaks in ranging markets; OFF for earlier signals.
Body Zones: ON for assets with long wicks, OFF for cleaner OBs in liquid instruments.
Zone Confirmation (default 3): Increase for stricter OB origin, fewer zones.
Max Zones (default 4 → 6–10): Increase for higher volatility, decrease to avoid clutter.
Strengths
Standardizes BOS and OB detection that is usually subjective.
Tracks mitigation and invalidation automatically.
Adaptable: allows body/wick zone switching for different instruments.
Limitations
Pivot-based: Signals appear only after pivots confirm (slight lag).
Zones reflect past balance: Can fail after new events (news, earnings, macro data).
Range-heavy markets: More false BOS; consider stricter settings.
Backtesting: This script is for drawing/visual aid; trading rules must be defined separately.
Workflow Example
Identify higher timeframe trend (4H/Daily).
On lower TF (15–60m), wait for BOS and new OB.
Enter on first mitigation with confirmation candle.
Stop beyond zone; targets based on R multiples and swing points.
FAQ
Q: Why are zones invalidated quickly?
A: Flow reversal after BOS. Adjust pivots higher, enable Strict mode, or switch to Body zones to reduce noise.
Q: What does “tagged” mean?
A: Price touched the zone once = mitigated. Implies some orders in that zone may have been filled.
Q: Body or Wick zones?
A: Wick zones are fine in clean markets. For volatile pairs with long wicks, body zones provide more realistic areas.
Customization Tips (Code perspective)
Zone storage: Currently ring buffer ((idx+1) % zoneLimit). Could prioritize keeping unmitigated zones.
Automated testing: Add strategy.entry/exit for rule-based backtests.
Multi-timeframe: Use request.security() for higher timeframe swings/BOS.
Visualization: Add labels for BOS bars, tag zones with IDs, count touches.
Summary
This indicator formalizes the cycle Swing → BOS → OB creation → Mitigation/Invalidation, providing consistent structure analysis and zone tracking. By tuning sensitivity and strictness, and combining with higher timeframe context, it enhances pullback/continuation trading setups. Always combine with proper risk management.
Volume Profile + Pivot Levels [ChartPrime]⯁ OVERVIEW
Volume Profile + Pivot Levels combines a rolling volume profile with price pivots to surface the most meaningful levels in your selected lookback window. It builds a left-side profile from traded volume, highlights the session’s Point of Control (PoC) , and then filters pivot highs/lows so only those aligned with significant profile volume are promoted to chart levels. Each promoted level extends forward until price retests it—so your chart stays focused on levels that actually matter.
⯁ KEY FEATURES
Rolling Volume Profile (Period & Resolution)
Calculates a profile over the last Period bars (default 200). The profile is discretized into Volume Profile Resolution bins (default 50) between the highest high and lowest low inside the window. Each bin accumulates traded volume and is drawn as a smooth left-side polyline for compact, lightweight rendering.
HL = array.new()
// collect highs/lows over 'start' bars to define profile range
for i = 0 to start - 1
HL.push(high ), HL.push(low )
H = HL.max(), L = HL.min()
bin_size = (H - L) / bins
// accumulate per-bin volume
for i = 0 to bins - 1
for j = 0 to start - 1
if close >= (L + bin_sizei) - bin_size and close < (L + bin_size*(i+1)) + bin_size
Bins += volume
Delta-Aware Coloring
The script tracks up-minus-down volume across all period to compute a net Delta . The profile, PoC line, and PoC label adopt a teal tone when net positive, and maroon when net negative—an immediate read on buyer/seller dominance inside the window.
Point of Control (PoC) + Volume Label
Automatically marks the highest-volume bin as the PoC . A horizontal PoC line extends to the last bar, and a label shows the absolute volume at the PoC. Toggle visibility via PoC input.
Pivot Detection with Volume Filter
Identifies raw pivots using Length (default 10) on both sides of the bar. Each candidate pivot is then validated against the profile: only pivots that land within their bin and meet or exceed the Filter % threshold (percentage of PoC volume) are promoted to chart levels. This removes weak, low-participation pivots.
// pivot promotion when volume% >= pivotFilter
if abs(mid - p.value) <= bin_size and volPercent >= pivotFilter
// draw labeled pivot level
line.new(p.index - pivotLength, p.value, p.index + pivotLength, p.value, width = 2)
Forward-Extending, Self-Stopping Levels
Promoted pivot levels extend forward as dotted rays. As soon as price intersects a level (high/low straddles it), that level stops extending—so your chart doesn’t clutter with stale zones.
Concise Level Labels (Volume + %)
Each promoted pivot prints a compact label at the pivot bar with its bin’s absolute volume and percentage of PoC volume (ordering flips for highs vs. lows for quick read).
Lightweight Visuals
The volume profile is rendered as a smooth polyline rather than dozens of boxes, keeping charts responsive even at higher resolutions.
⯁ SETTINGS
Volume Profile → Period : Lookback window used to compute the profile (max 500).
Volume Profile → Resolution : Number of bins; higher = finer structure.
Volume Profile → PoC : Toggle PoC line and volume label.
Pivots → Display : Show/hide volume-validated pivot levels.
Pivots → Length : Pivot detection left/right bars.
Pivots → Filter % 0–100 : Minimum bin strength (as % of PoC) required to promote a pivot level.
⯁ USAGE
Read PoC direction/color for a quick net-flow bias within your window.
Prioritize promoted pivot levels —they’re backed by meaningful participation.
Watch for first retests of promoted levels; the line will stop extending once tested.
Adjust Period / Resolution to match your timeframe (scalps → higher resolution, shorter period; swings → lower resolution, longer period).
Tighten or loosen Filter % to control how selective the level promotion is.
⯁ WHY IT’S UNIQUE
Instead of plotting every pivot or every profile bar, this tool cross-checks pivots against the profile’s internal volume weighting . You only see levels where price structure and liquidity overlap—clean, data-driven levels that self-retire after interaction, so you can focus on what the market actually defends.






















