Kaufman Efficiency Ratio-Based Risk PercentageOVERVIEW
The Kaufman Efficiency Ratio-Based Exposure Management indicator uses the Kaufman Efficiency Ratio (KER) to calculate how much you should risk per trade.
If KER is high, then the indicator will tell you to risk more per trade.
A high KER value indicates a trending market, so if you are a trend trader, it makes sense to risk more during these times.
If KER is low, then the indicator will tell you to risk less per trade.
A low KER value indicates a trending market, so if you are a trend trader, it makes sense to risk less during these times.
CONCEPTS
The Kaufman Efficiency Ratio (also known as the Efficiency Ratio, KER, or ER) is a separate indicator developed by Perry J. Kaufman and first published in Kaufman's book, "New Trading Systems and Methods" in 1987.
The KER used to measure the efficiency of a financial instrument's price movement. It is calculated as follows:
KER = (change in price over x bars) / (sum of absolute price changes over x bars)
The first part of the formula, "change in price over x bars" measures the difference between the current close price and the close price x bars ago. The second part of the formula "sum of absolute price changes over x bars" measures the sum of the |open-close| range of each bar between now and x bars ago.
If there is a high change in price over x bars relative to the sum of absolute price changes over x bars, a trending/volatile market is likely in place.
If there is a low change in price over x bars relative to the sum of absolute price changes over x bars, a ranging/choppy market is likely in place.
If you are a trend trader, you can assume that entries taken during high KER periods are more likely to lead to a trend. This indicator helps capitalize on that assumption by increasing risk % per trade during high KER periods, and decreasing risk % per trade during low KER periods.
It uses the following formulas to calculate a KER-adjusted risk % per trade:
Linearly-increasing risk % = min risk + (KER * (max risk - min risk))
Exponentially-increasing risk % = min risk + ((KER^n) * (max risk - min risk))
min risk = the smallest amount you'd be willing to risk on a trade
max risk = the largest amount you'd be willing to risk on a trade
KER = the current Kaufman Efficiency Ratio value
n = an exponent factor used to control the rate of increase of the risk %
Here is an example of how these formulas work:
Assuming that min risk is 0.5%, max risk is 2%, and KER is 0.8 (indicating a trending market), we can calculate the following risk per trade amounts:
Linearly-increasing risk % = 0.5 + (0.8 * (2 - 0.5)) = 1.7%
Exponentially-increasing risk % = 0.5 + ((0.8^3) * (2 - 0.5)) = 1.27%
Now, lets do the same calculations with a lower KER of 0.2 , which indicates a choppy market:
Linearly-increasing risk % = 0.5 + (0.2 * (2 - 0.5)) = 0.8%
Exponentially-increasing risk % = 0.5 + ((0.2^3) * (2 - 0.5)) = 0.51%
With a high KER, we risk more per trade to capitalize on the higher chance of a trending market. With a lower KER, we risk less per trade to protect ourselves from the higher chance of a choppy market.
Cerca negli script per "bar"
MACDh with divergences & impulse system (overlayed on prices)-----------------------------------------------------------------
General Description:
This indicator ( the one on the top panel above ) consists on some lines, arrows and labels drawn over the price bars/candles indicating the detection of regular divergences between price and the classic MACD histogram (shown on the low panel). This script is special because it can be adjusted to fit several criteria when trading divergences filtering them according to the "height" and "width" of the patterns. The script also includes the "extra features" Impulse System and Keltner Channels, which you will hardly find anywhere else in similar classic MACD histogram divergence indicators.
The indicator helps to find trend reversals, and it works on any market, any instrument, any timeframe, and any market condition (except against really strong trends that do not show any other sign of reversion yet).
Please take on consideration that divergences should be taken with caution.
-----------------------------------------------------------------
Definition of classic Bullish and Bearish divergences:
* Bearish divergences occur in uptrends identifying market tops. A classical or regular bearish divergence occurs when prices reach a new high and then pull back, with an oscillator (MACD histogram in this case) dropping below its zero line. Prices stabilize and rally to a higher high, but the oscillator reaches a lower peak than it did on a previous rally.
In the chart above (weekly charts of NKE, Nike, Inc.), in area X (around August 2021), NKE rallied to a new bull market high and MACD-Histogram rallied with it, rising above its previous peak and showing that bulls were extremely strong. In area Y, MACD-H fell below its centerline and at the same time prices punched below the zone between the two moving averages. In area Z, NKE rallied to a new bull market high, but the rally of MACD-H was feeble, reflecting the bulls’ weakness. Its downtick from peak Z completed a bearish divergence, giving a strong sell signal and auguring a nasty bear market.
* Bullish divergences , in the other hand, occur towards the ends of downtrends identifying market bottoms. A classical (also called regular) bullish divergence occurs when prices and an oscillator (MACD histogram in this case) both fall to a new low, rally, with the oscillator rising above its zero line, then both fall again. This time, prices drop to a lower low, but the oscillator traces a higher bottom than during its previous decline.
In the example in the chart above (weekly charts of NKE, Nike, Inc.), you see a bearish divergence that signaled the October 2022 bear market bottom, giving a strong buy signal right near the lows. In area A, NKE (weekly charts) appeared in a free fall. The record low A of MACD-H indicated that bears were extremely strong. In area B, MACD-H rallied above its centerline. Notice the brief rally of prices at that moment. In area C, NKE slid to a new bear market low, but MACD-H traced a much more shallow low. Its uptick completed a bullish divergence, giving a strong buy signal.
-----------------------------------------------------------------
Some cool features included in this indicator:
1. This indicator also includes the “ Impulse System ”. The Impulse System is based on two indicators, a 13-day exponential moving average and the MACD-Histogram, and identifies inflection points where a trend speeds up or slows down. The moving average identifies the trend, while the MACD-Histogram measures momentum. This unique indicator combination is color coded into the price bars for easy reference.
Calculation:
Green Price Bar: (13-period EMA > previous 13-period EMA) and
(MACD-Histogram > previous period's MACD-Histogram)
Red Price Bar: (13-period EMA < previous 13-period EMA) and
(MACD-Histogram < previous period's MACD-Histogram)
Price bars are colored blue when conditions for a Red Price Bar or Green Price Bar are not met. The MACD-Histogram is based on MACD(12,26,9).
The Impulse System works more like a censorship system. Green price bars show that the bulls are in control of both trend and momentum as both the 13-day EMA and MACD-Histogram are rising (you don't have permission to sell). A red price bar indicates that the bears have taken control because the 13-day EMA and MACD Histogram are falling (you don't have permission to buy). A blue price bar indicates mixed technical signals, with neither buying nor selling pressure predominating (either both buying or selling are permitted).
2. Another "extra feature" included here is the " Keltner Channels ". Keltner Channels are volatility-based envelopes set above and below an exponential moving average.
3. It were also included a couple of EMAs.
Everything can be removed from the chart any time.
-----------------------------------------------------------------
Options/adjustments for this indicator:
*Horizontal Distance (width) between two tops/bottoms criteria.
Refers to the horizontal distance between the MACH histogram peaks involved in the divergence
*Height of tops/bottoms criteria (for Histogram).
Refers to the difference/relation/vertical distance between the MACH HISTOGRAM peaks involved in the divergence: 1st Histogram Peak is X times the 2nd.
*Height/Vertical deviation of tops/bottoms criteria (for Price).
Deviation refers to the difference/relation/vertical distance between the PRICE peaks involved in the divergence.
*Plot Regular Bullish Divergences?.
*Plot Regular Bearish Divergences?.
*Delete Previous Cancelled Divergences?.
*Shows a pair of EMAs.
*Shows Keltner Channels (using ATR)
Keltner Channels are volatility-based envelopes set above and below an exponential moving average.
*This indicator also has the option to show the Impulse System over the price bars/candles.
MACDh with divergences & impulse system-----------------------------------------------------------------
General Description:
This indicator ( the one on the low panel ) is a classic MACD that also shows regular divergences between its histogram and the prices. This script is special because it can be adjusted to fit several criteria when trading divergences filtering them according to the "height" and "width" of the patterns. The script also includes the "extra feature" Impulse System, which you will hardly find anywhere else in similar classic MACD histogram divergence indicators.
The indicator helps to find trend reversals, and it works on any market, any instrument, any timeframe, and any market condition (except against really strong trends that do not show any other sign of reversion yet).
Please take on consideration that divergences should be taken with caution.
-----------------------------------------------------------------
Definition of classic Bullish and Bearish divergences:
* Bearish divergences occur in uptrends identifying market tops. A classical or regular bearish divergence occurs when prices reach a new high and then pull back, with an oscillator (MACD histogram in this case) dropping below its zero line. Prices stabilize and rally to a higher high, but the oscillator reaches a lower peak than it did on a previous rally.
In the chart above (weekly charts of NKE, Nike, Inc.), in area X (around August 2021), NKE rallied to a new bull market high and MACD-Histogram rallied with it, rising above its previous peak and showing that bulls were extremely strong. In area Y, MACD-H fell below its centerline and at the same time prices punched below the zone between the two moving averages. In area Z, NKE rallied to a new bull market high, but the rally of MACD-H was feeble, reflecting the bulls’ weakness. Its downtick from peak Z completed a bearish divergence, giving a strong sell signal and auguring a nasty bear market.
* Bullish divergences , in the other hand, occur towards the ends of downtrends identifying market bottoms. A classical (also called regular) bullish divergence occurs when prices and an oscillator (MACD histogram in this case) both fall to a new low, rally, with the oscillator rising above its zero line, then both fall again. This time, prices drop to a lower low, but the oscillator traces a higher bottom than during its previous decline.
In the example in the chart above (weekly charts of NKE, Nike, Inc.), you see a bearish divergence that signaled the October 2022 bear market bottom, giving a strong buy signal right near the lows. In area A, NKE (weekly charts) appeared in a free fall. The record low A of MACD-H indicated that bears were extremely strong. In area B, MACD-H rallied above its centerline. Notice the brief rally of prices at that moment. In area C, NKE slid to a new bear market low, but MACD-H traced a much more shallow low. Its uptick completed a bullish divergence, giving a strong buy signal.
-----------------------------------------------------------------
Extra feature: Impulse System
This indicator also includes the “ Impulse System ”. The Impulse System is based on two indicators, a 13-day exponential moving average and the MACD-Histogram, and identifies inflection points where a trend speeds up or slows down. The moving average identifies the trend, while the MACD-Histogram measures momentum. This unique indicator combination is color coded into the price bars or macd histogram bars for easy reference.
Calculation:
Green Price Bar: (13-period EMA > previous 13-period EMA) and
(MACD-Histogram > previous period's MACD-Histogram)
Red Price Bar: (13-period EMA < previous 13-period EMA) and
(MACD-Histogram < previous period's MACD-Histogram)
Histogram bars are colored blue when conditions for a Red Histogram Bar or Green Histogram Bar are not met. The MACD-Histogram is based on MACD(12,26,9).
The Impulse System works more like a censorship system. Green histogram bars show that the bulls are in control of both trend and momentum as both the 13-day EMA and MACD-Histogram are rising (you don't have permission to sell). A red histogram bar indicates that the bears have taken control because the 13-day EMA and MACD Histogram are falling (you don't have permission to buy). A blue histogram bar indicates mixed technical signals, with neither buying nor selling pressure predominating (either both buying or selling are permitted).
The impulse system can be removed from the chart any time.
-----------------------------------------------------------------
Options/adjustments for this indicator:
*Horizontal Distance (width) between two tops/bottoms criteria.
Refers to the horizontal distance between the MACH histogram peaks involved in the divergence
*Height of tops/bottoms criteria (for Histogram).
Refers to the difference/relation/vertical distance between the MACH HISTOGRAM peaks involved in the divergence: 1st Histogram Peak is X times the 2nd.
*Height/Vertical deviation of tops/bottoms criteria (for Price).
Deviation refers to the difference/relation/vertical distance between the PRICE peaks involved in the divergence.
*Plot Regular Bullish Divergences?.
*Plot Regular Bearish Divergences?.
*Delete Previous Cancelled Divergences?.
*This indicator also has the option to show the Impulse System over the MACD histogram bars
RSI Xray + VolumeRSI Analysis:
The indicator calculates the Relative Strength Index (RSI) using a user-defined length (default: 14).
It colors the bars based on RSI levels to identify potential overbought and oversold conditions.
Bars exceeding the overbought level (default: 70) are colored, while bars below the oversold level (default: 30) are colored too.
This helps traders identify potential trend reversals or market exhaustion points.
Midpoint Analysis:
The indicator calculates the midpoint of each bar, which is the average of the high and low prices.
It colors the bars based on their relation to the midpoint.
Bars above the midpoint are colored, indicating potential bullish momentum.
Bars below the midpoint are colored, suggesting potential bearish momentum.
Volume Analysis:
The indicator offers the ability to analyze volume changes and identify high volume bars.
It colors the bars when the volume exceeds a user-defined threshold.
This feature helps traders identify potential areas of market interest and increased participation.
Moving Average (SMA):
The indicator plots a Simple Moving Average (SMA) line of the closing price over a user-defined period (default: 9).
This moving average line helps traders identify potential trends and spot areas of support or resistance.
RSI Extreme Conditions:
The indicator identifies extreme RSI conditions by comparing the current RSI value with the highest and lowest RSI values calculated from a user-defined number of previous bars (default: 10).
When the RSI exceeds the overbought level but is lower than the highest RSI value within the specified range, the bar color changes to a customizable color (default: blue).
Conversely, when the RSI falls below the oversold level but is higher than the lowest RSI value within the specified range, the bar color changes to the same customizable color.
This feature helps traders identify potential RSI-based trading opportunities and market turning points.
Customization:
The indicator offers customizable settings for colors, RSI levels, SMA length, volume thresholds, RSI extreme levels, and RSI label color.
Traders can modify these settings based on their preferences and trading strategies.
Overall, the 'RSI Xray + Volume' indicator provides a comprehensive view of RSI levels, market momentum, volume changes, and RSI extreme conditions. Traders can use this information to identify potential trade setups, validate market trends, and make more informed trading decisions. It can be applied to various timeframes and instruments, making it a valuable tool for both short-term and long-term traders.
Sushi Trend [HG]🍣 The Sushi Roll, a trading concept conceived at a restaurant by Mark Fisher.
While the indicator itself goes by Sushi Trend, it is completely backed by the idea of Mark Fisher's Sushi Roll Reversal Pattern. No, it has nothing to do with raw fish, it just so happens that somebody was ordering sushi during the discussion of the idea, and that's how it got its name.
📝 Origin
First mentioned in his book, The Logical Trader --- the idea of the Sushi Roll is to serve as an early warning system to identify reversals in the market. Fisher defines the pattern as a series of 10 bars, split into two different sections, seen as 5 and 5. In order for the pattern to be emitted, the 5 bars to the right must completely engulf the 5 bars to the left. It's not a super complex system and is in fact extremely simple to grasp.
📈 Supertrend Similarities
Instead of displaying the pattern in the way Fisher meant for it to be portrayed (as seen in the photo above), I instead turned it into an indicator similar to that of Supertrend while also inheriting the same concepts from the pattern. I did this because the pattern itself has inconsistencies which can be quite noticeable when trading with it after a while. For example, these patterns can occur even during consolidating periods, and even though the pattern is meant to be recognized during trending markets, the engulfing bars can sometimes be left with indecisive directions.
➡️ The Result
Here is the result, visualized to be better in a trending format. (The indicator will not contain the boxes.)
While Fisher does mention the pattern to include 10 bars, you can actually use this pattern with any number of bars. At the end of the day, it's a concept derived from a discussion at a Japanese restaurant, and a pattern that has been around for years that has seen results. Due to this, I added an input option to control the series of bars for right-bar engulf detection.
To reassure the meaning of the pattern --> "A series of 10 bars" means 5 left bars and 5 right bars. So if you want to check if 5 right bars are engulfing the previous 5 bars (as seen in the photo above), you would want to select 5 in the input settings.
You can learn more about it from the following links
Market Reversals and the Sushi Roll Technique
The Logical Trader
libKageMiscLibrary "libKageMisc"
Kage's Miscelaneous library
print(_value)
Print a numerical value in a label at last historical bar.
Parameters:
_value : (float) The value to be printed.
Returns: Nothing.
barsBackToDate(_year, _month, _day)
Get the number of bars we have to go back to get data from a specific date.
Parameters:
_year : (int) Year of the specific date.
_month : (int) Month of the specific date. Optional. Default = 1.
_day : (int) Day of the specific date. Optional. Default = 1.
Returns: (int) Number of bars to go back until reach the specific date.
bodySize(_index)
Calculates the size of the bar's body.
Parameters:
_index : (simple int) The historical index of the bar. Optional. Default = 0.
Returns: (float) The size of the bar's body in price units.
shadowSize(_direction)
Size of the current bar shadow. Either "top" or "bottom".
Parameters:
_direction : (string) Direction of the desired shadow.
Returns: (float) The size of the chosen bar's shadow in price units.
shadowBodyRatio(_direction)
Proportion of current bar shadow to the bar size
Parameters:
_direction : (string) Direction of the desired shadow.
Returns: (float) Ratio of the shadow size per body size.
bodyCloseRatio(_index)
Proportion of chosen bar body size to the close price
Parameters:
_index : (simple int) The historical index of the bar. Optional. Default = 0.()
Returns: (float) Ratio of the body size per close price.
lastDayOfMonth(_month)
Returns the last day of a month.
Parameters:
_month : (int) Month number.
Returns: (int) The number (28, 30 or 31) of the last day of a given month.
nameOfMonth(_month)
Return the short name of a month.
Parameters:
_month : (int) Month number.
Returns: (string) The short name ("Jan", "Feb"...) of a given month.
pl(_initialValue, _finalValue)
Calculate Profit/Loss between two values.
Parameters:
_initialValue : (float) Initial value.
_finalValue : (float) Final value = Initial value + delta.
Returns: (float) Profit/Loss as a percentual change.
gma(_Type, _Source, _Length)
Generalist Moving Average (GMA).
Parameters:
_Type : (string) Type of average to be used. Either "EMA", "HMA", "RMA", "SMA", "SWMA", "WMA" or "VWMA".
_Source : (series float) Series of values to process.
_Length : (simple int) Number of bars (length).
Returns: (float) The value of the chosen moving average.
xFormat(_percentValue, _minXFactor)
Transform a percentual value in a X Factor value.
Parameters:
_percentValue : (float) Percentual value to be transformed.
_minXFactor : (float) Minimum X Factor to that the conversion occurs. Optional. Default = 10.
Returns: (string) A formated string.
isLong()
Check if the open trade direction is long.
Returns: (bool) True if the open position is long.
isShort()
Check if the open trade direction is short.
Returns: (bool) True if the open position is short.
lastPrice()
Returns the entry price of the last openned trade.
Returns: (float) The last entry price.
barsSinceLastEntry()
Returns the number of bars since last trade was oppened.
Returns: (series int)
getBotNameFrosty()
Return the name of the FrostyBot Bot.
Returns: (string) A string containing the name.
getBotNameZig()
Return the name of the FrostyBot Bot.
Returns: (string) A string containing the name.
getTicksValue(_currencyValue)
Converts currency value to ticks
Parameters:
_currencyValue : (float) Value to be converted.
Returns: (float) Value converted to minticks.
getSymbol(_botName, _botCustomSymbol)
Formats the symbol string to be used with a bot
Parameters:
_botName : (string) Bot name constant. Either BOT_NAME_FROSTY or BOT_NAME_ZIG. Optional. Default is empty string.
_botCustomSymbol : (string) Custom string. Optional. Default is empy string.
Returns: (string) A string containing the symbol for the bot. If all arguments are empty, the current symbol is returned in Binance format.
showProfitLossBoard()
Calculates and shows a board of Profit/Loss through the years.
Returns: Nothing.
AntaresLibrary "Antares"
this library contains some utility functions that I use in my open source scripts including moving average helpers, candlstick helpers, money management, formatters, convertors, webhook integration, analysis, filters and drawing helpers
ma(type, length, source)
Wraps all ma functions
Parameters:
type : Either SMA or EMA or RMA or WMA or VWMA
length : Number of bars (length).
source : Series of values to process.
Returns: Moving average of `source` for `length` bars back by the of MA.
bb(ma, length, mult, source)
Overwrites `ta.bb` duo to limitations of simple int.float mult. Bollinger Bands. A Bollinger Band is a technical analysis tool defined by a set of lines plotted two standard deviations (positively and negatively) away from a simple moving average (SMA) of the security's price, but can be adjusted to user preferences.
Parameters:
ma : Either SMA or EMA or RMA or WMA or VWMA
length : Number of bars (length).
mult : Standard deviation factor.
source : Series of values to process.
Returns: Bollinger Bands.
atr(length, h, l, c)
Overwrites `ta.atr` duo to limitations of simple int length. Function atr (average true range) returns the RMA of true range. True range is max(high - low, abs(high - close ), abs(low - close )).
Parameters:
length : Number of bars (length).
h : High price high price.
l : low price.
c : Close price close price.
Returns: Average true range.
rsi(length, source)
Overwrites `ta.rsi` duo to limitations of simple int length. Relative strength index. It is calculated using the `ta.rma()` of upward and downward changes of `source` over the last `length` bars.
Parameters:
length : Number of bars (length).
source : Series of values to process.
Returns: Relative strength index.
lowest(length, source, start)
Lowest value for a given number of bars back.
Parameters:
length : Number of bars (length).
source : Series of values to process.
start : Series number of bars that should be skipped before process.
Returns: Lowest value in the series.
highest(length, source, start)
Highest value for a given number of bars back.
Parameters:
length : Number of bars (length).
source : Series of values to process.
start : Series number of bars that should be skipped before process.
Returns: Highest value in the series.
atr_multiplier(rsi, atr_max_multiplier)
Dynamic atr multiplier calculated by RSI.
Parameters:
rsi : Relative strength index.
atr_max_multiplier : The maximum multiplier of atr
Returns: Dynamic multiplier of ATR
offset(atr, atr_multiplier)
Safe dynamic offset you need to use in your stoploss, stop buy/sell, etc.
Parameters:
atr : Average true range.
atr_multiplier : ATR multiplier got from `atr_multiplier(rsi, atr_max_multiplier)`
Returns: Dynamic offset
rsi_emotional(rsi, bottom, top)
Tells you if RSI is in emotional zone.
Parameters:
rsi : Relative Strength Index
bottom : The zone that below it market reacts emotionally
top : The zone that above it market reacts emotionally
Returns: false if RSI was between `bottom` and `top` otherwise true
rsi_signal(rsi, bottom, top)
Tells you if RSI is in good point to check your other strategy conditions.
Parameters:
rsi : Relative Strength Index
bottom : The zone that below it market reacts emotionally
top : The zone that above it market reacts emotionally
Returns: 1 if RSI crossed out 30, 50 or 70. -1 if RSI crossed under 70, 50, 30. otherwise is 0
Lagging Session Regression ChannelHello Traders !
Note :
This is my very first published script on trading view & from brainstorming an idea to developing to the finched product it was imperative to me for the indiactor and every one of its features to be of some meaningfull use. If you like the idea of statsitics being able to predict future prices in the market then this indicator may be usefull in your trading arsenal.
Introduction :
Lagging Session Regression Channel (LSRC) is a statistical trend analysis indicator that "laggs" the market by the user defined session, by defualt a day, by doing so the indicator leverges the ability of simple linear regression to predict future asset price.(This can be used on any asset in any market in any time frame)
Options & inputs :
- Bar regression lookback :
The value of bars back from the lats session change, if the seesion time is equivelnt to the the chart timefrmae then the regression line will not lag price, i.e it will act as a stantdard lineer regression channel chnaging on evrey last confimred bar.
- Standard Deviation lookback :
The value of bars from the last session change to cacluate the unbiased standard deviation, The lookback can be set to > or < the regression lookback to cauture > or < less asset volatility. (note this is the same as the residual standard deviation)
- Predicted price at nth bar :
if you whant to know the predicted close price value at any given point in the regression and to the RHS of the regression.
- Regression Line colors group :
Changes the colors of each plotted line.
- OLS Line color : is only changeable when trend color is set to false / unticked.
- Visable deviations group :
Plots the lines that you want on chart, e.g if "Show DEV1" and "Sow DEV SUB1" are the only inputs ticked then they will be the only lines ploted along with the simple linear regression line.
- Regression Line Dynamics group :
All inputs in this group change the regressions calculations given the bar lookback is constant / the same.
- Trend color : if set too true, when the close of the proceding real time bar is greater than the simple linear regression line from the last confimred session the line will be colored green, if otherwise the close is below the simple linear regression line the line will be colored red.
- Extend regression line :
This is the same chart image as seen on the publication chart image but with Extend regression line set to true, this allows the trader to test the valdity of the regression and how well it predicts future price, as seen on the M15 chart of BTCUSD above the indicator was pritty good at doing this.
- Standard deviation channel source :
Source for standard deviation to be calculated on. note if this is set to a varible other than the close then this will no longer be the resdiaul standard deviation, as of now "LSRC 1.0" the regression uses only the close for y / predicted values.
- Time elasped unitl next regression calculation :
The session time until the next LSRC will be calculated and plotted
Label LSRC stats :
- STAN DEV : the standard deviation used to cacluateed the deviation channels
- MIN : The lowest price across the regression
- MAX : The highest price across the regression
- n bars above dev 1 : The number of bars that closed above the first standard deviation channel across the entire regression calculation
- n bars below sub dev1 : The number of bars that closed below the first standard deviation channel.
- Regression Price : The output of "Predicted price at nth bar" input.
Hope you find this usefull !
I will continue too try improve this script and update it accordingly.
Triple ThreatThis indicator provides buy and sell signals for Bitcoin based on confluence from well-known momentum, volatility, and trend indicators. It has successfully captured the major directional trends on Bitcoin's daily chart since 2018, and the settings are currently optimized for this chart in particular. This indicator implements RSI to gauge momentum, BBWP to gauge volatility, and an EMA to gauge trend. Maximum confluence signals are represented by horizontal bars in the indicator's pane, where the tallest green bar is a confirmed buy signal, and the tallest red bar is a confirmed sell signal. The shortest bar represents a momentum-only signal, and the second-shortest bar represents a volatility signal in confluence with the previously given momentum signal.
To track momentum, the RSI is plotted to the indicator plane against a moving average of the RSI. A momentum signal is generated when the RSI crosses over its moving average, retests/approaches the moving average, and then continues in the crossover direction (i.e., it fails to cross the moving average to the opposite side, creating a successful retest). The settings that affect this trigger are the "Crossover Threshold," which specifies how much the RSI should exceed the moving average to be considered a crossover, and the "Retest threshold," which specifies how closely the RSI should approach the moving average to be considered a retest. A momentum signal is ALSO generated if the RSI or its moving average exceed their counterpart by a certain threshold. For example, if the threshold was set at 10, a BUY signal would be generated when the RSI exceeds the moving average by 10, or a SELL signal would be generated when the moving average exceeds the RSI by 10. This threshold can be set using the "Instant Signal Threshold" setting. Either type of momentum signal will be plotted on the pane as the shortest horizontal bar, with its color indicating the signal's direction.
Volatility is primarily measured using the Bollinger Band Width Percentile (BBWP) indicator, which was created by The_Caretaker. BBWP plots the volatility of the asset's price, given by Bollinger Band width, relative to past volatility by assigning the volatility readings into percentiles. The indicator also includes a moving average of the BBWP itself, where a crossover to the upside represents expanding volatility and a crossover to the downside represents contracting volatility. This indicator is used to confirm a signal given by the momentum indicators - a momentum signal that is given during a period of expanding volatility has a greater likelihood of success. Therefore, when the BBWP crosses above its moving average by a given threshold, a previously triggered momentum signal is considered to be "confirmed." The threshold for this crossover can be set using the "BBWP Confirmation Threshold" setting. However, it is also relevant that periods of extreme volatility often accompany an extremity in price action (a "top" or "bottom"), in which case the BBWP is likely to contract after price reaches such an extremity. This phenomenon is captured by also using "extreme reads" on the momentum indicator to signal that there has already been enough volatility to confirm a momentum signal. If the RSI gives an "extreme read" before triggering a signal, the momentum signal is also considered to be confirmed. For example, if the RSI is above 80, breaks below 80, and then gives a SELL signal, this sell signal is considered to be confirmed without requiring the BBWP to crossover its moving average to the upside. The threshold that would confirm a SELL signal can be set with the "Overbought" setting, and the threshold that would confirm a BUY signal can be set with the "Oversold" setting. Whenever a volatility signal confirms a momentum signal, a medium-sized horizontal bar will be plotted on the pane in the same directional color as the momentum signal. Note that a momentum signal may trigger at the exact same time as the volatility signal which confirms it; in this case, only the medium-sized bar will be visible on the pane, but its direction can still be identified by its color.
Lastly, to reduce the likelihood of "false signals," a trend indicator is used to confirm the direction of the signal. This is typically an exponential moving average. If a confirmed volatility SELL signal is given, and the closing price is below the moving average, then the SELL signal is also confirmed by the trend. Likewise, if a confirmed volatility BUY signal is given, and the closing price is above the moving average, then the BUY signal is confirmed by the trend. The type and length of the moving average used to verify the trend can be set using the "Moving Average Type" and "Moving Average Length" settings found below the momentum/volatility settings. A trend signal is plotted on the pane as a tall horizontal bar, and is more deeply colored than the momentum and volatility signals.
For maximum confluence, it is recommended that the trend signal, given by the tallest bar, is the one that forms the basis of trades executed while using the Triple Threat indicator. It is possible to enter more aggressive trades with better entries by using only the volatility signal, given by the medium-sized bar, however this entails greater risk and should only be done in confluence with an additional trading strategy of your own discretion. Backtesting has shown that using the volatility signal alone underperforms using the volatility signal in confluence with the trend signal.
Please also be advised that the default setting are optimized for Bitcoin's daily chart only. The indicator is still applicable to other timeframes and asset classes, but the settings may need to be modified. I have a list of settings for other Bitcoin timeframes, and I would be happy to share them upon request.
I hope you can find this indicator to be of some use to your trading strategies. I'd be happy to hear any feedback from the community, so please don't hesitate to reach out. Stay safe, and happy trading.
MovingAveragesLibrary "MovingAverages"
Contains utilities for generating moving average values including getting a moving average by name and a function for generating a Volume-Adjusted WMA.
sma(_D, _len) Simple Moving Avereage
Parameters:
_D : The series to measure from.
_len : The number of bars to measure with.
ema(_D, _len) Exponential Moving Avereage
Parameters:
_D : The series to measure from.
_len : The number of bars to measure with.
rma(_D, _len) RSI Moving Avereage
Parameters:
_D : The series to measure from.
_len : The number of bars to measure with.
wma(_D, _len) Weighted Moving Avereage
Parameters:
_D : The series to measure from.
_len : The number of bars to measure with.
vwma(_D, _len) volume-weighted Moving Avereage
Parameters:
_D : The series to measure from. Default is 'close'.
_len : The number of bars to measure with.
alma(_D, _len) Arnaud Legoux Moving Avereage
Parameters:
_D : The series to measure from. Default is 'close'.
_len : The number of bars to measure with.
cma(_D, _len, C, compound) Coefficient Moving Avereage (CMA) is a variation of a moving average that can simulate SMA or WMA with the advantage of previous data.
Parameters:
_D : The series to measure from. Default is 'close'.
_len : The number of bars to measure with.
C : The coefficient to use when averaging. 0 behaves like SMA, 1 behaves like WMA.
compound : When true (default is false) will use a compounding method for weighting the average.
dema(_D, _len) Double Exponential Moving Avereage
Parameters:
_D : The series to measure from. Default is 'close'.
_len : The number of bars to measure with.
zlsma(_D, _len) Arnaud Legoux Moving Avereage
Parameters:
_D : The series to measure from. Default is 'close'.
_len : The number of bars to measure with.
zlema(_D, _len) Arnaud Legoux Moving Avereage
Parameters:
_D : The series to measure from. Default is 'close'.
_len : The number of bars to measure with.
get(type, len, src) Generates a moving average based upon a 'type'.
Parameters:
type : The type of moving average to generate. Values allowed are: SMA, EMA, WMA, VWMA and VAWMA.
len : The number of bars to measure with.
src : The series to measure from. Default is 'close'.
Returns: The moving average series requested.
AO-ZoneThe Zone is mention in New Trading Dimensions by Bill Williams,PhD.
The Zone is used for Entry Signal
Green Zone are painting Green when Awesome Oscillator (AO) and Accelerater/Decelerator (AC) are both increasing.
Red Zone are painting Red when Awesome Oscillator (AO) and Accelerater/Decelerator (AC) are both decreasing.
Gray Zone are painting Gray when AO and AC in difference changing
Gray Zone are indicate the indecision between bulls and bears.
Bill Williams, PhD. mention that Green Zone or Red Zone usually happen 6-8 bars Continuously.
(in my opinion, it happen lower than in intraday time frame)
The First Bar that change to be Green or Red color is the Signal Bar.
Entry Signal is the second bar in the same color as the Signal bar happen with Volume
Price go higher the high of previous Green Bar is Buy Signal. Entry Buy (Long) and place Stop at 1 tick lower the Low of previous bar.
Price go lower the Low of previous Red Bars is Sell Signal. Entry Sell (Short) and place Stop at 1 tick higher the High of previous bar.
Can Entry from 2nd bar to 5th bar.
Do not Entry if Green Bars or Red Bars completed 5 bars continuously.
This indicator have AO , AC and Zone in 1 tools and there are counter to show the number of Green bar or Red bar.
Green counter will happen when AO >0 and Green zone because AO > 0 show uptrend condition.
Red Counter will happen when AO < 0 and Red Zone because AO <0 show downtrend condition.
When we entry , we should follow the trend. So I design to non-show the counter if zone is against the trend.
#WaveRiders
[OBV] [MACD] [Accelerator/Awesome Oscillator] + PivDiv 2Here is an indicator with 4 options:
- OBV
- MACD (uses default EMA, you can change this to SMA)
- AC
- AO
All accompanied with my "Divergences (Pivots)" with 3 settings:
- 'Long Period', default checks 19 bars to the Left (="History") and 1 bar to the Right (="Future")
- 'Medium Period', default checks 14 bars to the Left (="History") and 1 bar to the Right (="Future")
- 'Short Period', default checks 9 bars to the Left (="History") and 1 bar to the Right (="Future")
When choosing an indicator, it comes with their accompanying "Divergences"!
Each Bar checks an amount of Bars at the Left (="History") and Bars to the Right (="Future"), insuring this particular Bar is the Highest or Lowest of them all at "close",
this is compared to the or or and so we have our Divergences.
There is always a slight delay (number of Bar(s) at the Right side (="Future")
If you like a setting, where the amount of “RightBars” equals the ”LeftBars” you can enable the " > Only change 'LeftBars'" button.
Then you only have to adjust the amount of “LeftBars” and the amount of “RightBars” automatically will be the same.
Bullish divergences are "Green"
- 'Short' - 'Medium' "period" > "▲"
- 'Long' "period" > "⇧"
Bearish divergences are "Red"
- 'Short' - 'Medium' "period" > "▼"
- 'Long' "period" > "⇩"
Hidden divergences ( Bullish and Bearish ) are:
- 'Short' - 'Medium' "period" > "▲▼" - "White"
- 'Long' "period" > "⬆︎⬇︎" - "Yellow"
Since for me, at this moment, it is impossible to let this indicator work as our eyes work, it will miss sometimes. I've tried to solve this by putting 3 different "Periods",
but it is not perfect, so look at it as an aiding tool, a "hint" so you can look in detail if there is something of importance or not.
What also helps is to switch timeframes.
For example on a 1 hour chart a "Highest" point can be missed sometimes, but could be perfectly visible on a 2 or 4 hour chart.
Also, try to change the numbers in a way that suits you the best.
Enjoy!
Edward PriceAction
This is an updated version of my previous script, I have added a few extra Patterns and some patterns specs have chnaged over those specified by "Price Action Battle Station by theforexguy".
Because this script has diverted from the original specification of "theforexguy", I have decided to release it as a new version. Improvements have been made to some of the pattern finding calculations, for example Hammer and Shooting Stars are now special Pin Bars, they now must have preceding and succeeding confirm bars, so they do not occur very often.
NOTE: All the identification of PA candles is disabled by default.
Changes made in Version 2.0 :
Added Forex Morning and Evening Stars (the centre small candle is not a specific color).
Abbreviated text names for less cluttered look.
Change minimum/maximum bar sizes to be a % of current ATR, rather than pips, this makes relative sizing independent on Time Frame, and make the script work better with non-currency assets like stocks and commodities .
Change definition of Hammer and shooting Star so the the previous candle is part of a trend and is followed by a confirm candle.
Added some precendence test to reduce multiple action labels.
版本注释: After some feedback from fellow traders I have made the following changes:
Definition for Outside Bar now does not require the previous bar to be opposite Colour (this the same as Inside Bars), but added a requirement for minimum size ratio compared to previous Bar (set to 1.1 by default). If you require previous Bar to be opposite colour, you could use Engulfing candles with Outside Bar option enabled.
Added Maximum size ratio requirement for Inside Bars (set to 0.9 by default).
版本注释: Minor Update.
Added OverSized candle Pattern, the pattern is labelled when candle is some ratio (default 5) bigger than current ATR of chart time frame.
Added Option to Change ATR Length.
版本注释: Patch
Correct Polarity of Oversize Bar labelling.
中文解释:
价格行为交易,此指标能够显示出来K线所代表的意思,比如PB就是PINBAR的意思 就是倒锤头线,反转概率大于延续概率。
OB就是吞没的意思,不管是阴吞没还是阳吞没 我们根据PA入场就行,标准是回撤50%入场。而ODJI就是黄昏星,启明星的意思。
这个指标在添加的时候是空白的,需要人工去点设置,把需要使用的功能打上钩钩确认。这样就能够在图表上面显示出来了。
如果不希望显示彩色K线同样也可以设置哈!
数值和样式都 可以设置,在不懂指标的前提下推荐使用默认设置。只负责打勾勾就行。确认后就能够看到图表上面显示的指标了。
Multi SMA EMA WMA HMA BB (5x8 MAs Bollinger Bands) MAX MTF - RRBMulti SMA EMA WMA HMA 4x7 Moving Averages with Bollinger Bands MAX MTF by RagingRocketBull 2019
Version 1.0
All available MAX MTF versions are listed below (They are very similar and I don't want to publish them as separate indicators):
ver 1.0: 4x7 = 28 MTF MAs + 28 Levels + 3 BB = 59 < 64
ver 2.0: 5x6 = 30 MTF MAs + 30 Levels + 3 BB = 63 < 64
ver 3.0: 3x10 = 30 MTF MAs + 30 Levels + 3 BB = 63 < 64
ver 4.0: 5(4+1)x8 = 8 CurTF MAs + 32 MTF MAs + 20 Levels + 3 BB = 63 < 64
ver 5.0: 6(5+1)x6 = 6 CurTF MAs + 30 MTF MAs + 24 Levels + 3 BB = 63 < 64
ver 6.0: 4(3+1)x10 = 10 CurTF MAs + 30 MTF MAs + 20 Levels + 3 BB = 63 < 64
Fib numbers: 8, 13, 21, 34, 55, 89, 144, 233, 377
This indicator shows multiple MAs of any type SMA EMA WMA HMA etc with BB and MTF support, can show MAs as dynamically moving levels.
There are 4 MA groups + 1 BB group, a total of 4 TFs * 7 MAs = 28 MAs. You can assign any type/timeframe combo to a group, for example:
- EMAs 9,12,26,50,100,200,400 x H1, H4, D1, W1 (4 TFs x 7 MAs x 1 type)
- EMAs 8,13,21,30,34,50,55,89,100,144,200,233,377,400 x M15, H1 (2 TFs x 14 MAs x 1 type)
- D1 EMAs and SMAs 8,13,21,30,34,50,55,89,100,144,200,233,377,400 (1 TF x 14 MAs x 2 types)
- H1 WMAs 13,21,34,55,89,144,233; H4 HMAs 9,12,26,50,100,200,400; D1 EMAs 12,26,89,144,169,233,377; W1 SMAs 9,12,26,50,100,200,400 (4 TFs x 7 MAs x 4 types)
- +1 extra MA type/timeframe for BB
There are several versions: Simple, MTF, Pro MTF, Advanced MTF, MAX MTF and Ultimate MTF. This is the MAX MTF version. The Differences are listed below. All versions have BB
- Simple: you have 2 groups of MAs that can be assigned any type (5+5)
- MTF: +2 custom Timeframes for each group (2x5 MTF) +1 TF for BB, TF XY smoothing
- Pro MTF: 4 custom Timeframes for each group (4x3 MTF), 1 TF for BB, MA levels and show max bars back options
- Advanced MTF: +4 extra MAs/group (4x7 MTF), custom Ticker/Symbols, Timeframe <>= filter, Remove Duplicates Option
- MAX MTF: +2 subtypes/group, packed to the limit with max possible MAs/TFs: 4x7, 5x6, 3x10, 4(3+1)x10, 5(4+1)x8, 6(5+1)x6
- Ultimate MTF: +individual settings for each MA, custom Ticker/Symbols
MAX MTF version tests the limits of Pinescript trying to squeeze as many MAs/TFs as possible into a single indicator.
It's basically a maxed out Advanced version with subtypes allowing for mixed types within a group (i.e. both emas and smas in a single group/TF)
Pinescript has the following limits:
- max 40 security calls (6 calls are reserved for dupe checks and smoothing, 2 are used for BB, so only 32 calls are available)
- max 64 plot outputs (BB uses 3 outputs, so only 61 plot outputs are available)
- max 50000 (50kb) size of the compiled code
Based on those limits, you can only have the following MAs/TFs combos in a single script:
1. 4x7, 5x6, 3x10 - total number of MTF MAs must always be <= 32, and you can still have BB and Num Levels = total MAs, without any compromises
2. 5(4+1)x8, 6(5+1)x6, 4(3+1)x10 - you can use the Current Symbol/Timeframe as an extra (+1) fixed TF with the same number of MTF MAs
- you don't need to call security to display MAs on the Current Symbol/Timeframe, so the total number of MTF MAs remains the same and is still <= 32
- to fit that many MAs into the max 64 plot outputs limit you need to reduce the number of levels (not every MA Group will have corresponding levels)
Features:
- 4x7 = 28 MAs of any type
- 4x MTF groups with XY step line smoothing
- +1 extra TF/type for BB MAs
- 2 MA subtypes within each group/TF
- 4x7 = 28 MA levels with adjustable group offsets, indents and shift
- supports any existing type of MA: SMA, EMA, WMA, Hull Moving Average (HMA)
- custom tickers/symbols for each group
- show max bars back option
- show/hide both groups of MAs/levels/BB and individual MAs
- timeframe filter: show only MAs/Levels with TFs <>= Current TF
- hide MAs/Levels with duplicate TFs
- support for custom TFs that are not available in free accounts: 2D, 3D etc
- support for timeframes in H: H, 2H, 4H etc
Notes:
- Uses timeframe textbox instead of input resolution dropdown to allow for 240 120 and other custom TFs
- Uses symbol textbox instead of input symbol to avoid establishing multiple dummy security connections to the current ticker - otherwise empty symbols will prevent script from running
- Possible reasons for missing MAs on a chart:
- there may not be enough bars in history to start plotting it. For example, W1 EMA200 needs at least 200 bars on a weekly chart.
- for charts with low/fractional prices i.e. 0.00002 << 0.001 (default Y smoothing step) decrease Y smoothing as needed (set Y = 0.0000001) or disable it completely (set X,Y to 0,0)
- for charts with high price values i.e. 20000 >> 0.001 increase Y smoothing as needed (set Y = 10-20). Higher values exceeding MAs point density will cause it to disappear as there will be no points to plot. Different TFs may require diff adjustments
- TradingView Replay Mode UI and Pinescript security calls are limited to TFs >= D (D,2D,W,MN...) for free accounts
- attempting to plot any TF < D1 in Replay Mode will only result in straight lines, but all TFs will work properly in history and real-time modes. This is not a bug.
- Max Bars Back (num_bars) is limited to 5000 for free accounts (10000 for paid), will show error when exceeded. To plot on all available history set to 0 (default)
- Slow load/redraw times. This indicator becomes slower, its UI less responsive when:
- Pinescript Node.js graphics library is too slow and inefficient at plotting bars/objects in a browser window. Code optimization doesn't help much - the graphics engine is the main reason for general slowness.
- the chart has a long history (10000+ bars) in a browser's cache (you have scrolled back a couple of screens in a max zoom mode).
- Reload the page/Load a fresh chart and then apply the indicator or
- Switch to another Timeframe (old TF history will still remain in cache and that TF will be slow)
- in max possible zoom mode around 4500 bars can fit on 1 screen - this also slows down responsiveness. Reset Zoom level
- initial load and redraw times after a param change in UI also depend on TF. For example: D1/W1 - 2 sec, H1/H4 - 5-6 sec, M30 - 10 sec, M15/M5 - 4 sec, M1 - 5 sec. M30 usually has the longest history (up to 16000 bars) and W1 - the shortest (1000 bars).
- when indicator uses more MAs (plots) and timeframes it will redraw slower. Seems that up to 5 Timeframes is acceptable, but 6+ Timeframes can become very slow.
- show_last=last_bars plot limit doesn't affect load/redraw times, so it was removed from MA plot
- Max Bars Back (num_bars) default/custom set UI value doesn't seem to affect load/redraw times
- In max zoom mode all dynamic levels disappear (they behave like text)
- Dupe check includes symbol: symbol, tf, both subtypes - all must match for a duplicate group
- For the dupe check to work correctly a custom symbol must always include an exchange prefix. BB is not checked for dupes
Good Luck! Feel free to learn from/reuse the code to build your own indicators.
By Traders For TradersThis is an updated version of my previous script, I have added a few extra Patterns and some patterns specs have chnaged over those specified by "Price Action Battle Station by theforexguy".
Because this script has diverted from the original specification of "theforexguy", I have decided to release it as a new version. Improvements have been made to some of the pattern finding calculations, for example Hammer and Shooting Stars are now special Pin Bars, they now must have preceding and succeeding confirm bars, so they do not occur very often.
NOTE: All the identification of PA candles is disabled by default.
Changes made in Version 2.0 :
Added Forex Morning and Evening Stars (the centre small candle is not a specific color).
Abbreviated text names for less cluttered look.
Change minimum/maximum bar sizes to be a % of current ATR, rather than pips, this makes relative sizing independent on Time Frame, and make the script work better with non-currency assets like stocks and commodities .
Change definition of Hammer and shooting Star so the the previous candle is part of a trend and is followed by a confirm candle.
Added some precendence test to reduce multiple action labels.
版本注释: After some feedback from fellow traders I have made the following changes:
Definition for Outside Bar now does not require the previous bar to be opposite Colour (this the same as Inside Bars), but added a requirement for minimum size ratio compared to previous Bar (set to 1.1 by default). If you require previous Bar to be opposite colour, you could use Engulfing candles with Outside Bar option enabled.
Added Maximum size ratio requirement for Inside Bars (set to 0.9 by default).
版本注释: Minor Update.
Added OverSized candle Pattern, the pattern is labelled when candle is some ratio (default 5) bigger than current ATR of chart time frame.
Added Option to Change ATR Length.
版本注释: Patch
Correct Polarity of Oversize Bar labelling.
VWAP forex Yesterday Hi/Low update fix This script is an updte fix of an earlier script that stopped functioning when TradingView updated Pine script. This script plots Forex (24 hour session) VWAP, yesterday's high, low, open and close (HLOC),
the day before's HLOC -
Also plots higher timeframe 20 emas
1 minute 5, 15, 60 period 20 ema
5 minute 15, 60 period 20 ema
15 minute 60, 120 , 240 period 20 ema
60 minute 120, 240 period 20 ema
120 minute 240, D period 20 ema
240 minute D period 20 ema
Also signals inside bars (high is less than or equal to the previous bar's high and the low is greater than or equal to the previous low) the : true inside bars have a maroon triangle below the bar as well as a ">" above the bar.
If subsequest bars are inside the last bar before the last true inside bar they also are marked with an ">"
This is probably a slight variation from the way Leaf_West plots the inside bars.
It appears that he marks all bars that are inside the original bar until one a bar has a high or low
outside the original bar. But I would need to see an example on his charts.
The Time Session Glitch and the Fix FX_IDC, COINBASE and BITSTAMP:
The script will correctly default to 1700 hrs to 1700hrs EDT/EST session for FXCM.
Strangely some securities appear to erroneously start their session at 1200 hrs ie. My guess is that they are somehow tied to GMT+0 instead of New York time (GMT+5). See this for yourself by selecting EURUSD using the FXCM exchange (FX:EURUSD) and then EURUSD from the IDC exchange (FX_IDC:EURUSD). The FX-IDC session opening range starts 5 hours before it actually should at 1700 hrs EDT/EST. To correct for this I have implemented an automatic fix (default) and a user selected "5 hour time shift adjust. ment needed on some securities".
There is also a 4 hour time shift button which might be necessary when New York reverts from Eastern Standard Time to Eastern Daylight Time (1 hour difference) in March (and then back again in November). In the default auto adjust mode you will need to select the 1 hour time shift. That is if this glitch still exists at that time.
I have looked at other scripts, other than my own and where the script is available, that need to use information about the opening bar and all have the same time shift issue
COINBASE and BITSTAMP open at 0000 hours GMT. Since I use lines instead of circles or crosses I had to make a small adjustment to plot the lines correctly.
If it needs work let me know.
Jayy
Indicators: Better Volume Indicator & InstrumentVolumeBetter Volume Indicator
-----------------------------------------
This is a direct port of a famous indicator from Tradestation platform.
BVI improves on your typical volume histogram by coloring the bars based on 5 criteria:
* Volume Climax Up – high volume, high range, up bars (red)
* Volume Climax Down – high volume, high range, down bars (white)
* High Volume Churn – high volume, low range bars (green, barcolor= blue)
* Low Volume – low volume bars (yellow)
* Volume Climax plus High Volume Churn – both the above conditions (magenta)
When there are no volume signals the default histogram bar coloring is cyan.
Bars can also be colored to match volume color. Enable "Change BarColors?" in the options page.
Volume Climax Up bars are typically seen at:
* The start of up trends
* The end of up trends, and
* Pullbacks during down trends.
Volume Climax Down bars are typically seen at:
* The start of down trends
* The end of down trends, and
* Pullbacks during up trends.
High Volume Churn bars are typically seen at:
* The end of up trends
* The end of down trends, and
* Profit taking mid-trend.
Low Volume bars are typically seen at:
* The end of up trends
* The end of down trends, and
* Pullbacks mid-trend.
More info:
emini-watch.com
Instrument Volume
-----------------------------------------
This is a simple script that allows you to plot volume for any instrument.
Very handy when you want to compare volumes. Just add multiple instances and select the symbol you want via Options page.
This script also gets close/open for the selected symbol. If you are itching to get started on Pinescripting (scripting language used at TV), I suggest trying out the following, using this script as the template:
- Show RSI for any instrument
(hint: "close" for the selected symbol is already in script. Do a "plot(rsi(c, 14))")
- MACD / CCI / ....
- Plot the difference (not correlation). This may be of interest in some instruments.
For ex. BTC in BTCE exchange mostly lags BITSTAMP.
Hope this piques your interest in Pine. Feel free to post in the Pinescript room if you have any queries.
DrawZigZag🟩 OVERVIEW
This library draws zigzag lines for existing pivots. It is designed to be simple to use. If your script creates pivots and you want to join them up while handling edge cases, this library does that quickly and efficiently. If you want your pivots created for you, choose one of the many other zigzag libraries that do that.
🟩 HOW TO USE
Pine Script libraries contain reusable code for importing into indicators. You do not need to copy any code out of here. Just import the library and call the function you want.
For example, for version 1 of this library, import it like this:
import SimpleCryptoLife/DrawZigZag/1
See the EXAMPLE USAGE sections within the library for examples of calling the functions.
For more information on libraries and incorporating them into your scripts, see the Libraries section of the Pine Script User Manual.
🟩 WHAT IT DOES
I looked at every zigzag library on TradingView, after finishing this one. They all seemed to fall into two groups in terms of functionality:
• Create the pivots themselves, using a combination of Williams-style pivots and sometimes price distance.
• Require an array of pivot information, often in a format that uses user-defined types.
My library takes a completely different approach.
Firstly, it only does the drawing. It doesn't calculate the pivots for you. This isn't laziness. There are so many ways to define pivots and that should be up to you. If you've followed my work on market structure you know what I think of Williams pivots.
Secondly, when you pass information about your pivots to the library function, you only need the minimum of pivot information -- whether it's a High or Low pivot, the price, and the bar index. Pass these as normal variables -- bools, ints, and floats -- on the fly as your pivots confirm. It is completely agnostic as to how you derive your pivots. If they are confirmed an arbitrary number of bars after they happen, that's fine.
So why even bother using it if all it does it draw some lines?
Turns out there is quite some logic needed in order to connect highs and lows in the right way, and to handle edge cases. This is the kind of thing one can happily outsource.
🟩 THE RULES
• Zigs and zags must alternate between Highs and Lows. We never connect a High to a High or a Low to a Low.
• If a candle has both a High and Low pivot confirmed on it, the first line is drawn to the end of the candle that is the opposite to the previous pivot. Then the next line goes vertically through the candle to the other end, and then after that continues normally.
• If we draw a line up from a Low to a High pivot, and another High pivot comes in higher, we *extend* the line up, and the same for lines down. Yes this is a form of repainting. It is in my opinion the only way to end up with a correct structure.
• We ignore lower highs on the way up and higher lows on the way down.
🟩 WHAT'S COOL ABOUT THIS LIBRARY
• It's simple and lightweight: no exported user-defined types, no helper methods, no matrices.
• It's really fast. In my profiling it runs at about ~50ms, and changing the options (e.g., trimming the array) doesn't make very much difference.
• You only need to call one function, which does all the calculations and draws all lines.
• There are two variations of this function though -- one simple function that just draws lines, and one slightly more advanced method that modifies an array containing the lines. If you don't know which one you want, use the simpler one.
🟩 GEEK STUFF
• There are no dependencies on other libraries.
• I tried to make the logic as clear as I could and comment it appropriately.
• In the `f_drawZigZags` function, the line variable is declared using the `var` keyword *inside* the function, for simplicity. For this reason, it persists between function calls *only* if the function is called from the global scope or a local if block. In general, if a function is called from inside a loop , or multiple times from different contexts, persistent variables inside that function are re-initialised on each call. In this case, this re-initialisation would mean that the function loses track of the previous line, resulting in incorrect drawings. This is why you cannot call the `f_drawZigZags` function from a loop (not that there's any reason to). The `m_drawZigZagsArray` does not use any internal `var` variables.
• The function itself takes a Boolean parameter `_showZigZag`, which turns the drawings on and off, so there is no need to call the function conditionally. In the examples, we do call the functions from an if block, purely as an illustration of how to increase performance by restricting the amount of code that needs to be run.
🟩 BRING ON THE FUNCTIONS
f_drawZigZags(_showZigZag, _isHighPivot, _isLowPivot, _highPivotPrice, _lowPivotPrice, _pivotIndex, _zigzagWidth, _lineStyle, _upZigColour, _downZagColour)
This function creates or extends the latest zigzag line. Takes real-time information about pivots and draws lines. It does not calculate the pivots. It must be called once per script and cannot be called from a loop.
Parameters:
_showZigZag (bool) : Whether to show the zigzag lines.
_isHighPivot (bool) : Whether the current bar confirms a high pivot. Note that pivots are confirmed after the bar in which they occur.
_isLowPivot (bool) : Whether the current bar confirms a low pivot.
_highPivotPrice (float) : The price of the high pivot that was confirmed this bar. It is NOT the high price of the current bar.
_lowPivotPrice (float) : The price of the low pivot that was confirmed this bar. It is NOT the low price of the current bar.
_pivotIndex (int) : The bar index of the pivot that was confirmed this bar. This is not an offset. It's the `bar_index` value of the pivot.
_zigzagWidth (int) : The width of the zigzag lines.
_lineStyle (string) : The style of the zigzag lines.
_upZigColour (color) : The colour of the up zigzag lines.
_downZagColour (color) : The colour of the down zigzag lines.
Returns: The function has no explicit returns. As a side effect, it draws or updates zigzag lines.
method m_drawZigZagsArray(_a_zigZagLines, _showZigZag, _isHighPivot, _isLowPivot, _highPivotPrice, _lowPivotPrice, _pivotIndex, _zigzagWidth, _lineStyle, _upZigColour, _downZagColour, _trimArray)
Namespace types: array
Parameters:
_a_zigZagLines (array)
_showZigZag (bool) : Whether to show the zigzag lines.
_isHighPivot (bool) : Whether the current bar confirms a high pivot. Note that pivots are usually confirmed after the bar in which they occur.
_isLowPivot (bool) : Whether the current bar confirms a low pivot.
_highPivotPrice (float) : The price of the high pivot that was confirmed this bar. It is NOT the high price of the current bar.
_lowPivotPrice (float) : The price of the low pivot that was confirmed this bar. It is NOT the low price of the current bar.
_pivotIndex (int) : The bar index of the pivot that was confirmed this bar. This is not an offset. It's the `bar_index` value of the pivot.
_zigzagWidth (int) : The width of the zigzag lines.
_lineStyle (string) : The style of the zigzag lines.
_upZigColour (color) : The colour of the up zigzag lines.
_downZagColour (color) : The colour of the down zigzag lines.
_trimArray (bool) : If true, the array of lines is kept to a maximum size of two lines (the line elements are not deleted). If false (the default), the array is kept to a maximum of 500 lines (the maximum number of line objects a single Pine script can display).
Returns: This function has no explicit returns but it modifies a global array of zigzag lines.
MirPapa:ICT:HTF: FVG OB Threeple# MirPapa:ICT:HTF: FVG OB (Fair Value Gap Order Block)
**Version:** Pine Script® v6
**Author:** © goodia
**License:** MPL-2.0 (Mozilla Public License 2.0)
---
## Overview
“FVG OB” (Fair Value Gap Order Block) identifies higher-timeframe candle ranges where a gap (imbalance) exists between two non-consecutive candles, signaling potential institutional order blocks. This module draws bullish or bearish FVG OB boxes on your lower-timeframe chart, extends them until price interacts a specified number of times, and then finalizes (recolors) the box.
---
## Inputs
- **Enable FVG OB Boxes** (`bool`)
Toggle drawing of HTF FVG OB boxes on the chart.
- **Enable FVG OB Midlines** (`bool`)
Toggle drawing of a midpoint line inside each FVG OB box.
- **FVG OB Close Count** (`int` 1–10)
Number of HTF closes beyond the FVG range required to finalize (recolor) the box.
- **FVG OB Bull Color** (`color`)
Fill & border color for bullish FVG OB boxes.
- **FVG OB Bear Color** (`color`)
Fill & border color for bearish FVG OB boxes.
- **FVG OB Box Transparency** (`int` 1–100)
Opacity level for FVG OB box fills (higher = more transparent).
---
## How It Works
1. **HTF Data Retrieval**
- The script uses `request.security()` (via `GetHTFrevised()`) to fetch HTF OHLC and historical values:
- `_htfHigh3` (high three bars ago) and `_htfLow1` (low one bar ago) for bullish FVG OB.
- `_htfLow3` (low three bars ago) and `_htfHigh1` (high one bar ago) for bearish FVG OB.
- It also tracks the HTF `bar_index` on the lower timeframe to align drawing.
2. **FVG OB Detection**
- **Bullish FVG OB**: Occurs when the HTF low of the previous bar (`low `) is strictly above the HTF high of three bars ago (`high `), creating a gap.
- **Bearish FVG OB**: Occurs when the HTF high of the previous bar (`high `) is strictly below the HTF low of three bars ago (`low `), creating a gap.
3. **Box Creation**
- On each new HTF bar (`ta.change(time(HTF)) != 0`), if a bullish or bearish FVG OB condition is met, the script calls `CreateBoxData()` with:
- **Bullish**: `bottom = HTF low `, `top = HTF high `, `_isBull = true`.
- **Bearish**: `bottom = HTF low `, `top = HTF high `, `_isBull = false`.
- Midline toggled by input.
- A `BoxData` struct is created and stored in either the Bull or Bear array.
4. **Box Extension & Finalization**
- On **every LTF bar**, `ProcessBoxDatas(...)` iterates over all active FVG OB boxes:
1. **Extend Right Edge**: `box.set_right(bar_index)` ensures the box follows the latest bar.
2. **Record Volume Delta**: Tracks buy/sell volume inside the box.
3. **Touch Stage Update**: `modBoxUpdateStage()` increments `_stage` when price touches its “basePoint” (for FVG OB, the basePrice is one side of the gap).
4. **Finalize**: `setBoxFinalize()` checks if the configured number of closes beyond the FVG gap (`FVG OB Close Count`) has occurred. If so:
- `_isActive := false`
- Border and background colors are changed to the “Box Close Color” (input).
- Finalized boxes remain on screen semi-transparent, indicating that the FVG OB zone has been tested.
5. **Midline (Optional)**
- If “Enable FVG OB Midlines” is checked, `ProcessBoxDatas()` also extends a horizontal midpoint line inside the box with `line.set_x2(bar_index)`.
---
## Usage Instructions
1. **Installation**
- Copy the FVG OB section of the Pine Script into TradingView’s Pine Editor (ensure the library import is included).
- Click “Add to Chart.”
2. **Configure Inputs**
- Choose a Higher Time Frame via the dropdown (e.g., “4시간” maps to a 4H timeframe).
- Toggle “Enable FVG OB Boxes” and “Enable FVG OB Midlines.”
- Select colors for bullish and bearish boxes and set transparency.
- Adjust “FVG OB Close Count” to control how many closes beyond the gap finalize the box.
3. **Interpretation**
- **Active FVG OB Boxes** extend to the right until price closes beyond the gap range the specified number of times.
- When finalized, each box changes to the “Box Close Color,” signaling that institutional orders in that gap have likely been filled.
Enjoy precise visualization of higher-timeframe Fair Value Gap Order Blocks on your lower-timeframe chart!
The Strat The Strat Bar Type Identifier – Pure Price Action Logic
This open-source indicator implements the foundational bar classification of "The Strat" method developed by Rob Smith. It identifies each candle on the chart as one of the three core types used in The Strat:
* Inside Bar (1): The candle’s range is fully within the previous candle’s range. This indicates consolidation or balance and often precedes breakouts or reversals.
* Two-Up Bar (2U): The current candle breaks the previous high but does not break its low. This is considered bullish directional movement.
* Two-Down Bar (2D): The current candle breaks the previous low but not the high. This signals bearish directional movement.
* Outside Bar (3): The candle breaks both the high and the low of the previous candle, signaling a broadening formation and high volatility.
The script plots a character below each candle based on its type:
* "1" for Inside Bar
* "2" for Two-Up or Two-Down (color-coded)
* "3" for Outside Bar
This tool helps traders quickly identify actionable setups according to The Strat method and serves as a foundation for more advanced strategies like the 3-1-2 reversal or 1-2-2 continuation.
All calculations are based purely on price action—no indicators, no smoothing, no lagging elements. It is ideal for traders looking to understand price structure and bar sequencing from a Strat perspective.
To use:
1. Add the indicator to any chart and timeframe.
2. Look for the numbers below the candles.
3. Analyze the sequence of bar types to spot Strat setups.
This script is educational and can be extended with multi-timeframe context, FTFC logic, actionable signals, or broadening formation detection.
Clean, minimal, and faithful to the core principles of The Strat.
Linear Regression ForecastDescription:
This indicator computes a series of simple linear regressions anchored at the current bar, using look-back windows from 2 bars up to the user-defined maximum. Each regression line is projected forward by the same number of bars as its look-back, producing a family of forecast endpoints. These endpoints are then connected into a continuous polyline: ascending segments are drawn in green, and descending segments in red.
Inputs:
maxLength – Maximum number of bars to include in the longest regression (minimum 2)
priceSource – Price series used for regression (for example, close, open, high, low)
lineWidth – Width of each line segment
Calculation:
For each window size N (from 2 to maxLength):
• Compute least-squares slope and intercept over the N most recent bars (with bar 0 = current bar, bar 1 = one bar ago, etc.).
• Project the regression line to bar_index + N to obtain the forecast price.
Collected forecast points are sorted by projection horizon and then joined:
• First segment: current bar’s price → first forecast point
• Subsequent segments: each forecast point → next forecast point
Segment colors reflect slope direction: green for non-negative, red for negative.
Usage:
Apply this overlay to any price chart. Adjust maxLength to control the depth and reach of the forecast fan. Observe how shorter windows produce nearer-term, more reactive projections, while longer windows yield smoother, more conservative forecasts. Use the colored segments to gauge the overall bias of the fan at each step.
Limitations:
This tool is for informational and educational purposes only. It relies on linear regression assumptions and past price behavior; it does not guarantee future performance. Users should combine it with other technical or fundamental analyses and risk management practices.
Trailing Cumulative Volume DeltaShort Description:
A dynamic volume delta indicator that calculates a trailing sum of net buying/selling pressure over a user-defined number of recent bars, offering a more adaptive view of order flow momentum compared to fixed-anchor CVD.
Overview:
The Trailing Cumulative Volume Delta (TCVD) indicator provides a powerful way to analyze market sentiment by tracking the net difference between buying and selling volume. Unlike traditional Cumulative Volume Delta (CVD) indicators that typically reset at fixed intervals (e.g., daily, weekly), the TCVD calculates a rolling sum of volume delta over a specified number of recent bars. This "trailing" approach offers a more fluid and responsive measure of recent order flow dynamics.
How it Works:
Per-Bar Delta Calculation: For each bar on your chart, the indicator first calculates the net Volume Delta. This is done by looking at a finer, user-configurable Lower Timeframe (e.g., 1-minute data for a 15-minute chart bar) to determine the aggressive buying vs. selling volume within that bar.
Trailing Sum: The indicator then sums these individual per-bar net deltas over a user-defined Trailing Bars lookback period. For example, if "Trailing Bars" is set to 20, the TCVD value will represent the cumulative net delta of the last 20 bars.
Visualization:
The TCVD is plotted in a "MACD-Columns-Style" in a separate pane.
Teal: When the TCVD value is increasing (suggesting growing net buying pressure or diminishing net selling pressure over the trailing period).
Red: When the TCVD value is decreasing (suggesting growing net selling pressure or diminishing net buying pressure over the trailing period).
White: When it is returning to the mean.
How to Interpret and Use TCVD:
Trend Strength & Momentum:
A rising TCVD suggests that, on average over the trailing period, buying pressure is dominant or strengthening. This can confirm bullish price action or indicate underlying strength.
A falling TCVD suggests that selling pressure is dominant or strengthening, potentially confirming bearish price action or indicating weakness.
Divergences:
Unlike other Divergences, the CVD has two different types of Divergences: a) Absorption and b) Exhaustion. You only want to trade the Absorption pattern.
Zero Line Crossovers:
TCVD crossing above the zero line can indicate a shift towards net positive buying pressure over the lookback period.
TCVD crossing below the zero line can indicate a shift towards net positive selling pressure.
Confirmation: Use TCVD to confirm breakouts or breakdowns. A price breakout accompanied by a strongly rising TCVD is generally more reliable.
Key Settings:
Trailing Bars: (Default: 10)
Determines the number of recent bars to include in the cumulative delta sum.
Shorter periods make the TCVD more responsive to immediate changes.
Longer periods provide a smoother, longer-term view of order flow.
Use custom timeframe: (Checkbox, Default: false)
Allows you to override the automatic selection of the lower timeframe for delta calculation.
Timeframe for Delta Calculation: (Default: "1" - 1 minute)
Specifies the lower timeframe data used to calculate the volume delta for each individual chart bar.
Choosing a very fine timeframe (e.g., seconds) can provide high precision but may be limited by data availability or processing load.
If "Use custom timeframe" is unchecked, the script attempts to choose a sensible default based on your chart's timeframe (e.g., "1S" for second charts, "1" for intraday, "5" for daily, "60" for weekly+).
Examples:
Confirming Breakout Strength:
Price breaks out above a significant resistance level.
If the TCVD is also sharply rising and has perhaps crossed above its zero line, it provides confirmation that strong buying interest is fueling the breakout, increasing confidence in its validity.
Important Notes:
This indicator requires reliable volume data from your broker/data feed to function correctly. If your chart does not have volume, or if the volume data is unreliable, the TCVD will not be accurate.
Like all indicators, TCVD is best used as part of a comprehensive trading strategy, in conjunction with price action analysis and other indicators or tools.
Experiment with the Trailing Bars and Timeframe for Delta Calculation settings to find what best suits your trading style, the asset you are analyzing, and the chart timeframe you are using.
Feel free to modify this, add your personal touch, or include specific screenshots when you publish!
AlphaTrend++AlphaTrend++
Overview
The AlphaTrend++ is an advanced Pine Script indicator designed to help traders identify buy and sell opportunities in trending and volatile markets. Building on trend-following principles, it uses a modified Average True Range (ATR) calculation combined with volume or momentum data to plot a dynamic trend line. The indicator overlays on the price chart, displaying a colored trend line, a filled trend zone, buy/sell signals, and optional stop-loss tick labels, making it ideal for day trading or swing trading, particularly in markets like futures (e.g., MES).
What It Does
This indicator generates buy and sell signals based on the direction and momentum of a custom trend line, filtered by optional time restrictions and signal frequency logic. The trend line adapts to price action and volatility, with a filled zone highlighting trend strength. Buy/sell signals are plotted as labels, and stop-loss distances are displayed in ticks (customizable for instruments like MES). The indicator supports standard chart types for realistic signal generation.
How It Works
The indicator employs the following components:
Trend Line Calculation: A dynamic trend line is calculated using ATR adjusted by a user-defined multiplier, combined with either Money Flow Index (MFI) or Relative Strength Index (RSI) depending on volume availability. The line tracks price movements, adjusting upward or downward based on trend direction and volatility.
Trend Zone: The area between the current trend line and its value two bars prior is filled, colored green for bullish trends (upward movement) or red for bearish trends (downward movement), providing a visual cue of trend strength.
Signal Generation: Buy signals occur when the trend line crosses above its value two bars ago, and sell signals occur when it crosses below, with optional filtering to reduce signal noise (based on bar timing logic). Signals can be restricted to a 9:00–15:00 UTC trading window.
Stop-Loss Ticks: For each signal, the indicator calculates the distance to the trend line (acting as a stop-loss level) in ticks, using a user-defined tick size (default 0.25 for MES). These are displayed as labels below/above the signal.
Time Filter: An optional filter limits signals to 9:00–15:00 UTC, aligning with active trading sessions like the US market open.
The indicator ensures compatibility with standard chart types (e.g., candlestick or bar charts) to avoid unrealistic results associated with non-standard types like Heikin Ashi or Renko.
How to Use It
Add to Chart: Apply the indicator to a candlestick or bar chart on TradingView.
Configure Settings:
Multiplier: Adjust the ATR multiplier (default 1.0) to control trend line sensitivity. Higher values widen the stop-loss distance.
Common Period: Set the ATR and MFI/RSI period (default 14) for trend calculations.
No Volume Data: Enable if volume data is unavailable (e.g., for certain forex pairs), switching from MFI to RSI.
Tick Size: Set the tick size for stop-loss calculations (default 0.25 for MES futures).
Show Buy/Sell Signals: Toggle signal labels (default enabled).
Show Stop Loss Ticks: Toggle stop-loss tick labels (default enabled).
Use Time Filter: Restrict signals to 9:00–15:00 UTC (default disabled).
Use Filtered Signals: Enable to reduce signal frequency using bar timing logic (default enabled).
Interpret Signals:
Buy Signal: A blue “BUY” label below the bar indicates a potential long entry (trend line crossover, passing filters).
Sell Signal: A red “SELL” label above the bar indicates a potential short entry (trend line crossunder, passing filters).
Trend Zone: Green fill suggests bullish momentum; red fill suggests bearish momentum.
Stop-Loss Ticks: Gray labels show the stop-loss distance in ticks, helping with risk management.
Monitor Context: Use the trend line and filled zone to confirm the market’s direction before acting on signals.
Unique Features
Adaptive Trend Line: Combines ATR with MFI or RSI to create a responsive trend line that adjusts to volatility and market conditions.
Tick-Based Stop-Loss: Displays stop-loss distances in ticks, customizable for specific instruments, aiding precise risk management.
Signal Filtering: Optional bar timing logic reduces false signals, improving reliability in choppy markets.
Trend Zone Visualization: The filled zone between trend line values enhances trend clarity, making it easier to assess momentum.
Time-Restricted Trading: Optional 9:00–15:00 UTC filter aligns signals with high-liquidity sessions.
Notes
Use on standard candlestick or bar charts to ensure accurate signals.
Test the indicator on a demo account to optimize settings for your market and timeframe.
Combine with other analysis (e.g., support/resistance, volume spikes) for better decision-making.
The indicator is not a standalone system; use it as part of a broader trading strategy.
Limitations
Signals may lag in highly volatile or low-liquidity markets due to ATR-based calculations.
The 9:00–15:00 UTC time filter may not suit all markets; disable it for 24-hour assets like forex or crypto.
Stop-loss tick calculations assume consistent tick sizes; verify compatibility with your instrument.
This indicator is designed for traders seeking a robust, trend-following tool with customizable risk management and signal filtering, optimized for active trading sessions.