Pine script 计算移动平均线的角度
我试图计算最后两支蜡烛之间的移动平均线(n)的角度 我一直在使用这个公式,它给了我一个移动平均线(2)的两个烛光之间的正确角度,但如果我把MA的值改为eg.20,它会给我20MA的角度,相隔20烛光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
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)