Pine script 计算移动平均线的角度

Pine script 计算移动平均线的角度,pine-script,moving-average,trading,Pine Script,Moving Average,Trading,我试图计算最后两支蜡烛之间的移动平均线(n)的角度 我一直在使用这个公式,它给了我一个移动平均线(2)的两个烛光之间的正确角度,但如果我把MA的值改为eg.20,它会给我20MA的角度,相隔20烛光 angle(_src) => rad2degree=180/3.14159265359 //pi ang=rad2degree*atan((_src[0] - _src[1])/atr(14)) ma=ema(src,input(2)) ma_slope=angle(ma

我试图计算最后两支蜡烛之间的移动平均线(n)的角度

我一直在使用这个公式,它给了我一个移动平均线(2)的两个烛光之间的正确角度,但如果我把MA的值改为eg.20,它会给我20MA的角度,相隔20烛光

angle(_src) =>
    rad2degree=180/3.14159265359  //pi 
    ang=rad2degree*atan((_src[0] - _src[1])/atr(14)) 
ma=ema(src,input(2))
ma_slope=angle(ma)
我如何制定代码来给出最后两支蜡烛之间20MA的角度

感谢您的研究(“ma Angels-JD”) src=输入(ohlc4,title=“来源”) th=输入(2,最小值=1,title=“阈值-无贸易区-以度为单位”) 颜色条=输入(假,title=“颜色条?”) 无交易=输入(假,title=“无交易区中的黑条?”) //Everget对“Jurik移动平均线”的定义 jma(_src,_长度,_相位,_功率)=> 相位=相位<-100?0.5:_相位>100?2.5:_相位/100+1.5 β=0.45*(_长度-1)/(0.45*(_长度-1)+2) α=功率(β,_功率) jma=0.0 e0=0.0 e0:=(1-α)*\u src+alpha*nz(e0[1]) e1=0.0 e1:=(_src-e0)*(1-β)+β*nz(e1[1]) e2=0.0 e2:=(e0+相位*e1-nz(jma[1]))*pow(1-α,2)+ 战俘(阿尔法,2)*新西兰(e2[1]) jma:=e2+nz(jma[1]) 吉玛 ///////通过KyJ///确定角度 角度(_src)=> rad2degree=180/3.14159265359//pi ang=rad2degree*atan(([u src[0]-[u src[1])/atr(14)) 昂 jma_line=jma(src,10,50,1) jma_line_fast=jma(src,10,50,2) ma27=ema(src,27) ma83=ema(src,83) ma278=ema(src,278) jma_斜率=角度(jma_线) jma_fast_slope=角度(jma_line_fast) ma27_斜率=角度(ma27) ma83_斜率=角度(ma83) ma278_斜率=角度(ma278) hline(0) 上升_1=上升(ma27,1) color_1=color.new(color.green,75) 下降1=下降(ma27,1) 绘图(jma_斜率,title=“jma斜率”,style=plot.style_面积,color=jma_斜率>=0? 上升?颜色。绿色:颜色?下降?颜色。红色:颜色。栗色) 绘图(jma_fast_slope,title=“jma slope”,style=plot.style_line,color=jma_fast_slope>= 0?颜色。绿色:颜色。红色,传输=0) 绘图(ma27_坡度,title=“ma27坡度过滤器”,style=plot.style_面积, 颜色=abs(ma27_斜率)>th?na:颜色。黄色) 绘图(ma83_坡度,title=“ma83坡度过滤器”,style=plot.style_面积, 颜色=abs(ma83_斜率)>th?na:颜色。黄色) 绘图(ma278_斜率,title=“ma278斜率过滤器”,style=plot.style_面积, 颜色=abs(ma278_斜率)>th?na:颜色。黄色) 绘图(ma27_斜率,title=“ma27斜率”,style=plot.style_线,线宽=2, 颜色=ma27_斜率>=0?颜色。石灰:颜色。紫红色) color_2=color.new(color.green,0) color_3=color.new(color.red,0) 绘图(ma83_斜率,title=“ma83斜率”,style=plot.style_线,color=ma83_斜率>=0? 颜色(2:颜色(3) 绘图(ma278_斜率,title=“ma278斜率”,style=plot.style_线,color=ma278_斜率>=0? 颜色。绿色:颜色。红色) plotshape(ma27_斜率>=0?ma27:na,style=shape.triangleup, 位置=位置.bottom,颜色=颜色.green) plotshape(ma27_斜率<0?ma27:na,样式=shape.triangledown,位置=位置.top, 颜色=颜色。红色) 绘图形状(ma27_斜率>=0而非(ma27_斜率[1]>=0)?ma27:na, style=shape.triangleup,location=location.bottom,size=size.tiny, 颜色=颜色。绿色) 绘图形状(ma27_斜率<0而非(ma27_斜率[1]<0)?ma27:na, style=shape.triangledown,location=location.top,size=size.tiny, 颜色=颜色。红色) 上升_2=上升(ma27,1) 下降2=下降(ma27,1) barcolor(彩色条?无交易和abs(ma27_斜率)= 0?上升2?颜色。石灰:颜色。绿色:下降2?颜色。紫红色: 颜色:红色:na)
请不要只发布代码作为答案,还要解释代码的作用以及如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票
study("ma angles - JD")
src = input(ohlc4, title="source")
th = input(2, minval=1, title="threshold for -no trade zones- in degrees")
color_bars = input(false, title="color bars?")
no_trade = input(false, title="black out bars in no trade zones?")

