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?

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

  1. alfapenna • 06/26/2018 #

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

    • Nicolas • 06/26/2018 #

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

  2. alfapenna • 06/26/2018 #


    • Jan Wind • 06/26/2018 #

      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 • 06/26/2018 #

      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 • 06/26/2018 #


    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 • 06/26/2018 #

      But it should, I’ll test later.

    • Jan Wind • 06/26/2018 #

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

  4. Jose7674 • 06/26/2018 #

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

  5. Sofitech • 06/26/2018 #

    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 • 06/26/2018 #

      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 • 06/26/2018 #

      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 • 06/26/2018 #

    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 • 06/26/2018 #

      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 • 06/26/2018 #

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

    • m-zeter • 06/26/2018 #

      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 avatar avatar
Related users ' posts
2 weeks ago
DELBERT Bonsoir , Nicolas , j'ai transféré votre indicateur sur ma PRT 10,3 et j'ai un méssage d'ére...
Nicolas Vous pouvez essayer en remplacant la ligne avec: vwapsd = sqrt(average[lengthz](square(clo...
DELBERT Bonsoir , merci Nicolas , a bientôt .
Daniele Maddaluno If you need to use it in PRT v11 take a look at this topic:
Monobrow Hi Daniele Thank you for the indicator, it looks very good. However, I have a problem so...
samsampop Thanks very much for sharing, look forward to testing this idea out.
kbrooks323 Hello would someone be willing to release a scan code for this? that would be helpful as I s...
Nicolas You can do easily this screener by using the assisted creation tool. It would take you about...
kbrooks323 I just figured it out thanks!
Vonasi There are actually two ways to calculate standard deviations and I seem to have used the ver...
Vonasi There are actually two ways to calculate standard deviations and I seem to have used the ver...
segie Can something similar be done with Supertrends?
Vonasi Not sure I fully understand what you are asking for. Are you asking for MTF Supertrend level...
Kris75 very interesting; thanks !
Vinks_o_7 Thanks Doc !
Maxime Baudin Intresting, thank you!
ggolfet Thanks Nicolas, I imported the itf file and solved the problem.
Hasardeur Hallo Nicolas, i tried to code the multi period heat map in combination with the Ehler’s ...
Nicolas Please open a new topic with the code in forum.
SB-FO Nicolas, can you share with me how PRT calculates LinearRegression ? Is it (3 * WeightedAve...
Nicolas The above code is the way it is calculated in PRT. However the exact indicator can be found ...
SB-FO Thanks Nicolas.
3 years ago
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...
Gianluca Hello, is it possible to use this channel in a strategy? i tried to apply in a code but the ...
Nicolas Because this is indeed nothing more of what you describe. A mean with +/- standard deviation...
ozet std and ste returns 0 on a call... how can i calculate it in a call? okay i got it "ste[loo...
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,...
Nicolas File and code are updated.
Zasinas2000 Hi allo I am not sure I am doing it correctly, but this adds to proreal as an indicator. ...
Trimicha Hi, when I copy the code, i get an error message that LinRegPeriod is not defined. Doe...
arnaudat Bonjour, je suis tombé sur cet indicateur par des recherches sur les écarts types et il me...
Nicolas Il y a peut-être une erreur de calcul causée par un division par zéro, j'ai retrouvé une aut...
arnaudat Merci nicolas, j'ai déjà pris cette version et en plus je suis sur les futures. Par contre d...
3agl3 voglio l indicatore
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...