SMI Momentum Bollinger Squeeze Signals - TradeUIMomentum Bollinger Squeeze Signals - TradeUI
The Squeeze Momentum Indicator (SMI) uses the principles of the Squeeze Indicator, which is a volatility indicator, and combines them with a momentum calculation to provide a more comprehensive view of the market.
The original Squeeze Indicator uses the relationship between the Bollinger Bands and Keltner Channels to identify periods of low volatility, known as "Squeezes", and potential breakout points. The SMI takes this one step further by adding a momentum calculation, making it a more dynamic tool for trading.
The momentum calculation is based on the rate of change of the asset's price. When the price increases rapidly, it signifies positive momentum, and when the price decreases rapidly, it signifies negative momentum.
Cari skrip untuk "KELTNER"
Mora's Compression IndicatorIntroducing Mora's Price Compression indicator.
One of the biggest challenges in trading strategies is to differentiate between zones in which price is consolidated (so called squeezed) and zones of price expansion. Zones of consolidation can indicate traders' indecision or the creation of order blocks, but regardless of their mechanism, most indicators behave differently in those areas as oppose to times when price is trending.
A traditional indicator of consolidation zones is the so call Squeeze, which combines Bollinger Bands and Keltner’s Channels.. although broadly used, its interpretation is not quite straightforward.
Here a new indicator is introduced to identify areas of consolidation or expansion based on current and historical volatility.
Ultimately we know the price is consolidated (current volatility) when it starts raging within a narrower band that we are use to see (Historical volatility), so the ratio of the current to historical volatility becomes a straightforward identification of consolidation zones and that is what this indicator provides.
The indicator is scaled such that values near zero mean price is compressed and values near 100 price is over-extended. The indicators is designed to allow different time-frames, while avoiding repainting.
Trail Blaze - (Multi Function Trailing Stop Loss) - [mutantdog]Shorter version:
As the title states, this is a 'Trailing Stop' type indicator, albeit one with a whole bunch of additional functionality, making it far more versatile and customisable than a standard trailing stop.
The main set of features includes:
Three independent trailing types each with their own +/- multipliers:
- Standard % change
- ATR (aka Supertrend)
- IQR (inter-quartile range)
These can be used in isolation or summed together. A subsequent pair of direction specific multipliers are also included.
Two separate custom source inputs are available, both feature the standard options alongside a selection of 'weighted inputs' and the option to use another indicator (selected via 'AUX'):
- 'Centre' determines the value about which the trailing sum will be added to define the stop level.
- 'Trigger' determines the value used for crossing of stops, initiating trend changes and triggering alerts.
A selection of optional filters and moving averages are available for both.
Furthermore there are various useful visualisation options available, including the underlying bands that govern the stop levels. Preset alerts for trend reversals are also included.
This is not really an 'out-of-the-box' indicator. Depending upon the market and timeframe some adjustments will be necessary for it to function in a useful manner, these can be as simple or complex as the feature-set allows. Basic settings are easy to dial in however and the default state is intended as a good starting point. Alternatively with some experimentation, a plethora of unique and creative configurations are possible, making this a great tool for tweaking. Below is a more detailed overview followed by a bunch of simple example settings.
------------------------
Lengthy Version :
DESIGN & CONCEPT
Before we start breaking this down, a little background. This started off as an attempt to improve upon the ever-popular Supertrend indicator. Of course there are many excellent user created variants available utilising some interesting methods to overcome the drawbacks of the basic version. To that end, rather than copying the work of others, the direction here shifted towards a hybrid trailing stop loss with a bunch of additional user customisation options. At some point, a completely different project involving IQR got morphed into this one. After sitting through months of sideways chop (where this proved to be of limited use), at the time of publication the market has began to form some near term trend direction and it appears to be performing well in many different timeframes.
And so with that out of the way...
INPUTS
The standard Supertrend (and most other variants) includes a single source input, as default set to 'hl2' (candle mid-range). This is the centre around which the atr bands are added/subtracted to govern the stop levels. This is not however the value which is used to trigger the trend reversal, that is usually hard-coded to 'close'. For this version both source values are adjustable: labelled 'centre' and 'trigger' respectively.
Each has custom input selectors including the usual options, a selection of 'weighted inputs' and the option to use another indicator (selected from the Aux input). The 'weighted inputs' are those introduced in Weight Gain 4000, for more details please refer to that listing. These should be treated as experimental, however may prove useful in certain configurations. In this case 'hl-oc2' can be considered an estimate of the candle median and may be a good alternative to the default 'centre' setting of 'hl2', in contrast 'cc-ohlc4' can tend to favour the extremes in the trend direction so could be useful as a faster 'trigger' than the default 'close'.
To cap them off both come with a selection of moving average filters (SMA, EMA, WMA, RMA, HMA, VWMA and a simple VWEMA - note: not elastic) aswell as median and mid-range. 'Centre' can also be set to the output of 'trigger' post-filter which can be useful if working with fast/slow crosses as the basis.
DYNAMICS
This is the main section, comprised of three separate factors: 'TSL', 'ATR' and 'IQR'. The first two should be fairly obvious, 'TSL' (trailing stop loss) is simply a percentage of the 'centre' value while 'ATR' (average true range) is the standard RMA-based version as used in Supertrend, Volatility Stop etc.
The third factor is less common however: 'IQR' (inter-quartile range). In case you are unfamiliar the principle here is, for a given dataset, the greatest 25% and smallest 25% of samples are removed. The remainder is then treated as a set and the range is calculated by highest - lowest. This is a commonly used method in statistical analysis, by removing the extremes it is less prone to influence by outliers and gives a good representation of the main dispersion around the median. In practise i have found it can be a good alternative to ATR, translating better across multiple time-frames due to it representing a fraction of the total range rather than an average of per-candle range like ATR. Used in combination with the others it can also add a factor more representative of longer-term/higher-timeframe trend. By discarding outliers it also benefits from not being impacted by brief pumps/volatility, instead responding only to more sustained changes in trend, such as rallies and parabolic moves. In order to give an accurate result the IQR is calculated using a dataset of high, low and hlcc4 values for all bars within the lookback length. Once calculated this value is then halved which, strictly speaking, makes it a semi-interquartile range.
All three of these components can be used individually or summed together to create a hybrid dynamics factor. Furthermore each multiplier can be set to both positive and negative values allowing for some interesting and creative possibilities. An optional smoothing filter can be applied to the sum, this is a basic SWMA-4 which is can reduce the impact of sudden changes but does incur a noticeable lag. Finally, a basic limiter condition has been hard-coded here to prevent the sum total from ever going below zero.
Capping off this section is a pair of direction multipliers. These simply take the prior dynamics sum and allow for further multiplication applied only to one side (uptrend/lo-stop and downtrend/hi-stop). To see why this is useful consider that markets often behave differently in each direction, we've all seen prices steadily climb over several weeks and then abruptly dump in the process of a day or two, shorter time frames are no stranger to this either. A lack of downside liquidity, a panicked market, aggressive shorts. All these things contribute to significant differences in downward price action. This function allows for tighter stops in one direction compared to the other to reflect this imbalance.
VISUALISATIONS
With all of these options and possibilities, some visual aids are useful. Beneath the dynamics' section are several visual options including both sources post-filter and the actual 'bands' created by the dynamics. These are what govern the stop levels and seeing them in full can help to better understand what our various configurations actually do. We can even hide the stop levels altogether and just use the bands, making this a kind of expanded Keltner Channel. Here we can also find colour and opacity settings for everything we've discussed.
EXAMPLES
The obvious first example here is the standard %-change trailing stop loss which, from my experience, tends to be the best suited for lower time frames. Filtering should probably minimal here. In both charts here we use the default config for source inputs, the top is a standard bi-directional setup with 1.5% tsl while the bottom uses a 2.5% tsl with the histop multiplier reduced to 0 resulting in an uptrend only stoploss.
Shown here in grey is the standard Supertrend which uses 'hl2' as centre and 'close' as trigger, ATR(10) multiplied by 3. On top we have the default filtered source config with ATR(8) multiplied by 2 which gives a different yet functionally similar result, below is the same source config instead using IQR(12) multiplied by 2. Notice here the more 'stepped' response from IQR following the central rally, holding back for a while before closing in on price and ultimately initiating reversal much sooner. Unlike ATR, the length parameter for IQR is absolute and can more significantly affect its responsiveness.
Next we focus on the visualisation options, on top we have the default source config with ATR(8) multiplied by 2 and IQR(12) multiplied by 1. Here we have activated the switch to show 'bands', from this we can see the actual summed dynamics and how it influences the stop levels. Below that we have an altogether different config utilising the included filters which are now visible. In this example we have created a basic 8/21 EMA cross and set a 1% TSL, notice the brief fakeout in the middle which ordinarily might indicate a buy signal. Here the TSL functions as an additional requirement which in this case is not met and thus no buy signal is given.
Finally we have a couple of more 'experimental' examples. On top we have Lazybear's 'Variable Moving Average' in white which has been assigned via 'aux' as the centre with no additional filtering, the default config for trigger is used here and a basic TSL of 1.5% added. It's a simple example but it shows how this can be applied to other indicators. At the bottom we return to the default source config, combining a TSL of 8% with IQR(24) multiplied by -2. Note here the negative IQR with greater length which causes the stop to close in on price following significant deviations while otherwise remaining fairly wide. Combining positive and negative multiples of each factor can yield mixed results, some more useful than others depending upon suitable market conditions.
Since this has been quite lengthy, i shall leave it there. Suffice to say that there are plenty more ways to use this besides these examples. Please feel free to share any of your own ideas in the comments below. Enjoy.
Distance Bands Oscillator_KT █ OVERVIEW
This tool is based on both Bollinger Bands and Keltner Channels, and measures 3 distances between the two, respectively.
Upper Kelt to Upper Bollinger Band
Lower Kelt to Lower Bollinger Band
Kelt Basis to Bollinger Basis Basis
Similar to the Band Width indicator, this can be used as a measure of volatility, and can be used to measure uptrend, downtrend and chop regions on a given chart.
Happy Trading,
ET
SPX Fair Value Bands V2An updated version of the SPX Fair Value Bands script from dharmatech and based on the net liquidity concept by MaxJAnderson .
Now with full customization of parameters through the settings (Dialog Box) and allowing the options to the use of
1) Standard Bands based on Offsets of the Fair Value
2) Bollinger Bands
3) Keltner Channels
to better capture buy/sell areas rather than relying on noisy unreliably (and unevenly) updated data from the Treasury/Fed.
==================================
Net Liquidity's importance in the new post-COVID QE to QT regime as described MaxJAnderson
----------------
" In past cycles, size of Fed's balance sheet changed a lot, while TGA and RRP changed relatively little. So size of balance sheet roughly equated Net Liquidity.
(The Treasury General Account) TGA and (Reverse Repo) RRP didn't matter. They were rounding errors by comparison.
But starting in 2020, relative changes in TGA and RRP have been THREE TIMES LARGER than the change in size of the Fed's balance sheet. As result, changes in TGA and RRP have taken over as the primary drivers Net Liquidity.
This is new, and changes the game significantly. Again - the size of the Fed's balance sheet doesn't matter.
What matters is the portion of it that's available to circulate in the economy (Net Liquidity).
And ever since 2020, the Treasury and Reverse Repo have become what controls that. Not the size of Fed's balance sheet.
----------------
The idea that follows is simple,short when $SPX reaches extreme levels of overvaluation, and close out when SPX returns to being undervalued. Here's the formulas I currently use to determine fair value:
Fair Value = (Fed Bal Sheet - TGA - RRP)/1.1 - 1625
And here's the trading rules I currently follow:
Short when diff of $SPX - Fair Value > 350
Close when diff of $SPX - Fair Value < 150
When one of these rules is triggered upon market close on a given day, trades are entered at open of the following day "
BB-EMA-MAWikipedia: Bollinger Bands are a type of statistical chart characterizing the prices and volatility over time of a financial instrument or commodity, using a formulaic method propounded by John Bollinger in the 1980s. Financial traders employ these charts as a methodical tool to inform trading decisions, control automated trading systems, or as a component of technical analysis. Bollinger Bands display a graphical band (the envelope maximum and minimum of moving averages, similar to Keltner or Donchian channels) and volatility (expressed by the width of the envelope) in one two-dimensional chart.
If you set Type = 2 then it will use EMA average for Bollinger bands .
If you set Type = 1 then it will use MA average for Bollinger bands .
Default settings is moving average with period 50
When price move to standard Deviation (std) +2 and std +3 is signal for sell ( selling zone)
When price move to standard Deviation (std) -2 and std -3 is signal for sell ( buying zone)
Sharpe Ratio v4I'm publishing this indicator freely, because I'd like to get it reviewed by other people. This indicator was written whilst reading the book Systematic Trading by Robert Carver. In this book Carver describes trading rules that use a "dynamic" position size based on something like an evolving Sharpe Ratio . There are only a few other Sharpe indicators on TradingView, but they are either undocumented or use closed source code. You can use the following code as you wish for your own projects.
I'd like to let other people see this work, and let me know where they think this script is wrong, so that I can improve it.
Here's a basic rundown of Sharpe Ratio and its calculation.
SR is defined as: (excess) return minus the risk free rate divided by standard deviation of those returns. (This is where we're uncertain. Is the standard deviation of the returns, or just the closes?) But anyway the calculation itself is pretty simple:
SR = (r – b) ÷ s
Where r is the return of the asset over a certain period.
b is the interest rate of the risk-free asset.
s is the standard deviation of the returns over the same period.
For this indicator to "work" correctly, we're assuming the risk-free rate is 0. In fact, I did not include b at all in the indicator because it would make things too complicated, and go beyond the aim of this work.
To calculate the returns over a certain period, I'm using Rate of Change. Then calculating the standard deviation of those returns is pretty easy because we can use the same lookback period we used for ROC for the StDev calculation, thus:
averageReturn = ta.roc(close, lookbackLength)
stdev = ta.stdev(averageReturn, lookbackLength)
sharpe = (averageReturn / stdev)
Please leave a comment below if you believe this is incorrect. The chart shows a normal ROC indicator for comparison. I've also created a "bands" version of this indicator, which I'm planning to also release. The Keltner channel is just for comparing it with the StDev bands.
Relative Bandwidth FilterThis is a very simple script which can be used as measure to define your trading zones based on volatility.
Concept
This script tries to identify the area of low and high volatility based on comparison between Bandwidth of higher length and ATR of lower length.
Relative Bandwidth = Bandwidth / ATR
Bandwidth can be based on either Bollinger Band, Keltner Channel or Donchian Channel. Length of the bandwidth need to be ideally higher.
ATR is calculated using built in ATR method and ATR length need to be ideally lower than that used for calculating Bandwidth.
Once we got Relative Bandwidth, the next step is to apply Bollinger Band on this to measure how relatively high/low this value is.
Overall - If relative bandwidth is higher, then volatility is comparatively low. If relative bandwidth is lower, then volatility is comparatively high.
Usage
This can be used with your own strategy to filter out your non-trading zones based on volatility. Script plots a variable called "Signal" - which is not shown on chart pane. But, it is available in the data window. This can be used in another script as external input and apply logic.
Signal values can be
1 : Allow only Long
-1 : Allow only short
0 : Do not allow any trades
2 : Allow both Long and Short
Fibonacci Zone Oscillator With MACD HistogramThe columns
After I found a way to calculate a price as a percent of the middle line of the KeltCOG Channel in the KCGmut indicator (published), I got the idea to use the same trick in the Fbonacci Zone Channel (also published), thus creating an oscillator.
I plot the percent’s as columns with the color of the KeltCOG Channel. Because the channels I created and published (i.e. Fibonacci Zone, Donchian Fibonacci Trading Tool, Keltner Fibzones, and KeltCOG) all use Fibonacci zones, this indicator also reports the position of the close in their zones.
Strategy and Use:
Blue column: Close in uptrend area, 4 supports, 0 resistance, ready to rally up.
Green column: Close in buyers area, 3 supports, 1 resistance, looking up.
Gray column: Close in center area 2 supports, 2 resistances, undecided.
Yellow column: Close in sellers area 1 support, 3 resistances, looking down.
Red column: Close in downtrend area, 0 support, 4 resistances, ready to rally down.
I use this indicator in a layout with three timeframes which I use for stock picking, I pick all stocks with a blue column in every timeframe, the indicator is so clear that I can flip through the 50 charts of my universe of high liquid European blue chips in 15 minutes to make a list of these stocks.
Because I use it in conjunction with KeltCOG I also gave it a ‘script sets lookback’ option which can be checked with a feedback label and switched off in the inputs.
The MACD histogram
I admire the MACD because it is spot on when predicting tops and bottoms. It is also the most sexy indictor in TA. Actually just the histogram is needed, so I don’t show the macd-line and the signal line. I use the same lookback for the slow-ma as for the columns, set the fast-ma to half and the signal-line to a third of the general lookback. Therefore I gave the lookback a minimum value of 6, so the signal gets at least a lookback of 2.
The histogram is plotted three times, first as a whitish area to provide a background, then the colums of the Fibzone Oscillator are plotted, then the histogram as a purple line, which contrasts nicely and then as a hardly visible brown histogram.
The input settings give the option to show columns and histogram separate or together.
Strategy and use:
I think about the columns as showing a ‘longer term chosen momentum’ and about the histogram as a ‘short term power momentum’. I use it as additional information.
Enjoy, Eykpunter.
super SSL [ALZ]This script is designed and optimized for MULTI TIME
by Ali Zebardast (ALZ)
1.in part of ssl
Original Version credits to Mihkel00
Actual Version i just set alerts and change the parameters for BTCUSDT 1min Chart.
He designed for daily time. I tried to optimize 1 min time-frame .
And fix the errors with OTT
"This script has a SSL / Baseline (you can choose between the SSL or MA), a secondary SSL for continiuation trades and a third SSL for exit trades.
Alerts added for Baseline entries, SSL2 continuations, Exits.
Baseline has a Keltner Channel setting for "in zone" Gray Candles
Added "Candle Size > 1 ATR" Diamonds from my old script with the criteria of being within Baseline ATR range."
2.in part of Range
two Filter Buy and Sell for 3min
Wait For Bar close
ssl2 :Be under the candle for buy
and The bar color must confirm the order of purchase (Blue)
3.in part of OTT
when candles close over HOTT, means an UPTREND SIGNAL
and to Fuchia when candles begin closing under LOTT line to indicate a DOWNTREND SIGNAL.
FLAT ZONE is highlighted also to have the maximum concentration on sideways market conditions.
There are three quantitative parameters in this indicator:
The first parameter in the OTT indicator set by the two parameters is the period/length.
OTT lines will be much sensitive to trend movements if it is smaller.
And vice versa, will be less sensitive when it is longer.
As the period increases it will become less sensitive to little trends and price actions.
In this way, your choice of period, will be closely related to which of the sort of trends you are interested in.
The OTT percent parameter in OTT is an optimization coefficient. Just like in the period
small values are better at capturing short term fluctuations, while large values
will be more suitable for long-term trends.
The final adjustable quantitative parameter is HIGHEST and LOWEST length which is the source of calculations.
Credits go to:
SSL Hybrid www.tradingview.com
HIGH and LOW OTT : www.tradingview.com
Range Filter www.tradingview.com
Squeeze M + ADX + TTM (Trading Latino & John Carter) by [Rolgui]About this indicator:
This indicator aims to combine two good performing strategies, which can be used separately or together, mainly for investment positions, although it can also be used for intraday trading.
Strategy 1) Squeeze Oscillator and Average Directional Index:
This strategy is taught by Jaime Aibsai, which determines market entries based on reading the direction of the price movement (Directionality of the Oscillator) along with the strength of the Oscillator (Slope of the ADX).
Both tools are configured according to Jaime Abisai's strategy, by default (note that point 23 of the ADX is represented by point 0 on the panel, to make reading easier, its interpretation is not affected). Anyway you can adjust the input data according to your interest.
*You can see this setting in the first panel.
Strategy 2) Squeeze Momentum and Trade The Market Waves:
This strategy can be consulted either in John F. Carter's books or on his website.
This market reading is based on Price Volatility (Bollinger Bands and Keltner Channels interaction) and its Trend (Exponential Moving Averages), showing entries at times when price volatility is low and taking filtering active trend using T.T.M. Waves.
To configure the indicator in the same way that Carter does, it would be enough to turn off the ADX, turn on the Squeeze Momentum signals along with the T.T.M. Waves, and importantly, change the Linear Momentum value to 12 (this configuration can be found in his book).
*You can see this setting in the second panel.
Why this indicator?
I've added and removed the above flags as I needed to query them (which became tedious for me). The main objective of having merged them into one is to make their reading more agile and comfortable and thus improve the decision-making capacity of the trader who wishes to use them.
Credits and Acknowledgments:
I would like to give credits to other authors, for the sections of code that I have used to make this technical indicator. Thanks to @LazyBear, @matetaronna, @jombie and @joren for contributing to the community and keeping their code open. It is priceless!
Feel free to combine and practice your trading with both strategies, personally, they improved my profitability and this is why I recommend researching more about them. I've been using it for crypto investing, let me know if it's worth for you on stock market!
If you have any questions or suggestions you can leave it in the comments!
Greetings!
Volatility ChannelThis script is based on an idea I have had for bands that react better to crypto volatility. It calculates a Donchian Channel, SMMA-Smoothed True Range, Bollinger Bands (standard deviation), and a Keltner Channel (average true range) and averages the components to construct its bands/envelopes. This way, hopefully band touches are a more reliable indicator of a temporary bottom, and so on. Secondary coloring for strength of trend is given as a gradient based on RSI.
KCGmut“KCGmut” stands for “Mutations Of Keltner Center Of Gravity Channel”.
After adding the ‘KeltCOG Width’ label to the KeltCOG, I got the idea of creating a subpanel indicator to show the development of the width-percent in previous periods. After some more thinking, I decided that the development of the COG-width-percent should also be reported and somehow the indicator should report whether the close is over (momentum is up), in (momentum is sideways) or under (momentum is down) the COG ( This is the gray area in the channel).
Borrowing from other scripts:
I tweeked the script of the KeltCOG (published) to calculate the columns and of REVE (also published) to calculate the volume spikes. Because the KeltCOG script had the default option to let the script chose lookback and adapt the width, I decided to not provide inputs to tweek lookback or channel width. Thus, if you use a KeltCOG in default setting, REVE and KCGmut together in the same chart, these will provide consistent complementary information about the candle. This layout has this combination:
I added actual volume to show where volume spikes occur.
Columns
For the channel-width-percent half of the value is used and for the COG-width-percent the whole to get a better image
By plotting the columns of the full width before those of the COG, in two series of positive and negative values, I created the illusion of a column with a different colored patch representing the COG (most are black) at the bottom where it points up (showing momentum is up), in the middle when the close is in the COG (no momentum) or at the top when the close is below the COG (showing momentum is down)
coloring drama
When nothing much happens, i.e. the channels keep the same width of shrink a bit, the columns get an unobtrusive color, black for the small COG patches and bluish gray for the channel columns pointing up or sideways, reddish gray when pointing down. If the COG increases (drama) the patches get colored lime (up), red (down) or orange (sideways, very seldom). If the channel increases, the columns get colored gold (up), maroon (down) or orange (sideways). Because the COG is derived from a Donchian channel, drama means a new high or low in the lookback period. Drama in the KeltCOG channel just means increase in volatility.
histogram showing volume spikes
Blue spikes indicate more then twice as much volume then recently normal, Maroon spikes indicate clear increases less then twice. To prevent the histogram from disappearing behind a column it is plotted first, spikes made longer then the column and also plotted both positive and negative. Single volume spikes don’t mean much, however if these occur in consecutive series and also come together with drama like new highs or increase in volatility, volume is worth noting. I regard such events as ‘voting’, the market ‘votes’ up or down. The REVE analyses these events to asses whether the volume stems from huge institutional traders (‘whales’) or large numbers of small traders (‘muppets’). This might be interesting too.
Remarks about momentum
Like in MACD, momentum has a direction. The difference is that in KCGmut momentum is a choise of the market to move above the COG (uptrend) or in (sideways) or under (downtrend), whereas in MACD the indicator shows the energy with which the market moves up or down. How does the market ‘choose’? The market doesn’t ‘think’, but still it comes to decisions. I see an analogy with the way a swarm of birds decides to go here or there, up or down, or land in a tree. All birds seem to agree but I guess a single bird has not much say in what the swarm does.
Trading Made Easy Pressure OscillatorAs always, this is not financial advice and use at your own risk. Trading is risky and can cost you significant sums of money if you are not careful. Make sure you always have a proper entry and exit plan that includes defining your risk before you enter a trade.
Those who have looked at my other indicators know that I am a big fan of Dr. Alexander Elder and John Carter. This is relevant to my trading style and to this indicator in general. While I understand it goes against TradingView rules generally to display other indicators while describing a new one, I need the Bollinger Bands, Bollinger Bands Width, and a secondary directional indicator to explain the full power of this indicator. In short, if this is strongly against the rules, I will edit the post as needed.
Those of you who are aware of John Carter are going to know this already, but for those who don’t, an explanation is necessary. John Carter is a relatively famous retail-turned-institutional (sort of) trader. He is the founder of TradetheMarkets, that later turned into SimplerTrading. Him and his company have a series of YouTube videos, he has made appearances on the MoneyShow, TastyTrade, and has authored a couple of books about trading. However, he is probably most famous for his “Squeeze” indicator that was originally launched on Thinkorswim and through his website but has now been incorporated into several trading platforms and even has a few open-source versions available here. In short, the Squeeze indicator looks to identify periods of consolidation and marry that with a momentum oscillator so you can position yourself in a quiet period before a large move. This in my opinion, is one of the best indicators an option trader can have, since options are priced both on time and volatility. To do this, the Squeeze identifies when the Bollinger Bands, a measure of price standard deviation, have contracted inside the Keltner Channels (a measure of the average range of a stock). This highlights something known as “the Squeeze”, when the 2x standard deviations (95% of all likely price movement using data from the past 20 periods) is less than the 1.5x average true range (ATR) of the stock over the same number of periods. These periods are when a stock is resting and in a period of consolidation and is generally followed by another large move once it has rested long enough. The momentum oscillator is used to determine the direction of this next move.
While I think this is one of the best indicators ever made, it is not without its pitfalls. I find that the “Squeeze” periods sometimes take too long to setup (something that was addressed by John and released in a new indicator, the Squeeze Pro, but even that is still slowish) and that the momentum oscillator was also a bit slow. They used a linear regression formula to track momentum, which can lag considerably at times. Collectively, this meant that getting into moves a few candles late was not uncommon or someone solely trading squeeze setups could have missed very good trade opportunities.
To improve on this, I present, the Trading Made Easy Pressure Oscillator. This more accurately identifies when volatility is reducing and the trading range is likely to contract, increasing the “pressure” on the price. This is often marked several candles before a “Squeeze” has started. To identify these ranges, I applied a 21-period exponential moving average to the Bollinger Bands Width indicator (BBW). As mentioned above, the Bollinger Bands measure the 2x standard deviation of price, typically based on a 20-period SMA. When the BBs expand, it marks periods of high volatility, when they contract, conversely, periods of low volatility. Therefore, applying an EMA to the BBW indicator allows us to confidently mark when volatility has slowed down earlier than traditional methods. The second improvement I made was using the Absolute Price oscillator instead of a linear regression-style oscillator. The APO is very similar to a MACD, it measures the difference between two exponential moving averages, here the 8 and 21 (Fibonacci EMAs). However, I find the APO to be smoother than the MACD, yet more reactive than the linear regression-style oscillators to get you into moves earlier.
Uses:
1) Buying before a bigger than expected move. This is especially relevant for options traders since theta decay will often eat away much of our profits while we wait for a large enough price move to offset the time decay. Here, we buy a call option/shares when the momentum oscillator matches the longer-term trend (i.e. the APO crosses over the zero line when price is above the 200-day EMA, and vice versa for puts/shorting the stock). This coincides with Dr. Elder’s Triple Screen Trading System, that we are aligning ourselves with the path of least resistance. We want to do this when price is currently in an increasing pressure situation (i.e. volatility is contracting) to make sure we are buying an option when premium and Implied Volatility is low so we can get a better price and have a better risk to reward ratio. Low volatility is denoted by a purple dot, high volatility a blue dot along the midline of the indicator. A scalper or short-term swing trader may look to exit when the blue dots turn purple signalling a likely end to a move. A longer-term trend trader can look to other exit scenarios, such as a cross of the oscillator below the zero line, signalling to go short, or using a moving average as a trailing stop.
2) Sell premium after a larger than expected move has finished. After a larger than expected move has completed (a series of blue dots is followed by a purple dot), use this time to sell theta-driven options strategies such as straddles, strangles, iron condors, calendar spreads, or iron butterflies, anything that benefits from contracting volatility and stagnating prices. This is useful here since reducing volatility typically means a contraction of prices and the reduced likelihood of a move outside of the normal range.
3) Divergences. This indicator is sensitive enough to highlight divergences. I personally don’t use it as such as I prefer to trend trade vs. reversion trade. Use at your own risk, but they are there.
In summary, this indicator improves upon the famous Squeeze indicator by increasing the speed at which periods of consolidation are marked and trend identification. I hope you enjoy it.
EXAMPLES:enhanced_taThis script is created to demonstrate usage of enhanced ta library which is present here :
Following custom indicators are populated in this script:
ma (Select moving average)
atr/atrpercent (With custom moving average)
bands - Bollinger Band, Keltner Channel, Donchian Channel (All with enhanced versions and additional options)
bandwidth - Bandwidth for the bands available. Uses same input as that of bands
bandpercent - Percentage in relation to band upper and lower levels. Uses same input as that of bands.
oscillator (oscillatorRange) - Generating custom overbought oversold regions.
Display Options
Display individual indicator by selecting them through dropdown. If you select all, we also look at overlay and non-overlay parameters to show/hide only those indicators which are applicable on candle overlay or as separate window.
RSI Trend LineI took a concept similar to the "Adaptive RSI" to get the RSI overlaid on a price chart. The problem I have with the Adaptive RSI is to me it sticks too closely to price. I wanted something much more visually helpful that can provide actual tradable signals and strategies.
The orange line you are seeing is the "RSI Trend Line"
The further the RSI moves away from a value of 50 (the "zero line"), the more you see this orange line move away from price. This helps visualize the strength of price pushing away from a neutral value to a position of strength or weakness-- if orange is below price then relative strength is high; if orange is above price then relative strength is low. When price is equal to the orange RSI line, the RSI is at a value of 50.
In addition to the trend line, you can enable bands which reflect Overbought and Oversold levels . If you leave the responsiveness to a value of 1.0 and removed any smoothing, these should pretty accurately reflect an actual RSI chart topping the OB and OS lines (default 70 and 30, respectively). (They're still very close with different responsiveness and smoothing values)
The conversion or scaling of RSI value onto price comes with a bit of a quirk which I decided to leave to the user to determine how they want it applied. So the setting "Responsiveness" will impact the sort of aggressiveness of the RSI trend line as well as the the size of the bands. You could think of this in some ways as the OPPOSITE of the multiple setting on a Bollinger or Keltner band-- 1.0 will make for the widest band, 2.0 is the default and my preference, and you can move it up to a value of 5.0.
Here are some examples of how you could use the indicator for trade signals--
And here's my thought on the current state (as of 10/06) on indices with regards to this indicator-
Multi-ZigZag Multi-Oscillator Trend DetectorThis table is intended to give you snapshot of how price and oscillators are moving along with zigzag pivots.
This is done in the same lines of Zigzag-Trend-Divergence-Detector
But, here are the differences
Table shows multiple oscillator movements at a same time instead of one selected oscillator
Divergence is not calculated and also supertrend based trend. Trend can be calculated based on zigzag movements. However, lets keep this for future enhancements.
This system also uses multiple zigzags instead of just one.
⬜ Process
▶ Derive multiple zigzags - Code is taken from Multi-ZigZag
▶ Along with zigzags - also calculate different oscillators and attach it to zigzag pivot.
▶ Calculate directions of zigzag pivots and corresponding oscillators.
▶ Plot everything in the table on last bar.
⬜ Table components
Table contains following data:
Directional legends are:
⇈ - Higher High (Green)
⇊ - Lower Low (Red)
⭡- Lower High (Orange)
⭣ - Higher Low (Lime)
⬜ Input Parameters
▶ Source : Default is close. If Unchecked - uses high/low data for calculating pivots. Can also use external input such as OBV
▶ Stats : Gives option to select the depth of output (History) and also lets you chose text size and table position.
▶ Oscillators : Oscillator length is derived by multiplying multiplier to zigzag length. For example, for zigzag 5, with 4 as multiplier, all oscillators are calculated with length 20. But, same for zigzag 8 will be 32 and so on.
▶ Available oscillators :
CCI - Commodity Channel Index
CMO - Chande Momentum Oscillator
COG - Center Of Gravity
MFI - Money Flow Index (Shows only if volume is present)
MOM - Momentum oscillator
ROC - Rate Of Change
RSI - Relative Strength Index
TSI - Total Strength Index
WPR - William Percent R
BB - Bollinger Percent B
KC - Keltner Channel Percent K
DC - Donchian Channel Percent D
ADC - Adoptive Donchian Channel Percent D ( Adoptive-Donchian-Channel )
⬜ Challenges
There are 12 oscillators and each zigzag has different length. Which means, there are 48 combinations of the ocillators.
First challenge was generating these values without creating lots of static initialization. Also, note, if the functions are not called on each bar, then they will not yield correct result. This is achieved through initializer function which runs on every bar and stores the oscillator values in an array which emulates multi dimensional array oscillator X zigzag length.
Next challenge was getting these values within function when we need it. While doing so I realized that values stored in array also have historical series and calling array.get will actully get you the entire series and not just the value. This is an important takeaway for me and this can be used for further complex implementations.
Thanks to @LonesomeTheBlue and @LucF for some timely suggestions and interesting technical discussions :)
Zigzag Trend/Divergence DetectorPullbacks are always hardest part of the trade and when it happen, we struggle to make decision on whether to continue the trade and wait for recovery or cut losses. Similarly, when an instrument is trending well, it is often difficult decision to make if we want to take some profit off the table. This indicator is aimed to make these decisions easier by providing a combined opinion of sentiment based on trend and possible divergence.
⬜ Process
▶ Use any indicator to find trend bias. Here we are using simple supertrend
▶ Use any oscillator. I have added few inbuilt oscillators as option. Default used is RSI.
▶ Find divergence by using zigzag to detect pivot high/low of price and observing indicator movement difference between subsequent pivots in the same direction.
▶ Combine divregence type, divergence bias and trend bias to derive overall sentiment.
Complete details of all the possible combinations are present here along with table legend
⬜Chart Legend
C - Continuation
D - Divergence
H - Hidden Divergence
I - Indeterminate
⬜ Settings
▶ Zigzag parameters : These let you chose zigzag properties. If you check "Use confirmed pivots", then unconfirmed pivot will be ignored in the table and in the chart
▶ Oscillator parameters : Lets you select different oscillators and settings. Available oscillators involve
CCI - Commodity Channel Index
CMO - Chande Momentum Oscillator
COG - Center Of Gravity
DMI - Directional Movement Index (Only ADX is used here)
MACD - Moving average convergence divergence (Can chose either histogram or MACD line)
MFI - Money Flow Index
MOM - Momentum oscillator
ROC - Rate Of Change
RSI - Relative Strength Index
TSI - Total Strength Index
WPR - William Percent R
BB - Bollinger Percent B
KC - Keltner Channel Percent K
DC - Donchian Channel Percent D
ADC - Adoptive Donchian Channel Percent D ( Adoptive-Donchian-Channel )
▶ Trend bias : Supertrend is used for trend bias. Coloring option color candles in the direction of supertrend. More option for trend bias can be added in future.
▶ Stats : Enables you to display history in tabular format.
Overview of settings present here:
⬜ Notes
Trend detection is done only with respect to previous pivot in the same direction. Hence, if chart has too many zigzags in short period, try increasing the zigzag length or chart timeframe. Similarly, if there is a steep trend, use lower timeframe charts to dig further.
Oscillators does not always make pivots at same bar as price. Due to this some the divergence calculation may not be correct. Hence visual inspection is always recommended.
⬜ Possible future enhancements
More options for trend bias
Enhance divergence calculation. Possible options include using oscillator based zigzag as primary or using close prices based zigzag instead of high/low.
Multi level zigzag option - Can be messy to include more than one zigzag. Option can be added to chose either Level1 or Level2 zigzags.
Alerts - Alerts can only be added for confirmed pivots - otherwise it will generate too many unwanted alerts. Will think about it :)
If I get time, I will try to make a video.
Williams Vix Fix + BB & RVI (Top/Bottom) & SqueezeLegend :
- When line touches or crosses red band it is Top signal (Williams Vix Fix)
- When line touches or crosses blue band it is Bottom signal (Williams Vix Fix)
- Red dot at the top of indicator is a Top signal (Relative Volatility Index)
- Blue dot at the top of indicator is a Bottom signal (Relative Volatility Index)
- Gray dot at the bottom of indicator is a Squeeze signal
This is an attempt to make use of the main features of all 4 of these very popular Volatility tools :
- Williams Vix Fix + Bollinger Bands (as per Larry Williams idea, link )
- Relative Volatility Index (RVI)
- The crossing of Keltner Channel by the Bollinger Bands (Squeeze)
The goal is to find the best tool to find bottoms and top relative to volatility . This is a simple combination, but I find it very useful personally
(no need to reinvent the wheel, just need to find what works best)
The idea is that Williams Vix Fix + Bollinger Bands already give the main volatility bottom and top (Bottom are more accurate).
So instead of trying to modify it, I chose to compliment it by mapping with points when the Relative Volatility Index (RVI) reached the
top/bottom thresholds (red dot means top and blue dot means bottom). That way we can easily see when both indicators find a top or bottom relative
to volatility (of course this needs to be then confirmed with a momentum indicator rally).
In addition, I added the squeeze because this quickly shows the potential breakouts.
For ideas on how to continue this work, it would be very interesting to be able to create a probability of a bottom and top relative to volatility using the
Williams Vix Fix + Bollinger Bands and "Relative Volatility Index" signals as both work well and give top or bottom the other doesn't see.
Trading Rule #19This script is based on Trading Rule #19 from Chester Keltner's book How To Make Money On Commodities. It is best applied to candlestick charts with longer time frames and plans with minimal losses (i.e. swing trades). The rule is based on "Key" trend days (this is applied to daily charts in the book).
An initial Key-Up day is established on the third day of 3 consecutive new highs. Subsequent key-up days are determined as follows:
1. The first day following an initial key-up day trades 0.375% above the previous key-up day
2. The second day or any following day trades 0.125% above the previous key-up day
An initial Key-Down day is established on the third day of 3 consecutive new lows. Subsequent key-down days are determined as follows:
1. The first day following an initial key-up day trades 0.375% below the previous key-down day
2. The second day or any following day trades 0.125% below the previous key-down day
Green candles are considered up-trend, red candles are down-trend. Gray candles are undecided - when there is a new high and low in the same time frame, when there is no new high or low in that time frame, or the order price was cleared.
Order prices are represented as a blue line, with some days being "na" when order prices remain unchanged. On key-up days, orders are placed 0.375% below the low of the previous key-up day or the day previous (whichever is lower). Order prices on key-down days are placed 0.375% above the high of the previous key-down day or the day previous (whichever is higher).
The tolerance setting mainly effects the plot point of order price, at a certain point key-trend rules will take priority over order price (meaning if tolerance is high enough, order price will have no effect on determining key-trends).
Elliott Wave Oscillator + TTM SqueezeThe Elliott Wave Oscillator enables traders to track Elliott Wave counts and divergences. It allows traders to observe when an existing wave ends and when a new one begins. It works on the basis of a simple calculation: The difference between a 5-period simple moving average and a 34-period simple moving average.
Included with the EWO are the breakout bands that help identify strong impulses.
To further aid in the detection of explosive movements I've included the TTM Squeeze indicator which shows the relationship between Keltner Channels & Bollinger Bands, wich highlight situations of compression/low volatility, and expansion/high volatility. The dark dots indicate a squeeze, and white dots indicates the end of such squeeze and therefore the start of an expansion.
Enjoy!
Borg's BaselineMoving average baseline comprised of and an adjustable Keltner Channel band around the MA.
Used as directional bias indicator in systems trading.
(JS) Triple StochasticSo I ended up adding a ton of stuff to my prior Double Stochastic script which you can see here .
The concept of the Double was to smooth out the existing Stochastic by applying a Stochastic to the existing Stochastic (hence the Double). My concept for the Triple Stochastic is much different. It combines a regular stochastic, stochastic RSI, and the double stochastic to get a smoothed output based on all 3.
Also - since I love being able to see a Squeeze (see my Squeeze Pro indicators - Squeeze Pro 2 & Squeeze Pro Overlays ) I added the Squeeze to the Stochastic (the dots). If you're unfamiliar with how a Squeeze works, or what it is, check out my links for explanation. A quick explanation however is that the Squeeze is an indicator that was invented by John Carter that detects price compression before a big move out of a range. This is done by using Bollinger Bands and Keltner Channels, the BB shrink inside the KC. The color of the dots represent the depth of the BB in the KC, white (or black) being the lightest squeeze, red being the standard squeeze, and yellow being the strongest squeeze. Now on to the indicator:
The first thing you'll notice is the options available for the type of Stochastic you'd like to use:
Standard : This is a regular Stochastic
Stochastic RSI : This is the standard Stochastic RSI
Double : This is the Stochastic on top of a Stochastic from the prior version
Triple : This is simply an average of all 3 of the above combined together
(Top indicator shows the Triple Stochastic)
The options "K", "D", and "Smooth" are the settings from a regular Stochastic used to set up the type of Stochastic you choose to use.
Now let's say you're not sure how one type performs compared to another, or you like the quickest momentum change but also like to see the smoothest trend, or you want to use the same types of Stochastic and watch for them to cross like moving averages - for these reasons I added the ability to add a second Stochastic for comparison.
(2nd indicator shows a fast and slow Triple Stochastic together)
Quite obviously, the "K 2", "D 2", and "Smooth 2" are what is used in order to set the parameters for the second Stochastic.
Now another thing I added was the option to replace the regular Stochastic and instead look at the distance between the K and D. By turning off "Use K% and D%" you get to see this in action. To put it simply, a cross above zero would indicate a positive Stochastic crossover, and a cross below zero would represent the opposite. There's also an option titled "SMA Length using Difference" which, to smooth this out a bit, allows you to apply a moving average to the distance. By setting it at 1 you'd see the actual distance between K and D.
(3rd indicator shows the K and D distance used as a plot)
Another thing I wanted to do was add a different type of background that wasn't based on the indicator itself. I decided to use ADX & DMI which is a great way to determine the trend. When you select "ADX/DMI BG" the BG colors will change from being based on the indicator to being based on ADX and DMI.
(The 3rd indicator also shows the ADX/DMI BG being used).
And now finally the last feature I decided to add takes us back to the Squeeze. Essentially it is just the Stochastic shown through the lens of Squeeze momentum, as I ended up plugging the Stochastic output into the Squeeze momentum formula to create an oscillator. By selecting "Use Oscillator" you will see this in action as well.
(Bottom indicator shows the oscillator addition)






















