LazyBear

Indicator: Intrady Momentum Index

The Intraday Momentum Index ( IMI             ), developed by Tushar Chande, is a cross-breed between RSI and candlestick analysis. IMI             determines the candle type that dominated the recent price action, using that to pinpoint the extremes in intraday momentum.

As the market tries to bottom after a sell off, there are gradually more candles with green bodies, even though prices remain in a narrow range. IMI             can be used to detect this shift, because its values will increase towards 70. Similarly, as the market begins to top, there will be more red candles, causing IMI             to decline towards 20. When the market is in trading range, IMI             values will be in the neutral range of 40 to 60.

Usually intraday momentum leads interday momentum. QStick can show interday momentum, it complements IMI             . You will find it in my published indicators.

I have added volatility bands based OB/OS, in addition to static OB/OS levels. You can also turn on IMI             Ehlers smoothing. BTW             , all parameters are configurable, so do check out the options page.

List of my other indicators:
-
- Google             doc: https://docs.google.com/document/d/15AGCufJZ8CIUvwFJ9W-IKns88gkWOKBCvByMEvm5MLo/edit?usp=sharing
Remove from Favorite Scripts Add to Favorite Scripts
//
// @author LazyBear 
// List of all my indicators: https://www.tradingview.com/v/4IneGo8h/
//
study("Intrady Momentum Index [LazyBear]", shorttitle="IMI_LB")
length=input(14, "IMI Length")
lengthMA=input(6, "IMI MA Length")
obLevel=input(70, "IMI static OB level")
osLevel=input(20, "IMI static OS level")
mult=input(2.0, title="Volatility Bands Stdev Mult")
lengthBB=input(20, title="Volatility Bands Length")
applySmoothing=input(false, "Smooth IMI")
lowBand=input(10, "Smoothing LowerBand")
PI=3.14159265359
EhlersSuperSmootherFilter(price, lower) =>
	a1 = exp(-PI * sqrt(2) / lower)
	coeff2 = 2 * a1 * cos(sqrt(2) * PI / lower)
	coeff3 = - pow(a1,2)
	coeff1 = 1 - coeff2 - coeff3
	filt = coeff1 * (price + nz(price[1])) / 2 + coeff2 * nz(filt[1]) + coeff3 * nz(filt[2]) 
	filt

gains=iff(close>open,nz(gains[1])+(close-open),0)
losses=iff(close<open,nz(losses[1])+(open-close),0)
upt=sum(gains,length)
dnt=sum(losses,length)
imi=applySmoothing ? EhlersSuperSmootherFilter(100*(upt/(upt+dnt)), lowBand) : 100*(upt/(upt+dnt))
basisx=ema(imi, lengthBB)
devx = (mult * stdev(imi, lengthBB))
ulx = (basisx + devx)
llx = (basisx - devx)

// Uncomment if you want more bands
//hline(90)
//hline(10)
hline(obLevel)
hline((obLevel+osLevel)/2, linestyle=dotted)
hline(osLevel)
plot(imi, color=red, linewidth=2)
plot(imi>=ulx? imi : na, color=green, style=cross, linewidth=3 )
plot(imi<=llx? imi : na, color=maroon, style=cross, linewidth=3 )
plot(ema(imi, lengthMA), color=blue)
http://www.tradingstrategyideas.com/entries/intraday-momentum-indicator/
Reply
Bravo, always good to see your published charts. Have all your published charts linked in my Indicator list.
Reply
LazyBear QuantitativeExhaustion
Thanks.

Yes, all my indicators are listed there (except this, ofc). I usually update that list every week or so. For a much cleaner list, use the Google docs link.
+1 Reply
In the case where you have two indicators, we can not add both indicators, only the first one listed. When we had the share chart "make it mine" tab, we could copy both indications.
Reply
LazyBear QuantitativeExhaustion
I know, I have requested this feature to @admin/team. Till then "Make mine" is our friend :)
+1 Reply
Glad you did, Team of great programmers here at TV
Reply
//
// @author LazyBear
// List of all my indicators:
//
study("Intrady Momentum Index ", shorttitle="IMI_LB")
length=input(14, "IMI Length")
lengthMA=input(6, "IMI MA Length")
obLevel=input(70, "IMI static OB level")
osLevel=input(20, "IMI static OS level")
mult=input(2.0, title="Volatility Bands Stdev Mult")
lengthBB=input(20, title="Volatility Bands Length")
applySmoothing=input(false, "Smooth IMI")
lowBand=input(10, "Smoothing LowerBand")
PI=3.14159265359
EhlersSuperSmootherFilter(price, lower) =>
a1 = exp(-PI * sqrt(2) / lower)
coeff2 = 2 * a1 * cos(sqrt(2) * PI / lower)
coeff3 = - pow(a1,2)
coeff1 = 1 - coeff2 - coeff3
filt = coeff1 * (price + nz(price)) / 2 + coeff2 * nz(filt) + coeff3 * nz(filt)
filt

gains=iff(close>open,nz(gains)+(close-open),0)
losses=iff(close<open,nz(losses)+(open-close),0)
upt=sum(gains,length)
dnt=sum(losses,length)
imi=applySmoothing ? EhlersSuperSmootherFilter(100*(upt/(upt+dnt)), lowBand) : 100*(upt/(upt+dnt))
basisx=ema(imi, lengthBB)
devx = (mult * stdev(imi, lengthBB))
ulx = (basisx + devx)
llx = (basisx - devx)

// Uncomment if you want more bands
//hline(90)
//hline(10)
hline(obLevel)
hline((obLevel+osLevel)/2, linestyle=dotted)
hline(osLevel)
plot(imi, color=red, linewidth=2)
plot(imi>=ulx? imi : na, color=green, style=cross, linewidth=3 )
plot(imi<=llx? imi : na, color=maroon, style=cross, linewidth=3 )
plot(ema(imi, lengthMA), color=blue)


Now you must copy PINE SCRIPT and paste the entire code when you open up a new chart.
Reply
LazyBear QuantitativeExhaustion
I dont understand the question, sorry. You asking why you must copy the second indicator manually?
+1 Reply
I'm just simply informing.
Reply
EN English
EN English (UK)
EN English (IN)
DE Deutsch
FR Français
ES Español
IT Italiano
PL Polski
SV Svenska
TR Türkçe
RU Русский
PT Português
ID Bahasa Indonesia
MS Bahasa Melayu
TH ภาษาไทย
VI Tiếng Việt
JA 日本語
KO 한국어
ZH 简体中文
ZH 繁體中文
AR العربية
Home Stock Screener Forex Signal Finder Cryptocurrency Signal Finder Economic Calendar How It Works Chart Features House Rules Moderators Website & Broker Solutions Widgets Stock Charting Library Feature Request Blog & News FAQ Help & Wiki Twitter
Profile Profile Settings Account and Billing My Support Tickets Contact Support Ideas Published Followers Following Private Messages Chat Sign Out