Converting Twin Range Filter indicator from Trading View to PRT

Forums ProRealTime English forum ProBuilder support Converting Twin Range Filter indicator from Trading View to PRT

Viewing 3 posts - 1 through 3 (of 3 total)
  • #212468

    Hello, I’m using this indicator from trading view and i find it very useful. is it possible to convert it to PRT?

    thank’s in advance

     

    // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © colinmck

    //@version=4

    study(title=”Twin Range Filter”, overlay=true)

    source = input(defval=close, title=”Source”)

    // Smooth Average Range

    per1 = input(defval=27, minval=1, title=”Fast period”)
    mult1 = input(defval=1.6, minval=0.1, title=”Fast range”)

    per2 = input(defval=55, minval=1, title=”Slow period”)
    mult2 = input(defval=2, minval=0.1, title=”Slow range”)

    smoothrng(x, t, m) =>
    wper = t * 2 – 1
    avrng = ema(abs(x – x[1]), t)
    smoothrng = ema(avrng, wper) * m
    smoothrng
    smrng1 = smoothrng(source, per1, mult1)
    smrng2 = smoothrng(source, per2, mult2)
    smrng = (smrng1 + smrng2) / 2

    // Range Filter

    rngfilt(x, r) =>
    rngfilt = x
    rngfilt := x > nz(rngfilt[1]) ? x – r < nz(rngfilt[1]) ? nz(rngfilt[1]) : x – r :
    x + r > nz(rngfilt[1]) ? nz(rngfilt[1]) : x + r
    rngfilt
    filt = rngfilt(source, smrng)

    upward = 0.0
    upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1])
    downward = 0.0
    downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1])

    hband = filt + smrng
    lband = filt – smrng

    longCond = bool(na)
    shortCond = bool(na)
    longCond := source > filt and source > source[1] and upward > 0 or source > filt and source < source[1] and upward > 0
    shortCond := source < filt and source < source[1] and downward > 0 or source < filt and source > source[1] and downward > 0

    CondIni = 0
    CondIni := longCond ? 1 : shortCond ? -1 : CondIni[1]

    long = longCond and CondIni[1] == -1
    short = shortCond and CondIni[1] == 1

    // Plotting

    plotshape(long, title=”Long”, text=”Long”, style=shape.labelup, textcolor=color.black, size=size.tiny, location=location.belowbar, color=color.lime, transp=0)
    plotshape(short, title=”Short”, text=”Short”, style=shape.labeldown, textcolor=color.white, size=size.tiny, location=location.abovebar, color=color.red, transp=0)

    // Alerts

    alertcondition(long, title=”Long”, message=”Long”)
    alertcondition(short, title=”Short”, message=”Short”)

    #212493

    Sorry, I saw you already coded in PRT Nicolas 🙂

    I read many opinions about the fat that could repaint. what do you think?

     

    #212503

    For the record, the Twin range Filter can be downloaded from here: Twin Range Filter

    There’s no way that this code could repaint in the past. Obviously signals can vary on the current candlestick.

Viewing 3 posts - 1 through 3 (of 3 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login