我想计算简单移动平均线 (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
?
使用 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)