My script// @version=5 indicator("Custom LuxAlgo-Style Levels", overlay=true, max_lines_count=500)
// --- Trend Detection (EMA Based) fastEMA = ta.ema(close, 9) slowEMA = ta.ema(close, 21) trendUp = fastEMA > slowEMA trendDown = fastEMA < slowEMA
plot(fastEMA, title="Fast EMA", color=color.new(color.blue, 0)) plot(slowEMA, title="Slow EMA", color=color.new(color.orange, 0))
// --- Buy / Sell Signals buySignal = trendUp and ta.crossover(fastEMA, slowEMA) sellSignal = trendDown and ta.crossunder(fastEMA, slowEMA)
plotshape(buySignal, title="Buy", style=shape.labelup, color=color.new(color.green,0), size=size.small, text="BUY") plotshape(sellSignal, title="Sell", style=shape.labeldown, color=color.new(color.red,0), size=size.small, text="SELL")
// --- Auto Support & Resistance length = 20 sup = ta.lowest(length) res = ta.highest(length)
plot(sup, title="Support", color=color.new(color.green,70), linewidth=2) plot(res, title="Resistance", color=color.new(color.red,70), linewidth=2)
// --- Market Structure (Simple Swing High/Low) sh = ta.highest(high, 5) == high sl = ta.lowest(low, 5) == low
plotshape(sh, title="Swing High", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny) plotshape(sl, title="Swing Low", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny)
// --- Alerts alertcondition(buySignal, "Buy Signal", "Trend Buy Signal Detected") alertcondition(sellSignal, "Sell Signal", "Trend Sell Signal Detected")
Indicators and strategies
Day Separators Description:
This script visually separates the trading chart by days of the week. Each day is highlighted with a distinct background color or vertical line, making it easier to analyze daily price patterns and trading activity. Useful for spotting trends, comparing daily performance, or planning strategies based on weekday behavior.
Features:
Divides the chart by weekdays (Monday to Sunday).
Optional background shading or vertical lines for each day.
Customizable colors and line styles for better visibility.
Works on any timeframe.
Use Cases:
Identify patterns or anomalies on specific weekdays.
Track performance trends across the week.
Simplify intraday and daily analysis for more informed trading decisions.
Intraday Close Price VariationShows in the graph the intraday variation, being useful when using the replay feature.
Daily vs Monthly VWAP CrossoverDaily vs Monthly VWAP Crossover Strategy
Description:
Overview This indicator is a trend-following tool designed to identify significant shifts in market sentiment by comparing short-term institutional value against the longer-term trend. It utilizes Anchored VWAP (Volume Weighted Average Price) logic to track the average price paid by traders for the current Day versus the current Month.
How It Works Unlike standard Moving Averages which lag significantly, VWAP factors in volume, making it a preferred benchmark for institutional traders.
Daily VWAP (Fast Line): Anchors at the start of the current trading day. It represents the intraday equilibrium price.
Monthly VWAP (Slow Line): Anchors at the start of the current month. It represents the broader value consensus for the month.
The indicator calculates these values cumulatively on every tick/bar, regardless of the chart timeframe selected (e.g., 30m, 1h).
Trading Logic & Signals The strategy is based on the concept of value migration:
BUY Signal (Bullish Reversal): Triggers when the Daily VWAP crosses ABOVE the Monthly VWAP. This suggests that short-term buying pressure and volume are pushing the price higher than the monthly average cost basis, indicating a potential breakout or trend continuation.
SELL Signal (Bearish Reversal): Triggers when the Daily VWAP crosses BELOW the Monthly VWAP. This indicates that intraday weakness has dragged the price below the month's average value, signaling potential downside momentum.
Features
Visual Crossovers: Clearly marked "B" (Buy) and "S" (Sell) labels on the chart.
Trend Background: The background color changes subtly (Green/Red) to indicate the current dominance of the Daily vs. Monthly trend.
Alerts: Fully compatible with TradingView alerts for real-time notifications on crossovers.
Best Practices
Timeframe: Designed optimally for intraday charts such as 30-minute or 1-hour timeframes.
Confirmation: As with any VWAP strategy, this works best when combined with price action analysis (e.g., breakout of key resistance) rather than used blindly in choppy, sideways markets.
Daily vs Intraday Candle Match Strategy고죠 훈의 차트공부방
Gojo Hoon’s Trading Room
전일 종가 대비 현재 일봉 방향과 시간봉 방향이 일치할 때 진입
Trade when current daily direction (vs. previous close) matches the hourly/15-minute candle direction.
Divergence Channels Indicator — JudasBulletUnique Buy/Sell Indicator. Place stoploss above/below 18 EMA. Low risk/high reward. My No.1 indicator on every chart.
Kill Zone Strategy - Exact Match고죠 훈의 차트공부방
Gojo Hoon’s Trading Room
Kill Zone 시간대 방향성과 일중 추세의 상관관계
The 9–10 AM Kill Zone candle on the KOSPI chart determines the day’s long or short trading direction.
Multi Time Frame EMA & MA IndicatorThis indicator automatically applies prime-number EMAs and MAs based on the current chart timeframe, using faster cool-tone EMAs and slower warm-tone MAs to clearly distinguish momentum vs trend.
It adapts dynamically for 1m, 5m, 15m, 1H, 4H, and 1D charts, and uses a visual hierarchy where thinner lines represent faster averages and thicker lines represent slower ones, ensuring clarity in both light and dark themes.
An on-chart label displays which EMA and MA lengths are active for the selected timeframe.
Smoothed Log RSIMain purpose is to identify the regime change from trend to ranging/choppy environment.
For example if the logRSI turns green , there's good chances the downtrend will be less aggressive.
If the logRSI turns red , there's good chances we don't continue to pump aggressively.
Basically high risk of longing or shorting the asset once it turns green/red.
RealBody Donchian ChannelsThis is an enhancement of the built-in TradingView Donchian Channel indicator.A technical variation of the standard DC, it utilizes candlestick real body data. Instead of using the absolute high and low (shadows) for extreme value calculation, this indicator derives the channel boundaries from the highest Max(Open, Close) and the lowest Min(Open, Close) within the specified length. This approach filters out noise from wicks/shadows, providing a cleaner look at sustained price ranges defined by buying and selling pressure between the open and close.
tdxh short/ This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © ChartPrime & User Customized
// 抗插针版:引入实体止损逻辑,专治影线扫损
//@version=5
indicator("SR空单指标 (抗插针版)", shorttitle="SR Anti-Wick", overlay=true, max_boxes_count=500, max_labels_count=500)
辰锋// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © chenfwng88888
//@version=6
indicator("辰锋", shorttitle="辰锋", overlay=true)
// 关键EMA均线组
plot(ta.ema(close, 12), title="13", color=color.rgb(230, 202, 58), linewidth=1) // 黄色
plot(ta.ema(close, 24), title="24", color=color.rgb(208, 35, 208), linewidth=1) // 粉色
plot(ta.ema(close, 36), title="38", color=color.rgb(129, 169, 238), linewidth=1) // 墨绿
plot(ta.ema(close, 52), title="52", color=color.rgb(39, 208, 226), linewidth=1) // 蓝绿色
plot(ta.ema(close, 104), title="104", color=color.rgb(222, 109, 57), linewidth=1) // 棕色
// Vegas Channel (added EMAs)
ema144 = ta.ema(close, 144)
ema169 = ta.ema(close, 169)
plot(ema144, title="EMA 144", color=color.new(#e3ebf7, 0), linewidth=1)
plot(ema169, title="EMA 169", color=color.new(#e7e7f5, 0), linewidth=1)
// Fill between EMA 144 and EMA 169 with light blue background
fill(plot1 = plot(ema144, display=display.none),
plot2 = plot(ema169, display=display.none),
color = color.new(#deeff4, 70), title = "144-169 Area")
// Colored candles based on volume and price movement
isUp = close > open
isDown = close < open
highVolume = volume > ta.sma(volume, 50) * 3 // 50-period average + 50% threshold
// Define colors
bullishColor = color.new(#a5f1a5, 0) // Light green
bearishColor = color.new(#f2b661, 0) // Orange
// Plot candles
barcolor(isUp and highVolume ? bullishColor : isDown and highVolume ? bearishColor : na)
辰锋// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © chenfwng88888
//@version=6
indicator("辰锋", shorttitle="辰锋", overlay=true)
// 关键EMA均线组
plot(ta.ema(close, 12), title="13", color=color.rgb(230, 202, 58), linewidth=1) // 黄色
plot(ta.ema(close, 24), title="24", color=color.rgb(208, 35, 208), linewidth=1) // 粉色
plot(ta.ema(close, 36), title="38", color=color.rgb(129, 169, 238), linewidth=1) // 墨绿
plot(ta.ema(close, 52), title="52", color=color.rgb(39, 208, 226), linewidth=1) // 蓝绿色
plot(ta.ema(close, 104), title="104", color=color.rgb(222, 109, 57), linewidth=1) // 棕色
// Vegas Channel (added EMAs)
ema144 = ta.ema(close, 144)
ema169 = ta.ema(close, 169)
plot(ema144, title="EMA 144", color=color.new(#e3ebf7, 0), linewidth=1)
plot(ema169, title="EMA 169", color=color.new(#e7e7f5, 0), linewidth=1)
// Fill between EMA 144 and EMA 169 with light blue background
fill(plot1 = plot(ema144, display=display.none),
plot2 = plot(ema169, display=display.none),
color = color.new(#deeff4, 70), title = "144-169 Area")
// Colored candles based on volume and price movement
isUp = close > open
isDown = close < open
highVolume = volume > ta.sma(volume, 50) * 3 // 50-period average + 50% threshold
// Define colors
bullishColor = color.new(#a5f1a5, 0) // Light green
bearishColor = color.new(#f2b661, 0) // Orange
// Plot candles
barcolor(isUp and highVolume ? bullishColor : isDown and highVolume ? bearishColor : na)
Swing High-Low Line ConnectorSwing High-Low Line Connector is a simple and intuitive tool that automatically detects swing highs and swing lows using fractal-style pivot logic and connects them with clean, continuous lines. This indicator helps traders visualize market structure, trend shifts, and swing-based support/resistance levels at a glance.
The script identifies each confirmed swing point based on a user-defined lookback window (left/right bars). When a new swing is confirmed, the indicator updates the previous leg or creates a new one, effectively drawing the classic “zigzag-style” connections used in discretionary trading and price-action analysis.
A dynamic tail extension is included to show the most recent swing extending toward the current price. By default, the tail follows a ZigZag-style logic—extending upward after a swing low and downward after a swing high—but users can also anchor it to Close, High, Low, or HL2.
Features
Automatic detection of swing highs and swing lows
Clean line connections between swings (similar to discretionary market-structure mapping)
Proper consolidation handling: weaker highs/lows are ignored
Optional ZigZag-style dynamic tail extension
Fully customizable lookback window, line color, and line width
Works on any market and timeframe
Use Cases
Identifying market structure (HH, HL, LH, LL)
Visualizing trend transitions
Spotting breakout levels and swing-based support/resistance
Aiding discretionary swing trading, trend following, or pattern recognition
This indicator keeps the logic simple and visual—ideal for traders who prefer clean chart structure without unnecessary noise.
HTF Hollow Candle overlayoverlays HTF candle ontop of price so you can watch m1 chart filling up an h4 bar
TenUp Bots S R - Fixed (ta.highest)//@version=5
indicator("TenUp Bots S R - Fixed (ta.highest)", overlay = true)
// Inputs
a = input.int(10, "Sensitivity (bars)", minval = 1, maxval = 9999)
d_pct = input.int(85, "Transparency (%)", minval = 0, maxval = 100)
// Convert 0-100% to 0-255 transparency (color.new uses 0..255)
transp = math.round(d_pct * 255 / 100)
// Colors with transparency applied
resColor = color.new(color.red, transp)
supColor = color.new(color.blue, transp)
// Helper (calculations only)
getRes(len) => ta.highest(high, len)
getSup(len) => ta.lowest(low, len)
// === PLOTS (all in global scope) ===
plot(getRes(a*1), title="Resistance 1", color=resColor, linewidth=2)
plot(getSup(a*1), title="Support 1", color=supColor, linewidth=2)
plot(getRes(a*2), title="Resistance 2", color=resColor, linewidth=2)
plot(getSup(a*2), title="Support 2", color=supColor, linewidth=2)
plot(getRes(a*3), title="Resistance 3", color=resColor, linewidth=2)
plot(getSup(a*3), title="Support 3", color=supColor, linewidth=2)
plot(getRes(a*4), title="Resistance 4", color=resColor, linewidth=2)
plot(getSup(a*4), title="Support 4", color=supColor, linewidth=2)
plot(getRes(a*5), title="Resistance 5", color=resColor, linewidth=2)
plot(getSup(a*5), title="Support 5", color=supColor, linewidth=2)
plot(getRes(a*6), title="Resistance 6", color=resColor, linewidth=2)
plot(getSup(a*6), title="Support 6", color=supColor, linewidth=2)
plot(getRes(a*7), title="Resistance 7", color=resColor, linewidth=2)
plot(getSup(a*7), title="Support 7", color=supColor, linewidth=2)
plot(getRes(a*8), title="Resistance 8", color=resColor, linewidth=2)
plot(getSup(a*8), title="Support 8", color=supColor, linewidth=2)
plot(getRes(a*9), title="Resistance 9", color=resColor, linewidth=2)
plot(getSup(a*9), title="Support 9", color=supColor, linewidth=2)
plot(getRes(a*10), title="Resistance 10", color=resColor, linewidth=2)
plot(getSup(a*10), title="Support 10", color=supColor, linewidth=2)
plot(getRes(a*15), title="Resistance 15", color=resColor, linewidth=2)
plot(getSup(a*15), title="Support 15", color=supColor, linewidth=2)
plot(getRes(a*20), title="Resistance 20", color=resColor, linewidth=2)
plot(getSup(a*20), title="Support 20", color=supColor, linewidth=2)
plot(getRes(a*25), title="Resistance 25", color=resColor, linewidth=2)
plot(getSup(a*25), title="Support 25", color=supColor, linewidth=2)
plot(getRes(a*30), title="Resistance 30", color=resColor, linewidth=2)
plot(getSup(a*30), title="Support 30", color=supColor, linewidth=2)
plot(getRes(a*35), title="Resistance 35", color=resColor, linewidth=2)
plot(getSup(a*35), title="Support 35", color=supColor, linewidth=2)
plot(getRes(a*40), title="Resistance 40", color=resColor, linewidth=2)
plot(getSup(a*40), title="Support 40", color=supColor, linewidth=2)
plot(getRes(a*45), title="Resistance 45", color=resColor, linewidth=2)
plot(getSup(a*45), title="Support 45", color=supColor, linewidth=2)
plot(getRes(a*50), title="Resistance 50", color=resColor, linewidth=2)
plot(getSup(a*50), title="Support 50", color=supColor, linewidth=2)
plot(getRes(a*75), title="Resistance 75", color=resColor, linewidth=2)
plot(getSup(a*75), title="Support 75", color=supColor, linewidth=2)
plot(getRes(a*100), title="Resistance 100", color=resColor, linewidth=2)
plot(getSup(a*100), title="Support 100", color=supColor, linewidth=2)
plot(getRes(a*150), title="Resistance 150", color=resColor, linewidth=2)
plot(getSup(a*150), title="Support 150", color=supColor, linewidth=2)
plot(getRes(a*200), title="Resistance 200", color=resColor, linewidth=2)
plot(getSup(a*200), title="Support 200", color=supColor, linewidth=2)
plot(getRes(a*250), title="Resistance 250", color=resColor, linewidth=2)
plot(getSup(a*250), title="Support 250", color=supColor, linewidth=2)
plot(getRes(a*300), title="Resistance 300", color=resColor, linewidth=2)
plot(getSup(a*300), title="Support 300", color=supColor, linewidth=2)
plot(getRes(a*350), title="Resistance 350", color=resColor, linewidth=2)
plot(getSup(a*350), title="Support 350", color=supColor, linewidth=2)
plot(getRes(a*400), title="Resistance 400", color=resColor, linewidth=2)
plot(getSup(a*400), title="Support 400", color=supColor, linewidth=2)
plot(getRes(a*450), title="Resistance 450", color=resColor, linewidth=2)
plot(getSup(a*450), title="Support 450", color=supColor, linewidth=2)
plot(getRes(a*500), title="Resistance 500", color=resColor, linewidth=2)
plot(getSup(a*500), title="Support 500", color=supColor, linewidth=2)
plot(getRes(a*750), title="Resistance 750", color=resColor, linewidth=2)
plot(getSup(a*750), title="Support 750", color=supColor, linewidth=2)
plot(getRes(a*1000), title="Resistance 1000", color=resColor, linewidth=2)
plot(getSup(a*1000), title="Support 1000", color=supColor, linewidth=2)
plot(getRes(a*1250), title="Resistance 1250", color=resColor, linewidth=2)
plot(getSup(a*1250), title="Support 1250", color=supColor, linewidth=2)
plot(getRes(a*1500), title="Resistance 1500", color=resColor, linewidth=2)
plot(getSup(a*1500), title="Support 1500", color=supColor, linewidth=2)
TenUp Bots S R - Fixed (ta.highest)//@version=5
indicator("TenUp Bots S R - Fixed (ta.highest)", overlay = true)
// Inputs
a = input.int(10, "Sensitivity (bars)", minval = 1, maxval = 9999)
d_pct = input.int(85, "Transparency (%)", minval = 0, maxval = 100)
// Convert 0-100% to 0-255 transparency (color.new uses 0..255)
transp = math.round(d_pct * 255 / 100)
// Colors with transparency applied
resColor = color.new(color.red, transp)
supColor = color.new(color.blue, transp)
// Helper (calculations only)
getRes(len) => ta.highest(high, len)
getSup(len) => ta.lowest(low, len)
// === PLOTS (all in global scope) ===
plot(getRes(a*1), title="Resistance 1", color=resColor, linewidth=2)
plot(getSup(a*1), title="Support 1", color=supColor, linewidth=2)
plot(getRes(a*2), title="Resistance 2", color=resColor, linewidth=2)
plot(getSup(a*2), title="Support 2", color=supColor, linewidth=2)
plot(getRes(a*3), title="Resistance 3", color=resColor, linewidth=2)
plot(getSup(a*3), title="Support 3", color=supColor, linewidth=2)
plot(getRes(a*4), title="Resistance 4", color=resColor, linewidth=2)
plot(getSup(a*4), title="Support 4", color=supColor, linewidth=2)
plot(getRes(a*5), title="Resistance 5", color=resColor, linewidth=2)
plot(getSup(a*5), title="Support 5", color=supColor, linewidth=2)
plot(getRes(a*6), title="Resistance 6", color=resColor, linewidth=2)
plot(getSup(a*6), title="Support 6", color=supColor, linewidth=2)
plot(getRes(a*7), title="Resistance 7", color=resColor, linewidth=2)
plot(getSup(a*7), title="Support 7", color=supColor, linewidth=2)
plot(getRes(a*8), title="Resistance 8", color=resColor, linewidth=2)
plot(getSup(a*8), title="Support 8", color=supColor, linewidth=2)
plot(getRes(a*9), title="Resistance 9", color=resColor, linewidth=2)
plot(getSup(a*9), title="Support 9", color=supColor, linewidth=2)
plot(getRes(a*10), title="Resistance 10", color=resColor, linewidth=2)
plot(getSup(a*10), title="Support 10", color=supColor, linewidth=2)
plot(getRes(a*15), title="Resistance 15", color=resColor, linewidth=2)
plot(getSup(a*15), title="Support 15", color=supColor, linewidth=2)
plot(getRes(a*20), title="Resistance 20", color=resColor, linewidth=2)
plot(getSup(a*20), title="Support 20", color=supColor, linewidth=2)
plot(getRes(a*25), title="Resistance 25", color=resColor, linewidth=2)
plot(getSup(a*25), title="Support 25", color=supColor, linewidth=2)
plot(getRes(a*30), title="Resistance 30", color=resColor, linewidth=2)
plot(getSup(a*30), title="Support 30", color=supColor, linewidth=2)
plot(getRes(a*35), title="Resistance 35", color=resColor, linewidth=2)
plot(getSup(a*35), title="Support 35", color=supColor, linewidth=2)
plot(getRes(a*40), title="Resistance 40", color=resColor, linewidth=2)
plot(getSup(a*40), title="Support 40", color=supColor, linewidth=2)
plot(getRes(a*45), title="Resistance 45", color=resColor, linewidth=2)
plot(getSup(a*45), title="Support 45", color=supColor, linewidth=2)
plot(getRes(a*50), title="Resistance 50", color=resColor, linewidth=2)
plot(getSup(a*50), title="Support 50", color=supColor, linewidth=2)
plot(getRes(a*75), title="Resistance 75", color=resColor, linewidth=2)
plot(getSup(a*75), title="Support 75", color=supColor, linewidth=2)
plot(getRes(a*100), title="Resistance 100", color=resColor, linewidth=2)
plot(getSup(a*100), title="Support 100", color=supColor, linewidth=2)
plot(getRes(a*150), title="Resistance 150", color=resColor, linewidth=2)
plot(getSup(a*150), title="Support 150", color=supColor, linewidth=2)
plot(getRes(a*200), title="Resistance 200", color=resColor, linewidth=2)
plot(getSup(a*200), title="Support 200", color=supColor, linewidth=2)
plot(getRes(a*250), title="Resistance 250", color=resColor, linewidth=2)
plot(getSup(a*250), title="Support 250", color=supColor, linewidth=2)
plot(getRes(a*300), title="Resistance 300", color=resColor, linewidth=2)
plot(getSup(a*300), title="Support 300", color=supColor, linewidth=2)
plot(getRes(a*350), title="Resistance 350", color=resColor, linewidth=2)
plot(getSup(a*350), title="Support 350", color=supColor, linewidth=2)
plot(getRes(a*400), title="Resistance 400", color=resColor, linewidth=2)
plot(getSup(a*400), title="Support 400", color=supColor, linewidth=2)
plot(getRes(a*450), title="Resistance 450", color=resColor, linewidth=2)
plot(getSup(a*450), title="Support 450", color=supColor, linewidth=2)
plot(getRes(a*500), title="Resistance 500", color=resColor, linewidth=2)
plot(getSup(a*500), title="Support 500", color=supColor, linewidth=2)
plot(getRes(a*750), title="Resistance 750", color=resColor, linewidth=2)
plot(getSup(a*750), title="Support 750", color=supColor, linewidth=2)
plot(getRes(a*1000), title="Resistance 1000", color=resColor, linewidth=2)
plot(getSup(a*1000), title="Support 1000", color=supColor, linewidth=2)
plot(getRes(a*1250), title="Resistance 1250", color=resColor, linewidth=2)
plot(getSup(a*1250), title="Support 1250", color=supColor, linewidth=2)
plot(getRes(a*1500), title="Resistance 1500", color=resColor, linewidth=2)
plot(getSup(a*1500), title="Support 1500", color=supColor, linewidth=2)
Z Score k3x3// ===================================
// Z-Score Indicator with Enhanced Visualization
//
// Description:
// This indicator calculates the Z-Score (standard score) of price movements,
// highlighting extreme overbought and oversold conditions with visual alerts.
//
// Features:
// - Dynamic color gradients based on Z-Score values
// - Visual alerts for extreme zones (|Z| > 2)
// - Background highlighting for overbought/oversold areas
// - Shape markers for extreme conditions
// - Customizable period length and standard deviation levels
//
// Interpretation:
// Z > +2: Extreme overbought (red alert)
// Z < -2: Extreme oversold (green alert)
// |Z| < 1: Normal range (neutral colors)
// ===================================
Chỉ báo Engulfing (Lọc EMA & K%)chỉ báo engulfing nhằm tìm kiếm tín hiệu đảo chiều với hệ số phủ thân nến là K%
Dresteghamat:Adaptive Multi-TF Decision Engine**Dresteghamat: Adaptive Multi-Timeframe Decision Engine**
This open-source indicator is an algorithmic decision-support system designed to filter market noise by quantifying three core market dimensions: **Regime**, **Direction**, and **Exhaustion**.
**⚠️ Technical Note on Originality:**
This script solves the "Timeframe Irrelevance" problem found in standard dashboards. Instead of using static HTF references, it implements a custom **"Adaptive Context Engine"** (see lines 245-270 in source code). It calculates the user's current `timeframe.multiplier` and dynamically maps the mathematically relevant Higher Timeframes.
* *Innovation:* A 5m chart automatically weights 15m/1H structure, whereas a 1H chart weights 4H/Daily structure. This dynamic logic is proprietary and ensures contextual accuracy.
---
### 🛠️ Logic & Calculation Methodology
The script does not simply overlay indicators. It processes raw market data through a **Weighted Scoring Engine** (lines 275-285) to output a unified market state.
**1. Regime Identification (Volatility Normalized)**
We calculate a custom "Volatility Ratio" to distinguish Trend vs. Range regimes.
* **Logic:** `Range / Smoothed_ATR`.
* **Function:** If Ratio > 2.0, the market is in Expansion (Trend). If < 1.2, it is in Compression (Range). This normalizes volatility across assets (Crypto/Forex/Stocks).
**2. Directional Bias (Composite Metric)**
Direction is calculated via a voting system of three sub-components (lines 80-130):
* **Structural Pivots:** Detects Swing Highs/Lows using a 25-bar lookback to define market structure.
* **Cumulative Body Delta:** Tracks the net buying/selling pressure within candle bodies.
* **Micro-Flow:** A short-term (5-bar) momentum filter to detect immediate order flow shifts.
**3. Exhaustion Model (Risk Management)**
The script prevents late entries by calculating an "Exhaustion Score" (lines 150-200). It aggregates:
* **VRSD (Volatility Regime Shift):** Detects when volatility expands > 2 standard deviations (Mean Reversion risk).
* **Volume Decay (VEFF):** Identifies Divergence where price makes new highs on declining Volume MA.
* **RSI/Impulse Divergence:** Standard momentum divergence logic.
**4. The Decision Output (MODE)**
The dashboard renders a final signal based on a hierarchical algorithm:
* **BUY/SELL ONLY:** Triggered when Current Momentum aligns with the Dynamically Selected HTF Structure AND the Exhaustion Score is low.
* **PULLBACK:** Triggered when HTF Structure is bullish, but Current Momentum is bearish (indicating a corrective phase).
* **HTF EXHAUST:** Overrides signals when the Higher Timeframe metrics hit extreme levels.
* **WAIT:** Default state during Range Regimes or conflicting signals.
---
### 📊 Usage Guide
1. Apply to chart (Auto-adapts to any timeframe).
2. **Status Column:** Shows the raw health of the trend (Strong/Weakening/Exhausted).
3. **MODE Column:** Displays the final actionable bias based on the scoring algorithm.
**Disclaimer:** This tool provides statistical analysis based on historical data. It does not guarantee future results.
RSI + 55 EMA + Volume (SL Marked, No Engulfing)This is to help entering in trades by considering 50 EMA and RSI indicators, Volume is used for confirmations






















