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

如何在Pine Script中标记自上次条件以来创更高高点的K线

Pine Script 实现:标记上次触发条件后突破高点的K线

核心逻辑

要实现需求,关键是仅跟踪最近一次触发条件的高点,并筛选出该触发点之后所有高点超过此值的K线:

  • 定义你的触发条件(替换示例中的自定义信号)
  • 用持久化变量记录上次触发时的K线高点
  • 实时判断当前K线是否在触发后且突破了记录的高点
  • 标记符合条件的K线

完整代码(Pine Script v5)

//@version=5
indicator("标记触发后突破高点K线", overlay=true)

// --------------------------
// 1. 替换为你的实际触发条件
// 示例:RSI低于30后向上交叉30(对应描述中的蓝色方块+箭头触发点)
rsiVal = ta.rsi(close, 14)
triggerCondition = ta.crossover(rsiVal, 30) and ta.lowest(rsiVal, 5) < 30
// --------------------------

// 2. 持久化存储上次触发的高点,仅在触发时更新
var float lastTriggerHigh = na
if triggerCondition
    lastTriggerHigh = high

// 3. 判断是否需要标记:触发后且高点突破上次触发的高点,排除触发K线本身
shouldMark = not na(lastTriggerHigh) and high > lastTriggerHigh and not triggerCondition

// 4. 标记符合条件的K线(可自定义样式)
plotshape(shouldMark, title="突破高点K线", location=location.belowbar, 
          color=color.green, style=shape.circle, size=size.small)

// 可选:标记触发点(对应描述中的蓝色方块+白色向下箭头)
plotshape(triggerCondition, title="触发信号", location=location.abovebar, 
          color=color.blue, style=shape.square, size=size.small)
plotarrow(triggerCondition ? -1 : na, title="触发箭头", 
          colordown=color.white, size=size.small)

关键细节说明

  • var变量的作用:var float lastTriggerHigh = na 会在脚本初始化时仅创建一次,后续不会随K线刷新重置,确保始终保存的是最近一次触发的高点值
  • 触发条件自定义:把示例中的RSI信号替换成你实际的触发逻辑(比如特定K线形态、指标交叉等)即可适配你的需求
  • 排除触发K线:not triggerCondition 确保不会把触发点本身标记为突破K线,仅标记触发后的后续K线

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:50:38