投资有风险,入市需谨慎
股市中有很多谚语如:基金仓位88魔咒、419魔咒、什么无穷六绝七翻身……,我还就不信,我要亲自验证一下。
今天要验证的是——五穷六绝七翻身,现在是五月份就以五月份为例进行分析。
本文采用python进行全部的分析,只想直接看结论的小伙伴可以直接滑到第三节
环境:
Python3.7、pandas、numpy、tushare
目录:
1、数据获取
2、分析
3、总结
1、数据获取
首先要明确需要哪些数据,既然是验证关于月份的数据,那需要的数据就是当月第一个交易日的开盘价以及最后一个交易日的收盘价。
数据来源于tushare,只要注册了就可以获取数据,链接:
https://tushare.pro/register?reg=409407
1.1 tushare的基础用法
获取日线数据:
import tushare as ts
ts.set_token('你申请的token')
pro = ts.pro_api()
df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180718')
获取月线数据:
import tushare as ts
ts.set_token('你申请的token')
pro = ts.pro_api()
df = pro.monthly(ts_code='000001.SZ', start_date='20180101', end_date='20181101', fields='ts_code,trade_date,open,high,low,close,vol,amount')
具体用法可以参考官方文档:https://waditu.com/document/2
既然可以直接获取月线数据那肯定直接用啦,如果你的权限不足也可以请求日线数据拿到当月所有的价格数据再计算。这里我就以日线数据做分析,因为大家一开始没有获取月线数据的权限。
第一步:判断年份是否为闰年,写两个字典,一个为闰年,一个为平年。
year_list = [2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020]
month_start_end_28 = {'0101': '0131', '0201': '0228', '0301': '0331', '0401': '0430', '0501': '0531', '0601': '0630',
'0701': '0731', '0801': '0831', '0901': '0930', '1001': '1031', '1101': '1130', '1201': '1231'}
month_start_end_29 = {'0101': '0131', '0201': '0229', '0301': '0331', '0401': '0430', '0501': '0531', '0601': '0630',
'0701': '0731', '0801': '0831', '0901': '0930', '1001': '1031', '1101': '1130', '1201': '1231'}
第二步:获取每个月份第一个交易日的开盘价和最后一个交易日的收盘价,计算涨跌幅,最后将数据存入csv文件中。
注意:这里是这选择每个月的第一天,而各种炒股软件上的月K线的是以上一个月的收盘价为起始点。
if (year % 4 == 0 and year % 100 != 1) or year % 400 == 0:
month_dict = month_start_end_29
else:
month_dict = month_start_end_28
for x in month_dict.items():
start_date = str(year) + x[0]
end_date = str(year) + x[1]
print(stock_code, start_date)
# 获取数据
stock_data = pro.index_daily(ts_code=stock_code, start_date=start_date, end_date=end_date)
# 转为json格式
stock_data = json.loads(stock_data.to_json(orient='records'))
# 获取月开盘价及月收盘价,并计算涨跌幅
difference_value = stock_data[0]['close'] - stock_data[-1]['open']
difference_percent = difference_value / stock_data[-1]['open']
print(f'幅度{round(difference_percent, 5)}')
# percent_list.append(difference_value)
percent_list.append([round(difference_percent, 3) * 100])
time.sleep(2.5)
data = {'年份': year, '一月': percent_list[0], '二月': percent_list[1], '三月': percent_list[2],
'四月': percent_list[3], '五月': percent_list[4], '六月': percent_list[5], '七月': percent_list[6],
'八月': percent_list[7], '九月': percent_list[8], '十月': percent_list[9], '十一月': percent_list[10],
'十二月': percent_list[11]}
结果展示(部分):
2、分析
先初步分析一下获取的数据,如下图:
单纯的看涨跌比例仿佛没有传说中的五穷六绝七翻身啊,张跌接近1:1,而创业板综上涨的概率更是达到了60%。
再计算一下累计涨幅看看
这就很奇怪了,5月份也没有怎么跌呀,四个指数只有上证指数的累计涨幅是负的,创业板综的涨幅甚至高达52%。
3、总结
仔细的观察了一下,发现五月份的涨幅在一年内相对处于中偏低的位置,这样可能就会产生5月份不太行的感觉。但是单从指数来看五月份肯定没啥问题。但为什么股民中会一直流传五穷六绝七翻身呢,我咨询了一个大佬,大佬和我说五六月份是业绩空窗期,板块切换快,没有持续性,就很容易导致亏损。
建议:既然从大盘指数来看五月份没啥问题,炒股板块切换快不好掌握容易亏钱,那直接买对应的大盘指数基金好了,又省心又能赚点钱,只要能赚钱管它是股票还是基金呢。