面向交易员的 MQL5 编程指南第五章创建应用程序
第五章在 MQL5 中创建应用程序
在这一部分,我们将深入研究 API 中与解决算法交易应用问题相关的各个部分:金融数据分析和处理、使用图形对象实现可视化对象和标记、常规操作自动化以及交互式用户交互。
我们首先介绍创建 MQL 程序的一般原则、程序类型、特点以及终端中的事件模型。然后,我们将探讨如何访问时间序列、处理图表和图形对象。最后,我们将分别分析每种 MQL 程序的创建原则和使用原则。
MetaTrader 5 的活跃用户一定记得,终端支持五种类型的程序:
- 技术指标,用于以时间序列形式计算任意指标,可在主图表窗口或单独面板(子窗口)中可视化;
- EA 交易,提供自动或半自动交易功能;
- 脚本,用于按需执行一次性辅助任务;
- 服务,用于以连续模式在后台执行任务;
- 库,具有特定独立功能的编译模块,在加载过程中动态地连接到其他类型的 MQL 程序(这与在编译阶段静态包含的头文件有本质区别)。
在本书的前几部分中,在我们掌握编程基础和常见内置函数的过程中,我们已经以脚本和服务为例进行过说明。选择这两类程序作为示例,是因为它们比其他程序更为简单。现在,我们将深入地讲解,并在其中添加更实用、更常见的指标。
借助指标和图表,我们将学习一些同样适用于 EA 交易的技术。但考虑到 EA 交易本质上更为复杂,我们将其实际开发内容移至单独的第 6 章,其中不仅包括订单的自动执行和交易策略的形式化,还包括这些策略的回测和优化。
就指标而言,众所周知,MetaTrader 5 自带一系列内置标准指标。在这一部分中,我们将学习如何通过编程方式使用这些指标,以及如何从零开始创建我们自己的指标,还学习如何基于其他指标创建指标。
所有已编译的指标、EA 交易、脚本和服务都会显示在 MetaTrader 5 的导航器中。库不是独立程序,因此在层级结构中并没有专门的分支,尽管从统一管理所有二进制模块的角度来看,这样的设计原本会更为便捷。我们稍后就会看到,如果程序依赖于特定库,那么如果相应的库不存在,程序就无法运行。但目前只能在文件管理器中查看库是否存在。
本书中的示例也可在 公共项目 \MQL5\Shared Projects\MQL5Book 中获取 |