如何开始学习MQL5 - 页 7

 

MQL5 中创建订单号指标


交易中,最好是能掌握尽可能多的信息,如此才能得到价格变动的详细图景。您可以使用订单号图表。我们试试在 MQL5 中创建一个订单号图表吧。

本文会讲到两个指标的创建:订单号价格图表,以及绘制包含一个指定订单号的烛形图的“订单号烛形图”图表。已考虑将每个指标接收到的价格值写入文件中,以构造客户端重启后要使用的指标数据(其它程序亦可使用该数据)。
 

创建具有图形控制选项的指标


熟悉市场情绪的人都知道 MACD 指标(其全称为平滑异同移动平均线)- 自计算机分析方法面世以来即已被交易人员用于分析价格变动的强大工具。

长久以来,我都在研究这个在图表中占得一席之地的 MACD 指标。我接触过这一指标的多种不同类型,它们具有不同的选项和不同的计算算法,因此我决定在指标中结合我所知道的所有类型。
 

面向初学者的创建具有多个指标缓冲区的指标


在我的前作《面向新手的 MQL5 自定义指标》《初学者以 MQL5 实现对数字滤波器的实际实施》中,我重点详述了具有一个指标缓冲区的指标的结构。

显而易见,这种方法可广泛适用于编写自定义指标,但真实交易很难限制在它们的使用范围内,因此,是时候提出更复杂的构建指标代码的方法了。幸运的是,MQL5 的能力是无穷无尽的,唯一可限制它的是我们电脑的 RAM。

 

遗传算法 - 很简单!


遗传算法 ( GA ) 指的是启发性算法 ( EA ),主要应用于其分析解法十分困难或甚至不可能的问题,它在大多数具有现实意义的情形中给出问题的可接受的解决方案,但决策的正确性没有经过数学证明。

此类(NP 类)问题的一个经典例子是“旅行商问题”(最著名的组合优化问题之一)。该问题的主要挑战在于找出最有利的路线,通过给定的城市至少一次后回到出发城市。但不会影响把它们用于囿于形式化的任务。

EA 被广泛用于解决具有高度计算复杂性的问题,而不是一一尝试所有选项,这将耗费大量的时间。它们被应用于人工智能领域(如模式识别)、杀毒软件、工程、电脑游戏和其他领域。

值 得一提的是,MetaQuotes Software Corp. 在其 MetaTrader 4/5 的软件产品中使用了 GA。我们都知道策略测试程序,也知道使用内置的策略优化程序可以节省大量的时间和精力,正如在其中使用直接枚举优化 GA 的应用是可能的。此外,MetaTrader 5 测试程序允许我们使用用户优化标准。可能读者会有兴趣阅读一些有关 GA 的文章,并对相比 直接枚举 EA 可提供哪些优势感兴趣。

 

从 MQL4 迁移到 MQL5

很多开发人员已经累积了很多用 MQL4 编写的指标和交易策略。要在 Metatrader 5 中使用它们,应将它们转换为 MQL5。用 MQL5 重写所有程序并不是如此容易。如果有转换参考,则进行转换会容易得多,最好以例子说明。

在本文中,我愿意推荐我自己的有关从 MQL4 迁移 MQL5 的指南。
 

使用若干中间指标缓存创建多货币指标


这一切开始于当我从 Theoretical Basis of Building Cluster Indicators for FOREX(建 立 FOREX 群集指标的理论基础)一文中第一次听到群集指标时。当时我对其非常感兴趣,我决定在多市场分析方面写一点类似的东西。首先,我实施了我自己的指标,代号为 MultiCurrencyIndex,在这个指标中,使用货币指数的计算值来计算经典指标(RSI、MACD、CCI)的值。 

现在,我将告诉您我如何在 MQL5 的帮助下将此指标转移到新的平台 MetaTrader 5,除了代替计算 CCI 以外,我将计算随机动量指标 (Stochastic Oscillator),该指标更具前瞻性(我的个人意见)。

 

用 Delphi 为 MQL5 编写 DLL 指南


考虑使用 Delphi 2009 开发环境来作为编写 DLL 的机制的例子。之所以选择这个版本是因为在 MQL5 中,所有代码行都是以 Unicode 格式存储的。在旧版本的 Delphi 中,SysUtils 模块缺少处理采用 Unicode 格式的代码行的函数。

如果您出于任何原因正在使用早期版本(Delphi 2007 及更早),则您不得不处理采用 ANSI 格式的代码行,并且为了与 MetaTrader 5 交换数据,您需要进行 Unicode 的正反转换。为了避免此类复杂情况的出现,我建议在不早于 Delphi 2009 的环境中为 MQL5 开发 DLL 模块。可以从官方网站 http://embarcadero.com 下载 30 天试用版 Delphi。

 

中测试移动平均线计算的性能

移动平均线的使用在市场时间序列的分析中、在指标和 EA 交易程序的编程中都是一种常见的实践方法。它是最流行的价格数据平滑方法。在新版本的 MQL 语言中,有成打的移动平均线算法可供使用。

它们之间有何差异?计算速度确实取决于某些移动平均线的算法吗?哪种算法最快?

与 MetaTrader 4 相比,在 MetaTrader 5 中移动平均线的计算速度加快了吗?有很多此类问题出现。因此,让我们探讨一下其中的大多数问题。

当然,新平台的速度令人印象深刻,但是最好通过实验检查一下。

测试的计算时间以 Y 轴表示。


 

用 MQL5 创建“贪吃蛇”游戏


在本文中,我们将考虑一个用 MQL5 编写“贪吃蛇”游戏的例子。

从 MQL 5 起,游戏编程变为可能,主要是因为事件处理功能,包括自定义事件。面向对象编程简化此类程序的设计,使代码更加清晰,并且减少错误的数量。

在阅读本文之后,您将了解 OnChart 事件处理MQL5 标准库类的使用例子和在一定时间之后循环调用函数来进行任何计算的方法。

 

用 MQL5 创建交易活动控制板



效率在一个工作环境中至关重要,尤其是在交易者的工作中,其中速度和准确性扮演着重要的 角色。在准备工作客户端的同时,每个人都会让他的工作空间尽可能舒适,从而尽可能快地进行分析并进入市场。但是事实的真相是开发人员无法总是让每个人都高 兴,并且也不可能与某人希望的某些功能完全合调。

例如,对于一名投机者,几分之一秒和每按一次“新建订单”键都非常重要,所有参数的后续设置在时间方面都可能非常关键。

那么,我们如何找到一个解决方案呢?解决方案贮藏在自定义控件中,因为 MetaTrader 5 提供如此精彩的组件,例如“按钮”、“编辑”和“标签”。让我们开始动手。

原因: