量化中获取A股交易日信息

问题背景:

在获取近N日的交易品种数据时,例如想要获取近十天涨停过的股票,我们先要得到这N个交易日的日历数据。而akshare的封装函数ak.tool_trade_date_hist_sina()可以获得一年内所有的交易日信息,但这还不是近N日交易日历,我们还需要进行一些处理即可完成。

工具:akshare

代码


import akshare as ak
import datetime 
from datetime import date
import pandas as pd
import time
# 获得start_date 和 end_date
def get_trade_date(N = 80):
    today = date.today()
    trade_date_df = ak.tool_trade_date_hist_sina()
    trade_date_list = trade_date_df["trade_date"].astype(str).tolist()
    while str(today) not in trade_date_list:  # 如果当前日期不在交易日期列表内,则当前日期天数减一
        today = today - datetime.timedelta(days=1)

    end_date = str(today)[:4]+str(today)[5:7] + str(today)[8:10]

    start_date_index = trade_date_list.index(str(today))- N
    start_date = trade_date_list[start_date_index][:4] + trade_date_list[start_date_index][5:7] + trade_date_list[start_date_index][8:10]
    print("结束时间",start_date)
    print("开始时间",end_date)
    return trade_date_list[start_date_index:start_date_index+N+1]

结果展示:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值