Converting Twin Range Filter indicator from Trading View to PRT

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #212468 quote
    AragornaAragorna
    Participant
    Average

    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 quote
    AragornaAragorna
    Participant
    Average

    Sorry, I saw you already coded in PRT Nicolas 🙂

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

    #212503 quote
    NicolasNicolas
    Keymaster
    Legend

    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)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Converting Twin Range Filter indicator from Trading View to PRT


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
Aragorna @aragorna Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by NicolasNicolas
3 years, 5 months ago.

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 03/30/2023
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...