文章 "MеtaTrader 4 和 MATLAB Engine 的交互(虚拟 MATLAB 机)"

 

新文章 MеtaTrader 4 和 MATLAB Engine 的交互(虚拟 MATLAB 机)已发布:

本文探讨了 DLL 库 - 包装程序的创建,它能使 MetaTrader 4 和 MATLAB 数学桌面包进行交互。 文章对其中的“陷阱”以及克服的方法进行了介绍。 本文面向的读者是使用 Borland C++ Builder 6 编译器且具有 C/C++ 基础的程序员。

MetaTrader 4 和 MATLAB 数学包由于其良好的特性(包括在创建复杂计算系统中的“灵活性”),非常受用户的欢迎。 MATLAB 跟外部应用程序连接有三种主要方式,但我只推荐其中的一种 - 使用虚拟桌面 MATLAB Engine。 这种方法保证跟完整的 MATLAB 包完全兼容。 很多程序员出于以下原因回避这种方法:

  • 很多用户发现它较慢。 如果跟从 MATLAB 的 DLL 库直接调用函数相比,的确比较慢。 主要延迟发生在调用虚拟机的操作开始时,因为调用大量的库,需要将其上传到调用过程的虚拟空间(本例中是 MetaTrader 4)。
  • 项目的可转移性 这种问题的确存在,当把项目转移到另一台计算机时(以及使用直接调用时),所有的 MATLAB DLL 库也必须转移,以了解后者(即启动队列)之间的“关系”。
  • 必须了解 C++ 或 Fortran。 不过,如果你了解 MQL4,就可以轻松学习 C++,反之亦然。

我推荐这种方法的原因:

  1. 这是跟外部程序连接的方法中最可靠和不受 MATLAB 版本影响的一个。 你可以更改 MATLAB 的版本,而你的指标或 Expert Advisor 根本不会注意到这点。 这是最重要的优势。
  2. 它具有相对快速的开发方法。 不需要调试程序,并且编写 DLL 包装程序也不困难。
  3. 多个指标和/或 Expert Advisor 的“普通桌面”。 当我们需要基于多个指标的数据进行决策或在实现金字塔交易时,我认为这种方法非常有用。

本文描述了连接 MetaTrader 4 和 MATLAB(ver.7.4.0(R2007a))的方法, 通过在 Borland C++ Builder 6 编写的“DLL 包装程序”来实现。 喜欢 Microsoft 产品的程序员必须使示例适应他们的编译器(考虑到任务的复杂性,祝你好运!)

作者:Andrey Emelyanov

原因: