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

如何在Nadaraya-Watson指标中添加多组mult参数的双波段线?

实现Nadaraya-Watson Envelope多波段线的修改方案

核心是为不同的mult参数分配独立的计算变量,避免逻辑冲突,以下是修改后的完整代码:

//@version=5
indicator("Nadaraya-Watson Envelope (Multi-Band)", overlay=true)

// 基础参数设置
length = input.int(20, title="Length")
mult1 = input.float(2.0, title="Multiplier 1")
mult2 = input.float(3.0, title="Multiplier 2")
src = input(close, title="Source")

// Nadaraya-Watson核回归计算
f_nw(_src, _length) =>
    sum_weights = 0.0
    sum_values = 0.0
    for i in 0 to _length - 1
        weight = exp(-pow(i, 2) / (2 * pow(_length / 4, 2)))
        sum_weights += weight
        sum_values += _src[i] * weight
    sum_values / sum_weights

nw = f_nw(src, length)

// 计算标准差
f_std(_src, _length, _nw) =>
    sum_weights = 0.0
    sum_sq_dev = 0.0
    for i in 0 to _length - 1
        weight = exp(-pow(i, 2) / (2 * pow(_length / 4, 2)))
        sum_weights += weight
        sum_sq_dev += pow(_src[i] - _nw, 2) * weight
    sqrt(sum_sq_dev / sum_weights)

nw_std = f_std(src, length, nw)

// 分别计算两个mult对应的上下轨
nwe_up1 = nw + mult1 * nw_std
nwe_down1 = nw - mult1 * nw_std
nwe_up2 = nw + mult2 * nw_std
nwe_down2 = nw - mult2 * nw_std

// 绘制线条
plot(nw, color=color.blue, title="Nadaraya-Watson")
plot(nwe_up1, color=color.green, title="Upper Band 1 (x2)")
plot(nwe_down1, color=color.green, title="Lower Band 1 (x2)")
plot(nwe_up2, color=color.red, title="Upper Band 2 (x3)")
plot(nwe_down2, color=color.red, title="Lower Band 2 (x3)")

关键修改说明

  • 新增mult1和mult2两个独立参数输入,避免参数混淆
  • 为每个mult参数单独计算上下轨变量(nwe_up1/nwe_down1、nwe_up2/nwe_down2),防止变量覆盖导致的逻辑错误
  • 绘图时为每个波段指定不同颜色和名称,方便区分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:13:10