本节目录
策略回测
本节主要讨论回测相关的内容 , 包括两种不同的回测机制 , 即向量化回测和事件驱动回测;如何灵活使用开源工具来编写自己的回测程序;不同实现方式的优劣对比等 。
在我们研究策略的时候 , 需要知道某个策略的历史表现 , 这种情况就需要编写回测程序来查看了 。编写回测程序有两种模式 , 一种是向量化回测 , 一种是事件驱动回测 。这两种模式都有其对应的优点和缺点 。本部分将对这两种模式进行讨论 , 包括如何自己编写回测程序 , 如何使用开源框架等
回测系统是什么
最基本的回测系统是指 , 当我们有一组交易规则 , 需要根据历史数据来获取这组交易规则的业绩表现时 , 除了给出历史表现之外 , 有时候还需要优化参数 。比如 , 交易规则设定了一些参数 , 我们需要知道哪组参数表现最好 , 这种情况就还需要一个优化系统 。更精细一点的 , 有时候还需要对下单的冲击成本进行模拟 , 这种情况就还需要一个模拟撮合系统 。这些系统都是回测系统的一部分 。可以看到 , 回测系统想要简单时可以非常简单 , 想要复杂时也可以非常复杂 。具体如何选用、开发 , 还是要根据自己的需求来决定 。
各种回测系统简介
策略回测是一个非常广泛的需求 , 市面上有很多商业的或者开源的系统 。各种系统数量之多 , 如何选择也是一个问题 。一般来说 , 开发回测程序有三种方式 , 具体如下 。
口 使用现成的商业软件 , 这种商业软件提供的编程语言大体包含两类 , 一类是比较简单的Easy , 比如、、文华财经等 。另一类是稍微复杂的事件驱动型 , 比如优矿、、 。
口 使用开源的框架进行二次开发 , 比如、等 。
口 使用任何一门编程语言自行开发 , 比较流行的有、Java、C#、、R等 。
(1)商业软件
使用商业软件 , 最大的好处是比较省时省力 , 而且由于有一个专业的公司在维护 , 系统出Bug的概率比较小 。缺陷是缺乏灵活性 , 它们往往只适用于几类策略 。对于更为灵活开放的策略往往是没有办法的 。有时候 , 也会有保密性方面的担忧 。
(2)开源框架二次开发
使用开源框架进行二次开发 , 可以兼顾省时省力和灵活性 。由于已经有了开发好的大量模块 , 所以直接进行二次开发 , 比自己从头开发要容易很多 。不过 , 这只是针对相对复杂的回测系统而言 , 比如 , 要实现tick级别的下单算法模拟 。
(3)自己从头开发
完全自己开发 , 拥有完全的灵活性 。更重要的是 , 很多策略回测往往并不需要复杂的回测系统 , 有时候很简单的脚本就能完成回测 。
以上三种方法各有优劣 , 都有自己适合的场景 。具体使用哪种方法 , 并没有一定之规 。在实际应用中 , 这三种方法很可能是交叉应用的 。即使在同一家公司之内 , 由于同事的工作习惯不同 , 在进行合作研究的时候 , 也不得不来回切换 。
由于本书主要集中于相关的内容 , 所以本章主要介绍如何使用 自主开发 , 以及如何使用开源框架进行二次开发 。
什么是回测
- 关于刘欢五棵松演唱会的介绍 刘欢五棵松演唱会
- 五月桃什么时候种?
- 莫春者春服既成冠者五六人童子六七人
- 人机对抗代码 五子棋的简单算法——评分法
- 第五版 1 《数学模型》学习笔记 第1章 建立数学模型 第2章 初等模型
- 五 ESP8266-NodeMCU项目:集成空调控制器于洞洞板上并打造电源方案
- 五、使用unittest生成HTML报告和xml文件
- 华夏五千年,法律有多少年
- 五 网络编程懒人入门:快速理解为什么说UDP有时比TCP更有优势
- 五弊三缺什么意思 五弊三缺是指什么