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

为何Pine Script中指定步长+1的for循环实际步长为-1?

问题原因及解决办法

在Pine Script v5的for循环机制里,循环能否执行完全看起始值、结束值和步长的方向是否匹配:

  • 当起始值 < 结束值时,步长必须为正数,循环才会从起始值递增到结束值
  • 当起始值 > 结束值时,步长必须为负数,循环才会从起始值递减到结束值

你写的for i = 10 to 0 by +1里,起始值10远大于结束值0,步长却设为正的+1,这种情况下循环条件完全不成立,循环体根本不会执行——你看到的“递减”大概率是误解,实际此时ii是空字符串,不会输出任何数字。

如果你的需求是让循环从10递减到0,只需把步长改成-1:

// 修正后的循环代码
ii = ""
for i = 10 to 0 by -1
    ii += str.format(" {0}", i)
runtime.error(str.format("{0}", ii))

运行后runtime.error会输出 10 9 8 7 6 5 4 3 2 1 0,符合预期的递减效果。

要是你确实想用正步长执行循环,就得把起始值和结束值调换,写成for i = 0 to 10 by +1,这样循环会从0递增到10。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 22:38:10