MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
随机沙盒
随机沙盒

随机沙盒

本文包括用作为 Excel 文件的交互式“沙盒”,用于模拟随机的 Expert Advisor 回溯测试数据。 读者可以使用它,有助于探索和深入了解 MetaTrader 默认提供的 EA 性能指标。 本文旨在引导读者获得这种体验。
考虑 T. Demark 方法的趋势线指标
考虑 T. Demark 方法的趋势线指标

考虑 T. Demark 方法的趋势线指标

指标反映了显示市场近期事件的趋势线。该指标的开发考虑了 Thomas Demark 有关技术分析的建议和方法。指标显示了趋势的最后方向和趋势的倒数第二个相反方向。
如何在莫斯科交易所安全地使用您的 EA 进行交易
如何在莫斯科交易所安全地使用您的 EA 进行交易

如何在莫斯科交易所安全地使用您的 EA 进行交易

本文深入研究了交易方式, 通过莫斯科交易所衍生产品市场的例子来说明如何确保在股票和低流动性市场中交易操作的安全性。它带来了一些实践方法, 其交易原理在文章 "Principles of Exchange Pricing through the Example of Moscow Exchange's Derivatives Market - 莫斯科交易所衍生产品市场为例的定价原则" 里描述。
指标外部参数的图形控制
指标外部参数的图形控制

指标外部参数的图形控制

指标的外部变量通过专门的窗口进行控制,在窗口内可以更改参数,然后再次运行指标。 这些操作的明显不方便性产生了在屏幕上显示所需参数和图形化控制指标的需求。
轻松快捷开发 MetaTrader 程序的函数库(第 二十五部分):处理交易服务器返回的错误
轻松快捷开发 MetaTrader 程序的函数库(第 二十五部分):处理交易服务器返回的错误

轻松快捷开发 MetaTrader 程序的函数库(第 二十五部分):处理交易服务器返回的错误

交易订单发送到服务器之后,我们需要检查错误代码,或未出现错误。 在本文中,我们将研究处理交易服务器返回的错误,并着手创建延后交易请求。
源代码的跟踪、调试和结构分析
源代码的跟踪、调试和结构分析

源代码的跟踪、调试和结构分析

可以在没有很大困难的情况下解决创建执行代码的结构以及对其进行跟踪的整个复杂问题。由于 MQL5 语言的新功能 - 自动创建复杂类型的数据变量(结构和类)以及在超出局部范围时自动消失,这种可能性已经出现在 MetaTrader 5 中。本文提供对方法和现成工具的描述。
preview
神经网络变得轻松(第八部分):关注机制

神经网络变得轻松(第八部分):关注机制

在之前的文章中,我们已经测试了组织规划神经网络的各种选项。 我们还研究了自图像处理算法中借鉴而来的卷积网络。 在本文中,我建议研究关注机制,它的出现为开发语言模型提供了动力。
DoEasy 函数库中的时间序列(第三十九部分):基于函数库的指标 - 准备数据和时间序列事件
DoEasy 函数库中的时间序列(第三十九部分):基于函数库的指标 - 准备数据和时间序列事件

DoEasy 函数库中的时间序列(第三十九部分):基于函数库的指标 - 准备数据和时间序列事件

本文讨论如何应用 DoEasy 库来创建多品种、多周期指标。 我们准备在指标中操控函数库类,并创建时间序列作为指标的数据源进行测试。 我们还将实现时间序列事件的创建和发送。
MQL5 Cookbook: 使用不同的打印模式
MQL5 Cookbook: 使用不同的打印模式

MQL5 Cookbook: 使用不同的打印模式

这是 MQL5 Cookbook 系列的第一篇文章,我将会从简单的实例开始,让那些刚刚开始编程的人逐渐熟悉这门新语言。我还记得我开始设计和编写交易系统时的尝试,可以说是非常困难,事实上那是我所学的第一门编程语言,然而,后来还是比我想象的简单一些,我只用了几个月的时间就能够开发相对复杂的程序了。
来自专业程序员的提示(第二部分):在智能交易系统、脚本和外部程序之间存储和交换参数
来自专业程序员的提示(第二部分):在智能交易系统、脚本和外部程序之间存储和交换参数

