MaxContracts返回当前持仓的最大持仓合约数总是0

写了一段测试代码希望通过MaxContracts获得虚拟账户里最新的持仓合约数,结果在MarketPosition=1的时候总是返回0.

代码逻辑比较简单, 运行在实时行情下:

1. 连续3根Bar, 买入一手

2. 连续买入3次后,从下一根Bar每次卖出一手,直到 MarketPosition=0

具体代码如下:

Vars
    Global Integer OrderOnBar(-1);
    
Events  

    OnInit()
    {
        PrintClear();
    }
    
    OnBarOpen(ArrayRef<Integer> indexes)
    {
        PlotAuto("BarIndex",Text(CurrentBar),Low);
    }
    

    OnBar(ArrayRef<Integer> indexs)
    {
       
        If(QuoteDataExist) {  
            
            If(BarsSinceEntry() <= 2)
            {
                Buy(1, 0);
                If(CurrentBar <> OrderOnBar)
                {
                    Print(Text(SystemDateTime) + " - Bar # " + Text(CurrentBar) + " - 买多1手");
                    Print("MarketPosition:" + Text(MarketPosition()));
                    Print("MaxContracts:" + Text(MaxContracts()));
                    Print("MaxContractsHeld:" + Text(MaxContractsHeld()));
                    Print("--------------------------------");
                    OrderOnBar = CurrentBar;
                }
                
            }
            Else If(MarketPosition == 1)
            {
                Sell(1, 0);
                If(CurrentBar <> OrderOnBar)
                {
                    Print(Text(SystemDateTime) + " - Bar #" + Text(CurrentBar) + " - 平多1手");
                    Print("MarketPosition:" + Text(MarketPosition()));
                    Print("MaxContracts:" + Text(MaxContracts()));
                    Print("MaxContractsHeld:" + Text(MaxContractsHeld()));
                    Print("--------------------------------");
                    OrderOnBar = CurrentBar;
                }
            }
            
        } 
    }

运行结果截图如下

从结果上可以看出:

1. MaxContractsHeld在下完3手多单后始终返回的是历史上最大的多头持仓3手

2. 从第一次开始平多单时MaxContracts就一直是0


我的问题是:

#1. MaxContracts返回值的含义是什么?

#2. 如果MaxContracts不能返回虚拟账户当前的实时持仓手数,那么应该用什么方式来获得?


策略交易初始持仓总是不为0怎么解决?
有持仓但是使用A_GetOrderIDs获取ID返回0
怎么获取当前持仓品种的持仓市值
最大持仓市值不给看
如何获取当前持仓空单的数量和多单的数量
当前持仓数的提取
关于获取当前持仓数量的问题
获取当前持仓标的的代码
如何获得图表上信号的当前买入持仓状态?
如何获取当前账号持仓的总持仓手数

https://tbq3.tbquant.net/helper?product_id=991&keyword=1122&content_id=892&type=article#currentcontracts-%E5%BD%93%E5%89%8D%E5%87%80%E6%8C%81%E4%BB%93%E5%90%88%E7%BA%A6%E6%95%B0-


CurrentContracts

谢谢老师回复,请问MaxContracts返回值的含义是什么呢?

CurrentContracts我也注意到了,不过这个是净持仓,当时想着用MaxContracts可以看到总持仓