Conversion RMI Sniper Trading View

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #223205 quote
    Bateson
    Participant
    New

    Bonjour,
    serait-il possible de convertir l’indicateur de TradingViex “Sniper RMI” ?
    Avec mes remerciements 🙂
    // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © TZack88

    //@version=5
    indicator(‘RMI Trend Sniper’, overlay=true,max_labels_count = 500)

    // ** —> Inputs ————- {
    var bool positive = false
    var bool negative = false
    string RSI_group = “RMI Settings”
    string mom_group = “Range Vales”
    string visual = “Visuals”
    int Length = input(14,”RMI Length “,inline = “RMI”,group = RSI_group)
    int pmom = input(66,” Positive above”,inline = “rsi1″,group =RSI_group )
    int nmom = input(30,”Negative below”,inline = “rsi1”,group =RSI_group )
    bool filleshow = input(true,”Show Range MA “,inline = “002”,group =visual )
    color bull = input(#00bcd4,””,inline = “002”,group =visual )
    color bear = input(#ff5252,””,inline = “002”,group =visual )
    float BarRange = high – low

    up = ta.rma(math.max(ta.change(close), 0), Length)
    down = ta.rma(-math.min(ta.change(close), 0), Length)
    rsi = down == 0 ? 100 : up == 0 ? 0 : 100 – (100 / (1 + up / down))
    mf = ta.mfi(hlc3, Length)
    rsi_mfi = math.avg(rsi,mf)

    //——————- }

    bool p_mom = rsi_mfi[1] < pmom and rsi_mfi > pmom and
    rsi_mfi > nmom and
    ta.change(ta.ema(close,5)) > 0

    bool n_mom = rsi_mfi < nmom and ta.change(ta.ema(close,5)) < 0 // // ---> Momentums ————- {

    if p_mom
    positive:= true
    negative:= false

    if n_mom
    positive:= false
    negative:= true

    //
    method _Band(int len)=>
    math.min (ta.atr (len) * 0.3, close * (0.3/100)) [20] /2 * 8

    Band = _Band(30)

    method rangeMA(float Range,Prd)=>
    weight = Range / math.sum(Range, Prd)
    sum = math.sum(close * weight, Prd)
    tw= math.sum(weight, Prd)
    sum / tw

    // Calculate the RWMA
    rwma = rangeMA(BarRange,20)

    // Plotting the RWMA.
    colour = positive ? bull : bear
    RWMA = positive ? rwma – Band : negative ? rwma + Band : na
    alpha = color.new(color.black, 100)

    center = plot(filleshow ? RWMA : na, “RRTH”, colour, editable = true)
    plot(filleshow ? RWMA : na, “RRTH”, color.new(colour, 70), 2, editable = true)
    plot(filleshow ? RWMA : na, “RRTH”, color.new(colour, 80), 3, editable = true)
    plot(filleshow ? RWMA : na, “RRTH”, color.new(colour, 90), 4, editable = true)

    max = RWMA + Band
    min = RWMA – Band

    top = plot(filleshow ? max: na, “RRTH”, alpha)
    bottom = plot(filleshow ? min: na, “RRTH”, alpha)
    fill(top, center, top_value = max, bottom_value = RWMA, bottom_color = color.new(colour, 75), top_color = alpha, editable = true)
    fill(center, bottom, top_value = RWMA, bottom_value = min, bottom_color = alpha, top_color = color.new(colour, 75), editable = true)
    Barcol = positive ? color.green:color.red

    if negative and not negative[1]
    label.new(bar_index,max+(Band/2),””,color = color.red,size=size.small)
    if positive and not positive[1]
    label.new(bar_index,min-(Band/2),””,color = color.green,size=size.small,style= label.style_label_up)

    plotcandle(open, high, low, close,color = Barcol,wickcolor = Barcol,bordercolor = Barcol)
    barcolor(color = Barcol)

    // SPOT Trading Alerts
    alertcondition(positive and not positive[1],”BUY”)
    alertcondition(negative and not negative[1],”SELL”)

    #230516 quote
    Iván González
    Moderator
    Master

    Bonjour, voici la traduction et l'explication de l'indicateur : https://www.prorealcode.com/prorealtime-indicators/rmi-trend-sniper-indicator/

    //PRC_RMI Trend Sniper
    //version = 0
    //26.03.24
    //Iván González @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    //-----Inputs----------------------------------------------//
    Length=14//RMI Length
    pmom=66//Positive above
    nmom=30//Negative below
    filleshow=1//Show Range MA
    colorbar=1//Color candles
    drawsignals=1//Show arrows
    //-----RSI and MFI calculation-----------------------------//
    alpha = 1/length
    //-----Up
    src1 = max(close-close[1],0)
    if barindex = length then
    up = average[length](src1)
    else
    up = alpha*src1 + (1-alpha)*up[1]
    endif
    //-----Down
    src2 = - min(close-close[1],0)
    if barindex = length then
    down = average[length](src2)
    else
    down = alpha*src2 + (1-alpha)*down[1]
    endif
    //-----Rsi
    if down = 0 then
    myrsi = 100
    elsif up = 0 then
    myrsi = 0
    else
    myrsi = 100 - (100/(1+up/down))
    endif
    //-----MFI
    mfi = MoneyFlowIndex[length]
    //-----RsiMfi
    rsimfi = (myrsi+mfi)/2
    //----------------------------------------------------------//
    //-----Long Short Conditions--------------------------------//
    ema = average[5,1](close)
    
    bpmom = rsimfi[1]<pmom and rsimfi>pmom and rsimfi>nmom and (ema-ema[1])>0
    bnmom = rsimfi<nmom and (ema-ema[1])<0
    
    if bpmom then
    positive = 1
    negative = 0
    elsif bnmom then
    positive = 0
    negative = 1
    endif
    //----------------------------------------------------------//
    //------Calculate RWMA--------------------------------------//
    band = min(averagetruerange[30]*0.3,close*(0.3/100))[20]/2*8
    barRange = high-low
    
    weight = BarRange/summation[20](BarRange)
    sum = summation[20](close*weight)
    tw = summation[20](weight)
    rwma = sum/tw
    
    if positive then
    rwma = rwma-band
    r=0
    g=188
    b=212
    elsif negative then
    rwma = rwma+band
    r=255
    g=82
    b=82
    else
    rwma = undefined
    endif
    //------------------------------------------------------------//
    //-----Calculate MA bands-------------------------------------//
    if filleshow then
    mitop = rwma+band
    mibot = rwma-band
    colorbetween(mitop,rwma,r,g,b,50)
    colorbetween(mibot,rwma,r,g,b,50)
    else
    mitop = rwma
    mibot = rwma
    endif
    //-----------------------------------------------------------//
    //-----Draw signals------------------------------------------//
    if drawsignals then
    if negative and not negative[1] then
    drawarrowdown(barindex,mitop+(band/2))coloured("red")
    elsif positive and not positive[1] then
    drawarrowup(barindex,mibot-(band/2))coloured("green")
    endif
    endif
    //-----------------------------------------------------------//
    //-----Color Candles-----------------------------------------//
    if colorbar then
    drawcandle(open,high,low,close)coloured(r,g,b)
    endif
    //-----------------------------------------------------------//
    return rwma as "Rwma"coloured(r,g,b)style(line,3), mitop as "Max"coloured(r,g,b,70)style(line,1),mibot as "Min" coloured(r,g,b,70)style(line,1)
    
    KumoNoJuzza thanked this post
    #235999 quote
    Bateson
    Participant
    New

    Un tres grand merci pour le travail IVAN §

    #236025 quote
    supertiti
    Participant
    Master

    Bonjour à tous,

    J’aurais voulu modifier la rwma en ajoutant une moyenne mobile comme ceci :

    myrwma = average [p,m](rwma)

    ou p = periode

    m = type de moyenne mobile

    Pour autant cette ligne de code ne fonctionne pas ?

    Merci si quelqu’un peut me dire d’où vient le problème.

    Bons trades

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

Conversion RMI Sniper Trading View


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Bateson @bateson Participant
Summary

This topic contains 3 replies,
has 3 voices, and was last updated by supertiti
1 year, 6 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 11/04/2023
Status: Active
Attachments: 1 files
Logo Logo
Loading...