如何修改Pine Script V5代码检测Order Block与FVG重叠并标记
Pine Script V5 实现Order Block与FVG重叠标记功能
核心实现逻辑
要实现重叠标记,核心是判断Order Block(OB)的价格区间与Fair Value Gap(FVG)的价格区间是否存在交集,具体判断规则:
- 看涨OB(Bullish OB):OB区间为
[obLow, obHigh],FVG区间为[fvgLow, fvgHigh],当obLow <= fvgHigh and obHigh >= fvgLow时判定重叠 - 看跌OB(Bearish OB):判断逻辑同上,区间存在交集即判定重叠
修改后的完整代码
//@version=5 indicator("OB & FVG Overlap Marker", overlay=true) // -------------------------- 替换为你自己的OB检测逻辑 -------------------------- // 示例看涨Order Block检测(请替换成你原有代码) bullishOB = ta.close > ta.open and ta.close[1] < ta.open[1] and ta.close[2] < ta.open[2] bullOBLow = ta.low[1] bullOBHigh = ta.high[1] // 示例看跌Order Block检测(请替换成你原有代码) bearishOB = ta.close < ta.open and ta.close[1] > ta.open[1] and ta.close[2] > ta.open[2] bearOBLow = ta.low[1] bearOBHigh = ta.high[1] // -------------------------- 替换为你自己的FVG检测逻辑 -------------------------- // 示例FVG(失衡区间)检测(请替换成你原有代码) fvgExists = ta.high[1] < ta.low[3] or ta.low[1] > ta.high[3] fvgLow = ta.min(ta.low[3], ta.low[1]) fvgHigh = ta.max(ta.high[3], ta.high[1]) // -------------------------- 重叠检测与标记绘制 -------------------------- // 通用重叠判断函数 isOverlap(obLow, obHigh, fvgLow, fvgHigh) => obLow <= fvgHigh and obHigh >= fvgLow // 绘制看涨OB与FVG重叠的绿色圆形 bullOverlap = bullishOB and fvgExists and isOverlap(bullOBLow, bullOBHigh, fvgLow, fvgHigh) var color bullMarkColor = color.new(color.green, 0) circle.new(bar_index[1], (bullOBLow + bullOBHigh)/2, size=size.small, color=bullMarkColor, style=circle.style_circle, border_width=2) // 绘制看跌OB与FVG重叠的红色圆形 bearOverlap = bearishOB and fvgExists and isOverlap(bearOBLow, bearOBHigh, fvgLow, fvgHigh) var color bearMarkColor = color.new(color.red, 0) circle.new(bar_index[1], (bearOBLow + bearOBHigh)/2, size=size.small, color=bearMarkColor, style=circle.style_circle, border_width=2) // -------------------------- 保留你原有绘制代码(可选) -------------------------- // 示例绘制OB plotshape(bullishOB, title="Bullish OB", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(bearishOB, title="Bearish OB", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // 示例绘制FVG区间 box.new(bar_index[3], fvgLow, bar_index[1], fvgHigh, color=color.new(color.blue, 80), border_color=color.blue)
关键说明
- 代码替换提示:将示例中的OB/FVG检测逻辑,直接替换成你已有的对应代码即可,无需改动重叠判断和标记绘制部分
- 标记位置:圆形默认绘制在OB区间的中点,确保精准对应重叠区域
- 性能优化:用
var声明颜色变量,避免每根K线重复创建对象
内容的提问来源于stack exchange,提问作者Rajkumar
相关产品推荐
相关产品推荐

