【问题标题】:How to get an amount of open trades in MQL5如何在 MQL5 中获得一定数量的未平仓交易
【发布时间】:2016-03-18 13:16:12
【问题描述】:

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

PositionsTotal()OrdersTotal() 始终返回 0,即使有未平仓交易。

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

任何帮助将不胜感激。

【问题讨论】:

  • 您是否介意添加一些 PrintScreens 和源代码,以准确显示冲突情况(在 StrategyTester 中有 Orders 而在 OrdersTotal() 中没有报告此类情况)?
  • PostionsTotal() 始终获取未平仓头寸数量,就像 OrdersTotal() 获取未平仓挂单数量一样,无论您运行的是 MetaTrader5 的哪个客户端。如果您需要更多帮助,您需要提供代码示例。

标签: mql5 metatrader5


【解决方案1】:

根据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);
}

【讨论】:

  • 但我总是-1,它永远不会进入 de "for" 。对吗?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2023-02-12
    • 2023-01-22
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多