Relative Bandwidth FilterThis is a very simple script which can be used as measure to define your trading zones based on volatility.
Concept
This script tries to identify the area of low and high volatility based on comparison between Bandwidth of higher length and ATR of lower length.
Relative Bandwidth = Bandwidth / ATR
Bandwidth can be based on either Bollinger Band, Keltner Channel or Donchian Channel. Length of the bandwidth need to be ideally higher.
ATR is calculated using built in ATR method and ATR length need to be ideally lower than that used for calculating Bandwidth.
Once we got Relative Bandwidth, the next step is to apply Bollinger Band on this to measure how relatively high/low this value is.
Overall - If relative bandwidth is higher, then volatility is comparatively low. If relative bandwidth is lower, then volatility is comparatively high.
Usage
This can be used with your own strategy to filter out your non-trading zones based on volatility. Script plots a variable called "Signal" - which is not shown on chart pane. But, it is available in the data window. This can be used in another script as external input and apply logic.
Signal values can be
1 : Allow only Long
-1 : Allow only short
0 : Do not allow any trades
2 : Allow both Long and Short
Cari dalam skrip untuk "如何用wind搜索股票的发行价和份数"
[blackcat] L1 Vitali Apirine HHs & LLs StochasticsLevel 1
Background
This indicator was originally formulated by Vitali Apirine for TASC - February 2016 Traders Tips.
Function
According to Vitali Apirine, his momentum indicator–based system HHLLS (higher high lower low stochastic) can help to spot emerging trends, define correction periods, and anticipate reversals. As with many indicators, HHLLS signals can also be generated by looking for divergences and crossovers. Because the HHLLS is an oscillator, it can also be used to identify overbought & oversold levels.
Remarks
I changed EMA or SMA into hanning windowing function to reduce lag issue.
colorful area is bearish power.
colorful solid thick line is bull power.
Feedbacks are appreciated.
Chart VWAP█ OVERVIEW
This indicator displays a Volume-Weighted Average Price anchored to the leftmost visible bar of the chart. It dynamically recalculates when the chart's visible bars change because you scroll or zoom your chart.
If you are not already familiar with VWAP, our Help Center will get you started. The typical VWAP is designed to be used on intraday charts, as it resets at the beginning of the day. Our Rolling VWAP , instead, resets on a rolling time window. You may also find the VWAP Auto Anchored built-in indicator worth a try.
█ HOW TO USE IT
Load the indicator on an active chart (see the Help Center if you don't know how). By default, it displays the chart's VWAP in orange and a simple average of the chart's visible close values in gray. This average can be used as a companion to the VWAP, since both are calculated from the same set of bars. The script's settings allow you to hide it.
You may also use the script's settings to enable the display of the chart's OHLC (open, high, low, close) levels and the values of the high and low. These are also calculated from the range of visible bars. You can complement the high and low lines with their price and their distance in percent from the chart's latest visible close . You can use the levels to quickly identify the distances from extreme points in the visible price range, as well as observe the visible chart's beginning and end prices.
█ NOTES FOR Pine Script™ CODERS
This script showcases three novelties:
• Dynamic recalculation on visible bars
• The VisibleChart library by PineCoders
• The new `anchor` parameter of ta.vwap()
Dynamic recalculation on visible bars
This script behaves in a novel way made possible by the recent introduction of two new built-in variables: chart.left_visible_bar_time and chart.right_visible_bar_time , which return the opening time of the leftmost and rightmost visible bars on the chart. These are only two of many new built-ins in the `chart.*` namespace. See this blog post for more information, or look up them up by typing "chart." in the Pine Script™ Reference Manual .
Any script using chart.left_visible_bar_time or chart.right_visible_bar_time acquires a unique property, which triggers its recalculation when traders scroll or zoom their chart, causing the range of visible bars to change. This new capability is what makes it possible for this script to calculate its VWAP on the chart's visible bars only, and dynamically recalculate if the user scrolls or zooms their chart.
This script is just a start to the party; endless uses for indicators that redraw on changes to the chart will no doubt emerge through the hands of our community's Pine Script™ programmers.
The VisibleChart library by PineCoders
The newly published VisibleChart library is designed to help programmers benefit from the new capabilities made possible by the fact that Pine Script™ code can now tell when it is executing on visible bars. The library's description, functions and example code will help programmers make the most of the new feature.
This script uses three of the library's functions:
• `PCvc.vVwap()` calculates a VWAP for visible bars.
• `PCvc.avg()` calculates the average of a source value for visible bars only. We use it to calculate the average close (the default source).
• `PCvc.chartXTimePct(25)` calculates a time value corresponding to 25% of the horizontal distance between visible bars, starting from the left.
The new `anchor` parameter of ta.vwap()
Our script also uses this new `anchor` parameter to reset the VWAP at the leftmost visible bar. See how simple the code is for the VisibleChart library's `vVwap()` function.
Look first. Then leap.
Buying Selling Volume v3Bug fixed from v2. Currently adds up values correctly.
Note: To get more accurate readings reduce the time frame. For some reason it isn't counting the last bar and I am not smart enough to figure out why.
Builds on Ceyhun's "Buying Selling Volume" indicator. This version allows users to define periods by effortlessly dragging two points or you may define periods by manually entering the start and end times in the settings window. Once the period is defined, both buying and selling volume will be totaled thus displaying the amount of buys and sells in that period.
I have found the information provided from the script helps in defining a period of consolidation as either being accumulative or distributive.
Follow The Ranging Hull - studyFollow the Ranging hull - Study is a scalping indicator based off momentum and trend
It indicates the current momentum, and shows the momentum and true strength of a higher timeframe through a status window.
Credits:
Hull Suite by InSilico www.tradingview.com
Range Filter Buy and Sell 5 min www.tradingview.com
Follow Line Indicator by Dreadblitz www.tradingview.com
TSI by Everget www.tradingview.com
Volume Bull & BearHello Trader,
thanks to the new request.security_lower_tf()-function we are able to calculate intrabar volume. So here is my approach.
Please be aware, that the selected resolution should always be smaller than the selected chart timeframe.
You can find the exact values for bullish and bearish volume in the data window.
Hope it helps some of you :)
Buying Selling Volume v2Builds on Ceyhun's "Buying Selling Volume" indicator. This version allows users to define periods by effortlessly dragging two points or you may define periods by manually entering the start and end times in the settings window. Once the period is defined, both buying and selling volume will be totaled thus displaying the amount of buys and sells in that period.
I have found the information provided from the script helps in defining a period of consolidation as either being accumulative or distributive.
No Climactic BarsThis script can be used to detect large candles, similiar to ATR, using the variance of a sliding windows and certain threshold.
NVT Ratio: OnchainNVT Ratio
Defined as the ratio of market capitalization divided by transacted volume (in USD).
Network Value to Transactions Ratio (NVT Ratio) is defined as the ratio of market capitalization divided by transacted volume in the specified window.
History
NVT first made an appearance as a tweet on Woo Bull account in Feb 2017. In that tweet he promised an explanatory article which came much later in Oct 2017, first debuting on Forbes.
In Feb 2018, Dimitry Kalichkin published his work to improve NVT for use as a more responsive indicator, hence Kalichkin NVT Signal. In the same month, Woo Bull applied some trader techniques to NVT Signal and published an article summarising how to use it within a trading environment.
Interpretation:
NVT Ratio (Network Value to Transactions Ratio) is similar to the PE Ratio used in equity markets.
this indicator measures whether the blockchain network is overvalued or not.
When Bitcoin`s NVT is high, it indicates that its network valuation is outstripping the value being transmitted on its payment network, this can happen when the network is in high growth and investors are valuing it as a high return investment, or alternatively when the price is in an unsustainable bubble.
High: Overvalued Network worth - Bearish
Marketcap is too much valued compared to the low ability to transact coins in terms of volume
Low : Undervalued Network worth - Bullish
Marketcap is undervalued compared to the high ability to transact coins in terms of volume
ScalpiusTrendCrypto trader and trading system developer Scott Phillips recently introduced a crypto trading system that specifies a set of rules for determining whether the crypto is in a trend. While the rules are not overly complex, they are complex enough that manual trend determination is somewhat laborious and prone to error. The ScalpiusTrend script is designed to automate this process. It operates is briefly summarized as follows:
1. It looks for a bar that breaks the Bollinger Band. That starts a pending trend.
2. When we find another bar with a higher high and higher close (uptrend) or lower low and lower close (downtrend), then the trend is confirmed.
3. The trend ends when the price touches the opposite Bollinger Band, or goes 20 bars without making a new low and new close.
The indicator is shown as a histogram plot below the main chart window. By default, the short black pending trend bars are off, but you can enable the Pending Bars checkbox in the indicator Settings menu to turn them on.
BTC NVM Ratio - Onchain AnalysisIt is an onchain oscillator and is designed to operate at weekly timeframes and is only for Bitcoin.
Network Value to Metcalfe Ratio (NVM Ratio) is defined as the ratio of the log of market capitalization divided by the log of the square of daily active addresses in the specified window.
This oscillator evaluates bitcoin price according to the Metcalfe Ratio to shows whether the current value of Bitcoin is higher or lower than the real price
I made this comparison using a moving average of 100. The areas that are red in the weekly timeframe indicate that bitcoin is Overvalued. and The areas that are blue in the weekly timeframe indicate that bitcoin is undervalued.
Position Sizing CalculatorThis is an intuitive risk management tool with a minimalist design.
This calculator will determine your position size per trade, profit, loss, risk/reward ratio and leverage if any.
It will calculate your leverage if you are trading financial instruments e.g. Mini Futures , Turbo Warrants etc. that have a financing level.
Tip: Use this as a complement to the Long/Short Position tool.
Provide the following inputs to get a calculation:
- Position type
- Account balance
- Risk per trade percentage
- Financing level (if any for leveraged instruments), else let it be 0
- Entry price
- Target price
- Stopp loss price
You can also choose the color of the output text, its background and position in the chart window.
Enjoy!
NormalizedOscillatorsLibrary "NormalizedOscillators"
Collection of some common Oscillators. All are zero-mean and normalized to fit in the -1..1 range. Some are modified, so that the internal smoothing function could be configurable (for example, to enable Hann Windowing, that John F. Ehlers uses frequently). Some are modified for other reasons (see comments in the code), but never without a reason. This collection is neither encyclopaedic, nor reference, however I try to find the most correct implementation. Suggestions are welcome.
rsi2(upper, lower) RSI - second step
Parameters:
upper : Upwards momentum
lower : Downwards momentum
Returns: Oscillator value
Modified by Ehlers from Wilder's implementation to have a zero mean (oscillator from -1 to +1)
Originally: 100.0 - (100.0 / (1.0 + upper / lower))
Ignoring the 100 scale factor, we get: upper / (upper + lower)
Multiplying by two and subtracting 1, we get: (2 * upper) / (upper + lower) - 1 = (upper - lower) / (upper + lower)
rms(src, len) Root mean square (RMS)
Parameters:
src : Source series
len : Lookback period
Based on by John F. Ehlers implementation
ift(src) Inverse Fisher Transform
Parameters:
src : Source series
Returns: Normalized series
Based on by John F. Ehlers implementation
The input values have been multiplied by 2 (was "2*src", now "4*src") to force expansion - not compression
The inputs may be further modified, if needed
stoch(src, len) Stochastic
Parameters:
src : Source series
len : Lookback period
Returns: Oscillator series
ssstoch(src, len) Super Smooth Stochastic (part of MESA Stochastic) by John F. Ehlers
Parameters:
src : Source series
len : Lookback period
Returns: Oscillator series
Introduced in the January 2014 issue of Stocks and Commodities
This is not an implementation of MESA Stochastic, as it is based on Highpass filter not present in the function (but you can construct it)
This implementation is scaled by 0.95, so that Super Smoother does not exceed 1/-1
I do not know, if this the right way to fix this issue, but it works for now
netKendall(src, len) Noise Elimination Technology by John F. Ehlers
Parameters:
src : Source series
len : Lookback period
Returns: Oscillator series
Introduced in the December 2020 issue of Stocks and Commodities
Uses simplified Kendall correlation algorithm
Implementation by @QuantTherapy:
rsi(src, len, smooth) RSI
Parameters:
src : Source series
len : Lookback period
smooth : Internal smoothing algorithm
Returns: Oscillator series
vrsi(src, len, smooth) Volume-scaled RSI
Parameters:
src : Source series
len : Lookback period
smooth : Internal smoothing algorithm
Returns: Oscillator series
This is my own version of RSI. It scales price movements by the proportion of RMS of volume
mrsi(src, len, smooth) Momentum RSI
Parameters:
src : Source series
len : Lookback period
smooth : Internal smoothing algorithm
Returns: Oscillator series
Inspired by RocketRSI by John F. Ehlers (Stocks and Commodities, May 2018)
rrsi(src, len, smooth) Rocket RSI
Parameters:
src : Source series
len : Lookback period
smooth : Internal smoothing algorithm
Returns: Oscillator series
Inspired by RocketRSI by John F. Ehlers (Stocks and Commodities, May 2018)
Does not include Fisher Transform of the original implementation, as the output must be normalized
Does not include momentum smoothing length configuration, so always assumes half the lookback length
mfi(src, len, smooth) Money Flow Index
Parameters:
src : Source series
len : Lookback period
smooth : Internal smoothing algorithm
Returns: Oscillator series
lrsi(src, in_gamma, len) Laguerre RSI by John F. Ehlers
Parameters:
src : Source series
in_gamma : Damping factor (default is -1 to generate from len)
len : Lookback period (alternatively, if gamma is not set)
Returns: Oscillator series
The original implementation is with gamma. As it is impossible to collect gamma in my system, where the only user input is length,
an alternative calculation is included, where gamma is set by dividing len by 30. Maybe different calculation would be better?
fe(len) Choppiness Index or Fractal Energy
Parameters:
len : Lookback period
Returns: Oscillator series
The Choppiness Index (CHOP) was created by E. W. Dreiss
This indicator is sometimes called Fractal Energy
er(src, len) Efficiency ratio
Parameters:
src : Source series
len : Lookback period
Returns: Oscillator series
Based on Kaufman Adaptive Moving Average calculation
This is the correct Efficiency ratio calculation, and most other implementations are wrong:
the number of bar differences is 1 less than the length, otherwise we are adding the change outside of the measured range!
For reference, see Stocks and Commodities June 1995
dmi(len, smooth) Directional Movement Index
Parameters:
len : Lookback period
smooth : Internal smoothing algorithm
Returns: Oscillator series
Based on the original Tradingview algorithm
Modified with inspiration from John F. Ehlers DMH (but not implementing the DMH algorithm!)
Only ADX is returned
Rescaled to fit -1 to +1
Unlike most oscillators, there is no src parameter as DMI works directly with high and low values
fdmi(len, smooth) Fast Directional Movement Index
Parameters:
len : Lookback period
smooth : Internal smoothing algorithm
Returns: Oscillator series
Same as DMI, but without secondary smoothing. Can be smoothed later. Instead, +DM and -DM smoothing can be configured
doOsc(type, src, len, smooth) Execute a particular Oscillator from the list
Parameters:
type : Oscillator type to use
src : Source series
len : Lookback period
smooth : Internal smoothing algorithm
Returns: Oscillator series
Chande Momentum Oscillator (CMO) is RSI without smoothing. No idea, why some authors use different calculations
LRSI with Fractal Energy is a combo oscillator that uses Fractal Energy to tune LRSI gamma, as seen here: www.prorealcode.com
doPostfilter(type, src, len) Execute a particular Oscillator Postfilter from the list
Parameters:
type : Oscillator type to use
src : Source series
len : Lookback period
Returns: Oscillator series
Vertical LinesThis script plots vertical lines on charts or indicators. Unfortunately pinescript is lacking a vertical line plotting function. Vertical lines are useful to mark events, such as crossover of levels, indicators signals or as a time marker.
After searching the internet for a long time and trying different scripts, this script is the simplest and visually the best. You would think that plotting a vertical line would be relatively easy, it is not! I thank the unknow author for sharing this solution and now I will share it on tradingview to make it readily available to anybody that needs it.
RSI crossover signals are used as an example in this script. When the RSI crosses over 70 or below 30, the script plots a red or green vertical line.
The script plots a vertical line as a histogram bar. The histogram bar must have a height.
Setting the height near infinity like 1e20 will cover all the ranges from top to bottom in most charts, but doesn't work all the time. If the chart range is small in values, the line is not plotted or the chart is visually compressed because the top of the bar is also a data point in the chart. Another solution is to find the highest point in the chart and multiply it by a number from 2 to 10 to set the top of the histogram bar. But this solution doesn't work if the line is drawn in the indicator window. additionally if the chart or indicator includes negative values, a histogram bar with a negative height must be concatenated to the histogram bar with a positive height to cover the positive and negative range.
It would seem intuitive to include a vertical plot function since it is very useful and pinescript already has a horizontal line plot function called Hline. But pinescript is becoming less intuitive, and redundant. A case in point is Version 4 variable declaration and naming, it less intuitive and more redundant than previous versions. I beg Tradingview to adopt a more refined scripting language such as Matlab or Python for charting purposes. These languages can be easily ported to other analysis programs for AI or statistical analysis.
K's Volatility BandsVolatility bands come in all shapes and forms contrary to what is believed. Bollinger bands remain the principal indicator in the volatility bands family. K's Volatility bands is an attempt at optimizing the original bands. Below is the method of calculation:
* We must first start by calculating a rolling measure based on the average between the highest high and the lowest low in the last specified lookback window. This will give us a type of moving average that tracks the market price. The specificity here is that when the market does not make higher highs nor lower lows, the line will be flat. A flat line can also be thought of as a magnet of the price as the ranging property could hint to a further sideways movement.
* The K’s volatility bands assume the worst with volatility and thus will take the maximum volatility for a given lookback period. Unlike the Bollinger bands which will take the latest volatility calculation every single step of time, K’s volatility bands will suppose that we must be protected by the maximum of volatility for that period which will give us from time to time stable support and resistance levels.
Therefore, the difference between the Bollinger bands and K's volatility bands are as follows:
* Bollinger Bands' formula calculates a simple moving average on the closing prices while K's volatility bands' formula calculates the average of the highest highs and the lowest lows.
* Bollinger Bands' formula calculates a simple standard deviation on the closing prices while K's volatility bands' formula calculates the highest standard deviation for the lookback period.
Applying the bands is similar to applying any other volatility bands. We can list the typical strategies below:
* The range play strategy : This is the usual reversal strategy where we buy whenever the price hits the lower band and sell short whenever it hits the upper band.
* The band re-entry strategy : This strategy awaits the confirmation that the price has recognized the band and has shaped a reaction around it and has reintegrated the whole envelope. It may be slightly lagging in nature but it may filter out bad trades.
* Following the trend strategy : This is a controversial strategy that is the opposite of the first one. It assumes that whenever the upper band is surpassed, a buy signal is generated and whenever the lower band is broken, a sell signal is generated.
* Combination with other indicators : The bands can be combined with other technical indicators such as the RSI in order to have more confirmation. This is however no guarantee that the signals will improve in quality.
* Specific strategy on K’s volatility bands : This one is similar to the first range play strategy but it adds the extra filter where the trade has a higher conviction if the median line is flat. The reason for this is that a flat line means that no higher highs nor lower lows have been made and therefore, we may be in a sideways market which is a fertile ground for mean-reversion strategies.
Daily Settlement (BM&FBOVESPA B3 FUTURES)This script is simple designed to plot the daily settlement to any Securities traded on B3, Brazilian stock exchange.
The daily settlement is an important price where position traders are adjusted every day. This adjustment is defined by the exchange itself every day at approximately 4 pm, with an average of all trades in this window.
We consider that the settlement is a region of "money spent", where every day, some player "woke up" in long or in short at that price. As this is a region of "money spent", traders should give significant attention when traded at this price.
Directional Movement w/Hann Slope Change SignalModified version of
Presented here is code for the "Directional Movement w/Hann" indicator originally conceived by John Ehlers. The code is also published in the December 2021 issue of Trader's Tips by Technical Analysis of Stocks & Commodities (TASC) magazine.
John Ehlers is continuing to revamp old indictors with Hann windowing. The original script uses zero line cross to signal buy/sell in this modified version buy/sell is signaled based on slope change, where signal is generated on with previous value is greater/less than current value
If current > previous = buy and if current < previous = sell
Relative StrengthRelative Strength show the quotient (ratio) between a numerator (Your Security) and a common denominator (SPX, BTC, ...).
I inspired myself from already established indicators. But I've made my own because I had some issues with others.
Sometimes the moving average weren't fixed but where floating through the window.
Sometimes the colors (Up, Down) were inaccurate because the compiler didn't notice infinitesimal changes (0.0001 > 0.0002)
Thanks.
(The Relative Strength indicator is at the top of the chart.)
Higher Time Frame Chart OverlayHello All,
This script gets OHLC values from any security and Higher/Same time frame you set, then creates the chart including last 10 candles. it shows Symbol name, Time Frame, Highest/Lowest level of last 10 candles and Close Price at the right side of the chart as well. Closing price text color changes by the real-time candle of the related symbol and time frame. The all this was made using the Tables in Pine and the chart location doesn't change even if you change the size of main chart window.
Almost everything can be change as you want. You can change/set:
- Colors of Body and Top/Bottom Wicks separately
- The Height of each Cell
- The Width of Body and Wicks
- The Background and Frame color
- Enable/disable Status Panel (if you disable Status Panel then only candle chart is shown)
- Location of Status Panel
- Text color and Text size
- The Background color of Status Panel
Some examples:
The info shown in Status Panel:
You can change The Height of each Cell and The Width of Body and Wicks
You can change colors:
You can change location of the chart:
If you add the script more than once then you can see the charts for different symbols and time frames: (This may slow down your chart)
If you right-click on the script and choose "Visual Order" => "Bring to front" then it will be better visually:
P.S. Using this script may slow down your chart, especially if you add it more than once
Enjoy!
MAD indicator Enchanced (MADH, inspired by J.Ehlers)This oscillator was inspired by the recent J. Ehler's article (Stocks & Commodities V. 39:11 (24–26): The MAD Indicator, Enhanced by John F. Ehlers). Basically, it shows the difference between two move averages, an "enhancement" made by the author in the last version comes down to replacement SMA to a weighted average that uses Hann windowing. I took the liberty to add colors, ROC line (well, you know, no shorts when ROC's negative and no long's when positive, etc), and optional usage of PVT (price-volume trend) as the source (instead of just price).
Volume X-ray [LucF]█ OVERVIEW
This tool analyzes the relative size of volume reported on intraday vs EOD (end of day) data feeds on historical bars. If you use volume data to make trading decisions, it can help you improve your understanding of its nature and quality, which is especially important if you trade on intraday timeframes.
I often mention, when discussing volume analysis, how it's important for traders to understand the volume data they are using: where it originates, what it includes and does not include. By helping you spot sizeable differences between volume reported on intraday and EOD data feeds for any given instrument, "Volume X-ray" can point you to instruments where you might want to research the causes of the difference.
█ CONCEPTS
The information used to build a chart's historical bars originates from data providers (exchanges, brokers, etc.) who often maintain distinct historical feeds for intraday and EOD timeframes. How volume data is assembled for intraday and EOD feeds varies with instruments, brokers and exchanges. Variations between the two feeds — or their absence — can be due to how instruments are traded in a particular sector and/or the volume reporting policy for the feeds you are using. Instruments from crypto and forex markets, for example, will often display similar volume on both feeds. Stocks will often display variations because block trades or other types of trades may not be included in their intraday volume data. Futures will also typically display variations. It is even possible that volume from different feeds may not be of the same nature, as you can get trade volume (market volume) on one feed and tick volume (transaction counts) on another. You will sometimes be able to find the details of what different feeds contain from the technical information provided by exchanges/brokers on their feeds. This is an example for the NASDAQ feeds . Once you determine which feeds you are using, you can look for the reporting specs for that feed. This is all research you will need to do on your own; "Volume X-ray" will not help you with that part.
You may elect to forego the deep dive in feed information and simply rely on the figure the indicator will calculate for the instruments you trade. One simple — and unproven — way to interpret "Volume X-ray" values is to infer that instruments with larger percentages of intraday/EOD volume ratios are more "democratic" because at intraday timeframes, you are seeing a greater proportion of the actual traded volume for the instrument. This could conceivably lead one to conclude that such volume data is more reliable than on an instrument where intraday volume accounts for only 3% of EOD volume, let's say.
Note that as intraday vs EOD variations exist for historical bars on some instruments, there will typically also be differences between the realtime feeds used on intraday vs 1D or greater timeframes for those same assets. Realtime reporting rules will often be different from historical feed reporting rules, so variations between realtime feeds will often be different from the variations between historical feeds for the same instrument. A deep dive in reporting rules will quickly reveal what a jungle they are for some instruments, yet it is the only way to really understand the volume information our charts display.
█ HOW TO USE IT
The script is very simple and has no inputs. Just add it to 1D charts and it will calculate the proportion of volume reported on the intraday feed over the EOD volume. The plots show the daily values for both volumes: the teal area is the EOD volume, the orange line is the intraday volume. A value representing the average, cumulative intraday/EOD volume percentage for the chart is displayed in the upper-right corner. Its background color changes with the percentage, with brightness levels proportional to the percentage for both the bull color (% >= 50) or the bear color (% < 50). When abnormal conditions are detected, such as missing volume of one kind or the other, a yellow background is used.
Daily and cumulative values are displayed in indicator values and the Data Window.
The indicator loads in a pane, but you can also use it in overlay mode by moving it on the chart with "Move to" in the script's "More" menu, and disabling the plot display from the "Settings/Style" tab.
█ LIMITATIONS
• The script will not run on timeframes >1D because it cannot produce useful values on them.
• The calculation of the cumulative average will vary on different intraday timeframes because of the varying number of days covered by the dataset.
Variations can also occur because of irregularities in reported volume data. That is the reason I recommend using it on 1D charts.
• The script only calculates on historical bars because in real time there is no distinction between intraday and EOD feeds.
• You will see plenty of special cases if you use the indicator on a variety of instruments:
• Some instruments have no intraday volume, while on others it's the opposite.
• Missing information will sometimes appear here and there on datasets.
• Some instruments have higher intraday than EOD volume.
Please do not ask me the reasons for these anomalies; it's your responsibility to find them. I supply a tool that will spot the anomalies for you — nothing more.
█ FOR PINE CODERS
• This script uses a little-known feature of request.security() , which allows us to specify `"1440"` for the `timeframe` argument.
When you do, data from the 1min intrabars of the historical intraday feed is aggregated over one day, as opposed to the usual EOD feed used with `"D"`.
• I use gaps on my request.security() calls. This is useful because at intraday timeframes I can cumulate non- na values only.
• I use fixnan() on some values. For those who don't know about it yet, it eliminates na values from a series, just like not using gaps will do in a request.security() call.
• I like how the new switch structure makes for more readable code than equivalent if structures.
• I wrote my script using the revised recommendations in the Style Guide from the Pine v5 User Manual.
• I use the new runtime.error() to throw an error when the script user tries to use a timeframe >1D.
Why? Because then, my request.security() calls would be returning values from the last 1D intrabar of the dilation of the, let's say, 1W chart bar.
This of course would be of no use whatsoever — and misleading. I encourage all Pine coders fetching HTF data to protect their script users in the same way.
As tool builders, it is our responsibility to shield unsuspecting users of our scripts from contexts where our calcs produce invalid results.
• While we're on the subject of accessing intrabar timeframes, I will add this to the intention of coders falling victim to what appears to be
a new misconception where the mere fact of using intrabar timeframes with request.security() is believed to provide some sort of edge.
This is a fallacy unless you are sending down functions specifically designed to mine values from request.security() 's intrabar context.
These coders do not seem to realize that:
• They are only retrieving information from the last intrabar of the chart bar.
• The already flawed behavior of their scripts on historical bars will not improve on realtime bars. It will actually worsen because in real time,
intrabars are not yet ordered sequentially as they are on historical bars.
• Alerts or strategy orders using intrabar information acquired through request.security() will be using flawed logic and data most of the time.
The situation reminds me of the mania where using Heikin-Ashi charts to backtest was all the rage because it produced magnificent — and flawed — results.
Trading is difficult enough when doing the right things; I hate to see traders infected by lethal beliefs.
Strive to sharpen your "herd immunity", as Lionel Shriver calls it. She also writes: "Be leery of orthodoxy. Hold back from shared cultural enthusiasms."
Be your own trader.
█ THANKS
This indicator would not exist without the invaluable insights from Tim, a member of the Pine team. Thanks Tim!
EXAMPLES:enhanced_taThis script is created to demonstrate usage of enhanced ta library which is present here :
Following custom indicators are populated in this script:
ma (Select moving average)
atr/atrpercent (With custom moving average)
bands - Bollinger Band, Keltner Channel, Donchian Channel (All with enhanced versions and additional options)
bandwidth - Bandwidth for the bands available. Uses same input as that of bands
bandpercent - Percentage in relation to band upper and lower levels. Uses same input as that of bands.
oscillator (oscillatorRange) - Generating custom overbought oversold regions.
Display Options
Display individual indicator by selecting them through dropdown. If you select all, we also look at overlay and non-overlay parameters to show/hide only those indicators which are applicable on candle overlay or as separate window.
Bitcoin - CME Futures Friday Close
This indicator displays the weekly Friday closing price according to the CME trading hours (Friday 4pm CT).
A horizontal line is displayed until the CME opens again on Sunday 5pm CT.
This indicator is based on the thesis, that during the weekend the Bitcoin price tends to mean reverse to the CME closing price of the prior Friday. The level can also act as support/resistance. This indicator gives a visualization of this key level for the relevant time window.
Furthermore the indicator helps to easily identify, if there is an up or down gap in the CME Bitcoin contract.