首页
学习
活动
专区
圈层
工具
发布

替代MQL5
EN

Stack Overflow用户
提问于 2016-07-28 23:49:16
回答 1查看 2.2K关注 0票数 0

我从MetaTrader Terminal软件的专家顾问开始,我有很多算法可以使用它。这些算法是在MATLAB中开发的,使用其强大的内置函数(如svdpinvfft )。为了测试我的算法,我有一些替代方案:

  1. MQL5编写所有算法。
  2. C++编写算法,然后由MQL5进行DLL调用。
  3. Python编写算法嵌入到C中,然后生成一个DLL
  4. MATLAB源代码转换为C,然后生成DLL

关于这些问题:

  1. 不可行,因为MQL5没有内置函数,所以我必须逐个手动实现。
  2. 我仍然没有尝试这一点,但我认为实现这些算法需要很长时间(我用C编写了一些算法,但花了很长时间,结果并不像MATLAB那样快)。
  3. 在编译到DLL时,我会遇到很多错误,但是如果我编译为一个可执行文件,就没有错误(这将是一个很好的选择,因为将MATLAB转换为python是非常简单和快速的)。
  4. 我现在正在尝试,但我认为还有很多工作要做。

我研究了其他类似的软件,比如MetaTrader Terminal,但是我没有找到一个好的软件。

我想知道,是否有一种最简单(快速)的方式将其他语言嵌入到MQL5中,或者以某种方式替代我的问题。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-08-01 18:36:37

是的,还有其他办法.5)去分发:

对于在外汇交易的外部定量模型中使用non-MQL4代码进行快速和复杂的数学计算,我也有类似的动机,我已经开始以一种异构分布式处理系统的互联形式使用{ MATLAB | python | ... }MetaTrader Terminal环境。

MQL4部件负责:

  1. anAsyncFxMarketEventFLOW处理
  2. aZmqInteractionFRAMEWORK设置和参与消息模式处理
  3. anFxTradeManagementPOLICY处理
  4. anFxTradeDetectorPolicyREQUESTOR发送分析RQST-s到远程AI/ML-预测器
  5. 远程节点指示上的anFxTradeEntryPolicyEXECUTOR处理

{ MATLAB | python | ... }部件负责:

  1. aZmqInteractionFRAMEWORK设置和参与消息模式处理
  2. anFxTradeDetectorPolicyPROCESSOR接收与处理分析RQST-s到远程{ MQL4 | ... } -requestor
  3. anFxTradeEntryPolicyREQUESTOR将贸易进入请求发送到远程{ MQL4 | other-platform | ... }-市场接口节点

为什么要开始以分布式的方式思考呢?

的核心优势在于重新使用 of MATLAB和其他COTS AI/ML-packages,而不需要对仍在爬行的MQL4接口选项进行逆向工程(是的,在过去几年中,DLL-接口从新的更新中得到了几次不愉快的点击(字符串不再是字符串,并开始成为结构(!)等等

的下一个优势是能够添加失败恢复力.分布式系统可以在(1+N)保护的阴影中工作。

的下一个优势是能够使提高性能。分布式系统可以提供处理器池--无论是在操作的{ SEQ | PAR }-mode (流水线进程或并行形式的进程执行)中。

MATLAB节点只是连接:

代码语言:javascript
复制
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MATLAB script to setup 

zeromq-matlab
clear all;
if ~ispc
    s1 = zmq( 'subscribe', 'ipc', 'MATLAB' );   %% using IPC transport on <localhost>
else
    disp( '0MQ IPC not supported on Windows.' )
    disp( 'Setup TCP transport class instead' )
    disp( 'Setting up TCP')                     %% using TCP transport on <localhost>
    s1 = zmq( 'subscribe', 'tcp', 'localhost', 5555 );
end

recv_data1 = [];                                %% setup RECV buffer

这就是说,我们可以保持双方的优势,可以避免任何形式的重复,已经实现的本机、高性能调优的库,而分布式操作模式也为的工作方式增加了一些全新的潜在好处。

  • 可以在EA自动化中添加远程键盘接口,并使用一些特定于自定义的命令( CLI )。
  • 一种快速、无阻塞、分布式的远程日志记录
  • GPU /GPU-从MetaTrader Terminal内部使用的网格计算
  • 可能喜欢programming models

在通信框架之上的分布式系统:

MetaTrader Terminal Communication Framework一样,多亏了奥斯汀·康拉德的包装器(尽管MQHver 2.1.11 DLL接口,所需的服务就像魅力一样工作),所以您可以直接在每一边使用它,因此这些类型的节点可以将各自的角色----以任何形式加入到真正异构的分布式系统中。

我最近的研究与开发使用了几个AI/ML-predictorr/KBDr/RealTimeANALYSERpython-side流程实例和一个集中化的r/LOG服务,这些服务在许多PUSH/PULL + XREQ/XREP + PUB/SUB可伸缩的正式通信模式上被积极地使用,这些服务来自于它们各自的MQL4-code的几个MetaTrader Terminal-s实例。

MATLAB函数可以以同样的方式重复使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38648453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档