同一根K线平仓和开仓问题

我策略加载的是日线,回测的时候回发生下面的情况:前几天开的多单,在当前的一根K上止盈了,但是这根K线又满足开多的信号。回测的时候发现,平仓的价格会比新开仓的价格高。那么问题来了,实盘的时候,再没平仓前,是一直有多单持有的,这时候新仓是开不出来的。只有平掉了多单,才开新单,这时候开仓价肯定就和回测不一致了。请问这样的问题怎么解决?

第一 你的开仓逻辑一定是没有仓位才能开第二 按照这个逻辑 你要计算出开仓的对应价格。你这里价格明显是计算错了第三 如果你无法计算出对应的开仓价格,那么可以尝试在平仓bar不开仓。比如先写开仓条件,再写平仓语句。或者用计数器控制一下

回复:@kyover不能多空同时持仓吗?我想在持多的情况下开空,但是每次开空都会先给我平多,我策略平仓代码都注释掉了,系统依然会先给我平多,这是啥道理?持空情况下也一样。。

回复:buy和sellshort都是先平掉所有反向仓位再开仓如果不想平掉反向仓位就有settradeside设置能锁仓

回复:老师你好,在平仓bar不开仓,公式应该怎么写?

回复:开仓价格条件,barssinceexit>=1

回复:*加个

回复:barssinceexit>=1但是这有个问题,第一次开仓用这个逻辑永远无法开仓所以可能要做个判断,第一次开仓单独列示,然后后面的开仓再应用barssinceexit

回复:!!!!!!差之毫厘谬以千里!!!学习学习学习!!!!!

回复:谢谢👍

回复:在下TB新手,老师,能不能麻烦你讲一下详细的写法。

回复:思考了一下第一次开仓该怎么开,找到 ExitSize-获得平仓次数 函数第一次开仓就是在没有平仓的情况下,所以 ExitSize==0if( ExitSize==0 and 你的开仓条件) { 开第一次仓; } if( ExitSize!=0 and barssinceexit>=1 and 你的开仓条件) { 开第二、三、四.....N 次仓; }