如何在 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);
}
}
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 fromPositionGetTicket()
function, before callingPositionGetDouble()
,PositionGetInteger()
, andPositionGetString()
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);
}
}