Multi Deviation Scaled Moving Average (Multi-DSMA)

Multi Deviation Scaled Moving Average (Multi-DSMA)

1) What is the Multi-DSMA?

The Multi Deviation Scaled Moving Average (by ChartPrime) is an adaptive moving average that stacks eight Deviation-Scaled MAs (DSMAs) with progressively longer lookbacks. Each DSMA self-adjusts to current market activity via RMS scaling, then all eight are averaged into a single line. A score gauges how many fast layers are above the slowest layer, driving dynamic color/opacity and generating early/late crossover signals.

Use it when you need a trend-aware line that reacts quickly in acceleration phases but remains calm in choppy markets.

2) How it Works — The Short Version

Pipeline per bar:

  1. Super Smoother prefilter → noise reduction with low lag.

  2. RMS scaling (via exponential average) → dimensionless, volatility-aware signal.

  3. Adaptive alpha → bigger |signal| ⇒ faster DSMA; clamped to avoid overshoot.

  4. Eight DSMA layers → periods = Periods + k×step (k = 0..7).

  5. Average of 8 layers → final “Multi DSMA Avg” line.

  6. Score (0–1) → fraction of fast layers above the slowest layer.

  7. Color/Opacity from score + Signals at 0.30/0.70 crossovers.

3) Core Mechanics

3.1 Super Smoother (per layer)

Each layer takes a zero-mean input (close - close[2]) and runs it through a 2-pole Super Smoother (Ehlers-style) using period-dependent coefficients. This removes high-frequency noise without the lag typical of simple MAs.

3.2 RMS Normalization

rms = sqrt(ExponentialAverage(period)(filt^2))
Dividing the filtered signal by its RMS (scaledFilt) makes the amplitude comparable across regimes (quiet vs. volatile), so the adaption depends on structure, not raw volatility.

3.3 Adaptive DSMA

alpha = min( |scaledFilt| * 5 / period , 1 )
DSMA = alpha * close + (1 - alpha) * DSMA[1]
When structure builds (|scaled| ↑), alpha increases and the DSMA hugs price more tightly. In calm conditions, alpha shrinks and the line smooths out.

3.4 The Eight Layers & Sensitivity Inversion

  • Base period = Periods.

  • Step = max(100 - Sensitivity, 1) → higher Sensitivitysmaller step ⇒ layers are closer together ⇒ more responsiveness.

  • Layer periods: Periods, Periods+step, ..., Periods+7×step.

3.5 Multi-Layer Average

The plotted line “Multi DSMA Avg” is the simple average of the 8 DSMA values. This blend keeps the agility of fast layers while anchoring to the slower context.

3.6 Score Construction (0–1)

Compare each of the seven fast layers to the slowest (DSMA8). Each fast-above-slow adds ≈ 1/7.

  • Score ≈ 1 → strong bullish stack (broad alignment).

  • Score ≈ 0 → strong bearish stack.

  • Middle → mixed/transition.

3.7 Dynamic Color & Opacity

  • If score > 0.5: gradient fades in towards the upper color (bullish).

  • If score ≤ 0.5: gradient fades out from the down color (bearish).
    Opacity follows the same logic: conviction (stack agreement) literally shows up as a more opaque line.

3.8 Signals (Hysteresis Band)

  • Bullish signal when score crosses up 0.30early heads-up.

  • Bearish signal when score crosses down 0.70late confirmation.
    This asymmetric band reduces flip-flops by asking for more evidence before flipping bearish.

4) How to Read It on the Chart

  • Line direction: trend bias of the blended stack.

  • Color & opacity: confidence. Deeper/denser = stronger alignment.

  • Arrows:

    • ▲ at the Multi DSMA Avg when score crosses above 0.30.

    • ▼ at the Multi DSMA Avg when score crosses below 0.70.

  • On-chart panel (last bar): two vertical bars show Up% vs Down% (score×100 vs 100–score×100), updated on the most recent update.

Tip: The score panel uses anchored drawing near the bottom-right of the chart. If you customize positions, keep the anchor(bottomright, xshift, yshift) logic consistent.

5) Typical Uses

A) Trend Confirmation / Bias Filter

  • Trade only long when score > 0.5 and line slopes up; short when < 0.5 and slope down.

  • Use arrows as timing aids, not stand-alone entries.

B) Momentum Entries

  • Aggressive: act on the ▲ (0.30 cross up) if the line is already turning up and price pulls back to or slightly below the line.

  • Conservative: wait for price to reclaim the line and the score to sustain > 0.6 for several bars.

C) Exits / Risk Control

  • Partial exit when score slips below 0.7 from high levels (momentum fading).

  • Hard exit on ▼ (0.70 cross down) and line turning flat/down.

D) Multi-Timeframe

  • Use higher timeframe score as bias; execute with lower timeframe ▲/▼ around the Multi DSMA Avg.

This indicator is non-repainting (no future data; all calculations use current and past bars).

6) Inputs & Configuration

