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

如何在Pine Script中实现数组的逐元素相加?

Pine Script中实现数组/OHLC元组逐元素相加的方法

在Pine Script里,直接对两个从request.security获取的OHLC元组执行加法会触发语法错误,示例代码及报错如下:

示例代码:

ETH = request.security("CRYPTOCAP:BTC", 'D', [open,high,low, close])
BTC = request.security("GLASSNODE:ETH_SUPPLY*INDEX:ETHUSD", 'D', [open,high,low, close])

TOTAL = ETH+BTC

报错信息:

Syntax error: Variables of array type are not supported!

已知可以逐个元素分别相加,但希望找到更简洁的实现方式,避免重复写多行代码。


针对OHLC元组的简洁实现

Pine Script不支持直接对元组做算术运算,但可以通过元组索引+批量打包的方式,用一行代码完成所有元素的相加:

ETH_ohlc = request.security("CRYPTOCAP:BTC", 'D', [open, high, low, close])
BTC_ohlc = request.security("GLASSNODE:ETH_SUPPLY*INDEX:ETHUSD", 'D', [open, high, low, close])

// 一行完成四个OHLC元素的逐元素相加,返回新的元组
TOTAL = [ETH_ohlc[0]+BTC_ohlc[0], ETH_ohlc[1]+BTC_ohlc[1], ETH_ohlc[2]+BTC_ohlc[2], ETH_ohlc[3]+BTC_ohlc[3]]

针对原生数组的通用实现

如果是用array.new_float()等方法创建的数值数组,可以使用array.map()函数结合自定义加法逻辑,实现通用的逐元素相加,无需手动遍历索引:

// 创建两个示例数值数组
arr_eth = array.new_float(4, 1500)
arr_btc = array.new_float(4, 30000)

// 定义元素相加的逻辑
add_elements = (x, y) => x + y

// 生成逐元素相加后的新数组
total_arr = array.map(add_elements, arr_eth, arr_btc)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:33:23