来自专业程序员的提示(第二部分):在智能交易系统、脚本和外部程序之间存储和交换参数

这些来自专业程序员关于方法、技术和辅助工具的一些提示,可令编程变得更轻松。 我们将讨论终端重启(关闭)后如何恢复参数。 所有示例都是来自我的 Cayman 项目的真实工作代码片段。
DoEasy 函数库中的时间序列(第四十部分):基于函数库的指标 - 实时刷新数据
DoEasy 函数库中的时间序列(第四十部分):基于函数库的指标 - 实时刷新数据

DoEasy 函数库中的时间序列(第四十部分):基于函数库的指标 - 实时刷新数据

本文研究开发基于 DoEasy 库的简单多周期指标。 我们来改进时间序列类,从而能接收来自任何时间帧的数据,并在当前图表周期内显示。
MQL5 Cookbook: 处理 BookEvent
MQL5 Cookbook: 处理 BookEvent

MQL5 Cookbook: 处理 BookEvent

本文研究 BookEvent - 一个市场深度事件,以及它的处理原理。一个处理市场深度状态的 MQL 程序,作为例程。它采用面向对象方法编写。处理结果作为面板显示在屏幕上,还有市场深度级别。
preview
DoEasy 函数库中的时间序列(第四十九部分):多周期、多品种、多缓冲区标准指标

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

在本文中,我将改进库类,从而满足需要多个缓冲区来显示其数据的多品种、多周期标准指标的开发能力。
DoEasy 函数库中的图形(第九十一部分):标准图形对象事件。 对象名称更改历史记录
DoEasy 函数库中的图形(第九十一部分):标准图形对象事件。 对象名称更改历史记录

DoEasy 函数库中的图形(第九十一部分):标准图形对象事件。 对象名称更改历史记录

在本文中,我将改进基本功能,从而能够基于函数库程序来控制图形对象事件。 我一开始将以“对象名称”属性为例,实现存储图形对象更改历史的功能。
DoEasy 函数库中的图形(第八十七部分):图形对象集合 - 在所有打开的图表上管理对象属性修改
DoEasy 函数库中的图形(第八十七部分):图形对象集合 - 在所有打开的图表上管理对象属性修改

DoEasy 函数库中的图形(第八十七部分):图形对象集合 - 在所有打开的图表上管理对象属性修改

在本文中,我将继续跟踪标准图形对象事件,并创建允许用户控制在终端中打开的任何图表上放置的图形对象属性更改的功能。
preview
非线性指标

非线性指标

在本文中,我将尝试研究一些构建非线性指标的方法,并探索其在交易中的用处。 MetaTrader 交易平台中有相当多的指标采用非线性方式。
查找错误和记录
查找错误和记录

查找错误和记录

MetaEditor 5 具备调试功能。但是在编写 MQL5 程序时,您通常都希望不要显示个别的值,而是测试与在线工作期间出现的所有信息。如果日志文件内容庞大,所需信息快速便捷检索自动化的重要性就显而易见了。本文中,我们会研究 MQL5 程序中查找错误的方式以及记录方法。我们也会简单地记录到文件中,并了解一款方便日志查看的简单程序 - LogMon。
MQL5 Cookbook: 处理典型图表事件
MQL5 Cookbook: 处理典型图表事件

MQL5 Cookbook: 处理典型图表事件

本文研究典型图表事件,包括其处理例程。我们将专注于鼠标事件,按键,创建/修改/删除图形对象,鼠标点击图表上的图形对象,用鼠标移动图形对象,在文本域中完成文本编辑,以及在图表上修改事件。研究的每一类事件,都有一个 MQL5 程序例程。
preview
连续前行优化 (第七部分): 将自动优化器的逻辑部分与图形绑定,并通过程序控制图形

