Range filter

v11
Range filter

Inspired by the QQE’s volatility filter, this filter applies the process directly to price rather than to a smoothed RSI.

This is an experimental study designed to filter out minor price action for a clearer view of trends.

First, a smooth average price range is calculated for the basis of the filter and multiplied by a specified amount.
Next, the filter is calculated by gating price movements that do not exceed the specified range.
Lastly the target ranges are plotted to display the prices that will trigger filter movement.

Custom bar colors are included. The color scheme is based on the filtered price trend.

Select the type you want to use via the “Filter Type” input. Type 1 is the original formula.
Multiple range sizing methods are available. You can choose from the following scales:

  1. Points
  2. Pips (Works best with forex pairs, obviously)3
  3. Ticks4
  4. % of Price
  5. ATR
  6. Average Change (Default. This is the original sizing method.)
  7. Standard Deviation

Range smoothing is optional, and you can specify your smoothing length. Smoothing only affects dynamic scales (ATR, Average Change, and Standard Deviation).
Filter movement can be determined using wicks or close. This can be specified via the “Movement Source” input.

(description from the original author of this indicator: Donowan Wall, all credits go to him).

 

 

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

  1. eckaw • 10/06/2020 #

    Hi Nicolas, I get a syntax error message on line 62, 63, 64. Do you know how this can be fixed?

  2. IV Mcm • 10/06/2020 #

    For PRT Version V10.30

  3. IV Mcm • 10/06/2020 #

    //PRC_Range Filter | indicator
    //06.10.2020

    //Nicolas @ http://www.prorealcode.com
    //Sharing ProRealTime knowledge

    // — settings
    //ftype = 1 //Filter Type (1 or 2?)
    //rngqty = 2.618 //Range Size
    //rngscale = 6 //Range Scale (1=Points, 2=Pips, 3=Ticks, 4=% of Price, 5=ATR, 6=Average Change, 7=Standard Deviation
    //rngper = 14 //Range Period (for ATR, Average Change, and Standard Deviation)
    //smoothrange = 1 //Smooth Range (0=false ; 1=true)
    //smoothper = 27 //Smoothing Period
    //movsrc = 1 //Movement Source (0=Wicks, 1=Close)
    //— end of settings

    once rngfilt=close
    if barindex>max(rngper,smoothper) then
    //Range Size Function
    rngscale=max(1,min(rngscale,7))
    if rngscale=1 then
    scale = rngqty*pointsize
    elsif rngscale=2 then
    scale = rngqty*.0001
    elsif rngscale=3 then
    scale = rngqty*ticksize
    elsif rngscale=4 then
    scale = close*rngqty/100
    elsif rngscale=5 then
    scale = rngqty*average[rngper,1](tr)
    elsif rngscale=6 then
    scale = rngqty*average[rngper,1](abs(close-close[1]))
    elsif rngscale=7 then
    scale = STD[rngper](close)
    endif

    if smoothrange then
    r=average[smoothper,1](scale)
    else
    r=scale
    endif

    hh=close
    ll=close
    if movsrc1 then
    hh=high
    ll=low
    endif
    if ftype=1 then
    if hh>rngfilt[1] then
    if (hh-r)rngfilt[1] then
    rngfilt=rngfilt[1]
    else
    rngfilt=ll+r
    endif
    else //ftype1
    if hh>=rngfilt[1]+r then
    rngfilt=(rngfilt[1]) + (abs(hh – (rngfilt[1]))/r)*r
    elsif llrngfilt[1] then
    upward=1
    downward=0
    endif
    if rngfilt rngfilt) and (close > (close[1])) and (upward > 0) then
    br=5
    bg=255
    bb=155
    //#05ff9b
    elsif (close > rngfilt) and (close 0) then
    br=0
    bg=179
    bb=107
    //#00b36b
    elsif (close < rngfilt) and (close 0) then
    br=255
    bg=5
    bb=131
    //#ff0583
    elsif (close = (close[1])) and (downward > 0) then
    br=184
    bg=0
    bb=93
    //#b8005d
    else
    br=204
    bg=204
    bb=204
    endif
    drawcandle(open,high,low,close) coloured(br,bg,bb) bordercolor(0,0,0)

    //Band Fills
    drawtriangle(barindex[1],hiband[1],barindex,rngfilt,barindex[0],hiband[0]) coloured(0,179,107,85)
    drawtriangle(barindex[1],hiband[1],barindex[1],rngfilt[1],barindex[0],rngfilt[0]) coloured(0,179,107,85)
    drawtriangle(barindex[1],loband[1],barindex,rngfilt,barindex[0],loband[0]) coloured(184,0,93,85)
    drawtriangle(barindex[1],loband[1],barindex[1],rngfilt[1],barindex[0],rngfilt[0]) coloured(184,0,93,85)
    endif

    return rngfilt coloured(cr,cg,cb) style(line,3) as “Filter”

  4. parthapersonal • 10/06/2020 #

    Thanks Nicolas, however it is throwing errors as enclosed.

  5. parthapersonal • 10/06/2020 #

    if hh>rngfilt[1] then
    if (hh-r)rngfilt[1] then
    rngfilt=rngfilt[1]
    else
    rngfilt=ll+r
    endif
    else //ftype1
    if hh>=rngfilt[1]+r then
    rngfilt=(rngfilt[1]) + (abs(hh – (rngfilt[1]))/r)*r
    elsif llrngfilt[1] then
    upward=1
    downward=0
    endif
    if rngfilt rngfilt) and (close > (close[1])) and (upward > 0) then
    br=5
    bg=255
    bb=155
    //#05ff9b
    elsif (close > rngfilt) and (close 0) then
    br=0
    bg=179
    bb=107
    //#00b36b
    elsif (close < rngfilt) and (close 0) then
    br=255
    bg=5
    bb=131

  6. Nicolas • 10/06/2020 #

    This code is compatible only with PRT v11. Use this version with prior version of the platform: https://www.prorealcode.com/prorealtime-indicators/range-filter/#comment-10834

  7. BobFlynn • 10/06/2020 #

    Awesome Nicolas !! I’m glad you took the time to work on this. Can’t thank you enough ! 🙂

    • BobFlynn • 10/06/2020 #

      Unfortunately, the 10.3 code is missing some parts and cant compile. @IV MCM can you check ? I think the Copy Paste is broken in the comments… Merci d’avance 🙂

  8. IV Mcm • 10/06/2020 #

    Indeed, copy-paste does not work.

    You must delete “floor” in the original code line 62 and 64.
    You must also delete the “bordercolor (x,x,x,x)” line 122-123-124 and 125.

  9. Canis Majoris • 10/06/2020 #

    Bonjour Nicolas,

    J’ai pas bien compris le principe de fonctionnement de ce range filter indicator ?

    quelle est la signification de la bougie grise ? Je vois 3 couleurs de bougies possible ( vert, rose et gris ) !
    Merci

    • Nicolas • 10/06/2020 #

      La définition des couleurs se situent entre les lignes 94 et 118. Selon le type de bougie (haussière ou baissière), si elle situe dessus/dessous de la ligne centrale (le range filter) et si cette dernière est ascendante ou descendante. Je ne suis pas l’auteur de cet indicateur, j’ai réalisé une conversion de code suite à une demande.

  10. Manu35250 • 10/06/2020 #

    Bonjour Nicolas,

    Est il possible de convertir cet indicateur en screener ? J’essaie depuis plusieurs jours mais impossible.

    Merci de votre retour.

    • Nicolas • 10/06/2020 #

      Bien sûr, merci de formuler la demande dans le forum approprié en respectant les règles de publication et je serai en mesure de t’aider.

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
oliverkeim Hi, also here not working. Only white lines.
killerplatuze Dont work anymore with the current version?
KryptoKat tolle Arbeit, professionell
Nicolas Ask on an Excel website?!
JJMR HOLA NICOLAS, TENGO LA ULTIMA VERSION ACTUALIZADA DEL INDICADOR TTM SQUEEZE PRO EN LA VERSIO...
imokdesign @nicolas ,if in want to "call" this indicator, which values i have to write down?
Screw27 Salut nicolas j'aimerais savoir tes résulats grace a cettte methode
eva.g.forsgren It dose not work, I get a strap instead of candels???????????????????????????????????????????
Nicolas That indicator is the one below the chart. The indicator to put on the price chart is this o...
pyhrus P.S : IG , que j'ai contacté ,m'indique que la version V11 , ne sera pas disponible avant un...
Hasardeur Dear Nicolas, is there someting at the arry to modify in order to run the trend at the actu...
MALIMALO Dear Nicolas, just try touse your indicator with backtest but it's not working. is anybody...
Nicolas Check your custom trading hours and use the default market ones.
fj_pastor Hello Nicolas, Thanks again for all your support. Finally I debugged the problem. The sim...
kallistos Hi Nicolas, Thank you very much indeed for this indicator (and all the others you are provi...
Morrissey38 Muchísimas gracias Nicolás , muy amable.
Bruno Carnazzi extrèmement pertinent
Bruno Carnazzi Is that beatable ?
Sapo Thank you for your indicators. As always it's perfect, I thank you for your help it's preci...
Vonasi Sure that is possible. I will code it and make a post in the English ProBuilder forum and pu...
Vonasi Vama v2 with Hull moving average included can be found here: https://www.prorealcode.com/top...
JMat45 Thank you, Vonasi.
LucioleLucide Clean view, thanks for sharing
dertopen hi where i can found the window for candle configuration?
paolosab69 Ciao! . I have seen the pictures that explain this metod but i don't understand when is mome...
Brisvegas Thats Awesome thank you
Vinks_o_7 Thanks Vonasi !
ALE Very Very Nice
manel Hi - Many thanks for this and your other analytical codes, stellar work - very useful ! With...
Vonasi Good idea Manel. I have posted a new version here that shows results as a percentage: https:...
3agl3 voglio l indicatore
Marcos Alvarez Dominguez Hello Nicolas, is it possible to stablish a bullish screener for this indicator when the cen...
Nicolas Please open a topic in the screener section to ask for this specific query.
zaher123 Hello, the indicator doesn't show up anything on the screen, any suggestions please?
DanT01 Hi Nicolas, great work! Is it possible to contact you to help with a couple of indicators? T...
Nicolas Assistance is free on forums. For private job, you can contact me with the trading programmi...
avatar
Anonymous Thank you! I was reading the book Beyond Technical Analysis and wanted to try to coding RAV...
Juan Salas Hi FULVIO09, Nice piece of work. It seems to work very well. Does only work for INDEXES??...
Johann Hi @FULVI09, I understand the instructions however I'm not too sure how to determine the "p...
Player8520 Hello, It doesn't work with me either. However, I changed AA to 180 on line 15, added th...
ullle73 nicolas, can you somehome make this to be in the background of the price chart?
jonpt88 none did that yet right?
Nicolas You can ask for a code modification on forums, please open a new topic with your request.

Top