现在我们接着对数据进行分析,主要参考《Python金融实战》一书第8章及后面的章节。
首先是进行时间序列分析,主要涉及pandas和statsmodels两个库,用pydroid3都能装的。
在本地新建一个名为finance的git分支,新建finance.py文件,先读入数据到DataFrame中。
1 | import pandas as pd |
用scipy里的统计函数,检验收益率是否为0。
1 | from scipy import stats |
可以看到p极小,排除原假设,总收益率不为0。
比较一下我定投的两个指数etf的走势是否有联系?用barlett。
1 | import scipy as sp |
以5%的显著性,认为二者相关性很低。
书中还提到了很多策略:如52周策略:价格低于年线即买入,价格高于年线即卖出。后面再模拟下。先看看蒙特卡洛模拟一章。
用scipy生成正态分布。
1 | #正态分布 |
生成随机数
1 | #生成随机数 |
我用的跟书上一模一样的随机数种子,得到的随机数也跟书上一模一样。因此,计算机产生的随机数是伪随机数,最好用时间做随机数种子。
1 | #画出正态分布图 |
再画一个对数正态分布的图
1 | #对数正态分布 |
接下来产生平均分布
1 | #平均分布 |
用蒙特卡洛算法算圆周率
1 | #用蒙特卡洛算法求圆周率 |
接下来,打算用自己的数据实操一下蒙特卡洛算法。下次吧。
我发文章的三个地方,欢迎大家在朋友圈等地方分享,欢迎点“在看”。
我的个人博客地址:https://zwdnet.github.io
我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
我的微信个人订阅号:赵瑜敏的口腔医学学习园地