PositionGetSymbol

返回的交易品种与开仓位置的值保持一致,使用 PositionGetDoublePositionGetIntegerPositionGetString函数为下一项操作自动选择位置。

string  PositionGetSymbol(
   int  index      // 仓位列表中的数量
   );

参量

index

[in]  开仓位置的列表位置数量。

返回值

字符串 型值,如果找不到位置,返回空字符串,为了获得 错误代码,调用 GetLastError() 函数。

注释

对于每一个交易品种,任何给出的时间段,只有一个仓位可以开放, 它能促成一笔或多笔交易的产生,不要弄混 挂单 位置,也会在客户端“工具箱”的“交易”中显示。

交易账户 总仓位数不能超过金融工具数 的总量。

示例:

//+------------------------------------------------------------------+
//| 脚本程序起始函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 取得账户中开启的仓位数量
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- 根据 i 循环索引取得仓位交易品种
      ResetLastError();
      string symbol=PositionGetSymbol(i);
      
      //--- 如果成功得到交易品种, 位于 i 索引的仓位会自动被选择
      //--- 然后我们就可以使用 PositionGetDouble, PositionGetInteger 和 PositionGetString 取得它的属性
      if(symbol!="")
        {
         ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
         PrintFormat("Position symbol at index %d: %s, position type: %s"isymbolStringSubstr(EnumToString(type), 14));
        }
      else
        {
         PrintFormat("PositionGetSymbol(%d) failed. Error %d"iGetLastError());
         continue;
        }
     }
   /*
   结果:
   Position symbol at index 0GBPUSDposition typeSELL
   Position symbol at index 1EURUSDposition typeBUY
   */
  }

另见

PositionsTotal()PositionSelect()仓位属性