3

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

PositionsTotal()即使有未平仓交易,也总是OrdersTotal()返回。0

此处建议的解决方案不起作用。

任何帮助将不胜感激。

4

2 回答 2

2

根据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);
}
于 2020-06-30T08:19:36.083 回答
1

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

于 2016-02-11T06:20:08.900 回答