龙听期货论坛's Archiver

龙听 发表于 2017-12-28 16:33

[文华赢智函数]checksig()信号复核

[color=#444444][font=Tahoma, Simsun][b]CHECKSIG 设置信号确认与复核的指令价方式(TICK逐笔回测,可设置回测精度)也可以更精确的写为checksig_sec  (用TICK数据) 或checksig_min(用一分钟数据)。[/b][/font][/color]

[font=Tahoma, Simsun][color=#444444][b]CHECKSIG(SIG,MODE1,TIME1,MODE2,TIME2,INTERVAL);[/b][/color][/font]
[font=Tahoma, Simsun][color=#444444]
[/color][/font]
[font=Tahoma, Simsun][color=#444444][b]SIG位置为交易指令[/b],包括BK\SK\BP\SP\BPK\SPK\CLOSEOUT所有指令, 默认就是所有指令。[/color][/font]
[font=Tahoma, Simsun][color=#444444]
[/color][/font]
[font=Tahoma, Simsun][color=#444444][b]MODE1位置为信号确认方式[/b],有A和B两种:

A:MODE1为'A'时

  1)当INTERVAL不为0时,出信号后第TIME1个数据时间间隔确认信号下单
  2)当INTERVAL为0时,出信号TIME1秒后确认信号下单

B:MODE1为'B'时

  1)当INTERVAL不为0时,K线走完前TIME1个时间间隔确认信号下单
  2)当INTERVAL为0时,K线走完前TIME1秒确认信号下单
  3)TIME1=0为K线走完确认信号下单

[b]MODE2位置为信号复核方式,有C,D,E和F四种:[/b]

C:MODE2为'C'时

  1)当INTERVAL不为0时,出信号后第TIME2个数据时间间隔进行信号复核
  2)当INTERVAL为0时,出信号TIME2秒后进行信号复核,TIME2=0为不复核

D:MODE2为'D'时

  1)当INTERVAL不为0时,K线走完前TIME2个时间间隔进行信号复核
  2)当INTERVAL为0时,K线走完前TIME2秒进行信号复核
  3)TIME2=0为K线走完复核

E:每一个小节(包括:商品合约10:15-10:30休盘、11:30-13:30休市;股指合约11:30-13:00休市)最后一根K线提前复核,其他非小节最后一根K线是K线走完复核。

  1)当INTERVAL不为0时,提前TIME2个时间间隔进行信号复核
  2)当INTERVAL为0时,提前TIME2秒进行信号复核
  3)TIME2=0为K线走完复核

F:每天收盘前最后一根K线提前复核,其他非收盘前最后一根K线是K线走完复核

  1)当INTERVAL不为0时,提前TIME2个时间间隔进行信号复核
  2)当INTERVAL为0时,提前TIME2秒进行信号复核
  3)TIME2=0为K线走完复核


[b]INTERVAL代表数据时间间隔[/b]

  1)支持0、3、5、10四个值,不支持变量。
  2)3、5、10分别代表用每隔3秒、5秒、10秒,计算一次模型
  3)参数为3、5、10 ,回测速度可提升3-10倍,回测精度稍差
  4)参数为0的时 为每笔TICK计算一次模型
  5)一个模型中只能写入一个INTERVAL值


[/color][/font]

龙听 发表于 2017-12-28 16:46

用法:
CHECKSIG(SIG,MODE1,TIME1,MODE2,TIME2,INTERVAL);
1、当INTERVAL不为0时,INTERVAL数据时间间隔,每隔INTERVAL秒计算一次信号,SIG为信号,MODE1为信号确认方式,TIME1信号确认时间乘数,MODE2信号复核方式,TIME2信号复核时间乘数。
(例:INTERVAL为10,豆粕合约开盘第一根K线21:00:09为第一次计算模型,21:00:19为第二次计算模型...)
2、当INTERVAL为0时,每笔TICK计算一次信号,SIG为信号,MODE1为信号确认方式,TIME1信号确认时间,MODE2信号复核方式,TIME2信号复核时间。
3、通过调整INTERVAL参数,模型可设置不同数据快照频率进行回测。

龙听 发表于 2017-12-28 16:46

注意事项:

