如何获取每月第一个/最后一个交易日

思路是,获取指数的行情信息,然后利用如下代码进行判断:

data['first'] = data['trade_date'].where(data['month'] != data.shift(1)['month'], np.nan)
data['last'] = data['trade_date'].where(data['month'] != data.shift(-1)['month'], np.nan)

 完整代码如下:

数据源我用的是wind,大家可以用tushare来替代,获取更简单一些。

w.start()
w.isconnected()

first = list()
last = list()

for y in range(2009, 2022):
    data = createcleandata_fortimeseries(w.wses("a001010200000000", "sec_close_avg", f"{str(y)}-01-01", f"{str(y+1)}-01-01", ""))
    data = data.Data
    data.index = pd.to_datetime(data.index)
    data['trade_date'] = data.index
    data['month'] = data.index.month
    data['first'] = data['trade_date'].where(data['month'] != data.shift(1)['month'], np.nan)
    data['last'] = data['trade_date'].where(data['month'] != data.shift(-1)['month'], np.nan)
    first += list(data['first'].dropna())
    last += list(data['last'].dropna())

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值