1、什么是运行优化函数?
基本模型需要等K线走完后才能确定信号下单,如果盘中已经满足条件了,等K线走完再下单,买入价格已经不是最优价,徒增交易成本,浪费了一些机会。
这种情况可以写入SIGCHECK/SIGCHECK_MIN函数对模型运行进行优化,在k线还没有走完但是买入开仓条件已经满足的情况下发出交易指令,不需要等这根k线走完。这样后续行情继续上涨的前提下,买入价格就比k线走完再买入的价格更好,成本更低。
2、运行优化函数的使用
运行优化函数,在胜率高并且盈亏比低的策略中,对模型的优化效果更显著。
运行优化函数支持K线走完对信号进行复核,当k线走完的时候,如果条件仍然满足,则多赚了“满足信号条件时的价格-这根k线收盘价”这个价差;如果k线走完条件不再满足,牺牲了这个价差以及手续费成本。
用法:
SIGCHECK(MODE,TIME)/SIGCHECK_MIN(MODE,TIME),作用于所有的信号和指令;
MODE:
A 出信号time秒/分钟确认信号下单,k线走完复核;
B K线走完前time秒/分钟确认信号下单,K线走完复核;
C 小结最后一根K线走完前time秒/分钟确认信号下单,K线走完复核;
TIME:取值范围为0-30;
思路1:优化进出场点
基本模型的入场点在下根K线的开盘价上,因此会错过突破这根K线的最佳入场时间,无形中损失掉很大一笔到手的利润,加入运行优化函数后,模型可以在K线走完前以更优的价格入场,不仅可以锁定盘中利润,还有机会转亏为盈。
例如:
SIGCHECK('B',15);//K线走完前15秒下单,K线走完复核

思路2:盘中立即止损
盘中需要立即止损的情况,也可以通过写入运行优化函数,设置出信号后立即下单来实现即时止损的效果。
例如:
SIGCHECK('A',0);//出信号立即下单,K线走完复核
提醒:运行优化函数本质上不属于策略本身的内容,如果模型研究过程中,严重依赖运行优化函数,可能干扰策略的研究。虽然运行优化函数对短线模型是必须的,但是对长线模型来说意义不大的。
3、加入运行优化函数后怎么回测?
加入运行优化函数的模型,只支持加载到月份合约回测。
如果要用长期数据验证模型的有效性,可以使用主连链回测功能。首先把模型加载到品种主连的k线图上,点右键->模型回测报告,对主连链里的多年的主力月份合约进行回测,还可以合并回测报告。
典型问题解答
1、信号复核是什么意思?
答:复核方式是指对已发出的信号进行检查,可以让交易策略的实现更加灵活。
模型中如果写入运行优化函数,可能会产生信号出现后又消失的情况,称之为信号忽闪,信号复核过程可以对消失的信号恢复持仓。
软件中对消失信号的处理方式:
还没有成交时的信号消失处理-撤单
BK、SK信号和ADD_LONG、ADD_SHORT指令消失处理-平仓
BPK、SPK信号消失处理-平仓+恢复建仓
BP、SP信号和LOWER_LONG、LOWER_SHORT指令消失处理-恢复建仓
2、加入运行优化函数后,回测报告是根据收盘价还是满足信号条件时的价格计算?
答:回测报告是用来检验策略有效性的,加入运行优化函数影响的是交易结果而不是策略本身,所以仍使用收盘价计算回测报告。
回测报告中也提供了运行优化收益差和最终报告,是使用满足信号条件时的价格计算的收益结果,便于用户分析加入运行优化函数后,收益的提升情况。并在信号明细中提供了运行优化信号明细,进行对比参考。
运行优化收益差:交易合约满足信号条件时的价格和数据合约收盘价的差。