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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:32:31