Skip to content

在 MQL5 中创建应用程序

在这一部分,我们将深入研究 MQL5 API 中与解决算法交易应用问题相关的部分,包括金融数据分析与处理、使用图形对象进行数据可视化和标注、日常操作自动化以及与用户的交互式交互。

我们先从创建 MQL 程序的一般原则、程序类型、特点以及终端中的事件模型开始讲起。然后,我们会涉及对时间序列的访问、图表和图形对象的操作。最后,我们将分别分析每种 MQL 程序的创建和使用原则。

MetaTrader 5 的活跃用户肯定记得,该终端支持五种类型的程序:

  1. 技术指标:以时间序列的形式计算任意指标,并且可以在主图表窗口或单独的面板(子窗口)中进行可视化显示。
  2. 智能交易系统(EA):提供自动或半自动交易功能。
  3. 脚本:根据需求执行一次性的辅助任务。
  4. 服务程序:以连续模式执行后台任务。
  5. 库文件:是具有特定独立功能的已编译模块,在其他类型的 MQL 程序加载时动态连接(这是库文件与在编译阶段静态包含的头文件的根本区别)。

在本书前面的部分,当我们掌握编程基础知识和常用内置函数时,已经以脚本和服务程序的实现为例进行过学习。选择这两种类型的程序是因为它们比其他类型的程序更简单。现在,我们将有针对性地对它们进行描述,并为它们添加更多实用且流行的指标。

借助指标和图表,我们将学习一些同样适用于智能交易系统的技巧。不过,我们将推迟智能交易系统的实际开发工作,因为这本质上是一项更为复杂的任务,我们会将其放到后续单独的第 6 部分。第 6 部分不仅包括订单的自动执行和交易策略的形式化,还包括交易策略的回测和优化。

就指标而言,众所周知,MetaTrader 5 自带了一组内置的标准指标。在这一部分,我们将学习如何通过编程方式使用这些指标,以及如何从头开始创建我们自己的指标,或者在其他指标的基础上进行创建。

所有已编译的指标、智能交易系统、脚本和服务程序都会显示在 MetaTrader 5 的导航器中。库文件不是独立的程序,因此在层次结构中没有专门的分支,尽管从对所有二进制模块进行统一管理的角度来看,要是有专门分支会更方便。正如我们稍后将看到的,依赖于特定库文件的程序如果没有该库文件就无法运行。但现在,你只能在文件管理器中检查库文件是否存在。