连续前行优化 (第七部分): 将自动优化器的逻辑部分与图形绑定,并通过程序控制图形

本文介绍了自动优化程序的图形部分与其逻辑部分的连接。 它考虑了优化启动过程,从单击按钮到把任务重定向到优化管理器。
外部指标的提醒和注释(第二部分)
外部指标的提醒和注释(第二部分)

外部指标的提醒和注释(第二部分)

自发表了“外部指标的提醒和注释”文章以来,我不断收到关于开发基于指标线运行的外部通知程序的可能性的请求和询问。 在对问题进行分析之后,我决定继续探讨该话题。 获得储存在指标缓冲区中的数据成为用户的另一个关注领域。
DoEasy 函数库中的图形(第七十五部分):处理基本图形元素图元和文本的方法
DoEasy 函数库中的图形(第七十五部分):处理基本图形元素图元和文本的方法

DoEasy 函数库中的图形(第七十五部分):处理基本图形元素图元和文本的方法

在本文中,我将继续开发由 CCanvas 标准库类提供强力支持的所有函数库图形对象的基准图形元素类。 我将创建绘制图元和在图形元素对象上显示文本的方法。
preview
从头开始开发智能交易系统(第 8 部分):概念上的飞跃

从头开始开发智能交易系统(第 8 部分):概念上的飞跃

实现新功能的最简单途径是什么? 在本文中,我们将后撤一步,然后再前进两步。
如何准备 MetaTrader 5 报价用于其他应用程序
如何准备 MetaTrader 5 报价用于其他应用程序

如何准备 MetaTrader 5 报价用于其他应用程序

本文介绍创建目录、复制数据、归档、使用 Market Watch(市场报价)或常用列表中的交易品种以及错误处理等示例。实际上,所有这些元素可集中在一个以用户定义格式归档数据的脚本中。
preview
交易中的追踪止损

交易中的追踪止损

在本文中,我们将研究追踪止损在交易中的使用。我们将评估它的实用性和有效性以及如何使用它。追踪止损的效率很大程度上取决于价格波动和止损水平的选择。可以使用各种方法来设置止损。
指标和提醒的盈利能力可视化测试
指标和提醒的盈利能力可视化测试

指标和提醒的盈利能力可视化测试

通过这些提醒进行 EA 测试时,通常将决定是使用交易提醒的哪个指标或只是指标计算方式。但是,为每个指标编写一个 EA 并非总是可能/必要/合理的。你可以通过自己收集提醒并绘制理想交易图像的特殊指标,快速计算出基于其他指标提醒的交易盈利能力。这可帮助你既对所得结果进行可视化估计,又快速选择了最优参数。
preview
如何利用 MQL5 创建简单的多币种智能交易系统(第 1 部分):基于 ADX 指标的信号,并结合抛物线 SAR

如何利用 MQL5 创建简单的多币种智能交易系统(第 1 部分):基于 ADX 指标的信号,并结合抛物线 SAR

本文中的多币种智能交易系统是交易机器人,它只能在单一品种图表中运营,但可交易(开单、平单和管理订单)超过一个品种对。
更好的程序员(第 05 部分):如何成为更迅捷的开发人员
更好的程序员(第 05 部分):如何成为更迅捷的开发人员

更好的程序员(第 05 部分):如何成为更迅捷的开发人员

每位开发人员都希望能够更快地编写代码,且能够更快、更有效地编写代码并非只是少数人与生俱来的特殊能力。 这项技能是可通过学习提升的,这就是我在本文中尝试传授的内容。
preview
掌握 MQL5:从入门到精通(第二部分)基本数据类型和变量的使用

掌握 MQL5:从入门到精通(第二部分)基本数据类型和变量的使用

