指数和个股的对数收益率正态性检验
导入工具:
import pandas as pd
import time
import scipy.stats as scs
import numpy as np
%matplotlib inplace
数据来源tushare
import tushare as ts
ts.pro_bar获取上证综指、上证50、浦发银行、中国建筑的从2010年至今的日线数据:
api=ts.pro_api()
df_SH01=ts.pro_bar(pro_api=api,ts_code='000001.SH',start_date='20100101',end_date=time.strftime('%Y%m%d',time.localtime()),asset='I',freq='D')
df_SH50=ts.pro_bar(pro_api=api,ts_code='000016.SH',start_date='20100101',end_date=time.strftime('%Y%m%d',time.localtime()),asset='I',freq='D')
df_SPDB=ts.pro_bar(pro_api=api,ts_code='600000.SH',start_date='20100101',end_date=time.strftime('%Y%m%d',time.localtime()),asset='E',freq='D')
df_CSCEC=ts.pro_bar(pro_api=api,ts_code='601668',start_date='20100101',end_date=time.strftime('%Y%m%d',time.localtime()),asset='E',freq='D')
看一下获取数据的格式:
df_SH01.head()
我们取其中交易日和收盘价数据:
data1=df_SH01[['trade_date','close']]
data2=df_SH50[['trade_date','close']]
data3=df_SPDB[['trade_date','close']]
data4=df_CSCEC[['trade_date','close']]
以交易日为键值合并DataFrame,重命名列名:
df_gen=data1.merge(data2,on='trade_date',how='outer').merge(data3,on='trade_date',how='outer').merge(data4,on='trade_date',how='outer')
df_gen.columns=['trade_date','SH_01','SH50','SPDB','CSCEC']
把交易日设置为索引值并重新排序:
pd.to_datetime(df_gen['trade_date'],format='%Y%m%d')
df_gen.set_index('trade_date',inplace=True)
df_gen.sort_index(ascending=True,inplace=True)
把2010年第一个交易日设置为基准值100,至今的走势:
(df_gen/df_gen.iloc[0]*100).plot(figsize=(16,6)) #pandas.plot
计算对数收益率并绘制柱状图:
log_returns=np.log(df_gen/df_gen.shift(1))
log_returns.hist(bins=50,figsize=(9,6))
用scipy对指数和个股的对数收益率进行正态性检验:
stopool=['SH_01','SH50','SPDB','CSCEC']
for sto in stopool:print('\nResult for %s'%sto)print(30*'-')print('size %.4f'%(scs.describe(log_returns[sto].dropna())[0]))print('skew %.4f'%(scs.skew(log_returns[sto].dropna())))print('skew p %.4f'%(scs.skewtest(log_returns[sto].dropna())[1]))print('kurt %.4f'%(scs.kurtosis(log_returns[sto].dropna())))print('kurt p %.4f'%(scs.kurtosistest(log_returns[sto].dropna())[1]))print('norm p %.4f'%(scs.normaltest(log_returns[sto].dropna())[1]))
可见,现实数据中指数和个股对数收益率并不符合正态分布。
指数和个股的对数收益率正态性检验相关推荐
- R语言上证指数及上市个股的对数收益率分布特征
R软件版本:[32-bit] E:\R-3.5.1 ## 1) 读取Excel数据 library(RODBC) SSEC_Data <- odbcConnectExcel('stock ind ...
- python 对数收益率_用python进行风险调整后的收益
python 对数收益率 (Real-world Analysis of US Equity data between 1926 to 2018) (1926年至2018年间美国股票数据的真实世界分析 ...
- 年龄和收入对数的线性回归_金融计算收益率的时候为什么大部分用对数收益率 (Log Return) 而不是用算数收益率?...
下面回答的都挺好,核心就是对于单一投资品的收益率,对数收益率时序可加:对于不同投资品的截面收益率,应该用百分比收益率,因为它在截面上有可加性:另外对数收益率对建模有帮助. 如果我们考察单一投资品在总共 ...
- 百分比收益率和对数收益率
股市中常用的收益率是百分比收益率,而对数收益率在金融理论中用的较多. 百分比收益率定义:Rb=(s2−s1)/s1=s2/s1−1R_b=(s_2-s_1)/s_1=s_2/s_1-1Rb=(s2 ...
- 如何计算对数收益率和净值化转换
请直接参照函数: def valuetounitcumulatedvalue(data):class result(object):def __init__(self):passresult.logr ...
- python金融分析-计算对数收益率及其波动率并画图
计算对数收益率及其波动率并画图 # -*- coding: utf-8 -*- """ Created on Wed Aug 03 10:32:08 2016@autho ...
- 【量化金融】收益率、对数收益率、年华收益、波动率、夏普比率、索提诺比率、阿尔法和贝塔、最大回撤
[量化金融]收益率.对数收益率.年华收益.波动率.夏普比率.索提诺比率.阿尔法和贝塔.最大回撤 1 收益率 在学术界,建模一般不直接使用资产价格,而是使用资产收益率(Returns).因为收益率比价格 ...
- R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析
最近我们被客户要求撰写关于股票市场指数的研究报告,包括一些图形和统计输出. 相关视频:时间序列分析:ARIMA GARCH模型分析股票价格数据 时间序列分析模型 ARIMA-ARCH GARCH模型 ...
- python计算对数收益率_为VNPY的K线序列管理工具ArrayManager增加对数收益率队列
在做策略建模的时候,经常需要把K线转换为可以正态分布数据,这样可以使用那些很牛吼吼的数学模型进行挖掘. 实现很简单 c = ln(t1/t0) 如果我们考察单一投资品在总共 T 期内的表现,那应该用对 ...
最新文章
- python入门(12)dict
- 文本向量表示及TFIDF词汇权值
- Linux Qt使用POSIX多线程条件变量、互斥锁(量)
- 通过扫码自定义链接安装iOS app,版本更新总结。
- 哈希存储 java_Java容器系列之HashMap的存储
- 嫌学校 App 太“烂”,极客父母做了开源版本,却遭官方报警?
- hadoop安装小记
- ueditor编辑器图片自定义存放目录及路径修改
- Asp.net MVC - 使用PRG模式(附源码)
- c4d导出html,C4D动力学如何导出fbx或者其他格式?
- 无心剑中译约翰·拉伯克《书海乐无穷》
- NAT下网络流量监控解决方案
- pyqt5,波形进度条
- 8051单片机(STC89C52)定时器实现10ms精准定时
- python 廖雪峰_实战 - 廖雪峰的官方网站
- MP3格式转WAV格式
- nginx启动成功,但是访问不了页面解决办法
- branch and bound(分支定界)算法求解TSP旅行商问题
- java中定义类的关键字是_java中定义类的关键字是什么?
- 1.2 反函数的图形