CloseKLine问题 (文华财经)

投资者咨询:CloseKLine问题 (文华财经)
来源:文华财经  日期:2020-12-30 21:23

 升级后只能支持1-9秒,这个限制太大了。

强烈建议恢复到之前多老版本,N可以设置为120,比如。

 

如果为了支持tick级回测,建议增加一个选项,选项为1时,支持tick级回测,这是N的取值可以小一点。 选项为0时,还是按原来的老版本执行,回测时采用收盘价即可,本来使用这个函数,很大部分人都是收盘价模型。

 

 

技术人员回复
日期:2020-12-30 21:25
 回测问题进入这个链接了解:


另外,参数最大可以设置9,请您适应下。

想要更复杂的提前走完思路,可以使用CHECKSIG/CHECKSIG_MIN这样的指令价函数来实现。
投资者咨询:CloseKLine问题 (文华财经)
来源:文华财经  日期:2020-12-30 21:23
以下是引用桃矢在2020/12/30 21:25:00的发言:
 回测问题进入这个链接了解:


另外,参数最大可以设置9,请您适应下。

想要更复杂的提前走完思路,可以使用CHECKSIG/CHECKSIG_MIN这样的指令价函数来实现。

 收盘价执行多模型,可以使用CHECKSIG吗? 

 现在模型加载不了了,要改参数到1-9,我之前是60秒,用了几年了,哎。

 

 问题是,9秒啊,太短了,有的品种流动性差点的,收盘前9秒成交不了,有可能。

技术人员回复
日期:2020-12-30 21:34
 您使用CHECKSIG/CHECKSIG_MIN这样的指令价函数,就支持设置提前更久时间走完。

具体可以双击函数右键-》查找函数说明了解下用法。
投资者咨询:CloseKLine问题 (文华财经)
来源:文华财经  日期:2020-12-30 21:23
以下是引用桃矢在2020/12/30 21:34:00的发言:
 您使用CHECKSIG/CHECKSIG_MIN这样的指令价函数,就支持设置提前更久时间走完。

具体可以双击函数右键-》查找函数说明了解下用法。

 

遗憾的是,用指令价函数后,模型绩效变化很大,还是希望用收盘价作为回测依据。

主要是9秒时间太短了,哪怕是20秒,都能好很多。我查了下实盘的日志,模型里是之前老版本CloseKLine,参数N为60秒,由于模组数量为41个,实际发单往往是收盘前51秒才开始发。这种情况下,如果N最大只能设置为9秒的话,模组里好多都还没有来得及发出单子,就收盘结束了。这咋办? 

投资者咨询:CloseKLine问题 (文华财经)
来源:文华财经  日期:2020-12-30 21:23
以下是引用桃矢在2020/12/30 21:34:00的发言:
 您使用CHECKSIG/CHECKSIG_MIN这样的指令价函数,就支持设置提前更久时间走完。

具体可以双击函数右键-》查找函数说明了解下用法。

 

考虑到模组数量比如有100个模组的情况下,即使模型里是CloseKLine, N为9秒,但是实际上,文华软件的运行速度,能保证这100个模组,在9秒内都能及时发出单子吗? 从日志来看,做不到啊。

投资者咨询:CloseKLine问题 (文华财经)
来源:文华财经  日期:2020-12-30 21:23
以下是引用桃矢在2020/12/30 21:34:00的发言:
 您使用CHECKSIG/CHECKSIG_MIN这样的指令价函数,就支持设置提前更久时间走完。

具体可以双击函数右键-》查找函数说明了解下用法。

 

都是文华的收费老用户了,其之所以使用CLOSEKLINE只是想提前几秒下单而已,并不需要tick级别回测精度,能够提前下单即可。

现在升级后,提前下单成问题了。 如果用CHECKSIG,则不能和trade_other搭配使用;如果用CHECKSIG_MIN,似乎可以使用trade_other,但是测试绩效和之前变化太大了。

投资者咨询:CloseKLine问题 (文华财经)
来源:文华财经  日期:2020-12-30 21:23
 我之前的版本:

 CLOSEKLINE(1,9);
 
 SETALLSIGPRICETYPE(TRACING_ORDER);
 SETMOVEOPIPRICE(TRACING_ORDER);
 TRADE_OTHER('AUTO');

 

现在修改后的版本:

CHECKSIG_MIN(BK,'B',1,'D',0);
 CHECKSIG_MIN(SK,'B',1,'D',0);
 CHECKSIG_MIN(BP,'B',1,'D',0);
 CHECKSIG_MIN(SP,'B',1,'D',0);
    CHECKSIG_MIN(BPK,'B',1,'D',0);
 CHECKSIG_MIN(SPK,'B',1,'D',0);
 CHECKSIG_MIN(CLOSEOUT,'B',1,'D',0);

  SETALLSIGPRICETYPE(TRACING_ORDER);
 SETMOVEOPIPRICE(TRACING_ORDER);
 TRADE_OTHER('AUTO');

 

 

都加载比如螺纹指数上,来回测,麻烦大了。  之前版本明显盈利的回测,修改为指令价的版本后,模型测试结果直接是亏损很大,这怎么敢实盘啊。 之前的版本,一直实盘使用,一直赚钱的啊。

 

请文华公司郑重考虑下,是否提供一个兼容之前老版本的CloseKLine的方案,否则,之前一直实盘的模型,只能停止使用,自动量化运行的好好的,只能歇菜了。

 

谢谢了!

 

最核心的问题,N最大为9秒,那么,9秒内,如果有100个模组都有信号,需要在收盘前提前执行,从现实的实际看,9秒这100个模组都发出信号,是几乎做不到的。从我这边的实盘日志看,才41个模组,就已经做不到了。 所以,这个9秒的限制,实际上,导致在模组超过一定数量的情况下,失去实际意义了。 这几年来,我这边实盘使用的参数N至少都是25秒,后来发现个别流动性差的品种,要提前35秒都很困难。 再后来,干脆设置为提前60秒,才完全解决了模组数量多的情况下,都能提前执行成功,而且不影响实盘绩效。

 
投资者咨询:CloseKLine问题 (文华财经)
来源:文华财经  日期:2020-12-30 21:23

 如图,这是老版本CloseKLine,N=60秒的运行情况,14:59开始来运行“提前下单”,实际是59分09秒才下单。

 如果N为9秒的话,14:59:51秒开始来运行“提前下单“,估计是来不及发单和成交了。



图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 文件名:实盘模组运行日志.png
   
投资者咨询:CloseKLine问题 (文华财经)
来源:文华财经  日期:2020-12-30 21:23
 比较晚了,早点休息吧,明天再回复吧。晚安。