三分钟入门量化(四):行情数据统计分析

hello,我是毛豆。本系列用最精简的代码和案例带你快速入门量化,只讲最干的干货,想要学习量化又不知道该如何上手的小伙伴赶紧看过来!

前期回顾:

三分钟入门量化(一):行情数据获取&绘制k线图

三分钟入门量化(二):Tushare Pro数据接口介绍

三分钟入门量化(三):计算收益率

本期内容将继续介绍在获取到数据后,我们如何做简单的统计分析。毛豆在每周末都会更新这个系列,建议大家收藏起来方便学习。

一、涨跌天数统计

我们以剑桥科技为例,统计其今年的涨跌天数。

首先导入相关的包,并认证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)

打印如下:​​​​​​​

以上是今天的全部干货内容,毛豆会在每周末更新这个系列,也会在每个交易日继续和大家分享旋风冲锋量化策略的实盘情况,欢迎大家点赞关注。

回测:旋风冲锋策略说明

实盘:四月策略数据公示&常见问题说明

猜你喜欢

转载自blog.csdn.net/weixin_37475278/article/details/130824543