Cycle Channel Oscillator [LazyBear]

Here's an oscillator derived from my previous script, Cycle Channel Clone (

There are 2 oscillator plots - fast & slow. Fast plot shows the price location with in the medium term channel, while slow plot shows the location of short term midline of cycle channel with respect to medium term channel.

Usage of this is similar to %b oscillator. The slow plot can be considered as the signal line.

Bar colors can be enabled via options page. When short plot is above 1.0 or below 0, they are marked purple (both histo and the bar color) to highlight the extreme condition.

This makes use of the default 10/30 values of Cycle Channel, but may need tuning for your instrument.

More info:

List of my free indicators:
List of my app-store indicators: (More info:

List of my free indicators:
List of my indicators at Appstore:
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?
// @author LazyBear 
// List of my public indicators:
// List of my app-store indicators: 
study("Hurst Cycle Channel Clone Oscillator [LazyBear]", shorttitle="HCCCO_LB", overlay=false)
scl_t =  input(10, title="Short Cycle Length?")
mcl_t =  input(30, title="Medium Cycle Length?")
scm =  input(1.0, title="Short Cycle Multiplier?")
mcm =  input(3.0, title="Medium Cycle Multiplier?")
src=input(close, title="Source")
scl = scl_t/2, mcl = mcl_t/2
scm_off = scm*atr(scl)
mcm_off = mcm*atr(mcl)
scl_2=scl/2, mcl_2=mcl/2
sct =  nz(ma_scl[scl_2], src)+ scm_off
scb =  nz(ma_scl[scl_2], src)- scm_off
mct =  nz(ma_mcl[mcl_2], src)+ mcm_off
mcb =  nz(ma_mcl[mcl_2], src)- mcm_off
ul=plot(1.0, title="UpperLine", color=gray), ml=plot(0.5, title="MidLine", color=gray), ll=plot(0.0, title="LowerLine", color=gray)
fill(ll,ml,color=red), fill(ul,ml,color=green)
plot(omed>=1.0?omed:na, histbase=1.0, style=histogram, color=purple, linewidth=2, title="MediumCycleOB")
plot(omed<=0.0?omed:na, histbase=0.0, style=histogram, color=purple, linewidth=2, title="MediumCycleOS")
plot(oshort>=1.0?oshort:na, histbase=1.0, style=histogram, color=purple, linewidth=2, title="ShortCycleOB")
plot(oshort<=0.0?oshort:na, histbase=0.0, style=histogram, color=purple, linewidth=2, title="ShortCycleOS")
plot(oshort, color=red, linewidth=2, title="FastOsc")
plot(omed, color=green, linewidth=2, title="SlowOsc")
ebc=input(false, title="Enable bar colors")