一、海量数据检测模型

(一)海量数据检测模型

当模型编写好后,需要先对模型进行效果测试,检验模型在历史k线上的运行效果。如果测试的数据不够多,会因为样本数据太少涵盖的行情不全面导致测试结果太片面,这样的测试结果也就失去了参考的价值。因此,历史数据的多少从一定程度上决定了模型的测试深度,也反映出测试平台价值的高低。

赢智WH8提供海量历史数据,能够灵活选择测试起止时间,提供深度的回测分析,让模型效果测试具有真正的实际参考意义。

1、案例:国内合约提供从开市至今的全部历史数据

检验趋势模型的效果,通常需要选择连续且全面的历史数据作为测试样本,如果测试的数据不够多,无法包含市场各个阶段的行情变动,模型效果的真实性就会大打折扣。赢智wh8提供合约从上市以来的所有数据,可以多维度剖析模型。如下图,是以股指主连合约上市至今的全部数据进行的效果测试。

2、申请海量历史数据的操作方法

如下图所示,是如何在主图点击鼠标右键来申请合约数据:

3、品种加权、主力连续回测模型,哪个更接近实战的准确性?

如果你要对模型做长期数据验证,那就需要使用品种加权、品种主连这类数据了。

品种加权、品种主连是不同的数据,具有不同的特点,有的模型适合用品种加权做回测,有的模型适合用品种主连做回测。

(一)、品种加权

品种加权是各个月份合约的加权平均价格,用品种加权趋势来计算信号是没有问题的。但是品种加权本身并不是交易合约,直接用品种加权的价格去计算信号的盈亏,是会有误差的。虽然信号是对的,但是开平仓的价格不是真实合约的价格,总盈亏数据有误差,权益曲线会也失真。甚至,有可能把盈利模型算成亏损,也有可能把亏损的模型算成盈利,模型是正收益还是负收益,定性就错了,那回测报告就没有实际意义了。

所以,需要写入TRADE_OTHER('AUTO')来指定交易主力合约,用主力月份合约的价格去计算信号盈亏,才符合实际交易的情况。这个语句也支持主力合约切换月份时自动移仓。

***指定交易合约后,有的模型需要调用一分钟k线数据做精细计算,计算量增加了,回测的速度会比以前变慢,这是正常的现象,这是回测准确性的必须代价。

注:

1、品种加权上回测没有指定交易合约的模型会弹出提醒;

2、品种加权上回测不支持写入逐笔计算运行优化函数的模型(CHECKSIG/MULTSIG);

另外,品种加权数据适合用来回测长线模型,秒周期模型需要加载到品种主连上,做主连链回测;

(二)、品种主连

品种主连数据,由各个月份合约的数据拼接形成。把每一个月份合约主力期间以前的k线图砍掉,再把主力期间以后的k线数据砍掉,剩下主力期间的部分k线图,然后按照时间顺序拼接在一起,形成品种主连数据

品种主连做模型回测有一定局限性,不是所有的品种都适合的。模型中写入TRADE_OTHER('AUTO')语句,跟着品种主连走势做自动移仓的交易方式,只适合沪铜、沪铝、沪锌、沪铅、沪镍、沪锡这类每一个月份都切换主力合约的有色金属品种,主力月份切换时的行情跳空小,新旧主力合约走势一致,品种主连数据可以做用来模型回测。

其他品种换月时间没有规律,主力月份切换时行情跳空很大,有新旧主力合约的走势有不一致的情况,不适合自动移仓交易方式。需要用主连链回测。

(三)、主连链回测

主连链回测,不再使用品种主连自身的k线数据计算信号,而是采用各个月份合约自挂牌以来的全部k线数据计算信号,规避品种主连k线数据换月跳空对量化计算准确性的影响。

调用方法:模型不要写入TRADE_OTHER('AUTO')语句,把模型直接加载到品种主连上,系统会自动调用主连链回测。

1、收盘价模型

主图显示信号、权益曲线。

右键菜单 -》回测报告-》月份合约线图,可以查看模型在月份合约k线图上的具体表现,原型指标线、变量数值等。

2、模型带有CHECKSIG等运行优化函数

主图上不显示信号和资金曲线。

右键菜单 -》回测报告,进行月份合约回测,可以对主连链包含的各个月份合约分别进行回测,也支持合并回测报告。

相关常见问题解答

1、信号计算起始时间是什么意思?

