一,准备工具

matlab,windmatlab量化接口,Internet网络连接。

wind量化接口可以从 大奖章网站——>开放接口——>个人版  处下载,根据提示进行操作,十几分钟内就可以安装成功。

二,模型框架

根据自上而下,逐步细化,模块化设计,结构化编码的编程思想,我们把历史回测系统分成四个模块:选股模块,择时模块,资金管理模块和策略分析模块。各个模块相互独立,各自单独完成选股功能,择时功能,资管功能和策略分析功能。因此本模型具有很好的扩展性,可以在此基础上单独对某一模块算法进行修改,其他模块保持不变,模型就能够稳定运行。

四个模块的输入参数,输出参数和主要算法见下面思维导图。

三,策略举例

下面将以一个简单的策略举例,说明如何实现这样一个历史回测系统。我给这个策略命名叫做value-macd。简单地说,通过基本面选股,技术面择时。选股条件是具有较低的市盈率和市净率,例如选出 0<><20 且=""><><>

根据上述策略的选股和交易条件,我们能够对它的表现作出一些猜测。首先在选股上,这是一个价值型策略,所以在熊市时它能够比较好地抗跌。其次在择时上,它是一个趋势跟踪策略,macd能够帮助它抓住上涨趋势,回避下跌趋势。跟所有的趋势跟踪策略一样,它害怕反复震荡的市场走势。但是由于它的选股条件,决定了策略持有的股票股性相对不活跃,所以,大盘的反复震荡对它的影响可能不会太厉害。综合来看,从理论上说,即使不经过回测,我们也能够预计这个策略能够大概率地跑赢大盘。

四,回测源码

下面是策略回测系统的部分源代码,通过看注释内容相信已经可以非常详尽了解策略的主要方面。完整源码可以联系我们向我们免费索取,暂时不支持商业用途。

选股模块:

择时模块:

仓位管理模块:

策略分析模块:

主模块:

五,回测结果

上图是该策略在20120101至20161201之间的回测数据,从策略净值走势图可以看到,它的收益和风险情况和理论预估比较接近。在熊市行情中能够明显规避风险跑赢大盘,在暴涨的牛市行情中收益会低于大盘,在市场反复震荡情况下会发生较大亏损。但综合来看,从alpha系数和sharpe比率来看,该策略明显优于大盘,五年内跨越牛熊市震荡市,年平均收益率在13%左右,具有一定的参考价值。

六,总结

本文通过利用matlab和wind量化接口搭建了一个历史回测模型,利用该回测模型可以容易地对各种常规的股票交易策略进行历史回测研究,评定策略的绩效,发现策略的风险点。本文只是举了一个简单的例子,事实上,我们建立的是一个相对具有一般性的历史回测模型。你完全可以在我们的例子上,进行简单的修改,设定选股条件,择时算法,和仓位管理方案从而对多种股票交易策略进行历史回测。

