我可以在MetaTrader4上使用MQL4以外的语言吗?

本文关键字:语言 MQL4 MetaTrader4 我可以 | 更新日期: 2023-09-27 18:15:04

我有一个将c#市场策略迁移到MetaTrader的任务。

  1. 有办法自动化这项工作吗?(例如,是否有可能将c#解析成它的AST,然后进行翻译?)

  2. MetaTrader是否接受其他语言?

我可以在MetaTrader4上使用MQL4以外的语言吗?

自底向上——架构方式

是的,您可以简化麻烦并使MT4成为一个节点,它立即与您的当前 c#市场策略对等连接。

这允许我操作一个基于集群的计算与一群MT4节点进行大规模并行通信。

MT4可以通过更复杂的"可扩展的正式通信框架"成为 anEventFEED -er节点;以一种非常聪明的方式

您是否希望有一个 cli接口来命令您的MT4节点——一个作为anEventFEED -er,另一个作为 anXtoACTOR node——选择性地使用语法&cli指令的语法(不谈论测试自动化等…)?

您是否希望有一个中央<<em>syslog>守护进程卸载hft流量负载MT4节点和自动化+管理脚本监控&;维护任务吗?

您是否希望有一个外部 gpu计算引擎/集群以客户端/服务器方式与MT4 EA在每个tickevent的基础上进行通信?

ZeroMQ和/或nanomsg框架将允许您设计和开发多对多(节点网络)&;任意对任意(实现语言方面)系统。

MT4/MQL4有ZeroMQ>>>MQL4ZMQ

ZeroMQ

祝辞祝辞祝辞由于它的伟大团队有许多语言绑定- C/c++, Python, Java, R,甚至Erlang,…

所以你的项目可能会在坚如磐石的基础上开始&独立于任何特定的架构阻塞(DLL移动沙等)

工程内置功能为您节省大量时间和精力,避免重新发明轮子

GET/POST请求和基于web的文本API服务如何?

你可以使用你的c#策略来更新一个基于web的文本文件,使用一个三元信号:

-1 SELL
 0 HOLD
 1 BUY

然后使用MQL4每分钟读取一次文本文件以获取交易信号。

至于技术上如何做到这一点;不幸的是,我是python程序员,不是MQL4或c#,所以我帮不上忙。

是的,可以使用c#通过使用一些第三方解决方案,如NQuotes http://www.nquotes.net/,这本质上是一个现成的通用DLL(如Dmitry所说,你可以创建自己的,但它涉及到一点工作)。

简短的回答是否定的,但是,MQL中有导入dll的功能。因此,您可以用c++/cli库包装c#库,该库通过函数导出在功能上公开,您甚至可以在MQL中运行计时器并实现基本的消息泵。

更新:MT4只能访问非托管dll的标准调用。必须使用c++包装器的原因是c++确实具有创建非托管标准调用的能力。任何其他可以创建标准调用的语言也可以工作。

此外,你需要一个包装器,以防万一你想使用其他不支持标准调用的语言。您可能只是用c++编写整个代码,整个包装器概念将被淘汰。