// definition of "Jurik Moving Average", by Everget
jma(_src, _length, _phase, _power) =>
    phaseRatio = _phase < -100 ? 0.5 : _phase > 100 ? 2.5 : _phase / 100 + 1.5
    beta = 0.45 * (_length - 1) / (0.45 * (_length - 1) + 2)
    alpha = pow(beta, _power)
    jma = 0.0
    e0 = 0.0
    e0 := (1 - alpha) * _src + alpha * nz(e0[1])
e1 = 0.0
e1 := (_src - e0) * (1 - beta) + beta * nz(e1[1])
e2 = 0.0
e2 := (e0 + phaseRatio * e1 - nz(jma[1])) * pow(1 - alpha, 2) + 
   pow(alpha, 2) * nz(e2[1])
jma := e2 + nz(jma[1])
jma

//// //// Determine Angle by KyJ //// //// 
angle(_src) =>
    rad2degree = 180 / 3.14159265359  //pi 
    ang = rad2degree * atan((_src[0] - _src[1]) / atr(14))
    ang

    jma_line = jma(src, 10, 50, 1)
jma_line_fast = jma(src, 10, 50, 2)
ma27 = ema(src, 27)
ma83 = ema(src, 83)
ma278 = ema(src, 278)
jma_slope = angle(jma_line)
jma_fast_slope = angle(jma_line_fast)
ma27_slope = angle(ma27)
ma83_slope = angle(ma83)
ma278_slope = angle(ma278)

hline(0)
rising_1 = rising(ma27, 1)
color_1 = color.new(color.green, 75)
falling_1 = falling(ma27, 1)

plot(jma_slope, title="jma slope", style=plot.style_area, color=jma_slope >= 0 ? 
     rising_1 ? color.green : color_1 : falling_1 ? color.red : color.maroon)
plot(jma_fast_slope, title="jma slope", style=plot.style_line, color=jma_fast_slope >= 
     0 ? color.green : color.red, transp=0)
plot(ma27_slope, title="ma27 slope filter", style=plot.style_area, 
     color=abs(ma27_slope) > th ? na : color.yellow)
plot(ma83_slope, title="ma83 slope filter", style=plot.style_area, 
     color=abs(ma83_slope) > th ? na : color.yellow)
plot(ma278_slope, title="ma278 slope filter", style=plot.style_area, 
     color=abs(ma278_slope) > th ? na : color.yellow)
plot(ma27_slope, title="ma27 slope", style=plot.style_line, linewidth=2, 
     color=ma27_slope >= 0 ? color.lime : color.fuchsia)

color_2 = color.new(color.green, 0)
color_3 = color.new(color.red, 0)

plot(ma83_slope, title="ma83 slope", style=plot.style_line, color=ma83_slope >= 0 ? 
     color_2 : color_3)
plot(ma278_slope, title="ma278 slope", style=plot.style_line, color=ma278_slope >= 0 ? 
     color.green : color.red)

plotshape(ma27_slope >= 0 ? ma27 : na, style=shape.triangleup, 
          location=location.bottom, color=color.green)
plotshape(ma27_slope < 0 ? ma27 : na, style=shape.triangledown, location=location.top, 
          color=color.red)
plotshape(ma27_slope >= 0 and not(ma27_slope[1] >= 0) ? ma27 : na, 
          style=shape.triangleup, location=location.bottom, size=size.tiny, 
          color=color.green)
plotshape(ma27_slope < 0 and not(ma27_slope[1] < 0) ? ma27 : na, 
          style=shape.triangledown, location=location.top, size=size.tiny, 
          color=color.red)

rising_2 = rising(ma27, 1)
falling_2 = falling(ma27, 1)

barcolor(color_bars ? no_trade and abs(ma27_slope) <= th ? color.white : jma_slope >= 
         0 ? rising_2 ? color.lime : color.green : falling_2 ? color.fuchsia : 
         color.red : na)