程序化测试
一个自动化策略在长期的历史数据中会得到怎样的资金曲线?这就是程序化测试的意图。
DreamTrader的“普通回测”和“套利回测”区,就是用来干这件事的。
这两个区的回测操作是类似的,这里以“普通回测”区为例来说明。更详细的说明在完整版指南中。
1.选择历史数据
在主窗口的“普通回测”区,在下图所示的表中,装载了本机储存的历史K线。
表中显示了合约代码、K线周期、开始日期、结束日期,比如“rb 5分钟 20181101 20190123”,就说明本机有螺纹钢指数2018年11月1日~2019年1月23日5分钟K线。
这里的合约代码,如果像“rb1905”这样以数字结尾,就是真实合约的代码,否则像“rb”这样的,就是指数合约代码。
选了数据之后,下面会显示它的基本信息,你可以修改手续费、手数、滑点、保证金率、测试日期范围等参数。
这里,保持勾选的状态就行。如果不勾选它,就涉及到底层周期这个概念,这是用来测tick数据的,是想知道每根K线内部的tick变化会怎样影响交易,这太复杂,你现在先不要用它,看完完整版指南后再说。
还有一个问题,如果你想补充历史K线怎么办。你可以这样:
(1)从TradeBlazer旗舰版导出历史K线。
(2)在DreamTrader的“工具”区,点击“打开TradeBlazer导出的csv文件”,在弹出窗口中选择你刚才导出的文件打开,再点击“转换为本软件同周期csv”。
2.选择策略
这里有我们预设的几种策略,你选择一种。
下面会显示该策略的参数表。“X 30 ~ 100 步长 10”的意思是:对于“X”这种参数,我们将测它从30到100每隔10的数据(也就是说测30、40、50、60、70、80、90、100),搞过量化的人都知道这叫“参数优化”。
如果你不知道这些参数的意义,可以点“修改策略”,打开如下窗口:
这个窗口本来是用来修改策略的,但在你充分了解策略编程之前,不要轻易修改它,现在只是用它了解各参数的意义。
另外,“下单方式:默认”这个按钮,现在你也不要动它,它可以设置延时下单、连锁挂单,但只能用于tick测试,比较复杂,读完完整版指南后再说。现在用普通的市价下单方式来测试就可以。
3.参数优化
点“改参数”按钮,打开如下窗口。
在这里,你可以改变每个参数的测试范围和步长,软件将测出每一种参数组合的效果。
4.测试
点“测试”按钮即可。
你将看到所有参数组合的资金曲线。
在表中双击任何一行,画板中就显示它的资金曲线。
在
中选择“K线”,画板中就显示K线和信号。
双击画板,可以把画板放大到全屏。
5.组合测试
在表中选择一些测试结果(可以按住Ctrl键复选),点“添加到组合测试表”按钮,你选择的这些结果就进入了右边的表。
再点“创建组合曲线”按钮,你会看到这些结果组合起来的效果。
不仅可以测试同一品种不同参数的组合,也可以跨品种组合,这个组合是任意的。
在组合表中双击任何一行,画板上会显示相应的图形。再点“查看组合曲线”按钮,画板又显示组合的资金曲线。
你随时可以添加其他测试结果到组合表中,也可以把组合表中的某一行删除,再点“创建组合曲线”按钮,重新生成组合曲线。
点“查看详情”按钮,你可以看到此组合的数据:
你也许要问:“画板中为什么有一条黄线,有一条灰线?”黄线是无滑点的资金曲线,灰线是有滑点的资金曲线(也就是实盘中可以做到的资金曲线)。
还有:“测试的策略,在实盘中能达到完全一样的效果吗?”答案是:如果实盘的平均滑点就是测试时设置的滑点,实盘信号都成交了,效果会完全一样。
章节跳转:
>> 编辑账户
>> 检查交易方案
>> 登录
>> 手工交易
>> 程序化交易
程序化测试
>> 套利