1、写了这个函数以后,模型会按照指令价方式运行。
2、SIG位置为交易指令,包括BK\SK\BP\SP\BPK\SPK\CLOSEOUT所有指令。
3、MODE1位置为信号确认方式,有A和B两种:
A:MODE1为'A'时
  1)当INTERVAL不为0时,出信号后第TIME1个数据时间间隔确认信号下单
  2)当INTERVAL为0时,出信号TIME1秒后确认信号下单
B:MODE1为'B'时
  1)当INTERVAL不为0时,K线走完前TIME1个时间间隔确认信号下单
  2)当INTERVAL为0时,K线走完前TIME1秒确认信号下单
  3)TIME1=0为K线走完确认信号下单
4、MODE2位置为信号复核方式,有C,D,E和F四种:
C:MODE2为'C'时
  1)当INTERVAL不为0时,出信号后第TIME2个数据时间间隔进行信号复核
  2)当INTERVAL为0时,出信号TIME2秒后进行信号复核,TIME2=0为不复核
D:MODE2为'D'时
  1)当INTERVAL不为0时,K线走完前TIME2个时间间隔进行信号复核
  2)当INTERVAL为0时,K线走完前TIME2秒进行信号复核
  3)TIME2=0为K线走完复核
E:每一个小节(包括:商品合约10:15-10:30休盘、11:30-13:30休市;股指合约11:30-13:00休市)最后一根K线提前复核,其他非小节最后一根K线是K线走完复核。
  1)当INTERVAL不为0时,提前TIME2个时间间隔进行信号复核
  2)当INTERVAL为0时,提前TIME2秒进行信号复核
  3)TIME2=0为K线走完复核
F:每天收盘前最后一根K线提前复核,其他非收盘前最后一根K线是K线走完复核
  1)当INTERVAL不为0时,提前TIME2个时间间隔进行信号复核
  2)当INTERVAL为0时,提前TIME2秒进行信号复核
  3)TIME2=0为K线走完复核
5、INTERVAL代表数据时间间隔
  1)支持0、3、5、10四个值,不支持变量。
  2)3、5、10分别代表用每隔3秒、5秒、10秒,计算一次模型
  3)参数为3、5、10 ,回测速度可提升3-10倍,回测精度稍差
  4)参数为0的时 为每笔TICK计算一次模型
  5)一个模型中只能写入一个INTERVAL值
6、模型中写入该函数,一根K线只能有一个信号。
7、CHECKSIG、MULTSIG、MULTSIG_MIN、CHECKSIG_MIN函数不能同时出现在一个模型中
8、该函数只允许在模组中使用,不支持加载到盒子。
9、未使用该函数的指令,默认的信号执行方式为K线走完确认信号下单。
10、TIME1,TIME2非0时,该函数不支持加载到量能周期和日线以上的周期中使用。
例如:量能周期出信号TIME1个数据时间间隔下单, K线走完前TIME2个数据时间间隔复核之类的都不支持
11、如果用该函数设置了信号复核,复核时产生了信号消失,会进行信号消失处理。信号消失的处理方式:
还没有成交时的信号消失处理-撤单
BK、SK信号消失处理-平仓
BPK、SPK信号消失处理-平仓+恢复建仓
BP、SP信号消失处理-恢复建仓

龙听 发表于 2017-12-28 16:47

例:
[code]
C>O,BK;
C<O,SP;
CHECKSIG(BK,'A',5,'D',0,3);//设置BK信号,出信号后第5个数据时间间隔确认下单(例如21:00:02满足条件,出现信号后第5次计算信号,即21:00:17时确认信号下单),K线走完复核。每隔3秒计算一次信号。
CHECKSIG(SP,'A',0,'C',10,3);//设置SP信号,根据数据时间间隔计算出信号后立即下单(例如21:00:02满足条件,出现信号后立即下单),下单后第10个数据时间间隔复核(例如21:00:17时确认信号下单,则确认下单后第10次计算模型,即21:00:47进行信号复核)。每隔3秒计算一次信号。
AUTOFILTER;
[/code]

龙听 发表于 2017-12-28 16:58

实例:
[img]http://p.qhlt.cn/filestores/2017/12/28/95a8b25987dc719bb1fced4fbff6bd88.jpg[/img]
[img]http://p.qhlt.cn/filestores/2017/12/28/3be8ec5e2b777cbdbe0a4343f629d491.jpg[/img]

页: [1]