hello,我是毛豆。本系列用最精简的代码和案例带你快速入门量化,只讲最干的干货,想要学习量化又不知道该如何上手的小伙伴赶紧看过来!
前期回顾:
本期内容将继续介绍在获取到数据后,我们如何做简单的统计分析。毛豆在每周末都会更新这个系列,建议大家收藏起来方便学习。
一、涨跌天数统计
我们以剑桥科技为例,统计其今年的涨跌天数。
首先导入相关的包,并认证Tushare Pro账号。
import tushare as ts
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
pro = ts.pro_api('your token')
获取剑桥科技今年以来的行情数据,不清楚如何调用数据接口的可以看我前面的帖子。
df = pro.daily(ts_code='603083.SH', start_date='20230101', end_date='20230512')
df.head()
返回如下:
1. 统计该股今年以来的涨跌天数
print('总计天数:{}'.format(len(df)))
print('上涨天数:{}'.format(len(df[df['close']>df['pre_close']])))
print('下跌天数:{}'.format(len(df[df['close']<df['pre_close']])))
打印如下:
2. 统计该股今年以来的阳线/阴线天数
print('总计天数:{}'.format(len(df)))
print('阳线天数:{}'.format(len(df[df['close']>df['open']])))
print('阴线天数:{}'.format(len(df[df['close']<df['open']])))
打印如下:
3. 统计该股今年以来的涨幅>5%的天数与日期
df1=df[((df['close']-df['pre_close'])/df['pre_close'])>=0.05]
print(len(df1))
print(list(df1.trade_date))
打印如下:
二、区间涨幅统计
1.区间累计涨幅
rate1=(df.iloc[0].close-df.iloc[-1].close)/df.iloc[-1].close
print('区间累计涨幅:{}'.format(rate1))
2.区间最大涨幅
#仅用于上涨个股
rate2=(max(df.high)-min(df.low))/min(df.low)
print('区间最大涨幅:{}'.format(rate2))
3.单月累计涨幅
以4月份为例,首先筛选出4月份的数据:
df2=df[df.trade_date.str.contains('202304')]
df2.head()
返回如下:
然后按照上面的方法统计:
rate3=(df2.iloc[0].close-df2.iloc[-1].close)/df2.iloc[-1].close
print('四月累计涨幅:{}'.format(rate3))
4.单月最大涨幅
#仅用于上涨个股
rate4=(max(df2.high)-min(df2.low))/min(df2.low)
print('区间最大涨幅:{}'.format(rate4))
三、上涨概率统计
1.上涨概率
p=len(df[df['change']>0])/len(df)
2.估计接下来5天中有3天上涨的概率
n 个独立重复伯努利试验中,设每次试验中事件A(上涨)发生的概率为p。用X表示n重伯努利试验中事件A发生的次数,则随机变量X的离散分布为二项分布,X~B(n,p)
#scipy.stats包中的binom类对象表示二项分布
prob=stats.binom.pmf(3,5,p)
print(prob)
打印如下:
以上是今天的全部干货内容,毛豆会在每周末更新这个系列,也会在每个交易日继续和大家分享旋风冲锋量化策略的实盘情况,欢迎大家点赞关注。
回测:旋风冲锋策略说明