股市真有黑色星期四吗?

您所在的位置:网站首页 黑色星期四的原因 股市真有黑色星期四吗?

股市真有黑色星期四吗?

2023-08-07 11:59| 来源: 网络整理| 查看: 265

一直以来,A股流行黑色星期四的说法,这个说法是否只是大家的感觉还是真有数据支持?带着这个问题,今天就用数据来检验一下

首先需要取到每日数据,幸好现在日收盘价的数据不难获得,tushare还有免费的公开接口,我取从2000年开始到今天的数据,指数收盘价,然后计算一下每日的收益率

import pandas as pd import numpy as np import tushare as ts start_d = '2000' end_d = '2019-5' bk = 'sh' # sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板 shIdx = ts.get_k_data(bk, start=start_d, end=end_d)[['date','close']] shIdx['ret'] = np.log(shIdx.close/shIdx.close.shift(1)) shidx = shIdx.set_index('date')

这里有一个小窍门,收益率要取对数,为什么呢?一般来说如果今天的价格比昨天低,收益就是负的,但是直接用今天的价格除以昨天的价格,得到的只是一个小于1的数,比如0.8之类的,虽然明白小于1就是亏损了,但是如果不统计为负数就比较麻烦,特别是进行收益率累加的时候,明明亏损了,加出来的还是一个正数,还要除以最初的资本才知道亏了,这就不方便,用对数就会将小于1的变为负数,看一下计算的结果就明白了

In [1]: shidx.tail() Out[1]: close ret date 2019-04-22 3215.04 -0.017195 2019-04-23 3198.59 -0.005130 2019-04-24 3201.61 0.000944 2019-04-25 3123.83 -0.024594 2019-04-26 3086.40 -0.012054 In [2]: shidx.tail().ret.sum() Out[2]: -0.0580292401363575

对照股市行情看,25日和26日分别跌了2.4%和1.2%,这一周也跌了5个多点,很好地反应了真实情况。

有了每日收益率,接下来能不能只看星期四的收益情况呢?这个也是可以的,pandas的时间序列支持频率选择,具体细节可以看pandas.date_range的帮助文档,先产生一个固定的周时间序列,可以只有星期一或星期二、星期三、星期四……,例如我只留下周五的序列,可以这样做

In [19]: rng = pd.date_range(start_d, end_d, freq='w-fri') In [20]: rng Out[20]: DatetimeIndex(['2000-01-07', '2000-01-14', '2000-01-21', '2000-01-28', '2000-02-04', '2000-02-11', '2000-02-18', '2000-02-25', '2000-03-03', '2000-03-10', ... '2019-02-22', '2019-03-01', '2019-03-08', '2019-03-15', '2019-03-22', '2019-03-29', '2019-04-05', '2019-04-12', '2019-04-19', '2019-04-26'], dtype='datetime64[ns]', length=1008, freq='W-FRI')

然后从全部数据中用reindex进行选择过滤,留下的就只有星期五的数据了,再剩下的工作就非常简单,统计一下大于0的(上涨)和总体的比率就能算出上涨概览,我这里写出代码供各位看官参考

def up_ratio(freq): # 获得时间序列 rng = pd.date_range(start_d, end_d, freq=freq) d = [str(d)[:10] for d in rng] # 过滤选择 ret_f = shidx.reindex(d).ret ret_f.dropna(inplace=True) # 无效的数据要清除,即使是周一也会有放假 # 返回:总交易天数,上涨的天数,上涨天数/总天数 c = ret_f.count() u = ret_f[ret_f > 0].count() r = u/c return c, u, r # 统计从周一到周五的情况 w = ['w-mon', 'w-tue', 'w-wed', 'w-thu', 'w-fri'] [print(up_ratio(x)) for x in w]

代码写完了,看看结果,先看上证的情况(将bk设置为sh),很明显,周四的上涨天数明显很少,比率只有45.8%

(917, 513, 0.559432933478735) (939, 541, 0.5761448349307774) (947, 503, 0.5311510031678986) (939, 430, 0.4579339723109691) (936, 492, 0.5256410256410257)

再看深证成指的情况(将bk设置为sz),周四仍然是最低的45.7%

(917, 481, 0.52453653217012) (939, 517, 0.5505857294994675) (947, 488, 0.515311510031679) (939, 429, 0.45686900958466453) (936, 490, 0.5235042735042735)

最后再看看创业板的情况(将bk设置为cyb),周四也是最低,是44.6%

(419, 231, 0.5513126491646778) (434, 238, 0.5483870967741935) (439, 228, 0.5193621867881549) (437, 195, 0.4462242562929062) (434, 214, 0.4930875576036866) 结论

看来传说中的黑色星期四并不是空穴来风,这20年左右的数据应该还是很有说服力的,我还发现另外两个亮点:

周二的行情最好,基本上上涨天数占到了55%左右,上证达到了57%,这是不是可以总结出一个红色星期二呢?😄 上证板块明显强于创业板,所以……你懂的

有兴趣的看官还可以自行检测一下沪深300和中小板的数据,情况应该差不多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3