博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stocker模块量化交易分析
阅读量:3976 次
发布时间:2019-05-24

本文共 1345 字,大约阅读时间需要 4 分钟。

金融市场量化交易的好处就像制造业中机器人替代手工操作,但在进行量化交易前需要做好量化分析。

下面将利用github上面的一个stocker模块进行基本的股票价格量化分析,本文只涉及到股票价格的预测分析介绍,没有交易策略和成型的模型。

本文要点:

I 介绍stocker模块运行环境的配置; II 调用模块中的方法来分析和预测股票价格

配置stocker模块运行环境

我是在pycharm+anaconda 平台上运行代码, 另外 由于stocker 模块中部分库需要手动安装,如quandl, pytrends, pystan, fbprophet这些库,因而在调用stocker模块前需要自己安装这些模块, 具体安装过程请参考我的另一篇博文:

安装好这些库后,新建一个项目文件,最好是在jupter notebook中运行代码, 咱为了方便查询,将所有的代码放在一个quantitative_analysis.py文件中,另外建议将stocker.py 和新建的项目文件放在同一目录下,这样方便直接导入。

调用模块进行量化分析

导入模块   from stocker import Stocker 

获取高盛公司历史股价(1999-05-04至今),并画图

goldman= Stocker("GS")

goldman.plot_stock()

最近一年股价和预测值对比 ,结果是预测值明显偏离实际值。

goldman.evaluate_prediction()

为了搜寻最佳预测模型,通过调整变点先验(Changepoint Prior)尺度参数对模型进行分析和评估,以便寻找最佳优化参数模型

goldman.changepoint_prior_analysis(changepoint_priors=[0.001,0.05,0.1,0.2])

goldman.changepoint_prior_validation(start_date="2016-01-04",end_date="2017-01-03",changepoint_priors=0.001,0.05,0.1,0.2])

根据上面两图的分析评估结果,发现取0.1为最佳参数,赋值给模型,

changepoint_prior_scale=0.1

接下来将利用最佳参数模型做简单的交易策略,策略要求如下:

1. 当模型预测股价会上涨的那一天,我们开始买入,并在一天结束时卖出;当模型预测股价下跌时,我们就不买入任何股票;

2. 如果我们买入的股票的价格在当天上涨,那么我们就把股票上涨的幅度乘以我们购买的股票数量;

3. 如果我们买入的股票价格下跌,我们就把下跌的幅度乘以股票的数量,计作我们的损失。

该策略买入1000股的效果如下:

goldman.evaluate_prediction(nshares=1000)

未来10天或3个月(66天)股价预测

goldman.predict_future(days=10)

goldman.predict_future(days=66)

全部合并代码文件可以, 此处采用最佳参数优化模型在最近一年内量化交易的效果居然略好于持股策略,估计有巧合的成分。

本文借鉴公众号文章,原文:

你可能感兴趣的文章
在Linux是使用libxml2---从安装到使用
查看>>
使用libxml2实现简单合并两个不同的xml文件
查看>>
在xml里增加节点时添加回车(libxml2)
查看>>
xml文件解析--libxml2库函数解释
查看>>
30本关于asp.net相关的经典书籍推荐
查看>>
Windows下解决TerminateThread终止线程导致死锁问题
查看>>
linux下线程编程的注意到和推荐做法
查看>>
几个图论和复杂网络的程序库 —— BGL,QuickGraph,igraph和NetworkX
查看>>
odoo8 or openerp 通过xml id获取数据库id
查看>>
判断字符串是否是正确的IP格式的C语言函数
查看>>
C++学习顺序指导
查看>>
linux下擦除、写入flash的简单编程参考
查看>>
js在前端判断上传文件的大小
查看>>
C++学习书籍和顺序推荐
查看>>
C++学习书籍顺序推荐(二)----如何学好C++
查看>>
VC++多线程编程详解
查看>>
图结构入门
查看>>
创建图结构
查看>>
MFC实现类似qq的在屏幕右下角动画显示消息窗口
查看>>
MFC非模态对话框使用详解
查看>>