TheLark

FREE INDICATOR: CHOPPINESS INDEX "TREND DETECTION FROM CHAOS"

About:
The Choppiness Index was created by E.W. Dreiss out of chaos theory, and attempts to gauge the current market's trendiness.
I've seen a few versions of this floating around, but this was built off the true version as described in the original 1993 release, you can read more about it here: http://www.edwards-magee.com/ggu/dreisscaos.pdf

Usage:
Values above 61.8 are considered very choppy, values below 38.2 are considered very trendy, but values along the entire scale can help you determine position sizing, or even weather you should be getting into this trade or not.
If you are looking for a new way to know weather the market is trending, about to trend, or just going sideways, this very handy indicator for algorithmic trading may be your answer.

Grab the source code here: http://pastebin.com/GEtpw6Pd
Installation video by @ChrisMoody here : http://blog.tradingview.com/?p=265

                 ░░░░░░░░░░░░░░░ Feel free to follow me to keep up with my latest scripts! ░░░░░░░░░░░░░░░
                 ░░░░░░░░░░░░ PLEASE THUMB UP OR STAR IF YOU LIKE THIS INDICATOR! ░░░░░░░░░░░░
                                                              I'd like as many people as possible to get it :)
Remove from Favorite Scripts Add to Favorite Scripts
study("TheLark: Choppiness Index", overlay=false)

length = input(14, title="Length")
doavg = input(true,title="Do Average?")
avg = input(4, title="Average Length")
l1 = input(61.8, title="Extreme Chop")
l2 = input(50.0, title="Midline")
l3 = input(38.2, title="Trending")

str = sum(tr,length)
ltl = lowest(low <= close[1] ? low : close[1],length)
hth = highest(high >= close[1] ? high : close[1],length)
height = hth - ltl
chop = 100 * (log10(str / height) / log10(length))

plot(chop, color=#42B0FF, linewidth=2)
plot(doavg ? sma(chop,avg) : na, color=white)
hli1 = hline(l1)
hli2 = hline(l2)
hli3 = hline(l3)

fill(hli1,hli2,black,80)
fill(hli2,hli3,#C8D974,80)

This is great @TheLark thank you very much.
Reply
Hey thanks for making this available.

I am wondering whether it is possible to somehow invert the code though, so that chop is identified by values closer to the lower 38.2 zone and below, and trending values are above 61.8 etc. I just see this as making more sense to me, visually.

Another idea that struck me is a way to show chop values so that they fall in a certain zone above and below a zero midline (say +38.2 / -38.2), with up-trending shown by line values above +61.8 and down-trending shown by line values below -61.8 on a scale from +100 to -100. This would represent a very simple visual representation of price direction in addition to "trend vs chop".

In any case, if it isn't doable I am grateful for your post and will get to know how to use it as it is. Kind regards...Kirk.
Reply