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

如何在价格上穿特定时段高点时终止画线,否则延伸至04:00?

实现TradingView时段高点线的动态终止逻辑

你的需求核心是让线条在价格突破高点后停止绘制,否则延伸到04:00。关键在于跟踪首次突破的发生位置,之后只在突破前的时段内绘制线条。以下是修改后的代码及说明:

//@version=5
indicator("时段高点动态延伸线", overlay=true)

// 获取20:00-00:00(GMT-5)时段的高点
highRange = ta.sessionHigh("2000-0000", "GMT-5")

// 定义线条的绘制时段:00:00-04:00(GMT-5)
drawPeriod = time(timeframe.period, "0000-0400", "GMT-5")

// 价格突破高点的交叉条件
crossHigh = ta.crossover(high, highRange)

// 用var变量记录首次突破的K线索引,初始-1表示未触发突破
var int firstCrossBar = -1
if crossHigh
    firstCrossBar := bar_index

// 绘制条件:处于绘制时段内,且要么未突破,要么当前K线在突破发生之前
plotCondition = drawPeriod and (firstCrossBar == -1 or bar_index < firstCrossBar)

// 绘制线条:满足条件时显示高点,否则隐藏
plot(plotCondition ? highRange : na, color=color.new(#f1074d, 50), linewidth=2, title="动态高点线")

关键逻辑说明

  • var int firstCrossBar = -1:用var声明的变量只会初始化一次,专门用来记录第一次触发突破的K线位置,初始值-1代表还没出现突破。
  • 当crossHigh条件触发时,把当前K线的索引bar_index赋值给firstCrossBar,锁定突破发生的位置。
  • plotCondition同时判断两个条件:当前处于00:00-04:00的绘制时段,并且要么还没发生突破,要么当前K线在突破K线之前。只有满足这两个条件时才绘制线条,突破后的K线就会停止显示线条。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:55:00