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

Pine Script循环数组绘制水平线报错:参数类型不匹配求助

问题分析

报错原因是hline()函数的price参数要求传入常量类型(input float/固定数值),但你的代码中abc被识别为series float类型,不符合参数要求。

修正代码

方式一:直接计算目标价格(最简洁)

直接计算110%、120%、130%的价格并绘制水平线,无需数组和循环:

//@version=5
indicator("test123", overlay=true)

aHigh = input.float(title="aHigh", defval=750.00)

// 计算并绘制三个水平线
hline(aHigh * 1.1, "110%", color.red)
hline(aHigh * 1.2, "120%", color.blue)
hline(aHigh * 1.3, "130%", color.green)

方式二:保留数组逻辑的写法

如果要保留数组存储比例的思路,需确保计算出的价格为常量,调整代码如下:

//@version=5
indicator("test123", overlay=true)

aHigh = input.float(title="aHigh", defval=750.00)

// 初始化需要的比例数组
var upswing = array.new_float(3, 0.0)
array.set(upswing, 0, 1.1)
array.set(upswing, 1, 1.2)
array.set(upswing, 2, 1.3)

// 循环绘制水平线,直接传入常量计算结果
for _i = 0 to array.size(upswing)-1
    ratio = array.get(upswing, _i)
    hline(aHigh * ratio, str.tostring(ratio*100) + "%", color=color.red)
关键说明
  • hline()是编译期执行的函数,仅接受常量参数,无法使用动态变化的series类型变量;
  • 原代码循环到10但仅初始化了数组前3个元素,会导致后续水平线价格为0,无实际意义,建议只保留需要的比例值;
  • 使用input.float()替代input()可明确变量类型,避免潜在的类型识别问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:57:42