我策略加载的是日线,回测的时候回发生下面的情况:
前几天开的多单,在当前的一根K上止盈了,但是这根K线又满足开多的信号。
回测的时候发现,平仓的价格会比新开仓的价格高。
那么问题来了,实盘的时候,再没平仓前,是一直有多单持有的,这时候新仓是开不出来的。
只有平掉了多单,才开新单,这时候开仓价肯定就和回测不一致了。
请问这样的问题怎么解决?
第一 你的开仓逻辑一定是没有仓位才能开
第二 按照这个逻辑 你要计算出开仓的对应价格。你这里价格明显是计算错了
第三 如果你无法计算出对应的开仓价格,那么可以尝试在平仓bar不开仓。比如先写开仓条件,再写平仓语句。或者用计数器控制一下
buy和sellshort都是先平掉所有反向仓位再开仓
如果不想平掉反向仓位就有settradeside设置能锁仓
老师你好,在平仓bar不开仓,公式应该怎么写?
开仓价格条件,barssinceexit>=1
*加个
barssinceexit>=1
但是这有个问题,第一次开仓用这个逻辑永远无法开仓
所以可能要做个判断,第一次开仓单独列示,然后后面的开仓再应用barssinceexit
!!!!!!差之毫厘谬以千里!!!
学习学习学习!!!!!
谢谢👍
在下TB新手,老师,能不能麻烦你讲一下详细的写法。
思考了一下第一次开仓该怎么开,找到 ExitSize-获得平仓次数 函数
第一次开仓就是在没有平仓的情况下,所以 ExitSize==0
if( ExitSize==0 and 你的开仓条件)
{
开第一次仓;
}
if( ExitSize!=0 and barssinceexit>=1 and 你的开仓条件)
{
开第二、三、四.....N 次仓;
}