PositionSelect

为接下来的工作选择一个仓位,如果函数成功完成,返回true,如果失败返回false,调用 GetLastError()函数获取错误信息。

bool  PositionSelect(
   string  symbol      // 交易品种名称
   );

参量

交易品种

[in]  金融证券名称

返回值

布尔型值

注释

对于每个交易品种,任何给出时间,仅可以持有一个仓位,它是一个或者多个交易的结果,不要弄混挂单仓位,也会在客户端“工具箱”的“交易”中显示。

函数PositionSelect()复制程序函数的位置数据,进一步调用PositionGetDouble()PositionGetInteger()PositionGetString() 返回较早的复制数据。表明该位置本身已经不再存在(或者成交量,方向等的改变),但位置数据仍旧可以获得,为了确保关于位置的新数据的接受,在提及他们之前,推荐使用PositionSelect()函数。

示例:

#define   SYMBOL_NAME   "EURUSD"
 
//+------------------------------------------------------------------+
//| 脚本程序起始函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 选择指定交易品种的仓位
   if(!PositionSelect(SYMBOL_NAME))
     {
      PrintFormat("PositionSelect(%s) failed. Error %d",SYMBOL_NAMEGetLastError());
      return;
     }
 
//--- 如果选定了仓位, 我们可以使用 PositionGetDouble(), PositionGetInteger() 和 PositionGetString() 来获取它的数据
//--- 取得选定仓位的编号
   ResetLastError();
   long ticket=PositionGetInteger(POSITION_TICKET);
   if(ticket==0)
     {
      PrintFormat("Failed to get %s position ticket. Error %d"SYMBOL_NAMEGetLastError());
      return;
     }
     
//--- 如果成功取得编号, 在日志中打印选定仓位的交易品种和编号
   PrintFormat("The position that is selected on the %s symbol has ticket %I64d"SYMBOL_NAMEticket);
   /*
   结果:
   The position that is selected on the EURUSD symbol has ticket 2810846623
   */
  }

另见

PositionGetSymbol()PositionsTotal()仓位属性