如何在 MQL5 中浏览所有头寸并获取它们的类型

How to Navigate through all Positions and get the Type of them in MQL5

for(int i=0; i<PositionsTotal(); i++)
           {

             string id=PositionGetString(POSITION_COMMENT);
           int type = PositionGetInteger(POSITION_TYPE);

我有一个 Expert Advisor,我想获取 Positions 类型并浏览 Positions 信息....这两行代码对我不起作用 return 值

首先,在调用PositionGetDouble()PositionGetInteger()PositionGetString()函数之前,需要select定位。

您可以通过 PositionSelect() 在净账户中 select 一个头寸,也可以通过调用函数 PositionGetTicket() 它 returns 票号以及 select当前位置(但这是不可靠的)。如果您知道票号,也可以使用 PositionSelectByTicket()

To ensure that you always get fresh set of data, it is recommended to call the PositionSelectByTicket() after getting the ticket from PositionGetTicket() function, before calling PositionGetDouble(), PositionGetInteger(), and PositionGetString() functions.

这是一个例子,它打印仓位类型和它的单号。

for(int i = PositionsTotal() - 1; i >= 0; i--) {
      ulong ticket = PositionGetTicket(i);
      if(ticket>0){
          PositionSelectByTicket(ticket);
          ENUM_POSITION_TYPE posType = PositionGetInteger(POSITION_TYPE);
          Print(EnumToString(posType) + " : " + (string)ticket);
      }
}