PositionGetTicket

该函数返回持仓列表中指定索引的持仓报价,自动选择使用 PositionGetDoublePositionGetIntegerPositionGetString函数的持仓。

ulong  PositionGetTicket(
   int  index      // 列表中的持仓编号
   );

参数

index

[in]  持仓列表中的持仓索引,编号从0开始。

返回值

持仓报价。如果函数失败,返回0。

注意

对于"单边" 持仓 (ACCOUNT_MARGIN_MODE_RETAIL_NETTINGACCOUNT_MARGIN_MODE_EXCHANGE),无论任何时候一个交易品种只能存在一个持仓 。该持仓是一个或多个交易的结果。请不要混淆也显示在工具箱窗口交易标签中的有效挂单的持仓。

如果允许单独持仓 (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING),那么可为一个交易品种打开多个持仓。

若要确保收到持仓的最新数据,建议查阅之前直接调用 PositionSelect()函数。

示例:

//+------------------------------------------------------------------+
//| 脚本程序起始函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 在账户中的所有仓位中循环
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- 通过自动选择仓位取得下一个仓位的编号以访问它的属性
      ulong ticket=PositionGetTicket(i);
      if(ticket==0)
         continue;
      
      //--- 取得仓位类型并在日志中显示选定仓位的描述
      string type=(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE ? "Buy" : "Sell");
      PrintFormat("[%d] Selected position %s #%I64u"itypeticket);
     }
   /*
   结果:
   [0Selected position Sell #2810802718
   [1Selected position Buy #2810802919
   */
  }

另见

PositionGetSymbol()PositionSelect()Position Properties