回测中最终的成交价格只有开高低收,就是说,亏损幅度也是根据开高低收的开仓与平仓来计算的。
举例说明:大阴线的回测情况下,是触发了止损的20点,但是最终的成交价是大阴线的收盘价,而不是触发20点时的即时价格。这是策略在历史回测的限制。
[此贴子已经被作者于2017/5/16 16:46:54编辑过]
那请问这个写法有没有逻辑上的问题。另外如果不采用下周期开盘平开仓的办法。轮询情况下能不能设置成触发价止损。能不能请教怎么写
写法没问题,只是回测时,其结果跟自己的预期不一致,如上所述。
轮询且触发价止损的话,需要用到逐笔精细回测功能,这个属于后台程序化交易回测,需要专业版及以上方可支持。
[此贴子已经被作者于2017/5/16 17:12:23编辑过]
你的测试程序写的不对,一般测试程序和交易程序是不一样的,测试程序不应该出现market这样的控制符,这样会导致买卖的定位不准;
测试时应该写成:
if holding>0 and enterprice-l>=20 then sell(1,手数,limitr,min(o,enterprice-20));
作为止损,一般要用轮训,这样才会起到你想要的止损结果;如果K线走完,你上面的写法没有问题,但如果出现大K线,你的止损就达不到目的。
[此贴子已经被作者于2017/5/17 3:14:44编辑过]
还有,如果出现跳空,那么亏损幅度可能也比较大,这个按时间查一下就可以找到。