7

我想从我自己在 Metatrader 中导入的 DLL 调用 MQL4 或 MQL5 函数。

是否可以?

4

3 回答 3

9

森林,

就我在过去 2 年使用 MetaTrader 的经历而言,没有真正的方法可以从外部 DLL 调用 MQL 函数。但是有一些自定义构建的 API 与您想要实现的目标非常相似:

MT4 API

MetaTrader™ Java / .Net API

这些 API 在某种程度上允许您使用开箱即用的 MQL 功能

于 2012-12-19T10:43:25.553 回答
2

原则

在外汇领域数百人*年之后,除了尝试将水推上山或支付 500 美元以上的工具包之外,还有另一种方法可以与其他流程协调顺畅而优雅的 MT4 终端合作,这将停止一旦构建 524-> 构建 562-> 构建 586-> 构建 600-> 构建 609-> 构建 624->... 再次移动,就可以在下一次冲击时工作

一个不存在的玩具

是的,MT4 架构并没有公开它自己的接口,以允许自己被通过 DLL 等处理外部低级调用的不确定义务“干扰”。

如何修复它

尽管如此,可以颠倒架构并使 MT4 终端充当轻量级瘦客户端,运行智能消息库,通过该库暴露 MT4 功能以进行远程调用 (RPC)。

例子

通过这种方式,Python节点可以收集 MT4 数据进行数值处理,

PHP节点并行处理远程系统日志的方式相同,

C++节点可以集成另一个任务的方式相同,

同样,另一个Python节点可以充当 CLI 终端界面,使用自定义特定脚本语法语言通过命令行/stdio 命令 MetaTrader 端活动

简单——无论您的应用程序基础设施需要什么,都可以通过这种方式完成

(甚至可以改进本机 MT4 线程的较差实时特性,以获得更好的软实时可预测性和低延迟的大规模并行架构.. 并且仍然处于更安全的一面,免受鱼雷攻击由任何下一个“新”-MQL4 )

nota bene:想象一下无形的威胁,“new”中的 headbang 碰撞MQL4.56789,除其他外string,虽然被语法提出为字符串,但实际上不是 astring而是 astruct并且您之前所有与 DLL 相关的工作只是有要重新工作和环绕以模拟字符串结构或新的 DLL 接口,必须针对这些情况设计,这些情况在缓冲中返回一个值ArrayOfBYTEs,哪MQL4.56789一方可以接收和处理,但它不能释放它自己和内存泄漏。

于 2014-06-13T21:55:30.030 回答
1

如果您的 DLL 是一个 .NET DLL 是可以接受的,那么您可以尝试 这个名为 NQuotes 的MT4 .NET集成库。

使用这个库,可以从您的 DLL 访问任何 MQL4 函数。

于 2016-12-04T17:28:02.580 回答