MT5和速度在行动 - 页 24

 
Artyom Trishkin:

最有可能是在下一个发布版本之后(现在是测试版)。

谢谢
 
Artyom Trishkin:

最有可能是在下一个发布版本之后(现在是测试版)。

不会有一系列的交易吗?

 

关于交易、自动交易系统和交易策略测试的论坛

MT5和速度在行动

fxsaber, 2020.08.13 04:36

  1. 进入交易历史相对较长的MetaQuotes-Demo模拟账户。
    1. 如果你的模拟账户没有什么交易历史,那么允许自动交易,并同时运行脚本OrderSend-Test2.ex5(在附件中,源代码)。

如果你在一个MQ-Demo图表上运行,并在Market Watch上添加更多的交易符号(我有100个),这个古老的脚本会显示出许多刹车。

终端日志。

2020.09.04 17:51:33.112 Trades  '34510052': cancel order #702851395 buy stop 0.01 EURCAD at 1.55852
2020.09.04 17:51:33.512 Trades  '34510052': accepted cancel order #702851395 buy stop 0.01 EURCAD at 1.55852
2020.09.04 17:51:33.514 Trades  '34510052': cancel #702851395 buy stop 0.01 EURCAD at market done in 401.845 ms

删除待定交易发生在401ms内。开发人员可以访问交易服务器的日志,可以看到那里的执行持续了多长时间。比如说

每个人都可以在他们的网站上转载。


以防万一,这是一个有结果的交易订单的样子。

