Filt ADR🟠 Script Name: Filtered Average Daily Range (Filt ADR)
This script calculates a filtered version of the Average Daily Range (ADR) based on the last 14 daily candles. It's designed to reduce the influence of unusually high or low daily ranges (outliers) by applying a filter before calculating the average.
🔧 How It Works — Step by Step
1. Calculate Daily Ranges (High - Low)
It retrieves the daily price ranges (difference between daily high and low) for the last 14 days using request.security() with the "D" (daily) timeframe.
pinescript
Копировать
Редактировать
high - low // today's daily range
high - low // yesterday's daily range
...
These values are stored into individual variables dr0 to dr13.
2. Build an Array of Daily Ranges
An array named ranges is used to store the 14 daily ranges, but only if they are not na (missing data). This avoids errors during processing.
3. Calculate the Initial (Unfiltered) Average Range
The script sums all values in the ranges array and calculates their average:
pinescript
Копировать
Редактировать
avg_all = total sum of ranges / number of valid entries
4. Filter Out Outliers
Now it filters the values in ranges:
Only keeps the ranges that are between 0.5×avg_all and 2×avg_all.
This is to remove abnormally small or large daily ranges that could distort the average.
The filtered values are added to a second array called filtered.
5. Calculate the Filtered ADR
Finally, it calculates the average of the filtered daily ranges:
pinescript
Копировать
Редактировать
avg_filt = sum of filtered ranges / number of filtered values
This is the Filtered ADR.
6. Plot the Result
The result (avg_filt) is plotted as an orange line on the chart. It updates on each bar (depending on the current timeframe you're viewing) but the underlying data is based on the last 14 daily candles.
pinescript
Копировать
Редактировать
plot(avg_filt, title="Filtered ADR", color=color.orange, linewidth=2)
✅ Use Case
This script is useful for traders who use the Average Daily Range (ADR) to:
Estimate expected price movement during a day
Set volatility-based stop-loss or take-profit levels
Identify days with unusually high or low volatility
By filtering out extreme values, it provides a more stable and reliable estimate of daily volatility.
Indikator Pine Script®






















