Conversion of Nadaraya-Watson Envelope from Trading View

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #202103 quote
    daisymegan
    Participant
    New

    Is it possible to recreate this indicator from Lux on Trading View while adding by their copywrite rules?  Thanks in advance.

    indicator(“Nadaraya-Watson Envelope [LuxAlgo]”,overlay=true,max_bars_back=1000,max_lines_count=500,max_labels_count=500)
    length = input.float(500,’Window Size’,maxval=500,minval=0)
    h = input.float(8.,’Bandwidth’)
    mult = input.float(3.)
    src = input.source(close,’Source’)

    up_col = input.color(#39ff14,’Colors’,inline=’col’)
    dn_col = input.color(#ff1100,”,inline=’col’)
    disclaimer = input(false, ‘Hide Disclaimer’)
    //—-
    n = bar_index
    var k = 2
    var upper = array.new_line(0)
    var lower = array.new_line(0)

    lset(l,x1,y1,x2,y2,col)=>
    line.set_xy1(l,x1,y1)
    line.set_xy2(l,x2,y2)
    line.set_color(l,col)
    line.set_width(l,2)

    if barstate.isfirst
    for i = 0 to length/k-1
    array.push(upper,line.new(na,na,na,na))
    array.push(lower,line.new(na,na,na,na))
    //—-
    line up = na
    line dn = na
    //—-
    cross_up = 0.
    cross_dn = 0.
    if barstate.islast
    y = array.new_float(0)

    sum_e = 0.
    for i = 0 to length-1
    sum = 0.
    sumw = 0.

    for j = 0 to length-1
    w = math.exp(-(math.pow(i-j,2)/(h*h*2)))
    sum += src[j]*w
    sumw += w

    y2 = sum/sumw
    sum_e += math.abs(src[i] – y2)
    array.push(y,y2)

    mae = sum_e/length*mult

    for i = 1 to length-1
    y2 = array.get(y,i)
    y1 = array.get(y,i-1)

    up := array.get(upper,i/k)
    dn := array.get(lower,i/k)

    lset(up,n-i+1,y1 + mae,n-i,y2 + mae,up_col)
    lset(dn,n-i+1,y1 – mae,n-i,y2 – mae,dn_col)

    if src[i] > y1 + mae and src[i+1] < y1 + mae
    label.new(n-i,src[i],’▼’,color=#00000000,style=label.style_label_down,textcolor=dn_col,textalign=text.align_center)
    if src[i] < y1 – mae and src[i+1] > y1 – mae
    label.new(n-i,src[i],’▲’,color=#00000000,style=label.style_label_up,textcolor=up_col,textalign=text.align_center)

    cross_up := array.get(y,0) + mae
    cross_dn := array.get(y,0) – mae

    alertcondition(ta.crossover(src,cross_up),’Down’,’Down’)
    alertcondition(ta.crossunder(src,cross_dn),’Up’,’Up’)

    //—-
    var tb = table.new(position.top_right, 1, 1
    , bgcolor = #35202b)

    if barstate.isfirst and not disclaimer
    table.cell(tb, 0, 0, ‘Nadaraya-Watson Envelope [LUX] Repaints’
    , text_size = size.small
    , text_color = #cc2f3c)

    #202105 quote
    JC_Bywan
    Moderator
    Master

    Hello,

    asked in following topic, and done by Nicolas for non-repainting version (repainting vs non-repainting discussed within topic):

    Conversion from trading view Nadaraya-Watson Envelope

    #202132 quote
    daisymegan
    Participant
    New

    Thanks.  Much appreciated!

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

Conversion of Nadaraya-Watson Envelope from Trading View


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
daisymegan @daisymegan Participant
Summary

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

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 10/08/2022
Status: Active
Attachments: No files
Logo Logo
Loading...