python tus股票数据分析_用TuShare验证股市中的“春节效应”
在中国股民的印象中,农历年后股市一般上涨的概率较大,所以很多投资者会在农历年前买入股票,以待年后股市上涨收取红包,这叫做股市中的“春节效应”。那么实际上存不存在这种“春节效应”呢?我们用数据说话!我用Python语言,结合自己比较喜欢用的Tushare财经金融库,编写了一个小程序,验证了春节行情的存在。程序实现结果如下:大家可以复制代码,任意修改数据,比如查看:“2010-2020”年,春节后“3
在中国股民的印象中,农历年后股市一般上涨的概率较大,所以很多投资者会在农历年前买入股票,以待年后股市上涨收取红包,这叫做股市中的“春节效应”。那么实际上存不存在这种“春节效应”呢?我们用数据说话!
我用Python语言,结合自己比较喜欢用的Tushare财经金融库,编写了一个小程序,验证了春节行情的存在。程序实现结果如下:
大家可以复制代码,任意修改数据,比如查看:“2010-2020”年,春节后“30天”、“90天”的指数表现情况
import tushare as ts #导入tushare金融财经库
from datetime import timedelta,datetime
pro = ts.pro_api('*****自己的TOKEN接口代码*****') #自己TOKEN代码获取方式如下:
"""
此程序,用的Tushare的Pro数据,需要填写自己的TOKEN接口代码,获取方式如下(注册、获取 TOKEN码都是免费的,2分钟时间即可完成下述步骤。):
3.把你的TOKEN代码,替换到下面代码中。
"""
pro = ts.pro_api()
yearlist=range(2000,2021) #定义要验证行情的起始年份
#此函数求某日期前后n天的日期
def get_date(date, time_interval):
start_date = datetime.strptime(date, '%Y%m%d')
now_date = timedelta (days=time_interval)
a = start_date + now_date
return a.strftime('%Y%m%d')
#此函数返回股市某年农历年的第一个交易日
def dygjyr(year):
df = pro.trade_cal(exchange='', start_date=str(year)+'0101', end_date=str(year)+'0331')
js=0
lb=[]
for i in df.values:
if i[1][4:6] in ["01","02","03"] and i[2]==0:
js += 1
lb.append(i[1])
else:
if i[2]==1 and len(lb)>3:
return i[1]
lb=[]
js=0
qsrlb=[dygjyr(i) for i in yearlist]
zzrlb=[get_date(i, 60) for i in qsrlb] #这里是看农历年后60日的行情表现,也可根据自己所需把60改为其它数据。
zhlb=list(zip(qsrlb,zzrlb))
sh,sz,cyb=[],[],[]
for i in zhlb:
df1 = pro.index_daily(ts_code='000001.sh - ', start_date=i[0], end_date=i[1]) #获取上证指数春节后涨跌幅
df1zf=round((df1.close.values[0]/df1.close.values[-1]-1)*100,2)
sh.append(df1zf)
df2 = pro.index_daily(ts_code='399001.SZ', start_date=i[0], end_date=i[1]) ##获取深证成指春节后涨跌幅
df2zf=round((df2.close.values[0]/df2.close.values[-1]-1)*100,2)
sz.append(df2zf)
#此函数统计涨跌年份数量
def zdtj(lb):
xds= len([i for i in lb if i<0])
szs= len([i for i in lb if i>0])
return szs,xds
print("------------股市春节效应-2000-2020年春节后两个月涨幅------------")
print("上证指数春节后表现:\n","上涨年数:",zdtj(sh)[0]," 下跌年数:",zdtj(sh)[1]," 平均涨幅%:",round(sum(sh)/len(sh),2),"上涨概率%:",round(zdtj(sh)[0]*100/len(sh),2))
print("深证指数春节后表现:\n","上涨年数:",zdtj(sz)[0]," 下跌年数:",zdtj(sz)[1]," 平均涨幅%:",round(sum(sz)/len(sz),2),"上涨概率%:",round(zdtj(sz)[0]*100/len(sz),2))

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)