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

Pine Script指标开发求助:绘制跨周周日开盘价水平线

解决Pine Script周日开盘水平线绘制问题

核心需求实现代码

//@version=5
indicator(title="Sunday Open", shorttitle="Sunday Open", overlay=true)

// 获取日线级别的开盘价与周日标识
[dailyOpen, isSunday] = request.security(syminfo.tickerid, "D", [open, dayofweek == dayofweek.sunday])

// 持久化存储当前生效的周日开盘价,仅在新周日出现时更新
var float currentSundayOpen = na
if isSunday
    currentSundayOpen := dailyOpen

// 绘制线条:仅在当前周日到下一个周日之间输出价格,避免延伸至图表末尾
plot(currentSundayOpen and not isSunday[1] ? currentSundayOpen : na, 
     title="Sunday Open", style=plot.style_linebr, linewidth=2, color=color.orange)

关键逻辑说明

  • 持久化价格存储:用var关键字定义currentSundayOpen,确保变量不会随每根K线重置,仅当新的周日K线出现时更新为当日开盘价。
  • 线条终止控制:通过not isSunday[1]判断当前是否处于两个周日的间隔期——当新周日K线出现时,isSunday[1]变为true,此时停止输出当前线条价格,避免线条无限延伸。
  • 跨周期数据同步:使用request.security获取日线级别的开盘价和周日标识,保证时间周期匹配准确。

阶梯式连续线条版本(可选)

如果需要呈现连续阶梯效果(每个周日开盘价衔接上一周期终点),只需移除线条终止判断,线条会自动延续至下一个周日开盘:

//@version=5
indicator(title="Sunday Open (Stepped)", shorttitle="Sunday Open", overlay=true)

[dailyOpen, isSunday] = request.security(syminfo.tickerid, "D", [open, dayofweek == dayofweek.sunday])
var float currentSundayOpen = na
if isSunday
    currentSundayOpen := dailyOpen

plot(currentSundayOpen ? currentSundayOpen : na, 
     title="Sunday Open", style=plot.style_linebr, linewidth=2, color=color.orange)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:05:26