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.
M-oscillator
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))
RSI cyclic smoothed ProCyclic Smoothed Relative Strength Indicator - Pro Version
The cyclic smoothed RSI indicator is an enhancement of the classic RSI, adding
additional smoothing according to the market vibration,
adaptive upper and lower bands according to the cyclic memory and
using the current dominant cycle length as input for the indicator.
The cRSI is used like a standard indicator. The chart highlights trading signals where the signal line crosses above or below the adaptive lower/upper bands. It is much more responsive to market moves than the basic RSI.
The indicator uses the dominant cycle as input to optimize signal, smoothing and cyclic memory. To get more in-depth information on the cyclic-smoothed RSI indicator, please read Chapter 4 "Fine tuning technical indicators" of the book "Decoding the Hidden Market Rhythm, Part 1" available at your favorite book store.
Info: Pro Version
This is the actively maintained and continuously enhanced edition of my free, open-source indicator “RSI Cyclic Smoothed v2” which was recognized with a TradingView Editors’ Pick. The Pro Version will remain fully up to date with the latest Pine Script standards and will receive ongoing refinements and feature improvements, all while preserving the core logic and intent of the original tool. The legacy version will continue to be available for code review and educational purposes, but it will no longer receive updates. The legacy open-source version is here
Pro Features V1:
1) Leveraging multi-timeframe analysis
Indicator can be used on one chart by using different time frames at the same time. Read more on TradingView here .
2) Scoring feature added for scanning and filtering
This indicator now provides four distinct scoring states for both bullish and bearish conditions, making it fully compatible with the TradingView Screener .
Each score reflects a specific market phase based on RSI behavior, slope, and crossover signals.
Bullish States (Positive Scores)
+1 – Bull Exhaustion: Price is above the upper threshold and still rising (upsloping).
+2 – Bull Fatigue: Price is above the upper threshold but losing momentum (downsloping).
+3 – Bull Exit: A fresh downward crossover has occurred.
+4 – Recent Bull Exit: A downward crossover occurred within the recent lookback window.
Bearish States (Negative Scores)
–1 – Bear Exhaustion: Price is below the lower threshold and still declining (downsloping).
–2 – Bear Fatigue: Price is below the lower threshold but starting to turn upward (upsloping).
–3 – Bear Exit: A fresh upward crossover has occurred.
–4 – Recent Bear Exit: An upward crossover occurred within the recent lookback window.
The scoring states are shown in the indicator status panel when plotting the indicator on the chart. For a Screener run, use a generic cycle length setting.
How to determine the current active cycle length?
You can use the following additional tools to fine-tune the current dominant cycle length:
1. The advanced dyanmic Cycle Spectrum Scanner
2. The free Detremded Market Rhythm Oscillator
Paid script
Trend-Momentum Matrix [Pro]The Problem: Analysis Paralysis Traders often struggle to align multiple timeframe signals. You might see momentum on the 5-minute chart but fail to notice a major resistance on the 1-hour, or enter a trend just as it loses strength. Juggling multiple indicators (RSI, Moving Averages, ADX, Clouds) on a single chart creates clutter and confusion.
The Solution: Trend-Momentum Matrix The Trend-Momentum Matrix is a professional-grade dashboard that condenses complex market data into a single, high-contrast heatmap. It allows you to monitor the health of a trend across 7 distinct timeframes simultaneously—from scalping charts to long-term views—without cluttering your screen.
This tool is built on a "Strict Compliance" engine. It does not issue signals based on loose guesses; it waits for a high-probability confluence of three market forces: Price Structure, Momentum Velocity, and Trend Strength.
Core Capabilities
1. Dual-Engine Logic The system runs two independent strategies in parallel to catch both sides of the market:
Compounder Engine (Longs) : Identifies high-growth setups where momentum has entered a "Bullish Power Zone," supported by institutional trend strength.
Breakdown Engine (Shorts): Detects structural failures where momentum is accelerating downward and trend support has been breached.
2. The "Squint Test" Visualization Markets move fast. You shouldn't have to read numbers to know the trend. The Matrix utilizes a Heatmap Architecture:
Solid Green Row: Confirmed Bullish Confluence (Safe to Buy).
Solid Red Row: Confirmed Bearish Breakdown (Safe to Short).
Black/Mixed: Noise or Consolidation (Stay Out).
3. Advanced Noise Filtering: Most indicators fail in choppy markets. This tool uses a multi-layered filter:
Trend Strength (ADX) Filter: Signals are ignored if the prevailing trend is too weak or sideways.
Structure Lock: Signals are strictly gated by key moving averages. If the price structure isn't sound, the signal is suppressed.
4. Donchian Breakout Detection The matrix automatically tracks volatility breakouts. It monitors whether the current price action is expanding beyond historical volatility bands (Upper/Lower Donchian channels) to confirm true breakouts versus fake-outs.
Key Features
Multi-Timeframe Matrix: Monitor 7 timeframes (fully customizable with On/Off toggles) in one corner of your screen.
Auto-Adaptive Interface: The table uses a high-contrast Black background that remains clearly visible on both Light and Dark TradingView themes.
Smart Ribbon: Includes an optional, non-intrusive 8-line Moving Average Ribbon to visualize trend flow directly on the chart.
Strict Exit System: The system is designed to protect capital. The moment the specific conditions for Momentum or Structure are lost, the signal immediately converts to an EXIT or COVER command.
Risk Disclaimer: Trading involves substantial risk and is not suitable for every investor. This tool is an analysis aid and does not constitute financial advice. Past performance is not indicative of future results.
Access: This is an Invite-Only premium indicator. Please contact the author to request access.
Trend Composite (Auto 125d + Daily Overlay)Arthur Hill’s Trend Composite is a multi-factor trend indicator designed to quantify the overall trend strength of any market. Instead of relying on a single moving average or MACD signal, the Trend Composite combines five proven long-term trend measures into one clear score.
The indicator outputs a value from –5 to +5, where:
+5 → Strong uptrend
0 → Neutral / transition zone
–5 → Strong downtrend
A higher score means more trend components are aligned bullishly. A lower score means multiple trend components are pointing bearish.
The Trend Composite evaluates:
Price vs 100-day SMA
Price vs 200-day SMA
50-day SMA vs 200-day SMA
Slope of the 200-day SMA
MACD line vs Signal line
Each component votes +1 (bullish) or –1 (bearish), and the sum becomes the Trend Composite score.
Why This Indicator Works
Trend signals by themselves can be noisy or lagging. When you combine multiple uncorrelated trend measures, you remove false positives and get a cleaner picture of market direction. The result is a powerful, balanced trend filter that works across stocks, crypto, forex, indices, and commodities.
How Traders Use It
Trend filter for long trades: Only trade long when the score is ≥ +3
Avoid chop: Stay out when the score is between –2 and +2
Short setups: Look for –3 or lower
Watchlist ranking: Sort symbols by composite score to find the strongest trends
Stage analysis: Helps identify clear Stage 2 uptrends and Stage 4 downtrends
This makes it ideal for systematic traders, swing traders, trend followers, and anyone building rule-based strategies.
Notes
This is not a buy/sell signal on its own — it’s a trend framework. Combine it with volume patterns, relative strength, volatility contraction, or your preferred entry setup for best results.
ZynIQ Premium/Discount Master v2 - (Lite Pack)Overview
ZynIQ Premium-Discount Master v2 (Lite) is a simplified tool designed to highlight premium/discount zones relative to short-term market structure. It helps traders see when price is stretched above or below fair value, using volatility-adjusted logic suitable for intraday and swing trading.
Key Features
• Automated premium/discount classification
• Volatility-aware thresholds for mild and strong stretch conditions
• Clear visual cues for overbought/oversold environments
• Direction-aware structure to complement trend and momentum tools
• Clean labels marking stretch transitions
• Lightweight visuals suitable for fast charting workflows
Use Cases
• Identifying premium and discount zones for entries or exits
• Assessing when price has deviated significantly from equilibrium
• Combining with breakout or VWAP tools for structured confluence
• Improving trade timing with stretch-based context
Notes
This tool provides premium/discount structure and stretch context. It is not a standalone trading system. Use it along with your own confirmation and risk management rules.
Double Relative Strength IndexBase on Regular Relative Streng Index, I am add 1 more RSI on it.
Using method:
When faster RSI cross lower RSI, price direction move at the same direction. It faster to know the direction of price than just using 1 RSI.
Hope it useful for you.
Penny Stock Golden Cross ScannerPenny Stock Golden Cross Scanner
Scan and track potential breakout opportunities in penny stocks with this Golden Cross Scanner. Designed for traders looking at low-priced, high-volume stocks, this indicator identifies bullish setups using 50, 100, and 200-period moving averages.
Key Features:
✅ Monitors up to 10 user-defined tickers.
✅ Filters penny stocks by maximum price and minimum volume.
✅ Detects proximity to 100 MA and 200 MA for potential golden cross or support/resistance signals.
✅ Assigns signal tiers for each stock (Tier 1 🔥, Tier 2 ⚡, Tier 3 📊) based on price action relative to moving averages.
✅ Customizable scanner table with position options on the chart.
✅ Real-time plotting of 50, 100, and 200 moving averages for context.
✅ Option to display only stocks currently generating signals.
CYCLE RESEARCH PRO - FIXEDCYCLE RESEARCH PRO – Fixed & Cleaned (2025 Edition)
The only public T+21 / T+35 / T+147 cycle tracker that actually works.
Features:
• Exact days since the legendary GME sneeze (28 Jan 2021)
• Highlights active T+21, T+35, and T+147 windows (± user-defined tolerance)
• Live countdown to next cycle date for all three
• FTD Proxy detector (extreme volume + true-range spike)
• Clean wide dashboard – no clutter
• Background glows when any cycle window is active
• Built-in alerts including the infamous “T+21 + FTD” combo
• 100 % non-repainting – uses only confirmed bars
• Zero errors, zero warnings, Pine v6 native
Made famous in the meme-stock wars.
Now cleaned, fixed, and ready for the next run.
Works on GME, AMC, BBBY, any stock or crypto.
Use it. Share it. Profit.
Not financial advice. Just math & cycles.
– Published with love for the apes, degens, and cycle chads everywhere
Erva & nur (stoch rsi)This script builds a custom oscillator that combines WaveTrend, RSI and Stochastic RSI to analyze momentum and overbought/oversold zones.
Traffic Lights - BETA ZONESTraffic Lights - BETA ZONES
Overview
The Traffic Light indicator is a simple, visual tool designed to help traders gauge market bias, trend strength, and momentum at a glance. It displays three rows of colored dots (like a traffic light) in a separate pane below your chart:
• Green: Bullish signal (go/buy bias).
• Red: Bearish signal (stop/sell bias).
• Orange: Neutral or caution (mixed/uncertain conditions).
This indicator combines price action (via EMA positioning), trend direction (via RSI), and momentum expansion (via RSI + MACD histogram) to provide a layered view of the market. When all three rows align as green or red, it generates Buy or Sell labels on the main chart for potential entry signals.
It's non-repainting in its core logic (Row 2 uses delayed RSI comparison to avoid noise), making it reliable for live trading. Best used on trending markets like forex, stocks, or crypto on timeframes from 15M to Daily.
How It Works
The indicator evaluates three independent "rows" of conditions, each represented by a colored dot:
1. Row 1: Price Action Signal (EMA Touch) This row assesses the overall trend bias based on price's position relative to a slow EMA (default: 50-period).
o Green: Price is cleanly above the EMA (bullish bias).
o Red: Price is cleanly below the EMA (bearish bias).
o Orange: Price is "touching" or within a volatility buffer around the EMA (neutral/caution). The "touch zone" is defined by ATR padding, which can be toggled off for a stricter (green/red only) mode.
2. Row 2: Buyers/Sellers Trend (RSI) This row tracks the underlying trend of buyer/seller strength using RSI (default: 14-period on close). To reduce noise and repainting, it uses a delayed comparison (RSI vs. RSI ):
o Green: RSI is rising (buyers gaining strength).
o Red: RSI is falling (sellers gaining strength). No orange here—it's purely directional.
3. Row 3: Buyers/Sellers Signal (RSI + MACD Histogram) This row focuses on momentum expansion, requiring alignment across RSI zones and MACD histogram:
o Green: RSI > 50 (bull zone), MACD hist > 0 (positive), and histogram is expanding upward.
o Red: RSI < 50 (bear zone), MACD hist < 0 (negative), and histogram is expanding downward.
o Orange: Any mismatch (e.g., pullbacks, consolidations, or weak momentum). MACD defaults: Fast=12, Slow=26, Signal=9.
Signals
• Buy Signal: Triggers a "Buy" label below the bar when all three rows turn green for the first time (crossover from non-aligned).
• Sell Signal: Triggers a "Sell" label above the bar when all three rows turn red for the first time. These are conservative signals—use them for trend confirmation or entries in alignment with your strategy. They don't repaint once fired.
Inputs & Customization
All inputs are grouped for easy tweaking:
• Row 1: Price Action Signal
o Slow EMA Length (default: 50): Adjusts the trend baseline.
o EMA Timeframe (default: empty/current): Use a higher timeframe (e.g., "240" for 4H) for multi-timeframe analysis.
o Enable Orange 'Touch' Zone (default: true): Toggle for strict (green/red only) vs. touch mode.
o ATR Length (default: 3): Volatility period for touch padding.
o Touch Padding (ATR mult, default: 0.15): Widens the orange buffer; set to 0 for wick-touch only.
• Row 2: Buyers/Sellers Trend (RSI)
o RSI Length (default: 14): Period for RSI calculation.
o RSI Source (default: close): Change to high/low/open for different sensitivities.
• Row 3: Buyers/Sellers Signal (RSI + MACD hist)
o MACD Fast/Slow/Signal Lengths (defaults: 12/26/9): Standard MACD settings.
Usage Tips
• Trend Trading: Wait for all-green for long entries or all-red for shorts. Use in conjunction with support/resistance.
• Scalping/Intraday: Enable orange touch zone for more nuance in choppy markets; disable for cleaner signals in trends.
• Multi-Timeframe: Set Row 1 EMA to a higher TF for "big picture" bias while keeping others on current.
• Risk Management: Always combine with stop-losses (e.g., below recent lows for buys). Backtest on your asset/timeframe.
• Limitations: In ranging markets, orange dots may dominate—pair with volatility filters like ADX. Not a standalone system; use as a confirmation tool.
If you have feedback or suggestions, drop a comment below! Happy trading 🚦
Marumaroo's RSI + MFI (가격과 거래량의 이중 체크)매매할 때 RSI랑 MFI를 같이 보는데, 지표창 두 개 띄우기 귀찮아서 하나로 합쳤습니다.
RSI(가격)만 보면 가짜 반등에 속을 때가 많은데, MFI(거래량)랑 같이 보면 다이버전스나 휩소 걸러내기가 훨씬 수월합니다.
특징:
보기 편함: RSI는 빨강, MFI는 회색입니다.
배경색 알림: 과매수(80 이상) 구간은 빨간 배경, 과매도(20 이하) 구간은 초록 배경이 뜹니다. 한눈에 파악하기 좋습니다.
복잡한 기능 다 빼고 깔끔하게 만들었으니 필요하신 분 쓰세요.
I combined RSI and MFI into a single chart to save screen space and filter out fake signals.
Checking Money Flow (MFI) alongside Price Action (RSI) helps in spotting divergences and avoiding traps.
Features:
Clean Look: RSI is Red, MFI is Gray.
Background Colors: automatically highlights Overbought (>80) zones in Red and Oversold (<20) zones in Green.
Simple and lightweight script. Hope it helps!
Magic Equity Trend & PivotsMagic Equity Trend & Pivots is a robust technical analysis engine designed specifically for equity and index traders. It serves as a comprehensive "Trend & Level" companion, combining institutional Pivot Points with a proprietary EMA trend filtering system to identify high-probability setups.
How the Magic Works
This indicator simplifies complex market data into a clear visual workflow:
1. The Magic Equity Trend (Trend Identification) The script uses a weighted system to determine the dominant market direction:
Bullish Trend: Price holds above the primary Trend SMA + a Volatility Buffer (Green Zone).
Bearish Trend: Price is rejected below the Trend SMA - Buffer (Red Zone).
No-Trade Zone: When the price is trapped inside the buffer (Gray Channel), the trend is considered weak or ranging.
2. Institutional Pivot Points Price often reacts at hidden levels. This tool calculates and overlays these levels automatically:
Multi-Type Support: Choose between Traditional, Fibonacci, Woodie, Classic, DM, and Camarilla pivots.
Timeframe Smart-Switching: Use fixed timeframes (e.g., Weekly Pivots on a Daily chart) or let the "Auto" mode decide the best reference period for your current view.
Historical Mode: Unlike standard pivots, these can be back-tested visually to see how prices respected levels in the past.
3. Precision Entry & Exit Logic Trade signals are not random; they are based on a strict confluence of "Magic" factors:
Entry Signal: Requires Trend Alignment + Fast/Slow EMA Crossover + RSI Strength (>60) + Relative Volume Spike.
Top-Up (Add-on): Detects low-risk opportunities to add to a position when price pulls back to the EMA10/20 during a strong trend.
Two-Stage Exit: Secures profits using either an ATR Trailing Stop or an Intraday RSI Breakdown, depending on your settings.
4. Divergence & Momentum
RSI Divergence: Automatically plots Regular Bullish and Bearish divergences to warn of potential reversals at tops or bottoms.
Darvas Boxes: Visualizes consolidation ranges to help identify breakouts.
5. Performance Dashboard A data table provides a snapshot of the asset's health:
Mean Reversion: Measures the % distance from key EMAs (10, 20, 50).
RVOL & ADR: Displays Relative Volume and Average Daily Range to gauge volatility.
Performance Tracker: A theoretical summary table showing how the trend signals have performed over the last 1W, 1M, and 1Y periods.
Settings & Customization
Visuals: Fully customizable colors for the Trend Cloud, Pivots, and Backgrounds.
Filters: Toggle specific filters (Volume, RSI, Trend Buffer) to adapt the sensitivity to different asset classes.
Disclaimer: This tool is for educational purposes and technical analysis assistance only. Past performance displayed in the dashboard does not guarantee future results.
Super-AO Engine - Sentiment Ribbon - 11-29-25Super-AO Sentiment Ribbon by Signal Lynx
Overview:
The Super-AO Sentiment Ribbon is the visual companion to the Super-AO Strategy Suite.
While the main strategy handles the complex mathematics of entries and risk management, this tool provides a simple "Traffic Light" visual at the top of your chart to gauge the overall health of the market.
How It Works:
This indicator takes the core components of the Super-AO strategy (The SuperTrend and the Awesome Oscillator), calculates the spread between them and the current price, and generates a normalized "Sentiment Score."
Reading the Colors:
🟢 Lime / Green: Strong Upward Momentum. Ideally, you only want to take Longs here.
🟤 Olive / Yellow: Trend is weakening. Be careful with new entries, or consider taking profit.
⚪ Gray: The "Kill Zone." The market is chopping sideways. Automated strategies usually suffer here.
🟠 Orange / Red: Strong Downward Momentum. Ideally, you only want to take Shorts here.
Integration:
This script uses the same default inputs as our Super-AO Strategy Template and Alerts Template. Use them together to confirm your automated entries visually.
About Signal Lynx:
Free Scripts supporting Automation for the Night-Shift Nation 🌙
(www.signallynx.com)
Super-AO with Risk Management Alerts Template - 11-29-25Super-AO with Risk Management: ALERTS & AUTOMATION Edition
Signal Lynx | Free Scripts supporting Automation for the Night-Shift Nation 🌙
1. Overview
This is the Indicator / Alerts companion to the Super-AO Strategy.
While the Strategy version is built for backtesting (verifying profitability and checking historical performance), this Indicator version is built for Live Execution.
We understand the frustration of finding a great strategy, only to realize you can't easily hook it up to your trading bot. This script solves that. It contains the exact same "Super-AO" logic and "Risk Management Engine" as the strategy version, but it is optimized to send signals to automation platforms like Signal Lynx, 3Commas, or any Webhook listener.
2. Quick Action Guide (TL;DR)
Purpose: Live Signal Generation & Automation.
Workflow:
Use the Strategy Version to find profitable settings.
Copy those settings into this Indicator Version.
Set a TradingView Alert using the "Any Alert() function call" condition.
Best Timeframe: 4 Hours (H4) and above.
Compatibility: Works with any webhook-based automation service.
3. Why Two Scripts?
Pine Script operates in two distinct modes:
Strategy Mode: Calculates equity, drawdowns, and simulates orders. Great for research, but sometimes complex to automate.
Indicator Mode: Plots visual data on the chart. This is the preferred method for setting up robust alerts because it is lighter weight and plots specific values that automation services can read easily.
The Golden Rule: Always backtest on the Strategy, but trade on the Indicator. This ensures that what you see in your history matches what you execute in real-time.
4. How to Automate This Script
This script uses a "Visual Spike" method to trigger alerts. Instead of drawing equity curves, it plots numerical values at the bottom of your chart when a trade event occurs.
The Signal Map:
Blue Spike (2 / -2): Entry Signal (Long / Short).
Yellow Spike (1 / -1): Risk Management Close (Stop Loss / Trend Reversal).
Green Spikes (1, 2, 3): Take Profit Levels 1, 2, and 3.
Setup Instructions:
Add this indicator to your chart.
Open your TradingView "Alerts" tab.
Create a new Alert.
Condition: Select SAO - RM Alerts Template.
Trigger: Select Any Alert() function call.
Message: Paste your JSON webhook message (provided by your bot service).
5. The Logic Under the Hood
Just like the Strategy version, this indicator utilizes:
SuperTrend + Awesome Oscillator: High-probability swing trading logic.
Non-Repainting Engine: Calculates signals based on confirmed candle closes to ensure the alert you get matches the chart reality.
Advanced Adaptive Trailing Stop (AATS): Internally calculates volatility to determine when to send a "Close" signal.
6. About Signal Lynx
Automation for the Night-Shift Nation 🌙
We are providing this code open source to help traders bridge the gap between manual backtesting and live automation. This code has been in action since 2022.
If you are looking to automate your strategies, please take a look at Signal Lynx in your search.
License: Mozilla Public License 2.0 (Open Source). If you make beneficial modifications, please release them back to the community!
$TGM | Topological Geometry Mapper (Custom)TGM | Topological Geometry Mapper (Custom) – 2025 Edition
The first indicator that reads market structure the way institutions actually see it: through persistent topological features (Betti-1 collapse) instead of lagging price patterns.
Inspired by algebraic topology and persistent homology, TGM distills regime complexity into a single, real-time proxy using the only two macro instruments that truly matter:
• CBOE:VIX – market fear & convexity
• TVC:DXY – dollar strength & global risk appetite
When the weighted composite β₁ persistence drops below the adaptive threshold → market structure radically simplifies. Noise dies. Order flow aligns. A directional explosion becomes inevitable.
Features
• Structural Barcode Visualization – instantly see complexity collapsing in real time
• Dynamic color system:
→ Neon green = long breakout confirmed
→ red = short breakout confirmed
→ yellow = simplification in progress (awaiting momentum)
→ deep purple = complex/noisy regime
• Clean HUD table with live β₁ value, threshold, regime status and timestamp
• Built-in high-precision alerts (Long / Short / Collapse)
• Zero repaint – uses only confirmed data
• Works on every timeframe and every market
Best used on:
BTC, ETH, ES/NQ, EURUSD, GBPUSD, NAS100, SPX500, Gold – anywhere liquidity is institutional.
This is not another repainted RSI or MACD mashup.
This is structural regime detection at the topological level.
Welcome to the future of market geometry.
Made with love for the real traders.
Open-source. No paywalls. No BS.
#topology #betti #smartmoney #ict #smc #orderflow #regime #institutional
Triple Sine Oscillator (TSO) — Squeeze EditionTriple Sine Oscillator (TSO) – Squeeze Edition
A unique sine-cubed momentum oscillator that identifies cyclic exhaustion zones combined with real-time liquidity stress detection (MLO proxy via credit spreads + VIX).
Designed for both normal stocks and heavily shorted names (GME/AMC-style).
Features:
• Overbought/oversold reversals
• Bullish/bearish divergence
• "Squeeze Favorable" background + amplified alerts
• Real-time dashboard with trading advice
• Special 🚀 SQUEEZE and 💎 MEGA alerts when conditions align
🗓️ FTD Cycle Lite Tracker🗓️ FTD Cycle Lite Tracker (Open Source)This is the simplified, open-source companion to the premium FTD SPIKE PREDICTOR - ML Model.This Lite version focuses purely on time-based cyclic analysis, highlighting the periods when the market is approaching the most well-known FTD-related time windows, based on historical, cyclic patterns.It's the perfect tool for traders who want clean, visual confirmation of anticipated cyclic dates without the complexity or predictive power of a multi-factor model.Key Features of the Lite Version:T+35 Cycle Tracking: Highlights the approximate 49-day calendar cycle (representing 35 trading days) often associated with mandatory Failures-to-Deliver clearing.147-Day Major Cycle: Highlights the long-term institutional cycle commonly observed in assets with complex contract deadlines, anchored from the January 28, 2021 date.Custom Anchor Points: Both cycles allow you to adjust the anchor date to suit different ticker-specific patterns.Visual Windows: Provides clear background shading and shape markers to indicate when the critical 5-day cycle windows are active.👑 Upgrade to the Full Prediction Engine!The open-source Lite version only gives you the calendar dates. The full, proprietary indicator goes far beyond simple calendar counting by telling you how probable a spike is on those dates, and which other factors are confirming the risk.Why Upgrade?FeatureFTD Cycle Lite (Free)FTD SPIKE PREDICTOR (Premium)OutputCalendar Dates0-100% Probability ScoreLogic2 Time Cycles Only7 Weighted Features (ML Model)ConfirmationNoneVolume, Price, Volatility, OPEX, Swap RollConfidenceNone95% Confidence IntervalsSignalsDate MarkersCritical Alerts & Feature BreakdownUnlock the Full PowerYou can get the FTD SPIKE PREDICTOR - ML Model for a one-time fee of $50.00.Since TradingView's invite-only feature is not available, you can contact me directly to gain access:TradingView: Timmy741X.com (Twitter): TimmyCrypto78
🚀 Hull Squeeze + Money Flow Trinity - Ultimate Breakout Hunter🚀 Hull Squeeze + Money Flow Trinity - Ultimate Breakout HunterThis is a high-octane, multi-factor breakout hunter designed to capture explosive moves by identifying the rare confluence of extreme price compression, aligned trend, and confirmation from institutional money flow. It combines three best-in-class market analysis tools into a single, comprehensive signaling system.The indicator is engineered to filter out noisy, low-probability setups, focusing instead on high-conviction events like "MEGA SQUEEZE FIRE" and the elusive "GOD MODE SETUP".How the Trinity Works:📊 Hull Ribbon & Compression: Uses a ribbon of Hull Moving Averages (HMAs) to filter the underlying trend and, crucially, measure the compression of volatility relative to ATR. When the ribbon is highly compressed, it signals the market is coiled and ready for a major move—a Pre-Squeeze warning.💥 Squeeze Detection: Implements the classic Bollinger Band (BB) / Keltner Channel (KC) Squeeze logic to pinpoint the exact moment volatility is drained (Squeeze ON) and the moment the resulting energy is released (Squeeze FIRE).💰 Money Flow Trinity: Confirms the quality of the move by aggregating three volume-based indicators—Force Index, Chaikin Money Flow (CMF), and Accumulation/Distribution (A/D) Line. This generates a Money Flow Score ($\le 3$) that validates the directional pressure, ensuring the breakout is backed by genuine buying or selling.The Ultimate Edge:The indicator plots actionable signals directly on the chart and provides a real-time Dashboard displaying the status of each component and the final Signal Status. Use it to spot low-risk, high-reward opportunities on your favorite instruments.
#Fibonacci Time Spiral Projector 🌀🌀 Fibonacci Time Spiral Projector 🎯
This advanced indicator is built for the time-based technical analyst seeking to project future reversal dates using the power of the Fibonacci Time Cycles. It automatically detects significant market pivots and creates a forward-looking "time spiral" by projecting the next potential high or low target based on a sequence of user-defined Fibonacci numbers (e.g., 3, 5, 8, 13, 21, 34, etc.).
Key Features & Analysis:
Dynamic Pivot Detection: Utilizes the ta.pivothigh() and ta.pivotlow() functions to identify significant historical turning points on the chart.
Time Spiral Projection: Projects future time targets by adding Fibonacci sequence numbers (in days/bars) to the detected pivot bar.
Alternating Reversal Targets: Targets alternate between expected Lows (after a high pivot) and expected Highs (after a low pivot), guiding your expectation for the next reversal type.
Visualization & Performance: Projection lines and labels are drawn directly on the chart, color-coded for clarity. The script includes a performance table that tracks the historical accuracy of each Fibonacci interval, allowing you to see which cycles are most effective for your current asset and timeframe.
Customization: Fully customizable inputs for pivot strength, number of Fibonacci levels to track, maximum concurrent spirals, and neon-style V6-compliant colors.
The Fibonacci Time Spiral Projector is an invaluable tool for anticipating market turns based on historical, cyclic time patterns, providing crucial context for trade timing.
🦍 INSTITUTIONAL DARK POOL & BASKET MANIPULATOR 🚀📝 Indicator Description
🦍 INSTITUTIONAL DARK POOL & BASKET MANIPULATOR 🚀
This is the ultimate edge detection tool for tracking institutional manipulation in basket-linked stocks (e.g., GME, AMC, KOSS). It combines four powerful, independent analysis modules into a single, high-performance indicator. The goal is to identify points of high institutional pressure, coordinated trading, and critical FTD/Gamma Cycle confluence, offering clear BUY/SELL signals and detailed dashboard metrics.
Key Features & Analysis Modules:
🔥 Dark Pool / Unusual Activity Detection: Uses Z-Score analysis on volume spikes, block trade detection, and end-of-day (EOD) institutional sweeps to identify periods of hidden accumulation or distribution. Tracks Cumulative Institutional Pressure to visualize the long-term trend of dark pool activity.
🦍 Basket Correlation Engine: Measures the real-time correlation between the current ticker and up to four user-defined comparison tickers (e.g., meme stocks or related ETFs). Alerts you to a Correlation Break (un-tethering) or a Manipulation Signal (high, synchronized movement) indicative of coordinated basket trading.
📅 T+35 FTD Cycle Tracker: Automatically calculates and highlights the predicted 35-day Failure-to-Deliver (FTD) cycle windows, providing a crucial time-based manipulation context.
⚡ Gamma Pinning Detector: Identifies when the price is being tightly controlled near major option strike prices (e.g., $5, $10, $20), warning of potential Gamma Pinning behavior.
This tool is designed for experienced traders operating on 4-Hour (4H) or Daily timeframes who want to see beneath the surface of the market and exploit institutional footprint.
DPX+ Command Structural Flow Engine (v6) - FinalDPX+ COMMAND STRUCTURAL FLOW ENGINE v6 — DARKPOOL EDITION
The most advanced auto-calibrated dark-pool absorption + structural flow detector ever released to the public.
100% Open Source • Zero repainting • Institutional-grade math • Built for commanders only.
WHAT THIS ACTUALLY IS
A real-time fusion of:
• Reynolds Number proxy (laminar → turbulent flow detection)
• Tsallis Δq non-extensive entropy (tension & phase transition predictor)
• DPX — proprietary Dark Pool Absorption Index (volume-weighted inefficiency)
All three are AUTO-CALIBRATED to the current market regime. No manual thresholds. Works on BTC, SPX, TSLA, 1m or monthly — same settings.
FEATURES
• Jet-black military HUD with live COMMAND output
• Lethal Entry signals when ALL 3 systems align (extremely rare, extremely high win rate)
• Visualizes laminar vs turbulent flow in real time
• DPX absorption/distribution zones with dynamic bands
• Structural break warnings before violent moves
• Zero input tweaking needed — fully adaptive
USE CASE
This is not a "buy/sell arrow" script.
This is a command-center structural flow monitor used by professionals who understand order flow phases:
→ Accumulation (dark pool buying dips)
→ Tension buildup (Δq spike)
→ Phase transition (laminar → turbulent)
→ Lethal structural convergence = high-conviction entry
WHEN THE HUD SAYS "**BUY** (Lethal Structural Convergence)" — you listen.
Tested and proven on:
• Crypto bear market bottoms
• 2022–2023 SPX distribution tops
• 2025 small-cap rotation
Fully open source because real edge isn’t in the code — it’s in understanding what the code is showing you.
If you know, you know.
#darkpool #orderflow #structural #dpx #reynolds #tsallis #institutional #smartmoney #accumulation #distribution #phasechange #ict #smc #commandcenter
Made with respect for the craft.
Drop a ♥ if this speaks to you.
@Aladdin's Trading Web – Command CenterThe indicator uses standard Pine Script functionality including z-score normalization, standard deviation calculations, percentage change measurements, and request.security calls for multiple predefined symbols. There are no proprietary algorithms, external data feeds, or restricted calculation methods that would require protecting the source code.
Description:
The @Aladdin's Trading Web – Command Center indicator provides a composite market regime assessment through a weighted combination of multiple intermarket relationships. The indicator calculates normalized z-scores across several key market components including banks, volatility, the US dollar, credit spreads, interest rates, and alternative assets.
Each component is standardized using z-score methodology over a user-defined lookback period and combined according to configurable weighting parameters. The resulting composite measure provides a normalized assessment of the prevailing market environment, with the option to invert rate relationships for specific market regime conditions.
The indicator focuses on capturing the synchronized behavior across these interconnected market segments to provide a unified view of systemic market conditions.






















