# KeltnerChannels Channels with aggregation Period
# Horserider 4/7/2020
declare weak_volume_dependency;
input displace = 0;
input factor = 1.5;
input length = 20;
input averageType = AverageType.SIMPLE;
input trueRangeAverageType = AverageType.SIMPLE;
input agg = aggregationPeriod.FOUR_HOURS;
def shift = factor * MovingAverage(trueRangeAverageType, TrueRange(high(period = agg), close(period = agg), low(period = agg)), length);
def average = MovingAverage(averageType, close(period = agg), length);
plot Avg = average[-displace];
Avg.SetDefaultColor(GetColor(1));
plot Upper_Band = average[-displace] + shift[-displace];
Upper_Band.SetDefaultColor(GetColor(8));
plot Lower_Band = average[-displace] - shift[-displace];
Lower_Band.SetDefaultColor(GetColor(5));
Thank you for your study, this one is very helpful!Code:# KeltnerChannels Channels with aggregation Period # Horserider 4/7/2020 declare weak_volume_dependency; input displace = 0; input factor = 1.5; input length = 20; input averageType = AverageType.SIMPLE; input trueRangeAverageType = AverageType.SIMPLE; input agg = aggregationPeriod.FOUR_HOURS; def shift = factor * MovingAverage(trueRangeAverageType, TrueRange(high(period = agg), close(period = agg), low(period = agg)), length); def average = MovingAverage(averageType, close(period = agg), length); plot Avg = average[-displace]; Avg.SetDefaultColor(GetColor(1)); plot Upper_Band = average[-displace] + shift[-displace]; Upper_Band.SetDefaultColor(GetColor(8)); plot Lower_Band = average[-displace] - shift[-displace]; Lower_Band.SetDefaultColor(GetColor(5));
# KeltnerChannels Channels with aggregation Period # Horserider 4/7/2020 declare weak_volume_dependency; input displace = 0; input factor = 1.5; input length = 20; input averageType = AverageType.SIMPLE; input trueRangeAverageType = AverageType.SIMPLE; input agg = aggregationPeriod.FOUR_HOURS; def shift = factor * MovingAverage(trueRangeAverageType, TrueRange(high(period = agg), close(period = agg), low(period = agg)), length); def average = MovingAverage(averageType, close(period = agg), length); plot Avg = average[-displace]; Avg.SetDefaultColor(GetColor(1)); plot Upper_Band = average[-displace] + shift[-displace]; Upper_Band.SetDefaultColor(GetColor(8)); plot Lower_Band = average[-displace] - shift[-displace]; Lower_Band.SetDefaultColor(GetColor(5));
Hello, i know its been quite some time, wonder if its possible to include custom name on the right for every level? thanks.
input offSet = 2;
def bar = barNumber();
def timeAxis = if IsNaN(close[-1]) and !IsNaN(close) then bar else timeAxis[1];
AddChartBubble(bar == HighestAll(timeAxis+offSet), Upper_Band, "Upper", GetColor(8));
AddChartBubble(bar == HighestAll(timeAxis+offSet), Avg, "Mid", GetColor(1));
AddChartBubble(bar == HighestAll(timeAxis+offSet), Lower_Band, "Lower", GetColor(5));
thank you very much, it doesn't seem to plot in Daily chart?Chart Bubbles On The Right Of Levels
Append this code snippet to the bottom of your study:
Ruby:input offSet = 2; def bar = barNumber(); def timeAxis = if IsNaN(close[-1]) and !IsNaN(close) then bar else timeAxis[1]; AddChartBubble(bar == HighestAll(timeAxis+offSet), Upper_Band, "Upper", GetColor(8)); AddChartBubble(bar == HighestAll(timeAxis+offSet), Avg, "Mid", GetColor(1)); AddChartBubble(bar == HighestAll(timeAxis+offSet), Lower_Band, "Lower", GetColor(5));
![]()
Attached image on 3m timeframe; wonder if its possible to plot them on the far right like the other plots?
Join useThinkScript to post your question to a community of 21,000+ developers and traders.
Thread starter | Similar threads | Forum | Replies | Date |
---|---|---|---|---|
H | 8EMA crosses Keltner Channel signal | Questions | 1 | |
R | Keltner Channel + RSI variation | Questions | 1 | |
D | Price Cross Above Lower Keltner Channel | Questions | 1 | |
P | Price close to Moving Avg or Keltner Channel | Questions | 1 | |
N | Plot horizontal line at keltner channel | Questions | 3 |
Start a new thread and receive assistance from our community.
useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.
We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.
If you are new, or just looking for guidance, here are some helpful links to get you started.