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

Pine Script调用hline函数参数类型不匹配报错,寻求解决方案

问题解决:Pine Script hline类型错误

错误原因

调用hline()时出现类型不匹配,核心原因如下:

  • hline()是编译时函数,仅能接收编译阶段就确定的常量值,无法处理运行时生成的series类型变量
  • 原代码里var level = o + i定义的level属于series int类型,不符合price参数要求的input float(编译时常量)类型
  • 另外,hline()不能在for循环中直接调用,它是脚本初始化阶段执行的函数,无法在运行时动态创建

修正代码

//@version=5
indicator("My script", overlay = true)
base_price = 21304
rg = 100

// 仅在第一个K线时计算所有符合条件的价位
var float[] levels_array = array.new_float()
if barstate.isfirst
    for i = -rg to rg
        level = base_price + i
        if level % 100 == 0
            array.push(levels_array, level)

// 绘制基础开盘价水平线
hline(base_price, "OPEN PRICE", color.green, hline.style_solid, 1, true)
// 批量绘制所有100整数倍价位的水平线
hline.from_array(levels_array, "Levels", color.green, hline.style_solid, 2)

修正说明

  • 用barstate.isfirst确保价位计算仅执行一次,避免重复操作
  • 借助数组存储所有符合%100 == 0条件的价位,再通过hline.from_array()批量创建水平线,该函数支持数组类型的常量集合,满足hline的类型要求
  • 移除不必要的var修饰符,确保基础值为编译时常量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:20:14