Pine Script如何将字符串数组作为input的options参数传入
Pine Script 预定义input选项列表解决方案
Pine Script 中input.string的options参数要求传入编译期即可确定值的静态字面量集合,通过array.new_string()创建的运行时数组不满足该要求,无法直接作为参数传入。要实现选项列表的预定义复用,可以使用元组(tuple) 实现。
实现步骤
- 提前定义静态元组存储需要复用的选项集合:
// 预定义可复用的选项集合,使用元组格式 COMMON_OPTIONS = ("None", "No More Ema8 Energy", "Many strings...")
- 所有需要用到该选项列表的input控件,直接传入预定义的元组变量即可:
// 调用示例,和你期望的写法完全匹配 result = input(group = id_isSomething, defval="None", title="thing...", type=input.string, options=COMMON_OPTIONS) // 其他input可直接复用同一集合,无需重复编写 other_result = input(group = "其他分组", defval="None", title="其他选择项", type=input.string, options=COMMON_OPTIONS)
注意事项:
- 元组属于静态不可变类型,完全匹配
options参数要求的编译期可识别属性,不会触发编译错误- 如需多套不同的选项集合,定义多个不同的元组变量分别调用即可
- 不要对预定义的元组执行添加、删除、修改元素的动态操作,否则会直接编译失败
内容的提问来源于stack exchange,提问作者Álvaro J. Martín López
相关产品推荐
相关产品推荐