答:量化交易回测有两个时间,一个是数据起始时间,一个是信号计算起始时间。
以沪铜2201合约为例,该合约的数据起始时间就是合约的挂牌时间是2021年1月18日,在挂牌初期交易不活跃,交易量很少,缺少流动性,你并不会去交易这个合约。随着时间的推移,到2021年11月份以后,距离交割日时间越来越短了,沪铜2101合约交易活跃起来,成交量逐渐增大,2021年11月1日你决定开始交易这个合约,那么信号计算起始时间就应该设置为2021年11月1日。模型自11月1日以后开始计算信号,此后如果满足信号条件,就会发出交易信号。

2、选择什么k线周期交易?

答:量化交易选择哪一个k线周期?这个问题没有标准答案。越小的周期,交易机会越多,但是随之而来的是更多的手续成本和滑点损失;越大的周期,趋势越明显,单笔盈利空间越大,但是相应的需要承担的回撤风险也越大。
一个模型更适合在哪个周期上运行,可以通过历史数据回测来判断,这也是量化交易的魅力所在。实际研究过程中,可以将模型逐一放到不同的k线周期上进行回测,通过对比模型回测报告中的收益、回撤、胜率、盈亏比、滑点损失等数据,最终找到表现最好的周期,这就是这个模型最适合的周期。

3、TRADE_OTHER和逐笔计算的运行优化函数不能一起使用,怎么解决?

答:如果要做自动交易自动换月,可以删除CHECKSIG、MULTSIG语句,或者改为CHECKSIG_MIN、MULTSIG_MIN都可以的;

4、因为网络断线或其他原因,存在错误的数据,如何将错误数据更正?

答:当您发现K线数据存在错误时,可通过k线图右键->补充历史数据,在弹出界面选择清除当前周期数据,这样错误数据就会被删除,然后再重新补充数据。

5、为什么在【补充数据】中找不到想补充的合约周期。

答:加载列表中所列出的合约周期是基础数据;其他周期的数据由这些基础数据合成,因此,在申请数据的时候只对基础数据做申请。
合成原则:
用tick合成的数据:逐笔回测数据、量能周期、秒周期,自定义秒周期。
用1分钟合成的数据:15min以下的周期,以及自定义分钟周期。
用15分钟合成的周期:15min,30min,1h,2h,3h,4h,自定义小时周期。
用日线合成的周期: 日线及以上周期

6、哪些周期需要补充数据?

答:理论上来说,做回测都需要提前补充数据。但考虑到逐笔TICK类数据量大,手动补充时间长,为提高操作效率,模型中用到MULTSIG/CHECKSIG 逐笔TICK函数时,回测的时候软件会在后台自动补充数据,不需要手动补充。除上面2个函数外,其他的模型都需要提前补充好回测需要的基础数据。

7、滑点是什么意思,设置多少合适?

答:滑点是指委托价格与成交价格之间的差值。回测参数中设置滑点,目的是为了让回测效果最大限度拟合实盘的成交情况,具体设置多大的滑点要根据交易的合约和委托方式调整。 比如,以对手价方式发委托,可以设置1-2个滑点,使回测结果尽可能的贴合品种行情特征,更接近实盘效果。

8、品种加权回测模型,写了TRADE_OTHER指定合约,也补充了历史数据,为什么信号计算起始时间无法指定?

答:模型回测,不仅需要品种加权的数据,也需要品种主连的数据的(做信号盈亏计算使用)。
你还需要补充品种主连的k线图数据,才可以指定更早的信号计算起始时间。

9、为什么无法补充全部的数据,在补充数据中只能看到最近几个月?

答:这种情况是因为回测合约选择的是具体月份合约,所以只能补充到自合约上市以来的数据。如果需要使用连续的历史数据进行回测,建议使用加权合约。
如:沪铜1805是2017年5月上市交易,所以只能申请到2017年5月上市以来的数据,而加权合约则支持1996年品种上市以来全部数据。

10.如何查看RB1505等已交割合约的数据?

答:在K线图界面右键->选择历史年度合约,可以查看到历史年度合约的具体行情数据。

11、模型回测为什么不包括最新一天盘中的数据?

答:最新一天盘中的数据是实时变化的,如果回测包含了最新的数据,那么每次回测的结果都是不同的,不利于对回测报告进行对比和研究。
对于量化研究来说,晚一天并不会产生很大影响。每日收盘以后,就可以对当天的数据进行回测了。