OPEN-SOURCE SCRIPT

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.

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.

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in publication is governed by House rules. You can favorite it to use it on a chart.

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.