我想在Metatrader中从我自己导入的DLL调用MQL4或MQL5函数。
有可能吗?
发布于 2012-12-19 18:43:26
森林,
就我在过去两年中使用MetaTrader的经验而言,没有真正的方法可以从外部DLL调用MQL函数。但是有一些定制的API与您想要实现的目标非常相似:
MT4 API
MetaTrader™ Java / .Net API
这些API在某种程度上允许您使用开箱即用的MQL功能
发布于 2014-06-14 05:55:30
原则
在FX领域的几百个人*年后,有另一种方法来协调顺利和优雅的MT4终端与其他进程合作,而不是试图推动水上山或支付USD500+的套件,这将停止工作的下一次冲击一旦构建524->构建562->构建586->构建600->构建609->构建624->...再次移动
一个不存在的玩具
是的,MT4架构不会暴露它自己的接口,从而允许自身受到通过DLL等处理外部低级调用的不确定性义务的“干扰”。
如何修复它?
然而,有可能颠倒这种体系结构,使MT4终端充当轻量级瘦客户机,操作智能消息库,通过该库,MT4函数被暴露给远程调用( RPC )。
示例
以这种方式,Python节点可以收集用于数值处理的MT4数据,
与PHP节点可以并行处理远程系统日志的方式相同,
与C++节点可以集成另一任务的方式相同,
同样,另一个Python节点可以使用特定于自定义的脚本语法语言作为命令行终端接口,通过命令行/ stdio命令MetaTrader端活动
很简单--无论您的应用程序基础架构需要什么,都可以通过这种方式完成
(甚至可以改进原生MT4线程的糟糕的实时特性,以获得更好的软实时可预测性和低延迟的大规模并行体系结构。并且仍然处于更安全的一边,免受任何下一个“新的”-MQL4的鱼雷攻击)
DLL nota bene:"new"-MQL4.56789中的string,只是想象一下看不见的威胁,除了其他之外,string虽然被语法建议为字符串,但实际上并不是一个DLL,而是一个DLL,你以前所有与DLL相关的工作都必须重新处理和包装,以模拟字符串结构或新的DLL接口,这些接口必须针对返回缓冲ArrayOfBYTEs中的值的情况而设计,MQL4.56789方可以接收和处理。但是它不能自己释放它,并且内存泄漏。
发布于 2016-12-05 01:28:03
如果您的DLL可以接受为.NET DLL,那么您可以尝试名为NQuotes的this MT4 .NET集成库。
有了这个库,就可以从你的DLL中访问任何MQL4函数。
https://stackoverflow.com/questions/13890624
复制相似问题