Bollinger Keltner & Momentum only indicator?

JP782

Active member
Im sure it already exists, Im having a hard time finding an indicator that uses the Bollinger and Keltner channels and Momentum indicator? Suggestions?
 
http://tos.mx/cNO3irL my tos trading chart share link
Thanks again for sharing your Chart setup and the RSI Momentum indicator. I added an EMA plot to it with a length of 7 and have seen nice entries when the EMA crosses over the 50 and I exit when the EMA leaves the shaded area (Purple or Red). I have to remember how to send screen shots so I can show you on the charts. I added these two lines of code:

input RSI_Avg_Length = 7;
plot RSI_Avg = MovingAverage(AverageType.Exponential, RSI, RSI_Avg_Length);
 

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

I looked at your alteration. This setup was originally coupled with a volatile futures trading scheme where early signals enable better entries and exits. I did try your slower setting on a stock with a day chart (TQQQ) and tweaked the appearance a bit, which ended up with the following, which I like a lot:
Ruby:
declare lower;
input audioalert = yes;
input length = 3;
input over_Bought = 70;
input over_Sold = 30;
input price = hlc3;
input averageType = AverageType.WILDERS;
input showBreakoutSignals = no;

#Calculate 3-bar RSI
def NetChgAvg = MovingAverage(averageType, price - price[1], length);
def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;

plot RSI = 50 * (ChgRatio + 1);
rsi.setLineWeight(1);
RSI.SetDefaultColor(Color.GRAY);

plot RSIAvg = MovingAverage(AverageType.Exponential, RSI, 7);
rsiavg.setDefaultColor(color.BLACK);

plot OverSold = over_Sold;
oversold.setDefaultColor(color.dark_red);

plot OverBought = over_Bought;
overbought.setDefaultColor(color.blue);

plot UpSignal = if RSI crosses above OverSold then OverSold else Double.NaN;
plot DownSignal = if RSI crosses below OverBought then OverBought else Double.NaN;

plot mid = 50;
mid.SetLineWeight(2);
mid.setDefaultColor(createcolor(150,50,0));

UpSignal.SetHiding(!showBreakoutSignals);
DownSignal.SetHiding(!showBreakoutSignals);
UpSignal.SetDefaultColor(Color.blue);
UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
upSignal.setLineWeight(3);
DownSignal.SetDefaultColor(Color.dark_red);
downSignal.setLineWeight(3);
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);

AddCloud(RSIavg, OverBought, Color.BLUE, Color.LIGHT_GRAY);
AddCloud(OverSold, RSIavg, Color.dark_RED, Color.LIGHT_GRAY);
AddCloud(RSIavg, mid, Color.BLUE, Color.LIGHT_GRAY);
AddCloud(mid, RSIavg, Color.dark_RED, Color.LIGHT_GRAY);
 
Last edited by a moderator:
@JP382 I put together a TTM Squeeze script that incorporates the momentum indicator and uses the TTM zero line for momentum. If that is what you're looking for let me know and I'll post it.
 
Last edited:
@JP382 Squeeze with Momentum overlay
Code:
##Assembled by TheBewb using existing Mobius Squeeze Momentum coding and "squeeze" concept made popular by John Carter.
# mods/additions by Tidan

declare lower;

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;

def PosUp = pos and up;
def PosDn = pos and dn;
def NegDn = neg and dn;
def NegUp = neg and up;


# Momentum plot component
input showMomentumPlot = yes;
input momentumLength = 12;
input momentumPrice = close;
plot MomentumPlot = if showMomentumPlot then momentumPrice - momentumPrice[momentumLength] else double.nan;
#plot momentumZeroLine = 0;
MomentumPlot.SetDefaultColor(color.light_gray);
#momentumZeroLine.SetDefaultColor(color.magenta);


plot squeezeline = if close then 0 else double.nan;
squeezeline.SetPaintingStrategy(PaintingStrategy.POINTS);
squeezeline.setLineWeight(3);
squeezeline.AssignValueColor(if ExtrSqueeze then Color.dark_red else if originalSqueeze then Color.red else if presqueeze then Color.yellow else Color.green);


plot momentum = momo;
momentum.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
momentum.setLineWeight(3);
#momentum.AssignValueColor( if PosUp then Color.green else if PosDn then Color.dark_green else if NegDn then Color.dark_orange else if NegUp then Color.yellow else Color.YELLOW);
momentum.AssignValueColor( if PosUp then Color.cyan else if PosDn then Color.blue else if NegDn then Color.red else if NegUp then Color.yellow else Color.gray);

# end of code
 
I don't believe I've posted any of my Bollinger/Keltner/squeeze scripts here.
And yes I often watch Connors live feed in the mornings.
You still watching Connor? He's changed, seems very tired of doing the broadcasts in the am, starting an hour later now. I emailed a question abt specifically how he takes entries and his response was beyond generic

Yes and I'm a premium member on his Discord. On the bright side he is alot more active over there now.
Ive never seen him take a trade, just talk where to get in and out. Do you know how he does it based of the Std Dev strategy? Is he literally taking entry at whatever devs he marks out and setting stop (1/2 of whatever the price diff is btwn the devs he marks up)?
 
You still watching Connor? He's changed, seems very tired of doing the broadcasts in the am, starting an hour later now. I emailed a question abt specifically how he takes entries and his response was beyond generic
Yes and I'm a premium member on his Discord. On the bright side he is alot more active over there now.

He's watching multiple indications including price action and rsi as price reaches a high TF StdDev. He also watches his proprietary volume indicator.
He doesn't use a hard stop, just a mental one as stops get dinged ALL the time.
Worth noting, his past public videos on YouTube cover all of this.
 
Last edited by a moderator:

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
348 Online
Create Post

Similar threads

Similar threads

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

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.

How do I get started?

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.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top