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

如何在TradingView的Pine中自动获取月度准确天数

核心解决方案

完全不需要通过input手动维护每月、每周的天数参数,Pine Script 自带的时间类内置变量可以自动匹配公历日历规则,动态计算任意月份、周度的准确天数,从根源上避免手动更新带来的历史计算偏差。

可直接复用的计算逻辑

自动获取自然月总天数

Pine 内置的dayofmonth变量会返回当前K线对应的日期在当月的日序,不需要手动枚举大小月、闰年2月的天数,只需要在月份切换的节点抓取一次前序值,就能自动拿到刚结束的完整自然月的总天数:

  • 触发判定条件:当当前K线的month值和前一根K线不一致时,说明刚跨过月界
  • 取值规则:在月界节点上,前一根K线的dayofmonth值,就是上个月的准确总天数(不管是28天、29天、30天还是31天,都会被自动识别)
  • 计算转换:拿到月天数后直接按照需求乘以5,即可得到后续分析需要的数值

自动获取自然周总天数

同理,通过weekofyear变量判定周度切换节点,结合内置的dayofweek变量,可以自动计算上一个完整自然周的总天数,不需要手动调整参数。

可直接落地的代码示例
//@version=5
indicator("自动计算周期天数", overlay=false)

// 自动追踪上一个完整月的总天数
var int completedMonthDays = na
// 检测月份切换节点
if month != month[1]
    completedMonthDays = dayofmonth[1]

// 按需求完成乘5的计算
targetValue = completedMonthDays * 5
plot(targetValue, title="月度天数*5计算值")

// 自动追踪上一个完整周的总天数
var int completedWeekDays = na
// 检测周度切换节点
if weekofyear != weekofyear[1]
    // 适配 TradingView 默认周度起始规则
    completedWeekDays = dayofweek[1] + 1
方案优势
  • 零维护成本:不管遇到闰年2月、大小月切换、跨年度的月份节点,系统都会自动匹配对应日历规则,不需要每隔一段时间手动修改input的参数值
  • 历史计算无偏差:所有计算都是基于每根K线的时间戳动态生成,不会出现手动调整参数后,历史回测阶段的计算值和对应周期实际天数不匹配的问题
  • 不串值不覆盖:每个周期的天数是绑定对应K线时间戳动态计算的,哪怕后续新的月份开始,系统更新新的天数值,历史K线对应的旧周期计算结果不会被篡改,完全解决手动更新参数时,历史结果被意外覆盖的问题
  • 完全匹配场景需求:比如2月的实际天数不管是28还是29,3月的实际天数不管是30还是31,系统都会在月份切换节点自动抓取准确值,不需要人工干预

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 17:54:03