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

如何在Pine Script中创建包含EMA指标的变量数组?

在Pine Script v5中创建包含EMA的数组

你的错误原因是Pine Script的array.new_float()函数不支持像Python那样直接传入元素列表初始化数组——它的第一个参数要求是整数类型的数组大小,而非元素集合。要实现类似Python列表初始化的效果,需要分两步操作:创建空数组,再逐个添加EMA值。

正确实现代码

//@version=5
indicator("My script")
ema3 = ta.ema(close, 3)
ema6 = ta.ema(close, 6)
ema9 = ta.ema(close, 9)

// 创建空的float类型数组
ema_array = array.new_float()
// 逐个将EMA值添加到数组中
array.push(ema_array, ema3)
array.push(ema_array, ema6)
array.push(ema_array, ema9)

// 可选:验证数组内容(在最后一根K线显示数组元素)
if barstate.islast
    label.new(bar_index, high, str.tostring(array.get(ema_array, 0)) + "\n" + str.tostring(array.get(ema_array, 1)) + "\n" + str.tostring(array.get(ema_array, 2)))

补充说明

如果提前知道数组大小,也可以先指定大小再替换元素:

ema_array = array.new_float(3)
array.set(ema_array, 0, ema3)
array.set(ema_array, 1, ema6)
array.set(ema_array, 2, ema9)

由于Pine Script中变量是**序列(series)**类型,数组会在每根K线周期自动更新存储对应时段的EMA值,无需额外编写循环逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:10:00