Scientific Analysis of the Script "RSI Analysis with Statistical Summary"
Introduction
I observed that there are outliers in the price movement liquidity, and I wanted to understand the RSI value at those points and whether there are any notable patterns. I aimed to analyze this statistically, and this script is the result.
Explanation of Key Terms
1. Outliers in Price Movement Liquidity: An outlier is a data point that significantly deviates from other values. In this context, an outlier refers to an unusually high or low liquidity of price movement, which is the ratio of trading volume to the price difference between the open and close prices. These outliers can signal important market changes or unusual trading activities.
2. RSI (Relative Strength Index): The RSI is a technical indicator that measures the speed and change of price movements. It ranges from 0 to 100 and helps identify overbought or oversold conditions of a trading instrument. An RSI value above 70 indicates an overbought condition, while a value below 30 suggests an oversold condition.
3. Mean: The mean is a measure of the average of a dataset. It is calculated by dividing the sum of all values by the number of values. In this script, the mean of the RSI values is calculated to provide a central tendency of the RSI distribution.
4. Standard Deviation (stdev): The standard deviation is a measure of the dispersion or variation of a dataset. It shows how much the values deviate from the mean. A high standard deviation indicates that the values are widely spread, while a low standard deviation indicates that the values are close to the mean.
5. 68% Confidence Interval: A confidence interval indicates the range within which a certain percentage of values of a dataset lies. The 68% confidence interval corresponds to a range of plus/minus one standard deviation around the mean. It indicates that about 68% of the data points lie within this range, providing insight into the distribution of values.
Overview
This Pine Script™, written in Pine version 5, is designed to analyze the Relative Strength Index (RSI) of a stock or other trading instrument and create statistical summaries of the distribution of RSI values. The script identifies outliers in price movement liquidity and uses this information to calculate the frequency of RSI values. At the end, it displays a statistical summary in the form of a table.
Structure and Functionality of the Script
1. Input Parameters - `rsi_len`: An integer input parameter that defines the length of the RSI (default: 14). - `outlierThreshold`: An integer input parameter that defines the length of the outlier threshold (default: 10).
2. Calculating Price Movement Liquidity - `priceMovementLiquidity`: The volume is divided by the absolute difference between the close and open prices to calculate the liquidity of the price movement.
3. Determining the Boundary for Liquidity and Identifying Outliers - `liquidityBoundary`: The boundary is calculated using the Exponential Moving Average (EMA) of the price movement liquidity and its standard deviation. - `outlier`: A boolean value that indicates whether the price movement liquidity exceeds the set boundary.
4. Calculating the RSI - `rsi`: The RSI is calculated with a period length of 14, using various moving averages (e.g., SMA, EMA) depending on the settings.
5. Storing and Limiting RSI Values - An array `rsiFrequency` stores the frequency of RSI values from 0 to 100. - The function `f_limit_rsi` limits the RSI values between 0 and 100.
6. Updating RSI Frequency on Outlier Occurrence - On an outlier occurrence, the limited and rounded RSI value is updated in the `rsiFrequency` array.
7. Statistical Summary - Various variables (`mostFrequentRsi`, `leastFrequentRsi`, `maxCount`, `minCount`, `sum`, `sumSq`, `count`, `upper_interval`, `lower_interval`) are initialized to perform statistical analysis. - At the last bar (`bar_index == last_bar_index`), a loop is run to determine the most and least frequent RSI values and their frequencies. Sum and sum of squares of RSI values are also updated for calculating mean and standard deviation. - The mean (`mean`) and standard deviation (`stddev`) are calculated. Additionally, a 68% confidence interval is determined.
8. Creating a Table for Result Display - A table `resultsTable` is created and filled with the results of the statistical analysis. The table includes the most and least frequent RSI values, the standard deviation, and the 68% confidence interval.
9. Graphical Representation - The script draws horizontal lines and fills to indicate overbought and oversold regions of the RSI.
Interpretation of the Results
The script provides a detailed analysis of RSI values based on specific liquidity outliers. By calculating the most and least frequent RSI values, standard deviation, and confidence interval, it offers a comprehensive statistical summary that can help traders identify patterns and anomalies in the RSI. This can be particularly useful for identifying overbought or oversold conditions of a trading instrument and making informed trading decisions.
Critical Evaluation
1. Robustness of Outlier Identification: The method of identifying outliers is solely based on the liquidity of price movement. It would be interesting to examine whether other methods or additional criteria for outlier identification would lead to similar or improved results.
2. Flexibility of RSI Settings: The ability to select various moving averages and period lengths for the RSI enhances the adaptability of the script, allowing users to tailor it to their specific trading strategies.
3. Visualization of Results: While the tabular representation is useful, additional graphical visualizations, such as histograms of RSI distribution, could further facilitate the interpretation of the results.
In conclusion, this script provides a solid foundation for analyzing RSI values by considering liquidity outliers and enables detailed statistical evaluation that can be beneficial for various trading strategies.
진정한 TradingView 정신에 따라, 이 스크립트의 저자는 트레이더들이 이해하고 검증할 수 있도록 오픈 소스로 공개했습니다. 저자에게 박수를 보냅니다! 이 코드는 무료로 사용할 수 있지만, 출판물에서 이 코드를 재사용하는 것은 하우스 룰에 의해 관리됩니다. 님은 즐겨찾기로 이 스크립트를 차트에서 쓸 수 있습니다.