LazyBear

Indicators: AccSwingIndex, ASI Oscillator and RangeExpansionInde

Accumulation Swing Index
-----------------------------------------------
ASI is a cumulative sum of swing index, developed by Wilder. ASI attemps to show the "real market" by quantifying price. This allows the use of classic support/resistance analysis on the index itself. Typical analysis involves looking for breakouts, new highs and lows, and divergences.

Wilder notes the following characteristics of the Accumulation Swing Index:
- It provides a numerical value that quantifies price swings.
- It defines short-term swing points.
- It indicates the real strength and direction of the market.

Use this for confirmation on S/R breaks, levels et al.

More Info:
- http://www.onlinetradingconcepts.com/TechnicalAnalysis/AccumulativeSwingIndex.html
- http://www.investopedia.com/articles/technical/02/100702.asp

ASI Oscillator
-----------------------------------------------
I converted the ASI in to an oscillator. Advantage over plain ASI is it points out clearly the accumulation drops (distribution) and divergences. Disadvantage is you won't be able to do normal S/R, channel analysis.

More info:
Since this is my own concoction, there is no published theory. Try this out to find out its usecases/nuances :)

Range Expansion Index
-----------------------------------------------
Developed by Tom Demark (first discussed in his book "New Science of Technical Analysis"), this indicator plots the relation between the sum of strong price changes to all price changes for any given period.

Excellent discussion on setups using REI:
http://www.trading-naked.com/mb-range-expansion-setup.htm

More info:
http://en.wikipedia.org/wiki/Range_expansion_index
Remove from Favorite Scripts Add to Favorite Scripts
//
// @author LazyBear
// If you use this code in its orignal/modified form, do drop me a note. 
//
study("Accumulation Swing Index [LazyBear]", shorttitle="ASI_LB")
limit = input(30, "Limit")
lengthMA=input(8, "SMA Length")
showMA=input(true, type=bool)

swingindex( limit ) =>
    r1 = abs( high - close[1] )
    r2 = abs( low - close[1] )
    r3 = abs( high - low )
    r4 = abs( close[1] - open[1] )
    k = max( r1, r2 )
    r = iff( r1 >= max( r2, r3 ), r1 - r2/2 + r4/4,
        iff( r2 >= max( r1, r3 ), r2 - r1/2 + r4/4,
            r3 + r4/4 ) )
    iff( r == 0, 0, 50 * ( ( close - close[1] + 0.5 * ( close - open ) + 0.25 * ( close[1] - open[1] ) ) / r ) * k/limit )

calc_asi( limit ) => 
    cum( swingindex( limit ) )

asi=calc_asi( limit )
s=sma(asi,lengthMA)

plot(asi , color=red, linewidth=2)
plot(showMA?sma(asi, lengthMA):na, color=teal)
Jmertz74
2 years ago
Love how it is in oscillator version. How can I add the script to my list ?
Reply
ljunyan
2 years ago
hi, how do i apply the REI (range expansion index)? it seems that I can only see the ASI indicator when i apply this. thanks!
Reply
IvanLabrie PRO ljunyan
2 years ago
Same, not seeing the code...
Reply
cbud
3 months ago
@LazyBear can you give a hint on how you turned the ASI into an oscillator mathematically?
I would love to test it out and see what kind of divergence signals it gives.
Did you introduce a denominator into the asi final calculation?
Reply
Aerotie
18 days ago
@LazyBear , I'm not able to see ASI Osc and REI when added the the indicator. Only able to see ASI_LB on the charts. Please help me how to get other two indicators as well. Thanks
Reply
Ideas Scripts Chart
United States
United Kingdom
India
España
France
Italia
Brasil
Россия
Türkiye
日本
한국
Home Stock Screener Forex Screener Economic Calendar How It Works Chart Features House Rules Moderators For the WEB Widgets Stock Charting Library Priority Support Feature Request Blog & News FAQ Help & Wiki Twitter
Private Messages Chat Ideas Published Followers Following Priority Support Public Profile Profile Settings Account and Billing Sign Out