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

Pine-Script实现变量累计复利,如何解决自引用未定义报错?

Pine Script 自引用累计变量实现方案

报错原因

Pine Script 不支持在使用=一次性定义变量的表达式中,直接引用该变量自身的历史偏移值,必须先声明变量初始值,再通过:=动态赋值更新。

修正后代码

// 先声明浮点型变量并设置初始值
hd1 = 0.0
// 按条件更新变量值
if (hl < hl[3]) or (hl < hl[1])
    hd1 := (hl[1] - hl) + hd1[1]
else
    hd1 := 0

逻辑说明

  • 第一行先定义hd1的初始值为0,完成变量的初始化声明
  • 后续使用:=运算符对hd1进行赋值操作,此时就可以正常引用hd1[1]即上一根K线的hd1值
  • 满足条件时自动叠加差值和上一轮的累计值,不满足条件时直接重置为0,符合累计到条件中断后清零的需求

如果需要实现复利计算而非简单累加,只需要调整if分支内的计算公式即可,比如将加法替换为对应收益率的乘法逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:24:05