StrategyQuant导入测试数据


StrategyQuant创建交易策略的大体流程分为:

  • 导入历史价格数据,新交易品种需要先设定品种属性
  • 设置Builde有关选项,运行开始生成策略
  • 对策略进行健壮测试
  • 将策略复制到相应程序化交易平台测试运行

本篇文章将介绍如果在Strategyquant里创建品种,设定品种有属性,并导入从Multicharts中导出的历史数据。

设置品种

首先切换到Data Manager 数据管理功能,按照上图所示,左键单击File import,然后选择Add sysmbol

上半部分是设定品种名称以及K线的时间是K线开始时间还是结束时间,MultiCharts里导出的数据的是K线结束的时间。下半部分是指定具体的品种属性,如果Instrument下拉选择框没有这个品种属性,需要Add new instruement来添加品种属性。一个品种属性,可以对应多个品种(名称),譬如我可以添加黄金主连合约价格、黄金指数合约价格、黄金主连价差调整连续合约或者黄金30分钟K线数据,都是对应黄金这个品种属性。

  • Instrument 品种属性名称,名称随便起,不过建议用有意义、易区分的名称
  • Description 品种描述,可以忽略不填
  • Data type 数据类型,主要是区分是外汇,还是期货或股票等
  • Point value 点价值,即一标准手的合约价值。以期货为例,与交易单位和报价单位相关。黄金期货交易单位是1000克/手,报价单位是元/克,所以point value 是 1000;鸡蛋交易单位是5吨/手,而报价单位是元/0.5吨,所以point value是10;股指期货IF的合约乘数为每点300元,即point value为300。
  • pip/tick size 用于结算的最小一跳,对期货而言即最小一跳,如黄金期货为0.02元/克。外汇是小数点4位那个时代的报价精度。
  • pip/tick step 报价的最小一跳,对期货而言与pip/tick size是一样的。外汇已经普遍是5位小数报价了。
  • Default spread 价差成本,主要针对外汇而言,是交易成本。期货品种忽略此项。

手续费设置,是双边合计计算的。国内期货的征收方式主要是合约价值百分比和每手固定金额两种方式。

  • No 不设置手续费
  • per Trade 每笔交易固定金额
  • Percentage based 合约价值百分比
  • Size based 每手固定金额

设置完毕后,点击Save保存,返回到Edit symbol品种设置界面,点击Save保存。

导入数据

如果我想导入黄金主连合约数据和黄金指数合约数据,只有增添加两个品种然后都指定是黄金期货属性,因为这两个价格序列是完全不同的价格序列。而如果我想用到30分钟K线的黄金主连数据,也可能会用到60分钟K线黄金主连数据,就有两种方式。

  • 新建两个品种,如AU_30MIn,AU_60min
  • 或导入1分钟数据,然后让SQ合成30分钟和60分钟数据

第一种方式的好处是与原平台数据完全一致,弊端是可能需要一个品种做多次导入;第二种方式好处一次导入可以供不同周期调用,包括非常见的分钟周期,如20分钟,45分钟,2小时之类 ;另外可以使用1分钟精细数据回测,绩效评价更准确(目前只支持MT4,MT5)。但要求必须设置好交易小节Sessions,否则会导致大周期数据合成错误,另外目前国内期货夜盘品种,用1分钟周期数据合成日线数据都不准确。因为老外根本不能想象国内市场的这种结算日的划分方式。

个人建议:

  • 分钟级别策略,如30分钟,60分钟,建议使用1分钟数据
  • 日线级别策略,直接使用日线数据

从Multicharts导出历史数据

在Multihcarts里新建一个图表窗口,添加黄金期货,


待历史数据全部载入完成,导入该数据,注意,不要选择同步导出指标数据

StrategyQuant导入历史数据

在SQ中,接上一步,在Data品种列表里找到刚才添加的品种SHFE_AU并选中,然后点击上方的File import - Import file

然后弹出数据导入窗口,

首先需要设置文件格式,对于MC导出的历史数据文件,首先要跳过第一行的名称,选择逗号分割,设定日期格式,并为数据每列指定是什么栏目,最后可以点击中间的Save来保存成预设的数据格式,方便以后数据格式的识别与导入。设置完成后Start Import开始导入,当下方品种列表靠右侧列显示Completed即表示导入完成。

设置Sessions 交易小节

Sessions设置主要作用是标识交易时段的开始与结束,以及当天交易最后结束结算的时间。如果你在SQ中使用1分钟数据来合成大周期级别的数据,这个交易小节设置非常重要。

首先,在Multicharts中打开报报价管理器,找到相应的期货市场与品种,然后在品种合约(该品种任意合约)双击,最后切换到交易时段标签页,看到MC中的Sessions设置。根据这里的设置,在SQ中增加Sessions设置。

在SQ中,依次找到Data managerSessionAdd session,找开添加小节设置模板Add session templateSession name随便写,只要合成数据或者策略生成回测中的Trading options正确指定品种对应的小节设置即可。我们这里取名为AU_AG,因为黄金、白银具有完全相同的交易时间,这个Sessions设置可以供这两个品种使用。
目前SQ这里的设置并不是很友好,或许开发者并不了解国内市场设置的繁琐程度。我们需要对每一天的每个时段单独ADD添加。注意这里的小节划分或许与交易所实际的规定并不完全一致,因为这里的原则,是将SQ中的设置与你所运行策略的交易平台,如Multicharts中设置的小节划分保持一致。

注意每天的13:00-15:00时间段,最每个交易日结算前的最后一个交易时段,所以SEOC设置为YES

最后,我们可以使用Data manager中的Export导出功能,导出某个大周期,譬如30分钟周期数据,然后与MC中导出的30分钟周期数据进行对比。


文章作者: QuantWin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 QuantWin !
 上一篇
提高Strategyquant创建期货交易策略的可靠性 提高Strategyquant创建期货交易策略的可靠性
对于程序化交易,我们经常会听到质疑的声音,这需要客观对待。很多事物都有他的优势与劣势,程序化交易也不例外。我们这里说的程序化交易是指,将交易逻辑写成策略信号,在某个交易软件上进行自动买卖的交易方式。我之所以选择程序化交易,是基于以几点考虑:
下一篇 
StrategyQuant界面菜单介绍3 StrategyQuant界面菜单介绍3
在遗传编程选项中的进化控制中,我们会根据种群策略在历史数据的样本内数据(验证部分)的表现来决定进化过程是否继续还是重新生成初始种群开始。这里可以用到不同的数据集,样本内(全部),样本内(训练部分),样本外(验证部分)。 数据分段设置,是
2020-01-20
  目录