10.2 优化进出场点
大部分趋势模型采用趋势突破或者趋势跟踪的方法捕捉趋势,通常情况下,信号都出现在一根较长的K线上,如果使用收盘价模型,入场点在下根K线的开盘价上,因此会错过突破这棍长K 线的最佳入场时间,无形中损失掉很大一笔到手的利润;出场时也是如此,那么怎么才能以最优的价格进出场,得到更多的利润呢?
如何实现在K 钱没有走完之前迸出场呢?这需要用到CHECKSIG 函数,先来看一下该函数的用法。
10.2.1 CHECKSIG 函数
CHECKSIG 函数是用来设置信号确认与复核的指令价方式的,即TICK逐笔回测,并可以设置回测精度。下面来看一下CHECKSIG 函数的用法。
CHECKSIG (SIG" MODE1, TIME1, MODE2, TIME2, INTERVAL);
(1) 当时TERVAL 不为0 肘, INTERVAL 数据时间间隔,每隔INTERVAL秒计算一次信号, SIG 为信号, MODEL为信号确认方式, TIME1信号确认时间乘数, MODE2 为信号复核方式, TIME2 信号复核肘间乘数。
例:INTERVAL 为10 ,豆粕合约开盘第一根K 线21: 00:09 为第一次计算模型, 21: 00: 19 为第二次计算模型…...
(2) 当INTERVAL 为0 时, 每笔TICK 计算一次信号,SIG 为信号,MODE1 为信号确认方式,TIME1 信号确认时间, MODE2 信号复核方式,TIME2 信号复核时间。
(3) 通过调整INTERVAL 参数,模型可设置不同数据快照频率进行回测。
使用CHECKSIG 函数的注意事项,具体如下:
(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 线走完前T IMEl 秒确认信号下单。
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 为UD" 时
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) INTERV AL 代表数据时间间隔
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 非O 时,该函数不支持加载到量能周期和曰线以上的周期中使用。
例如: 虽能周期出信号TIME1 个数据时间间隔下单, K 线走完前TIME2 个数据时间间隔复核之类的都不支持。
(11) 如果用该函数设置了信号复核,复核肘产生了信号消失,会进行信号消失处理。信号消失的处理方式:
还没有成交时的信号消失处理,撤单。
BK 、SK 信号消失处理,平仓。
BPK、SPK 信号消失处理,平仓+恢复建仓。
BP、SP 信号消失处理,恢复建仓。
10.2.2 收盘价模型与指令模型
先来编写收盘价模型, 即没有加入CHECKSIG 函数,具体代码如下:

AUTOFILTER;
然后保存模型文件为"收盘价模型"。
再来编写指令模型,即加入CHECKSIG 函数,具体代码如下:

然后保存模型文件为"指令模型"。
下面以"IF1706" 合约为例,来回测收盘价模型与指令模型,看看哪个模型会更好。
双击"擂令模型",把该模型文件加载到"IF1706" 的日K 线圈中,如图10.12 所示。

下面就可以进行回测模型了打开‘指令模型'立件然后单击菜单栏中的‘检测/回测报告"命令,弹出"模型回测报告"对话框,如图10.13 所示。

在这里可以看到模型得分为76 分,还是不错的一个模型。
再来加载收盘价模型,双击"收盘价模型",把该模型文件加截到"IF1706"的日K 线图中, 如图10.14 所示。

下面就可以进行回测模型了。打开"收盘价模型"文件,然后单击菜单栏中的"检测/回测报告"命令,弹出"模型回测报告"对话眶,如图10.15 所示。

在这里可以看到模型得分为28 分, 这就是一个很差的模型了。在这里可以看到加入CHECKSIG 函数的指令模型,优化了进出场点。
