python怎么判断日期是星期几_python数据统计告诉你,是不是周四周五会跌的比较多...

昨天在论坛看到有网友的一个提问:

fbf1cf121133085cd9fa94517603d523.png

对于很多投资来说,印象中最近这几年,尤其是前面的2016~2018年,周四跌的概率是比较大的,有时候会被戏谑为“法定砸盘日”。

好奇百度了一下:

7986b28843b190b3b75cfa003583bd02.png

前面几条都是指向了星期四。

实际情况是怎样的呢?笔者也是挺感兴趣的,因为作为一名赌徒,对概率统计这些数据还是挺感兴趣的。那么我们使用python对数据进行回测。 感兴趣的读者也可以跟着我在一些回测平台上练习,代码很少,不超过50行哈。

当然,如果有本地数据的读者,也可以在自己本地电脑上参数。

1.获取数据

start='20100101'end='20201027'df = DataAPI.MktIdxdGet(indexID=u"",ticker=u"000300",tradeDate=u"",beginDate=start,endDate=end,exchangeCD=u"XSHE,XSHG",field=u"",pandas="1")

时间区间使用2010年1月1日到2020年10月27日,跨度为10年,样本足够大了,标的指数为沪深300,平时笔者很少使用上证指数或者上证50作为回测,原因是里面权重中GJD占比过多,有种被操纵的痕迹,当然,读者也可以尝试使用这些指数进行回测统计,只需要把ticker=u"000300" 替换为 "000001" 就可以了。

得到的数据格式是dataframe:

4d647b6f8d3e3da8ae7b39dd27cddc4d.png

解释:上面展示了10条数据,可以看到每天的开盘,收盘,成交量,换手率,涨跌幅很多指标,在这个回测中,我们只需要2个指标就够了,一个是日期,用来判断当天是星期几,一个是涨跌幅,用来统计当天是涨还是跌。

2.  判读某天是星期几

import datetimedef weekday(day_str):    return datetime.datetime.strptime(day_str,'%Y-%m-%d').strftime('%w')

创建上面的weekday函数用于判断某一天是星期几。

我们可以简单测试下,以2020-10-28测试:

713ec1f06d4a51c1e0fd3d2a96cf8865.png

看到返回的是3,说明结果正确,今天就是星期三。

然后我们把这个函数应用到全部的行,通过传入每一行的tradeDate 交易日字段,计算出改行的星期X 中的X。

df['weekday']=df['tradeDate'].map(weekday)

c62f2f0f69c1925ccdda560d5a228dee.png

看到最后红框位置,多了一列,那个就是当他属于星期几。

3. 数据分析统计

接下来就是数据分析了,对日期进行聚合,意思是把星期一的数据合在一起,星期二的数据和一起,然后同理星期三,星期四,星期五,最后会有五堆数据。

df.groupby('weekday')

就使用这一句语句就可以了。

然后分组统计:

for day,df_day in df.groupby('weekday'):    print('星期{}'.format(day))    raise_count= len(df_day[df_day['CHGPct']>0])    drop_count = len(df_day[df_day['CHGPct']<0])    ratio = (raise_count-drop_count)*1.00/(raise_count+drop_count)*100    print('涨的天数: {}'.format(raise_count))    print('跌的天数: {}'.format(drop_count))    print('涨跌比: {:.2f}'.format(ratio))    print('')

上面根据每一组中,涨跌幅的个数统计一个比例ratio,表示在星期X中上涨占比,如果是正的,说明星期X的上涨概率比较大的,反之当天下跌的概率较大。

然后运行一下,很快结果就出来了:

8fb0cc452a55f21d9c6c735abb979279.png

上面结果显示:周四下跌的天数的确要比上涨的天数多了100天!!涨跌比为 -17% , 所有星期四的总天数为219+300 = 519 天

3887daf86616d49b20b1acf4474728b9.png

但是,but,周五上涨的概率是最大的,ratio值为15%, 周五上涨的概率最大!这个数据与平时印象很不一样,一般人都认为周四周五一般跌比较多,所以有时候个人感觉会受很多因素影响的,感觉未必准,所以才有数据量化分析,数据不会说谎。(前提不要拿到被造了假的数据来分析哈)

如下面这张图,在正方形的顶点加了个白色和灰色的加号后,你是否觉得画布被扭曲了呢。所以眼见不一定为实,途听不一定为真。

9f3dd3fa8c0ea04a01f278113b8a79b5.gif

上面的分析只是从统计分析来看待星期一到五哪一天上涨/下的的概率大, 只供参考,并没有实际指导你在哪天买卖意义,意思是亏钱了你别来找我,嘻嘻。

由于微信改版后不再是按时间顺序推送文章,如果后续想持续关注笔者的最新观点,请务必将公众号设为星标,并点击右下角的“赞”和“在看”,不然我又懒得更新了哈,还有更多很好玩的数据等着你哦。

0cabe4a4322483fe9722b808f490c394.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值