MQL5 编程示例的文章

icon

访问海量文章以及代码实例集合,演示如何使用 MQL5 语言 为 MetaTrader 平台创建指标和交易机器人。源代码已附加在文章之中,因此您可以在 MetaEditor 中打开并运行它们,看看应用程序如何工作。

这些文章对那些刚开始探索自动交易的人,以及具有编程经验的职业交易员都极其有用。它们的特色不仅是例子,而且也蕴含着新的想法。

添加一个新的文章
最近 | 最佳
preview
DoEasy. 控件 (第 1 部分): 第一步

DoEasy. 控件 (第 1 部分): 第一步

本文开始延展话题,介绍如何利用 MQL5 仿照 Windows 窗体样式创建控件。 我感兴趣的第一个对象是创建面板(panel)类。 若是没有控件,那么管理就会变得越来越困难。 因此,我将仿照 Windows 窗体样式创建所有可能的控件。
preview
从头开始开发智能交易系统(第 25 部分):提供系统健壮性(II)

从头开始开发智能交易系统(第 25 部分):提供系统健壮性(II)

在本文中,我们将朝着 EA 的性能迈出最后一步。 为此,请做好长时间阅读的准备。 为了令我们的智能交易系统可靠,我们首先从代码中删除不属于交易系统的所有内容。
非交易 EA 的测试指标
非交易 EA 的测试指标

非交易 EA 的测试指标

