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

Pine Script v5问题:非周一为周首时无法正确绘制周高低线

问题修复:每周首日起贯穿整周的高低线绘制脚本

问题说明

需求为绘制从每周首日开始并贯穿整周的高低线,但当前Pine Script v5脚本存在以下问题:

  • 若一周起始日为周一以外的日期(示例中周二),仅绘制首日K线的高低点
  • 若起始日为周一,则可正常从周一高低点开始绘制并贯穿整周

原代码问题分析

原代码中仅限制周一K线更新高低点数值,导致当一周起始日不是周一(比如周二)时,后续非周一的K线不会更新高低点,最终高低线停留在首日数值上。同时仅通过ta.change(weekofyear)判断每周首日,逻辑不够严谨,存在跨年度周误判的可能。

修复后的代码

//@version=5
indicator('First Bar of the Week Session High-Low', overlay=true, week_start=1) // week_start可设置:1=周一,2=周二...7=周日

var float sessionHigh = na
var float sessionLow = na

// 准确判断每周第一根K线:周数变化 或 当前是一周起始日且周数未变化(应对跨周但同周数的情况)
isFirstBarOfWeek = ta.change(weekofyear) or (dayofweek == week_start and not ta.change(weekofyear))

// 更新高低点:每周首日初始化,之后每周内所有K线持续更新
if isFirstBarOfWeek
    sessionHigh := high
    sessionLow := low
else
    // 只要属于当前周,就持续更新高低点
    sessionHigh := math.max(high, sessionHigh)
    sessionLow := math.min(low, sessionLow)

// 绘制高低线
plot(sessionHigh, title='Session High', color=color.new(color.blue, 0))
plot(sessionLow, title='Session Low', color=color.new(color.orange, 0))

修复要点

  1. 添加week_start参数:在indicator函数中指定一周起始日,可根据需求设置1(周一)到7(周日)的数值
  2. 优化每周首日判断逻辑:结合周数变化和一周起始日,避免跨周或跨年度的误判
  3. 取消仅周一更新的限制:只要当前K线属于本周(未到下一周首日),就持续更新高低点数值,确保整周高低线动态更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:12:33