我的程序在每次开仓和平仓之后都会打一个标记,用全局变量保存,下次开仓都会读取前一次平仓的标记,以确定上次平仓是那个条件触发的。如果平仓和开仓不是在同一根K线上,这样是能正常工作的。但问题在于止损止盈,我是在达到价格K线没走完就平仓了,当在K线走完的时候又产生了开仓信号,这时开仓条件无法读取到本根K线内的平仓标记。
代码类似于下方:
VARIABLE:平仓记录=0;
开多1:=... AND 平仓记录=1 ;
IF 止盈条件 THEN BEGIN
止盈平多:SELL(1,HOLDING,LIMITR,止盈价格);
平仓记录:=1;
END
请问如何解决?
实际跑希望用固定轮询,但是测试只能用走完,目前先把测试搞好
目前是对已经交易的模型进行的改进,这个改进对业绩改善较大希望能够尽快投入使用
达到价格K线没走完就平仓了,当在K线走完的时候又产生了开仓信号
这个是在交易还是测评出现的情况的?
没有读取全局变量是结果还是你的推测?
这时在评测中出现,没有读取是我推测,因为每次出现这种情况都是在一根K线内发生的,而不是在一根K线内开平的都没有问题。
包括象ENTERBARS这种逐K线的函数在一根K线内也无法正确读取
我也尝试过用EXITBARS来控制,但是如果平仓开仓是同一根K线,EXITBARS也是一样的不管用
轮询模式可能会更麻烦一些,K线没走完应该就会止损止盈,但是止损止盈由于holding已经是0了,这个时候如果又满足开仓条件,会立即再开,而且有可能方向和之前平仓的方向一样
我希望在平仓之后能够读取到之前的平仓记录然后对后面的开仓做一些控制。