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

Pine Script RBR模式代码绘制基础蜡烛矩形报错求助

问题解决:Pine Script绘制RBR模式矩形报错

错误原因

报错信息翻译:无法调用'hline',因为'price'参数是series[float]类型,该参数应为input float类型

hline()是用来绘制固定水平线的函数,要求传入固定不变的数值(比如手动输入的价格),但你通过security()获取的日线高低是随K线更新的序列值(每个K线对应不同的值),类型不匹配导致报错。

修正方案

用box.new()函数替代hline()+fill()来绘制矩形,这个函数支持动态的价格和时间参数,适合识别到模式后在对应蜡烛位置绘制矩形。同时修正模式识别逻辑,确保准确找到RBR模式中的基础蜡烛位置:

//@version=4
study("RBR Pattern", overlay=true)

rally_body_pct = 75
base_body_pct = 50
max_candles = 6

// 定义阳线的实体占比条件
base = close > open and (close - open)/(high - low) * 100 <= base_body_pct
rally = close > open and (close - open)/(high - low) * 100 >= rally_body_pct

// 识别RBR模式:Rally -> Base -> Rally 结构
rbr = false
baseBarIndex = na
for i = 0 to max_candles - 2  // 避免i+2超出数组范围
    if rally[i] and base[i+1] and rally[i+2]
        rbr := true
        baseBarIndex := bar_index[i+1]  // 记录基础蜡烛的bar索引
        break

// 绘制基础蜡烛周围的矩形
if not na(baseBarIndex)
    // 获取基础蜡烛的高低价和时间范围
    baseHigh = high[bar_index - baseBarIndex]
    baseLow = low[bar_index - baseBarIndex]
    baseLeftTime = time[bar_index - baseBarIndex]
    baseRightTime = time[bar_index - baseBarIndex + 1]
    
    // 绘制矩形
    box.new(left=baseLeftTime, top=baseHigh, right=baseRightTime, bottom=baseLow, 
            color=color.green, transp=80, border_color=color.green, border_width=2)

plot(close)

关键修改点

  • 替换hline()+fill()为box.new(),支持动态绘制矩形
  • 新增baseBarIndex变量记录基础蜡烛的位置,确保矩形准确画在目标蜡烛上
  • 调整循环范围避免数组越界
  • 直接使用基础蜡烛自身的高低价(而非日线数据),符合“在基础蜡烛周围绘制矩形”的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:09:26