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/dreissc...

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 :)
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Want to use this script on a chart?
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)

Kommentarer

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.
+3 Svara
@kirklea, That is an interesting idea,I will check to see if I can figure out how to program it into the indicator and let you know.
Svara
TheLark CryptoGraffer
Thanks @CryptoGraffer for replying to @kirklea! I totally missed his message. Funny thing is, I've had an inverted version of this script just sitting around for ages now. I believe another members PM'd me for it a while back.

Anyways, here's the inverted version: https://tradethelark.com/codeshare/inverted-choppiness-index-TradingView.php

Have a great day, and as always, let me know if you have any questions.
+2 Svara
@TheLark, You're welcome, and thanks for sharing that! Can you explain briefly what the grey and blue lines represent, and how to read them? I understand if they are above a certain point it represents trend/chop but what do they represent relative to each other?
Svara
TheLark CryptoGraffer
@CryptoGraffer, Sure! No problem.

Grey and blue lines: Blue is the raw signal. This is the choppiness index line as described in Dreiss's paper.
The grey line is an average of the blue line. Basically all it does is smooth out the action of the blue line. The idea behind the smoothed average line is to minimize false signals due to sudden changes in the blue line. But be aware that smoothing always introduces lag. Sometimes the lag is beneficial, sometimes it results in late "true" signals.

If used, it should be used more as a reference to help validate what the blue line is telling you.
+3 Svara
TheLark TheLark
@TheLark, The above link is dead. Ran out of time to carry the project through. Here's the inverted Choppiness Index for all those who are interested: https://pastebin.com/raw/dAcbjtTr
Svara
That colour scheme was both unic (?),still nice and soft to look at...I didn't thought I should feel that far a "shades of brown" chart. Well done.
Svara
This is great @TheLark thank you very much.
Svara