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

Pine Script中盘后时段下,如何实现类似跨年的季度切换判断?

在Pine Script中实现季度切换判断与季度开盘价获取

针对你在盘后时段(仅日内图表可用)下的需求,以下是实现季度切换判断及获取季度首个交易日开盘价的方案:

1. 季度切换判断逻辑

日历年季度的切换可以通过对比当前K线与上一根K线的quarter值实现,对应非盘后时段则使用timeframe.change('3M')来判断季度周期切换,完整代码如下:

//@version=5
indicator("季度开盘价示例", overlay=true)

hasSessionExtended = syminfo.session == session.extended

// 年度切换判断(原代码保留)
newYear    = hasSessionExtended ? year != year[1] : timeframe.change('12M')

// 季度切换判断
newQuarter = hasSessionExtended ? quarter != quarter[1] : timeframe.change('3M')

2. 获取季度首个交易日开盘价

使用var关键字定义持久化变量存储季度开盘价,在季度切换触发时更新该值:

// 定义持久化变量存储季度开盘价,初始值设为na
var float quarterOpen = na

// 当季度切换时,记录当前K线的开盘价
if newQuarter
    quarterOpen := open

// 可选:如果需要获取季度首个交易日的常规交易时段开盘价(排除盘前/盘后)
// 可结合ta.session函数判断是否在常规交易时段,再更新开盘价
var float regularQuarterOpen = na
inRegularSession = ta.session("0930-1600") // 根据标的实际交易时段调整
if newQuarter and inRegularSession
    regularQuarterOpen := open

3. 代码说明

  • 对于盘后时段的日内图表:通过quarter != quarter[1]精准捕捉季度切换的第一根K线,因为日内K线的quarter值仅在季度切换日的首根K线发生变化。
  • 对于非盘后时段的高时间框架图表:使用timeframe.change('3M')直接判断季度周期的切换,避免日内K线的重复触发。
  • 持久化变量var确保季度开盘价在整个图表周期内仅在季度切换时更新,后续K线可持续引用该值。

内容的提问来源于stack exchange,提问作者i am different

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:55:22