+ Donchian Channels

ClassicScott Updated   
This version of Donchian Channels uses two source options so that one can create a channel using highs and lows rather than one or the other or closes. My thinking was that this would create a more accurate portrayal of price action (or at least contain the greatest scope of it) as seen through the lens of a Donchian Channel. This was actually part of the genesis of my idea around my Ultimate Moving Average.
Besides the single top and bottom plot for the DC's extremities, I've enabled the ability to create outer bands with a variable width that the user can adjust to their preference. I think it's quite nice. I use it in the DC in my other non-overlay indicators.
Besides this additional functionality, the indicator has options to plot lines between the basis and the upper and lower bands, so, basically, splitting the upper and lower channel in half.

There is no magic number to the lookback. I chose 233 as default because it's a fibonacci sequence number and I'm more interested in using the DC like a very long period bias indicator, and the longer lookback gives a much wider window (because highs and lows are so spread apart) with which other faster indicators (supertrend, shorter period moving averages, etc.) can work without making the screen a clutter.

The color of the basis may also be made relevant to higher timeframe information. What I mean by this is that you can set it so that the basis of the current timeframe is colored based on the candle close of the higher timeframe of your choosing. If you're looking at an hourly chart, and you set the color to Daily, the basis will be colored based on the candle close (above or below the basis) of the previous day. If the previous daily close was above the basis, that positive color will be reflected in the basis, even if the current hourly candle closes are below the hourly basis. This could potentially be useful for setting a higher timeframe directional bias and reacting off price crossing the lower timeframe basis (or whatever your trigger for entering a trade might be). This is also optional in my Ultimate Moving Average indicator.

You can also set the entire indicator to whatever time frame you want if you want to see where the actual basis, or other levels are on that higher timeframe.

Further additions include fibonacci retracement levels. These are calculated off the high and the low of the Donchian Channels themselves.
You will see that there are only three retracement levels (.786, .705, .382), one of which is not a fib level, but what some people call the 'OTE,' or optimal trade entry. If you want more info on the OTE just web search it. So, why no .618 or .236? Reason being that the .618 overlaps the .382, and the .236 is extremely close to the .786. This sounds confusing, but the retracement levels I'm using are derived from the high and low, so it was unnecessary to have all five levels from each. I could have just calculated from the high, or just from the low, and used all the levels, but I chose to just calculate three levels from the high and three from the low because that gives a sort of mirror image balance, and that appeals to me, and the utility of the indicator is the same.

The plot lines are all colored, and I've filled certain zones between them. There is a center zone filled between both .382 levels, and an upper and lower zone filled between the .786 and either the high or the low.

If you like the colored zones, but don't like the plots because they cause screen compression, turn off the plots under the "style" tab.

There are alerts for candle closes across every line.

I should state that, regarding the fibs, obviously the length of the Channels is going to affect to what levels price retraces to. A shorter lookback means you will see more changes in highs and lows, and therefore retraces are often going to be full retraces within the bands unless price is trending hard. A longer lookback means you will see smaller retraces. Using this in conjunction with key high timeframe levels and/or a moving average can give great confidence in a trade entry. Additionally, if you have a short bias it may help in finding levels or entering a trade on a pullback. It could also be good for trade targets. But again, the lookback you choose for this indicator is going to dictate its use in the system you're building or already have. A 9 EMA and a 200 EMA, while fundamentally the same, are going to be used somewhat differently while doing your chart analysis.

Additional images below.

Same image as main, but with supertrend and my +UMA to help with chart analysis.

Image with the fib stuff turned on.

Zoomed out image with the same.

Shorter lookback period.

Zoomed in image of shorter lookback.
Release Notes:
simply added a color fill between the 0.5 and 0.705 "fib" lines

Release Notes:
- updated to pinescript version 5
- added an EMA input for smoothing (and lagging, of course) the upper and lower boundaries (and thus everything else in the indicator produced by those boundaries). This is interesting in that during strong impulsive movements the indicator will behave more like keltner channels, at least on the side that the movement is on, thus, on a bullish impulse price will run outside of the channel, though the bottom boundary won't react quite so quickly as the top. I think it's a nice optional touch. Could help some traders to stay in trends longer, and/or pick reversal spots.
Image below. This is showing a 55 period Donchian Channel with a 21 period EMA applied to it. Further notations provided in the picture.

Release Notes:
I'm publishing updates to all of my indicators, so I'm just going to comment on everything here since most of the updates are common across most of my indicators.

User Non-Visible Updates (basically backend stuff that makes:
- changes in code legibility and consistency across all indicators (basically standardizing the coding across as many indicators as possible)
- implementation of libraries into my indicators; which helps significantly in doing what I typed above; which in turn will make creating any new indicators, if they are of the type to use these libraries, much simpler
- updated descriptions for all indicators, which should (it's possible I've forgotten things) reflect changes I've made recently and any I may have made in the past after first publication (this is very minor, but as I was changing so much I thought I may as well--I don't intend to update these much, if at all, in the future)

User Visible Updates:
- as I mentioned everything now uses my moving averages library and volatility bands library--this cuts down the total amount of code significantly, and has made it easier for me to add moving averages, or volatility bands to these indicators because I only had to/have to add it one time (to the library) rather than multiple times across all indicators*
- since creating these libraries I've added several new moving averages (Kaufman Adaptive, Laguerre Filter, McGinley Dynamic (doesn't work for all), and Zero-lag) to them while retaining all the previous with the exception of the UMA, which wasn't implemented consistently across all indicators anyway
- eliminated having two Bollinger Bands with different standard deviations and a fill between them in exchange for one with the band fill implementation that I use on my Donchian Channels Bands
- part of my code consistency across all indicators resulted in a much needed organization of the 'style' tab

*(affects all but the Wavetrend Oscillator, Wavetrend Oscillator Overlay, Jurik KDJ, Average Candle Bodies Range, Bollinger Bands Width, ALMA Trend Detector, Ultimate Moving Average, Donchian Channels, and Dynamic Donchian Channels)

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.


The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?