node.js - 如何使 MetaTrader 终端 DDE 将外汇汇率导出到本地 Node.js 服务器?

标签 node.js mql4 mql5

我的计算机上运行着一个 Node.js 服务器,同时我还运行着一个 MT4.exe。

如果我可以通过此脚本将实时汇率导出到一个简单的 Excel 文件。

    BID   request: = MT4|BID!USDCHF 
    ASK   request: = MT4|ASK!USDCHF
    HIGH  request: = MT4|HIGH!USDCHF
    LOW   request: = MT4|LOW!USDCHF
    TIME  request: = MT4|TIME!USDCHF
    QUOTE request: = MT4|QUOTE!USDCHF

我想这意味着我也可以轻松地将实时汇率导出到我的 Node.js 服务器。

我怎样才能实现这一目标?

在 Excel 中,我仅将此代码 MT4|BID!USDEUR 粘贴到单元格中,它可以正常工作,并且每次 BID USDEUR 汇率发生变化时单元格都会发生变化,从而使单元格处于事件状态。

最佳答案

是的,
DDE-request 是一种可能的 MetaTrader 终端集成方法,
但是...!

考虑到人们需要一种单向的通信方向,并且考虑到业务领域不是任何关键任务领域。

虽然我记得银行间货币市场交易依赖 REUTERS 产品的日子,以及基于 Excel 电子表格的“分析”的丰富附加组件,但公平地说,这样的日子已经一去不复返了。只需比较一下在通过代理经纪业务完全开放外汇交易之前的银行间交易日内常见的交易事件数量即可。

那天,国际间QUOTE的延迟只有几分钟。

今天呢?
如果一个人获取 LP 提供商的数据源,即使不是一毫秒内数十个 PriceDOMAIN QUOTE 事件,也会有很多单位。

<小时/>

明白了吗?
对于具有 N [kTPS] 个事件流的系统来说,DDE 本身就是一种有风险的方法
并且可能会很高兴知道,它早在 Vista 推出时就已有效停止

如果某人的业务领域是处理 Assets 管理规模风险值(value)超过数百万美元的外汇交易,那么没有人会冒出现表现不佳或服务中断问题的风险。

基于 DDE 的服务已在 MT4 交易域中结束 Windows Vista 周围的某个地方被引入,因为它正式但间接地终止了当时常用的 DDE 服务的混合使用(这些服务已在 wV 中正式实现,但大多数 DDE 调用都返回“未实现”错误/响应)。

这一第一手经验让人们转向其他方式来集成交易支持系统,而这些设计却再也没有回来恢复服务,在 wV 的噩梦经历中,这造成了如此多的痛苦和成本。

<小时/>

下一步最好的步骤:

假设上面概述的项目不是周末爱好玩具,则需要定义、找到和使用实现此类项目目标的最佳足够强大且独立于平台的工具。

人们可能会尝试复兴DDE,但这将是一次回到几十年前的尝试。

以同样的方式,人们会尽力不浪费时间,将任何直接的应用程序到应用程序集成逻辑重新包装到开销和设计/性能妥协/替罪羊(非常有限的)WebRequest()函数调用的人工-REST重新设计。虽然有机会使用 WebRequest() 不仅用于pull-,而且还用于push-数据服务,但一旦有更智能的设计工具可用,成本和 http-header + http-body 负载编码 + 完整的 tcp/ip-stack 相关开销对于给定目的来说是不合理的

这种现代工具定义的几点:

  • 性能扩展(每秒发送 10k、100k、1M+ 更新的稳定性如何)
  • 集成支持(有多少语言绑定(bind)/平台支持该工具)
  • 线程安全设计(可以使用多少线程(在 MetaTrader 终端的受限代码执行环境限制之外),以减轻任何不利的阻塞或性能瓶颈,并允许对分布式系统处理方案进行某种故障安全设计)

如果需要一些实践示例,可以看看 Nanomsg、ZeroMQ 工具和 MetaTrader 终端,它们已经接管了金融科技高性能、可扩展、低延迟的消息传递/信令世界,并且变得稳定/成熟,足以花费一段合理的时间。

关于node.js - 如何使 MetaTrader 终端 DDE 将外汇汇率导出到本地 Node.js 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42045401/

相关文章:

Node.JS:Azure 不会从 package.json 安装新的依赖项

node.js - MongoDB:在下一阶段使用从聚合管道返回的数组进行 $in 查询

尝试读取文件时出现 MQL4 错误 5004 和 5002

无法使用 MQL5 在 DLL 中找到函数

algorithmic-trading - MQL4 - 调用 OrderSend() 方法时出现错误 4111

c++ - 不允许参数转换 - MQL5 - CArrayObj

javascript - 使用 connect 在 Gulp 中创建动态服务器

node.js - 期望在 Jasmine 中不能完全工作

mql4 - 无法在 Ubuntu 上打开文件

mql4 - 为什么自定义类的动态数组会出现内存泄漏?