2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Alert: EURCAD 702851395 Request executed 401.915 + 0.003 (0) ms.
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.action = TRADE_ACTION_REMOVE (8)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.magic = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.order = 702851395
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.symbol = EURCAD
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.volume = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.price = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.stoplimit = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.sl = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.tp = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.deviation = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type = ORDER_TYPE_BUY (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type_filling = ORDER_FILLING_FOK (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type_time = ORDER_TIME_GTC (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.expiration = 1970.01.01 00:00:00
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.comment = 
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.position = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.position_by = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.retcode = 10009
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.deal = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.order = 702851395
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.volume = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.price = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.bid = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.ask = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.comment = Request executed 401.915 + 0.003 (0) ms.
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.request_id = 6133
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.retcode_external = 0


平。

2020.09.04 17:51:57.567 AccountInfoString(ACCOUNT_SERVER) = MetaQuotes-Demo
2020.09.04 17:51:57.567 TerminalInfoInteger(TERMINAL_PING_LAST) = 74808


该剧本工作了大约10分钟。


我不关心这些减速的问题。我只想知道我可以在什么地方和什么地方进行调整,以改善这种情况。是终端还是交易服务器?一般来说,开发商有所有的可能性来复制,如果需要的话,也可以理解。

Особенности исполнения торговых приказов MT5
Особенности исполнения торговых приказов MT5
  • 2020.02.06
  • www.mql5.com
Анализировал с владельцем MT5-сервера тормоза торговых приказов. Запускался OrderSend-Test2.mq5 в том же месте, где MT5-сервер стоит. Т.е. нулевой пинг. Демо, все внутри. Изучались логи MT5-сервера (2170) и MT5-клиента (2280). Логи сервера не буду приводить, просто словами опишу. Думаю, результаты буду интерсны всем, т.к. это поможет раскрыть...
 
fxsaber:

如果你在一个MQ-Demo图表上运行这个古老的脚本,并在Market Watch上添加更多的交易符号(我有100个),那么这个脚本将显示许多刹车。

我记得这个案例

关于交易、自动交易系统和策略测试的论坛

新版MetaTrader 5平台build 1880:全合成工具历史的计算方法

A100, 2018.07.25 21:55

在任何情况下都需要考虑到负荷。

我的电脑很慢...而我有一个非常非常慢的......所以...如果我在市场观察中添加63个符号,然后按F10,MetaTrader就会严重挂起(不得不重新启动)...而在所有其他模式下,它都能正常工作

我试着用F10,但它至少挂了一年--尽管它是在32位版本上。

 
A100:

我记得有一个案例是这样的

市场评论》中的人物数量对玩转刹车并不关键。这只是我在我的工作中的方式。

这很容易重现。
2020.09.04 18:25:06.131 Trades  '34510052': buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.202 Trades  '34510052': accepted buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.202 Trades  '34510052': order #702911224 buy limit 0.01 / 0.01 USDPLN at 3.77653 done in 70.966 ms
2020.09.04 18:25:06.202 Trades  '34510052': cancel order #702911224 buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.274 Trades  '34510052': accepted cancel order #702911224 buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.274 Trades  '34510052': cancel #702911224 buy limit 0.01 USDPLN at market done in 71.859 ms
2020.09.04 18:25:06.274 Trades  '34510052': buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:06.481 Trades  '34510052': instant sell 0.1 NZDSGD at 0.91421, close #702903930 buy 0.1 NZDSGD 0.91462
2020.09.04 18:25:06.982 Trades  '34510052': accepted buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.030 Trades  '34510052': order #702911229 buy stop 0.01 / 0.01 USDPLN at 3.79653 done in 755.302 ms
2020.09.04 18:25:07.030 Trades  '34510052': accepted instant sell 0.1 NZDSGD at 0.91421, close #702903930 buy 0.1 NZDSGD 0.91462
2020.09.04 18:25:07.030 Trades  '34510052': deal #681898561 sell 0.1 NZDSGD at 0.91421 done (based on order #702911234)
2020.09.04 18:25:07.031 Trades  '34510052': cancel order #702911229 buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.031 Trades  '34510052': order #702911234 sell 0.1 / 0.1 NZDSGD at 0.91421 done in 550.273 ms
2020.09.04 18:25:07.103 Trades  '34510052': accepted cancel order #702911229 buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.103 Trades  '34510052': cancel #702911229 buy stop 0.01 USDPLN at market done in 72.558 ms
2020.09.04 18:25:07.103 Trades  '34510052': instant buy 0.01 USDHUF at 297.871 (deviation: 100)
2020.09.04 18:25:07.130 Trades  '34510052': instant sell 0.01 GBPCAD at 1.73255, close #702904086 buy 0.01 GBPCAD 1.73271
2020.09.04 18:25:07.174 Trades  '34510052': accepted instant buy 0.01 USDHUF at 297.871 (deviation: 100)
2020.09.04 18:25:07.174 Trades  '34510052': deal #681898572 buy 0.01 USDHUF at 297.871 done (based on order #702911246)
2020.09.04 18:25:07.175 Trades  '34510052': order #702911246 buy 0.01 / 0.01 USDHUF at 297.871 done in 72.051 ms
两个红色本地时间 之间只有1ms,实际上应该是550ms(连续的OrderSend)。显然,打印快照在这里也有影响。
 
Renat Fatkhullin:

为了你的立场,任何自我射击都是有必要的?

// Демонстрация тормозов HistorySelect.
#include <fxsaber\Benchmark.mqh> // https://c.mql5.com/3/321/Benchmark.mqh

input int inAlertTime = 1; // Нижний порог в миллисекундах

#define _B2(A) _B(A, inAlertTime)

const bool Init = EventSetTimer(1);

void OnTimer()
{
  static MqlTradeRequest Request = {0};
  static MqlTradeResult Result = {0};

  if (Request.tp) // Если позиция выставлена - меняем тейк.
  {
    static bool Flag = false;

    Request.action = TRADE_ACTION_SLTP;
    Request.tp += (1 - ((Flag = !Flag) << 1)) * _Point;
        
    if (Result.order)
      Request.position = Result.order;
  }
  else // Иначе выставляем позицию.
  {
    Request.action = TRADE_ACTION_DEAL;
    Request.symbol = _Symbol;
    Request.volume = 0.1;
    Request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
    Request.tp = Request.price + 1000 * _Point;         
  }

  if (OrderSend(Request, Result))
    _B2(HistorySelect(0, INT_MAX)); // В каком месте самострел?
}


b2592 MQ-Demo的结果。

2020.09.04 23:30:32.661 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:33.681 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:34.655 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:35.674 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:36.657 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:37.668 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:38.661 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:39.666 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.

每个电话都有一个滞后。

 
也是关于延误的问题

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

A100, 2020.08.31 15:55

我有一个非常好的时间框架,特别是对于欧元兑美元,十字线跟着光标移动得非常慢,只要把光标平稳地斜向移动就可以重现了。在其他时间 范围内也是可以的。以前没有这样的延迟

而且所有手动绘图(趋势、斐波那契等)也很慢

所有设置都是默认的。

  • 服务器:MetaQuotes-Demo
  • 历史:自1971年1月1日开始提供
  • 精确的时间框架:无
  • 窗口的最大条数。100000
  • 图表类型:烛台
  • 缩小图表的规模:最大

符号,周期 酒吧 延迟
欧元兑美元,月线 597 转到
欧元兑美元,每周
2590 查阅
欧元兑美元,每日

12797

某种逆向依赖:条数越少,速度越慢

在月线图和周线图上,例如欧元兑英镑(没有这样深的历史)--没有延迟。

 
A100:

某种反比关系:条子越低,速度越慢

相反,它是直接的--TF越高,延迟就越长。

显然,这是由于下层TF对坐标的精确计算所致。某个地方把我们要找的每周/每月的条形图中包含的条形图指数搞乱了。

ps:对我来说一切正常,同样的条数。

 
Andrey Khatimlianskii:

更像是一条直线 - TF越高,延迟越大。

显然,由于对下层TF的坐标的精确计算。他们在某处搞砸了,让酒吧的指数包括在所需的每周/每月的酒吧中。

ps:对我来说一切正常,同样的条数。

当然,没有任何EA/指标/脚本在运行--只有手动创建。所显示的延迟在任何普通的现代64位平板电脑上都是可重复的。如果你有一台i7电脑,我想你还没有遇到过这种延迟。
 
A100:
自然,没有专家/指示器/脚本在运行--只有手动构建。所示的延迟在任何普通的现代64位平板电脑上都是可重复的。如果你有一台i7电脑,我想你还没有遇到过这种延迟。

我也许应该指明使用的是平板电脑。

我有一台i5