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

Indie脚本修改MutSeriesF时出现'Symbol wave.set not found'错误的求助

Indie脚本修改MutSeriesF时出现'Symbol wave.set not found'错误的求助

我刚从Pine Script转Indie的时候也踩过一模一样的坑!完全是Pine的惯性思维搞的鬼——Indie的MutSeriesF可变序列根本不支持.set()这个方法,你直接用索引赋值就搞定了。

问题根源

Indie的API设计和Pine有明显差异:

  • Pine里用var声明的变量需要用:=或特定方法更新,但Indie的MutSeriesF是通过直接索引赋值来修改值的,根本没有.set()这个成员函数,所以你调用wave.set()的时候才会报“symbol not found”的错误。

具体修正步骤

把你代码里所有的.set()调用改成直接索引赋值就行:

  1. 把wave.set(0, mov)改成wave[0] = mov
  2. 把wave.set(0, nan_to_zero(wave[1]))改成wave[0] = nan_to_zero(wave[1])
  3. 把vol.set(0, nan_to_zero(vol[1]) + self.volume[0])改成vol[0] = nan_to_zero(vol[1]) + self.volume[0]
  4. 把vol.set(0, self.volume[0])改成vol[0] = self.volume[0]

额外的小提醒

顺便扫了下你的代码,还有个影响功能的小问题:mov = 0之后的if self.close[0] > self.close[1]:和elif块都是空的,这样mov的值永远是0,整个指标的核心趋势判断逻辑等于没写,记得补上你原本想实现的趋势方向赋值(比如给mov设为1或-1),不然指标跑不出预期效果。

修正后的关键代码片段

# ... 其他代码保持不变 ...
wave = MutSeriesF.new(0)
if mov != nan_to_zero(wave[1]) and is_trending:
    wave[0] = mov
else:
    wave[0] = nan_to_zero(wave[1])

vol = MutSeriesF.new(0)
if wave[0] == wave[1]:
    vol[0] = nan_to_zero(vol[1]) + self.volume[0]
else:
    vol[0] = self.volume[0]
# ... 其他代码保持不变 ...

备注:内容来源于stack exchange,提问作者neuepsae

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 19:38:09