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

Pine Script循环数组推送问题:如何让i=2、i=3结果对应数组索引0、1

问题解决:Pine Script 循环独立计数存入数组

你的问题出在var counter = 0是全局持久化变量,循环迭代时会持续累加,导致两次循环的计数是连续的,而不是各自独立统计。要实现每个i(2和3)单独判断并计数,需要把计数变量放到循环内部,每次循环都重置为0。

修改后的代码

myArray = array.new_float(0)

for i = 2 to 3
    // 每次循环初始化局部计数变量,避免跨循环累加
    counter = 0
    if close > ta.sma(close, i)
        counter += 1
    array.push(myArray, counter)

if barstate.islast
    label.new(bar_index, 2, str.tostring(array.join(myArray, " - ")))
    label.new(bar_index, 1, "array size: " + str.tostring(array.size(myArray)))

关键改动说明

  • 移除了var声明的全局counter,改为在循环内部初始化counter = 0,这样每次循环i的计数都是独立的,不会和上一次循环的结果累加。
  • 循环i=2时,单独判断close > ta.sma(close,2)并计数,结果存入数组索引0;i=3时重新初始化counter,判断后存入索引1,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:21:42