VWAP RangeThe VWAP Range indicator is a highly versatile and innovative tool designed with trading signals for trading the supply and demand within consolidation ranges.
What's a VWAP?
A VWAP (Volume Weighted Average Price) represents an equilibrium point in the market, balancing supply and demand over a specified period. Unlike simple moving averages, VWAP gives more weight to periods with higher volume. This is crucial because large volumes indicate significant trading activity, often by institutional traders, whose actions can reflect deeper market insights or create substantial market movements. The VWAP is also often used as a benchmark to evaluate the efficiency of executed trades. If a trader buys below the VWAP and sells above it, they are generally considered to have transacted favourably.
This is how it works:
Multiple VWAP Anchors:
This indicator uses multiple VWAPs anchored to different optional time periods, such as Daily, Weekly, Monthly, as well as to the highest high a lowest low within those periods. This multiplicity allows for a comprehensive view of the market’s average price based on volume and price, tailored to different trading styles and strategies.
Dynamic and Fixed Periods:
Traders can choose between using dynamic ranges, which reset at the start of each selected period, and specifying a date and time for a particular fixed range to trade. This flexibility is crucial for analyzing price movements within specific ranges or market phases.
Fixed ranges allow VWAPs to be calculated and anchored to a significant market event, the beginning of a consolidation phase or after a major news announcement.
Signal Generation:
The indicator generates buy and sell signals based on the relationship of the price to the VWAPs. It also allows for setting a maximum number of signals in one direction to avoid overtrading or pyramiding. Be sure to wait for the candle close before trading on the signals.
Average Buy/Sell Signal Lines:
Lines can be plotted to display the average buy and sell signal prices. The difference between the lines shows the average profit per trade when trading on the signals in that range. It's a good way to see how profitable a range is on average without backtesting the signals. The lines will also often turn into support and resistance areas, similar to value areas in a volume profile.
Customizable Settings:
Traders have control over various settings, such as the VWAP calculation method and bar color. There are also tooltips for every function.
Hidden Feature:
There's a subtle feature in this indicator: if you have 'Indicator values' turned on in TradingView, you'll see a Sell/Buy Ratio displayed only in the status line. This ratio indicates whether there are more sell signals than buy signals in a range, regardless of the Max Signals setting. A red value above 1 suggests that the market is trending upward, indicating you might want to hold your long positions a bit longer. Conversely, a green value below 1 implies a downward trend.
Periods
Weekly/Daily/Hourly/Minutes Colored Background IntervalsThis is my "Weekly/Daily/Hourly/Minutes Colored Background Intervals" assistant. I wouldn't describe it as an indicator, it just exhibits coloration of referenced periods of time with bgcolor() in Pine. With the arrival of 2021, I pondered the necessity of needing a visualization pre-2021 to visually recognize periodicity of market movements by the week, day, hour, or an adjustable period of minutes. While this script is simply generic, I hope you may find useful in your endeavors as a member on TradingView.
Explaining the script's usage, the "Minutes" input can be adjusted from anywhere between 5-55 minutes for only intraday. This can be modified to accommodate 90 minutes (1.5hrs) or any other minutes period desirable by tweaking certain numbers up to 1440. Minutes and Hourly backgrounds are disabled by default for most daily traders. Changing the input() code to `true` will provide them on by default when the script loads, if you choose that route. Each time periods background color is enable/disable capable. All of the colors are easily adjustable to any combination you can ponder for your visual acuity with the color swatch provided by input(type=input.color). The coloring can be "swapped" by input() depending on how you wish to start and end the day visually. I thought this would come in handy. The weekly background can have different starting points, whether it be Sunday, Monday, or any other day such as Friday for example.
The entire script's contents isn't intended for complete re-use as is for publicly published scripts. It's more along the lines of code that could be used to personally modify indicators you have, depending on the time frames you may actually be trading on. The code is basically modular, so you can use bits and pieces of it in your personally modified Pine Editor scripts that you wish to customize for yourself. I will say that the isXxx() functions are completely reusable in any script without any need for author permission inquiries from me, as easy as copy and paste. Those may come in handy for many folks. If you find them useful in certain circumstances, use isXxx() functions as you please. Day of the week detection by functions will have applications beyond my current intended use for them.
Of notable mention, this is a miniature lesson by example of how the new input(type=input.color) may be used. I'm also using `var` inside functions to aid in computational efficiency of the script runtime. The colors are permanently stored at the very beginning of the scripts operation inside the function and just reused from that point onward. Its a rare use case, but well suited for this scripts intention. Once again I have demonstrated the "Power of Pine" for developers of any experience level to learn from via code elegance.
When available time provides itself, I will consider your inquiries, thoughts, and concepts presented below in the comments section, should you have any questions or comments regarding this indicator. When my indicators achieve more prevalent use by TV members , I may implement more ideas when they present themselves as worthy additions. Have a profitable future everyone!
Fractals | Swing Points | Highs & Lows | Custom PeriodsSimple script which marks out key swing highs & lows.
One of the only indicators I have on the chart most days
- perfect for naked charting
- quickly helps you to visually identify key areas of interest
An extension of Bill Williams fractals
- aka short term swing points
Allows you to filter for only the most prominent swing points
- you can even overlay multiple swingpoint filters in different colours (as per example chart)
The number ( Fractal Periods) is simply:
- the number of less prominent points either side of your swing high/low
- example shown on the chart
Otherwise make a fist
- look at your 5 knuckles
- swing high is your middle knuckle
- 2 lower points either side
Bill Williams Original Fractal:
Fractal Periods = 2
Your Fractal Period for Filtering:
3, 4, 5, 30, 365, etc
Allows you to find swing points down to:
Fractal Periods = 1
Simple, easy, shared to enjoy =)
Fractals | Swing Points | Highs & Lows | Custom PeriodsSimple script which marks out key swing highs & lows.
One of the only indicators I have on the chart most days
- perfect for naked charting
- quickly helps you to visually identify key areas of interest
An extension of Bill Williams fractals
- aka short term swing points
Allows you to filter for only the most prominent swing points
- you can even overlay multiple swingpoint filters in different colours (as per example chart)
The number (Fractal Periods) is simply:
- the number of less prominent points either side of your swing high/low
- example shown on the chart
Otherwise make a fist
- look at your 5 knuckles
- swing high is your middle knuckle
- 2 lower points either side
Bill Williams Original Fractal:
Fractal Periods = 2
Your Fractal Period for Filtering:
3, 4, 5, 30, 365, etc
Simple, easy, shared to enjoy =)
Highlight Last Bar of: D | W | M | Hour| H4 | MinutesSimple script highlighting a vertical line on the last bar of the Day/ Week/ Month/ Hour/ H4/ minute etc.
Helps maintain visibility of higher timeframes when on lower timeframes.
Quickly identify end of period levels.
Fischy Bands (multiple periods)Just a quick way to have multiple periods. Coded at (14,50,100,200,400,600,800). Feel free to tweak it. Default is all on, obviously not as usable! Try just using 14, and 50.
This was generated with javascript for easy templating.
Source:
```
const periods = ;
const generate = (period) => {
const template = `
= bandFor(${period})
plot(b${period}, color=colorFor(${period}, b${period}), linewidth=${periods.indexOf(period)+1}, title="BB ${period} Basis", transp=show${period}TransparencyLine)
pb${period}Upper = plot(b${period}Upper, color=colorFor(${period}, b${period}), linewidth=${periods.indexOf(period)+1}, title="BB ${period} Upper", transp=show${period}TransparencyLine)
pb${period}Lower = plot(b${period}Lower, color=colorFor(${period}, b${period}), linewidth=${periods.indexOf(period)+1}, title="BB ${period} Lower", transp=show${period}TransparencyLine)
fill(pb${period}Upper, pb${period}Lower, color=colorFor(${period}, b${period}), transp=show${period}TransparencyFill)`
console.log(template);
}
console.log(`//@version=4
study(shorttitle="Fischy BB", title="Fischy Bands", overlay=true)
stdm = input(1.25, title="stdev")
bandFor(length) =>
src = hlc3
mult = stdm
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
`);
periods.forEach(e => console.log(`show${e} = input(title="Show ${e}?", type=input.bool, defval=true)`));
periods.forEach(e => console.log(`show${e}TransparencyLine = show${e} ? 20 : 100`));
periods.forEach(e => console.log(`show${e}TransparencyFill = show${e} ? 80 : 100`));
console.log(' ');
console.log(`colorFor(period, series) =>
c = period == 14 ? color.white :
period == 50 ? color.aqua :
period == 100 ? color.orange :
period == 200 ? color.purple :
period == 400 ? color.lime :
period == 600 ? color.yellow :
period == 800 ? color.orange :
color.black
c
`);
periods.forEach(e => generate(e))
```
QuartersAn utility tool that highlights the financial calendar quarters and marks the beginning of each period with label.
Weekly Chart:
As always, you can support the author with donations via PayPal or crypto. I will be much appreciated and thankful for that.
A list of addresses is here bit.ly
SeasonalityA multitool to find seasonal effects and components in your time series. Seasonality is one of most frequently used statistical patterns to improve the accuracy of demand forecasts.
To learn more about seasonality see:
en.wikipedia.org
www.investopedia.com
Features
Ability to see up to 16 period lines
33 metric types
Metrics customization
17 types of the price sources
31 types of the moving averages
Readable and optimized code
How to get access
Buy for 899$ (One-time payment, Source Code Transfer, Sole ownership)
Buy for 349$ (One-time payment, Full-time access, Multi ownership)
Make the symbolic monthly donations to support my open source work (Donate-per-use, Part-time access, Multi ownership)
Free 7-day trial access
Supported Metrics
Price
Average Price
Price Momentum
Price ROC
True Range (by J. Welles Wilder)
Average True Range (by J. Welles Wilder)
Double True Range (by Cynthia Kase)
Average Double True Range
Accumulation/Distribution (by Marc Chaikin)
Volume
Average Volume
Volume Momentum
Volume ROC
Net Volume
On Balance Volume (by Joe Granville)
Trade Value
Tick Volume
Tick Range
Max Tick Movement
Min Tick Movement
Correlation
ADX (by J. Welles Wilder)
Coppock Curve (by Edwin S. Coppock)
Elder Force Index (by Dr. Alexander Elder)
Ease Of Movement (by Richard W. Arms)
Mass Index (by Donald Dorsey)
Price Volume Trend
TRIX (by Jack K. Hutson)
Ulcer Index (by Peter Martin and Byron McCann)
VHF, Vertical Horizontal Filter (by Adam White)
Swing Index (by J. Welles Wilder)
Accumulative Swing Index (by J. Welles Wilder)
Standard Deviation
Supported Price Sources
open
high
low
close
oo2 ( (open + previous open) / 2 )
oh2 ( (open + high) / 2 )
ol2 ( (open + low) / 2 )
oc2 ( (open + close) / 2 )
hh2 ( (high + previous high) / 2 )
hl2
hc2 ( (high + close) / 2 )
ll2 ( (low + previous low) / 2 )
lc2 ( (low + close) / 2 )
cc2 ( (close + previous close) / 2 )
hlc3
ohlc4
wc (weighted close, (2 * close + high + low) / 4 )
Supported Moving Averages
AHMA, Ahrens MA (by Richard D. Ahrens)
ALF, Adaptive Laguerre Filter (by John F. Ehlers)
DEMA, Double Exponential MA (by Patrick G. Mulloy)
EMA, Exponential MA
EVWMA, Elastic Volume Weighted MA (by Christian P. Fries)
FRAMA, Fractal Adaptive MA (by John F. Ehlers)
HMA, Hull MA (by Alan Hull)
IIRF, Infinite Impulse Response Filter (by John F. Ehlers)
LSMA, Least Squares MA
LWMA, Linear Weighted MA
Median
RMA, Running MA (by J. Welles Wilder)
RMF, Recursive Median Filter (by John F. Ehlers)
RMTA, Recursive Moving Trend Average (by Dennis Meyers)
SMA, Simple MA
SHMMA, Sharp Modified MA (by Joe Sharp)
SMMA, Smoothed MA
TEMA, Triple Exponential MA (by Patrick G. Mulloy)
TMA, Triangular MA (Modified by John F. Ehlers)
VIDYA, Variable Index Dynamic Average (by Tushar S. Chande)
VWMA, Volume Weighted MA
WMA, Weighted MA
ZLEMA, Zero Lag Exponential MA (by John F. Ehlers and Ric Way)
2-Pole BF, 2-Pole Butterworth Filter (by John F. Ehlers)
3-Pole BF, 2-Pole Butterworth Filter (by John F. Ehlers)
2-Pole SSF, 2-Pole Super Smoother Filter (by John F. Ehlers)
3-Pole SSF, 2-Pole Super Smoother Filter (by John F. Ehlers)
1-Pole GF, 1-Pole Gaussian Filter (by John F. Ehlers)
2-Pole GF, 2-Pole Gaussian Filter (by John F. Ehlers)
3-Pole GF, 3-Pole Gaussian Filter (by John F. Ehlers)
4-Pole GF, 4-Pole Gaussian Filter (by John F. Ehlers)
Impulses-1Lines "Total Up Impulses" and "Total Down Impulses" are the sum of impulses in the last n periods (Length).
line 1 => "Total Up Impulses": the sum of up impulses.
line 2 => "Total Down Impulses": the sum of down impulses.
When line 1 crosses up line 2, it indicates an uptrend is comming out.
When line 1 crosses down line 2, it indicates a downtrend is comming out.