HEMA - A Fast And Efficient Estimate Of The Hull Moving AverageIntroduction
The Hull moving average (HMA) developed by Alan Hull is one of the many moving averages that aim to reduce lag while providing effective smoothing. The HMA make use of 3 linearly weighted (WMA) moving averages, with respective periods p/2 , p and √p , this involve three convolutions, which affect computation time, a more efficient version exist under the name of exponential Hull moving average (EHMA), this version make use of exponential moving averages instead of linearly weighted ones, which dramatically decrease the computation time, however the difference with the original version is clearly noticeable.
In this post an efficient and simple estimate is proposed, the estimation process will be fully described and some comparison with the original HMA will be presented.
This post and indicator is dedicated to LucF
Estimation Process
Estimating a moving average is easier when we look at its weights (represented by the impulse response), we basically want to find a similar set of weights via more efficient calculations, the estimation process is therefore based on fully understanding the weighting architecture of the moving average we want to estimate.
The impulse response of an HMA of period 20 is as follows :
We can see that the first weights increases a bit before decaying, the weights then decay, cross under 0 and increase again. More recent closing price values benefits of the highest weights, while the oldest values have negatives ones, negative weighting is what allow to drastically reduce the lag of the HMA. Based on this information we know that our estimate will be a linear combination of two moving averages with unknown coefficients :
a × MA1 + b × MA2
With a > 0 and b < 0 , the lag of MA1 is lower than the lag of MA2 . We first need to capture the general envelope of the weights, which has an overall non-linearly decaying shape, therefore the use of an exponential moving average might seem appropriate.
In orange the impulse response of an exponential moving average of period p/2 , that is 10. We can see that such impulse response is not a bad estimate of the overall shape of the HMA impulse response, based on this information we might perform our linear combination with a simple moving average :
2EMA(p/2) + -1SMA(p)
this gives the following impulse response :
As we can see there is a clear lack of accuracy, but because the impulse response of a simple moving is a constant we can't have the short increasing weights of the HMA, we therefore need a non-constant impulse response for our linear combination, a WMA might be appropriate. Therefore we will use :
2WMA(p/2) + -1EMA(p/2)
Note that the lag a WMA is inferior to the lag of an EMA of same period, this is why the period of the WMA is p/2 . We obtain :
The shape has improved, but the fit is poor, which mean we should change our coefficients, more precisely increasing the coefficient of the WMA (thus decreasing the one of the EMA). We will try :
3WMA(p/2) + -2EMA(p/2)
We then obtain :
This estimate seems to have a decent fit, and this linear combination is therefore used.
Comparison
HMA in blue and the estimate in fuchsia with both period 50, the difference can be noted, however the estimate is relatively accurate.
In the image above the period has been set to 200.
Conclusion
In this post an efficient estimate of the HMA has been proposed, we have seen that the HMA can be estimated via the linear combinations of a WMA and an EMA of each period p/2 , this isn't important for the EMA who is based on recursion but is however a big deal for the WMA who use recursion, and therefore p indicate the number of data points to be used in the convolution, knowing that we use only convolution and that this convolution use twice less data points then one of the WMA used in the HMA is a pretty great thing.
Subtle tweaking of the coefficients/moving averages length's might help have an even more accurate estimate, the fact that the WMA make use of a period of √p is certainly the most disturbing aspect when it comes to estimating the HMA. I also described more in depth the process of estimating a moving average.
I hope you learned something in this post, it took me quite a lot of time to prepare, maybe 2 hours, some pinescripters pass an enormous amount of time providing content and helping the community, one of them being LucF, without him i don't think you'll be seeing this indicator as well as many ones i previously posted, I encourage you to thank him and check his work for Pinecoders as well as following him.
Thanks for reading !
Search in scripts for "ha溢价率"
Red and Green Ignored Bar by Oliver VelezOn this occasion I present a script that detects Ignored Red Candles and Ignored Green Candles, basically it is a Price Action event that indicates a possible continuation of the current trend and gives the opportunity to climb it with a Very tight risk, before delving into detail I would like to leave this note:
Note: the detection of this event does not guarantee that the signal will be good, the trader must have the ability to determine its quality based on aspects such as trend, maturity, support / resistance levels, expansion / contraction of the market, risk / benefit, etc, if you do not have knowledge about this you should not use this indicator since using it without a robust trading plan and experience could cause you to partially or totally lose your money, if this is your case you should train before If you try to extract money from the market, this script was created to be another tool in your trading plan in order to configure the rules at your discretion, execute them consistently and have AUTOMATIC ALERTS when the event occurs, which is where I find more value because you can have many instruments waiting for the event to be generated, in the time frame you want and without having to observe the mer When the alert is generated, the Trader should evaluate the quality of the alert and define whether or not to execute it (higher timeframes, they can give you more time to execute the operation correctly).
Let's continue….
This event was created by Oliver Velez recognized trader / mentor of price action, the event has a very interesting particularity since it allows to take a position with a very limited risk in trend movements, this achieves favorable operations of good ratio and small losses when taking An adjusted risk, if the trade works, a good ratio is quickly achieved and we agree with a key point in the “Keep small losses and big profits” trading, this makes it easier to have a positive mathematical hope when your level of Success is not very high, so leave you in the field of profitability.
THE EVENT:
The event has a bullish configuration (Ignored Red Candle) and a bearish configuration (Ignored Green Candle), below I detail the “Hard” rules (later I explain why “Hard”):
1- Last 3 bars have to be GREEN-RED-GREEN (possible bullish configuration) or RED-GREEN-RED (possible bearish configuration), the first bar is called Control Bar, the second is called Ignored Bar and the third Signal Bar as shown in the following image:
2- Be in a trend determined by simple moving averages (Slow of 20 periods and Fast of 8 periods), as a general rule you can take the direction of MA20 but the Trader has to determine if there is a trend movement or not.
3- Control bar of good range, little tail and with a body greater than 55%.
4- Ignored bar preferably narrow range, little tail and that is located in the upper 1/3 of the control bar.
5- Signal bar cannot override the minimum of the ignored bar.
6- Activation / Confirmation of event by means of signal bar in overcoming the body of the ignored bar.
Some examples of ignored bars (with “Hard” and “Flexible” rules):
Features and configuration of the indicator:
To access the indicator settings, press the wheel next to the indicator name VVI_VRI "Configuration options".
- Operation mode (Filtering Type):
• Filtering Complete: all filters activated according to the configuration below.
• Without Filtering: all filters deactivated, all VRI / VVI are displayed without any selection criteria.
• Trend Filter only: shows only VRI / VVI that are in accordance with what is set in “Trend Settings”
- Configuration Moving Averages:
• See Slow Media: slow moving average display with direction detection and color change.
• See Fast Media: display of fast moving average with direction detection and color change.
• Type: possibility to choose the type of media: DEMA, EMA, HullMA, SMA, SSMA, SSMA, TEMA, TMA, VWMA, WMA, ZEMA)
• Period: number of previous bars.
• Source: possibility to choose the type of source, open, close, high, low, hl2 hlc3, ohlc4.
• Reaction: this configuration affects the color change before a change of direction, 1 being an immediate reaction and higher values, a more delayed reaction obtaining les false "changes of direction", a value of 3 filters the direction quite well.
- Trend Configuration
• Uptrend Condition P / VRI: possibility to select any of these conditions:
o Bullish MA direction
o Quick bullish MA direction
o Slow and fast bullish MA direction
o Price higher than slow MA
o Price higher than fast MA
o Price higher than slow and fast MA
o Price higher than slow MA and bullish direction
o Price higher than fast MA and bullish direction
o Price higher than slow, fast MA and bullish direction
o No condition
• Condition P / VVI bear trend: possibility of selecting any of these conditions:
o Slow bearish MA direction
o Fast bearish MA direction
o Slow and fast bearish MA direction
o Price less than slow MA
o Price less than fast MA
o Price less than slow and fast MA
o Price lower than slow MA and bearish direction
o Price less than fast MA and bearish direction
o Price less than slow, fast MA and bearish direction
o No condition
- Control bar configuration
• Minimum body percentage%: possibility to select what body percentage the bar must have.
• Paint control bar: when selected, paint the control bar.
• See control bar label: when selected, a label with the legend BC is plotted.
- Configuration bar ignored
• Above X% of the control bar: possibility to select above what percentage of the control bar the ignored bar must be located.
• Paint ignored bar: when selected, paint the ignored bar.
- Signal bar configuration
• You cannot override the minimum of the ignored bar: when selected, the condition is added that the signal bar cannot override the minimum of the ignored bar.
• Paint signal bar: when selected, paint the signal bar.
• See arrow: when selected it shows the direction arrow of the possible movement.
• See bear and arrow: when selected it shows bear and arrow label
• See bull and arrow: when selected it shows bull and arrow label
The following image shows the ignored bar and painted signal:
- Take profit / loss
The profit / loss taking varies depending on the trader and its risk / monetary plan, the proposal is a recommendation based on the nature of the event that is to have a small risk unit (stop below the minimum of the ignored bar), look for objectives in ratios greater than 2: 1 and eliminate the risk in 1: 1 by taking the stop to BE, all parameters are configurable and are the following:
• See recommended stop loss and take profit: trace the levels of Stop, BE, TP1 and TP2, as well as their prices to know them quickly based on the assumed risk
• To: select which event you want to draw the SL and TP (VRI, VVI)
• Extend stop loss line x bars: allows extending the stop line by x number of bars
• Extend take profit line x bars: allows extending the stop line by x number of bars
• Ratio to move to break even: allows you to select the minimum ratio to move stop to break even (default 1: 1)
• Take profit 1 ratio: allows you to select the ratio for take profit 1 (default 2: 1)
• Take profit 2 ratio: allows you to select the ratio for take profit 2 (default 4: 1)
- Alerts
• It is possible to configure the following alerts:
-VRI DETECTED
-VVI DETECTED
-VRI / VVI DETECTED
Final Notes:
- The term hard rules refers to the fact that an event is sought with the rules detailed above to obtain a high quality event but this brings 2 situations to consider, less
number of events and events that are generated in a strong impulse may be leaked, a very large control bar followed by an ignored narrow body away from moving averages, despite having a good chance of continuing, taking a stop very tight in a strong impulse you can touch it by the simple fact of the own volatility at that time.
- The setting of the parameters “Minimum body percentage% (control bar)”, “Above x% of the control bar (bar ignored)” and “Cannot override the minimum of the ignored bar” can bring large Benefits in terms of number of events and that can also be of high quality, feel free to find the best configuration for your instrument to operate.
- It is recommended to look for trending events, near moving averages and at an early stage of it.
- The display of several nearby VRIs or VVIs in an advanced trend may indicate a depletion of it.
- The alerts can be worked in 2 ways: at the closing of the candle (confirms event but the risk unit may be larger or smaller) or immediately the body of the ignored bar is exceeded, in case you are operating from the mobile and miss many events because of the short time I recommend that you operate in a superior time frame to have more time.
- The indicator is configured with “flexible” rules to have more events, but without any important criteria, each trader has to look for the best configuration that suits his instrument.
- It is recommended to partially close the operation based on the ratio and always keep a part of the position to apply manual trailing stop and try to maximize profits.
The code is open feel free to use and modify it, a mention in credits is appreciated.
If you liked this SCRIPT THUMB UP!
Greetings to all, I wish you much green!
Liquid RSI - Marrying The Relative Strength Index And The VolumeIntroduction
I recently derived the calculation of the relative strength index, an indicator that aim to spot overbought and oversold assets, but what is an overbought/sold asset ? Can such things be estimated with price alone ?
This why i propose a modification of the relative strength using my recently proposed efficient calculation including volume information in order to spot overbought/sold asset.
Scaling A Liquid Market
The relative strength index detect an overbought/sold asset when higher/lower than a certain level, often 80/20. An overbought asset, or better say over evaluated, is more attractive to sell because prices are no longer attractive to buy, it has reached its value of interest for traders looking to go long, we can then expect the price to correct and start a trend of opposite direction, while an oversold asset is more attractive to buy based on the same logic.
The idea of talking about over bought and over sold without taking into account the volume can be a bit strange, since volume is directly related to the quantity of contracts traded, an higher volume can show sign of a more active market, which can describe the terms : overbought/sold a bit better. Many indicators used the rsi framework with volume, the money flow index for example, but it can be interesting to provide other alternatives.
The Indicator
The indicator is based on the average positive changes in price multiplied by positive changes in volume divided by the average absolute change in price multiplied by the absolute changes in volume. The average is based on the wilder moving average which is a simple exponential filter with smoothing constant 1/length .
The indicator will react according to the volume magnitude, higher volumes will make the indicator go over/under the overbought/sold threshold more easily, in the image above, the indicator is currently saying that the market is under evaluated, which is not the case for the RSI. Such situation allow us to take a position that we could't take if we base our judgement only on price change magnitude.
The indicator has a tendency to be over/under the thresholds a longer period of time if the volume is relatively high.
An interesting effect the indicator has it to ignore movements with moderate volume, the indicator is less prone to cross under a threshold and to go back to it, this is shown in the image above. Another observation we can make is that the proposed indicator is smoother than the rsi, this is certainly due to the fact that the volume underweight small price changes.
Conclusions
I proposed a modification of the relative strength index that also take into account volume information. The proposed indicator is also smoother. Regarding its ability to detect overbought and oversold market, it has indeed the capacity to do it, however the problem remain the same, what is the extent of the correction following an overbought/oversold market ? We can see that the correction can be minor, and thus be followed by a large movements correlated with the main trend.
With those oscillators we are interested into knowing the end of the "whole trend", and they fail to do this because they use past information. I still hope the indicator find some creative usages amongst the community.
Thanks for reading ! And remember to ask before using the script code, it pains me to see minor changes on scripts i can pass 3 hours on.
Blackman Filter - The Smoother The BetterIntroduction
Who doesn't like smooth things? I'd like a smooth market price for christmas! But i can't get it, instead its so noisy...so you apply a filter to smooth it, such filters are called low-pass filters, they smooth and its great but they have lag, so nobody really use them, but they are pretty to look at.
Its on a childish note that i will introduce this indicator, so what it is all about? I propose a new FIR filter using a blackman function as filter kernel for financial time-series smoothing, do you prefer the childish tone ? Fear not its surprisingly easy!
The Blackman Function
The blackman function look like a bell shaped curve, look:
The blackman function will produce such curve. This function is called a cosine sum function because she is based on the sum of cosine functions, here only 2.
0.42 - 0.5 * cos(2 * pi * k) + 0.08 * cos(4 * pi * k)
Originally you use this function for windowing , what does it means? In signal processing you have a function called sync function , if you use this function as filter kernel you would get the ideal frequency domain response filter, sometime called brickwall filter, it would be extremely smooth.
Above the optimal low pass filter frequency response.
However the sync function has no ending values and goes on forever, therefore we can't use it for convolution, expect if we apply windowing. Filters using windowing are called windowed-sinc filters, i will describe the procedure below :
1 - Create a sync function = sin(pi*n)/(pi*n)
2 - Truncate it = I only keep the first length points of the sync function.
This create a abrupt end, the frequency of a filter using step 1 as kernel would contain ripples in the pass band and stop band, this is bad! The frequency response would look like this :
3 - I multiply my values of step 2 by a window function, it can the blackman window, i no longer have an abrupt end, its smooth!
The frequency response of the filter using this kernel would no longer have ripples! This is the power of windowing functions.
Here we are not using such thing, but we could in the future. Here instead we use the blackman function as filter kernel, because this function is bell shaped this mean that the filter will certainly be smooth (symmetrical weighting is a rule of thumb for kernels when we want really smooth filters).
The Filter
This filter is quite smooth, unlike the gaussian filter this filter give less weights to recent and past values, this is because the blackman function has fatter tails than the gaussian one. I could make a comparison of both, however they are quite alike, if you often use a gaussian filter its up to you to decide which one you prefer.
The filter can do a better job than the moving average when it comes to preserve the frequency components that constitute the cycles/trend.
We can see that the filter has a greater performance when it comes to keep the shape of the market price, thus it has a slightly better fit.
Conclusion
Ok so in this post you learned a bit about the sync function and windowing, those are basic subjects in signal processing, they allow us to approximate the filter with the ideal frequency response, i also showed you that those windowing function could be used as kernel and that they where pretty smooth on their own, there are many others, but the one i prefer is the blackman windowing function.
I know what you are thinking, "we want trailing stops, alerts, colors, arrows!", and i understand you pal, but sometimes its cool to take a break from all this stuff. However i can tell that i'am working on a side project that aim to estimate rolling maximum/minimum as fast as possible, any experiments will be published here, and i can ensure you that those indicators will make your day quite brighter, we will see that soon.
I hope you learned something from this post! I'am a bit tired (look i'am disappearing !)
Thanks for reading !
[RESEARCH] Heikin-Ashi Chart IdentifierA deterministic approach to identify Heikin-Ashi chart type.
The script checks the next statements about HA:
HA chart does not have any gaps in a classic sense
Every new HA open price is calculated using a specific recurrence formula. This fact also means that initial HA open price is used to calculate all the next and so on (a construction of Infinite Impulse Response filters)
The script works correctly being applied to other chart types:
Classic Candlestick
Range Bars
Line Break
Traditional Renko
ATR Renko
Traditional Point-and-Figure
ATR Point-and-Figure
Kagi
For special ones: this code allows you to check whether your script is being executed with Heikin-Ashi candles or not inside your script.
Ev sistr 'ta Laou!
How to avoid repainting when using security() - PineCoders FAQNOTE
The non-repainting technique in this publication that relies on bar states is now deprecated, as we have identified inconsistencies that undermine its credibility as a universal solution. The outputs that use the technique are still available for reference in this publication. However, we do not endorse its usage. See this publication for more information about the current best practices for requesting HTF data and why they work.
This indicator shows how to avoid repainting when using the security() function to retrieve information from higher timeframes.
What do we mean by repainting?
Repainting is used to describe three different things, in what we’ve seen in TV members comments on indicators:
1. An indicator showing results that change during the realtime bar, whether the script is using the security() function or not, e.g., a Buy signal that goes on and then off, or a plot that changes values.
2. An indicator that uses future data not yet available on historical bars.
3. An indicator that uses a negative offset= parameter when plotting in order to plot information on past bars.
The repainting types we will be discussing here are the first two types, as the third one is intentional—sometimes even intentionally misleading when unscrupulous script writers want their strategy to look better than it is.
Let’s be clear about one thing: repainting is not caused by a bug ; it is caused by the different context between historical bars and the realtime bar, and script coders or users not taking the necessary precautions to prevent it.
Why should repainting be avoided?
Repainting matters because it affects the behavior of Pine scripts in the realtime bar, where the action happens and counts, because that is when traders (or our systems) take decisions where odds must be in our favor.
Repainting also matters because if you test a strategy on historical bars using only OHLC values, and then run that same code on the realtime bar with more than OHLC information, scripts not properly written or misconfigured alerts will alter the strategy’s behavior. At that point, you will not be running the same strategy you tested, and this invalidates your test results , which were run while not having the additional price information that is available in the realtime bar.
The realtime bar on your charts is only one bar, but it is a very important bar. Coding proper strategies and indicators on TV requires that you understand the variations in script behavior and how information available to the script varies between when the script is running on historical and realtime bars.
How does repainting occur?
Repainting happens because of something all traders instinctively crave: more information. Contrary to trader lure, more information is not always better. In the realtime bar, all TV indicators (a.k.a. studies ) execute every time price changes (i.e. every tick ). TV strategies will also behave the same way if they use the calc_on_every_tick = true parameter in their strategy() declaration statement (the parameter’s default value is false ). Pine coders must decide if they want their code to use the realtime price information as it comes in, or wait for the realtime bar to close before using the same OHLC values for that bar that would be used on historical bars.
Strategy modelers often assume that using realtime price information as it comes in the realtime bar will always improve their results. This is incorrect. More information does not necessarily improve performance because it almost always entails more noise. The extra information may or may not improve results; one cannot know until the code is run in realtime for enough time to provide data that can be analyzed and from which somewhat reliable conclusions can be derived. In any case, as was stated before, it is critical to understand that if your strategy is taking decisions on realtime tick data, you are NOT running the same strategy you tested on historical bars with OHLC values only.
How do we avoid repainting?
It comes down to using reliable information and properly configuring alerts, if you use them. Here are the main considerations:
1. If your code is using security() calls, use the syntax we propose to obtain reliable data from higher timeframes.
2. If your script is a strategy, do not use the calc_on_every_tick = true parameter unless your strategy uses previous bar information to calculate.
3. If your script is a study and is using current timeframe information that is compared to values obtained from a higher timeframe, even if you can rely on reliable higher timeframe information because you are correctly using the security() function, you still need to ensure the realtime bar’s information you use (a cross of current close over a higher timeframe MA, for example) is consistent with your backtest methodology, i.e. that your script calculates on the close of the realtime bar. If your system is using alerts, the simplest solution is to configure alerts to trigger Once Per Bar Close . If you are not using alerts, the best solution is to use information from the preceding bar. When using previous bar information, alerts can be configured to trigger Once Per Bar safely.
What does this indicator do?
It shows results for 9 different ways of using the security() function and illustrates the simplest and most effective way to avoid repainting, i.e. using security() as in the example above. To show the indicator’s lines the most clearly, price on the chart is shown with a black line rather than candlesticks. This indicator also shows how misusing security() produces repainting. All combinations of using a 0 or 1 offset to reference the series used in the security() , as well as all combinations of values for the gaps= and lookahead= parameters are shown.
The close in the call labeled “BEST” means that once security has reached the upper timeframe (1 day in our case), it will fetch the previous day’s value.
The gaps= parameter is not specified as it is off by default and that is what we need. This ensures that the value returned by security() will not contain na values on any of our chart’s bars.
The lookahead security() to use the last available value for the higher timeframe bar we are using (the previous day, in our case). This ensures that security() will return the value at the end of the higher timeframe, even if it has not occurred yet. In our case, this has no negative impact since we are requesting the previous day’s value, with has already closed.
The indicator’s Settings/Inputs allow you to set:
- The higher timeframe security() calls will use
- The source security() calls will use
- If you want identifying labels printed on the lines that have no gaps (the lines containing gaps are plotted using very thick lines that appear as horizontal blocks of one bar in length)
For the lines to be plotted, you need to be on a smaller timeframe than the one used for the security() calls.
Comments in the code explain what’s going on.
Look first. Then leap.
ATR Squeeze Identifier + Last-Bar TR Stops1) Paints two lines based on previous bar's true range, has option for custom multiplier to make stop a factor of previous bar's TR. Used for quick identification of stop loss placement based on previous bar set-ups.
2) Identifies bar on close which has true range that is smaller than a period-chosen ATR criteria. Additionally, has an input for a raw "ATR Shave" which is used to narrow down bars with even smaller true range. Mostly used to identify potential entry zones where market is being squeezed, and expansion is likely to follow. Plots a character under the bar.
3) Identifies a close which includes and follows 5 consecutive closes which all exhibit smaller than average ATR. Includes customize-able ATR length and "ATR Shave" to narrow down tighter range's. Paints circle at bottom of chart. Mostly used to identify when market has been 'quiet' for some time and entries should be considered for likely expansion.
Help with SMA Crossover Demo scriptHi I'm currently in the process of learning to write a script. Here's a very basic SMA 34/4 crossover script. Is somebody able to help me with adding the following functions to the script.
1. Add an alert and indicator to close a short or long trade whenever any candle touches the SMA 34 line?
2. When a SMA 34/4 Crossover has been executed (a Short Trade condition) add an alert/indicator (Titled “Add”) every time a Green bullish candle has closed.
3. When a SMA 34/4 Crossunder has been executed (a Long Trade condition) add an alert/indicator (Titled “Add) every time a Red bearish candle has closed.
4. To used on 15m/30m/1hr/2hr/4hr/1D/1W timeframe charts?
SMA Crossover demoHi I'm currently in the process of learning to write a script. Here's a very basic SMA 34/5 crossover script. Is somebody able to help me with adding the following functions to the script.
1. Add an alert and indicator to close a short or long trade whenever any candle touches the SMA 34 line?
2. When a SMA 34/5 Crossover has been executed (a Short Trade condition) add an alert/indicator (Titled “Add”) every time a Green bullish candle has closed.
3. When a SMA 34/5 Crossunder has been executed (a Long Trade condition) add an alert/indicator (Titled “Add) every time a Red bearish candle has closed.
4. To used on 15m/30m/1hr/2hr/4hr/1D/1W timeframe charts?
Katana Gaps Bounty Hunter Pro (Show Gaps of All Types) by RRBKatana Gaps Bounty Hunter Pro (KGB Hunter Pro, Gap Exterminator) by RagingRocketBull 2018
Version 1.0
This indicator shows/counts/filters gaps on a chart.
There are several versions: Simple, Pro, Advanced and Zones. This is the Pro version. The Differences are listed below.
- Simple: shows/counts gaps, changes color based on gap dir (2 colors), filters out price gaps within session, large gaps, and high volume gaps
- Pro: +shows all types of gaps, multi color, pro filters (full/partial/overlapping time, price, large, candle, volume, doji, weekend gaps within delta ranges)
- Advanced: +session times mask, show/count gaps only for last N bars, +min/max/filled gaps stats, dark mode
- Zones: +shows gaps as dynamic horiz zones
KGB Hunter Pro Gap Exterminator focuses on showing you all possible types of gaps in multiple colors. Gap theory states that price tends to return and fill the gaps,
so you can use it to collect the bounty. You can apply any combination of complex filters to narrow down search results i.e., find only all:
- type 3 gaps up with allowed wick-candle overlapping of up to 10% and
- gap size larger than 200 and
- with at least one of the candles larger than 100 and
- volume change at least 40 and
- spanning less than 2 bar periods and
- excluding weekend gaps
Features:
- highlights gaps using barcolor and plotchar chars (8 colors x 2 dirs)
- supports all 3 types of gap overlapping: full gap (no overlapping), wick-wick and wick-body overlapping up to a specified % of candle body
- finds all types of gaps with pro filters for price, time, large, volume, timerange, candle size, doji gaps
- individual show/hide flags for each gap/char based on gap type
- can show/hide gaps/chars based on gap dir
- changes color of gaps/chars based on gap dir/type, multi color gap type combos
- displays chars above/below bar based on gap dir
- can show/hide weekend gaps
- counts all filtered gaps
Colors:
Basically There are 2 gap types (Price, Time) x 2 directions (Up, Down) x 2 modifiers (Large, Volume), Volume Gap is a separate class with its own modifiers, so more accurately:
- (Price, Time) x 2 directions (Up, Down) x Large modifier
- (Price Volume, Time Volume) x 2 directions (Up, Down) x Large modifier
using a total of 16+1 colors or 8+1 base colors + transparency modifier
depending on settings you can highlight gaps using any multi color combo from just 1 to all 16 colors (+1 gray color for weekends).
basic gap = 1 base color with normal transparency
price,time = 2 base colors (including basic gap) with normal transparency (+1 color)
* up,down dir = +2 new base colors with normal transparency (including 2 base colors), with a total of 2*2 = 4 price/time base colors (+2 colors)
* large = same 4 base colors with vivid transparency modifier (+4 colors)
* volume = +2 new base colors with normal transparency, a separate class (+2 colors)
* volume * up,down dir = +another 2 new base colors with normal transparency (including 2 volume base colors), with a total of 2*2 = 4 volume base colors (+2 colors)
* volume * large = 4 volume base colors with vivid transparency modifier (+4 colors)
weekend_gap = gray (+1 color)
doji gap, candle gap, timerange gap = no special color, inherits color from parent gap type
for more details, please see the Gap Color Hierarchy comments in code
_________________________________________________________________________
You can find the following gap related terminology in literature: full, partial, extreme, breakaway, runaway/continuation, common, exhaustion gaps.
There are no exact rules to distinguish between them, so this can't be implemented.
When defining a gap it all boils down to how do you plot a gap, which points between adjacent candles do you consider a gap. Different sources apply different methodology
but in practice only 3 types of gap overlapping can exist:
- full gap (no overlapping),
- partial (wick-wick overlapping) and
- extreme partial (wick-body overlapping up to a specified % of a candle body)
All these types are supported in this script. The only possible remaining option is candle-candle overlapping which is not a gap by definition.
Many other script specific subtypes are also supported. Please see description of each gap type below and comments in code.
General display modes
- gap has 3 possible overlapping modes: full gap (no overlapping), wick-wick overlapping, wick-candle overlapping up to a specified % of candle body size (for mode 3 only)
the remaining candle-candle overlapping implies not a gap by definition
full gap mode will find the least amount of gaps, wick-candle - the most
- gap can be either price or time, up or down, and shown above or below the candles (gap chars)
- by definition, a price gap is a smaller subset of a time gap, a gap within current session with a price gap and zero time lag between bars.
Therefore timerange filter is useless for price gaps, but can still be applied.
On the other hand, all price gap filters can be applied to time gaps without any distinction.
- gap can have multiple modifier subtypes: (price|time) * (up|down) * (large? + volume? + doji? + timerange? + weekend?)
i.e. price + large + volume + doji or time + large + volume + timerange + doji + weekend
- the gap is always counted only once no matter how many subtype modifiers it has
- if the gap does not satisfy any of the applied flags/filters it is not shown/counted (no gap bars/chars are shown)
- gap color can depend on a combo of gap type/dir and modifier subtypes or can be shown in a single base color
- char color can only depend on gap dir (not type/modifiers) or can be shown in a single base color
- char position can also depend on gap dir (above/below) the gap candle. Alternatively you can pin chars to the top/bottom of the screen in UI Styles.
- change_by_type = true - uses gap type base colors (2 colors + optional modifiers, up to 8 colors if volume and/or large filters are enabled)
- change_by_dir = true - uses gap dir base colors (2 colors + optional modifiers, up to 8 colors if volume and/or large filters are enabled)
- both change_by_type and change_by_dir = true - uses both gap type and dir base colors (4 colors + optional modifiers, up to 16 colors if volume and/or large filters are enabled)
- both change_by_type and change_by_dir = false - uses a single base gap color (1 color)
- don't need that much colors - disable filters
- highlight bars has priority over individual gap flags, when it is false all gaps are hidden regardless of their corresponding flag settings (does not affect dim weekend gaps)
- show chars has priority over individual gap char flags, when it is false all char flags are hidden regardless of their corresponding flag settings
- price gaps are only shown/counted when show_price_gaps flag is true. The large or volume filters can be used to narrow down results further.
- time gaps are only shown/counted when show_time_gaps flag is true. The large, volume, and timerange filters can be used to narrow down results further.
- doji gaps are only shown/counted when show_doji_gaps flag is true. The doji candle size and other filters can be used to narrow down results further.
- show weekend gaps = true and dim weekend gaps = false - shows/counts weekend gaps
- show weekend gaps = true and dim weekend gaps = true - dims weekend gaps, doesn't show/count weekwend gaps
- show/dim weekend gaps do just that - show the gap if it happens on a weekend, not all weekends
- large gaps are only shown/counted when the large filter is enabled != 0. positive values 5 (>= 5), negative -5 (<=5) are used to switch between <>
- volume gaps are only shown/counted when the volume filter is enabled != 0. positive values 5 (>= 5), negative -5 (<=5) are used to switch between <>
- timerange gaps are only shown/counted when the timerange filter is enabled != 0. positive values 5 (>= 5), negative -5 (<=5) are used to switch between <>
- candle size gaps are only shown/counted when the candle size filter is enabled != 0. positive values 5 (>= 5), negative -5 (<=5) are used to switch between <>
- candle size filter is the only filter with 2 arguments, use_and_for_delta to enable AND condition for the args (OR is the default)
Good Luck! Feel free to explore and learn from the code
Renko CandlesticksRenko charts are awesome . They reduce noise by only painting a brick on the chart when price moves by a specified amount up/down. When the price reverses, it must go twice the specified amount before a brick is painted. Time is not a factor, just price movement. Sometimes however, you want the pros of a renko chart, but on a regular candlestick chart. This indicator attempts to do just that.
A band is placed around price action showing the upper and lower bounds of what would be the current renko brick. The band only goes up/down when the price action itself moves up/down by the amount you specify. There are several ways of specifying the amount:
Fixed Price Amount: As the name says, you enter the brick size amount, i.e. the amount the price has to move before being in a new brick.
% of Price: This method will calculate the amount the price has to move as a percentage of the price itself. This way as price goes up/down, your brick size will adjust accordingly. Recommended values would be around 1% or less.
% of ATR: This option will make the brick size a percentage of the Average True Range. You can specify the ATR time frame to be different from your current time frame as well as the ATR length. For instance you could be on a 10 minute chart but specify the ATR to be daily with a length of 3 and a percentage amount of 15. This would make your brick size 15% of the Average True Range for the last 3 days. Recommended values are 10 to 20%.
Use this indicator on any time frame, even the 1 minute as the renko bands span the price action the same way on any time frame easily letting you know whether or not the price has moved appreciably, regardless of how much time has passed.
You can also set alerts easily, simply set the alert to crossing and choose “Renko Candlesticks” instead of “Value”. You will then see the options for the renko upper and lower bounds.
Tested on Bitcoin with the following values:
Fixed Price Amount: 30 ($30)
% of Price: 0.45 (if Bitcoin is $7000 then the brick size would be $31.50)
% of ATR: 15%, ATR Time Frame: 1D, ATR Length: 3 (3 days)
Ease of Movement (EOM) Backtest This indicator gauges the magnitude of price and volume movement.
The indicator returns both positive and negative values where a
positive value means the market has moved up from yesterday's value
and a negative value means the market has moved down. A large positive
or large negative value indicates a large move in price and/or lighter
volume. A small positive or small negative value indicates a small move
in price and/or heavier volume.
A positive or negative numeric value. A positive value means the market
has moved up from yesterday's value, whereas, a negative value means the
market has moved down.
You can change long to short in the Input Settings
WARNING:
- For purpose educate only
- This script to change bars colors.
Ease of Movement (EOM) Strategy This indicator gauges the magnitude of price and volume movement.
The indicator returns both positive and negative values where a
positive value means the market has moved up from yesterday's value
and a negative value means the market has moved down. A large positive
or large negative value indicates a large move in price and/or lighter
volume. A small positive or small negative value indicates a small move
in price and/or heavier volume.
A positive or negative numeric value. A positive value means the market
has moved up from yesterday's value, whereas, a negative value means the
market has moved down.
WARNING:
- This script to change bars colors.
Salty GRaB Wave with Highlights for Squeeze CCI-Arrows SlowStochThis indicator shows GRaB candles and allows several moving averages to be displayed at the same time.
It uses background coloring to identify momentum shifts. Wide bands of color can be used to identify trends while short bands of color can be used to identify reversals.
It has arrows above or below the candles to show CCI values above 100 or below -100 with the arrow pointing in the direction of the momentum.
It has red background coloring to show slow stochastic Overbought ranges and dark red signals indicating a cross of the fast and slow lines.
It has green background coloring to show slow stochastic Oversold ranges and dark green signals indicating a cross of the fast and slow lines.
It has yellow background to show squeezes with additional Squeeze information shown at the bottom of the chart in the form of letters and momentum arrows.
Ichimoku-Hausky Trading systemThis is a indicator with some parts of the ichimoku and EMA. It's my first script so i have used other peoples script (Chris Moody and DavidR) as reference cause I really have no idea myself on how to script with pinescript.
Hope that is okay!
I use 20M timeframe but it should work with any timeframe! I have not tested this system much so I would really appreciate feedback and tips for better entries, settings etc..
Tenken-sen: green line
Kijun-sen: blue line
EMA: Purple
Rules:
Buy:
IF price crosses or bounce above Kijun-sen
THEN see if market has closed above EMA
IF Market has closed above EMA
THEN see if EMA is above Kijun-sen
IF EMA is above Kijun-sen
THEN buy and set trailing stop 5 pips below EMA
Sell:
IF price crosses or bounce below Kijun-sen
THEN see if market has closed below EMA
IF Market has closed below EMA
THEN see if EMA is below Kijun-sen
IF EMA is below Kijun-sen
THEN sell and set trailing stop 5 pips above EMA
Ease of Movement (EOM) This indicator gauges the magnitude of price and volume movement.
The indicator returns both positive and negative values where a
positive value means the market has moved up from yesterday's value
and a negative value means the market has moved down. A large positive
or large negative value indicates a large move in price and/or lighter
volume. A small positive or small negative value indicates a small move
in price and/or heavier volume.
A positive or negative numeric value. A positive value means the market
has moved up from yesterday's value, whereas, a negative value means the
market has moved down.
LiquidityPulse RSI Candle Strength MomentumLiquidity-Pulse RSI Candle Strength Momentum is a multifunctional and original candle-analysis tool designed to highlight the potential internal strength of each candle using a combination of body size and volume.
To view the candle-strength scores clearly: right-click on the chart, go to Settings, and in the Symbol tab untick Body, Borders and Wicks.
Candle Strength Scores
The indicator calculates the average body size and average volume over a user-defined lookback period. Each candle is then compared to these averages, and the indicator combines relative body expansion and relative volume expansion with a square-root calculation to create a (normalised) candle-strength score from 1 to 10.
10 – exceptionally strong compared to the lookback average (large body size and volume)
1 – very weak compared to the lookback average (small body size and volume)
Bullish and bearish candles are evaluated independently, producing separate bull-strength and bear-strength scores.
Optional ATR and volume floors can be enabled to restrict strength scoring to candles that exceed a minimum volatility or participation threshold. This helps users who prefer to filter out low-impact candles during quiet market periods. This option can be enabled or adjusted in the settings but is turned off by default.
Candle Colours
This tool also shows candles coloured based on the candle-strength scores (10 colours in each theme), which makes it easier to visualise the scores and see whether the candle score was high or not. There are several options in the 'colour theme' dropdown menu in the settings. Users can also customise all colours manually.
RSI Candle Strength Arrows
The Relative Strength Index is a long-established momentum tool that calculates the ratio of average upward moves to average downward moves over a defined period, allowing traders to identify potential overbought and oversold market conditions where momentum may be stretched. As well as this, strong early momentum and participation are often associated with more sustained moves.
This indicator combines this methodology and provides optional arrows that appear only when candle strength and RSI conditions align:
– A candle meets or exceeds a chosen strength threshold
– RSI has recently reached an overbought or oversold level
– The candle direction matches the expected momentum shift
For example, if price has reached an oversold RSI level and a strong bullish candle forms (high candle-strength number), an upside arrow may plot.
Users can customise the RSI oversold and overbought thresholds, the minimum candle-strength threshold, and how many bars back the RSI condition must have occurred in the settings.
These arrows are not buy or sell signals but instead highlight rare moments where strong candle behaviour aligns with meaningful RSI extremes. This is useful to users because it allows the candle-strength logic to be applied only when momentum is genuinely stretched, filtering out noise and focusing attention on the most statistically significant market moves.
This indicator brings together a quantitative candle-strength model and a momentum-based RSI filter to give users a clearer view of how individual candles behave relative to their recent environment, while also highlighting when those movements occur during meaningful shifts in market momentum. By combining both forms of analysis, the tool helps traders distinguish ordinary price changes from potentially significant structural behaviour.
How traders can use this indicator
– Stronger candle scores in the trend direction can confirm continuation pressure.
– Powerful opposing candles appearing at RSI extremes may signal potential reversals or exhaustion points.
– If breakouts occur with high candle scores, price may be more likely to follow through.
– Weak candles with low scores help traders avoid false signals or low-quality setups.
– Candle-strength scoring helps users quickly interpret both volume and candle-body behaviour without manual analysis.
Open source, if anyone has any ideas on how to make the script better or have any questions please let me know :)
Disclaimer
This indicator is provided for educational and analytical purposes only and should not be interpreted as financial advice or a recommendation to buy or sell any asset. The candle-strength values displayed by this tool are not literal or definitive measures of market strength; they are derived from a custom mathematical model designed to highlight relative differences in candle behaviour. These values should be viewed as a simplified representation of candle dynamics, not as an objective or universal measure of strength.
Users should be aware that this calculation does not replace the importance of analysing real traded volume, order flow, liquidity conditions, or broader market context. As with any technical tool, results should be considered alongside other forms of analysis, and past performance does not guarantee future outcomes. Use at your own discretion and risk.
Bitcoin Relative Macro StrengthBTC Relative Macro Strength
Overview
The BTC Relative Macro Strength indicator measures Bitcoin's price strength relative to the global macro environment. By tracking deviations from the macro trend, it identifies potentially overvalued and undervalued market phases.
The global macro trend is derived by multiplying the ISM PMI (a widely-used proxy for the business cycle) by a simplified measure of global liquidity.
Calculations
Global Liquidity = Fed Balance Sheet − Reverse Repo − Treasury General Account + U.S. M2 + China M2
Global Macro Trend = ISM PMI × Global Liquidity
Understanding the Global Macro Trend
The global macro trend plot combines the ebb and flow of global liquidity with the cyclical patterns of the business cycle. The resulting composite exhibits strong directional correlation with Bitcoin—or more precisely, Bitcoin appears to move in lockstep with liquidity conditions and business cycle phases.
This relationship has strengthened notably since COVID, likely because Bitcoin's growing market capitalization has increased its exposure to macro forces.
The takeaway is that Bitcoin is acutely sensitive to growth in the money supply (it trends with liquidity expansion) and oscillates with the phases of the business cycle.
Indicator Components
📊 Histogram: BTC/Macro Change
Displays the rolling percentage change of Bitcoin's price relative to the global macro trend.
High values: Bitcoin is outpacing macro conditions (potentially overvalued)
Low values: Bitcoin is underperforming macro conditions (potentially undervalued)
Color scheme:
🟢 Green = Positive deviation
🔴 Red = Negative deviation
📈 Macro Slope Line
Plots the scaled percentage change of the global macro trend itself.
Color scheme:
🔵 Teal = BULLISH (slope positive and rising)
⚪ Gray = NEUTRAL (slope and trend disagree)
🟣 Pink = BEARISH (slope negative and falling)
FieldDescription
BTC/Macro Change : Percentage change of Bitcoin's price vs. the Global Macro Trend (default: 21-bar average)
Macro Trend : Composite assessment combining slope direction and trend momentum. Reads BULLISH when both align upward, BEARISH when both align downward, NEUTRAL when they disagree
Macro Slope : The global macro trend's average slope expressed as a percentage
BTC Valuation : Relative valuation category based on BTC/Macro deviation (Extreme Premium → Extreme Discount)
BTC Price : Current Bitcoin price
How to Use
This indicator is primarily useful for identifying market phases where Bitcoin's price has diverged from the global macro trend.
Identify extremes : Look for periods when the histogram reaches elevated positive or negative levels
Assess valuation : Use the BTC Valuation reading to gauge relative over/undervaluation
Confirm with trend : Check whether macro conditions support or contradict the current price level
Mean reversion : Consider that significant deviations from trend historically tend to revert
Note: This indicator identifies relative valuation based on macro conditions—it does not predict price direction or timing.
Settings
Lookback Period - 21 bars - Number of bars for calculating rolling averages
Macro Slope Scale - 3.0 - Multiplier for macro slope line visibility
Accumulation And Distribution Zones (Zeiierman)█ Overview
Accumulation And Distribution Zones (Zeiierman) is a structural zone indicator that highlights where the market has recently been absorbing sell pressure (Accumulation) or releasing buy pressure (Distribution).
The indicator tracks a refined sequence of swing highs and lows and measures how these swings tighten, expand, or step directionally. When they form staircase-style structures such as higher lows with compressing highs for Accumulation or lower highs with compressing lows for Distribution, the script marks these areas as shifts in market control.
Once the full pattern completes, the indicator converts it into an Accumulation or Distribution zone. Each zone is based on a confirmed structural sequence rather than a single point, making it more reliable and reflective of actual market behavior.
The indicator can also display a mini-volume profile within each zone and extend POC levels forward, showing where trading activity clustered most. Combined, these features reveal areas where price has recently shown acceptance, absorption, or rejection, helping you understand whether current price action is reacting to, breaking from, or retesting these important structural regions.
█ How It Works
⚪ Swing Structure
The indicator builds its foundation by detecting swing highs and lows using a configurable Swing Detection Window. Each confirmed swing is stored with its price, time, bar index, and direction. If two consecutive swings share the same direction, only the more extreme one is kept. This produces a clean structural sequence that removes noise and keeps only meaningful turning points.
⚪ Accumulation vs Distribution Pattern Logic
Using the refined swing sequence, the script looks for staircase-style formations that signal shifts in control:
Accumulation (bottoming): higher lows combined with compressing highs.
Distribution (topping): lower highs combined with compressing lows.
Two detection modes are available:
Quick for compact 4-swing formations
Slow for broader 6-swing structures
When a full structural pattern completes, the indicator marks the zone and resets the swing buffer for the next formation.
⚪ Volume Profile Construction
The price range between the zone’s upper and lower boundary is divided into several Rows. For every bar within the zone’s swing range, the bar’s volume is added to the appropriate price row.
Volume is classified as:
Bullish volume when close > open
Bearish volume when close < open
Each row is drawn as two horizontal segments (bull and bear), colored with smooth gradients based on your bull/bear color settings. This creates a compact profile that reveals where trading activity is concentrated inside the zone and whether buyers or sellers dominate those price levels.
█ How to Use
The indicator is designed to provide context and confluence, not raw buy/sell signals.
⚪ Spot Fresh Accumulation & Distribution
Use newly printed zones as a map of where the market has recently:
Absorbed selling and formed a floor (Accumulation below price).
Absorbed buying and formed a cap (Distribution above price).
In a trending environment, fresh accumulation zones below price are often areas to watch for pullbacks, while distribution zones above price can act as sell zones or targets.
⚪ Volume Profile
Longer horizontal bars show where the market traded the most volume inside the zone.
Bull-leaning rows inside an accumulation zone often signal strong buying interest during the formation.
Bear-leaning rows inside a distribution zone highlight concentrated selling pressure.
By combining this volume distribution with the zone label and the broader trend context, you can judge whether the structure is more likely to hold, break, or retest as the price approaches it again.
⚪ POC (Point of Control) Trading
Extended POC zones (Regular or Faded) can be treated as dynamic support/resistance rails:
When price revisits a prior accumulation POC and rejects it from above, the level may act as support. When price retests a distribution POC from below and fails to break through, it can act as resistance.
⚪ Combine with Your Own Strategy
The script does not decide direction for you. You get the most value by combining it with:
Your own trend filters (moving averages, higher timeframe structure, volatility measures).
Your preferred entry models (reversal candles, momentum breaks, liquidity grabs, etc.).
Higher-timeframe mapping.
Think of this tool as a map of where the market did meaningful business. You decide how to trade around those areas.
█ Settings
Acc/Dist Ranges – Master switch for drawing all Accumulation and Distribution zones. Turn this off to temporarily hide boxes while leaving supporting logic active.
Pattern – Shows or hides the swing-based pattern outline that formed each zone. Good for structural debugging and education.
Pattern Sensitivity
Quick – more responsive, detects smaller compact structures.
Slow – stricter, focuses on wider and more established zones.
Swing Detection Window – Pivot width used to confirm swing highs and lows. Larger values filter noise and produce bigger zones; smaller values pick up more minor structures.
Volume Profile – Enables the embedded volume profile inside each zone.
Rows – Number of price slices used to aggregate volume in the zone. Higher values give more detail but increase visual density.
Switch Order – Flips the horizontal order of bull vs bear volume segments within each row.
Extend Zones – Behaviour of POC and zone extension:
None – No forward extension.
Faded Zones – Store and draw up to four past POC zones as faded horizontal levels.
Regular Zones – Extend POC boxes forward until price breaks out.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Trend Continuation [OmegaTools]Trend Continuation is a trend-following and trend-continuation tool designed to highlight high-probability pullbacks within an existing directional bias. It helps discretionary and systematic traders visually isolate “continuation zones” where a retracement is more likely to resolve in favor of the prevailing trend rather than trigger a full reversal.
1. Concept and Objective
The indicator combines two key components:
1. A trend bias engine (based either on a Rolling VWAP regime or on swing market structure).
2. A pullback pressure model, which quantifies how deep and “aggressive” the recent retracement has been relative to the trend.
The goal is to identify moments where the market pulls back against the trend, builds enough “reversal pressure,” and then shows signs that the trend is likely to **continue** rather than flip. When specific conditions are met, the indicator highlights bars and plots reference levels that can be used as potential continuation zones, filters, or confluence areas in a broader trading plan.
2. Trend Bias Modes
The primary trend direction is defined through the `Trend Mode` input:
* **RVWAP Mode (default)**
The script computes two rolling volume-weighted average prices over different lengths:
* A **shorter-term rolling VWAP**
* A **longer-term rolling VWAP**
When the shorter RVWAP is above the longer one, the bias is set to **bullish (+1)**. When it is below, the bias is **bearish (-1)**.
This creates a smooth, volume-weighted trend definition that tends to adapt to shifting regimes and filters out minor noise.
* **Market Structure Mode**
In this mode, trend bias is derived from **pivot highs and lows**:
* When price breaks above a recent pivot high, the bias flips to **bullish (+1)**.
* When price breaks below a recent pivot low, the bias flips to **bearish (-1)**.
This approach is more structurally oriented and reacts to significant swing breaks rather than just moving-average style relationships.
If no clear condition is met, the internal bias can temporarily be neutral, though the main design assumes working with clearly bullish or bearish environments.
3. Pullback and Reversal Pressure Logic
Once the trend bias is defined, the indicator measures **pullback intensity** against that trend:
* A **lookback window (“Pullback Length”)** scans recent highs and lows:
* In an uptrend, it tracks the **highest high** over the window and measures how far the current low pulls back from that high.
* In a downtrend, it tracks the **lowest low** and measures how far the current high bounces up from that low.
* This distance is converted into a **“reversal pressure” value**:
* In a bullish bias, deeper pullbacks (lower lows relative to the recent high) indicate stronger counter-trend pressure.
* In a bearish bias, stronger rallies (higher highs relative to the recent low) indicate stronger counter-trend pressure.
The raw reversal pressure is then smoothed with a long-term moving average to separate normal retracements from **statistically significant extremes**.
4. Thresholds and Histogram Coloring
To avoid reacting to every minor pullback, the indicator builds a **dynamic threshold** using a combination of:
* Long-term averages of reversal pressure.
* Standard deviation of reversal pressure.
* High-percentile values of reversal behavior over different sample sizes.
From this, a **threshold line** is derived, and the script then compares the current reversal pressure to this adaptive level:
* The **Reversal Histogram** (column plot) represents the excess reversal pressure above its own long-term average.
* When:
* There is a valid bullish or bearish bias, and
* The histogram is above the dynamic threshold,
the bars of the histogram are **colored**:
* Blue (or a similar “positive” color) in bullish bias.
* Red/pink (or a similar “negative” color) in bearish bias.
* When reversal pressure is below threshold or bias is not relevant, the histogram remains **neutral gray**.
These colored histogram segments represent **“high-tension” pullback states**, where counter-trend pressure has reached an extreme that, historically, often resolves with the original trend continuing rather than fully reversing.
5. Continuation Level and Bar Coloring on Price Chart
To connect the oscillator logic back to the chart:
* A **continuation reference level** is computed on the price series:
* In an uptrend, this is derived by subtracting the threshold from recent highs.
* In a downtrend, it is derived by adding the threshold to recent lows.
* This level is plotted as a **line on the price chart** (only when the trend bias is stable), acting as a visual guide for:
* Potential continuation zones,
* Possible stop-placement or invalidation areas,
* Or filters for entries/exits.
The bars are then **colored** when price crosses or interacts with these levels in the direction of the trend:
* In a bullish bias, bars closing below the continuation level can be highlighted as potential **deep pullback/continuation opportunities** or as warning signals, depending on the user’s playbook.
* In a bearish bias, bars closing above the continuation level are similarly highlighted.
This makes it easy to see where the oscillator’s “extreme pullback” conditions align with structural movements on the actual price bars.
6. Embedded Win-Rate Estimation (WR Table)
The script also includes an internal **win-rate style metric (WR%)** displayed in a small table on the chart:
* It tracks occurrences where:
* A valid bullish or bearish bias is present, and
* The Reversal Histogram is **above the threshold** (i.e., histogram is colored).
* It then approximates the **probability that the trend bias does not change** following such high-pressure pullback events.
* The WR value is shown as a percentage and represents, in essence, the **historical trend-continuation rate** under these specific conditions over the most recent sample of events.
This is not a formal statistical test and does not guarantee future performance, but it provides a quick visual indication of how often these continuation setups have led to **trend persistence** in the recent past.
7. How to Use in Practice
Typical applications include:
Trend-following entries on pullbacks
Identify the main trend using either RVWAP or Market Structure mode.
Wait for a colored histogram bar (reversal pressure above threshold).
Use the continuation reference line and bar coloring on the price chart to refine entry zones or invalidation levels.
Filtering signals from other systems
Run the indicator in the background to confirm trend continuation conditions before taking signals from another strategy (e.g., breakouts or momentum entries).
Only act on long signals when the bias is bullish and a high-pressure pullback has recently occurred; similarly for short signals in bearish conditions.
Risk management and trend monitoring
Monitor when reversal pressure is building against your current position.
Use shifts in bias combined with high reversal pressure to re-evaluate or scale out of trend-following trades.
Recommended steps:
1. Choose your Trend Mode:
- RVWAP for smoother, regime-style trend detection.
- Market Structure for swing-based structural changes.
2. Adjust Trend Length and Pullback Length to match your timeframe (shorter for intraday, longer for swing/position trading).
3. Observe where histogram colors appear and how price reacts around the continuation line and highlighted bars.
4. Integrate these signals into a pre-defined trading plan with clear entry, exit, and risk rules.
8. Limitations and Disclaimer
* This tool is a **technical analysis aid**, not a complete trading system.
* Past behavior of trend continuation or reversal pressure does **not** guarantee future results.
* The embedded WR metric is a **descriptive statistic** based on recent historical conditions only; it is not a promise of performance or a robust statistical forecast.
* All parameters (lengths, thresholds, modes) are user-configurable and should be **tested and validated** on your own data, instruments, and timeframes before any live use.
Disclaimer
This indicator is provided for informational and educational purposes only and does not constitute financial, investment, or trading advice. Trading and investing in financial markets involve substantial risk, including the possible loss of all capital. You are solely responsible for your own trading decisions and for evaluating all information provided by this tool. OmegaTools and the author of this script expressly disclaim any liability for any direct or indirect loss resulting from the use of this indicator. Always consult with a qualified financial professional before making any investment decisions.
Candle Patterns Ver.2When someone decided to start trading the first thing we learn is how to read and understand the candlesticks. This little "boxes" with sticks tell us how the market sentiment and they can be used to "predict" future moves. I put predict inside a quotation marks because I would say predict the market is almost an utopia and we all know the reason.
Anyway with a good understand in reading the candlesticks with other indicators(like momentum or even a MA) can give us some edge when analyzing an instrument.
Since we have a lot of candlesticks types I did some back test and figured out that for my strategy that three candlestick types works very well. I will briefly describe then.
Engulfing Bar
This type of candlestick shows us a potential reversal based on the previous bar.
A bullish Engulfing has the close higher than the open it works better if the previous one is a bearish bar(open higher than close) and it is at a Support level. The body of the Engulfing bar should "engulf" the full body of the previous bar. If all parameters(previous bearish bar at Support level after a downtrend move) this Engulfing will represents a reversal move. When I say reversal it could means a pullback reversal(if the past trend is downtrend) or if the previous downtrend is a pullback from a past uptrend. In any way the previous bearish followed by an bullish Engulfing in general leads for an upward move.
The same picture applies to a previous bullish bar followed by an bearish Engulfing bar that if appears at the Resistance level will lead to a downward move.
One thing that is worth to mention is in a downward(or upward) move we have a small bullish bar followed by a bullish Engulfing this situation may lead to a continuation, not reversal.
Pinbar Bar:
This is another candlestick type that represents possible reversal. The Pinbar candle show a small(or medium) size but the important part is the size of the stick. If the stick is the upper one and has the size of 2 times the size of the body, it is a bearish bars and it appears after an uptrend move it represents that the buyers are losing momentum so we can expect a reversal move. When this type of bar appears after a downward move, it is a bullish bars but the stick is the lower one and has the size of two times of the body it will represents a bullish reversal. In this picture this candle is called a "Hammer".
So based on that I develop an indicator that shows me these 2 bars types and makes easy to identify with the other indicator possible entries.
Please feel free for a constructive comments and hope it help any one whe trading. Candlestick are the fundamentals of Price action.
You all have a great trading new week.
Swing Traces [BigBeluga]🔵 OVERVIEW
The Swing Traces indicator identifies significant swing points in the market and extends them forward as fading traces. These traces represent the memory of recent highs and lows, showing how price interacts with past turning points over time. Traders can use the fading intensity and breakout signals to gauge when a swing has lost influence or when price reacts to it again.
🔵 CONCEPTS
Swing Detection – Detects recent upper and lower swing points using sensitivity-based highs and lows.
Trace Longevity – Each swing projects a “trace” forward in time, gradually fading with age until it expires.
Trace Size – Each trace is drawn with both a main level and a size extension (half of the bar range) to highlight swing influence.
Longevity Counters – Swings remain active for a customizable number of bars before fading out or being crossed by price.
Swing Retest – Labels appear when price retest above/below an active trace extension levels, confirming potential reversal.
🔵 FEATURES
Adjustable sensitivity length for swing detection.
Separate longevity controls for upper and lower swing traces.
Fading gradient coloring for visualizing how long a trace has been active.
Double-trace plotting: one at the swing level and one offset by trace size.
Clear BUY/SELL signals when price crosses a swing trace after it has matured.
🔵 HOW TO USE
Use blue (upper) traces as resistance zones; lime (lower) traces as support zones.
Watch for fading traces: the longer they persist, the weaker their influence becomes.
Retest dots (●) confirm when price retest a trace, signaling a potential reversal.
Shorter sensitivity values detect faster, smaller swings; longer values capture major swing structures.
Combine with trend indicators or volume to filter false breakout signals.
🔵 CONCLUSION
The Swing Traces indicator is a powerful tool for mapping price memory. By projecting recent swing highs and lows forward and fading them over time, it helps traders see where price may react, consolidate, or break through with strength. Its dynamic traces and breakout labels make it especially useful for swing traders, breakout traders, and liquidity hunters.
Liquidity & inducementsHi all!
This indicator will show liquidity and inducements.
I will continue to try to add different types of liquidity and inducements, at this moment it contains 6 kinds of liquidity/inducement, they are:
• Grabs
• Big grabs
• Sweeps
• Turtle soups
• Equal highs/lows (liquidity and inducement)
• BSL & SSL
And 1 type of inducement:
• Retracement
This description will contain indicator examples of each individual liquidity and inducement. They will all be with the default settings.
Settings
First you will find settings for the market structure (BOS/CHoCH/CHoCH+). Select left and right pivot lengths and if the pivots should have a label or not.
This is the base foundation of this indicator and is possible with my library 'PriceAction' ().
You will see solid lines for break of structures (BOS), change of characters (CHoCH) and change of character plus (CHoCH+).
The pivots found will be the core of this indicator and will show you when the closing price breaks it. When that happens a break of structure (BOS) or a change of character (CHoCH or CHoCH+) will be created. The latest 5 pivots found within the current trend will be kept to take action on.
A break of structure is removed if an earlier pivot within the same trend is broken and the pivot's high price for a bullish trend or low price for a bearish trend is more extreme than the BOS pivot's price.
You are able to show the pivots that are used. "HH" (higher high), "HL" (higher low), "LH" (lower high), "LL" (lower low) and "H"/"L" (for pivots (high/low) when the trend has changed) are the labels used.
In the next section ('Liquidity ($$$)') you can select which types of liquidity you want to see. Note that 'Equal highs/lows' can also show inducement (more on that later).
In the section afterwards ('Inducement (IDM)') you can select if you want retracement inducements to be visible or not. More information on what they are later on.
The section for each individual liquidity and/or inducement can first contain a line named 'Pivot', where you can set the pivot lengths (first left, then right). Then you can set the 'Lookback', which means that the 'Lookback' number of past pivots is to take action on. After that you set the 'Timeframe' for the pivots used. That means that all available liquidity/inducements will be from your desired timeframe. Lastly you set the color of the liquidity/inducement (either a single color or bullish followed by bearish colors).
Lastly in the settings you can select the font sizes for the market structure and liquidity/inducements and what style liquidity/inducements lines will have. The sizes defaults to 7 and has a dotted line look.
Grabs
Liquidity grabs and liquidity sweeps are very similar. It all depends on if the current bar closed above/below the liquidity pivot and on if its a continuation or reversal. In a liquidity grab the bar that's above or below the liquidity pivot was not closed above or below it. Like this:
Or
The visual feedback will be a dotted line between the liquidity pivot and liquidity grab bar and a linefill between the high of the liquidity grab bar and the liquidity pivot.
Indicator example:
Big grabs
This is another 'grabs' option. You can show an additional grab if you want to. I suggest having this grab from a higher timeframe or with larger pivot lengths than the other grab.
The default is with the chart timeframe and 10/10 as pivot lengths.
Indicator example:
Sweeps
A liquidity sweep is like a liquidity grab but with the difference that price closes above/below and has a continuation instead of a reversal. If the liquidity pivot was at the same bar as a BOS/CHoCH/CHoCH+ it will not be a liquidity grab but a structural break instead.
They can look like this:
Indicator example;
Turtle soups
If only one candle is beyond the pivot it could be a liquidity grab. It's a grab if price didn't close beyond the liquidity pivot, if so it's invaliditet. Turtle soups are basically false breakouts that takes liquidity (is a false breakout from a pivot with the lengths and timeframe from the settings).
The turtle soup can have a confirmation in the terms of a change of character (CHoCH). You can enable this in the settings section for 'Turtle soups' through the 'Confirmation' checkbox (enabled by default). The turtle soup strategy usually comes with some sort of confirmation, in this case a CHoCH, but it can also be a market structure shift (MSS) or a change in state of delivery (CISD).
The addition of turtle soups is possible through my script 'Turtle soup' ().
The drawing will be a dotted line between the liquidity pivot and the last bar of the false breakout and a box from the start of the false breakout to the end of it.
Indicator example:
Equal highs/lows
Equal highs/lows will always show liquidity, but might also show inducement. Inducement will be shown on equal lows if the trend is bullish and on equal highs if it's bearish, like this:
Or
Equal highs can only be created if the second pivot is lower than the first one. Equal lows can only be created if the second pivot is higher than the first one. If that is not the case it could be a liquidity grab.
When equal highs or equal lows are find that produces inducement (equal lows in a bullish trend and equal highs in a bearish trend), the indicator will first display inducement and will show liquidity once traders are induced to enter the security. Stop loss placement, for liquidity, is 0.1 * the average true range (ATR, of length 14). They will look like this:
Only inducement:
Inducement and liquidity:
Indicator example:
Equal highs/lows inducements can not be triggered after a BOS/CHoCH/CHoCH+. They are cleared upon a structural break.
BSL & SSL
Buyside liquidity (BSL) and sellside liquidity (SSL) will be shown. A pivot that's been mitigated (touched by price) can never be BSL or SSL. The BSL/SSL available will be dynamic while price moves (work in Replay and lower timeframes that moves fast) and pick the latest pivot/s (with left and right lengths from the 'Market structure' section). You can define how many BSL/SSL you want to see with a default value of 1, meaning only 1 BSL and 1 SSL can be shown. If there is no unmitigated high (BSL) or low (SSL), no BSL/SSL will be available to show. If there are BSL/SSL available they're very useful to use as targets for entering a trade.
The will look like this when available;
And without BSL available:
Or
And without SSL available:
Note that the examples without BSL/SSL available could have liquidity available from previous price legs.
This can be an example of a BSL/SSL sequence:
First both buyside and sellside liquidity is available:
Then a new low appears and new sellside liquidity is available:
Then buyside liquidity is mitigated, so only sellside liquidity is available:
A new high pivot appears and buyside liquidity is available again:
Lastly a bearish CHoCH happens and sellside liquidity is mitigated, only buyside liquidity is available:
Retracement
The first retracement after a BOS/CHoCH/CHoCH+ is considered an inducement with the mission to get traders into a trade prematurely to get stopped out. This level is shown and look like this:
Or
A retracement inducement is removed when a new BOS/CHoCH/CHoCH+ appears and it's not triggered.
---------------------------
As of now there aren't any alerts available. You cannot use the Pine Screener from Tradingview either to see new liquidity/inducement events. I have this planned for future updates though.
I hope that this long description makes sense, let me know otherwise! Also let me know if you experience any bugs or have a feature request or just want to share good settings to use.
Best of trading luck!






















