JayRogers

High-Low Difference Channels r2

About:

I developed the original as an experiment to potentially replace or augment my BB and RSI based strategies. After some back-testing I could see some really interesting results but it wasn't quite where I wanted it, so after some tweaking and further back-testing, and adding in more MA options, here we are. Mostly tested on 1h and greater time-frames using default settings.

Description / Usage:
  • Adjust length and multiplier much the same way you would expect with Bollinger Bands .
  • Multiplier of 1 gives you a base channel consisting of one high, and one low sourced MA
  • The outer channels are increments of the base high-low channel width, away from the hl2 sourced MA

r2 Changes:
  • Increased amount of up/down channels to 5, and lowered multiplier default to 1 (previously 1.5)
  • Tweaked default colour scheme.
  • Pick your MA poison of choice! Added choices for all your common MA variants.

Issues:
  • VWMA bugs out and refuses to draw sometimes - no idea why.

Additional Notes:

All MA variants available in this script were derived directly from the sources of those available within the pine editor. I have been fairly diligent trying to ensure they all function correctly, but I can't 100% guarantee it, so if anyone gives the script a try, or dives into the code and see's something odd - don't hesitate to let me know!

It would also be fantastic to hear feedback from anyone who finds use for this, to augment an existing strategy/idea, or develop something new. :)
Commento: Final revision done. No more tweaks/changes pending.

Added (optional) select-able fixed resolutions, so you can have 1 hour bands on your 1 minute chart if you do so feel inclined.

Otherwise just some minor code cleaning and proper commenting:
Rimuovi dagli script preferiti Aggiungi agli script preferiti
//@version=2

study(title="High-Low Difference Channels r2 - SMA/EMA/WMA/VWMA/SMMA/DEMA/HullMA/LSMA", shorttitle="HLDC_r2", overlay=true)

// Revision:    2
// Author:      JayRogers
//
// Description / Usage:
//  - Adjust length and multiplier much the same way you would expect with Bollinger Bands.
//  - multiplier of 1 gives you a base channel consisting of one high, and one low sourced MA
//  - The outer channels are increments of the base high-low channel width, away from the hl2 sourced MA
//
// r2 Changes:
//  - Increased amount of up/down channels to 5, and lowered multiplier default to 1 (previously 1.5)
//  - Tweaked default colour scheme.
//  - Pick your MA poison of choice! Added choices for all your common MA variants.
//
// Issues *
//  - VWMA bugs out and refuses to draw sometimes. No idea why.

hlc_typeString  = input(defval="SMA", title="Pick your Poison: SMA, EMA, WMA, VWMA, SMMA, DEMA, HullMA, LSMA (case sensitive)", type=string)
hlc_length      = input(defval=50, title="Channel Length", minval=1)
hlc_diffMult    = input(defval=1.0, title="Channel Width Multiplier", minval=0.1, maxval=50)
lsma_offset     = input(defval=0, title="LSMA Offset (only affects LSMA)")

maVariant(maT, maS, maL) =>
    v1 = sma(maS, maL)                                                  // Simple
    v2 = ema(maS, maL)                                                  // Exponential
    v3 = wma(maS, maL)                                                  // Weighted
    v4 = vwma(maS, maL)                                                 // Volume Weighted *
    v5 = na(v5[1]) ? sma(maS, maL) : (v5[1] * (maL - 1) + maS) / maL    // Smoothed
    v6 = 2 * ema(maS, maL) - ema(ema(maS, maL), maL)                    // Double Exponential
    v7 = wma(2 * wma(maS, maL / 2) - wma(maS, maL), round(sqrt(maL)))   // Hull
    v8 = linreg(maS, maL, lsma_offset)                                  // Least Squares
    // return MA poison of choice, defaults to SMA (in case of input typo)
    r = maT=="SMA"?v1 : maT=="EMA"?v2 : maT=="WMA"?v3 : maT=="VWMA"?v4 : maT=="SMMA"?v5 : maT=="DEMA"?v6 : maT=="HullMA"?v7 : maT=="LSMA"?v8 : v1

hl2_line    = maVariant(hlc_typeString, hl2, hlc_length)
high_line   = maVariant(hlc_typeString, high, hlc_length)
low_line    = maVariant(hlc_typeString, low, hlc_length)

diffMult(num) =>
    hldm = (high_line - low_line) * hlc_diffMult
    r = hldm * num

midline     = plot(hl2_line, title="Midline", color=#0066AA, linewidth=1, transp=50)

highLine    = plot(hl2_line + (diffMult(1) / 2), title="Center Channel Upper", color=silver, transp=100)
lowLine     = plot(hl2_line - (diffMult(1) / 2), title="Center Channel Lower", color=silver, transp=100)

diffUp1     = plot(hl2_line + diffMult(1), title="High Diff 1", color=#0099FF, transp=80)
diffUp2     = plot(hl2_line + diffMult(2), title="High Diff 2", color=#0099FF, transp=80)
diffUp3     = plot(hl2_line + diffMult(3), title="High Diff 3", color=#0099FF, transp=80)
diffUp4     = plot(hl2_line + diffMult(4), title="High Diff 4", color=#0099FF, transp=80)
diffUp5     = plot(hl2_line + diffMult(5), title="High Diff 5", color=#0099FF, transp=80)

diffDown1   = plot(hl2_line - diffMult(1), title="Low Diff 1", color=#0099FF, transp=80)
diffDown2   = plot(hl2_line - diffMult(2), title="Low Diff 2", color=#0099FF, transp=80)
diffDown3   = plot(hl2_line - diffMult(3), title="Low Diff 3", color=#0099FF, transp=80)
diffDown4   = plot(hl2_line - diffMult(4), title="Low Diff 4", color=#0099FF, transp=80)
diffDown5   = plot(hl2_line - diffMult(5), title="Low Diff 5", color=#0099FF, transp=80)

fill(highLine, lowLine, title="Center High-Low Fill", color=silver, transp=70)
just put 3 bollingers that is easier 104 1, 104 2 , 104 3 & a macd or ichimoku
Rispondi
3 standard bollingers, although similar in use, offer quite different visual signals to this concept.
Rispondi
Home Screener azioni Screener forex Screener cripto Calendario economico Come funziona Caratteristiche Grafico Costi Regolamento Moderatori Soluzioni per broker & siti web Widget Librerie grafiche Chiedi aiuto Suggerisci funzionalità Blog & Novità FAQ Wiki Twitter
Profilo Impostazioni profilo Account e fatturazione Chiedi aiuto Idee pubblicate Follower Seguiti Messaggi Privati Chat Esci