Std Dev Reversal LevelsPlots standard deviation bands around a central mean to identify statistically extreme price levels where reversals are likely.
How It Works
Price statistically tends to stay within predictable ranges around its mean. This indicator plots sigma (σ) levels showing where price becomes statistically extended.
Green lines: Levels above the mean (+1σ to +5σ)
Red lines: Levels below the mean (-1σ to -5σ)
White line: Center/mean (optional)
How To Use
Set timeframe to 1D or 4H
Use Statistical method with 20-30 lookback
Watch for price touching ±3σ levels
Look for reversal confirmation at these extremes
Target the center line for mean reversion plays
Trendanalyse
Best Metal to Sell → More BTCWhichever precious metal has outperformed Bitcoin the most over the last 21 days (by >4%) is showing short-term strength → sell a small slice of that metal and rotate into BTC.
Orange = trim some gold → buy BTC
Grey = trim some silver → buy BTC
Black = no clear edge → hold
This is a gradual, disciplined rebalancing tool for anyone holding physical gold & silver who wants to slowly increase their BTC exposure on relative strength spikes — without ever going “all-in”.
You decide the pace: 1% per signal, pause anytime, or stop when you’ve reached your personal comfort level of BTC allocation.
2020–2025 backtest (weekly 1% rotations):
$200k metals → 18.4 BTC + $0 metals left = $1.68 million
HODL metals only = $320k
HODL BTC from day one = ~$1.4 million
It’s not about beating BTC every cycle — it’s about turning stagnant metals into more sats, at your own pace.
HoneG_BJVH 軽量化版v11VJBH v11 is a tool that displays volatility and range reference tables tailored for one-touch options trading, organized by currency and trading time.
Try applying it to any chart you like, whether it's a 1-minute chart or a 15-second chart.
Volatility levels are divided into four stages from 0 to 4, and you can set alerts for specific stages.
Internally, it monitors second-based charts, so even when used on a 1-minute chart, a Premium or higher grade is required.
ザオプションのワンタッチ取引向けに作ったボラや通貨毎・取引時間毎の幅の目安表を表示するツール VJBH v11 です。
1分足チャートでも、15秒足チャートでも、お好きなチャートに適用してお試しください。
ボラのレベルは0~4の4段階に分けてまして、段階を選んでアラートを出せます。
内部的には秒足を見ているので、1分足チャートで使う場合でも、Premium以上のグレードが必要になります。
HoneG_ヒゲヒゲ067ALT_v2
HigeHige is a tool that displays the wick ratio for one-touch trading on The Option.
Try applying it to your preferred chart, whether it's a 1-minute chart or a 15-second chart.
ザオプションのワンタッチ取引向けにヒゲ比率を表示するツール ヒゲヒゲ です。
1分足チャートでも、15秒足チャートでも、お好きなチャートに適用してお試しください。
RSI + BB + RSI Advanced MTF Panel//@version=6
indicator(title="RSI + BB + RSI Advanced MTF Panel", shorttitle="RSI + BB + RSI Advance MTF Panel", format=format.price, precision=2, overlay=false)
bb_group = "BB (Price Overlay)"
bb_length = input.int(50, minval=1, group = bb_group)
bb_maType = input.string("SMA", "Basis MA Type", options = , group = bb_group)
bb_src = input.source(close, title="Source", group = bb_group)
bb_mult = input.float(0.2, minval=0.001, maxval=50, title="StdDev", group = bb_group)
BasisColor = input.color(color.rgb(163, 41, 245), "Basis Color", group = bb_group, display = display.none)
UpperColor = input.color(color.rgb(120, 156, 202,100), "Upper Color", group = bb_group, display = display.none)
LowerColor = input.color(color.rgb(120, 156, 202,100), "Lower Color", group = bb_group, display = display.none)
offset = input.int(0, "Offset", minval = -500, maxval = 500, display = display.data_window, group = bb_group)
ma(source, bb_length, _type) =>
switch _type
"SMA" => ta.sma(source, bb_length)
"EMA" => ta.ema(source, bb_length)
"SMMA (RMA)" => ta.rma(source, bb_length)
"WMA" => ta.wma(source, bb_length)
"VWMA" => ta.vwma(source, bb_length)
basis = ma(bb_src, bb_length, bb_maType)
dev = bb_mult * ta.stdev(bb_src, bb_length)
upper = basis + dev
lower = basis - dev
plot(basis, "Basis", color=BasisColor, offset = offset, force_overlay = true)
p1 = plot(upper, "Upper", color=UpperColor, offset = offset, force_overlay = true)
p2 = plot(lower, "Lower", color=LowerColor, offset = offset, force_overlay = true)
fill(p1, p2, title = "Background", color=color.rgb(163, 41, 245, 90))
rsiLengthInput = input.int(30, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(false, title="Calculate Divergence", group="RSI Settings", display = display.data_window, tooltip = "Calculating divergences is needed in order for divergence alerts to fire.")
SignalDot = input.bool(false, title="Signal Dot", group="Smoothing", display = display.data_window, tooltip = "Signal for possible entry")
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiPlot = plot(rsi, "RSI", color= rsi >= 51 ? color.rgb(13, 197, 230) : color.red)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
midLinePlot = plot(50, color = na, editable = false, display = display.none)
fill(rsiPlot, midLinePlot, 100, 70, top_color = color.new(color.green, 0), bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 30, 0, top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 0), title = "Oversold Gradient Fill")
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maTypeInput = input.string("SMA", "Type", options = , group = GRP, display = display.data_window)
maLengthInput = input.int(14, "Length", group = GRP, display = display.data_window)
bbMultInput = input.float(2.0, "BB StdDev", minval = 0.001, maxval = 50, step = 0.5, tooltip = TT_BB, group = GRP, display = display.data_window)
var enableMA = maTypeInput != "None"
var isBB = maTypeInput == "SMA + Bollinger Bands"
smoothma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
smoothingMA = enableMA ? smoothma(rsi, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(rsi, maLengthInput) * bbMultInput : na
plot(smoothingMA, "RSI-based MA", color=color.yellow, display = enableMA ? display.all : display.none, editable = enableMA)
bbUpperBand = plot(smoothingMA + smoothingStDev, title = "Upper Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
bbLowerBand = plot(smoothingMA - smoothingStDev, title = "Lower Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display = isBB ? display.all : display.none, editable = isBB)
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_calcBarsSince(cond) =>
ta.barssince(cond)
rsiLBR = rsi
// 1. Calculate Pivots Unconditionally
plFound = not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
phFound = not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
// 2. Calculate History Unconditionally
barsSincePL = _calcBarsSince(plFound )
barsSincePH = _calcBarsSince(phFound )
// 3. Check Ranges Unconditionally
inRangePL = rangeLower <= barsSincePL and barsSincePL <= rangeUpper
inRangePH = rangeLower <= barsSincePH and barsSincePH <= rangeUpper
// 4. Calculate Conditions
var bool bullCond = false
var bool bearCond = false
if calculateDivergence
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and inRangePL
lowLBR = low
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and inRangePH
highLBR = high
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
else
bullCond := false
bearCond := false
plot(plFound ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bullish", linewidth = 2, color = (bullCond ? bullColor : noneColor), display = display.pane, editable = calculateDivergence)
plotshape(bullCond ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bullish Label", text = " Bull ", style = shape.labelup, location = location.absolute, color = bullColor, textcolor = textColor, display = display.pane, editable = calculateDivergence)
plot(phFound ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bearish", linewidth = 2, color = (bearCond ? bearColor : noneColor), display = display.pane, editable = calculateDivergence)
plotshape(bearCond ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bearish Label", text = " Bear ", style = shape.labeldown, location = location.absolute, color = bearColor, textcolor = textColor, display = display.pane, editable = calculateDivergence)
alertcondition(bullCond, title='Regular Bullish Divergence', message="Found a new Regular Bullish Divergence.")
alertcondition(bearCond, title='Regular Bearish Divergence', message='Found a new Regular Bearish Divergence.')
// --- Panel Options (General) ---
g_panel = 'MTF Panel Options'
i_orientation = input.string('Vertical', 'Orientation', options = , group = g_panel)
i_position = input.string('Bottom Right', 'Position', options = , group = g_panel)
i_border_width = input.int(1, 'Border Width', minval = 0, maxval = 10, group = g_panel, inline = 'border')
i_color_border = input.color(#000000, '', group = g_panel, inline = 'border')
i_showHeaders = input.bool(true, 'Show Headers', group = g_panel)
i_color_header_bg = input.color(#5d606b, 'Headers Background', group = g_panel, inline = 'header')
i_color_header_text = input.color(color.white, 'Text', group = g_panel, inline = 'header')
i_color_tf_bg = input.color(#2a2e39, 'Timeframe Background', group = g_panel, inline = 'tf')
i_color_tf_text = input.color(color.white, 'Text', group = g_panel, inline = 'tf')
i_debug = input.bool(false, 'Display colors palette (debug)', group = g_panel)
// --- RSI Colors (Conditional Formatting) ---
g_rsi = 'MTF RSI Colors'
i_threshold_ob = input.int(70, 'Overbought Threshold', minval=51, maxval=100, group = g_rsi)
i_color_ob = input.color(#128416, 'Overbought Background', inline = 'ob', group = g_rsi)
i_tcolor_ob = input.color(color.white, 'Text', inline = 'ob', group = g_rsi)
i_threshold_uptrend = input.int(60, 'Uptrend Threshold', minval=51, maxval=100, group = g_rsi)
i_color_uptrend = input.color(#2d472e, 'Uptrend Background', inline = 'up', group = g_rsi)
i_tcolor_uptrend = input.color(color.white, 'Text', inline = 'up', group = g_rsi)
i_color_mid = input.color(#131722, 'No Trend Background', group = g_rsi, inline = 'mid')
i_tcolor_mid = input.color(#b2b5be, 'Text', group = g_rsi, inline = 'mid')
i_threshold_downtrend = input.int(40, 'Downtrend Threshold', group = g_rsi, minval=0, maxval=49)
i_color_downtrend = input.color(#5b2e2e, 'Downtrend Background', group = g_rsi, inline = 'down')
i_tcolor_downtrend = input.color(color.white, 'Text', group = g_rsi, inline = 'down')
i_threshold_os = input.int(30, 'Oversold Threshold', minval=0, maxval=49, group = g_rsi)
i_color_os = input.color(#db3240, 'Oversold Background', group = g_rsi, inline = 'os')
i_tcolor_os = input.color(color.white, 'Text', group = g_rsi, inline = 'os')
// --- Individual RSI Settings (MTF Sources) ---
g_rsi1 = 'RSI #1'
i_rsi1_enabled = input.bool(true, title = 'Enabled', group = g_rsi1)
i_rsi1_tf = input.timeframe('5', 'Timeframe', group = g_rsi1)
i_rsi1_len = input.int(30, 'Length', minval = 1, group = g_rsi1)
i_rsi1_src = input.source(close, 'Source', group = g_rsi1) * 10000
v_rsi1 = i_rsi1_enabled ? request.security(syminfo.tickerid, i_rsi1_tf, ta.rsi(i_rsi1_src, i_rsi1_len)) : na
g_rsi2 = 'RSI #2'
i_rsi2_enabled = input.bool(true, title = 'Enabled', group = g_rsi2)
i_rsi2_tf = input.timeframe('15', 'Timeframe', group = g_rsi2)
i_rsi2_len = input.int(30, 'Length', minval = 1, group = g_rsi2)
i_rsi2_src = input.source(close, 'Source', group = g_rsi2) * 10000
v_rsi2 = i_rsi2_enabled ? request.security(syminfo.tickerid, i_rsi2_tf, ta.rsi(i_rsi2_src, i_rsi2_len)) : na
g_rsi3 = 'RSI #3'
i_rsi3_enabled = input.bool(true, title = 'Enabled', group = g_rsi3)
i_rsi3_tf = input.timeframe('60', 'Timeframe', group = g_rsi3)
i_rsi3_len = input.int(30, 'Length', minval = 1, group = g_rsi3)
i_rsi3_src = input.source(close, 'Source', group = g_rsi3) * 10000
v_rsi3 = i_rsi3_enabled ? request.security(syminfo.tickerid, i_rsi3_tf, ta.rsi(i_rsi3_src, i_rsi3_len)) : na
g_rsi4 = 'RSI #4'
i_rsi4_enabled = input.bool(true, title = 'Enabled', group = g_rsi4)
i_rsi4_tf = input.timeframe('240', 'Timeframe', group = g_rsi4)
i_rsi4_len = input.int(30, 'Length', minval = 1, group = g_rsi4)
i_rsi4_src = input.source(close, 'Source', group = g_rsi4) * 10000
v_rsi4 = i_rsi4_enabled ? request.security(syminfo.tickerid, i_rsi4_tf, ta.rsi(i_rsi4_src, i_rsi4_len)) : na
g_rsi5 = 'RSI #5'
i_rsi5_enabled = input.bool(true, title = 'Enabled', group = g_rsi5)
i_rsi5_tf = input.timeframe('D', 'Timeframe', group = g_rsi5)
i_rsi5_len = input.int(30, 'Length', minval = 1, group = g_rsi5)
i_rsi5_src = input.source(close, 'Source', group = g_rsi5) * 10000
v_rsi5 = i_rsi5_enabled ? request.security(syminfo.tickerid, i_rsi5_tf, ta.rsi(i_rsi5_src, i_rsi5_len)) : na
g_rsi6 = 'RSI #6'
i_rsi6_enabled = input.bool(true, title = 'Enabled', group = g_rsi6)
i_rsi6_tf = input.timeframe('W', 'Timeframe', group = g_rsi6)
i_rsi6_len = input.int(30, 'Length', minval = 1, group = g_rsi6)
i_rsi6_src = input.source(close, 'Source', group = g_rsi6) * 10000
v_rsi6 = i_rsi6_enabled ? request.security(syminfo.tickerid, i_rsi6_tf, ta.rsi(i_rsi6_src, i_rsi6_len)) : na
g_rsi7 = 'RSI #7'
i_rsi7_enabled = input.bool(false, title = 'Enabled', group = g_rsi7)
i_rsi7_tf = input.timeframe('W', 'Timeframe', group = g_rsi7)
i_rsi7_len = input.int(30, 'Length', minval = 1, group = g_rsi7)
i_rsi7_src = input.source(close, 'Source', group = g_rsi7) * 10000
v_rsi7 = i_rsi7_enabled ? request.security(syminfo.tickerid, i_rsi7_tf, ta.rsi(i_rsi7_src, i_rsi7_len)) : na
g_rsi8 = 'RSI #8'
i_rsi8_enabled = input.bool(false, title = 'Enabled', group = g_rsi8)
i_rsi8_tf = input.timeframe('W', 'Timeframe', group = g_rsi8)
i_rsi8_len = input.int(30, 'Length', minval = 1, group = g_rsi8)
i_rsi8_src = input.source(close, 'Source', group = g_rsi8) * 10000
v_rsi8 = i_rsi8_enabled ? request.security(syminfo.tickerid, i_rsi8_tf, ta.rsi(i_rsi8_src, i_rsi8_len)) : na
g_rsi9 = 'RSI #9'
i_rsi9_enabled = input.bool(false, title = 'Enabled', group = g_rsi9)
i_rsi9_tf = input.timeframe('W', 'Timeframe', group = g_rsi9)
i_rsi9_len = input.int(30, 'Length', minval = 1, group = g_rsi9)
i_rsi9_src = input.source(close, 'Source', group = g_rsi9) * 10000
v_rsi9 = i_rsi9_enabled ? request.security(syminfo.tickerid, i_rsi9_tf, ta.rsi(i_rsi9_src, i_rsi9_len)) : na
g_rsi10 = 'RSI #10'
i_rsi10_enabled = input.bool(false, title = 'Enabled', group = g_rsi10)
i_rsi10_tf = input.timeframe('W', 'Timeframe', group = g_rsi10)
i_rsi10_len = input.int(30, 'Length', minval = 1, group = g_rsi10)
i_rsi10_src = input.source(close, 'Source', group = g_rsi10) * 10000
v_rsi10 = i_rsi10_enabled ? request.security(syminfo.tickerid, i_rsi10_tf, ta.rsi(i_rsi10_src, i_rsi10_len)) : na
// --- Panel Helper Functions ---
// Function 4: String Position to Constant (Indentation cleaned)
f_StrPositionToConst(_p) =>
switch _p
'Top Left' => position.top_left
'Top Right' => position.top_right
'Top Center' => position.top_center
'Middle Left' => position.middle_left
'Middle Right' => position.middle_right
'Middle Center' => position.middle_center
'Bottom Left' => position.bottom_left
'Bottom Right' => position.bottom_right
'Bottom Center' => position.bottom_center
=> position.bottom_right
// Function 5: Timeframe to Human Readable (Indentation cleaned)
f_timeframeToHuman(_tf) =>
seconds = timeframe.in_seconds(_tf)
if seconds < 60
_tf
else if seconds < 3600
str.tostring(seconds / 60) + 'm'
else if seconds < 86400
str.tostring(seconds / 60 / 60) + 'h'
else
switch _tf
"1D" => "D"
"1W" => "W"
"1M" => "M"
=> str.tostring(_tf)
type TPanel
table src = na
bool vertical_orientation = true
int row = 0
int col = 0
// Method 1: Increment Column (Indentation cleaned)
method incCol(TPanel _panel) =>
if _panel.vertical_orientation
_panel.col += 1
else
_panel.row += 1
// Method 2: Increment Row (Indentation cleaned)
method incRow(TPanel _panel) =>
if not _panel.vertical_orientation
_panel.col += 1
_panel.row := 0
else
_panel.row += 1
_panel.col := 0
// Method 3: Add Cell (Indentation cleaned)
method add(TPanel _panel, string _v1, color _bg1, color _ctext1, string _v2, color _bg2, color _ctext2) =>
table.cell(_panel.src, _panel.col, _panel.row, _v1, text_color = _ctext1, bgcolor = _bg1)
_panel.incCol()
table.cell(_panel.src, _panel.col, _panel.row, _v2, text_color = _ctext2, bgcolor = _bg2)
_panel.incRow()
// Function 6: Background Color
f_bg(_rsi) =>
c_line = na(_rsi) ? i_color_mid :
_rsi >= i_threshold_ob ? i_color_ob :
_rsi >= i_threshold_uptrend ? i_color_uptrend :
_rsi <= i_threshold_os ? i_color_os :
_rsi <= i_threshold_downtrend ? i_color_downtrend :
i_color_mid
// Function 7: Text Color
f_rsi_text_color(_rsi) =>
c_line = na(_rsi) ? i_tcolor_mid :
_rsi >= i_threshold_ob ? i_tcolor_ob :
_rsi >= i_threshold_uptrend ? i_tcolor_uptrend :
_rsi <= i_threshold_os ? i_tcolor_os :
_rsi <= i_threshold_downtrend ? i_tcolor_downtrend :
i_tcolor_mid
f_formatRsi(_rsi) => na(_rsi) ? 'N/A' : str.tostring(_rsi, '0.00')
// --- Panel Execution Logic ---
if barstate.islast
v_panel = TPanel.new(vertical_orientation = i_orientation == 'Vertical')
v_max_rows = 20
v_panel.src := table.new(f_StrPositionToConst(i_position), v_max_rows, v_max_rows, border_width = i_border_width, border_color = i_color_border)
if i_showHeaders
v_panel.add('TF', i_color_header_bg, i_color_header_text, 'RSI', i_color_header_bg, i_color_header_text)
if i_rsi1_enabled
v_panel.add(f_timeframeToHuman(i_rsi1_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi1), f_bg(v_rsi1), f_rsi_text_color(v_rsi1))
if i_rsi2_enabled
v_panel.add(f_timeframeToHuman(i_rsi2_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi2), f_bg(v_rsi2), f_rsi_text_color(v_rsi2))
if i_rsi3_enabled
v_panel.add(f_timeframeToHuman(i_rsi3_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi3), f_bg(v_rsi3), f_rsi_text_color(v_rsi3))
if i_rsi4_enabled
v_panel.add(f_timeframeToHuman(i_rsi4_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi4), f_bg(v_rsi4), f_rsi_text_color(v_rsi4))
if i_rsi5_enabled
v_panel.add(f_timeframeToHuman(i_rsi5_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi5), f_bg(v_rsi5), f_rsi_text_color(v_rsi5))
if i_rsi6_enabled
v_panel.add(f_timeframeToHuman(i_rsi6_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi6), f_bg(v_rsi6), f_rsi_text_color(v_rsi6))
if i_rsi7_enabled
v_panel.add(f_timeframeToHuman(i_rsi7_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi7), f_bg(v_rsi7), f_rsi_text_color(v_rsi7))
if i_rsi8_enabled
v_panel.add(f_timeframeToHuman(i_rsi8_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi8), f_bg(v_rsi8), f_rsi_text_color(v_rsi8))
if i_rsi9_enabled
v_panel.add(f_timeframeToHuman(i_rsi9_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi9), f_bg(v_rsi9), f_rsi_text_color(v_rsi9))
if i_rsi10_enabled
v_panel.add(f_timeframeToHuman(i_rsi10_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi10), f_bg(v_rsi10), f_rsi_text_color(v_rsi10))
if i_debug
t = table.new(position.middle_center, 21, 20, border_width = i_border_width, border_color = i_color_border)
v_panel2 = TPanel.new(t, vertical_orientation = i_orientation == 'Vertical')
v_panel2.add('Debug', i_color_header_bg, i_color_header_text, 'Colors', i_color_header_bg, i_color_header_text)
// Using a tuple array for debugging colors demo
// Final Syntax Correction: Use array.new() and array.set() to avoid 'tuple()' function reference error
v_rows = 5 // We know we have 5 elements
demo = array.new(v_rows, '') // Initialize array with 5 string elements, will hold string representation of the tuple
// We will push the elements as a *string* representation of the tuple, as Pine v6 allows
// and then parse them inside the loop if necessary.
// To preserve the structure (string, float) without the tuple() function:
// We must define two separate arrays if the 'tuple' function is truly unavailable.
tf_array = array.new(v_rows)
rsi_array = array.new(v_rows)
// Populate the arrays
array.set(tf_array, 0, 'Overbought')
array.set(rsi_array, 0, float(i_threshold_ob))
array.set(tf_array, 1, 'Uptrend')
array.set(rsi_array, 1, float(i_threshold_uptrend))
array.set(tf_array, 2, 'No Trend')
array.set(rsi_array, 2, 50.0)
array.set(tf_array, 3, 'Downtrend')
array.set(rsi_array, 3, float(i_threshold_downtrend))
array.set(tf_array, 4, 'Oversold')
array.set(rsi_array, 4, float(i_threshold_os))
// Iterate over the arrays using a simple index
for i = 0 to v_rows - 1
tf = array.get(tf_array, i)
rsi = array.get(rsi_array, i)
v_panel2.add(tf, i_color_tf_bg, i_color_tf_text, f_formatRsi(rsi), f_bg(rsi), f_rsi_text_color(rsi))
Goldsky - Gold Market SpecialistGoldsky is a sophisticated TradingView Pine Script indicator designed exclusively for XAUUSD (Gold) trading. It features adaptive parameter adjustment, session-based optimization, market regime detection, news event filtering, multi-timeframe analysis, and intelligent risk management specifically calibrated for gold's unique market characteristics.
Features
Adaptive System: Parameters adjust automatically based on market conditions
Session-Based Optimization: Different strategies for Asian/European/American/Overlap sessions
Market Regime Detection: TRENDING/RANGING/BREAKOUT/NEUTRAL market analysis
News Event Filter: Automatic detection and protection during high volatility
Multi-Timeframe Analysis: H1 trend + M15 structure + M5 execution confluence
RSI Integration: Advanced RSI filtering for entries and exits
Bollinger Bands Integration: Volatility analysis and extreme value detection
Risk Management: Gold-specific risk parameters and position sizing
Combined Up down with volumeIndicates the day with a purple dot where price moved up or down by 5% or more
OrbifyOrbify is a professional Opening Range Break (ORB) trading indicator that identifies key breakout opportunities during market sessions. Designed for both 5-minute and 15-minute timeframes, this tool visualizes the opening range, tracks breakouts with real-time alerts, and provides automated risk management with customizable take-profit and stop-loss levels.
🎯 Opening Range Detection
Customizable Session Times: Set your preferred ORB session (default: 09:30-09:35 EST)
Visual Range Box: Clear visualization of high/low range during the opening session
Extended Lines: Option to extend range boundaries throughout the trading day
⚡ Breakout Identification
Real-time Break Alerts: Instant visual labels when price breaks above/below the ORB
Session-Based Tracking: Automatically resets at 18:00 EST for new trading days
Smart Break Detection: Prevents duplicate signals within the same session
🛡️ Integrated Risk Management
Automated TP/SL Calculation: Calculates take-profit and stop-loss based on ORB range
Customizable Risk-Reward: Adjust TP/SL as percentage of ORB range (default: 50%)
Visual Zones: Colored boxes showing TP/SL areas for quick reference
Price Labels: Optional display of exact TP/SL price levels
Psychologische LevelPSYCHOLOGICAL LEVELS INDICATOR FOR FOREX
This professional indicator automatically visualizes all important psychological price levels on Forex charts. Psychological levels are price zones where traders frequently react, as humans tend to gravitate toward round numbers.
MAIN FEATURES:
Automatic Level Detection: The indicator calculates and draws all relevant psychological levels based on the current currency pair
Visual Zones: Each level is displayed with a solid center line and a colored zone
Forex-Optimized: Automatically accounts for JPY pairs (0.01 pip) and standard pairs (0.0001 pip)
Fully Customizable: Colors, zone width, and line thickness can be individually adjusted
LEVEL TYPES:
00/000 Levels (e.g., 1.1000, 1.1100, 1.2000)
The most important psychological barriers
Traders frequently place stop-loss and take-profit orders at these levels
Strong support and resistance zones
50 Levels (e.g., 1.1050, 1.1150, 1.2050)
Secondary psychological levels
Located exactly midway between 00-levels
Important intermediate zones for profit-taking
25/75 Levels (e.g., 1.1025, 1.1075, 1.2025)
Optional activation for more detailed analysis
Quartile levels for more precise zones
Useful for scalping and short-term strategies
CONFIGURATION OPTIONS:
Zone Width in Pips: Determines the width of the colored zone around the center line (Default: 5 pips)
Zone Color: Fill color of the psychological zones (adjustable transparency)
Line Color: Color of the solid center lines
Line Width: Thickness of the center lines (1-5 pixels)
Level Selection: Individual selection of which level types to display
TRADING APPLICATIONS:
✓ Identification of potential support and resistance zones
✓ Placement of stop-loss and take-profit orders
✓ Recognition of price rejection zones
✓ Support for breakout strategies
✓ Enhanced risk management
✓ Optimization of entry and exit points
SPECIAL FEATURES:
Levels extend across the entire chart (extend.both)
Automatic adjustment to all Forex pairs
Optimized performance through intelligent calculation
Clean design without cluttered chart display
Compatible with all timeframes
SUITABLE FOR:
This indicator is suitable for day traders, swing traders, scalpers, and long-term Forex investors who want to incorporate psychological price levels into their trading strategy.
ZynIQ Volatility Master Pro v2 - (Pro Plus Pack)Overview
ZynIQ Volatility Master Pro v2 analyses expansion and contraction in price behaviour using adaptive volatility logic. It highlights periods of compression, breakout potential and increased directional movement, helping traders understand when the market is shifting between quiet and active phases.
Key Features
• Multi-layer volatility modelling
• Adaptive compression and expansion detection
• Optional trend-aware volatility colouring
• Configurable sensitivity for different assets and timeframes
• Clean visual presentation designed for intraday and swing analysis
• Complements breakout, trend, structure and volume indicators
Use Cases
• Identifying contraction phases before expansion
• Filtering trades during low-volatility conditions
• Spotting volatility increases that accompany breakouts
• Combining volatility context with your other tools for confluence
Notes
This tool provides volatility context and regime awareness. It is not a trading system on its own. Use it with your preferred confirmation and risk management.
ZynIQ Order Block Master Pro v2 - (Pro Plus Pack)Overview
ZynIQ Order Block Master Pro v2 identifies areas where price showed strong displacement and left behind significant zones of interest. It highlights potential reaction areas, continuation blocks and mitigation zones based on structural behaviour and directional flow.
Key Features
• Automatic detection of bullish and bearish order block zones
• Optional refinement filters for higher-quality zones
• Displacement-aware logic to reduce weak signals
• Optional mitigation markers when price revisits a zone
• Configurable sensitivity for different markets and timeframes
• Clean labels and minimal chart clutter
• Complements structure, liquidity and FVG tools
Use Cases
• Highlighting key reaction areas based on previous strong moves
• Tracking potential continuation or reversal zones
• Combining order blocks with BOS/CHOCH and liquidity mapping
• Building confluence with breakout or volume tools
Notes
This tool provides contextual price zones based on displacement and structural movement. It is not a standalone trading system. Use with your own confirmation and risk management.
Lowest Point in Last 66 Days DistanceSimple script which plots the distance of price from its last 66 days low
ZynIQ Market Regime Master Pro v2 - (Pro Plus Pack)Overview
ZynIQ Market Regime Master Pro v2 identifies shifts in market conditions by analysing volatility, directional flow and structural behaviour. It highlights when the market transitions between trending, ranging, expansion and contraction phases, giving traders clearer context for decision making.
Key Features
• Multi-factor regime detection (trend, range, expansion, contraction)
• Adaptive volatility and momentum analysis
• Direction-aware colour transitions
• Optional HTF regime overlay
• Configurable sensitivity to match different markets
• Clean visuals suitable for intraday or swing trading
• Complements trend, breakout, liquidity and volume tools
Use Cases
• Determining whether the market is trending or ranging
• Identifying expansion phases vs contraction phases
• Filtering signals during unfavourable regimes
• Combining regime context with structure or breakout tools
Notes
This tool provides regime classification and contextual analysis. It is not a trading system by itself. Use with your own confirmation and risk management.
ZynIQ Core Pro Suite v2 - (Pro Plus Pack)Overview
ZynIQ Breakout Core Pro Suite v2 is an advanced breakout engine designed to analyse compression, expansion and directional bias with high precision. It incorporates multi-factor filtering, adaptive volatility logic and refined breakout mapping to highlight moments where the market transitions from contraction to expansion.
Key Features
• Adaptive breakout zones with refined volatility filters
• Direction-aware breakout confirmation
• Optional multi-stage filtering for higher-quality expansions
• Pullback and continuation gating to reduce noise
• Integrated structure awareness for more reliable triggers
• Clean labels and minimal chart clutter
• Optimised for intraday, swing and high-volatility markets
Use Cases
• Identifying structurally significant breakout points
• Avoiding false expansions during low-volatility phases
• Combining breakout logic with trend, structure or volume tools
• Mapping expansion phases after compression builds
Notes
This tool provides structural and volatility-aware breakout context. It is not a complete trading system. Use with your own confirmation tools and risk management.
ZynIQ Volume Surge Pro v2 - (Pro Pack)Overview
ZynIQ Volume Surge Pro v2 highlights abnormal changes in trading volume using multi-tier surge detection, churn analysis and optional divergence logic. It provides a detailed view of when market participation increases or decreases in a meaningful way.
Key Features
• Multi-tier surge detection (mild/strong/exceptional)
• Churn and absorption-style volume behaviour
• Optional volume-price divergence detection
• Configurable sensitivity for different markets and timeframes
• Clean labels marking surge conditions
• Optional HUD panel with surge state and metrics
• Works well for intraday and swing trading
Use Cases
• Confirming breakouts with strong participation
• Identifying exhaustion or stopping volume conditions
• Spotting divergences between price and volume
• Enhancing trend, structure or breakout analysis with volume context
Notes
This tool provides surge and participation context. It is not a standalone trading system. Use it with your own confirmation and risk management.
ZynIQ FVG Master Pro v2 - (Pro Pack)Overview
ZynIQ FVG Master v2 (Pro) identifies fair value gaps and highlights key imbalance zones within price action. It includes detection for standard and extended FVGs, optional mitigation logic and context filters to help traders understand where inefficiencies may be filled.
Key Features
• Detection of regular and extended FVGs
• Optional mitigation and fill markers
• Configurable minimum gap size and sensitivity
• Direction-aware colour coding
• Optional smart filtering to reduce low-quality gaps
• Clean visuals designed for intraday and swing analysis
• Can be used alongside structure and liquidity tools for confluence
Use Cases
• Identifying imbalance zones likely to be revisited
• Spotting high-probability mitigation areas
• Combining FVGs with BOS/CHOCH or liquidity sweeps
• Mapping context for continuation and reversal setups
Notes
This tool provides FVG and imbalance context. It is not a standalone trading system. Use with your preferred confirmation and risk management.
ZynIQ Liquidity Master Pro v2 - (Pro Pack)Overview
ZynIQ Liquidity Master v2 (Pro) identifies key liquidity pools and sweep zones using automated swing logic, equal-high/low detection and multi-level liquidity mapping. It provides a clear view of where liquidity may be resting above or below price, helping traders understand potential sweep or mitigation behaviour.
Key Features
• Automatic detection of EQH/EQL (equal highs/lows)
• Mapping of major swing liquidity zones
• Optional PDH/PDL (previous day high/low) and weekly levels
• Detection of potential liquidity sweep areas
• Clean labels for swing points and liquidity clusters
• Configurable sensitivity for different markets or timeframes
• Lightweight visuals with minimal clutter
Use Cases
• Identifying major liquidity pools above or below price
• Spotting potential sweep conditions before reversals
• Anchoring market structure or FVG tools with liquidity context
• Understanding where price may target during expansion moves
Notes
This tool identifies areas of resting liquidity based on swing and equal-high/low logic. It is not a standalone trading system. Use with your preferred confirmation and risk management.
ZynIQ Market Structure Master v2 - (Pro Pack)Overview
ZynIQ Market Structure Master v2 (Pro) maps structural shifts in price action using automated BOS/CHOCH detection, swing analysis and directional flow. It provides a clear view of when the market transitions between expansion, pullback and reversal phases.
Key Features
• Automated BOS (Break of Structure) and CHOCH detection
• Swing high/low mapping with optional filtering
• Directional flow logic for identifying trend vs reversal phases
• Optional EQ levels and mitigation markers
• Configurable structure sensitivity for different timeframes
• Clean labels and minimal clutter for fast interpretation
• Suitable for intraday and swing structure analysis
Use Cases
• Identifying key structural shifts in trend
• Spotting early reversal signals via CHOCH
• Assessing trend continuation vs distribution/accumulation
• Combining structure with liquidity, FVG or breakout tools
Notes
This tool provides structural context using break-of-structure and swing logic. It is not a trading system by itself. Use alongside your own confirmation and risk management.
Price Volume Trend to buyThis indicator use PVT (price volume tendency) as background whith colors and labels to smart indicate if you are on buyer or seller scenario
Humontre - One signal - One direction - No noiseClean trend-following band
Delivers one high-conviction entry per trend change
Zero repaint · Minimal lag
Best performance observed on 4H and higher timeframes
Works on all markets (crypto · forex · indices)
Use at own risk.
Smart Donchian Channel Hariss 3691. The Donchian Channel is a trend-following indicator. It’s primarily used to identify volatility, breakouts, and price trends.
The channel is composed of three lines:
Upper Band: The highest high over a specified period (e.g., 20 bars).
Lower Band: The lowest low over the same period.
Middle Line (optional): The average of the upper and lower bands.
2. How the Donchian Channel Detects Price Momentum
The Donchian Channel is based on price extremes, which inherently reflects momentum and market sentiments.
Price Above Midline / Upper Band: Indicates strong bullish momentum. Buyers are dominating, pushing price toward new highs.
Price Below Midline / Lower Band: Indicates strong bearish momentum. Sellers are in control, pushing price toward new lows.
Price Touching the Bands:
Upper band breakout: A potential continuation of an uptrend or trend initiation.
Lower band breakout: A potential continuation of a downtrend or trend initiation.
Bounce from the bands: Signals potential reversals or retracements.
Essentially, the Donchian Channel acts as a dynamic support and resistance level.
3. Interpreting Market Conditions
Trending Markets:
Price moves along or breaks out from the upper/lower band. Donchian Channel expands as volatility increases. Breakouts from the channel often indicate continuation of the trend.
Sideways/Range-Bound Markets:
Price oscillates between upper and lower bands. Channel width narrows. Bounces from upper/lower bands may produce false signals unless filtered by volume or trend indicators.
4. Trading Applications
Breakout Strategy:
Buy when price closes above the upper band.
Sell when price closes below the lower band.
Useful for trend-following systems.
Reversal/Bounce Strategy:
Buy when price bounces from the lower band.
Sell when price rejects the upper band.
How this indicator has been designed to reduce false signals:
Buy signal fires when price bounces from the lower band with high volume (1.5), bullish RSI and DMI/ADX.
Sell signal fires when price reverses from upper band with high volume (1.5) with bearish RSI and DMI/ADX.
One can change the RSI and RVOL setting according to trading style and class assets being traded.
Trading With this Indicator:
Buy when the signal is fired to buy, place Stop Loss just below the low of last candle and take profit @1.5 or 2 times of stop loss.
Sell when the signal is fired to sell, place stop loss just above the high of the last candle and take profit @1.5 or 2 times of stop loss.
It is to note that, this indicator is a trend following indicator, so be with the trend will avoid missing out trend following levels or early exit.
ZynIQ Breakout Pro v2 - (Pro Pack)Overview
ZynIQ Breakout Pro v2 is an advanced breakout framework designed to identify high-quality expansion points from compression zones. It includes adaptive volatility filters, directional detection, optional confirmation logic and an integrated risk-mapping system for structured trade planning.
Key Features
• Adaptive breakout range detection with smart volatility filters
• Direction-aware breakout triggers
• Optional ADX or volatility conditions for confirmation
• Pullback gating to reduce low-quality continuation attempts
• Integrated Risk Helper for SL/TP structure
• Clean labels and minimal chart clutter
• Suitable for intraday and swing trading
Use Cases
• Identifying breakout moments with stronger confirmation
• Avoiding noise and clustering during choppy phases
• Structuring entries around expansion from compression
• Combining breakout signals with trend, momentum or volume tools
Notes
Breakout Pro v2 provides structural and volatility-aware breakout context. It is not a standalone trading system. Use with your own confirmation tools and risk management.






















