///////////////// This can be further optimized, Let me know with a comment, if you still need this to be optimized. ////////////////////
This update includes
- Added Options to detect squeeze using Heikin Ashi Candle
- Added Options to use BBR or Momentum ( ) for the Momentum Histogram
- Custom Momentum Smoothing time period
- Removed the Separate Look back periods for BB/KC - Since it doesn't really make sense using different lengths for KC and BB.
HA Closes can be really helpful in trading ETFs like FXE , GLD , FXY , SLV etc, which constantly gaps on daily basis. This helps in smoothing out. And most Importantly it Lines up with the Underlying's Squeeze.
[The Next Major Version is currently being Back tested with better timing triggers etc...... That will replace all other Squeeze indicators in the market - Some Major upgrades have been done to the squeezes to read the consolidation is with support or resistance. Also plan on adding best bet entries and pre-breakout signals. So far so good, this recent contradicting trends in daily / weekly in the market is making the indicator hard to work per theory]
The delay is because, I do not like to post any script (with signals) without sufficient back testing . I will not post these indicator with signals, unless I am sure it works per my theoretical derivations.
Thanks for Being Patient and all your support.
Until then - Good Luck Trading.
// Variation - Lazybear Squeeze Indicator // Recreated and Modified by UCSgears // Added Options to detect squeeze using Heikin Ashi Candle // Added Options to use BBR or Momentum (ROC) for the Momentum Histogram // Custom Momentum Smoothing // Removed the Seperate Lookback periods for BB/KC - Since this doesn't really make sense in using a different lengths. study(shorttitle = "UCS_SQUEEZE_Timing_V3", title="Squeeze Momentum Timing and Direction - Version 3", overlay=false) length = input(20, title="Squeeze Length") multBB = input(2,title="BB MultFactor") multKC = input(1.5, title="KC MultFactor") smooth = input(20, title = "Momentum Smoothing") usebbr = input(true, title = "Use Bollinger Band Ratio", type = bool) useHAC = input(true, title = "Use Heikin Ashi Candle", type=bool) useTrueRange = input(true, title="Use TrueRange (KC)", type=bool) // Calculate BB source = useHAC ? ohlc4 : close basis = sma(source, length) dev = multBB * stdev(source, length) upperBB = basis + dev lowerBB = basis - dev // Calculate KC ma = sma(source, length) range = useTrueRange ? tr : (high - low) rangema = sma(range, length) upperKC = ma + rangema * multKC lowerKC = ma - rangema * multKC sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC) sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC) noSqz = (sqzOn == false) and (sqzOff == false) momentum = usebbr ? (((source - lowerBB)/(upperBB - lowerBB))-0.5) : (((close - close)/close)*100) val = sma(momentum,smooth) bcolor = iff( val > 0, iff( val > nz(val), green, blue), iff( val < nz(val), red, orange)) scolor = noSqz ? blue : sqzOn ? red : green plot(val, color=bcolor, style=histogram, linewidth=3) plot(0, color=scolor, style=circles, linewidth=3)
Do you think there is a way to eliminate these false signals in the next version? For example based on your chart the indicator shows a growing downtrend, but the price shoots up. Later the indicator shows a growing uptrend, but the price falls down rapidly. I made a image to explain it: http://i.imgur.com/S4xqNwr.png
If using BBR, the best mathematical way to explain would be, Where the price spent most of its time, Above the Mean or Below the Mean, where the mean is 20 SMA (Length). If the price is below - That this is weak, and the probability is the squeeze will fire down, vice versa otherwise.
When using Momentum (Rate of Change) - this measure the range of the current bar with regards to the previous 12th bar. Your method of following momentum can be nest utilized using ROC than BBR.
Hope this helps.