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

如何用Pine Script编写代码检测任意前会话特定时段最大K线的最高点

Pine Script 实现前一交易日特定时段最大K线最高点检测

核心思路

要实现需求,需完成以下几个关键环节:

  • 支持用户指定非当前会话的目标交易日
  • 自定义要检测的时间范围
  • 筛选目标交易日内该时段的所有K线
  • 以K线高低点差值为标准判断“最大K线”,记录其最高点(可按需改为实体大小判断)

完整代码实现

//@version=5
indicator("前一交易日特定时段最大K线最高点", overlay=true)

// 输入参数:目标交易日(YYYY-MM-DD格式)
targetDate = input.time(timestamp("2024-05-20"), title="目标交易日", tooltip="选择非当前会话的前一交易日")
// 输入参数:时段范围
startTime = input.time(timestamp("09:30"), title="时段开始时间")
endTime = input.time(timestamp("11:30"), title="时段结束时间")

// 提取时段的当日时分秒,用于匹配任意交易日的对应时段
startTimeOfDay = time("D", "", startTime)
endTimeOfDay = time("D", "", endTime)

// 判断当前K线是否属于目标交易日且在指定时段内
isTargetSession = time >= targetDate and time < targetDate + 86400000 // 覆盖目标交易日全天
isInTimeRange = time("D", "", time) >= startTimeOfDay and time("D", "", time) <= endTimeOfDay

// 初始化变量存储最大K线的范围和对应最高点
var float maxRange = na
var float maxHigh = na

// 遍历目标时段K线,更新最大K线数据
if isTargetSession and isInTimeRange
    currentRange = high - low // 以高低点范围判断最大K线,可改为math.abs(close-open)用实体大小判断
    if currentRange > maxRange or na(maxRange)
        maxRange := currentRange
        maxHigh := high

// 可视化标记最高点
plot(maxHigh, title="最大K线最高点", color=color.new(color.red, 0), linewidth=2, style=plot.style_circles)

// 可选:给目标时段K线添加背景色便于验证
bgcolor(isTargetSession and isInTimeRange ? color.new(color.blue, 90) : na)

代码说明

  • 参数配置:通过可视化输入框让用户灵活设置目标日期和时段,无需修改代码核心逻辑
  • 时间匹配:用time("D", "", time)提取K线的当日时分,确保时段判断不受日期影响
  • 最大K线判断:默认用高低点差值作为“最大”标准,若需改为实体大小,替换currentRange的计算逻辑即可
  • 变量持久化:用var关键字确保变量在脚本运行期间保留值,仅在目标时段内更新数据
  • 可视化验证:红色圆点标记最高点,浅蓝色背景标注目标时段K线,方便确认结果准确性

注意事项

  • 目标交易日必须设置为非当前会话的日期,避免和当前交易时段数据冲突
  • 脚本基于Pine Script v5编写,需确保TradingView编辑器使用对应版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:45:33