Cumulative distribution function - Probability

3829 visitas
Cumulative distribution function (tScore and zScore)

This script provides the calculation of the cumulative distribution function (i.e., probability). The measure allows you to calculate the chances of a value of interest being above or below a hypothesized value over the measurement period—nothing fancy here, just good old statistics and mathematics. The closer you are to 0 or 1, the more significant your measurement. We’ve included a significance level highlighting feature. The ability to turn price and/or volume off.

We have included both the Z and T statistics. Where the ‘Z’ is looking at the difference of the current value, minus the mean, and divided by the standard deviation. This is usually pretty noisy on a single value, so a smoother is included. Nice shoutout to the Pinecoders Github Page with this function also. The t-statistic is measuring the difference between a short measurement, an extended measurement, and divided by the standard error (sigma/sqrt(n)). Both of these are neatly wrapped into a function, so please feel free to use them in your code. Add a bit of science to your guessing game. For the purists out there, we have chosen to use sigma in the t-statistic because we know the population's behavior (as opposed to the s-measure). We’ve also included two levels of the t-statistic cumulative distribution function if you are using a short sample period below 6.

Finally, because everyone loves choices, we’ve included the ability to measure the probability of:
• the current value (Price and volume )
• change
• percent change
• momentum (change over a period of time)
• Acceleration (change of the change)
• contribution (amount of the current bar over the sum)
• volatility (natural log ratio of today and the previous bar)

Here is a chart example explaining some of the data for the function.

Here are the various options you have the print the different measurements

A comparison of the t-statistic and z-statistic (t-score and z-score)

And the coloring options
Script de código abierto

Siguiendo el verdadero espíritu de TradingView, el autor de este script lo ha publicado en código abierto, para que los traders puedan entenderlo y verificarlo. ¡Un hurra por el autor! Puede utilizarlo de forma gratuita, aunque si vuelve a utilizar este código en una publicación, debe cumplir con las Normas internas. Puede marcarlo como favorito para usarlo en un gráfico.

¿Quiere utilizar este script en un gráfico?

Comentarios

joke on me but the normal CDF is actually a log-normal right? Awesome script, so much for me to learn!
Responder
It's a really good and scientific approach.
I've been developing an indicator that calculates probabilities using the distribution of trade-related values.
I came across your post while searching for PDF and CDF functions.
Responder
Bruce-JSH
@Bruce-JSH, Thanks, Happy to help...feel free to grab those functions and use them in your own scripts. I would really like to see what you come up with, drop me a note when you publish something.
Responder
Great concept.

Can you pl. clarify the numeric value used in { F_t & CDF } calculations. Is it related to avg value (88).

I am trying to create normal distribution function for script. It would be great help. I want to use 26 period length, will these value change.

Thanks
Cheers
Responder
r327079
@r327079, So the F_c/F_v are the CFDs for either the price or volume calculations, their booleans are for including price/volume, and booleans for either gaussian or T distributions (n_CFD and T_CFD respectively). The Len and AVG and Smoothing (smo) are just the lengths for either the t-statistic or SMA (plus smoothing). For the 26 periods, you can use the gaussian (normal), with avg=26, then add the smoother as needed (to reduce the bar to bar noise. Not super clear on the (88) reference, happy to help more, just let me know. You can also do a few searches on TV, because several gaussian distributions are already published.
Responder
@kocurekc This is legit. Can i use it on Day Trade charts to confirm momentum/squeeze?
Responder
wizawiz
@wizawiz, No worries, happy to supply. I really didn't make this as a stand-alone, always recommended adding it into some other system that needed probabilities. However, what you are suggesting is right in my happy space. If you can spot where volume and/or price are moving, with their associated strengths over a period of time, this will give you a good insight into price action. Just note from the code, this momentum is simply the change over a period of time. I've also just included the change (different between 1-bar), as it is just a nosier, but less laggy indicator. The tool is measuring the probability of finding the change (average over 'len') of either price/volume change over the short period, looking back over the long period. What you get when you are just looking at the price and volume information is the momentum you are wanting to find.

Is Mr Market (smart money) acquiring or selling? Seeing changes in volume is usually indicative of price action following. Is everyone bidding it up without any real volume (this rally will fail). Or is it unloved/forgotten, low price/volume, this is a good (low vol) entry point....ect...ect. See the attached notes on the price history for NFLX.

Now, I don't day trade (sry), I'm a swing trader and don't have time to watch...However, the tool will work with anything, on any time frame, but you need price and volume. My only recommendation is to look for the appropriate long/short lookback periods which align with your trade frequencies. If you are wanting to move positions every hour, you'll want a 5 min chart. Then set the indicator at 6, 12, 78...basically meaning, take the average of the last 30 mins (6, 5 min bars), looking for the probability of finding that change over a 1 hour period (12, 5 min bars) in the past day (78, 5 min bars). if your product changes all day (24 hours) adjust accordingly....not fast enough, drop down to a 1 min chart and rescale the parameters.

Responder
Wow - ridiculously cool, kudo's!

Now just to find a way to utilise it ...
Responder