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

Tradingview Pine Script V5:如何获取低时间框架的HLC3序列浮点数?

Pine Script 低时间框架HLC3序列类型不匹配问题解决

问题场景

在日线图表中尝试获取1小时级别的HLC3序列并计算EMA时,运行代码出现类型不兼容报错:

Error at 119:15 Cannot call 'ta.ema' with argument 'source'='Low1HLC1'. An argument of 'float[]' type was used but a 'series float' is expected.

原代码如下:

//(high + low + close)/3
Low1HLC1 = request.security_lower_tf(syminfo.tickerid, timeframe = "1", expression = (high + low + close) / 3)

esa1 = ta.ema(Low1HLC1, n1)

问题原因

request.security_lower_tf函数返回的是数组(float[]),它会一次性返回当前K线对应的所有低时间框架数据;而ta.ema要求输入的是序列(series float),即逐根K线对齐的数据流,两者类型不匹配导致报错。

解决方案

使用request.security替代request.security_lower_tf,该函数会自动将低时间框架的数据对齐到当前图表的时间框架,返回符合要求的序列类型数据。

修正后的代码:

//@version=5
indicator("1H HLC3 EMA on Daily Chart", overlay=false)
n1 = input.int(14, title="EMA周期")

// 获取1小时级别HLC3序列,直接用内置hlc3函数
lowTfHLC3 = request.security(syminfo.tickerid, "60", hlc3)

// 计算EMA
esa1 = ta.ema(lowTfHLC3, n1)

// 绘制结果
plot(esa1, color=color.new(color.blue, 0), title="1H HLC3 EMA")

关键说明

  • 时间周期参数:"60"代表60分钟(1小时),也可以写为"1H",效果完全一致
  • 内置hlc3函数:直接使用Pine Script预定义的hlc3替代手动计算(high+low+close)/3,代码更简洁高效
  • 序列类型对齐:request.security返回的序列会自动匹配当前日线图表的每一根K线,完美适配ta.ema等需要序列输入的函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:33:19