You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pine Script 5中计算简单移动平均线的一阶和二阶导数?

Pine Script 5 计算简单移动平均线(SMA)的一阶和二阶导数

核心逻辑

在技术分析中,我们可以用相邻周期指标值的差值来近似计算导数:

  • 一阶导数:反映SMA的变化速率(斜率),即当前周期SMA与上一周期SMA的差值
  • 二阶导数:反映一阶导数的变化速率,即当前一阶导数与上一周期一阶导数的差值

完整代码实现

//@version=5
indicator("SMA 一阶&二阶导数", overlay=false)

// 输入参数
sma_length = input.int(20, title="SMA周期")

// 计算基础SMA
sma_value = ta.sma(close, sma_length)

// 计算一阶导数(SMA的斜率)
first_derivative = ta.change(sma_value)
// 等价写法:first_derivative = sma_value - sma_value[1]

// 计算二阶导数(斜率的变化率)
second_derivative = ta.change(first_derivative)
// 等价写法:second_derivative = first_derivative - first_derivative[1]

// 绘制指标
plot(sma_value, title="SMA", color=color.blue)
plot(first_derivative, title="一阶导数", color=color.red, display=display.data_window)
plot(second_derivative, title="二阶导数", color=color.green, display=display.data_window)

// 可选:添加背景色标记趋势变化
bgcolor(first_derivative > 0 ? color.new(color.green, 90) : color.new(color.red, 90), title="一阶导数趋势背景")

代码说明

  1. ta.change() 是Pine Script 5内置函数,用于计算当前值与上一周期值的差值,等价于手动做减法
  2. 一阶导数的正负代表SMA的趋势方向:
    • 正值:SMA处于上升趋势
    • 负值:SMA处于下降趋势
  3. 二阶导数的正负代表趋势的加速/减速:
    • 正值:上升趋势在加速,或下降趋势在减速
    • 负值:上升趋势在减速,或下降趋势在加速

内容的提问来源于stack exchange,提问作者Acoustic Death

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:25:03