10.2 优化进出场点

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 函数的指令模型,优化了进出场点。