matlab alpha策略,如何用Matlab建立策略回测系统?相关推荐

  1. 年化17.5%,十年8倍的“双低”转债策略:从零实现量化回测系统之三

    持续行动1期 43/100,"AI技术应用于量化投资研资"之可转债投资. 投资的心法大同小异,都是以合适的价格买入好的东西. 由于所处的周期位置不同,判断的标准产生了差异罢了. 为 ...

  2. 自己做量化交易软件(44)小白量化实战17--利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计

    自己做量化交易软件(44)小白量化实战17–利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计 小白量化平台是由若干小白金融模块构成.其中包含行情接收模块,仿通达信大智慧 ...

  3. 量化选股策略搭建(三)(回测系统)

    前两篇文章讲了数据的下载及更新,今天这篇文章讲回测系统的搭建. 回测系统 首先, 个人理解的回测系统就是输入每日可买入的股票(这些股票是经过模型筛选得到的),然后回测系统根据一些条件买入卖出等操作. ...

  4. matlab 无穷符号,如何用matlab进行级数或数列的符号求和?matlab符号求和指令分享...

    如何进行级数或数列的求和,在高中<数学>课上的数列和大学<高等数学>中的级数都有有遇到过这种问题,这如果用人脑来计算的话非常耗时,难度较大.但是用matlab就可以轻松解决.下 ...

  5. matlab基带信号速率,如何用MATLAB产生25Gbaud的基带QPSK调制信号

    如何用MATLAB产生25Gbaud的基带QPSK调制信号 包括生成随机符号序列,进行QPSK调制,过采样,脉冲成型滤波和降采样.有错误敬请指正. 参数设置:symbol rate=25Gbaud D ...

  6. matlab excel 排序,“如何用matlab处理多个excel表格中的数据“excel怎么排序

    请问如何在matlab gui界面中插入excel表格并可进行编辑 最简单的方法,gui界面上一个table控件,放置两个按钮. 按钮名字分别改为打开和保存,table的属性里,把columnname ...

  7. matlab求和脚本,如何用matlab进行级数或数列的符号求和?matlab符号求和指令分享...

    如何进行级数或数列的求和,在高中<数学>课上的数列和大学<高等数学>中的级数都有有遇到过这种问题,这如果用人脑来计算的话非常耗时,难度较大.但是用matlab就可以轻松解决.下 ...

  8. python搭积木_从零实现”搭积木式实现策略“的回测系统 part VI

    本篇我们将对比经典量化回测框架pyalgotrade与ailabx,二者同时实现均线策略. 先看pyalgotrade的代码实现: from pyalgotrade import strategy f ...

  9. 量化策略——准备3 数据、Backtrader回测框架与quantstats评价指标

    我们一般使用AKShare这个库来获取股票数据或策略中用得到的数据: AKShare github主页:https://github.com/akfamily/akshare 使用Backtrader ...

最新文章

  1. 实现自己的连接池(一)
  2. 我和linux的第四天
  3. 如何使用Spring管理Filter和Servlet
  4. GCC:使用图对比编码的图神经网络预训练模型 KDD2020
  5. 超市收银机属于通用计算机,我是一名刚入超市做收银的,我录入货品后微信收钱之后没有在超市电脑上按确定导入账目导致超市系统上多出来钱这改正过来会很难吗?...
  6. axure购物车加减实现
  7. DB2报错:SQLCODE=-419, SQLSTATE=42911
  8. oracle的游标的属性,Oracle 游标属性
  9. matlab2016a下载包及安装教程
  10. SQL基本使用-查询表中的记录
  11. 【Pix4d精品教程】Pix4d修编正射影像DOM的两种方法案例详解
  12. Maven安装(配置阿里仓库)
  13. Rust中的所有权和借用的关系图
  14. 我的世界服务器无限重启怎么办,iPhoneX无限重启怎么办?iPhoneX无限重启解决一览...
  15. JAVA_SSM装饰装修公司管理系统(含论文)毕业设计【演示视频】
  16. Android集成极光聊天SDK
  17. 报错Field Mapper in xxx.xxxServiceImpl required a bean of type ‘dao.xxxMapper‘ that could not be found
  18. ✿2021NEWCTF6.1萌新赛✿MISC-all-WP
  19. Docusaurus 搭建个人博客(支持离线搜索)
  20. 记一次给博友答疑(shiro相关)

热门文章

  1. 联想笔记本Thinkpad Edge E430c重装Win7系统遇到的问题
  2. JAVA内存分析:使用JDK自带工具进行内存和CPU分析及垃圾回收
  3. 语言理论的概念和误解
  4. 万豪国际集团中国区61家酒店推出户外烧烤活动
  5. 【转】分享天涯潮女最爱的10个女性网站,强烈建议收藏!
  6. 使用工具(Postman)能调通但使用代码调不通的问题分析及解决方法
  7. 重构SeleniumeDownloader底层浏览器驱动
  8. POX控制器的分析(一)
  9. 精心整理的前端开发必备网站推荐
  10. 人工智能,探索围棋的天花板