Multi Z-Score analysis

Multi Z-Score analysis

This indicator is a quick attempt to represent the distance of prices from their averages using the Zscore.
By using the DRAWTEXT graphical function in a loop, you can display a large amount of information at the same time.

The Zscore is calculated dynamically against several moving averages for as many “definition” periods. The variable “definition” is a multiplier.

What the indicator shows us is that the price both to return more quickly to its mean when few Zscore (1 Zscore = 1 point on the graph) exceeds a deviation of 2 standard deviations and that quickly, while many other points form a compact package.

Other observations could be formulated for different types of graphs, time horizons and ways to trade, I leave you the pleasure to test by yourself 🙂


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. alfapenna • 300 days ago #

    good job! when it comes to the 4 standard deviation the price almost always breaks in

    • Nicolas • 300 days ago #

      Yes because the mean is also moving, it is not stationnary 🙂

  2. alfapenna • 299 days ago #


    • Jan Wind • 298 days ago #

      Dear Alfapenna,

      I would think the following 3 additions/changes in the code will do; however 4 is an extreme value .

      if zscore <= -4 then (CHANGE INSTEAD OF = 4 then ( CHANGE ADDED LINE)
      drawtext(“.”,barindex,zscore,Dialog,Bold,20) coloured(r,max(g,100),0)

    • Jan Wind • 297 days ago #

      Dear Alfapenna,
      I just saw my reply of this morning to you, it is completely mixed up (?)
      So I give it another try to answer your question:
      however ZFactor of 4 is an extreme value .

      if zscore< -4 then //ADJUSTED; was if zscore 4 then //NEW LINE
      drawtext(“.”,barindex,zscore,Dialog,Bold,20) coloured(r,max(g,100),0)
      endif //NEW LINE

  3. Jan Wind • 298 days ago #


    thanks for the code.
    “Smooth” does not seem to give any value (smooth=average[period](globalz))
    If you can react on this, would be great !
    KR Jan

    • Nicolas • 297 days ago #

      But it should, I’ll test later.

    • Jan Wind • 296 days ago #

      Nicolas, maybe the cause is that the values of / or the smooth line is not visible (??)

  4. Jose7674 • 298 days ago #

    Thanks for such a great job… I will try to use it in a trading system.
    Really great

  5. Sofitech • 298 days ago #

    Is there a way to create a return value for the points so we can create alerts when some points are higher or lower of a value ? how can we modify the code to do that ?

    • Nicolas • 297 days ago #

      So many variables to be returned! The indicator is dynamic by its settings, so you can’t know how much variables it would return, that’s why I used dots made with a graphic instruction. Zscore is pretty much the same as a standard deviation, so bollinger bands do already this job for you.

    • m-zeter • 263 days ago #

      Has anyone found a solution for Sofitech? Would it be possible to draw two lines? An upper line for the maximum points and a lower line for the minimum points. Would that be possible?

  6. Brisvegas • 297 days ago #

    Is this indicator for use in a binary sense or is it just a type of visual . If it is to be used as binary/boolean type signal what would your suggestion be ? It seems a little noisey to me , possibly i just dont get it .

    • Nicolas • 297 days ago #

      Multiple zscore are plotted around many different time horizons means. Purely visual as you cant get a binary signal without any studies of all the information that are plotted by the indicator. As I wrote in the post, I let everyone make their own studies about the concept.

  7. Gianluca • 276 days ago #

    Hello Nicolas, my prt become stuck when i load the indicator, is there any problem with it?

    • m-zeter • 263 days ago #

      Hm, i dont know exactly why, but I think, that the indicator needs lots of power. I need also lots of time to load it. Maybe your computer has not enaugh power for it?

Register or


avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
Balmora74 Thanks for this code. i will try to adapt it in the EUR/USD Pac Man Strategy who is based on...
Vonasi I still have two versions of the PacMan strategy on forward test although there have been va...
Balmora74 I use your version on a real account and the strategy is profitable and i did not have any p...
Maxime Baudin Very helpful! Thank you Nicolas
Pere Thanks again Nicolas. My question is, how can I set a general delay to make backtests: for e...
Nicolas Just add a linear regression moving average of 200 periods on the chart and you'll get the s...
sir_i Bonjour à tous, Je suis nouveau sur le forum et sur la plateforme, pourriez-vous me dire com...
Nicolas Il faut simplement l'appliquer sur le prix.
sir_i Merci pour la réponse, je ne suis pas familier avec l'application de cette procédure simple,...
Choliver Bonjour et merci pour cet indicateur. Toutefois, il me semble qu'il est unidirectionnel. P...
Louis Winthorp III Hi Choliver, you are right, there is a problem with the drawing instruction when the slope i...
Nicolas File and code are updated.
Nicolas Try to restrain to trading hours when Volumes are present (customized trading hours: righ cl...
Choliver Bonsoir Nicolas, Merci pour cet indicateur. Même s'il n'y a officiellement pas de volume s...
abd78 @Vonasi I saw that you did some work on seasonality, I wondered if you wanted to go here and...
Vonasi Sorry - my understanding of Italian is zero so if I watch the video I won't understand it I'...
Nicolas Definition of CustomClose: [2] means...
Bard Just wondered Nicolas, say you had set DEFPARAM CumulateOrders = True, is there anyway for t...
Bard Sorry pls ignore last image, try this - it actually has the Dev Stop indicator! https://www...
anametsinwha Is it possible to change it to highs and lows rather than open and close?
apachx Hi. Please, describe the algorithm in words. I want to understand how it works, but for now...
Madrosat Bonjour Nicolas la formule du stop loss est elle vraiment valable ?? il n'y a pas au depart ...
Nicolas Il y a peut-être un erreur en effet, essayer avec: set stop ploss (averagetruerange[14] * ...
Madrosat ok merci Nicolas c'est avec /pipsize que ça fonctionne
Robin von Bauhn Oh, it's "cs" that's missing. I don't have the code right now but it's the exact same condit...
Manuel9z Hola Francesco, gracias por tu estrategia. Cuando intento activarla en ProOrder, no lo permi...
Manuel9z ok, sorry, I've already configured it with a = 10 b = 30 thanks Francesco for your post
Nicolas Sorry but this question has nothing to deal with this indicator, it belongs to a specific su...
rossneptune Hello Nicholas, I am super excited to see you having built this script (and @jaysay reque...
Nicolas Hi, we do not offer free assistance for other trading platform than ProRealTime. There is no...
thierryp Bonjour Nicolas, merci pour le travail que vous effectuez. Je ne suis vraiment pas bon dans ...
Wiezman74 any chance you can email me this indicator for MT4,, can't get the code to work.. limited kn...
Nicolas This website is dedicated to prorealtime programming. But you can ask for custom programming...
JanWd Hi Francesco, nice algorithme, works with me on other markets as well !
Francesco78 thank you Janwd. Do you mind sharing where it works? happy new year!
Aaron Bennett Nice analysis, with the proposed tweak I'm seeing great performance since 2008/QE on the CAC...
Nicolas No sorry, please use this file instead into a prorealtime trading platform.
rdabbs I just installed this indicator. It opens in its own pane rather than overlaid on the chart ...
Nicolas Just apply it on your price chart instead and you're ok.
Wilko Thanks for letting the community know!
Mattzi Hi Wilko! Is there a screener for this one? Trying to make one myself but cant seem to get i...
Wilko I am not familiar with the screener function, but I am quite certain it should be quite simp...
Francesco78 hi Lizmerril, yes, that is correct
lizmerrill Thanks for replying, so.... I assume in your backtest, the fullness calculations using dclos...
DANY overfit
diegofe_2000 cordial saludo NICOLAS , gracias por excelente indicador. ¿ es posible obtenerlo en MT4 ? ...
Nicolas Lo siento, pero no estoy trabajando para ayudar a la gente aquí de forma gratuita para promo...
diegofe_2000 Nicolas , gracias por tu atención. La pregunta era por curiosidad (yo no trabajo ni manejo ...