提高Strategyquant创建期货交易策略的可靠性


对于程序化交易,我们经常会听到质疑的声音,这需要客观对待。很多事物都有他的优势与劣势,程序化交易也不例外。我们这里说的程序化交易是指,将交易逻辑写成策略信号,在某个交易软件上进行自动买卖的交易方式。我之所以选择程序化交易,是基于以几点考虑:

  • 模型经过一定的历史数据检验,所以决策比靠主观感觉稍“科学”一点
  • 可以监测多品种、多周期上的交易机会,24小时交易,不担心错过行情
  • 人生苦短!将自己从市场行情中解放出来,做一些更有意义的事或享受生活

但程序化交易也有一些弱点,我们必须要承认:

  • 过去不代表未来。
  • 回测绩效受到数据精度等因素影响,未必完全符合实际情况。

评估策略质量最重要的方面是看其健壮性如何。我们不仅要让策略与历史数据中的交易机会拟合,更重要的是在价格数据,指标参数发生一些变化,或者错过一些交易时,策略仍然具有盈利能力。StrategyQuant 中采用了许多工具,如多样化的样本外设置、蒙特卡罗测试等来检验策略的健壮性。

本文所讨论内容假设的背景是,你正使用Tradestation或Multihcarts来进行程序化交易。

如何确保策略在TS/MC与在SQ中的表现一致

1,导入最新的自定义指标

SQ为了保证在对应的交易软件中指标计算结果一致,使用了大量的自定义指标。在将策略复制到MC/TS中测试之前,我们需要首先导入自定义指标。自定义指标位于SQ解压安装目录的\custom_indicators\Tradestation\下。我们以MC为例,在MC中,打开公式编辑器,然后文件,导入,找到SQ_MC.pla文件,然后打开确认导入。

2,确保SQ中测试的价格历史数据与TS/MC中的数据一致

有两种办法可以解决这个问题,

  • 从MC/TS导出要生成策略的K线周期数据,直接给SQ测试使用。这样两个软件中测试的数据完全一致。
  • 从MC/TS中导出1分钟数据,并根据MC/TS中品种的交易时段设置在SQ中正确设置session,SQ根据session来转换不同的大周期数据来使用。这样处理后,大部分的分钟周期数据会正确转换。但由于国内期货一些品种有夜盘连续交易,实际结算跨自然日,对于某些大周期的数据,譬如4小时,或者日线的合成转数据可能不准确。

3,创建品种时,数据类型(K线时间为K线收盘时间)选择要准确。

4,确保选择对应的回测引擎

5,trading options注意事项
如果在交易选项里使用了 Exit At End Of Day 当天收盘平仓 或Exit On Friday 周五收盘平仓,建议将其平仓时间设置为00:00,这样SQ会在当天或周五的最后一个交易小节结束时平仓。如果你要指定具体的平仓时间,确保设定的时间在当天收盘前之前

6, 尝试删除SQ缓存文件
如果SQ中策略表现与在MC/TS中表现不一致,在确认以上设置无问题后,有可能是SQ使用的缓存数据较旧有关系。可以尝试,先关闭SQ软件,删除 /internal/testfiles文件夹,然后再重新打开SQ。

7,其他须知

  • 多品种或多周期(如MC中Subcharts调用其他品种或其他周期)还不支持MC/TS
  • 测试精度目前只能使用当前周期Selected Timeframe
  • 某些指标可能导致回测结算不一致,如Pivots,Fibo

参考资料:https://strategyquant.com/doc/reliable-backtesting-in-tradestation-multicharts/


文章作者: QuantWin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 QuantWin !
 上一篇
如何分析策略未来表现 如何分析策略未来表现
在使用程序化交易时,我们肯定会遇到这样的困惑: 这个策略通过了历史回测,可是它在未来的市场行情变动中,表现是否会很好? 某个策略运行一段时间后,产生一些交易,其中有盈有亏,这个策略是否还要继续运行下去? 我们这次先主要讨论第一个
2020-02-05
下一篇 
StrategyQuant导入测试数据 StrategyQuant导入测试数据
StrategyQuant创建交易策略的大体流程分为: 导入历史价格数据,新交易品种需要先设定品种属性 设置Builde有关选项,运行开始生成策略 对策略进行健壮测试 将策略复制到相应程序化交易平台测试运行 本篇文章将介绍
2020-01-23
  目录