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

如何用Pine Script正确连接满足特定条件的K线高点?

解决Pine Script中连接顶部K线高点的问题

你的代码问题在于,判断条件是在当前K线检测上一根K线是否为顶部,并且在当前K线位置绘制上一根的高点,这会导致绘图逻辑错位,从而出现错误的连线。

正确实现方式(两种可选)

方法1:使用内置函数ta.pivothigh

Pine Script提供了专门寻找顶部的内置函数ta.pivothigh(length_before, length_after),参数分别代表顶部前后需要对比的K线数量。这里我们需要前后各1根,所以可以直接用这个函数来获取所有符合条件的顶部高点,再用plot连接:

//@version=5
indicator("顶部高点连线", overlay = true)
// 识别前后各1根K线都更低的顶部高点
peakHigh = ta.pivothigh(1, 1)
// 绘制顶部高点连线,仅连接有效高点
plot(peakHigh, title="顶部连线", color=color.blue, linewidth=2)

方法2:自定义无未来数据的判断逻辑

如果你想手动实现无未来数据的判断(避免指标重绘),可以在顶部K线闭合后再标记并收集高点:

//@version=5
indicator("顶部高点连线(无未来数据)", overlay = true)
// 在当前K线判断上一根是否为顶部(基于已闭合的K线)
isPreviousTop = high[1] > high[2] and high[1] > high[0]

// 存储顶部高点的价格和对应K线索引
var float[] topPrices = array.new_float()
var int[] topBarIndices = array.new_int()

// 检测到顶部时,将数据存入数组
if isPreviousTop
    array.push(topPrices, high[1])
    array.push(topBarIndices, bar_index[1])

// 绘制顶部高点连线
plot(array.size(topPrices) > 0 ? array.from(topPrices, topBarIndices) : na, title="顶部连线", color=color.blue, linewidth=2)

效果说明

上述代码都会只连接所有符合条件的顶部K线高点,不会错误连接后续无关K线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 08:03:23