程序库: MT4Orders - 页 49

 

我在使用该库构建的 MT4 Expert Advisor 中观察到以下情况。

在测试器中,订单正常打开和关闭。

日志中只有以下内容,每组几百行

  • 2020.04.21 00:52:00 分配订单失败 108!错误编号:4754 - 不存在错误编号

平均每 10 个订单出现一次。同时,根据日志,第 110 个订单成功打开,但 108 订单的问题出现在第 110 个订单之后。

请告诉我,是否有人观察到此库或特定 MQL4 Expert Advisor 存在此类问题?


 
vrubzov1957:

我在借助该库构建的 MT4 EA 中观察到以下几点。

在测试器中,订单正常打开和关闭。

日志中只有类似的情况,每组有几百行

  • 2020.04.21 00:52:00 分配订单失败 108!错误编号:4754 - 不存在错误编号

平均每 10 个订单就有一个。同时,根据日志,第 110 个订单成功打开,但 108 订单的问题出现在第 110 个订单之后。

请告诉我,是否有人观察到此库或特定 MQL4 Expert Advisor 存在此类问题?

很可能是交易订单 中的价格不正确。

 

static bool MT4OrderSelect ( const long &Index, const int &Select, const int &Pool )

引用传递的意义何在?它可以防止调用类似 MT4ORDERS::MT4OrderSelect(Orders[i],SELECT_BY_TICKET,MODE_TRADES) 的结构。

 
traveller00:

static bool MT4OrderSelect( const long &Index, const int &Select, const int &Pool )

引用传递的意义何在?它可以防止调用类似 MT4ORDERS::MT4OrderSelect(Orders[i],SELECT_BY_TICKET,MODE_TRADES) 的结构。

bool OrderSelect( const long Index, const int Select, const int Pool = MODE_TRADES )
{
  return(MT4ORDERS::MT4OrderSelect(Index, Select, Pool));
}
 
是的,我自己已经解决了这个问题。我想说明一下,也许这是旧代码的残余,不再需要了。
 
traveller00:
是的,我自己已经解决了这个问题。我想澄清的是,这是否可能是旧代码的残余,不再需要了。

这些都是速度理论斗争的结果。

 
fxsaber:

这些都是速度理论斗争的后果。

这样做有意义吗?在 32 位架构中,int 按值传递更快,如果是常量,则可以减少内存访问和优化。对于 long,这个问题值得商榷。但现在 MT5 已转为 64 位。对于所有这些参数,按值传递会更快。还是我遗漏了什么?

 
traveller00:

这样做有意义吗?在 32 位架构中,int 按值传递更快,如果是常量,则可以减少内存访问和优化。对于 long 来说,这个问题值得商榷。但现在 MT5 已转为 64 位。对于所有这些参数,按值传递会更快。还是我遗漏了什么?

我对此一无所知。这就是为什么我做出了自己的假设,很可能是错误的。我没有用不同的变体做过任何性能测量实验。

如果你决定这样做,请分享你的结果。

 

尚未发布的可测量某些单独模块性能的库版本。对于那些希望更接近 HFT 和 LFI.... 的人来说可能很有用。

不过,有实战积极使用的结果。

只有MT5 方面 出现了减速。看来,"圣经 "本身的执行并不存在瓶颈。

几乎所有 MT5 的滞后都出现在订单选择中。OrdersTotal 在第二位,滞后很大。


ZЫ 我似乎没有积极处理交易历史,因为库中没有 HistorySelect 函数的工作日志。

MT5 и скорость в боевом исполнении
MT5 и скорость в боевом исполнении
  • 2020.06.12
  • www.mql5.com
MT5 - шустрая платформа. Но есть узкие горлышки, которые сводят на нет все старания быстрой торговли...
 
好消息,感谢您的更新!