AvgEntryPrice()函数在888合约发生换月之后返回值和换月之前的值不一致

AvgEntryPrice()函数在888合约发生换月之后返回值和换月之前的值不一致。以双均线策略威力,发生换月之前AvgEntryPrice返回的是金叉或者死叉是的开盘价(用开盘价发单),这个容易理解。但是发生换月之后的AvgEntryPrice价格我就不知道它怎么计算的了,不知道TB在这块是什么机制。

AvgEntryPrice()函数在888合约发生换月之后返回值和换月之前的值不一致
TB旗舰版6.0.6.7 - 888合约换月问题
A函数实盘中处理主力合约换月的问题
FG888玻璃主力合约仍然没有换月
关于期货合约换月
提前换月
主边合约换月问题
主力合约换月
请问关于主连合约换月的机制和监控器的问题
换月提醒的问题

换月会导致一大堆图表函数失效

自己弄个全局变量统计

Events
    OnInit()
    {
        AddDataFlag(Enum_Data_AutoSwapPosition);
    }
    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        if(CurrentBar==0)
        {
            buy(1,open);
        }
        Commentary("AvgEntryPrice="+text(AvgEntryPrice));
    }


你换月时平仓了,那原来的持仓就不存在了,持仓均价肯定就变了

老师,那发生换月之后AvgEntryPrice()返回的值是什么呢?

换月之后AvgEntryPrice()返回的值是888图表中发生换月时的那个K线对应的价格吗?根据我的观察,其实对应不上。

开仓在哪里均价就是哪里,数值不对就取消复权

也就是说复权状态下,换月时AvgEntryPrice()不会自动获取复权后的价格,如果向获得复权后的价格需要用rollover()进行转换。因为我的策略需要,我需要盘中计算当前持仓的浮盈百分比,所以并不方便取消复权。我想到的解决方案是用Natural类型变量固定住每一次金叉/死叉发生后的AvgEntryPrice(),这样即使发生了换月也不会改变。

老师,我在TBQuant终端测试了一下。上图是1000万资金,下图是2000万资金。其它条件按完全相同,我发现两次的AvgEntryPrice并不相同,请问是什么原因呢?