Median Proximity Percentile [AlgoAlpha]📊🚀 Introducing the "Median Proximity Percentile" by AlgoAlpha, a dynamic and sophisticated trading indicator designed to enhance your market analysis! This tool efficiently tracks median price proximity over a specified lookback period and finds it's percentile between 2 dynamic standard deviation bands, offering valuable insights for traders looking to make informed decisions.
🌟 Key Features:
Color-Coded Visuals: Easily interpret market trends with color-coded plots indicating bullish or bearish signals.
Flexibility: Customize the indicator with your preferred price source and lookback lengths to suit your trading strategy.
Advanced Alert System: Stay ahead with customizable alerts for key trend shifts and market conditions.
🔍 Deep Dive into the Code:
Choose your preferred price data source and define lookback lengths for median and EMA calculations. priceSource = input.source(close, "Source") and lookbackLength = input.int(21, minval = 1, title = "Lookback Length")
Calculate median value, price deviation, and normalized value to analyze market position relative to the median. medianValue = ta.median(priceSource, lookbackLength)
Determine upper and lower boundaries based on standard deviation and EMA. upperBoundary = ta.ema(positiveValues, lookbackLength) + ta.stdev(positiveValues, lookbackLength) * stdDevMultiplier
lowerBoundary = ta.ema(negativeValues, lookbackLength) - ta.stdev(negativeValues, lookbackLength) * stdDevMultiplier
Compute the percentile value to track market position within these boundaries. percentileValue = 100 * (normalizedValue - lowerBoundary)/(upperBoundary - lowerBoundary) - 50
Enhance your analysis with Hull Moving Average (HMA) for smoother trend identification. emaValue = ta.hma(percentileValue, emaLookbackLength)
Visualize trends with color-coded plots and characters for easy interpretation. plotColor = percentileValue > 0 ? colorUp : percentileValue < 0 ? colorDown : na
Set up advanced alerts to stay informed about significant market movements. // Alerts
alertcondition(ta.crossover(emaValue, 0), "Bullish Trend Shift", "Median Proximity Percentile Crossover Zero Line")
alertcondition(ta.crossunder(emaValue, 0), "Bearish Trend Shift", "Median Proximity Percentile Crossunder Zero Line")
alertcondition(ta.crossunder(emaValue,emaValue ) and emaValue > 90, "Bearish Reversal", "Median Proximity Percentile Bearish Reversal")
alertcondition(ta.crossunder(emaValue ,emaValue) and emaValue < -90, "Bullish Reversal", "Median Proximity Percentile Bullish Reversal")
🚨 Remember, the "Median Proximity Percentile " is a tool to aid your analysis. It’s essential to combine it with other analysis techniques and market understanding for best results. Happy trading! 📈📉
Percentile
Gross and Net LTF Volume + Trailing Percentile Sessions CVOL Hi Traders !
Gross volume, net lower time frame (LTF) volume and trailing session percentile Cumulative session volume:
The code calculates and plots the following volume indicators:
Volume (Gross Volume): The total volume for the current bar.
Net lower time frame volume: The difference between the buy and sell volumes of the lower time frame.
Cumulative daily session volume: The cumulative sum of the volume for the current day.
Percentile Cumulative daily session volume: The percentile of the cumulative daily session volume (calculated on a rolling basis).
The above indicators may be plotted exclusively or exclusively.
Why is Volume important:
Volume is the number of shares or contracts traded (of a financial asset) during a given time period (timeframe). It is a crucial indicator in technical analysis and quantitative trading, as volume helps in identifying
Price Confirmation: Volume confirms price movements by indicating the level of interest and participation in the market. When prices move significantly, accompanied by strong volume, it suggests that the movement is likely to be sustained. Conversely, if prices move without significant volume, it suggests that the movement may be temporary or lacking conviction.
Trend Strength: Volume can help identify the strength and direction of a trend. During an uptrend, increasing volume alongside price increases indicates that the upward momentum is gaining traction. Conversely, decreasing volume during an uptrend suggests that the upward momentum may be weakening.
Reversal Points: Sharp volume spikes in the opposite direction of the prevailing trend can signal a potential reversal point. This is because large volume indicates a significant shift in trader sentiment, suggesting that the trend may be changing direction.
Liquidity: High volume indicates that a security is liquid, meaning that it can be easily bought and sold without significant price impact. Liquidity is important for traders who want to execute large orders without significantly affecting the market price.
For example, suppose we want to identify positive price confirmation and positive trend strength, in this case we may use the CVOL (with trailing percentile).
The above image showcases price expansion conditional on high positive volume (increasing CVOL), The price expansion also exhibits Volume confluences (the colored bars).
Positive Confluence: Increase in positive total volume and an increase in positive lower time frame volume in relative and absolute terms.
Negative Confluence : Increase in negative total volume and an increase in negative lower time frame volume in relative and absolute terms.
Also note how the percentile color does not change, this means that the new volume bars are > than the highest percentile (80%) of volume values from the beginning of the session.
Normalized Fisher Transformed VolumeGreetings Traders,
I am thrilled to introduce a game-changing tool that I've passionately developed to enhance your trading precision – the Normalized Fisher Transformed Volume indicator. Let's dive into the specifics and explore how this tool can empower you in the markets.
Unlocking Trading Precision:
Normalization and Transformation:
Normalize raw volume data to ensure a consistent scale for analysis.
The Fisher Transformation converts normalized volume data into a Gaussian distribution, providing enhanced insights into trend dynamics.
Flexible Modes for Tailored Strategies:
Choose from three distinct modes:
Volume T3 (MA) + Heatmap: Identify trends with T3 Moving Average and visualize volume strength with Heatmap.
Volume Percent Rank: Evaluate the position of current volume relative to historical data.
Volume T3 (MA) Percent Rank: Combine T3 Moving Average with percentile ranking for a comprehensive analysis.
Heatmap Visualization for Quick Insights:
Heatmap Zones and Lines visually represent volume strength relative to historical data.
Customize threshold multipliers and color options for precise Heatmap interpretation.
T3 Moving Average Integration:
Smoothed representation of volume trends with the T3 Moving Average enhances trend identification.
Percent Rank Analysis for Context:
Gauge the position of normalized volume within historical context using Percent Rank analysis.
User-Friendly Customization:
Easily adjust parameters such as length, T3 Moving Average length, Heatmap standard deviation length, and threshold multipliers.
Intuitive interface with colored bars and customizable background options for personalized analysis.
How to Use Effectively:
Mode Selection:
Identify your preferred trading strategy and select the mode that aligns with your approach.
Parameter Adjustment:
Fine-tune the indicator by adjusting parameters to match your preferred trading style.
Interpret Heatmap and T3 Analysis:
Leverage Heatmap and T3 Moving Average analysis to spot potential trend reversals, overbought/oversold conditions, and market sentiment shifts.
Conclusion:
The Normalized Fisher Transformed Volume indicator is not just a tool; it's your key to unlocking precision in trading. Crafted by Simwai, this indicator offers unique insights tailored to your specific trading needs. Dive in, explore its features, experiment with parameters, and let it guide you to more informed and precise trading decisions.
Trade wisely and prosper,
simwai
Trend Strength Over TimeThe script serves as an indicator designed to assess and visualize trend strength and Volume strength over time. It employs a variety of calculations and conditions to offer insights into both bullish and bearish market trends. Let's explore the key conceptual elements of the code.
Trend Strength Conditions:
The script defines conditions to assess trend strength based on a comparison between each calculated percentile value and the highest high (bullish) or lowest low (bearish). Separate conditions are established for each percentile length, allowing for a nuanced understanding of trend dynamics across different timeframes.
Counting Bull and Bear Trends:
To quantify the strength of bullish and bearish trends, the script maintains counts for the number of conditions that are true for each. This count-based approach provides a quantitative measure of trend strength.
Weak Bull and Bear Counts:
Recognizing that trends are not always clear-cut, the script introduces the concept of weak trends. It counts instances where the percentiles fall between the highest high and lowest low, indicating a potential weakening of the prevailing trend.
Bull and Bear Strength:
Bull and bear strengths are calculated based on the counts, with adjustments made for weak trends. This step provides a more nuanced and comprehensive assessment of trend strength by considering both strong and weak signals.
Current Trend Value:
The culmination of these calculations is the determination of the current trend value. This value represents the balance between bullish and bearish forces, offering a dynamic indicator of the market's prevailing sentiment.
Volume Strength Calculation:
In addition to price-based indicators, the script incorporates volume strength as a crucial element. This is calculated using the simple moving averages (SMAs) of volume over different lengths, normalized relative to the SMA over a length of 144. Volume strength adds a layer of confirmation or divergence to the price-based trend analysis.
Color Change:
To facilitate quick and intuitive interpretation, the script dynamically changes the color of the plotted line on the chart based on the current trend value. Green indicates a bullish trend, red indicates a bearish trend, and blue suggests a neutral or indecisive market.
Plotting:
The script uses the plot function to visually present the calculated trend strength and volume strength on the chart. This visual representation aids traders in making informed decisions based on the identified trends and their strengths.
Volume Strength: A Detailed Explanation
In the context of the provided script, volume strength is a critical component used to assess the strength of a market trend. It provides insights into the level of participation and commitment of market participants, offering a complementary perspective to traditional price-based indicators. Let's delve into the concept and practical applications of volume strength.
Calculation of Volume Strength:
The script calculates volume strength by considering the simple moving averages (SMAs) of volume over different time periods (13, 21, 34, 55, 89). These individual SMAs are then normalized relative to the SMA over a more extended period of 144. The weights assigned to each SMA in the calculation are defined in the variable VCF (Volume Correction Factor).
Calculation of Volume Strength with Weights: The weights assigned to each SMA in this calculation are crucial for emphasizing the significance of shorter-term volume movements relative to a longer-term baseline.
Interpretation of Weights:
The choice of weights reflects the relative importance of shorter-term volume movements compared to longer-term trends. In this script, shorter-term SMAs (13, 21, 34, 55, 89) are assigned decreasing weights, while the longer-term SMA (144) serves as the baseline.
Shorter-term SMAs with higher weights may have a more immediate impact on the volume strength calculation. This implies that recent changes in volume carry more weight in assessing the current market conditions.
The decreasing weights for shorter-term SMAs might indicate that, as the timeframe lengthens, the significance of recent volume movements diminishes in relation to the longer-term trend. This approach allows for a focus on both short-term volatility and longer-term stability in volume patterns.
The purpose of normalization is to emphasize the current volume's significance in comparison to its historical context. This can help identify abnormal volume spikes or sustained increases in trading activity, which may indicate the strength or weakness of a trend.
Interpretation and Practical Use:
Confirmation of Trend:
Rising volume during an uptrend can validate the strength of the upward movement, suggesting that a significant number of market participants are actively buying. Conversely, decreasing volume during an uptrend might indicate weakening interest and a potential reversal.
In a downtrend, increasing volume on downward price movements reinforces the strength of the trend. A decrease in volume during a downtrend may suggest a potential weakening or exhaustion of the downward momentum.
Divergence Analysis:
Divergence occurs when there is a disagreement between the price movement and the corresponding volume. For example, if prices are rising but volume is declining, it could signal a lack of conviction in the upward movement, and a reversal might be imminent.
Conversely, if prices are falling, but volume is decreasing as well, it might suggest that the downward momentum is losing steam, and a potential reversal or consolidation could be on the horizon.
In conclusion, volume strength analysis provides traders with a powerful tool to gauge the conviction behind price movements. By incorporating volume data into the technical analysis, one can make more informed decisions, enhance trend identification, and improve risk management strategies.
Multi Timeframe Trend StrengthThis code is an advancement of my previous percentile-based trend strength. It follows the same concept, except this code display the trend and trend strength in multiple timeframe (1 min, 5 min, 15 min, 1hr and 4hr).
This gives an indication of the trend is evolving and allows to see how short-term trend matches with the long-term trend.
How it works:
The script assesses trend strength through percentile values derived from high and low prices across various time periods. It categorizes the current trend as either Bullish, Bearish, or N/A (No Trend) with the following steps:
Percentile Calculations: The code calculates the 75th percentile of high prices (e.g., percentile_13H) and the 25th percentile of low prices (e.g., percentile_13L) for specified Fibonacci-based periods (13, 21, 34, 55, 89, and 144). These percentiles serve as thresholds for identifying strong trends.
Calculate Highest High and Lowest Low: It computes the highest high (75th percentile high price of the longest period) and lowest low (25th percentile low price of the longest period), referred to as highest_high and lowest_low. These values establish critical price levels.
Trend Strength Conditions: For each percentile and period, the code checks if the percentile exceeds the highest high (trendBull) or falls below the lowest low (trendBear). These conditions gauge the strength of bullish and bearish trends.
Count Bull and Count Bear: Variables countBull and countBear tally the number of bullish and bearish conditions met, helping assess trend strength.
Weak Bull and Weak Bear Count: The code calculates weak bullish and bearish conditions, occurring when percentiles fall within the range defined by highest_high and lowest_low but don't meet strong trend criteria.
Bull Strength and Bear Strength: bullStrength and bearStrength are calculated based on counts of bullish, bearish, weak bullish, and weak bearish conditions, representing overall trend strength.
Strong Bull and Bear Conditions: These conditions arise when the 75th percentile of high prices (bull conditions) or the 25th percentile of low prices (bear conditions) surpass or dip below the highest high or lowest low, respectively, for the specified period. Strong conditions indicate robust trends with significant price movements.
Weak Bull and Bear Conditions: Weak conditions occur when percentiles fall within the range between highest_high and lowest_low, suggesting some bullish or bearish tendencies without reaching extreme levels. These imply less decisive trends.
Current Trend Identification: The current trend is determined by comparing bullStrength and bearStrength. A greater bullStrength indicates a Bull trend, greater bearStrength implies a Bear trend, and equal values denote No Trend (N/A).
Percentile Based Trend StrengthThe "Percentile Based Trend Strength" (PBTS) calculates trend strength based on percentile values of high and low prices for various length periods and then identifies the current trend as either Bullish, Bearish, or N/A (No Trend). Here's a step-by-step explanation of the code:
Percentile Calculations:
For each specified length period (13, 21, 34, 55, 89, and 144 - Fibonacci numbers), the code calculates the 75th percentile of high prices (e.g., percentile_13H) and the 25th percentile of low prices (e.g., percentile_13L). These percentiles represent levels that prices need to exceed or fall below to indicate a strong trend.
Calculate Highest High and Lowest Low:
The highest high (75th percentile high price of longest length) and lowest low (25th percentile low price of longest length) for the longest length period (144) are calculated as highest_high and lowest_low. These values represent threshold price levels .
Trend Strength Conditions:
The code calculates various conditions to determine trend strength. For each percentile value and each length period, it checks if the percentile value is greater than the highest high (trendBull) or less than the lowest low (trendBear). These conditions are used to assess the strength of the bullish and bearish trends.
Count Bull and Count Bear:
The countBull and countBear variables count the number of bullish and bearish conditions met, respectively. These counts help evaluate trend strength.
Weak Bull and Weak Bear Count:
The code calculates the number of weak bullish and bearish conditions. Weak conditions occur when a percentile value falls within the range defined by the highest high and lowest low but doesn't meet the strong trend criteria.
Bull Strength and Bear Strength:
bullStrength and bearStrength are calculated based on the counts of bullish, bearish, weak bullish, and weak bearish conditions. These values represent the overall strength of the bullish and bearish trends.
Strong Bull and Bear Conditions:
These conditions occur when the 75th percentile of high prices (for bull conditions) or the 25th percentile of low prices (for bear conditions) exceeds or falls below the highest high or lowest low, respectively, for the specified length period.
Strong bull conditions indicate a strong upward trend, while strong bear conditions indicate a strong downward trend.
Strong conditions are indicative of more significant price movements and are considered as primary signals of trend strength.
Weak Bull and Bear Conditions:
Weak bull and bear conditions are more nuanced. They occur when the 75th percentile of high prices (for weak bull conditions) or the 25th percentile of low prices (for weak bear conditions) falls within the range defined by the highest high and lowest low for the specified length period.
In other words, prices are not strong enough to reach the extreme levels represented by the highest high or lowest low, but they still exhibit some bullish or bearish tendencies within that range.
Weak conditions suggest a less robust trend. They may indicate that while there is some bias toward a bullish or bearish trend, it is not as strong or decisive as in the case of strong conditions.
Current Trend Identification:
The current trend is determined by comparing bullStrength and bearStrength. If bullStrength is greater, it's considered a Bull trend; if bearStrength is greater, it's a Bear trend. If they are equal, the trend is identified as N/A (No Trend).
Displaying Trend Information:
The code creates a table to display the current trend, reversal probability (strength), count of bullish and bearish conditions, weak bullish and weak bearish counts, and colors the text accordingly.
Plotting Percentiles:
Finally, the code plots the percentile lines for visualization, with 20% transparency. It also plots the highest high and lowest low lines (75th and 25th percentile of the longest length 144) using their original colors.
In summary, this indicator calculates trend strength based on percentile levels of high and low prices for different length periods. It then counts the number of bullish and bearish conditions, factors in weak conditions, and compares the strengths to identify the current trend as Bullish, Bearish, or No Trend. It provides a table with trend information and visualizes percentile lines on the chart.
Multiple Percentile Ranks (up to 5 sources at a time)This indicator is a visual percentile rank indicator that can display 1 to 5 sources at one time.
The options:
“Sources”
Choose the number of sources you would like to display. The minimum is 1, the maximum is 5.
“Label percent position”
The label for the current percentage of where the source candle ranks.
“Label position”
This displays the source/s you’ve selected, and the chosen bottom rank % and top rank %.
“Label text size”
Displays the text size of all labels.
“Display current % labels”
Switches the labels on/off only for the current percentage rank of each source.
Source options:
ATR: Average True Range
CCI: Commodity Channel Index
COG: Centre of Gravity
Close: closing price
Close Percent: close percentage from previous close
Dollar Value: volume * (high * low * close / 3)
EOM: Ease of Movement: how much volume it takes to move the price in a certain direction
OBV: On-Balance Volume
RANGE: percentage range of the close price
RSI: Relative Strength Index
RVI: Relative Vigor Index
Time Close: if you select the 1 second timeframe it will provide the gap of time between each 1 second close
Volume: each bar’s volume
Volume (MA): volume moving average
Source # where # is the number of the source. Selects the source you’d like.
Ma Length is the number of previous candles to consider when calculating the moving average of the source. Note, the “MA Length” only applies to sources that have the “(MA)” at the end of their name.
Bottom % is the bottom percentage rank of the source you’ve selected. This is a filter to display the candle line graph in red once the percentage rank is equal to the percentage you’ve chosen or below.
Top % is the top percentage rank of the source you’ve selected. This is a filter to display the candle line graph in green once the percentage rank is equal to the percentage you’ve chosen or higher.
A simple example of how to use the indicator:
Select the dropdown menu for source 1 and select volume.
As the candles populate, it will look at previous candles and assign a percentage rank of where the candles are in relation to previous candles.
*Note, the way Tradingview works is it will populate the first candle the chart was active, and continue on. So, let’s say the 3rd candle was the highest volume day. This candle will show up as 100%. If the next day, the 4th candle has an even higher volume, it will show up as 100% also, the previous candles won’t “repaint” to other values and are instead set based on when they were confirmed. So, this indicator works best when there are a lot of previous candles to compare itself to.
To use the bottom % rank filter enter a percentage such as 5%. As it comes across a candle that is 5% or less compared to previous volume candles, then the line graph will shade in red.
The same can be said for the top % rank. So, if you want to see the line graph change to green when it comes across the top 99th percentile rank of volume bars, then set the top % rank to 1% and it will give you extremely high-volume bars in green instead of blue.
Oscillator Profile IndicatorDescription:
The Oscillator Profile Indicator (OPI) is designed to provide insights into market trends and potential reversal points by profiling the value distribution of an oscillator or the price chart over a specified lookback period.
The OPI works by calculating the Point of Control (PoC) for the oscillator values or prices in the given lookback period. This PoC, essentially a median, is considered the fair value where most trading activities have happened. Along with this, OPI also calculates lower and upper boundaries by taking the specified percentile of the sorted distribution of values. These boundaries outline the value area within which a significant portion of trading activity has occurred.
The main feature of the OPI is the interpretation of PoC movement and how it relates to general market trends. If the PoC moves above 0 on the oscillator, it's a potential indication that we are in a general uptrend. Conversely, if the PoC moves below 0, this can be a signal for a general downtrend.
Usage:
While OPI can be used on both price charts and oscillators, its effectiveness is more pronounced when used on oscillators. Applying this indicator to oscillators such as the Relative Strength Index (RSI) or the Moving Average Convergence Divergence (MACD) can provide useful insights.
How to Read:
PoC line: The line represents the median of the past 'n' periods. Its movement above or below 0 can be used to identify general uptrends or downtrends respectively.
Upper and Lower Boundary lines: These lines represent the specified percentile of the value distribution in the lookback period.
Colored Fills: The fills between the upper and lower boundary lines visually represent the value area. The color changes based on the relative position of the source value (price or oscillator value) to the PoC.
Signals:
An uptrend is indicated when the PoC moves above 0 on the oscillator, especially when coupled with an upward crossover of the source value through the PoC.
A downtrend is signaled when the PoC drops below 0 on the oscillator, particularly when paired with a downward crossover of the source value through the PoC.
(!) Note: Like all indicators, OPI should be used in conjunction with other technical analysis tools for the best results. It is also advisable to backtest this indicator with your strategy before using it in live trading.
AIR Vortex ADXThis project started as an effort to improve the user interface of the hybrid indicator ADX of Vortex, which is, as per the name, a blend of ADX and Vortex Indicator. Plotting both indicators on the same polarity and normalising the vortex, a better interpretation of the interaction between the two is possible, and trend becomes apparent.
Basically, the Vortex provides the bright punch and ADX the continuation of the trend and momentum.
A range mixer has been added to the vortex, comprising both true and interpercentile ranges (see my previous script for a desrciption of interpercentile range). Users can activate and add amounts of each as they see fit.
Finally, there is an RSI filter, the idea of which is to filter out ranging (flat) markets, where no distinct direction is yet emerging.
Focused Average True RangeThe Focused Average True Range (FATR) is a modified version of the classic Average True Range (ATR) indicator. It is designed to provide traders with more accurate data on volatility, minimizing the impact of sharp spikes in volatility.
The main distinction between the Focused ATR and the standard ATR lies in the utilization of percentiles. Instead of calculating the average price change as the regular ATR does, the Focused ATR selects a value in the middle of the range of price changes. This makes it less sensitive to sharp changes in volatility, which can be beneficial in certain trading scenarios.
Settings:
Percentile. This parameter determines which value in the series of price changes will be used. For example, if the percentile is set to 50, the indicator will use the median value of the series of price changes. This is the default value. Imagine a class of students lined up by height, and instead of calculating the average height of all students, we take the height of the students in the middle of the line. Similarly here, we take the ATR from the middle of the series. Increasing the percentile will lead to the use of a value closer to the upper bound of the range, while decreasing the percentile will lead to the use of a value closer to the lower bound.
How to Use:
The Focused ATR is especially useful for determining the sizes of stop-losses and take-profits, thanks to its ability to consider the value in the middle of the series of price changes rather than the average value. This allows traders to more accurately assess volatility and risk, which in turn can assist in optimizing trading strategies
---
Фокусированный Средний Истинный Диапазон (Focused ATR) представляет собой модифицированную версию классического индикатора ATR. Он разработан с целью предоставления трейдерам более точных данных о волатильности, минимизируя влияние резких скачков волатильности.
Основное отличие Фокусированного ATR от стандартного ATR заключается в использовании процентиля. Вместо того, чтобы рассчитывать среднее значение изменений цены, как это делает обычный ATR, Фокусированный ATR выбирает значение в середине диапазона изменений цены. Это делает его менее чувствительным к резким изменениям волатильности, что может быть полезно в некоторых торговых сценариях.
Настройки:
Процентиль. Этот параметр определяет, какое значение в ряду изменений цены будет использоваться. Например, если процентиль равен 50, то индикатор будет использовать медианное значение ряда изменений цены. Это стандартное значение. Представьте себе, что ученики класса выстроились по росту, и мы считаем не средний рост всех учеников, а берем рост учеников из середины колонны. Так и тут. Мы берем ATR из середины ряда. Увеличение процентиля приведет к использованию значения, ближе к верхней границе диапазона, в то время как уменьшение процентиля приведет к использованию значения, ближе к нижней границе.
Как использовать:
Фокусированный ATR особенно полезен для определения размеров стоп-лоссов и тейк-профитов, благодаря своей способности учитывать значение в середине ряда изменений цены, а не среднее значение. Это позволяет трейдерам более точно оценить волатильность и риск, что в свою очередь может помочь в оптимизации торговых стратегий.
.
Volume scaled Price + auto colour change light/dark mode🔶 OVERVIEW
🔹 This script shows price in a similar style as volume . To accomplish this we use the body of the candle ( close - open ), which is placed on a zero line.
This can be useful when comparing volume ~ price .
🔹 3 options are included to show additional lines, to make comparisons easier:
· Percentile nearest rank
· Bollinger Bands (BB)
· Simple Moving Average (SMA)
🔶 SETTINGS
🔹 Option : choose whether to show price (candles) or volume . Adding 2 versions of this indicator on the chart enables you to compare these 2 options:
🔹 Lines:
· (Percentile nearest rank (only the setting mult is used for this option).
· Bollinger Bands (BB) (only the setting % perc. nearest rank is used for this option).
· Simple Moving Average (SMA )
All 3 options will use length , this is the amount of bars used for calculations.
🔹 Show wick will show you... wicks :)
🔶 PERCENTILE NEAREST RANK
🔹 This script has 2 extra types of background color
dvP = volume > volume and z < z and z < prP_ and volume > prV
· In this case:
· volume is higher than previous volume ( volume > volume )
· volume is above 90th percentile rank ( volume > prV )
· price is lower than previous price ( z < z )
· price is below 10th percentile rank ( z < prP_ )
dvV = volume < volume and z > z and z > prP and volume < prV_
· The second type background color is reversed ( volume lower, price higher)
🔶 AUTOMATIC COLOUR CHANGE WHEN SWITCHING DARK/LIGHT MODE
🔹 chart.bg_color returns the color of the chart’s background from the "Chart settings/Appearance/Background" field, while chart.fg_color returns a color providing optimal contrast with chart.bg_color .
· Following technique gives you the possibility to pick your own colour for either dark/light time.
· We first retrieve separately the red, green and blue component of the measured chart.bg_color
r = color.r(chart.bg_color)
g = color.g(chart.bg_color)
b = color.b(chart.bg_color)
The following assumption states when all 3 colour components' values are below 80, we are in the dark mode:
isDark = r < 80 and g < 80 and b < 80
Now we can use isDark to automatically show your own dark/light mode colours (chosen at settings), dependable on the mode:
Cheers!
Volume percentrank[TV1]Volume percentrank
Volume normalized by percentile.
The indicator calculates the percentile of the trading volume . The volume in the base asset or quote asset can be selected as data. To calculate the volume of a quoted asset, the closing price or another standard method for calculating the price of a bar can be used.
A feature of percentile calculation with a small data sample length is low accuracy. Despite the fact that the script allows you to calculate a percentile with a length of 1, using a percentile length less than 100 is not recommended.
The percentile calculation method does not allow correctly calculating the percentile at the beginning of the chart due to the lack of all data in the selection, therefore, when the date of the first bar changes (this happens on small timeframes if the TradingView subscription does not allow you to see all historical data), the indicator will be repainted up to the bar number equal to the percentile sample length.
Huge values of the percentile length may cause a script error. If the indicator doesn't work, just make the percentile length smaller.
Объем, нормализованный по процентилью.
Индикатор вычисляет процентиль объема торгов. В качестве данных может быть выбран объем в базовом(base) активе или котировочном(quote) активе. Для расчета объема в котировочном активе может использоваться цена закрытия либо другой стандартный метод расчета цены бара.
Особенностью расчета процентиля при малой длине выборки данных является малая точность. Не смотря на то, что скрипт позволяет вычиcлить процентиль с длинной 1, использовать длину процентиля меньше 100 не рекомендуется.
Метод расчета процентиля не позволяет корректно рассчитать процентиль в начале графика из-за отсутствия всех данных в выборке, поэтому при изменении даты первого бара (это происходит на малых таймфреймах, если подписка TradingView не позволяет видеть все исторические данные) индикатор подвержен перерисовке вплоть до номера бара равного длине выборки процентиля.
Большие значения длины процентиля могут приводить к ошибке скрипта. Если индикатор не работает, просто сделайте длину процентиля меньше.
Weighted percentile nearest rankYo, posting it for the whole internet, took the whole day to find / to design the actual working solution for weighted percentile 'nearest rank' algorithm, almost no reliable info online and a lot of library-style/textbook-style solutions that don't provide on real world production level.
The principle:
0) initial data
data = 22, 33, 11, 44, 55
weights = 5 , 3 , 2 , 1 , 4
array(s) size = 5
1) sort data array, apply the sorting pattern to the weights array, resulting:
data = 11, 22, 33, 44, 55
weights = 2 , 5 , 3 , 1 , 4
2) get weights cumsum and sum:
weights = 2, 5, 3 , 1 , 4
weights_cum = 2, 7, 10, 11, 15
weights_sum = 15
3) say we wanna find 50th percentile, get a threshold value:
n = 50
thres = weights_sum / 100 * n
7.5 = 15 / 100 * 50
4) iterate through weights_cum until you find a value that >= the threshold:
for i = 0 to size - 1
2 >= 7.5 ? nah
7 >= 7.5 ? nah
10 >= 7.5 ? aye
5) take the iteration index that resulted "aye", and find the data value with the same index, that's gonna be the resulting percentile.
i = 2
data = 33
This one is not an approximation, not an estimator, it's the actual weighted percentile nearest rank as it is.
I tested the thing extensively and it works perfectly.
For the skeptics, check lines 40, 41, 69 in the code, you can comment/uncomment dem to switch for unit (1) weights, resulting in the usual non-weighted percentile nearest rank that ideally matches the TV's built-in function.
Shoutout for @wallneradam for the sorting function mane
...
Live Long and Prosper
Rolling QuartilesThis script will continuously draw a boxplot to represent quartiles associated with data points in the current rolling window.
Description :
A quartile is a statistical term that refers to the division of a dataset based on percentiles.
Q1 : Quartile 1 - 25th percentile
Q2 : Quartile 2 - 50th percentile, as known as the median
Q3 : Quartile 3 - 75th percentile
Other points to note:
Q0: the minimum
Q4: the maximum
Other properties :
- Q1 to Q3: a range is known as the interquartile range ( IQR ). It describes where 50% of data approximately lie.
- Line segments connecting IQR to min and max (Q0→Q1, and Q3→Q4) are known as whiskers . Data lying outside the whiskers are considered as outliers. However, such extreme values will not be found in a rolling window because whenever new datapoints are introduced to the dataset, the oldest values will get dropped out, leaving Q0 and Q4 to always point to the observable min and max values.
Applications :
This script has a feature that allows moving percentiles (moving values of Q1, Q2, and Q3) to be shown. This can be applied for trading in ways such as:
- Q2: as alternative to a SMA that uses the same lookback period. We know that the Mean (SMA) is highly sensitive to extreme values. On the other hand, Median (Q2) is less affected by skewness. Putting it together, if the SMA is significantly lower than Q2, then price is regarded as negatively skewed; prices of a few candles are likely exceptionally lower. Vice versa when price is positively skewed.
- Q1 and Q3: as lower and upper bands. As mentioned above, the IQR covers approximately 50% of data within the rolling window. If price is normally distributed, then Q1 and Q3 bands will overlap a bollinger band configured with +/- 0.67x standard deviations (modifying default: 2) above and below the mean.
- The boxplot, combined with TradingView's builtin bar replay feature, makes a great tool for studies purposes. This helps visualization of price at a chosen instance of time. Speaking of which, it can also be used in conjunction with a fixed volume profile to compare and contrast the effects (in terms of price range) with and without consideration of weights by volume.
Parameters :
- Lookback: The size of the rolling window.
- Offset: Location of boxplot, right hand side relative to recent bar.
- Source data: Data points for observation, default is closing price
- Other options such as color, and whether to show/hide various lines.
Heikin Ashi Volatility Percentile - TraderHalaiThe Heikin Ashi Volatility Percentile (HAVP) Oscillator was inspired by the legendary Bollinger Band Width Percentile indicator(known as BBWP), written by Caretaker, and made famous by Eric Krown, a famous influencer.
This script borrows aspects of the BBWP indicator which enables the HAVP oscillator to visually match the look and feel of BBWP and allows similar configuration functions (such as colouring function, smoothing MAs and alerts)
The fundamentals of this script are however different to BBWP. Instead of Bollinger band width, this script uses a reverse function of Heikin Ashi close (implemented in my Smoothed Heikin Ashi Trend
indicator, linked below).
The reverse Heikin Ashi close is smoothed using Ehler's SuperSmoother function, providing smooth oscillation and earlier signals of volatility tops and bottoms.
From an automated backtest that I have conducted on the BTCUSD index pair, I have observed comparable performance to BBWP across multiple timeframes when combining with stochastic direction to give a bias on overall direction. Using parameters I have tested, it performs better on mid-term timeframes such as 3h,4h and 6h. BBWP outperforms on 1h and 1d, with lower timeframes being comparable.
From the results, using HAVP over BBWP tends to result in reduced holding time and more frequent trades, which may or may not be desirable, although the behaviour can be adjusted using the parameters provided.
For instance, the smoother oscillation provided by HAVP provides a great predictability factor and earlier confirmation signals, which is something that Ehler emphasised in his trading style, and something which I agree with personally. I would encourage you to try out both HAVP and BBWP and see which fits your trading style.
Releasing this as open source allows for the betterment of the community and further development, criticism and discussion.
Thanks and enjoy! :)
Spinn ATR targetNot quite the usual approach to plotting targets on the chart, where the price will come with a given probability.
The indicator draws targets by studying the ATR of the target timeframe. More precisely, this is not exactly an ATR - the price move is taken from the closing price of the previous bar and is calculated both up and down separately.
The settings specify the percentage used to calculate the price move, at which the specified percentage of bars reached this price move in the past.
Simply put, if we set 50% in the settings, this means that a line will be drawn at the level at which the price reached this level in 50% of cases over a given period.
--
Не совсем обычный подход к построению целей на графике, куда цена придет с заданной вероятностью.
Индикатор рисует цели, изучая ATR целевого таймфрейма. Точнее, это не совсем ATR - ход цены берется от цены закрытия предыдущего бара и считается отдельно как вверх, так и вниз.
В настройках задается процент, исходя из которого вычисляется ход цены, при котором заданный процент баров достигал этого хода цены ранее.
Проще говоря, если мы задаем в настройках 50%, то это означает, что будет построена линия на том уровне, на котором цена в 50% случаев за заданный период достигала этого уровня.
Percentile Major Move Indicator This indicator is a powerful tool for understanding how big of a move a product, crypto, or currency has recently had.
Anything inside of the green bars is a standard move with a 68% chance of happening based on your chart timeframe.
Any move that touches the red lines to the upside or downside has a 2%+ chance of happening in either direction.
This is a powerful indicator but just one point of data and should be used as such.
ROC vs BTCThis is a modification of my Rate of Change Percentile script, used to compare the current ticker (e.g. Altcoins) to BTC.
Essentially we are looking at (Current Ticker ROC percentile) vs (Bitcoin ROC percentile).
In other words, we are using the ROC value of both the current ticker and BTC, and ranking each based on their previous ROC.
We compare the rankings to gauge the relative overperformance or underperformance of the current ticker vs BTC.
The blue line is BTC, the columns are the current ticker.
Green columns above the blue line indicate positive ROC and current ticker has higher ROC ranking than BTC.
Red columns below the blue line indicate negative ROC and current ticker has a higher ROC ranking than BTC.
*** PLEASE LEAVE A LIKE AND FOLLOW IF YOU ENJOY THE SCRIPT ***
Any questions, comments or feedback I'd love to hear from you below!
Circular Candlestick ChartAn original (but impractical) way to represent a candlestick chart using circles arc.
The most recent candles are further away from the circle origin. Note that OHLC values follow a clockwise direction. A higher arc length would indicate candles with a higher body or wick range.
The Length settings determine the number of past candles to be included in the circular candlestick chart. The Width setting control the width of the circular chart. The Spacing setting controls the space between each arcs. Finally, the Precision settings allow obtaining a more precise representation of candles, with lower values returning more precise results, however, more precision requires a higher amount of lines. Settings are quite hard to adjust, using a higher length might require a lower spacing value.
Additionally, the script includes two pointers indicating the location of the 75 (in blue) and 25 (in orange) percentiles. This allows obtaining an estimate of the current market sentiment, with the most recent arcs laying closer to the 75 percentile pointer indicating an up-trend.
This new way to represent candlesticks might be useful to more easily identify candles clusters or to find new price patterns. Who knows, we know that new ways to see prices always stimulate traders imagination.
See you next year.
Momentum Performance This Indicator displays the momentum (performance) of the symbol in percent.
You can compare the performance with other symbols.
The default benchmarks are the S&P 500, the MSCI World and the FTSE All World EX US.
The default length corresponds to one year in the timeframes monthly, weekly and daily.
In intraday the default length is 200, but you can also set your own setting.
You have also the opportunity to display a average momentum performance of the main symbol.
P-Square - Estimation of the Nth percentile of a seriesEstimation of the Nth percentile of a series
When working with built-in functions in TradingView we have to limit our length parameters to max 4999. In case we want to use a function on the whole available series (bar 0 all the way to the current bar), we can usually not do this without manually creating these calculations in our code. For things like mean or standard deviation, this is quite trivial, but for things like percentiles, this is usually very costly. In more complex scripts, this becomes impossible because of resource restrictions from the Pine Script execution servers.
One solution to this is to use an estimation algorithm to get close to the true percentile value. Therefore, I have ported this implementation of the P-Square algorithm to Pine Script. P-Square is a fast algorithm that does a good job at estimating percentiles in data streams. Here's the algorithms original paper .
The chart
On the chart we see:
The returns of the series (blue scatter plot)
The mean of the returns of the series (orange line)
The standard deviation of the returns of the series (yellow line)
The actual 84.1th percentile of the returns (white line)
The estimatedl 84.1th percentile of the returns using the P-Square algorithm (green line)
Note: We can see that the returns are not normally distributed as we can see that one standard deviation is higher than the 84.1th percentile. One standard deviation should equal the 84.1th percentile if the data is normally distributed.
Rolling summaryStatistical methods based on mean cannot be effective all the time when attributed to financial data since it doesn't usually follow normal distribution, the data can be skewed or/and have extreme values which can be described as outliers.
In order to deal with this problem it is appropriate to use median-based techniques.
The most common one is called five-number summary/box plot, which plots median of the dataset, 25th (Q1) & 75th (Q3) percentiles (the medians of lower & upper parts of the original dataset divided by the original median), and whiskers calculated by taking range between Q1 and Q3, multiplying it by 1.5 and adding it to Q3 and subtracting it from Q1. The values which are outside the whiskers are considered outliers. Default settings of the script correspond to the classic box plot.
Seven-number summary can be also plotted by this script, by turning on 4 additional percentiles/Bowley’s seven-figure summary by turning on first 2 additional percentiles and changing their values to 10 and 90 respectively.
P.S.: Mean can be also turned in just to check the difference.
Historical Volatility Percentile + SMAHistorical Volatility Percentile tells you the percentage of the days from the past year (252 trading days) that have lower volatility than the current volatility.
I included a simple moving average as a signal line to show you how volatile the stock is at the moment.
I have included simple colors to let you know when to enter or exit a position.
Buy when price higher than EMA & historical volatility higher than SMA
Sell when price lower than EMA & historical volatility higher than SMA
Please let me know if you would like me to publish any other indicators! I always love to hear from you guys.