Deviation-Scaled Moving Average – DSMA

Deviation-Scaled Moving Average – DSMA

Here is the new DSMA moving average made my John Ehlers and featured in the July 2018 issue of TASC magazine.

The DSMA is an adaptive moving average that features rapid adaptation to volatility in price movement.
It accomplishes this adaptation by modifying the alpha term of an EMA byt he amplitude of an oscillator scaled in standard deviations from the mean. The DSMA’s responsiveness can be changed by using different values for the input parameter period.

John Ehlers


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?

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

  1. juanj • 312 days ago #

    @Nicolas, what would be the code if I want to use this as a Band calculated using true exponential deviation bands;

    I have tried combining them already but my math skills fail me

    • Nicolas • 309 days ago #

      You only have to replace the “EWMA” calculation from this indicator with the DSMA variable made in this one. Please let me know if you have still trouble making this.

    • juanj • 308 days ago #

      That was actually the first thing I tried, but the result didn’t look right to me. So I started experimenting with replacing some variables of the EWMA (i.e. Dev, alpha) band with those of the DSMA (i.e. RMA, alpha1). Produces interesting results but unsure of their correctness.

  2. JohnScher • 311 days ago #

    Hello, Nicolas.

    Nice work from you! Thank you very much. Really!

    Is there a strategy that can be derived from this? e.g. buying at crosses over selling at crosses under the yellow line? Are there any results for such a strategy – possibly in combination with other strategies?
    I think it’s just another average more on the tableau. What can he do more than other averages? Has Ehlers tested that? Are there any results? Published?

    I’m sorry, the criticism, sometimes I’m just tired of “always the same thing”.

    Friendly greetings

  3. juanj • 311 days ago #

    @JohnScher, with regards to your question of can a strategy be derived from this, that is an open-ended question.
    Obviously, a strategy can be derived from this as with anything else?!

    And with regards to is this just another MA, yes it is. And just like any other MA it has it’s place among all the others SMA, EMA, Wilders, DEMA, ZEMA, etc.
    Perhaps you can read the article in TASC, where the merits of the indicator is explained?

    I personally use and experiment with all different kinds of indicators and methods to create strategies.

    I love concepts such as ‘zero lag’ indicators or exponentially calculated Bollinger Bands or in this case std deviation calculated MA’s!

    I am actually planning to use this to create deviation scaled exponentially calculated bollinger band.

  4. Domenec • 311 days ago #

    No esta mal yo utilizo la ema 8 y la wilder8 y la banda que generan con muy buenos resultados sin embargo le he visto algun detalle interesante a esta nueva media me la estudiare con cariño y ya comentare los resultados

  5. Appsoluxions • 273 days ago #

    Hi Nicolas, do you have the MT4 version of the indicator? I am not sure if these kind of questions are welcome, if not appologies in advance. Thank you.

    • Nicolas • 272 days ago #

      Hi, don’t have one sorry. But you can still ask for private coding through our programming services:

  6. Appsoluxions • 264 days ago #

    Cool. Thanks for the response.

Register or


avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
PacoLopez Hello Balmora, good morning. Nice code, Thanks for sharing. I just read from your comments ...
Balmora74 @Pacolopez Hi ! I run this code live on IG CFDs (not via IG Interactive Broker).
Balmora74 @Pacolopez read this :
Stenozar Thanks Leo!
Madrosat Hi Leo something is missing in the strategy above because it does not work at all as it is
Leo I don't know, I just copy paste the strategy. The optimisation of the values I wrote them in...
osupero Buenisimo Sr Nicolas, seria posible que sólo marcara por encima o por debajo de una media mo...
capgros Bonjour @Nicolas, Thanks a lot for this tool, it is very useful for me. I would like to s...
Nicolas Alpha transparency from 0 to 255.
ehtsham Hi, Sir can you tell me how to put this code in indicator plz
Jan Wind Ehtsham, all you need to do is change the code in line 18 and line 20 (see the code above...
ottimo Congratulations Nicolas, What should I do for the 2 files I have to add them both in the gr...
Nicolas Only the "//PRC_StepALMA-VHF Hi/Lo band" is required, it uses the second code automatically....
ottimo Thank you Nicolas, great indicator, N. 1
Nicolas Yes, that's how it goes when using loops..
JosephFelix Hi, Could I please have help with adding these indicators 'on price'? Every indicator that I...
Nicolas Just add it on price by clicking the wrench on the left upper side of the price chart.
Nicolas Thanks again for all your valuable posts... and well formatted code! :)
Abdelkrim Maksour hi sir is this indicator for mt4 and how i can get one .
Tradingrob Hi Nicolas, when i upload this indicator in my list and use it as indicator. I get a totally...
Nicolas Apply it on the price chart. The indicator plot just one single line. There are two in the...
Nicolas Thanks a lot for this new valuable addition to our library. I changed line 76 with "barindex...
Horance Thanks. I've noticed this leftover after submission, but it was too late for editing. BTW, I...
Etienne Thanks Horance for porting this code to PRT. I would like to bring some speedup to your cod...
Horance This is a good question. John Ehlers explains it in Rocket Science for Traders. You have to ...
cbeukes Much appreciated, I will give that a try. Also, is there any criteria that one could use to ...
firemyst Thanks for the code! I'm trying to understand how it works, and have a few questions... line...
Bebbo Grazie del prezioso contributo Nicolas, scusa la mia inesperienza, sono alle prime armi e s...
Nicolas To avoid recalculation, you should use the one from this post.
Bebbo Ok Grazie Nicolas.
Nicolas Should not if adxlen variable is superior to 0.
AussieTrader Nicolas, Can you explain the numerator logic - e.g. Line 35 is (sTR[1] - sTR[1]) which wo...
Nicolas You are right, this is useless. Since I converted it from another programming language, I a...