Sneaky_Swings
Member
Thank you so much for this incredible edit. I uploaded it onto my charts and the patterns are definitely much easier to see with the addition of the new squeeze conditions.
VTR is a momentum indicator that shows if a stock is overbought or oversold based on its Weekly and Monthly average volatility trading range.
@whats up I was trying to use it on the 1000 tick chart but the indicator just wasn't quick enough to keep up. I'd at least bump it up to 5 minutes. I've seen the best results with the higher time frames for this indicator. Figured it was worth sharing, even though it doesn't match my trading style. Thought others would enjoy the concept.@Shooters_Gotta_Shoot Nice work. What is the good time frame to use this indicator?
thank you i did tested on a one minutes and 5min chart@whats up I was trying to use it on the 1000 tick chart but the indicator just wasn't quick enough to keep up. I'd at least bump it up to 5 minutes. I've seen the best results with the higher time frames for this indicator. Figured it was worth sharing, even though it doesn't match my trading style. Thought others would enjoy the concept.
You can edit dot size in the Study Settings panel... In the default TTM_Squeeze that comes in TOS you would change the VolComp dots... I think they are set to 3 by default but can be increased to 5...Hi All - this is great - but is there a way to make the dots bigger? They are tiny on the histogram - I've noticed that on other charts they are about 3x larger - very difficult to see on this. I checked the TOS painting strategy docs, but not seeing a solution there.
Didn’t really use the indicator much myself. I focus mainly on the 1 min charts and didn’t find much success with it, but like the regular TTM, I’m sure the higher the time frame the better it will work.@Shooters_Gotta_Shoot Do you know how to create an alert when a Yellow Dot is plotted?
input price = close;
input length = 20;
input Num_Dev_Dn = -2.0;
input Num_Dev_up = 2.0;
input averageType = AverageType.SIMPLE;
input displace = 0;
def sDev = StDev(data = price[-displace], length = length);
def MidLineBB = MovingAverage(averageType, data = price[-displace], length = length);
def LowerBandBB = MidLineBB + Num_Dev_Dn * sDev;
def UpperBandBB = MidLineBB + Num_Dev_up * sDev;
input factorhigh = 1.0;
input factormid = 1.5;
input factorlow = 2.0;
input trueRangeAverageType = AverageType.SIMPLE;
def shifthigh = factorhigh * MovingAverage(trueRangeAverageType, TrueRange(high, close, low), length);
def shiftMid = factormid * MovingAverage(trueRangeAverageType, TrueRange(high, close, low), length);
def shiftlow = factorlow * MovingAverage(trueRangeAverageType, TrueRange(high, close, low), length);
def average = MovingAverage(averageType, price, length);
def Avg = average[-displace];
def UpperBandKCLow = average[-displace] + shiftlow[-displace];
def LowerBandKCLow = average[-displace] - shiftlow[-displace];
def UpperBandKCMid = average[-displace] + shiftMid[-displace];
def LowerBandKCMid = average[-displace] - shiftMid[-displace];
def UpperBandKCHigh = average[-displace] + shifthigh[-displace];
def LowerBandKCHigh = average[-displace] - shifthigh[-displace];
def K = (Highest(high, length) + Lowest(low, length)) /
2 + ExpAverage(close, length);
def momo = Inertia(price - K / 2, length);
def pos = momo>= 0;
def neg = momo< 0;
def up = momo >= momo[1];
def dn = momo < momo[1];
def presqueeze = LowerBandBB > LowerBandKCLow and UpperBandBB < UpperBandKCLow;
def originalSqueeze = LowerBandBB > LowerBandKCMid and UpperBandBB < UpperBandKCMid;
def ExtrSqueeze = LowerBandBB > LowerBandKCHigh and UpperBandBB < UpperBandKCHigh;
plot scan = presqueeze or originalSqueeze or extrSqueeze within 1 bar;
This works amazingly. I'm currently using a wl column ttm status using the standard ttm. Do you have a wl column for this pro replica? @Sneaky_Swings
input price = close;
input length = 20;
input Num_Dev_Dn = -2.0;
input Num_Dev_up = 2.0;
input averageType = AverageType.SIMPLE;
input displace = 0;
def sDev = StDev(data = price[-displace], length = length);
def MidLineBB = MovingAverage(averageType, data = price[-displace], length = length);
def LowerBandBB = MidLineBB + Num_Dev_Dn * sDev;
def UpperBandBB = MidLineBB + Num_Dev_up * sDev;
input factorhigh = 1.0;
input factormid = 1.5;
input factorlow = 2.0;
input trueRangeAverageType = AverageType.SIMPLE;
def shifthigh = factorhigh * MovingAverage(trueRangeAverageType, TrueRange(high, close, low), length);
def shiftMid = factormid * MovingAverage(trueRangeAverageType, TrueRange(high, close, low), length);
def shiftlow = factorlow * MovingAverage(trueRangeAverageType, TrueRange(high, close, low), length);
def average = MovingAverage(averageType, price, length);
def Avg = average[-displace];
def UpperBandKCLow = average[-displace] + shiftlow[-displace];
def LowerBandKCLow = average[-displace] - shiftlow[-displace];
def UpperBandKCMid = average[-displace] + shiftMid[-displace];
def LowerBandKCMid = average[-displace] - shiftMid[-displace];
def UpperBandKCHigh = average[-displace] + shifthigh[-displace];
def LowerBandKCHigh = average[-displace] - shifthigh[-displace];
def K = (Highest(high, length) + Lowest(low, length)) /
2 + ExpAverage(close, length);
def momo = Inertia(price - K / 2, length);
def pos = momo>= 0;
def neg = momo< 0;
def up = momo >= momo[1];
def dn = momo < momo[1];
def presqueeze = LowerBandBB > LowerBandKCLow and UpperBandBB < UpperBandKCLow;
def originalSqueeze = LowerBandBB > LowerBandKCMid and UpperBandBB < UpperBandKCMid;
def ExtrSqueeze = LowerBandBB > LowerBandKCHigh and UpperBandBB < UpperBandKCHigh;
addlabel(yes, if extrSqueeze then "extraSqueeze" else if presqueeze then "preSqueeze" else if originalSqueeze then "squeeze" else if preSqueeze then "preSqueeze" else "noSqueeze");
assignBackgroundColor(if ExtrSqueeze then Color.red else if originalSqueeze then Color.blue else if presqueeze then color.white else Color.gray);
input risk = 100;
def inSqueeze = reference TTM_Squeeze.SqueezeAlert == 0;
def momo = reference TTM_Squeeze.Histogram;
def waveHigh = reference TTM_Wave.Wave2High;
def waveLow = reference TTM_Wave.Wave2Low;
def waveIsLong = waveHigh >= waveHigh[1] and waveLow >= waveLow[1];
def upTrend = reference TTM_Trend.TrendUp;
def downTrend = reference TTM_Trend.TrendDown;
def isTrigger = !inSqueeze and inSqueeze[1] and momo > momo[1] and waveIsLong and upTrend;
AddOrder(OrderType.BUY_TO_OPEN, isTrigger, open[-1], RoundDown(Max(risk / (high - low + .02), 1), 0), GetColor(8), GetColor(8), "Squeeze LE");
def isExit = downTrend;
AddOrder(OrderType.SELL_TO_CLOSE, isExit, open[-1], 0, GetColor(8), GetColor(8), "Trend LX");
def bb = reference BollingerBands.LowerBand;
def squeezeLevel =
if bb > reference KeltnerChannels(factor = 1.0).Lower_Band then 3
else if bb > reference KeltnerChannels(factor = 1.5).Lower_Band then 2
else if bb > reference KeltnerChannels(factor = 2.0).Lower_Band then 1
else 0
;
# 0 = gray / no squeeze, 1 = dark orange / low squeeze, 2 = yellow / normal squeeze, 3 = red / high squeeze
plot scan = squeezeLevel > 0;
how does one use this study? Can someone using it successfully comment on what they look for, entry and exit signals etc?
Hello All,
@BenTen/Others ; Please move this question to appropriate thread if there is one.
Recently began looking at TTM Squeeze indicators, watch list, studies, there are so many threads to confuse a new person like me. Is there a post or process which allows us to predict how big will be the Squeeze uptrend (light blue colors) will be.
Thanks
What is the displace length and deviation for bb what is that for kc Both are for tos@Trader Raider i am sorry that you were disappointed with the TTM SQUEEZE Pro performance. Based on my continuous observation of the combination of BB/KC in relation with Price Action, there is lag that can be costly. What i did is i modified the parameters to help give a better signal on lower time frames
BB(2.0,8,exponential)
KC(1.0,8, exponential)
If BB is inside KC THEN THAT IS A SQZ I WOULD WATCH AND I WILL FOLLOW THE PRICE DIRECTION.
To confirm the accuracy of such set up, the squeeze on chart that is posted on this forum by mobius can go hand in hand with the setting above.
any questions, feel free to ask
Check out our Buy the Dip indicator and see how it can help you find profitable swing trading ideas. Scanner, watchlist columns, and add-ons are included.
Start a new thread and receive assistance from our community.
useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.
We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.
If you are new, or just looking for guidance, here are some helpful links to get you started.