如何在Pine Script 5中仅在阈值外显示交叉三角形Plotshape?
Pine Script 5 实现交叉点在阴影区域外时显示三角形标记
核心逻辑拆解
要实现仅在黄线/蓝线于阴影区域外交叉时显示三角形,需要完成三个关键步骤:
- 定义阴影区域的上下边界
- 识别黄线与蓝线的交叉信号(金叉/死叉)
- 叠加「交叉点位于阴影区域外」的条件,控制标记显示
代码实现示例
下面是完整的可运行代码,你可以根据自己的实际指标替换黄线、蓝线和阴影边界的计算逻辑:
//@version=5 indicator("Cross Outside Shadow", overlay=true) // 替换为你实际使用的黄线、蓝线计算逻辑 yellowLine = ta.ema(close, 10) // 示例黄线:10周期EMA blueLine = ta.ema(close, 20) // 示例蓝线:20周期EMA // 替换为你实际的阴影区域上下边界(示例用布林带作为阴影范围) [_, upperBand, lowerBand] = ta.bb(close, 20, 2) // 绘制阴影区域(可选,仅用于可视化) bgcolor(color.new(color.gray, 90), title="Shadow Area") // 1. 识别交叉信号 goldenCross = ta.crossover(yellowLine, blueLine) // 黄线上穿蓝线(金叉) deathCross = ta.crossunder(yellowLine, blueLine) // 黄线下穿蓝线(死叉) // 2. 筛选阴影区域外的交叉 // 金叉时,线在阴影上边界之外 goldenCrossOutside = goldenCross and yellowLine > upperBand // 死叉时,线在阴影下边界之外 deathCrossOutside = deathCross and yellowLine < lowerBand // 3. 绘制三角形标记:仅满足条件时显示 plotshape(goldenCrossOutside, title="Golden Cross (Outside)", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(deathCrossOutside, title="Death Cross (Outside)", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // 绘制基础线条(可选) plot(yellowLine, color=color.yellow, title="Yellow Line") plot(blueLine, color=color.blue, title="Blue Line") plot(upperBand, color=color.gray, title="Upper Band") plot(lowerBand, color=color.gray, title="Lower Band")
关键细节说明
- 边界判断:因为交叉发生时黄线和蓝线的数值非常接近,所以只需判断其中一条线是否超出阴影边界即可(示例中用黄线)。
- 自定义替换:你需要把代码里的
yellowLine、blueLine、upperBand、lowerBand替换为你自己指标中的对应变量。 - 显示控制:
plotshape的第一个参数是布尔值,只有当该值为true时,标记才会被绘制,这是实现条件显示的核心。
内容的提问来源于stack exchange,提问作者dtrbh65e76
相关产品推荐
相关产品推荐

