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

如何在Pine Script中为识别到的看涨吞没蜡烛的开收盘价绘制水平线

实现方案

你可以通过数组存储每次看涨吞没信号触发时的开、收盘价,再遍历数组批量绘制持久水平线,修改后的完整代码如下:

//@version=4
//@WMSIDI
study(title = "Engulfing Lines", overlay = true)

// 可配置参数:最大显示历史水平线数量,避免线过多过乱
max_lines = input(title="最大保留水平线数量", type=input.integer, defval=10, minval=1)

// 优化看涨吞没判断逻辑,替换原嵌套三目运算符,可读性更高
is_bullish_engulfing = open[3] > close[3] and open[2] > close[2] and open[1] > close[1] and close > open and close >= open[1] and close[1] >= open and (close - open) > (open[1] - close[1])

barcolor(is_bullish_engulfing ? color.yellow : na)

// 声明持久化数组存储信号触发时的开、收盘价
var array<float> engulf_open = array.new_float()
var array<float> engulf_close = array.new_float()

// 触发信号时存入当前开收盘价格
if is_bullish_engulfing
    array.push(engulf_open, open)
    array.push(engulf_close, close)
    // 超过最大保留数量时删除最早的记录
    if array.size(engulf_open) > max_lines
        array.shift(engulf_open)
        array.shift(engulf_close)

// 遍历数组绘制所有水平线
for i = 0 to array.size(engulf_open) - 1
    // 绘制开盘价水平线(蓝色)
    plot(array.get(engulf_open, i), "看涨吞没开盘线", color.blue, 2, plot.style_linebr)
    // 绘制收盘价水平线(Lime色)
    plot(array.get(engulf_close, i), "看涨吞没收盘线", color.lime, 2, plot.style_linebr)

代码说明

  • 优化了原有的嵌套三目运算符判断逻辑,用and连接多个判断条件,可读性和可维护性更高
  • 新增可配置的最大水平线数量参数,你可以根据自己的需求调整保留多少根历史水平直线
  • 用var关键字声明的数组会在脚本运行时持久保存数据,不会每根K线都重置
  • 用plot.style_linebr样式绘制水平线,会自动从信号发生的K线位置开始向右绘制,不会在信号前出现多余的线段
  • 当信号数量超过你设置的最大保留数时,会自动删除最早的信号对应的线,避免K线图上线条过多影响使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:36:03