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

MACD直方图指定回溯周期正向值平均值计算异常求助

问题原因

你的代码存在3个核心逻辑错误,直接导致计数器和平均值计算结果异常:

  • 持久化变量未重置:用var关键字声明的avgGreenCounter、avgHistogramGreen属于全局持久化变量,整个脚本运行周期内只会初始化1次,每次K线刷新、每次函数调用都不会重置初始值,计数器会从脚本启动开始累计所有历史周期的正值,自然数值远高于你预期的单周期回溯统计结果。
  • 平均值计算逻辑错误:你写的(avgHistogramGreen + hist[i]) / 2是逐次对两个值取平均,不是指定回溯期内所有正值的算术平均,计算结果完全不符合需求。
  • 循环范围偏差:for i = 0 to _lookback by 1 会遍历共_lookback+1根K线(包含当前未闭合K线),如果你的需求是回溯过去X根已闭合K线,范围设置不符合预期。

修正后的代码

f_getAvgHistoGreen(_lookback) => 
    sumGreen = 0.0
    avgGreenCounter = 0
    // 如果不需要包含当前未闭合K线,把i的起始值改为1即可
    for i = 0 to _lookback
        if hist[i] >= 0
            avgGreenCounter += 1
            sumGreen += hist[i]
    // 避免没有正值时的除零错误
    avgHistogramGreen = avgGreenCounter > 0 ? sumGreen / avgGreenCounter : na
    [avgGreenCounter, avgHistogramGreen]

调用方式和之前保持一致即可

[avgGreenCounter, avgHistogramGreen] = f_getAvgHistoGreen(50)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:45:04