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

如何在Pinescript中实现外部数据访问?支持CSV等外部资源接入吗?

Pine Script 外部数据接入方案

Pine Script不支持直接读取外部CSV或本地文件,但有比枚举、硬编码数千行字符串更高效的方案,以下是可行的实现方式:

1. 自定义品种导入+跨品种数据调用

如果你的CSV数据是静态或低频更新的,可以先将CSV导入TradingView作为自定义品种:

  • 把CSV格式调整为TradingView支持的OHLC或单值格式(比如时间戳+数值)
  • 通过TradingView的「导入数据」功能创建自定义品种
  • 在你的Pine Script中用request.security()函数拉取该自定义品种的数据:
    // 拉取自定义品种的收盘价(假设自定义品种代码为"MY_CSV_DATA")
    externalData = request.security("MY_CSV_DATA", timeframe.period, close)
    

2. 字符串批量解析为数组

如果数据量不大但需要硬编码,不要写数千行字符串,而是把CSV内容压缩为单条分隔符分隔的字符串,再解析为数组:

// 输入CSV格式的字符串(替换为你的数据)
rawData = input.string("2024-01-01,100;2024-01-02,105;2024-01-03,102", title="外部数据")
// 按行拆分
dataRows = str.split(rawData, ";")
// 初始化数组存储数据
var dataArray = array.new_float()
var dateArray = array.new_string()

// 循环解析每一行
for row in dataRows
    parts = str.split(row, ",")
    if array.size(parts) == 2
        array.push(dateArray, parts[0])
        array.push(dataArray, str.tofloat(parts[1]))

3. Webhook 实时数据推送(动态数据场景)

如果需要实时获取外部动态数据,可以通过TradingView Webhook将外部数据推送到脚本中:

  • 外部服务通过POST请求将数据发送到你的TradingView Webhook URL
  • 在Pine Script中用var变量存储接收到的Webhook数据,供逻辑调用:
    var float externalValue = na
    // 监听Webhook推送的消息(假设消息格式为{"value": 123})
    if request.webhook_message != na
        externalValue = request.webhook_message.value
    

4. 跨脚本调用(间接获取外部数据)

如果外部数据是由另一个Pine脚本生成的,可以用request.invoke()调用目标脚本的输出结果:

// 调用目标脚本(假设脚本ID为"1234567",输出名为"externalData")
externalData = request.invoke("1234567", "externalData")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:14:54