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

时间:2013-05-24 09:53:06

标签: c# metatrader4 mql4

我的任务是将C#市场策略迁移到MetaTrader。

  1. 有没有办法自动完成这项工作? (例如,是否可以将C#解析为它的AST,然后进行翻译?)

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

4 个答案:

答案 0 :(得分:5)

接近任务Bottom-Up - Architecture-wise

是的,您可以简化问题并使MT4成为一个节点,立即点对点当前 C#市场策略。

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

MT4可以通过更复杂的" 可扩展的正式通信框架"成为 anEventFEED -er Node。以非常聪明的方式。

您希望有一个 CLI界面来命令您的MT4节点 - 一个用作anEventFEED - 呃,另一个用于 anXtoACTOR < / strong>节点 - 选择性地,具有语法和&amp; CLI指令的语法(不是关于测试自动化等等)?

您是否希望拥有一个中央&lt; syslog &gt;守护进程卸载加载HFT流量的MT4节点并自动执行+管理脚本监控&amp;维护任务?

您是否希望外部 GPU计算引擎/群集以每个tickEvent为基础以MT4 EA的客户端/服务器方式进行通信?

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

MT4 / MQL4有一个ZeroMQ的直接智能包装&gt;&gt;&gt;感谢Austen Conrad在GitHub MQL4ZMQ

ZeroMQ &gt;&gt;&gt;多亏了它,伟大的团队有很多语言绑定 - C / C ++,Python,Java,R,甚至Erlang,......

因此,您的项目可能会以坚如磐石的理由开始。独立于任何特定的架构网格锁(DLL移动sands等)

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

答案 1 :(得分:1)

简短的回答是否定的,然而,mql中有一个教员可以导入dll。所以你可以用c ++ / cli lib包装你的c#lib,它通过函数导出在功能上公开,你甚至可以在mql中运行一个计时器并实现一个基本的消息泵。

更新:MT4只能访问非托管DLL的标准调用。你必须使用c ++包装器的原因是c ++ DOES能够创建非托管标准调用。您可以创建标准调用的任何其他语言也可以使用。

此外,您需要一个包装器,以防您想使用其他不支持标准调用的语言。您可以用c ++编写整个代码,整个包装器概念将过时。

答案 2 :(得分:1)

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

您可以使用C#策略使用三元信号更新基于Web的文本文件:

-1 SELL
 0 HOLD
 1 BUY

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

就技术而言如何做到这一点;不幸的是我是一个python程序员而不是MQL4或C#,所以我无能为力。

答案 3 :(得分:0)

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