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

修改VWAP指标转Pine Script时累计值计算与Excel结果不一致求助

问题原因分析

你的代码存在两个核心错误导致结果不匹配:

  • 强制类型转换丢失精度:累加NewVol时你调用了int()函数,将原本为浮点数的NewVol直接取整,直接丢失了小数部分的精度,这是结果偏差最大的原因
  • 自定义循环的冗余和易出错性:手动写for循环做滚动累加很容易出现索引边界错误,且效率远低于Pine Script内置的累加函数
修正后的代码(4天测试版本)
//@version=4
study("筹码平均线 by Jason")

PriceDis = pow(close - (high + low)/2, 2)
NewVol = PriceDis * volume

// 用内置sum函数计算最近4个周期的NewVol累计值,等价于你原来的循环逻辑,且没有精度损失
TotalNewVol = ta.sum(NewVol, 4)

// 避免前3根bar数据不足导致的除零错误
WeightedVol = na(TotalNewVol) or TotalNewVol == 0 ? na : NewVol / TotalNewVol
WeightedPrice = close * WeightedVol

plot(WeightedPrice)
正确的多日数值累计方法

Pine Script中做固定周期的滚动累计,直接使用内置的ta.sum(数值, 周期数)函数即可,该函数会自动计算最近N根K线的数值之和,不需要手动写for循环,不仅代码更简洁,也不会出现索引错误、精度损失这类问题。

如果你需要调整为200天的正式版本,只需要把ta.sum(NewVol, 4)中的4改为200即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:54:02