python返回上一个交易日

一、周一到周五微交易日,其他不处理

#返回上一个交易日lastworkday,根据周一到周五为工作日(不考虑他,采用下一个方法)
import time,datetime #时间
date=datetime.datetime.today() #今天
#print(date.today())
w=date.weekday()+1
#print(w) #周日到周六对应1-7
if w==1: #如果是周一,则返回上周五
	lastworkday=(date+datetime.timedelta(days=-3)).strftime("%Y-%m-%d")
elif 1<w<7: #如果是周二到周五,则返回昨天
	lastworkday=(date+datetime.timedelta(days=-1)).strftime("%Y-%m-%d")
elif w==7: #如果是周日
	lastworkday=(date+datetime.timedelta(days=-2)).strftime("%Y-%m-%d")
print(f'{date.strftime("%Y-%m-%d")}是周{w},上一个工作日是{lastworkday}')

结果

二、tushare调用trade_cal

优点:

比较准确

缺点:

要求注册登录,并且积分在200分以上。(注册可得100积分,推荐一个人注册可得50积分)

#返回上一个交易日last_day,根据tushare
import tushare as ts #股票交易数据
import datetime #时间和日期
#print(ts.__version__) #ts的版本
token='去网站上自己申请的账号对应的token' #我的token
pd.set_option('display.max_rows', None) 
ts.set_token(token)
pro = ts.pro_api()
data = pro.query('trade_cal', start_date='20200101', end_date='20201231',is_open='1')
# exchange默认为上交所,start_date和end_date不是必填,is_open不填是全部,is_open可以使用0和1,0为不交易的日期,1为交易日
trade_days = data['cal_date'] #上交所2020年的交易日. series对象
 # 参考地址:https://tushare.pro/document/2?doc_id=26
#print(trade_days)
#print(type(trade_days))
#print(trade_days.values)
today = datetime.datetime.today().strftime('%Y%m%d') #今天
print(today)
if today in trade_days.values:
    trade_days_list = trade_days.tolist() #把交易日放到一个列表里
    today_index  = trade_days_list.index(today) #今天的索引
    last_day = trade_days_list[int(today_index)-1] #上一个交易日的索引
print(last_day)

结果

 

全部评论

相关推荐

小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务