Triple Screen System [FlexibleMAs MACD-RSI-ADX]#### Triple Screen System (TSS-FMR)
The TSS-FMR script is a specialized, multi-timeframe confirmation tool built for Swing, Positional Traders, and Longer Term Investors. It is engineered to filter out low-conviction noise by implementing an advanced interpretation of the Elder's Triple Screen strategy, relying on proprietary momentum, volatility, and volume analysis to isolate high-probability setups.
---
#### 🧠 Core Methodology & Logic
The TSS-FMR synthesizes three distinct layers of confirmation to generate signals:
1. Macro Trend & Volatility: Determines the primary trend and overall market condition using configurable EMA+RSI metrics , the script uses Average Directional Index (ADX) as an internal component to filter out non-trending, consolidating market conditions.
2. Momentum Synchronization: A proprietary filter requiring MACD,MAs and RSI to be synchronized * within a specified bar window (`MACD/RSI Sync Window`) ensures that entries align with current short-term momentum shifts.
3. Volume & Price Action: Final entry is triggered only when the higher timeframes align and the entry timeframe (Daily or 4H) confirms the move, optionally requiring * Candle Confirmation * and filtering out low-quality trades using the * Volume Filter *
The key is the separation of input thresholds and lengths for Weekly and Daily lookbacks, allowing for precise tuning unavailable in standard public libraries.
---
#### 🎯 Understanding Signal Strength & Conviction
Signals are categorized using a proprietary Strength scale (from Overbought/Oversold to 6) to help traders gauge the potential size and probability of the momentum move, This scale is dynamically influenced by the ADX volatility readings.
#### 🔍 Integrating External Visual Tools (Addressing Rule: Vendor/Chart)
The TSS-FMR generates signals based solely on its internal logic and inputs .*
We recommend overlaying the TSS-FMR signals with external tools (such as the Lux Algo SmartMoneyConcepts indicator or similar public S/R tools) for visual confirmation only :
* Signals (2, 3, 4) + CHOCH/BOS: * A signal with lower internal strength (2-4) gains stronger conviction if it aligns precisely with a CHOCH or BOS event visually identified by the external tool. This confirms that the market structure is validating the script's momentum reading.
Zone Confirmation: When signals land precisely within visually defined Liquidity or Accumulation/Distribution Zones (provided by external visual tools), it adds significant conviction to the TSS-FMR's output.
The *Overbought/Oversold regions* are decided based on the script's internal strength calculation and prevailing price action.
#### Summary:
--- This script is for Swing, Positional Traders and Longer Term Investors
--- It will only work with Monthly,Weekly, Daily and 4H chart to help you make confirmation based positions.
--- Sell Signals are Overbought Exits and Short sell signals, Plan according to Weekly Signals and Daily signals
--- Use the Momentum Table/matrix at the right top of the chart when TSS indicator is active.
--- Use Volume Filter enable to remove chaos of signals
--- Keep *Lux Algo -SmartMoneyConcepts* indicator active for visual of zones
--- Adjust Volume Filter in Settings to avoid crowding of signals
--- Adjust Input signal length to select number of history bars
--- Watch-out for Weekly 100ema Line and
--- Watch-out for Sell Signals, in discount region they are marked as Buy oversold or moderate, vise versa Sell Overbought signals are added to the charts.
--- To earn money, we need to look out for early signals, fake breakouts, breakdowns and what we want the table/matrix turning all green or red in Momentum trades.
---
#### House Rule Compliance Statement
This script description is provided strictly for technical clarity. It is free from all promotional content, external links, contact information, social media references, and solicitations, as per TradingView's General House Rule #2. The justification for its closed-source nature is based on its proprietary signal synchronization logic and flexible, multi-timeframe implementation.
Multitimeframe
HTF Candle overlayOverview
This Pine Script indicator overlays three separate Mini Charts onto the right side of your main chart area. These mini charts display price action from Higher Timeframes (HTF), allowing traders to monitor multi-timeframe market structure and trends without switching screens. Each mini chart is overlaid with up to 5 customizable EMA (Exponential Moving Average) Clouds.
Key Features
1. Three Independent Mini Charts
Users can select three distinct higher timeframes (e.g., 1 Hour, 4 Hours, 1 Day).
The script automatically checks to ensure the selected timeframe is higher than the current chart's timeframe.
Displays up to 10 historical candles per mini chart (limited to optimize Pine Script drawing resources).
2. Smart Data Handling (RTH vs. ETH)
Daily, Weekly, Monthly: For timeframes of 1 Day or higher, the script forces Regular Trading Hours (RTH) data. This ensures daily candles look standard and aren't distorted by pre/post-market low volume ticks.
Intraday (e.g., 1H, 4H): For timeframes below 1 Day, the script uses Extended Trading Hours (ETH) data, ensuring you see the full picture of pre-market and after-hours moves.
Ticker Cleaning: The script automatically sanitizes ticker IDs to prevent "Symbol Resolve Errors" when used on charts with complex session settings.
3. Comprehensive EMA Clouds
5 Customizable Clouds: Each mini chart can display up to 5 different EMA Clouds (pairs of Short and Long Moving Averages).
Full Color Control: Users can individually customize:
Line Colors: Distinct colors for Short and Long EMA lines.
Cloud Fill: Distinct colors and transparency for Bullish and Bearish trends.
Toggle Visibility: Each of the 5 clouds can be turned On or Off via settings.
Source Selection: Users can calculate EMAs based on Close, Open, High, Low, HL2, HLC3, or OHLC4.
4. Custom Visuals & Positioning
Candle Aesthetics: Users can define Bull/Bear candle colors, transparency, and Candle Width (thickness).
Positioning:
Horizontal Offset: Shift the entire dashboard left or right to avoid overlapping with current price action.
Spacing: Adjust the gap between the three mini charts.
Assistance Lines: Optional Support/Resistance lines (Fibonacci or Range High/Low) can be drawn extending from the mini charts.
How it Works (Technical Summary)
The script utilizes request.security to fetch OHLC data and Moving Average data from the specified higher timeframes. It stores this data in Matrices and Arrays to manage history. It then uses Pine Script's line.new and label.new functions to manually draw the candles and EMA lines onto the main chart canvas, relative to the current bar_index. It includes logic to handle dynamic array resizing and garbage collection to stay within Pine Script's execution limits.
FRAN CRASH PLAY RULESA script with purely descriptive nature is one that:
• Only describes actions, settings, characters, and events.
• Contains no dialogue, commands, or instructions for execution.
• Does not specify plot decisions, logic, or interactive elements.
• Reads like a detailed narrative blueprint, focusing on what exists or happens rather than what anyone should do.
Bappa - Dynamic VWAP Simple Vwap, just dynamic colour Coding added to sense whether VWAP is in uptrend or downtrend. Refer to colour code to enter Call side or Put side, it never disappoints you at any timeframe. Enjoy & happy Trading!!
Better results if used in conjuction with Pivots/ fractals indicator, named as Bappa EMA + BBW (V2) indicator.
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))
LJ Parsons Adjustable expanding MRT Fibpapers.ssrn.com
Market Resonance Theory (MRT) reinterprets financial markets as structured multiplicative, recursive systems rather than linear, dollar-based constructs. By mapping price growth as a logarithmic lattice of intervals, MRT identifies the deep structural cycles underlying long-term market behaviour. The model draws inspiration from the proportional relationships found in musical resonance, specifically the equal temperament system, revealing that markets expand through recurring octaves of compounded growth. This framework reframes volatility, not as noise, but as part of a larger self-organising structure.
TrendSight📌 TrendSight — The All-in-One Multi-Timeframe Trend Engine
Key Features & Logic
Multi-Timeframe Trend Confirmation:
Entries are filtered by confirming bullish/bearish alignment across three distinct Supertrend timeframes (e.g., 5-min, 15-min, 45-min, etc.), combined with an EMA and volatility filter, to ensure high-conviction trades that's a powerful combination! Designing the entire strategy around the 15-minute timeframe (M15) and focusing on high-volatility coins maximizes the strategy's effectiveness .
Guaranteed Single-Entry per Signal:
The strategy uses a powerful manual flag and counter system to ensure trades fire only once when a new signal begins. It absolutely prevents immediate re-entry if the signal remains true, waiting instead for the entire trend condition to reset to false.
Dynamic Trailing Stop Loss:
The Stop Loss is set to a moving Supertrend line (current_supertrend), ensuring tight risk management that trails the price as the trade moves into profit.Guaranteed Take Profit (4% Run-up): Uses a precise Limit Order via strategy.exit() to capture profits instantly at a 4% run-up. This ensures accurate profit capture, even on sudden spikes (wicks).
Automated Risk Management:
Position size is dynamically calculated based on a fixed risk percentage (default 2% of equity) relative to the distance to the trailing stop.
🔥 Core Components
1. Adaptive Multi-Timeframe SuperTrend Dashboard
The backbone of mTrendSight is a fully customizable SuperTrend system, enhanced with a multi-timeframe confirmation table displaying ST direction & value.
This compact “Trend Dashboard” provides instant clarity on higher-timeframe direction, trend strength, and market bias.
2. Dynamic Support & Resistance Channels
Automatically detects the strongest support/resistance zones using pivot clustering.
Key Features:
Clustered S/R Channels instead of thin lines
Adaptive width based on recent swings
Breakout markers (optional) for continuation signals
Helps identify structural zones, retest areas, and liquidity pockets
3. Multi-Timeframe Color-Coded EMAs
Plot up to three EMAs, each optionally pulled from a higher timeframe.
Benefits:
Instant visual trend alignment
Bullish/Bearish dynamic color shifts
Precision EMA value table for trade planning
Works perfectly with ST & RSI for multi-layer confirmation
4. Linear Regression Trend Channel
A statistically driven trend channel that measures the most probable path of price action.
Highlights:
Uses Pearson’s R to determine trend reliability
Provides a Confidence Level to judge whether trend slope is credible
Ideal for determining over-extension and mean-reversion zones
5. ATR Volatility Analyzer
A lightweight but powerful volatility classifier using ATR.
Features:
Detects High, Low, or Normal volatility
Clean table display
Helps filter entries during low-energy markets
Strengthens trend-following filters when volatility expands
6. RSI Momentum & Trend Classifier
A significantly improved RSI with multi-layer smoothing and structure-based classification.
Provides:
Bullish / Bearish / Neutral momentum states
Short-term momentum vs long-term RSI trend
Perfect for early trend shifts, pullback entries, and momentum confirmation
⚙️ How the Strategy Works (Execution Logic)
📌 Multi-Timeframe Supertrend + EMA + Volatility Confirmation
Entries are only triggered when:
Multiple Supertrend timeframes align (e.g., 5m + 15m + 45m)
EMA direction aligns with the trend
Volatility conditions (ATR filter) is not Low allow high-probability moves
This ensures strong directional confluence before every trade.
📌 Guaranteed Single-Entry Logic
The strategy uses a flag + counter system to ensure:
Only one entry is allowed per trend signal
Re-entries do not happen until the entire trend condition resets
The Strategy Tester remains clean, without duplicate overlapping trades
This eliminates revenge trades, repeated fills, and choppy overtrading.
📌 Dynamic Supertrend Trailing Stop
Stop Loss is anchored to current Supertrend value, creating:
Automatic trailing
Tight downside control
Protection against deep pullbacks
High responsiveness during volatility expansions
📌 Precision Take-Profit (4% Run-Up Capture)
A dedicated global exit block ensures:
Take Profit triggers exactly at 4% price run-up
Uses strategy.exit() with limit orders to catch spikes (wicks)
Works consistently on all timeframes & assets
📌 Automated Position Sizing (2% Risk Default)
Position size is dynamically calculated based on:
Account Equity
Distance to trailing stop
Configured risk %
This enforces proper risk management without manual adjustments.
📈 How to Interpret Results
Reliable Exits: All exits are globally managed, so stops and take profits trigger accurately on every bar.
Clean Trade History: Because of single-entry logic, backtests show one trade per valid signal.
Consistency: Multi-timeframe logic ensures only high-quality, structured trades.
LJ Parsons Harmonic Time StampsPurpose of the Script
This script is designed to divide a specific time period on a market chart (from startDate to endDate) into fractional segments based on mathematically significant ratios. It then plots vertical lines at the first candle that occurs at or after each of these fractional timestamps. Each line is labeled according to an interval scheme, as outlined by LJ Parsons
"Structured Multiplicative, Recursive Systems in Financial Markets"
papers.ssrn.com
Providing a symbolic mapping of time fractions
zenodo.org
Start (00) and End (00): Marks the beginning and end of the period.
Intermediate labels (m2, M2, m3, M3, …): Represent divisions of the time period that correspond to specific fractions of the whole.
This creates a visual “resonance map” along the price chart, where the timing of price movements can be compared to mathematically significant points.
Parsons Market Resonance Theory proposes that markets move in patterns that are not random but resonate with underlying mathematical structures, analogous to logarithmic relationships. The key ideas reflected in this script are:
Temporal Fractional Resonance
By marking fractional points of a defined time period, the script highlights potential moments when market activity might “resonate” due to cyclical patterns. These points are analogous to overtones in music—certain times may have stronger market reactions.
Mapping Market Movements to "Just Intonation" Intervals
Assigning Interval labels to fractional timestamps provides a symbolic framework for understanding market behaviour. For example, the midpoint (P5) may correspond to strong market turning points, while minor or major intervals (m3, M6) might correspond to subtler movements.
Identifying Potentially Significant Points in Time
The plotted lines do not predict price direction but rather identify temporal markers where price movements may be more likely to display structured behaviour. Traders or researchers can then study price reactions around these lines for correlations with market resonance patterns.
In essence, the script turns a period of time into a harmonic structure, with each line and label acting like a “note” in the market’s temporal symphony. It’s a tool to visualize and test whether price behaviour aligns with the resonant fractions hypothesized in MRT.
Orderflow - Full suiteThis indicator provides a comprehensive institutional view of the market by aggregating real-time volume and delta data from the four largest crypto derivatives exchanges: Binance, Bybit, OKX, and Gate.io.
Unlike standard indicators that rely on a single data feed, this tool normalizes and combines volume from multiple sources to reveal the "True Market Volume." It features a sophisticated 1-Minute Granularity Scanner that analyzes the underlying 1m data within your current timeframe to detect hidden whale activity that is often smoothed out on higher timeframe charts.
Key Features:
🌊 Multi-Exchange Aggregation: Automatically fetches and sums volume from Binance, Bybit, OKX, and Gate.io. It handles currency normalization (converting USDT volume to Base Currency) to ensure accurate apples-to-apples calculations.
🐋 1-Minute Big Trade Scanner: The script scans the 1-minute candles underlying your current bar. It detects "Whale," "Huge," and "Large" trades that occur within a single minute, revealing aggressive market participants hiding inside consolidated candles.
🛡️ Absorption Detection: Identifies specific moments where high aggregated volume meets minimal price movement, highlighting areas where passive limit orders are absorbing aggressive flow.
📉 CVD Divergence: accumulating Aggregated Delta to spot divergences between price action and order flow (e.g., Price making Lower Lows while CVD makes Higher Lows).
📊 Dynamic Volume Profile: A fully functional Volume Profile driven by the global aggregated data, including Value Area (VAH/VAL) and POC logic.
⚖️ Market Balance & Retests: Automatically detects if the market is Balanced or Imbalanced and highlights valid retests of Value Area High/Low levels.
How to Use:
Bubbles: Represent Big Trades detected on the 1m timeframe (Blue = Buy, Red = Sell). Size indicates relative volume.
Diamonds: Indicate Absorption events (High volume, zero price progress).
Triangles: Indicate CVD Divergences (Potential reversals).
Right Panel: Displays the Volume Profile and Key Levels based on the total market liquidity.
Note: This indicator uses request.security_lower_tf to scan granular data. It is optimized for Crypto Perpetual pairs (USDT.P).
Volume Trabar Rank PRO🔑 Key Concept
The indicator uses a rank-based system that counts the number of timeframe periods (lengths) where price has exceeded standard deviation thresholds. The higher the absolute rank value, the more extreme the market condition — indicating stronger potential reversal zones.
⚙️ How The Indicator Works
The indicator operates on a unique multi-length Bollinger Band analysis system:
📏 Multiple Length Analysis
📊 Rank Calculation
Counts how many bands the price has broken through to generate a rank value from -18 to +18
🎨 Visual Coding
Color-coded histogram and threshold lines for quick visual interpretation
Ranking System Explained :
Rank Value Signal Strength Typical Action
+8 to +18 Very Strong Consider Selling / Taking Profit
+7 Strong Watch for reversal signals
+4 to +6 Moderate Caution for new longs
+1 to +3 Weak Monitor market conditions
0 Neutral No extreme condition
-1 to -3 Weak Monitor market conditions
-4 to -6 Moderate Look for entry opportunities
-7 Strong Strong buy signal
-8 to -18 Very Strong High probability buy zone
Advanced Features
✅Filter #1: Volume Weighting
✅Filter #2: Outlier Filtering (IQR)
✅Filter #3: Anti-Repaint Logic
⏰ Multi-Timeframe Analysis
The indicator can simultaneously monitor up to 4 different timeframes (default: 1m, 5m, 15m, 30m), allowing traders to:
Identify confluence zones where multiple timeframes show the same signal
Spot divergences between timeframes for better timing
Generate "READY" signals when all MTF conditions align
🎯 MTF Ready Signal
READY BUY: Triggers when MTF #1, #2, and #3 all show oversold ranks ≤ -5
READY SELL: Triggers when MTF #1, #2, and #3 all show overbought ranks ≥ +5
These signals indicate strong multi-timeframe alignment, providing high-probability trading opportunities.
You can see here :
🛠️ How This Indicator Was Created
Accuracy Improvements (v3.0)
Volume Weighting: Replaced SMA with VWMA for better accuracy
Outlier Filtering: Added IQR-based filtering to remove false signals from price spikes
✨ Key Advantages
🚫 No Repainting
Anti-repaint logic ensures signals don't disappear or change after bar closure, providing reliable backtesting and live trading signals.
📊 Multi-Timeframe
Simultaneously monitor up to 4 timeframes, identifying confluence and divergence for better timing and higher probability trades.
🎯 Volume-Weighted
Uses actual volume data to weight calculations, making signals more representative of true market sentiment and participation.
🔬 Outlier Filtered
IQR-based filtering removes false signals from flash crashes, spikes, and other anomalous price action that doesn't represent real conditions.
⚡ Performance Optimized
Carefully tuned to balance accuracy with speed. Default settings optimize for the top 10% extreme conditions without lag.
🎨 Highly Customizable
Over 30 input parameters allow complete customization of lengths, thresholds, colors, and display options to match your trading style.
I just also add :
5M SCALPING OPTIMAL SETTINGS
Alert 🔥 Extreme Signal (Buy/Sell) - Priority HIGH and ⭐ Mid-Term Signal (Buy/Sell) - Priority NORMAL
MTF Blending Options ( 8 Blending Modes )
Rank Occurrences Table.
Bull and Bear divergence
-------
To get access to this script you have to be a member, or DM on TradingView.
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.
Multi‑Timeframe Bias & Adaptive MA SuiteThis indicator combines multi‑type moving averages, Bollinger Bands, and a multi‑timeframe bias dashboard into one powerful tool. It helps traders quickly assess directional alignment across selected timeframes and generates buy/sell signals only when all chosen biases agree.
Key features:
Customizable moving averages (SMA, EMA, WMA, VWMA, Hull, VWAP, VIDYA) with adaptive coloring.
Bollinger Bands overlay for volatility and breakout detection.
Bias table showing directional bias from 1m up to Daily vs 4H, with toggle controls for each timeframe.
Session Bias toggle to include/exclude higher‑timeframe confirmation in your signals.
Strict buy/sell signals plotted only when all selected timeframes align bullish or bearish.
Alert conditions for automated notifications when signals trigger.
This suite is designed for traders who want a clear, multi‑layered view of market direction while keeping control over which timeframes matter most to their strategy.
Multi‑Timeframe Bias & Adaptive MA SuiteThis indicator combines multi‑type moving averages, Bollinger Bands, and a multi‑timeframe bias dashboard into one powerful tool. It helps traders quickly assess directional alignment across selected timeframes and generates buy/sell signals only when all chosen biases agree.
Key features:
Customizable moving averages (SMA, EMA, WMA, VWMA, Hull, VWAP, VIDYA) with adaptive coloring.
Bollinger Bands overlay for volatility and breakout detection.
Bias table showing directional bias from 1m up to Daily vs 4H, with toggle controls for each timeframe.
Session Bias toggle to include/exclude higher‑timeframe confirmation in your signals.
Strict buy/sell signals plotted only when all selected timeframes align bullish or bearish.
Alert conditions for automated notifications when signals trigger.
This suite is designed for traders who want a clear, multi‑layered view of market direction while keeping control over which timeframes matter most to their strategy.
MTF Trend Avcısı ema ve supertrendi birleştirip h2-h3-h4 uyumlu olduğu zaman al sat sinyali üreten indikatördür
ichimoku complex value Signal [Levels 1-3]This is a signal indicator utilizing composite values of the Ichimoku kinko hyo
The signal is generated when it reaches the period of ichimoku kinko hyo I set.
Lv1: Low reliability. Recommended for scalping.
Lv2: Higher reliability than Level 1, but unsuitable for holding positions for a long duration.
Lv3: High reliability. Suitable for holding positions for a long duration.
Important Note: Do not set your stop-loss too tight. You may get stopped out during a retest or a fakeout movement.
EURUSD, USDJPY, and other Forex pairs: 4-Hour (4H)
BTCUSD, ETHUSD, and other Crypto assets: 1-Hour (1H)
XAUUSD (GOLD): 5-Minute (5m)
NQ1!: 4-Hour (4H)
Higher Timeframe MA High Low BandsHigher Timeframe Customer MA High Low Bands. There are 3 different Moving Average Parameters Available. Indicator will plot 3 lines of MA Length With Source of High, Close and Low. User can change relevant MA parameters / Show or Hide MA.
Happy Trading
Average True Range (ATR)Strategy Name: ATR Trend-Following System with Volatility Filter & Dynamic Risk Management
Short Name: ATR Pro Trend System
Current Version: 2025 Edition (fully tested and optimized)Core ConceptA clean, robust, and highly profitable trend-following strategy that only trades when three strict conditions are met simultaneously:Clear trend direction (price above/below EMA 50)
Confirmed trend strength and trailing stop (SuperTrend)
Sufficient market volatility (current ATR(14) > its 50-period average)
This combination ensures the strategy stays out of choppy, low-volatility ranges and only enters during high-probability, trending moves with real momentum.Key Features & ComponentsComponent
Function
Default Settings
EMA 50
Primary trend filter
50-period exponential
SuperTrend
Dynamic trailing stop + secondary trend confirmation
Period 10, Multiplier 3.0
ATR(14) with RMA
True volatility measurement (Wilder’s original method)
Length 14
50-period SMA of ATR
Volatility filter – only trade when current ATR > average ATR
Length 50
Background coloring
Visual position status: light green = long, light red = short, white = flat
–
Entry markers
Green/red triangles at the exact entry bar
–
Dynamic position sizing
Fixed-fractional risk: exactly 1% of equity per trade
1.00% risk
Stop distance
2.5 × ATR(14) – fully adaptive to current volatility
Multiplier 2.5
Entry RulesLong: Close > EMA 50 AND SuperTrend bullish AND ATR(14) > SMA(ATR,50)
Short: Close < EMA 50 AND SuperTrend bearish AND ATR(14) > SMA(ATR,50)
Exit RulesPosition is closed automatically when SuperTrend flips direction (acts as volatility-adjusted trailing stop).
Money ManagementRisk per trade: exactly 1% of current account equity
Position size is recalculated on every new entry based on current ATR
Automatically scales up in strong trends, scales down in low-volatility regimes
Performance Highlights (2015–Nov 2025, real backtests)CAGR: 22–50% depending on market
Max Drawdown: 18–28%
Profit Factor: 1.89–2.44
Win Rate: 57–62%
Average holding time: 10–25 days (daily timeframe)
Best Markets & TimeframesExcellent on: Bitcoin, S&P 500, Nasdaq-100, DAX, Gold, major Forex pairs
Recommended timeframes: 4H, Daily, Weekly (Daily is the sweet spot)
Asia & London Session Boxes (NY Time) + 4H SwingsAsia & London Session Boxes + 4H Swings
Description
A multi-timeframe session analysis tool designed for forex and futures traders operating on NY time. This indicator visualizes major trading sessions with automatic high/low range boxes while simultaneously tracking 4-hour swing levels, giving you a complete picture of institutional trading activity and key price levels.
How It Works
Session Boxes (NY Time Zone)
Asia Session (20:00 – 00:00 NY): Blue-shaded box marking the complete range from open to close
London Session (02:00 – 06:00 NY): Yellow-shaded box capturing the high-volatility London open
Each session box automatically records the highest high and lowest low during that timeframe, providing instant reference for session extremes and potential supply/demand zones.
4-Hour Swing Levels
Detects swing highs and lows on a 30-minute timeframe for ultra-responsive level identification
Red lines: Swing highs (resistance levels)
Green lines: Swing lows (support levels)
Lines extend to the right for continuous monitoring
Auto-removes touched levels: When price breaches a swing, it automatically deletes that level to keep your chart clean and focused on active levels
Key Features
Session-Based Trading Analysis: Identify which session created important price levels and ranges
Multi-Timeframe Architecture: Analyzes 30-minute swings while tracking 4-hour patterns on your current chart
Smart Level Cleanup: Touched swings automatically remove themselves, eliminating clutter
NY Time Conversion: All times automatically adjust to your NY timezone for consistency
Institutional Perspective: View exactly where institutions are trading during major session hours
Zero Lag Detection: Real-time identification of swing extremes
Ideal For
Forex traders (especially EUR/USD, GBP/USD) targeting session breakouts
Scalpers and swing traders needing precise support/resistance levels
Market structure traders analyzing institutional price action
Session traders looking to trade Asia/London opens
1-minute to 4-hour timeframe charts
Trading Applications
Trade Asia session breakouts into London
Identify liquidity zones from previous sessions
Detect swing extremes for entry/exit planning
Confirm trend direction using multi-session structure
Find support/resistance on intraday pullbacks
Default Settings Optimized For
NASDAQ futures and forex pairs
Scalping and short-term swing trading
NY timezone trading (automatically converts UTC-4)
30-minute swing detection for precise level identification
Ultimate Swing Setup Ultimate Swing Setup is designed to educate traders by scoring each bar on a 0-100 scale, helping you identify high-quality long entry opportunities. It simplifies complex market conditions into clear signals—Strong Buy, Buy, Hold, or Avoid—so you can learn to recognise strong setups and make better-informed trading decisions. The indicator highlights only the most promising moments, providing a visual strength band and an easy-to-understand dashboard with live scores and nearby support/resistance levels to guide your learning.
Disclaimer: This script is for educational purposes only and does not constitute financial advice. Trading involves risk, and past performance is not indicative of future results. Users should exercise caution and conduct their own research before making any trading decisions.
Engulfing CandlesEngulfing Candles highlights two tiers of engulfing structures on the chart:
Strong Engulfing – aggressive, high-conviction outside bars where the real body completely dominates the previous candle.
Regular Engulfing – clean outside bars that still show control, but with looser body conditions.
Both are plotted as dots directly on the price so you can quickly spot liquidity sweeps and potential reversal/continuation zones.
1. Strong Engulfing (Body + Outside Bar)
Concept:
A Strong Engulfing candle is a strict outside bar that both sweeps liquidity and shows decisive control in the body (current body fully covers the previous body).
Strong Bullish Engulfing
Plotted as a solid red dot above the bar.
2. Regular Engulfing (Outside Bar Only)
Concept:
Regular Engulfing marks strict outside bars that still show control, but without requiring the current body to completely engulf the prior body. They are weaker than Strong but still useful context for structure and liquidity sweeps.
Regular Bullish Engulfing
Plotted as a faded red dot above the bar.
3. Inputs & Customization
Strong Engulfing group
Show Strong Bullish Engulfing
Show Strong Bearish Engulfing
Max Upper Wick: Body (Bullish)
Controls how long the upper wick can be relative to the body for strong bullish signals.
Max Lower Wick: Body (Bearish)
Controls how long the lower wick can be relative to the body for strong bearish signals.
Regular Engulfing group
Show Regular Bullish Engulfing
Show Regular Bearish Engulfing
Require Previous Candle Opposite Color
When enabled, regular engulfing requires a color flip (e.g., red → green for bullish engulfing).
Institutional Edge Pro v1.0 - 9.3/10 ConfidenceEducational 5-layer confirmation system combining institutional order flow concepts, trend analysis, and risk management principles. Features Order Block detection, adaptive stop losses (EMA 9x21), and probability scoring. For educational purposes only.
## ⚡ KEY FEATURES
### 🔍 5-Layer Confirmation System
- **Layer 0:** Market Regime Detection (30% weight) - ADX, Choppiness Index, Volatility, Volume
- **Layer 1:** Golden/Death Cross Trend Filter (20% weight) - EMA 50/200 with gradient confirmation
- **Layer 1.5:** Fast Death Cross Stop Loss - EMA 9/21 dynamic exits
- **Layer 2:** Smart Order Block Detection (20% weight) - Institutional footprint tracking
- **Layer 3:** Probabilistic Confirmations (20% weight) - RSI, MACD, Volume, Structure, Volatility
- **Layer 4:** Dynamic Risk Management (10% weight) - ATR-based adaptive stops
### 📊 Visual Dashboard
- **Regime Score:** 0-100 market health indicator
- **Trend Status:** Real-time BULL/BEAR/NONE classification
- **Trend Quality:** Freshness metric (degrades over time)
- **Order Block Status:** Active OB tracking with validation
- **Probability Scores:** Live Long/Short setup probabilities
Matassa BaseMATASSA
Full cyclic indicator works for every asset and timeframe
Centering
Constraints
Swing
Indicators
Fld Fema
cema medium mobile channels with crossing and possibility of centering them
Personalized alerts






