这是初学者系列的延续。本文将介绍如何创建常量和变量、写入日期、颜色和其他有用的数据。我们将学习如何创建枚举,如一周中的天数或线条样式(实线、虚线等)。变量和表达式是编程的基础。它们肯定存在于99%以上的程序中,因此理解它们至关重要。因此,如果你是编程新手,这篇文章会对你非常有用。所需的编程知识水平:非常基础,在我上一篇文章(见开头的链接)的范围内。
已打开头寸的两步修改
已打开头寸的两步修改

已打开头寸的两步修改

两步法让你在邻近趋势的情况下和可能发生偏离的时候,避免不必要的关闭和重新打开头寸。
preview
种群优化算法:萤火虫算法(FA)

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

在本文中,我将研究萤火虫算法(FA)优化方法。 致谢优化修订,该算法已从局外人变成了评级表上的真正领先者。
三维图形 - 市场分析的专业工具
三维图形 - 市场分析的专业工具

三维图形 - 市场分析的专业工具

本文中,我们将编写一个简单的库,用于构建 3D 图形及其在 Microsoft Excel 中的进一步浏览。我们将使用标准的 MQL4 选项准备和导出数据至 *.csv 文件。
群集指标在嘉盛市场中的实际应用
群集指标在嘉盛市场中的实际应用

群集指标在嘉盛市场中的实际应用

群集指标是一系列将货币对分成独立的货币的指标。指标允许跟踪相对货币波动,确定形成新的货币趋势的潜能,接收交易信号,以及跟踪中期和长期仓位。
轻松快捷开发 MetaTrader 程序的函数库(第 二十三部分):基准交易类 - 基准类,有效参数验证
轻松快捷开发 MetaTrader 程序的函数库(第 二十三部分):基准交易类 - 基准类,有效参数验证

轻松快捷开发 MetaTrader 程序的函数库(第 二十三部分):基准交易类 - 基准类,有效参数验证

在本文中,我们继续开发交易类,实现错误交易订单参数值的监控,以及交易事件的语音。
preview
从头开始开发智能交易系统(第 26 部分):面向未来(I)

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

今天,我们将把我们的订单系统提升到一个新的层次。 但在此之前,我们需要解决少量问题。 我们现有的一些问题,是与在交易日里我们想要如何工作,以及我们做什么事情相关。
preview
探索创建多彩烛条的选项

探索创建多彩烛条的选项

在本文中,我将探讨创建烛条自定义指标的可能性,并指出它们的优缺点。
preview
种群优化算法:灰狼优化器(GWO)

种群优化算法:灰狼优化器(GWO)

我们来研究一种最新的现代优化算法 — 灰狼优化。 测试函数的原始行为令该算法成为以前研究过的算法中最有趣的算法之一。 这是训练神经网络的顶级算法之一,具有许多变量的平滑函数。
preview
如何利用 MQL5 创建简单的多币种智能交易系统(第 6 部分):两条 RSI 指标相互交叉

如何利用 MQL5 创建简单的多币种智能交易系统(第 6 部分):两条 RSI 指标相互交叉

本文中的多货币智能系统是一款智能交易系统或交易机器人,它利用两条 RSI 指标线的交叉,即与慢速 RSI 与快速 RSI 两线相交。
最新的改革
最新的改革

最新的改革

看一看您的交易终端。您能看到哪些价格展示方式?柱、烛形图和线条。我们追求的是时间和价格,但却只能由价格获利。那么,分析市场时,我们能否只关注价格呢?本文会针对点数图("圈圈叉叉")提出一种算法和脚本 - 已将各种各样的价格模式考虑在内,而其实际应用亦于提供的建议中列出。
preview
MQL5 中的矩阵和向量操作

MQL5 中的矩阵和向量操作

MQL5 中引入了矩阵和向量,用于实现数学解决方案的高效操作。 新类型提供了内置方法,能够创建接近数学标记符号的简洁易懂的代码。 数组提供了广泛的功能,但在很多情况下,矩阵的效率要高得多。
MetaTrader 4中的测试特性和限定
MetaTrader 4中的测试特性和限定

MetaTrader 4中的测试特性和限定

文章介绍在MetaTrader 4中更多策略测试的特性和限定。