MetaTrader的异步Web请求

drl*_*obo 7 algorithmic-trading metatrader4 mql4

我试图看看是否可以为MetaTrader构建一个可以发出异步互联网请求的自定义指标,以便将数据发布到带有PHP接口的服务器上.

这些请求可能需要一些时间才能处理Web服务器,因此我担心如果以同步方式执行这些请求,它们将阻止指示器不断更新新的tick数据.

MT4是否有可用的异步库?

use*_*197 12

是的,有

MT4可以直接使用现成的绑定来实现出色的平台到平台和进程到进程的消息库,无论是ZeroMQ或者nanomsg.

使用前者几年后,MQL4进程可以形成非同步(即独立于aMarketEVENT到达,也quote可以不那么精确地称为" tick")ExpertAdvisor- > scriptscript- > script进程间通信解决方案,允许构建强大的增强用于专业交易的GUI服务以及用于软实时系统和低强度HFT聚类的许多其他功能.

另一方面,可以MT4 EA使用相同的消息传递技术平台配备一些必不可少的服务:

  1. keyboard为运行的EA 添加一个交互式遥控器,用于CLI类似的界面
  2. file-IO为HFT服务添加远程(非阻塞(!!))
  3. syslog为(非阻塞)日志记录添加远程/集中服务
  4. GPU-based为高级交易添加远程/集群AI/ML实时模型

Nota bene

从设计/架构的角度来看,MT4指标线程具有一定的意识.

在远程WebServer上对-process进行的POST基于常见的发布php肯定需要花费几十毫秒,这对于上述要求的正式架构来说是一个不可避免的问题.

jasuk.neumannova@gmail.com?Subject=StackOverflow-HFT-27078423(MQL4)

一个应最小化所有MT4.CustomIndicator的处理-嵌入式部分,以避免该处理的下一个后面滑移aMarketEVENT到达,由此来防止在计算值的同步性的时滞.

可以通过调度MT4.CustomIndicator代码范围"外部"的所有非核心功能(使用ZeroMQ进程到进程通信框架)并在不同的线程中解决所有其余逻辑来实现MT4.后处理是最小的问题,握手和值的更新和重新传输逻辑是从非常脆弱的线程同步性卸载的焦点MT4(可能已经观察到这个问题变得越来越危险)最近的构建.许多强大的增强GUI解决方案开始遭受Builds post 7xx中的不稳定响应,并且需要对其核心实时控制循环进行微调,以重新获得其UI强大性以及在重负载下的平滑UI响应性)

不要犹豫,询问有关此MQL4或HFT或其他主题的更多详细信息.