这在某种程度上是为了(可能)成为(可能)一个关于MetaTrader 4/5及其相应语言MQL4的指导文章,它们都是通过向外部服务器发送数据而设置到上下文中的。
在我的特殊情况下,我正在构建一个基于Django/Python的web应用程序,它将处理外汇交易数据以供进一步使用。
因此,我正在寻找一种适当的解决方案,将数据从json
4/5终端发送到外部服务器(例如每60秒一次),格式为或 csv
(如果可能的话)。特别是,要发送的数据是帐户交易历史和运行+待定交易集。
在做了这项研究之后,我基本上找到了以下方法:
( 1.)在用专家顾问webrequest()
包装的MQL4中使用
正如官方的MQL4文档所建议的那样,webrequest()
函数向指定的服务器发送一个http://请求。
这是一个相关的SO线程:
和正式文件:
https://docs.mql4.com/common/webrequest
可以将其包装到专家顾问中,以便在给定的定义事件上定期执行请求。
可以将来自MT4/5终端的哪类数据填充到数据数组中?
如何格式化这些数据?是否可以立即将其格式化为json
,还是应该在服务器端进行格式化?
( 2.)使用ZeroMQ
这是我在这个线程中找到的一个设置:How to send a message in MQL4/5 from MetaTrader Terminal to python using ZeroMQ?
如何在MetaTrader环境中实现这一点?这是否仍然是一个专家顾问或某种DLL解决方案?在设置中,ZeroMQ的角色是什么?
与webrequest()
函数相比,有什么优点和缺点?
( 3.)其他人?
是否还有其他类似于API或MQL4脚本的方法来实现这一目标?
由于这是一个罕见的话题,我期待任何微小的想法和投入。
发布于 2019-11-13 22:45:27
欢迎来到俱乐部
尽管如此,由于奥斯汀·康拉德( Austen CONRAD )发表的R&D研究成果,自v2.11+以来一直在使用v2.11+--感谢并深深尊重他的执着。
Q:“如何在MetaTrader环境中实现这一点?”
一个简单的#import
-s DLL并开始使用ZeroMQ包装器调用。一些细节变得更复杂了,因为string
的内部表示已经悄无声息地改变了,不再是string
(成为"New"-MQL4.56789
,中的struct
,但您将学会如何忍受这种“始终在观察”-style,以便在生产中生存)。
Q:“这仍然是一个专家顾问还是某种DLL解决方案?”
ZeroMQ可用于和/或全部:
MQL4
-codeMQL4
-code的-type
英国皇家银行(
MQL4
-code )甚至可以提供一个代理信令/消息传递层,以便在mt4终端生态系统中的这些单独和不合作的进程之间进行通信。。
示例:
我有MT4 4终端进程与基于外部AI/ML的市场分析器合作,它可以自动检测机会窗口,并拥有外部CLI控制台,作为MT4 4终端托管控制面板的远程键盘,显示系统健康状态并监听远程键盘,用于远程CLI命令控制(用于整个多方分布式交易系统的配置和维护任务)。
Q:“ZeroMQ在设置中扮演什么角色?”
ZeroMQ提供了一个独立的、智能的、行业标准的、智能的、低延迟的信令/消息传递层(网格计算、GPU计算、CLI-treminal、AI/ML决策、全系统统一的中央日志记录,任何可能需要的)。
尝试为跨集群计算范式设置和使用远程tipc://
-transport-class和任何其他方法。
尝试建立和使用M:n-冗余策略交易,操作跨越tcp://
+ tipc://
+ norm://
+ vmci://
传输-类,用于互连(exo+exo)-nodes的外部系统。
尝试建立一个系统,它要求MetaTrader从外部做一些工作,没有这种技术( webrequest()
还没有准备好任何“来自外部的问题”,是吗?)
Q:“与
webrequest()
函数相比,它的优缺点是什么?”
请随意阅读这方面的堆栈溢出答案。
发布于 2020-10-31 20:10:32
与Python的集成、对市场和信号服务的支持(Linux)和MetaTrader 5中高度优化的策略测试器构建2085年
MetaQuotes软件公司,2019年6月14日
在新的MetaTrader 5版本中,我们添加了一个API,它使用MetaTrader高级编程语言,通过应用程序支持对MetaTrader 5终端数据的请求。API包含多个用于机器学习、过程自动化以及数据分析和可视化的库。
MetaTrader 5与Python的集成
MetaTrader软件包是为直接从MetaTrader 5中通过处理器间通信高效、快速地获取交换数据而设计的,可用于统计计算和机器学习。
https://stackoverflow.com/questions/58845664
复制相似问题