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

能否在PineScript中声明动态长度数组并实现可变价格水平输入?

在PineScript中实现可变数量价格水平参数的方案

这个需求是可行的,PineScript虽然没有原生的可变参数语法,但可以通过多可选参数+过滤空白值的方式实现,具体方案如下:

核心实现思路

  1. 声明多个带默认空白值(na)的可选输入参数,其中第一个参数设为必填(不设na默认值),确保至少有1个有效参数。
  2. 将所有非空白的参数收集到数组中,自动忽略na值(无需特意用最后一个空白标记结束,所有空白参数都会被过滤)。
  3. 遍历数组绘制每个价格水平。

完整代码示例

//@version=5
indicator("可变数量价格水平", overlay=true)

// 声明可选参数,第一个为必填,后续参数默认空白(na),可按需扩展数量
level1 = input.float(title="价格水平1", defval=100)
level2 = input.float(title="价格水平2", defval=na)
level3 = input.float(title="价格水平3", defval=na)
level4 = input.float(title="价格水平4", defval=na)
level5 = input.float(title="价格水平5", defval=na)
level6 = input.float(title="价格水平6", defval=na)
level7 = input.float(title="价格水平7", defval=na)
level8 = input.float(title="价格水平8", defval=na)
level9 = input.float(title="价格水平9", defval=na)
level10 = input.float(title="价格水平10", defval=na)

// 收集非空白参数到数组
var float[] levelsArray = array.new_float()
if barstate.islast
    array.clear(levelsArray)
    // 逐个判断并添加有效参数
    if not na(level1)
        array.push(levelsArray, level1)
    if not na(level2)
        array.push(levelsArray, level2)
    if not na(level3)
        array.push(levelsArray, level3)
    if not na(level4)
        array.push(levelsArray, level4)
    if not na(level5)
        array.push(levelsArray, level5)
    if not na(level6)
        array.push(levelsArray, level6)
    if not na(level7)
        array.push(levelsArray, level7)
    if not na(level8)
        array.push(levelsArray, level8)
    if not na(level9)
        array.push(levelsArray, level9)
    if not na(level10)
        array.push(levelsArray, level10)

// 遍历数组绘制所有价格水平
for level in levelsArray
    hline(level, title=str.tostring(level), color=color.blue, linestyle=hline.style_dashed)

关键细节说明

  • 参数扩展:如果需要支持更多价格水平,只需继续添加level11、level12等参数,并在收集数组的代码块中对应添加判断逻辑即可。
  • 空白参数处理:所有设为空白(na)的参数都会被自动过滤,无需特意用最后一个空白标记结束;如果需要限制“仅到第一个空白参数为止”,可以调整遍历逻辑,比如遇到第一个na就停止添加。
  • 必填保障:第一个参数level1没有设na默认值,用户必须输入有效数值,满足“至少接受1个参数”的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:47:45