lejmer

Probability Distribution Histogram

lejmer Mis à jour   
Probability Distribution Histogram

During data exploration it is often useful to plot the distribution of the data one is exploring. This indicator plots the distribution of data between different bins.

Essentially, what we do is we look at the min and max of the entire data set to determine its range. When we have the range of the data, we decide how many bins we want to divide this range into, so that the more bins we get, the smaller the range (a.k.a. width) for each bin becomes. We then place each data point in its corresponding bin, to see how many of the data points end up in each bin. For instance, if we have a data set where the smallest number is 5 and the biggest number is 105, we get a range of 100. If we then decide on 20 bins, each bin will have a width of 5. So the left-most bin would therefore correspond to values between 5 and 10, and the bin to the right would correspond to values between 10 and 15, and so on.

Once we have distributed all the data points into their corresponding bins, we compare the count in each bin to the total number of data points, to get a percentage of the total for each bin. So if we have 100 data points, and the left-most bin has 2 data points in it, that would equal 2%. This is also known as probability mass (or well, an approximation of it at least, since we're dealing with a bin, and not an exact number).



Usage

This is not an indicator that will give you any trading signals. This indicator is made to help you examine data. It can take any input you give it and plot how that data is distributed.

The indicator can transform the data in a few ways to help you get the most out of your data exploration. For instance, it is usually more accurate to use logarithmic data than raw data, so there is an option to transform the data using the natural logarithmic function. There is also an option to transform the data into %-Change form or by using data differencing.

Another option that the indicator has is the ability to trim data from the data set before plotting the distribution. This can help if you know there are outliers that are made up of corrupted data or data that is not relevant to your research.

I also included the option to plot the normal distribution as well, for comparison. This can be useful when the data is made up of residuals from a prediction model, to see if the residuals seem to be normally distributed or not.
Notes de version:
Version 1.0.1
  • Fixed minor spelling errors in the tooltip about the "data transformation method" option.
  • Fixed a bug with the trimming of the data.
Notes de version:
No code changes. Corrected the chart image used for the publication.
Notes de version:
Version 1.0.3
  • Added the first 4 moments to the TradingView Data Window.
Notes de version:
Version 1.1.0
  • Updated code to PineScript version 5.
  • Added support for comparing to a uniform distribution and a Laplace distribution.
  • Fixed a few bugs.
  • Added min and max of the data set to the TradingView Data window.
Notes de version:
Version 1.1.1
  • Added the option to show which bin the current data point belongs to.
Notes de version:
Version 1.1.2
  • Made the highlighted bin highlight the entire column instead of just the empirical distribution.
Notes de version:
Version 1.1.3
  • Added absolute and squared transformations to the data transformation dropdown list.
  • Removed the log checkbox and added options for that in the dropdown list for data transformation.
  • Fixed a bug with the highlighted bin where it wouldn't properly disapear when the checkbox was unticked.
Notes de version:
Version 1.1.4
  • Changed from calculating only centralized sample moments to ("unbiased") centralized sample variance and standardized sample skewness and kurtosis.
  • Kurtosis is now showing "excess" kurtosis.
Notes de version:
Version 1.1.5
  • Fixed a bug that made the indicator crash when the first few data points were 'na'.
  • Made the default transformation "log %-change" again. Accidentally made it "%-change" in the 1.1.3 update.
Notes de version:
Version 1.1.6
  • Added exponent of raw data to the data transformation dropdown list.
Version 1.1.7
  • Added the option to use a lookback period for the histogram data source.
Notes de version:
Version 1.1.8
  • Added the option to set a date/time range for the data set.
  • Added the option to set a custom bin size.
Notes de version:
Version 1.1.9
  • Added the median and mean absolute deviation (the average absolute distance between the median and the data points) to the TradingView Data window.
  • Added the 1st quartile, 3rd quartile and interquartile range to the TradingView Data window.
  • Added the 5th quantile and 95th quantile for both the empirical and the theoretical distribution to the TradingView Data window.
Script open-source

Dans le véritable esprit de TradingView, l'auteur de ce script l'a publié en open-source, afin que les traders puissent le comprendre et le vérifier. Bravo à l'auteur! Vous pouvez l'utiliser gratuitement, mais la réutilisation de ce code dans une publication est régie par le règlement. Vous pouvez le mettre en favori pour l'utiliser sur un graphique.

Clause de non-responsabilité

Les informations et les publications ne sont pas destinées à être, et ne constituent pas, des conseils ou des recommandations en matière de finance, d'investissement, de trading ou d'autres types de conseils fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.

Vous voulez utiliser ce script sur un graphique ?