Nadaraya Watson Envelope
Forums › ProRealTime foro Español › Soporte ProBuilder › Nadaraya Watson Envelope
- This topic has 0 replies, 1 voice, and was last updated 4 hours ago by Azkune.
Viewing 1 post (of 1 total)
-
-
10/17/2024 at 11:31 PM #239170
Hola,
He visto que hay un código parecido de esto en el foro en inglés, pero el resultado no es el mismo. ¿Alguien podría traducir esto a ProRealCode para poder usarlo en el ProRealTime?
Gracias
Un saludo
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/// © LuxAlgo//@version=5indicator(“Nadaraya-Watson Envelope [LuxAlgo]”, “LuxAlgo – Nadaraya-Watson Envelope”, overlay = true, max_lines_count = 500, max_labels_count = 500, max_bars_back=500)//——————————————————————————//Settings//—————————————————————————–{h = input.float(8.,’Bandwidth’, minval = 0)mult = input.float(3., minval = 0)src = input(close, ‘Source’)repaint = input(true, ‘Repainting Smoothing’, tooltip = ‘Repainting is an effect where the indicators historical output is subject to change over time. Disabling repainting will cause the indicator to output the endpoints of the calculations’)//StyleupCss = input.color(color.teal, ‘Colors’, inline = ‘inline1’, group = ‘Style’)dnCss = input.color(color.red, ”, inline = ‘inline1’, group = ‘Style’)//—————————————————————————–}//Functions//—————————————————————————–{//Gaussian windowgauss(x, h) => math.exp(-(math.pow(x, 2)/(h * h * 2)))//—————————————————————————–}//Append lines//—————————————————————————–{n = bar_indexvarln=array.new_line(0)if barstate.isfirst and repaintfori=0to499array.push(ln,line.new(na,na,na,na))//—————————————————————————–}//End point method//—————————————————————————–{var coefs = array.new_float(0)var den = 0.if barstate.isfirst and not repaintfori=0to499w=gauss(i,h)coefs.push(w)den:=coefs.sum()out = 0.if not repaintfori=0to499out+=src[i]*coefs.get(i)out /= denmae = ta.sma(math.abs(src – out), 499) * multupper = out + maelower = out – mae//—————————————————————————–}//Compute and display NWE//—————————————————————————–{float y2 = nafloat y1 = nanwe = array.new<float>(0)if barstate.islast and repaintsae=0.//Compute and set NWE pointfori=0tomath.min(499,n-1)sum=0.sumw=0.//Compute weighted meanforj=0tomath.min(499,n-1)w=gauss(i-j,h)sum+=src[j]*wsumw+=wy2:=sum/sumwsae+=math.abs(src[i]-y2)nwe.push(y2)sae:=sae/math.min(499,n-1)*multfori=0tomath.min(499,n-1)ifi%2line.new(n-i+1,y1+sae,n-i,nwe.get(i)+sae,color=upCss)line.new(n-i+1,y1-sae,n-i,nwe.get(i)-sae,color=dnCss)ifsrc[i]>nwe.get(i)+saeandsrc[i+1]<nwe.get(i)+saelabel.new(n-i,src[i],’▼’,color=color(na),style=label.style_label_down,textcolor=dnCss,textalign=text.align_center)ifsrc[i]<nwe.get(i)-saeandsrc[i+1]>nwe.get(i)-saelabel.new(n-i,src[i],’▲’,color=color(na),style=label.style_label_up,textcolor=upCss,textalign=text.align_center)y1:=nwe.get(i)//—————————————————————————–}//Dashboard//—————————————————————————–{var tb = table.new(position.top_right, 1, 1,bgcolor=#1e222d,border_color=#373a46,border_width=1,frame_color=#373a46,frame_width=1)if repainttb.cell(0,0,’Repainting Mode Enabled’,text_color=color.white,text_size=size.small)//—————————————————————————–}//Plot//—————————————————————————–}plot(repaint ? na : out + mae, ‘Upper’, upCss)plot(repaint ? na : out – mae, ‘Lower’, dnCss)//Crossing Arrowsplotshape(ta.crossunder(close, out – mae) ? low : na, “Crossunder”, shape.labelup, location.absolute, color(na), 0 , text = ‘▲’, textcolor = upCss, size = size.tiny)plotshape(ta.crossover(close, out + mae) ? high : na, “Crossover”, shape.labeldown, location.absolute, color(na), 0 , text = ‘▼’, textcolor = dnCss, size = size.tiny)//—————————————————————————–} -
AuthorPosts
Viewing 1 post (of 1 total)
Find exclusive trading pro-tools on
Similar topics: