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)

结果

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中,我们可以利用datetime模块来计算下一个月末的交易日。 首先,我们需要确定本月的最后一天和下一个月的第一天。可以通过使用datetime对象和timedelta对象来实现。 首先,我们导入datetime模块并创建一个当前日期对象: ``` import datetime current_date = datetime.date.today() ``` 接下来,我们可以使用current_date对象来获取本月的最后一天和下一个月的第一天。我们可以使用replace()方法来更改日期对象的属性,如年份和月份。 本月的最后一天可以通过将当前日期更改为下一个月的第一天的前一天来获得: ``` next_month_first_day = current_date.replace(day=1, month=current_date.month+1) this_month_last_day = next_month_first_day - datetime.timedelta(days=1) ``` 最后,我们可以使用如下方式找到下一个月末的交易日: ``` def find_next_trading_day(date): # 在这里添加你的代码来确定是否为交易日 # 返回一个交易日的日期对象 # 使用这个函数来找到下一个月末的交易日 next_trading_day = find_next_trading_day(this_month_last_day) ``` 在`find_next_trading_day`函数中,你可以根据你的需求编写代码来判断一个日期是否为交易日。你可以使用市场的交易日历或者其他相关信息来判断日期是否为交易日,并返回一个交易日的日期对象。 通过这样的方式,你可以利用Python来计算下一个月末的交易日。请注意,代码中的日期属性操作可能因日期差异而产生警告或错误,你可以根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值