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

在Pine脚本中基于多时间框架检测过去5个交易日的节假日

多时间框架下的节假日时间段检查方案(小时图指标适配)

核心逻辑

  1. 在小时图指标中,通过多时间框架调用日线级别数据,定位日线图上倒数第5根K线的开盘时间
  2. 对比小时图按自然日计算的5天前时间戳,若两者不一致,说明中间存在节假日,以日线的开盘时间作为有效起始点
  3. 基于起始点遍历对应日线K线,通过相邻日线的时间差判断节假日时间段

Pine Script v5 代码实现

//@version=5
indicator("节假日检查工具", overlay=true)

// 1. 计算小时图自然日5天前的时间戳
hourly_5days_ago = time - 5 * 86400000 // 86400000 = 1天的毫秒数

// 2. 获取日线图倒数第5根K线的开盘时间
daily_bar_offset = ta.barssince(ta.barstate.islast) - 4
daily_5th_last_open = request.security(syminfo.tickerid, "D", ta.valuewhen(bar_index == daily_bar_offset, time, 0))

// 3. 确定有效起始时间
valid_start_time = daily_5th_last_open != hourly_5days_ago ? daily_5th_last_open : hourly_5days_ago

// 4. 检查节假日时间段:遍历后续日线K线,判断时间间隔
var array<float> daily_open_times = array.new_float()
if request.security(syminfo.tickerid, "D", ta.barstate.isnew)
    array.push(daily_open_times, request.security(syminfo.tickerid, "D", time))

if array.size(daily_open_times) >= 2
    for i = 1 to array.size(daily_open_times) - 1
        prev_time = array.get(daily_open_times, i-1)
        curr_time = array.get(daily_open_times, i)
        // 间隔超过1天(预留微小误差阈值)则判定为节假日
        if curr_time - prev_time > 86400000 * 1.1
            label.new(prev_time + 86400000, high, "节假日", color=color.red, textcolor=color.white)

// 调试用:显示关键时间信息
var table info_table = table.new(position.top_right, 2, 2)
if ta.barstate.islast
    table.cell(info_table, 0, 0, "自然日5天前:", textcolor=color.white)
    table.cell(info_table, 1, 0, str.tostring(hourly_5days_ago, "yyyy-MM-dd HH:mm"), textcolor=color.yellow)
    table.cell(info_table, 0, 1, "有效起始时间:", textcolor=color.white)
    table.cell(info_table, 1, 1, str.tostring(valid_start_time, "yyyy-MM-dd HH:mm"), textcolor=color.green)

关键细节说明

  • 跨时间框架数据调用:request.security()是实现多时间框架数据交互的核心,确保小时图能精准获取日线K线的时间维度信息
  • 时间定位逻辑:通过ta.barssince(ta.barstate.islast)计算当前日线bar到最新bar的索引差,配合ta.valuewhen()直接定位到倒数第5根日线的开盘时间
  • 节假日判定规则:正常交易日的日线开盘时间间隔应为24小时,若间隔大于该值,说明中间存在休市的节假日时间段
  • 起始时间修正:当自然日计算的时间与实际日线K线时间不符时,自动切换为日线的开盘时间,避免因节假日导致的数据范围偏差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 08:18:35