本文主要是介绍获取当日n个季度前的日期所处季度的最后一天——时间相关函数4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文介绍的函数用于获取当日n个季度前的日期所处季度的最后一天(有点绕,看后面例子就好理解了)。
源码
def last_day_of_quarter_before_n_quarters(n):"""获取当日n个季度前的日期所处季度的最后一天:return: 当日n个季度前的日期所处季度的最后一天,格式为字符串"""# 当前日期current_date = get_trading_day()# 当前季度current_quarter = (current_date.month - 1) // 3 + 1# 目标日期总季度数,用于计算目标日期total_quarters = current_date.year * 4 + current_quarter - 1 - (n - 1)# 当前季度的n-1个季度前的日期季度quarter = total_quarters % 4 + 1# 当前季度的n-1个季度前的日期年份year = total_quarters // 4# 当前季度的n-1个季度前的季度的第一个月的月份month = (quarter - 1) * 3 + 1# 当前季度的n-1个季度前的第一个月份减去一天,得到n个季度前的日期所处季度的最后一天,并转换为字符串格式return (dt.datetime(year, month, 1) - dt.timedelta(days=1)).strftime('%Y%m%d')
有点绕口,举个例子。
假设当日为2022年6月30日(2022年第二季度的最后一天),当日1(这里参数n=1)个季度前的最后一天,也就是2022年第一季度的最后一天(2022年3月31日);当日2(这里参数n=2)个季度前的最后一天,也就是2021年第四季度的最后一天(2021年12月31日)。
更多的实例可以参见下面的表格:
当前日期 | n=1的返回值 | n=2的返回值 | n=3的返回值 |
---|---|---|---|
20220630 | 20220331 | 20211231 | 20210930 |
20220701 | 20220630 | 20220331 | 20211231 |
很多策略都需要查询上市公司的财务数据。ptrade提供了查询财务数据的接口函数get_fundamentals,在该函数使用时,需要用到查询日期作为参数。查询日期的不同,会返回不同的财务数据结果。本文所提供的函数,会在回测过程,获取标的的最新财务数据中使用,后续文章会有使用示例。
博客内容只用于交流学习,不构成投资建议,盈亏自负!
个人博客:http://coderx.com.cn/(优先更新)
项目最新代码:https://gitee.com/sl/quant_from_scratch
欢迎大家转发、留言。有微信群用于学习交流,感兴趣的读者请扫码加微信!
如果认为博客对您有帮助,可以扫码进行捐赠,感谢!
微信二维码 | 微信捐赠二维码 |
---|---|
这篇关于获取当日n个季度前的日期所处季度的最后一天——时间相关函数4的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!