PositionGetInteger

函数返回持仓需求属性,使用 PositionGetSymbol 或者 PositionSelect. 预选出来,仓位属性的类型是时间日期整型,有两种变体函数。

1. 立即返回属性值

long  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id      // 属性标识符
   );

2. 返回true或者false,取决于函数执行成功与否,如果成功,性质值通过引用安置在最后参量的接受变量里。

bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // 属性标识符
   long&                           long_var         // 这里接受属性值
   );

参量

property_id

[in]  仓位属性标识符,值可能是 ENUM_POSITION_PROPERTY_INTEGER 中的一个。

long_var

[out]  接受要求性质的字符串变量值。

返回值

长整型 值。如果函数失败,返回0。 如果函数失败,返回0。

注释

对于"单边"持仓的解释就是 (ACCOUNT_MARGIN_MODE_RETAIL_NETTING and ACCOUNT_MARGIN_MODE_EXCHANGE),在任何时候一个交易品种 只能存在一个持仓。 该持仓是一个或多个交易的结果。 不要混淆有效 挂单的持仓,它只显示在工具箱窗口的交易标签。

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

为确保关于仓位的新数据的接收,在提及之前调用 PositionSelect() 函数。

例如:

//+------------------------------------------------------------------+
//| 交易函数                                                          |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- 检查持仓是否存在并显示其变化的时间
   if(PositionSelect(_Symbol))
     {     
//--- 接收持仓ID为进一步工作
      ulong position_ID=PositionGetInteger(POSITION_IDENTIFIER);
      Print(_Symbol," position #",position_ID);
//--- 接收从1970.01.01开始的毫秒为单位的形成持仓的时间
      long create_time_msc=PositionGetInteger(POSITION_TIME_MSC);
      PrintFormat("Position #%d  POSITION_TIME_MSC = %i64 milliseconds => %s",position_ID,
                  create_time_msc,TimeToString(create_time_msc/1000));
//--- 接收从1970.01.01开始的秒为单位的持仓最近变化的时间
      long update_time_sec=PositionGetInteger(POSITION_TIME_UPDATE);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE = %i64 seconds => %s",
                  position_ID,update_time_sec,TimeToString(update_time_sec));
//--- 接收从1970.01.01开始的毫秒为单位的持仓最近变化的时间
      long update_time_msc=PositionGetInteger(POSITION_TIME_UPDATE_MSC);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE_MSC = %i64 milliseconds => %s",
                  position_ID,update_time_msc,TimeToString(update_time_msc/1000));
     }
//---
  }

另见

PositionGetSymbol()PositionSelect()仓位属性