0

我从MetaTrader Terminal软件上的智能交易系统开始,我有很多算法可以使用它。这些算法是MATLAB使用其强大的内置函数(例如svdpinv)开发的fft。为了测试我的算法,我有一些选择:

  1. 将所有算法写在MQL5.
  2. 将算法写入,C++然后DLL调用 by MQL5
  3. 将算法写入Python嵌入C而不是制作DLL.
  4. MATLAB源代码转换CDLL.

关于问题:

  1. 不切实际,因为MQL5没有内置功能,所以我将不得不手动实现。
  2. 我仍然没有尝试这个,但我认为实现算法需要很长时间(我写了一些算法C但花了很多时间,结果并不快MATLAB)。
  3. 编译为 a 时出现很多错误,DLL但如果我编译为可执行文件,则没有错误(这将是一个很好的选择,因为转换MATLABpython非常简单且快速)。
  4. 我现在正在尝试这个,但我认为还有很多工作要做。

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

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

谢谢。

4

1 回答 1

1

是的,还有其他选择...... 5)去分布式:

出于在外汇交易的外部量化模型中使用非代码进行快速和复杂数学的类似动机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. anFxTradeDetectorPolicyPROCESSORRQST从远程{ MQL4 | ... }请求者接收和处理分析-s

  3. anFxTradeEntryPolicyREQUESTOR{ MQL4 | other-platform | ... }向远程市场接口节点发送交易进入请求

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

核心优势在于重用MATLAB和其他 COTS 包的优势,AI/ML而无需对仍在蔓延的MQL4接口选项进行逆向工程(是的,在过去几年中,DLL 接口有几个来自较新更新的脏点击(字符串停止成为字符串并开始成为结构(!!!)等 - 许多人*多年的痛苦与维护中的代码库,所以有一些应该避免的难忘经历......)。

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

下一个优势是变得能够提高性能。分布式系统可以提供一个处理器池——无论是在一种{ SEQ | PAR }操作模式下(管道进程或并行形式的进程执行)。


MATLAB节点刚刚加入:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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

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

  • 可以将远程键盘界面添加到 EA 自动化并使用一些自定义特定命令 ( CLI)
  • 一种快速、非阻塞、分布式的远程日志记录
  • 从内部使用 GPU / GPU 网格计算MetaTrader Terminal
  • 可能想查看有关扩展编程模型的其他帖子MetaTrader Terminal

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

MATLABZeroMQ由于 Austin CONRAD的MetaTrader Terminal包装器(虽然它MQH与 DLL 接口ver 2.1.11所需的服务就像一个魅力),所以你已经准备好在每一端使用它,所以这些各种类型的节点都准备好​​以任何可以设计成真正异构分布式系统的形式加入它们各自的角色。

在此处输入图像描述

我最近的研发使用了几个python-side 流程实例来操作 AI/ML-predictor,r/KBDr/RealTimeANALYSER一个集中式r/LOG服务,这些服务在许多 ++ Scalable Formal Communication Patterns 中被积极使用,PUSH/PULL来自XREQ/XREP多个PUB/SUB-s 实例MetaTrader Terminal及其各自的MQL4-code。

MATLAB函数可以以相同的方式重用。

于 2016-08-01T18:36:37.757 回答