Periods (default 30)

  • Sets the base lookback.

  • Lower (e.g., 14–25): faster, more responsive, more signals.

  • Higher (e.g., 40–80): smoother trend backbone, fewer signals.

Sensitivity (default 60, range 0–100)

  • Controls step via step = max(100 - Sensitivity, 1).

  • Higher Sensitivity ⇒ smaller step ⇒ layers cluster ⇒ more agility.

  • Lower Sensitivity ⇒ larger step ⇒ wider spread ⇒ stronger “stack” requirement.

Recommended starting points:

  • Scalping: Periods 20–30, Sensitivity 70–85

  • Swing: Periods 30–50, Sensitivity 55–70

  • Position: Periods 50–80, Sensitivity 40–60

Colors (RGB triplets)

  • Upper color for bullish gradients, Down color for bearish.

  • You can soften opacity extremes by lowering the alpha scaling, but the default provides a clear conviction cue.

7) ProBuilder Code

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

avatar
Register or
Related users ' posts
Iván
12 months ago
Iván
1 year ago
Madrosat Bonjour ivan Quelle différence il y a t il entre Extra trend et ultra trend lequel est le p...
P. Marlowe Muy bueno. ¿Podría hacerse para señalar extremos por el lado bajista? Lo mismo a la inversa....
Miro Esta es una versión del indicador, para ambos extremos. //-------------------------------...
P. Marlowe Muchas gracias ¡¡
MaoRai54 dear Ivan, it seems to be very interesting but please clarify what are all the lines I see i...
Iván Hi! you have the answer in the last line of code... MacdMiddle as "histo" style(histogra...
kats Le Top , a utiliser avec le nuage violet et alerte TN pour plus de précision.
Iván Hi! yes. You can ask for it here: https://www.prorealcode.com/free-code-conversion/
roccafragius Thank you so much Ivan! I created this request in english Translate from TradingView Indicat...
ipbvba Hello, Is it possible to have a screener for the various buy and sell signals?
Regisnew très bel indicateur merci
jordan //---settings MAmode=0 Period=150 NumberOfMA=100 //---end of settings MA2=undefined ...
jordan dites moi si cela correspond à ce que vous cherchez
kats bonjour merci de ta reponse mais non ca fonctionne pas sympa quand même d'avoir essayé cdlt
Jean2139 Bonjour Yvan, Merci pour ton indicateur que je trouve très intéressant. Je suppose que tu ...
Suffi Hier eine kleine Korrektur: //-----Inputs-----------------------------------------// MALengt...
kats Bonjour, J'ai une question etes vous trader? Je m'explique , j'ai téléchargé tous les indi...
Faisalx Hola Ivan. Thanks for your great job. I would appreciate if you have look at my request http...
roccafragius Thank you for all these useful information!! Very great job Ivan! THank you so much
geroniman Merci Ivan, super travail. On peut toujours compter sur toi pour apporter des innovations su...
Stenozar Ciao IVAN , mi da errore per la riga 49 "print tema low"; puoi suggerirmi la modifica da met...
Iván Avete provato a scaricare il file .itf?
AndyB72 Caricato ora sulla V12, nessun errore.
Iván Allora crei un nuovo post. Lo aspetterò.
Stenozar Ciao Ivan, ho inserito il post con la richiesta di traduzione. Se puoi vedere, grazie!
Iván perfect!
kats BONSOIR c bon merci j ai trouve ce weekend merci de votre reponse cdlt
the_giorgio Hi, nice work I would like to understand something about prorealtime code. With your ...
Iván Hello. When you use the drawcandle() instruction then in the configuration window you add ...
Gaspare Ciao Ivan si puo' inserire una strategia su questo indicatore per ottimizzare le variabil...
Iván
2 years ago
Iván Si lo descargas e importas en tu PRT verás que se han creado las variables para luego config...
WhyAskOZ Hi, Ivan As always you are doing great coding. The code works on my PRT, however the issu...
Iván You can delete in the last line (return) the configuration for color. Delete coloured(xx,xx,...
Bernard13 (Je réécris mon commentaire -français- en français car certains mots ne correspondaient pas ...
Iván 1000 indicateurs !!! brutaux
Iván Gracias! Para el screener sólo tienes que copiar el indicador y poner como condición de búsq...
Lean Muchas gracias Iván, ya lo he podido crear.
bertoluce Hello Ivan, thank you very much for the indicator. An observation: would it be possible (and...
Doddge Hola Iván, ¿sería posible crear un screener que indique cuándo las velas coloreadas del indi...
RTR Ivan thank you for the pro-screener. I a trying to understand how to write the signals from ...
Iván Hi, Lines 62 and 63. These lines define buy and sell conditions.
Iván Hi You should delete from the indicator code all drawing functions and all variables not us...
Iván I've created a screener to show [longcondition or shortcondition]
Chrisinobi Hallo Ivan, Danke das ist Perfekt !! Kannst du bitte in der Screener-Bibliothek die itf. hoc...

Top