当前位置: 首页 > news >正文

一个判断A股交易状态的python脚本

        最近在做股票数据相关的项目,需要用到判断某一天某个时刻A股的状态,比如休市,收盘,交易中等,发动脑筋想了一下,这个其实还是比较简单的,这里我把实现方法分享给大家。

思路 

        当天是否休市

        对于某一天来说,我们可以判断这一天是不是holiday,对于A股来说其交易日与工作日一致,只要是周六日(无论调不调休),其一定休市,那么一个较为简单的思路就是使用time.strftime()获得当前日期的week值后判断其是否在周中 ,但是对于一些在周中的法定节假日这种方法便无能为力了……

        因此,最好的办法就是能够判断当前时间在日历中是否是节假日(周六日+法定节假日)

经过不懈的查找,还终于让我找到这样一个日历库,它就是chinese_calendar,

chinese_calendar获取方式

pip install chinese_calendar

        并且,非常贴心的是作者还专门出了一个is_holiday()和is_workday()的方法用来判断某一天是不是节假日或工作日!

chinese_calendar使用方法 

import chinese_calendar as calendar
import datetime
#chinese_calendar支持的时间格式是datetime类型的
year=2025
month=4
day=1
time=datetime.date(year,month,day)
print(f'{year}年{month}月{day}日是节假日吗?{calendar.is_holiday(time)}')

运行结果:

        事情到这儿就结束了吗?还没有,注意我们前边说过,A股是非常懒的,在一些需要调休并且是周六日的日子它也不交易,仍处于休市状态,那么这个时候我们使用chinese_calendar的is_holiday()或is_workday()给出的结果都会是工作日(周六日调休) ,因此我们还是需要再判断一下这一天是不是周六日,如果是,那么A股必然休市,如果不是A股不一定就一定交易(周中是法定节假日)。

        这句话听着很拗口,但是实现起来还是比较简单的,我们只需再使用time库下的strftime获得一个字符串时间戳来判断即可:

import time
#week的取值为0-6 0是星期日,1-6是周一至周六
week=int(time.strftime(r"%w"))
if week==0 or week==6:print('A股休市')

完整代码:

import chinese_calendar as calendar
import datetime
def marketstate(self):week=int(time.strftime("%W"))is_holiday=calendar.is_holiday(datetime.date.today())if is_holiday:return '休市'if week==6 or week==0:return '休市'else:return '开盘'

以上是用来判断A股某一天的交易状态,接下来我们还要判断某一个时刻的交易状态

当天某个时间的交易状态


http://www.mrgr.cn/news/96587.html

相关文章:

  • USB有驱ID卡读卡器C#小程序开发
  • 哈希表 - 两数之和(Map) - JS
  • 【Kubernetes】CentOS 7 安装 Kubernetes 1.30.1
  • HCIA-数据通信datacom认证
  • Qt使用QGraphicsView绘制线路图————附带详细实现代码
  • 【零基础入门unity游戏开发——2D篇】SpriteRenderer精灵渲染器组件
  • UGNX二次开发——截图功能
  • 蓝桥杯专项复习——二分
  • 将 PyTorch Model 用可视化方法浏览 torchview,onxx, netron, summary | 撰写论文 paper
  • PDF解析黑科技:从OCR-Free到多模态大模型的进化之旅
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例14,TableView16_14 拖拽自动保存示例
  • 《异常检测——从经典算法到深度学习》30. 在线服务系统中重复故障的可操作和可解释的故障定位
  • 基于PX4和Ardupilot固件下自定义MAVLink消息测试(QGroundControl和Mission Planner)
  • SQL注入之盲注技术详解
  • DataPlatter:利用最少成本数据提升机器人操控的泛化能力
  • 大模型时代的基础架构 读书笔记
  • Android设计模式之代理模式
  • 项目上传github——SSH连接配置文档
  • 【MySQL】从零开始:掌握MySQL数据库的核心概念(四)
  • 【MySQL】从零开始:掌握MySQL数据库的核心概念(五)