计算松树脚本中SMA的斜率

Aer*_*rox 7 math pine-script

我想计算简单移动平均线 (SMA) 的斜率。我已经尝试了以下数学上正确的代码。

rad2degree = 180/3.14159265359  //pi
sma2sample = sma(close,50) 
slopeD = rad2degree*atan( (sma2sample[0] - nz(sma2sample[1]))/1 )
Run Code Online (Sandbox Code Playgroud)

然而,问题是每只股票的价值不同,所以slopeD价值不是在一个固定的范围内,在[-90 to 90]度数之间。哪个更合乎逻辑。

我相信我需要对日期进行标准化以使这个变量处于固定范围内,但我不知道如何。

我怎样才能规范化的范围slopeD

G.L*_*ret 7

使用 pinescript 版本 5,有一种方法可以获取函数的斜率:您应该使用以下命令从库中导入斜率函数:

import mentalRock19315/Slope_TK/1 as TK
Run Code Online (Sandbox Code Playgroud)

然后,您可以将斜率函数与要从中提取斜率的序列一起使用。
变量“大小”表示用于计算斜率的两点之间的条数。

TK.slope( ta.sma(close, 200), 10 )
Run Code Online (Sandbox Code Playgroud)

完整的代码可能是:

//@version=5

import mentalRock19315/Slope_TK/1 as TK

indicator("Slope", overlay=false)
size = input.int(1,"Number of bars to calculate the slope", minval=1)

sma200 = ta.sma(close,200)

plot( TK.slope(sma200, size), title = "Slope", color=color.blue)
Run Code Online (Sandbox Code Playgroud)