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

Pine Script编写的Open Session指标周六周日区间不显示问题求助

问题根源
  • session匹配默认过滤周末:TradingView的time(timeframe, session)函数默认仅匹配交易品种默认的交易日(通常排除周六、周日),周末时段无论session配置是否匹配,返回值都是na。你当前所有逻辑触发、画图判断都完全依赖opd1_newbar_opr_D1的返回值,周末这个值为空,自然不会走逻辑分支、也不会输出区间图形。
  • 高低点更新逻辑失效:你当前修改后的代码里opd1_hi := max(opd1_hi, opd1_hi)、opd1_lo := min(opd1_lo, opd1_lo)属于无效赋值,高低点不会随K线更新,哪怕session匹配成功也不会生成正确的区间范围。
  • 跨天session断档:你配置的2200-2000属于跨天session,周末没有交易K线做时间承接的情况下,跨天计算逻辑会自动断档,也会导致区间无法展示。
  • 额外提醒:你代码里用到的noPlotOutside变量没有做定义,这个变量如果是用来控制session外是否隐藏图形的话,也可能导致周末无输出。
修复步骤
  1. 给time()函数添加第三个参数,强制允许一周7天匹配session,关闭默认的周末过滤:
// 最后一个参数"0123456"代表周日到周六全匹配,不过滤任何一天
opd1_newbar_opr_D1 = time(open_ranges_D1, opd1_session_input, "0123456")
  1. 修正高低点更新逻辑,恢复动态计算:
if opd1_newbar_opr_D1
    if not opd1_newbar_opr_D1[1]
        opd1_hi := high
        opd1_lo := low
    else
        // 替换成动态取当前K线高低点更新区间
        opd1_hi := max(high, opd1_hi)
        opd1_lo := min(low, opd1_lo)
  1. 调整画图判断逻辑,如果需要周末也保留上一个交易日的区间展示,去掉session外直接返回na的限制,或者单独加周末保留值的判断:
// 示例:周末也保留区间值输出
isWeekend = dayofweek == dayofweek.saturday or dayofweek == dayofweek.sunday
opd1_hi_plot = plot(showHi and (not noPlotOutside or opd1_newbar_opr_D1 or isWeekend) ? opd1_hi : na, title="opd1_hi_D1", color=opd1_clr_D1, linewidth=1, style=plot.style_linebr, transp=50)
opd1_lo_plot = plot(showLo and (not noPlotOutside or opd1_newbar_opr_D1 or isWeekend) ? opd1_lo : na, title="opd1_lo_D1", color=opd1_clr_D1, linewidth=1, style=plot.style_linebr, transp=50)
  1. 如果不需要跨天session,可将opd1_session_input调整为单日时段范围,避免跨天断档问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 12:06:03