Pinescript V5:库文件存储字符串数组能否供其他脚本导入调用?
在Pine Script V5中通过库存储并调用字符串数组
完全可以在Pine Script V5的库文件中存储字符串数组,并通过import在其他脚本中调用。以下是正确的实现示例:
1. 库文件写法
创建一个类型为Library的Pine Script文件,定义并导出字符串数组:
//@version=5 library("MyStringLib", overlay=true) // 初始化字符串数组并添加元素 var string[] _internalStringArray = array.new_string() array.push(_internalStringArray, "string1") array.push(_internalStringArray, "string2") array.push(_internalStringArray, "string3") // 直接导出数组变量供外部调用 export publicStringArray = _internalStringArray // 可选:导出函数返回数组(适合动态生成数组的场景) export getStringArray() => _internalStringArray
2. 调用脚本写法
在普通指标/策略脚本中导入库并使用数组:
//@version=5 indicator("调用库中字符串数组示例", overlay=true) // 导入库(替换为你的库路径,格式为user/库名称) import user/MyStringLib as strLib // 方式1:直接获取导出的数组变量 string[] importedArray = strLib.publicStringArray // 方式2:通过导出函数获取数组 // string[] importedArray = strLib.getStringArray() // 示例:在最后一根K线打印数组内容 if barstate.islast for i = 0 to array.size(importedArray)-1 label.new(bar_index - i, high - i*10, "元素" + str.tostring(i+1) + ": " + array.get(importedArray, i), color=color.orange)
注意事项
- 库文件必须保存为Library类型(TradingView编辑器创建文件时选择"Library"选项)
- 数组需用
var关键字声明,确保仅初始化一次,避免每根K线重复创建数组 - 导入时要使用正确的库路径,若为自己创建的库,格式为
user/你的库名称
内容的提问来源于stack exchange,提问作者Mickael Moret
相关产品推荐
相关产品推荐

