Median Deviation Anchor | TR

596
🎯 Overview
Median Deviation Anchor | TR is a trend‑detection oscillator that uses a percentile‑based median of a chosen moving average as its central anchor. It measures price deviation relative to this median, scaled by ATR bands and standard deviation zones, to generate bullish/bearish signals. The oscillator is smoothed, normalized, and presented with rich visual feedback including gradient candles, dynamic fills, reversal markers, and a persistent trend table. It’s designed to capture trend strength and reversals with a robust statistical foundation.

⚙️ Core Calculations
1. Moving Average Baseline
The indicator first computes a moving average of the Source (default close) using one of 13 moving average types (EMA, SMA, RMA, WMA, VWMA, HMA, DEMA, TEMA, TRIMA, FRAMA, SWMA, ALMA, T3).

User‑adjustable: Length (default 8), Factor/Sigma for ALMA/T3.

2. Median Anchor
Median_Val = ta.percentile_nearest_rank(MA, Median_Length, Median_per)
– This returns the value at the given percentile (default 50ᵗʰ percentile, i.e., the median) of the MA over Median_Length (default 61) bars.
→ This median acts as the dynamic “center” of the trend.

3. Deviation Bands (Upper/Lower Anchors)
ATR Band (based on ta.atr(ATR_Length)):

Upper_ATR = Median_Val + ATR_Mult * ATR

Lower_ATR = Median_Val - ATR_Mult * ATR

Standard Deviation Band (based on ta.stdev(Median_Val, Length_SD)):

SD_L = Median_Val + ST_Dev (upper +1σ)

SD_S = Median_Val - ST_Dev (lower -1σ)

4. Raw Oscillator (rawOsc)
Two conditions decide the raw value:

Bullish condition (L_Bull_MDA): (Source > Lower_ATR) and (Source >= SD_L)

Then bullForce = (Source - Median_Val) / (Median_Val - Lower_ATR) * 100
→ positive values (0 to +∞)

Bearish condition (S_Bear_MDA): (Source < Upper_ATR) and (Source <= SD_S)

Then bearForce = (Source - Median_Val) / (Upper_ATR - Median_Val) * 100
→ negative values (0 to –∞)

Otherwise rawOsc = 0.

5. Smoothing & Clamping
oscValue = ta.ema(rawOsc, smoothOsc) (user‑defined smoothOsc length, default 5).

osc = math.min(math.max(oscValue, -2000), 2000) – clamps extreme values.

📊 Normalisation & Dynamic Styling
Momentum for Fill Transparency:
absOsc = math.abs(osc) → maxAbsOsc = ta.highest(absOsc, 50) → normalised normAbsOsc → Fill_Transp_OSC = int(math.max(0, math.min(100, 35 - (normAbsOsc * 25))))
→ higher oscillator magnitude ⇒ less transparency (more vivid fills).

Gradient Coloring for Candles:
oscNorm is re‑scaled over the last 50 bars to [0,1] → candle color interpolates between DnC (bearish) and UpC (bullish) using color.from_gradient.

Color Themes: 9 predefined schemes (Classic, Modern, Heat, Robust, Accented, Monochrome, Moderate, Aqua, Cosmic) with custom bullish/bearish colours.

📈 Signal System
1. Trend Determination (Trend_MDA)
Bullish when osc > Upper_Band (user‑defined Long Threshold, default 50). Sets Trend_MDA = 1.

Bearish when osc < Lower_Band (user‑defined Short Threshold, default -50). Sets Trend_MDA = -1.

Otherwise holds previous value.

2. Reversal Signals (plot as triangles)
Bullish Reversal (reversalBull): Trend_MDA == 1 and Trend_MDA[1] == -1 → green triangle below bar.

Bearish Reversal (reversalBear): Trend_MDA == -1 and Trend_MDA[1] == 1 → red triangle above bar.

3. Alerts (4 conditions)
Bullish MDA – triggered when isBull_MDA (osc > Upper_Band)

Bearish MDA – triggered when isBear_MDA (osc < Lower_Band)

Bullish Cross – ta.crossover(osc, 0)

Bearish Cross – ta.crossunder(osc, 0)

🎨 Visual Features
Trend Table Displays “⬆️ Bullish” or “⬇️ Bearish” (or “➖ Neutral”)

📖 Interpretation Guide
Positive values (osc > 0) indicate price is above the median anchor (bullish bias).

Negative values (osc < 0) indicate price below the median (bearish bias).

Crossing ±50 (default thresholds) signals a confirmed trend change (bullish >50, bearish < -50).

Crossing zero may be used as an early warning of trend shift (alerts available).

Reversal triangles appear when the oscillator crosses a threshold in the opposite direction after being in the other regime – these are potential entry/exit signals.

The dynamic fill transparency highlights momentum: intense colour = strong price deviation.

🚨 Alert Summary
Four alert conditions are ready for automation:

Bullish MDA – enters long zone (osc > Upper_Band)

Bearish MDA – enters short zone (osc < Lower_Band)

Bullish Cross – oscillator crosses above zero

Bearish Cross – oscillator crosses below zero

All alerts can be enabled via the TradingView alerts panel.

Отказ от ответственности

Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.