Tushar Chande’s DMI (with RSX)

v10.3
Tushar Chande’s DMI (with RSX)

An indicator used in technical analysis that determines the overbought and oversold conditions of a particular asset. This indicator is very similar to the Relative Strength Index (RSI). The main difference between the two is that the RSI uses a fixed number of time periods (usually 14), while the Dynamic Momentum Index uses different time periods as volatility changes.

This indicator is interpreted in the same manner as the RSI where the readings below 30 are deemed to be oversold and more than 70 levels are deemed to be overbought. The number of time periods used in the dynamic momentum index decreases as the volatility of the underlying asset increases, making this indicator more sensitive to price changes than the RSI. This version has an additional smoothing in an RSX usage form for calculating the original RSI pitch. It has been added to make it a little more readable. The DMI Chande is less smooth than this original version and can raise more false signals. Using the RSX instead of RSI not add any lag at all, so we can say that using an RSX instead of RSI could be classified as “1% improvement” rule – which is sure it not be worse than the original Chande’s DMI.

(description found on internet). Indicator translated from Metatrader5 version by a request in forum.

Settings explanation:

_ MAStdDevMode : moving average type for smoothing the ATR value used to get the volatility of the current instrument

_ DmiLowerLimit & DmiUpperLimit : bounds for DMI periods (DMI calculated period can’t be less or more than these 2 limits)

 

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

  1. macbartin • 01/31/2018 #

    Bonjour, merci pour l’indicateur, j’utilise un RSI de 7 période, sur du 1 min, est’il possible de changer sa base de période ? si oui comment faire ? merci encore j’avais pas pensé que le RSI pouvait avoir du retard !

    • Nicolas • 01/31/2018 #

      Changer la base de périodes du RSI original ? Le RSI a du “retard” puisqu’il est toujours nécessaire d’évaluer le terrain (et donc de regarder le passé) pour donner l’information sur la bougie courante.

    • macbartin • 01/31/2018 #

      merci, je voulais savoir quel paramètre il faut modifier sur votre indicateur pour le modifier sur la période 7 de votre indicateur

    • Nicolas • 01/31/2018 #

      Cet indicateur est dynamique, il n’utilise pas de période fixe

  2. falco44 • 01/31/2018 #

    Bonjour Nicolas,
    Lorsque j’importe l’indicateur via l’itf et que je l’attache au graphique, il apparait ce message “Erreur dans l’indicateur : PRC_DMI of RSX (5 8 0 15 10 50 60 40) — Un parametre de type entier positif est attendu avec SUMMATION”.
    Pourrais-tu m’eclairer à ce sujet stp ?
    Je suis sur la v11 de prt.
    Merci à toi,
    Cordialement,
    Romain

    • Nicolas • 01/31/2018 #

      Dans ce cas, il faut changer les lignes qui comportent l’instruction SUMMATION comme ceci: summation[max(1,RSIterm)]

  3. falco44 • 01/31/2018 #

    Bonjour Nicolas, je suis desolé mais cela ne fonctionne toujours pas …
    Merci de ton retour

  4. AG1 • 01/31/2018 #

    Hello Nicholas
    Is it possible to attach a revised code?
    I tried to change according to your instructions but the indicator is not working yet.
    Thanks in advance for your help
    Alex

    • Nicolas • 01/31/2018 #

      PFA below a revised version:
      //PRC_DMI of RSX | indicator
      //31.01.18
      //Nicolas @ http://www.prorealcode.com
      //Sharing ProRealTime knowledge
      //translated from MT5 code
      //https://www.prorealcode.com/topic/tushar-chandes-dmi-conversion-code-mq5-to-prorealtime/

      // — settings
      StdDevPeriod = 5 // Period of Standard Deviation
      MAStdDevPeriod = 8 // Period of smoothing
      MAStdDevMode = 0 // Mode of smoothing MA
      DMIPeriod = 15 // Dynamic Momentum Index Period
      DmiLowerLimit = 10 // Dynamic Periods Lower Bound
      DmiUpperLimit = 50 // Dynamic Periods Upper Bound
      LevelUp = 60 // Lower level
      LevelDown = 40 // Upper level
      // — end of settings

      if barindex>DMIperiod then
      SD = STD[StdDevPeriod](customclose)
      ASD = Average[MAStdDevPeriod,MAStdDevMode](SD)

      RSIterm = max(1,ROUND(DMIPeriod / (SD/ASD)))
      RSIterm = Max(Min(RSIterm,DmiUpperLimit),DmiLowerLimit)

      //RSI calculation
      plus = summation[max(1,round(RSIterm))](customclose-customclose[1]>0)
      minus = summation[max(1,round(RSIterm))](customclose-customclose[1]per then
      beta = 0.45*(per-1)/(0.45*(per-1)+2)
      if pow=1 then
      alpha = beta
      elsif pow=2 then
      alpha = beta*beta
      elsif pow=3 then
      alpha = beta*beta*beta
      elsif pow=4 then
      alpha = beta*beta*beta*beta
      elsif pow=5 then
      alpha = beta*beta*beta*beta*beta
      else
      alpha = beta
      endif

      tmp0 = (1-alpha)*plus + alpha*tmp0[1]
      tmp1 = (plus – tmp0[0])*(1-beta) + beta*tmp1[1]
      tmp2 = tmp0[0] + tmp1[0]
      tmp3 = (tmp2[0] – tmp4[1])*((1-alpha)*(1-alpha)) + (alpha*alpha)*tmp3[1]
      tmp4 = tmp4[1] + tmp3[0]
      avgplus = tmp4

      ftmp0 = (1-alpha)*minus + alpha*ftmp0[1]
      ftmp1 = (minus – ftmp0[0])*(1-beta) + beta*ftmp1[1]
      ftmp2 = ftmp0[0] + ftmp1[0]
      ftmp3 = (ftmp2[0] – ftmp4[1])*((1-alpha)*(1-alpha)) + (alpha*alpha)*ftmp3[1]
      ftmp4 = ftmp4[1] + ftmp3[0]
      avgminus = ftmp4

      endif

      RS = avgplus/avgminus
      DMIRSX = 100 – 100 / ( 1 + RS )

      r=100
      g=100
      b=100
      if DMIRSX>LevelUp then
      r=0
      g=255
      b=0
      elsif DMIRSX<LevelDown then
      r=255
      g=185
      b=15
      endif
      endif

      return DMIRSX coloured(r,g,b) style(line,3) as "Dynamic Momentum Index", levelup coloured(100,100,100) style(dottedline) as "level up", leveldown coloured(100,100,100) style(dottedline) as "level down"

  5. AG1 • 01/31/2018 #

    Thanks Nicolas
    Still a problem in line 29
    Please take a look.
    thanks again
    Alex

    • Nicolas • 01/31/2018 #

      code is modified in the above post, use that one.

    • AG1 • 01/31/2018 #

      Still a problem in line 29
      Please take a look.
      thanks again
      Alex

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
zilliq The reasons why I think it's time consuming and we loose time to try to do backests and Auto...
filiprb Hello Zilliq, You don't need a system to produce a walk forward test. You can easily create...
Philip Raphael It is incredible! Thanks for sharing, Doctrading!
s00071609 Hi, could you please suggest, what this codes gives, lowest[b](rsi[a]) -- just trying to us...
Nicolas lowest[b](rsi[a]) returns the lowest values of the RSI of "a" periods, over the last "b" per...
s00071609 Hi, what would be the code to get the price for last bullish DTOSC cross over. I am looking ...
Nicolas RSI is an oscillator made for price centering. This strategy bet on mean reverting phenomena...
air Good start. Works decently during stock runaway bull market. I have tested it over 80 year p...
TheHovisTrader Hi - the way Larry trades it does not work - discovered that over 10 years ago! BUT If you ...
Glen Marquis I wonder how this fairs on 5 or 15 mins. Maybe 21 or 25 instead of 14 .
Doctrading Hello, you can test it. It's not my best strategy... but I think someone can improve it.
Investment Account Wow great thanks ... looks good! Do I set the colour shades up from within the indicator 's...
avatar
Anonymous Thanks for your comments and yes, that is exactly how I set up the colour levels.
Vish Thanks I have added this in my watch list. Has anyone tried it yet ? Does it work on currenc...
Nicolas Aucune immobilisation du capital. Quel est le drawdown du buy & hold ? Je ne l'ai pas ca...
jctrader ok pour le codage mais le choix "indice" n'est pas le bon : moins de 5%/an pour le meilleur ...
Thomas Hi Nicloas nice one i do understand :D im trying to put in MA200 as a criteria so it only go...

Top