如何在 MQL5 中获取未平仓交易量

How to get an amount of open trades in MQL5

我想在策略测试期间获取模拟账户中 MQL5 的未平仓交易量。

PositionsTotal()OrdersTotal() 总是 return 0 即使有未平仓交易。

建议的解决方案 here 无效。

任何帮助将不胜感激。

当运行 从Metaquotes 网站下载Metatrader 5 中的代码时出现问题。 运行 来自外汇经纪商的 Metatrader 5 实例中的相同代码解决了该问题。

根据https://mql5tutorial.com/mql5-tutorial-how-to-simply-count-positions-with-mql5/,您可以使用以下代码来完成此操作

void OnTick()

{

int PositionForThisCurrencyPair = 0;

for (int i = PositionsTotal()-1; i>=0; i--)
{
string symbol = PositionGetSymbol(i);

if(Symbol() == symbol)

{   

PositionForThisCurrencyPair+=1 ;

}
}

Comment("\n\n positions for this currency pair:",PositionForThisCurrencyPair);
}