全部指标可以分为两组:静态指标(一旦显示后始终保持不变,不随新报价变化)和动态指标(仅显示当前时刻的状态,新价格出现时要完全重新绘制)。静态指标的效力在图表上直接可见。但如何检验动态指标的有效性呢?这是本文要探讨的问题。
preview
从头开始开发智能交易系统(第 28 部分):面向未来((III)

从头开始开发智能交易系统(第 28 部分):面向未来((III)

我们的订单系统有一项任务仍然尚未完成,但我们终将把它搞定。 MetaTrader 5 提供了一个允许创建和更正订单参数值的单据系统。 该思路是拥有一个智能系统,可令相同的票据系统更快、更高效。
preview
MetaTrader 中的多机器人:从单图表中启动多个机器人

MetaTrader 中的多机器人:从单图表中启动多个机器人

在本文中,我将研究一个简单的模板,用来创建通用的 MetaTrader 机器人,该机器人可以在多个图表上使用,同时仅附加到一个图表,无需在每个单独的图表上为每个机器人实例进行配置。
preview
在一张图表上的多个指标(第 03 部分):为用户开发定义

在一张图表上的多个指标(第 03 部分):为用户开发定义

今天,我们将首次更新指标系统的功能。 在“一张图表上的多个指标”的前一篇文章中,我们研究了允许在图表子窗口中加载多个指标的基本代码。 但其所代表的只是一个更大系统的起点。
将指标代码转移至 Expert Advisor 代码。总结
将指标代码转移至 Expert Advisor 代码。总结

将指标代码转移至 Expert Advisor 代码。总结

这是最后一篇文章,专门讨论如何将指标代码转移到 Expert Advisor 代码中。作者在这里针对一个特定示例转换 Expert Advisor 的代码,以便在不调用自定义指标的情况下在单个文件中呈现此 EA。
DoEasy 函数库中的其他类(第六十六部分):MQL5.com 信号集合类
DoEasy 函数库中的其他类(第六十六部分):MQL5.com 信号集合类

DoEasy 函数库中的其他类(第六十六部分):MQL5.com 信号集合类

在本文中,我将针对 MQL5.com 信号服务创建信号集合类,拥有能够管理信号的函数。 此外,我将改进“市场深度”快照对象类,来显示 DOM 的总买卖量。
DoEasy 函数库中的时间序列(第四十五部分):多周期指标缓冲区
DoEasy 函数库中的时间序列(第四十五部分):多周期指标缓冲区

DoEasy 函数库中的时间序列(第四十五部分):多周期指标缓冲区

在本文中,我将着手改进指标缓冲区对象和集合类,从而可在多周期和多品种模式下操作。 我打算在当前品种图表上的任何时间帧内接收和显示数据缓冲区对象的操作。
preview
种群优化算法:萤火虫算法(FA)

种群优化算法:萤火虫算法(FA)

在本文中,我将研究萤火虫算法(FA)优化方法。 致谢优化修订,该算法已从局外人变成了评级表上的真正领先者。
preview
种群优化算法:人工蜂群(ABC)

种群优化算法:人工蜂群(ABC)

在本文中,我们将研究人工蜂群的算法,并用研究函数空间得到的新原理来补充我们的知识库。 在本文中,我将陈列我对经典算法版本的解释。
DoEasy 函数库中的图形(第七十三部分):图形元素的交互窗对象
DoEasy 函数库中的图形(第七十三部分):图形元素的交互窗对象

DoEasy 函数库中的图形(第七十三部分):图形元素的交互窗对象

这篇文章开辟了函数库一个新的操控图形的大章节。 在本文中,我将创建鼠标状态对象、所有图形元素的基准对象、以及函数库图形元素的交互窗对象类。
DoEasy 函数库中的价格(第六十四部分):市场深度,DOM 快照类和快照序列对象
DoEasy 函数库中的价格(第六十四部分):市场深度,DOM 快照类和快照序列对象

DoEasy 函数库中的价格(第六十四部分):市场深度,DOM 快照类和快照序列对象

在本文中,我将创建两个类(DOM 快照对象类,和 DOM 快照序列对象类),并测试 DOM 数据序列的创建。
preview
MetaTrader 5 的 WebSocket — 使用 Windows API

MetaTrader 5 的 WebSocket — 使用 Windows API

在本文中,我们将使用 WinHttp.dll 针对 MetaTrader 5 平台创建 WebSocket 客户端程序。 客户端最终将作为一个类实现,并借助 Binary.com 的 WebSocket API 进行测试。
DoEasy 函数库中的价格(第六十五部分):市场深度集合并操控 MQL5.com 信号的类
DoEasy 函数库中的价格(第六十五部分):市场深度集合并操控 MQL5.com 信号的类

DoEasy 函数库中的价格(第六十五部分):市场深度集合并操控 MQL5.com 信号的类

在本文中,我将创建所有品种的市场深度集合类,并着手开发创建信号对象类来操控 MQL5.com 信号服务的功能。
使用 MQL4 的 HTML 引导
使用 MQL4 的 HTML 引导

使用 MQL4 的 HTML 引导

HTML 是当今最广泛使用的文件类型之一。MetaTrader 4 客户终端允许你将语句、测试和优化报告保存为 .htm 文件。有时需要从这些位于 MQL4 程序的文件中获取信息。本文描述了如何从 HTML 获得标记结构和内容的一个形式。
preview
神经网络变得轻松(第九部分):操作归档

神经网络变得轻松(第九部分):操作归档

我们已经经历了很长一段路,并且函数库中的代码越来越庞大。 这令跟踪所有连接和依赖性变得难以维护。 因此,我建议为先前创建的代码创建文档,并保持伴随每个新步骤进行更新。 正确准备的文档将有助我们看到操作的完整性。
preview
MQL5 中的矩阵和向量操作

MQL5 中的矩阵和向量操作

MQL5 中引入了矩阵和向量,用于实现数学解决方案的高效操作。 新类型提供了内置方法,能够创建接近数学标记符号的简洁易懂的代码。 数组提供了广泛的功能,但在很多情况下,矩阵的效率要高得多。
DoEasy 函数库中的图形(第七十六部分):会话窗对象和预定义的颜色主题
DoEasy 函数库中的图形(第七十六部分):会话窗对象和预定义的颜色主题

DoEasy 函数库中的图形(第七十六部分):会话窗对象和预定义的颜色主题

在本文中,我所述的概念将涵盖构建各种函数库 GUI 设计主题,创建会话窗对象,它是图形元素类对象的衍生后代,并为创建函数库图形对象的阴影准备数据,以及进一步开发功能。
通过"单元测试"的帮助来提高代码质量
通过"单元测试"的帮助来提高代码质量

通过"单元测试"的帮助来提高代码质量

就算是简单程序也会经常出现看似难以置信的错误。 “我怎么会编出这种东西?”是我们发现这种错误时的第一反应。 “我应该如何避免它?”则是较少会映入脑海的第二个问题。 编写完美无缺的代码是不可能的,特别是在大型项目里,但可通过技术手段及时检测出这些错误。 本文介绍如何借助通用的“单元测试”方法来提高 MQL4 代码质量。
懒惰是进步的动力,或者如何交互性的使用图形
懒惰是进步的动力,或者如何交互性的使用图形

懒惰是进步的动力,或者如何交互性的使用图形

用于跟趋势线、斐波那契水平和手动置于图表上的图标交互作用的指标。可以让你绘制斐波那契水平的颜色区域、显示价格交叉趋势线的时刻以及管理“价格标签”对象。
将指标代码转移至 Expert Advisor 代码。指标结构
将指标代码转移至 Expert Advisor 代码。指标结构

将指标代码转移至 Expert Advisor 代码。指标结构

本文详细介绍将指标代码转移至 Expert Advisor 代码的方式,并详细介绍编写 Expert Advisor 的过程,在此过程中,不调用任何自定义指标,且整个程序代码用于计算 Expert Advisor 中的必要指标值。本文介绍了指标结构的总体方案、Expert Advisor 中指标缓冲区的模拟以及函数 IndicatorCounted() 的替代项。本文面向拥有使用 MQL4 语言进行编程的经验的读者。
preview
DoEasy 函数库中的时间序列(第五十一部分):复合多周期、多品种标准指标

DoEasy 函数库中的时间序列(第五十一部分):复合多周期、多品种标准指标

在本文中,会完成多周期、多品种标准指标对象的开发。 以 Ichimoku Kinko Hyo 标准指标为例,分析复合自定义指标的创建,该指标含有辅助绘制缓冲区,可在图表上显示数据。
DoEasy 库中的其他类(第六十九部分):图表对象集合类
DoEasy 库中的其他类(第六十九部分):图表对象集合类

DoEasy 库中的其他类(第六十九部分):图表对象集合类

在本文里,我启动图表对象集合类的开发。 该类存储图表对象及其子窗口和指标的集合列表,从而提供操控任何选定图表及其子窗口的能力,亦或同时处理多个图表列表。
在 MQL4.Community上轻松简单地公布影音图像
在 MQL4.Community上轻松简单地公布影音图像

在 MQL4.Community上轻松简单地公布影音图像

通常通过展示总是会比文字描述收益更多。我们在本文中提供一个简单的方法。通过使用CamStudio创建影音图像在上 MQL4.community 论坛公布。
DoEasy 函数库中的时间序列(第四十八部分):在单一子窗口里基于一个缓冲区的多周期、多品种指标
DoEasy 函数库中的时间序列(第四十八部分):在单一子窗口里基于一个缓冲区的多周期、多品种指标

DoEasy 函数库中的时间序列(第四十八部分):在单一子窗口里基于一个缓冲区的多周期、多品种指标

本文研究了一个示例,该示例使用单个指标缓冲区来创建多品种、多周期标准指标,以便在指标子窗口中进行构造和操作。 我会准备库类,以便在程序主窗口中与标准指标一起操作,并有多个缓冲区来显示其数据。
将指标代码转移至 Expert Advisor 代码。Expert Advisor 和指标函数的总体结构方案
将指标代码转移至 Expert Advisor 代码。Expert Advisor 和指标函数的总体结构方案

将指标代码转移至 Expert Advisor 代码。Expert Advisor 和指标函数的总体结构方案

本文详细介绍将指标代码转移至 Expert Advisor 代码的方式,并详细介绍编写 Expert Advisor 的过程,在此过程中,不调用任何自定义指标,且整个程序代码用于计算 Expert Advisor 中的必要指标值。本文提供 Expert Advisor 更改的总体方案,以及基于自定义指标构建指标函数的想法。本文面向拥有使用 MQL4 语言进行编程的经验的读者。
MQL5 Cookbook: 处理自定义图表事件
MQL5 Cookbook: 处理自定义图表事件

MQL5 Cookbook: 处理自定义图表事件

本文研究在 MQL5 环境里设计和开发自定义图表事件的内容。一种事件分类的例程也可以在这里找到,当然,还有事件类,以及自定义事件处理器类的程序代码。
DoEasy 函数库中的图形(第七十四部分):由 CCanvas 类提供强力支持的基本图形元素
DoEasy 函数库中的图形(第七十四部分):由 CCanvas 类提供强力支持的基本图形元素

DoEasy 函数库中的图形(第七十四部分):由 CCanvas 类提供强力支持的基本图形元素

在本文中,我将重修上一篇文章中构建的图形对象概念,并准备由标准库 CCanvas 类提供强力支持的函数库所有图形对象的基类。
preview
在 MQL5 中使用 AutoIt

在 MQL5 中使用 AutoIt

简述。 在本文中,我们将探索采用 MetraTrader 5 终端里以集成的 MQL5 编写 AutoIt 脚本。 在其中,我们将覆盖如何操纵终端的用户界面来自动完成各种任务,并介绍一个采用 AutoItX 库的类。
DoEasy 库中的其他类(第七十二部分):跟踪并记录集合中的图表对象参数
DoEasy 库中的其他类(第七十二部分):跟踪并记录集合中的图表对象参数

DoEasy 库中的其他类(第七十二部分):跟踪并记录集合中的图表对象参数

在本文中,我将完成图表对象类及其集合的操控。 我还将实现图表属性及其窗口变化的自动跟踪,以及把新参数保存到对象属性。 如此修订允许在未来实现整个图表集合的事件功能。
测试程序中的断点:这是可能的!
测试程序中的断点:这是可能的!

测试程序中的断点:这是可能的!

本文探讨了通过测试程序时的断点仿真,显示的调试信息。
图形界面 X: 升级渲染表格及代码优化 (集成编译 10)
图形界面 X: 升级渲染表格及代码优化 (集成编译 10)

图形界面 X: 升级渲染表格及代码优化 (集成编译 10)

我们继续为渲染表格 (CCanvasTable) 完善新的功能。表格现在将具有: 当悬浮时高亮显示; 为每个单元格添加一个图标数组的能力, 以及一种切换它们的方法; 在运行时设置或修改单元格文本的能力等等。
preview
种群优化算法:杜鹃优化算法(COA)

种群优化算法:杜鹃优化算法(COA)

我将研究的下一个算法是 Levy 飞行正在使用的杜鹃搜索优化。 这是最新的优化算法之一,也是排行榜的新领导者。
preview
神经网络变得轻松(第十四部分):数据聚类

神经网络变得轻松(第十四部分):数据聚类

我的上一篇文章已经发表一年多了。 这令我有了大量时间考虑修改思路和发展新方法。 在这篇新文章中,我想转移一下以前使用的监督学习方法。 这次我们将深入研究无监督学习算法。 特别是,我们将考虑一种聚类算法 — k-均值。
DoEasy 函数库中的图形(第八十四部分):抽象标准图形对象的衍生后代类
DoEasy 函数库中的图形(第八十四部分):抽象标准图形对象的衍生后代类

DoEasy 函数库中的图形(第八十四部分):抽象标准图形对象的衍生后代类

在本文中,我将研究为终端的抽象标准图形对象创建衍生后代对象。 该类对象定义了所有图形对象通用的属性。 因此,它只是某个种类的图形对象。 为了阐明它与真实图形对象的从属关系,我们需要在衍生后代对象类中设置该图形对象特定的固有属性。
开发回放系统 — 市场模拟(第 10 部分):仅用真实数据回放
开发回放系统 — 市场模拟(第 10 部分):仅用真实数据回放

开发回放系统 — 市场模拟(第 10 部分):仅用真实数据回放

在此,我们将查看如何在回放系统中使用更可靠的数据(交易跳价),而不必担心它是否被调整。
preview
从头开始开发智能交易系统(第 27 部分):面向未来((II)

从头开始开发智能交易系统(第 27 部分):面向未来((II)

我们迈进更完整的图表上的直接订单系统。 在本文中,我将展示一种修复订单系统的方法,或者更确切地说,令其更直观。
DoEasy 函数库中的图形(第八十一部分):将图形集成到函数库对象之中
DoEasy 函数库中的图形(第八十一部分):将图形集成到函数库对象之中

DoEasy 函数库中的图形(第八十一部分):将图形集成到函数库对象之中

是时候开始把已创建的对象集成到先前所创建的函数库对象当中了。 这最终将会为每个函数库对象赋予自己的图形对象,便于用户与程序之间的交互。
DoEasy 函数库中的图形(第九十部分):标准图形对象事件。 基本功能
DoEasy 函数库中的图形(第九十部分):标准图形对象事件。 基本功能

DoEasy 函数库中的图形(第九十部分):标准图形对象事件。 基本功能

在本文中,我将实现跟踪标准图形对象事件的基本功能。 我将从图形对象上的双击事件开始。