金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 281|回复: 5

python中如何查询前一天或几天是否为节假日

[复制链接]

6

主题

13

帖子

13

积分

Rank: 4

等级: 专业版

注册:
2024-9-3
曾用名:
发表于 2025-3-23 23:50 | 显示全部楼层 |阅读模式
使用自带的nearest_holliday函数是查询距下一个节假日有多久,我想向前查询之前最近的一次节假日是多久请问怎么写?谢谢!
回复

使用道具 举报

2

主题

4936

帖子

4936

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-3-24 08:37 | 显示全部楼层
get_trading_dates

用这个获取即可。
回复

使用道具 举报

6

主题

13

帖子

13

积分

Rank: 4

等级: 专业版

注册:
2024-9-3
曾用名:
 楼主| 发表于 2025-3-26 20:10 | 显示全部楼层
资深技术05 发表于 2025-3-24 08:37
get_trading_dates

用这个获取即可。

我希望实现判断前一天是否是节日后的第一天,或者判断前一交易日是否只有白天时段交易,请问具体怎么写python代码呢?谢谢!
回复

使用道具 举报

2

主题

4936

帖子

4936

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-3-27 09:11 | 显示全部楼层
直接判断前一个交易日有没有夜盘数据即可。

用 history_bars_date  获取数据。获取之后判断下第一个K的时间是多少。

[PEL] 复制代码
from PythonApi import *
from datetime import datetime



def init(context):
    #定义合约
    code = context.run_info.base_book_id
    #定义周期
    frequency = '1m'
    #定义数据列
    columns = ['datetime']
    #获取基准合约的当前日期,需要注意如不本地磁盘缺少数据,那么会无法正常获取结果
    current_date = datetime.strptime(str(int(get_dynainf(code, 229) + 19000000)), "%Y%m%d")
    #获取前一个交易日的日期
    history_begin_date = get_previous_trading_date(current_date, 1)
    #定义数据查询的开始和结束时间
    begin_date = history_begin_date.replace(hour=0, minute=0, second=0)
    end_date = history_begin_date.replace(hour=19, minute=0, second=0)
    #获取交易日的1分钟数据
    data = history_bars_date(code, begin_date,end_date, frequency, columns)
    b_datetime=  int(data[0])
    b_time = str(b_datetime)[-6:-1]
    print(f"前一个交易日第一个K:{b_datetime}")    #有夜盘打印结果就是 "01010"
    print(f"前一个交易日第一根K时间:{b_time}")
    

    
    
def before_trading(context):
    pass

def handle_bar(context):
    pass
    
    
    


这部分有效的前提是你本地有数据。没有数据情况下也无法判断。

除此之外目前没有办法判断上个交易日是否是节后第一个交易日。
回复

使用道具 举报

6

主题

13

帖子

13

积分

Rank: 4

等级: 专业版

注册:
2024-9-3
曾用名:
 楼主| 发表于 2025-4-2 19:14 | 显示全部楼层
把这个语句放进去了,history_begin_date不是前一天的数据,而是当天的,第一根K的时间也不是01010
输出如下:
19:10:31 > 2025-04-02 00:00:00  (打印的current_date)
19:10:31 > 2025-04-02 00:00:00    (打印的history_begin_date)
19:10:31 > 前一个交易日第一个K:20250402014400
19:10:31 > 前一个交易日第一根K时间:01440
回复

使用道具 举报

2

主题

4936

帖子

4936

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-4-3 13:25 | 显示全部楼层
本帖最后由 资深技术05 于 2025-4-3 13:47 编辑

你本地没有历史数据吧。 日线+1分钟都补下。补数据前:

截图202504031325297324.png
补了数据后:
截图202504031347064997.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-5-10 03:40 , Processed in 0.150054 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表