MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
升级至MetaTrader 4 Build 600及更高版本
升级至MetaTrader 4 Build 600及更高版本

升级至MetaTrader 4 Build 600及更高版本

新版MetaTrader 4客户端的新版本拥有用户数据存储的更新结构。在早期版本中所有程序,模板,配置文件等都被直接存储在程序端的安装文件夹。现在,特定用户所需的所有必要的数据都存储在一个单独的称为数据文件夹的目录中。阅读文章来寻找常见问题的答案。
指标喷发整体特征的计算
指标喷发整体特征的计算

指标喷发整体特征的计算

指标喷发是市场研究中较少涉及的一个领域。这主要是由于时变数据超大数组的处理造成的分析难度。现有的图形分析过于资源密集,并由此触发了一种采用喷发时间序列的俭省算法的发展。本文要论述的,就是如何利用喷发整体特征的研究,来替代可视(直观图像)分析。无论是交易者,还是自动化交易系统的开发者,都会感兴趣。
MQL5 编程基础:时间
MQL5 编程基础:时间

MQL5 编程基础:时间

本文着重于讲述处理时间的标准 MQL5 函数,以及创建 EA 交易和指标时所需的处理时间的编程技巧和实用函数。更格外注意时间测量的一般性理论。本文面对的主要是 MQL5 编程新手。
摆脱自制的 DLL
摆脱自制的 DLL

摆脱自制的 DLL

如果 MQL5 语言的功能性不足以完成任务,MQL5 程序员不得不诉诸于其他工具。他们必须转向其他编程语言并创建中间 DLL。MQL5 可提供各种数据类型并将它们传递至 API,但遗憾的是,MQL5 无法解决从收到的指针提取数据的相关问题。在本文中,我们将循规蹈矩,说明交换和使用复杂数据类型的简单机制。
MQL5 中艾略特波浪自动分析的实施
MQL5 中艾略特波浪自动分析的实施

MQL5 中艾略特波浪自动分析的实施

艾略特波浪理论是最流行的市场分析方法之一。然而,这个过程非常复杂,从而导致我们使用额外的工具。自动标记器是其中一种工具。本文描述用 MQL5 语言创建艾略特波浪的自动分析程序。
MQL5 编程基础:字符串
MQL5 编程基础:字符串

MQL5 编程基础:字符串

本文会讲解您可以利用 MQL5 中的字符串所做的一切。对此感兴趣的主要应是 MQL5 入门程序员,同时也为经验丰富的开发人员提供了一次总结和系统化其知识的良机。
新MQL4中的离线图表
新MQL4中的离线图表

新MQL4中的离线图表

更新的MQL4具有存储历史数据的新格式,并提供相应的MqlRates结构,便于时间,开盘,最低,最高,收盘和交易量值的存储。多年来,交易者们已经开发出收集和存储他们在HST文件中的数据,用于生成离线图表的MQL4应用。我们可以向您保证,所有先前编译的EX4文件在新的MetaTrader 4程序端将以之前相同的方式工作。
MetaTrader 4 Build 600及以上的数据结构 -  MQL4文章
MetaTrader 4 Build 600及以上的数据结构 -  MQL4文章

MetaTrader 4 Build 600及以上的数据结构 - MQL4文章

MetaTarder 4 build 600突出了新的结构和客户端文件的位置。现在,MQL4应用程序根据类型置于不同的目录中(EA交易,指标或脚本)。 在大多数情况下,程序端数据现在存储在不同于程序端安装位置的特殊的数据文件夹。在本文中,我们将详细描述数据如何传输,以及引入新存储系统的原因。
preview
OpenCL:从朴素到更具深度的编程

OpenCL:从朴素到更具深度的编程

本文要重点讲述的是一些优化能力,但至少要对 OpenCL 内核借以执行的基本硬件多少有些了解,才能启动这些能力。获取的数据远非最高值,但即便是这样,也建议充分利用现有资源(由该终端开发人员实施的 OpenCL API 不允许控制对于优化而言很重要的一些参数 - 尤其是工作组的大小),通过主机程序执行获得的增益是非常可观的。
OpenCL:并行世界的桥梁
OpenCL:并行世界的桥梁

OpenCL:并行世界的桥梁

2012 年 1 月末,从事 MetaTrader 5 开发业务的软件开发公司宣布 MQL5 可向 OpenCL 提供原生支持。本文通过一个示例说明了 MQL5 环境下 OpenCL 的编程基础知识,并列举了几个示例,讲述了为提高运行速度所做的朴素优化。
如何在"应用商店"中发布产品
如何在"应用商店"中发布产品

如何在"应用商店"中发布产品

通过市场向来自世界各地的数百万 MetaTrader 用户提供您的交易应用程序。 该服务提供了一个现成的基础架构:接触大量受众、解决方案发放许可、试用版、发布更新和接受付款。 您只需要快速完成一个卖家注册过程,即可发布您的产品。 利用服务提供的现成技术基础,开始从您的程序中产生额外的利润。
AutoElliottWaveMaker - 用于艾略特波浪半自动分析的 MetaTrader 5 工具
AutoElliottWaveMaker - 用于艾略特波浪半自动分析的 MetaTrader 5 工具

AutoElliottWaveMaker - 用于艾略特波浪半自动分析的 MetaTrader 5 工具

本文要讲述的是 AutoElliottWaveMaker - MetaTrader 5 中针对艾略特波浪分析的首次开发,体现出手动与自动波浪标签的合二为一。该波浪分析工具完全在 MQL5 中编写,不包含任何外部 dll 库。这也是可以(且应)利用 MQL5 开发成熟有趣程序的又一证据。
利用 EX5 库来推动您的项目开发
利用 EX5 库来推动您的项目开发

利用 EX5 库来推动您的项目开发

隐藏 .ex5 文件中类/函数的实施细节,会让您能够同其他开发人员共享自己的专有算法,设立共同项目并在网络中宣传它们。而且,在 MetaQuotes 团队不遗余力地引入直接继承 ex5 库类可能性的同时,我们现在就要付诸实施了。
保证 MQL5 代码的安全:密码保护,钥匙生成器,时间限制,远程许可证及先进的 EA 许可证密钥加密技术
保证 MQL5 代码的安全:密码保护,钥匙生成器,时间限制,远程许可证及先进的 EA 许可证密钥加密技术

保证 MQL5 代码的安全:密码保护,钥匙生成器,时间限制,远程许可证及先进的 EA 许可证密钥加密技术

大多数开发人员都需要保证其代码的安全性。本文就会讲到 MQL5 软件的几种不同的保护方式 - 其中涉及到的是赋予 MQL5 脚本、EA 交易和指标许可能力的方法。包括密码保护、钥匙生成器、账户许可、时限评估以及采用 MQL5-RPC 调用的远程保护。
使用 EA 交易可视向导创建 EA 交易
使用 EA 交易可视向导创建 EA 交易

使用 EA 交易可视向导创建 EA 交易

MetaTrader 5的EA交易可视向导提供一种高度直观的图形环境,带有一整套允许您在数分钟内完成EA交易设计的预定义交易代码块。EA交易可视向导的单击拖拽法允许您像使用铅笔和纸张一样,创建外汇交易策略与信号的可视化呈现。这些交易图表均通过Molanis的MQL5代码生成器自动进行分析,并将其转换为即用型EA交易。而互动式图形环境则会简化设计过程,且无需编写MQL5代码。
统计估计
统计估计

统计估计

对某个序列的统计参数进行估计非常重要,因为大多数数学模型和方法均基于不同的假设。例如,正态分布规律或离差值(或其他参数)就是这样。因此,在分析和预测时间序列时,我们需要一个简单方便的工具,用于快速清晰地估计主要统计参数。本文简要说明了一个随机序列的最简单统计参数,以及其可视分析的几种方法。本文还说明了如何在 MQL5 中实现这些方法,以及使用 Gnuplot 应用程序对计算结果进行可视化的方法。
使用带 ENCOG 机器学习框架的 MetaTrader 5 指标进行时间序列预测
使用带 ENCOG 机器学习框架的 MetaTrader 5 指标进行时间序列预测

使用带 ENCOG 机器学习框架的 MetaTrader 5 指标进行时间序列预测

本文介绍如何将 MetaTrader 5 连接到 ENCOG - 高级神经网络和机器学习框架。它包含一个基于标准技术指标的简单神经网络指标和一个基于神经指标的 EA 交易的描述和实施。本文还附带了所有源代码、编译后的二进制文件、DLL 和一个可仿效的经过训练的网络。
HTML 中的图表
HTML 中的图表

HTML 中的图表

现今很难找到一台没有安装 Web 浏览器的计算机。长久一来,浏览器一直在进化和改进。本文讨论依据从 MetaTrader 5 客户端获得的信息,以简单和安全的方式创建图表,以在浏览器显示它们。
在 MetaTrader 5 中实施多货币模式
在 MetaTrader 5 中实施多货币模式

在 MetaTrader 5 中实施多货币模式

长期以来,人们对多货币分析和多货币交易存在极大的兴趣。随着 MetaTrader 5 和 MQL5 编程语言的公开发行,实施完备的多货币体系成为可能。在本文中,针对多个交易品种,我们提出一种方法来分析和处理所有到来的价格变动。让我们将 USDx 美元指数的多货币 RSI 指标作为示例。
MQL5 中的电子表格
MQL5 中的电子表格

MQL5 中的电子表格

本文介绍在其第一个维度中包含不同类型的数据的动态二维数组的类。以表格的形式存储数据可方便地解决与安排、存储和操作不同类型的绑定信息相关的各种问题。实施表格处理功能性的类的源代码已附于本文。
最新的改革
最新的改革

最新的改革

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

MQL5 傻瓜式向导

在 2011 年年初,我们发布了 MQL5 向导的第一个版本。这一新的应用程序为自动生成交易机器人提供了简单方便的工具。任何 MetaTrader 5 用户都能创建自定义的EA 交易,他们甚至无需知道如何以 MQL5 编程。
源代码的跟踪、调试和结构分析
源代码的跟踪、调试和结构分析

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

可以在没有很大困难的情况下解决创建执行代码的结构以及对其进行跟踪的整个复杂问题。由于 MQL5 语言的新功能 - 自动创建复杂类型的数据变量(结构和类)以及在超出局部范围时自动消失,这种可能性已经出现在 MetaTrader 5 中。本文提供对方法和现成工具的描述。
用 MQL5 表示统计概率分布
用 MQL5 表示统计概率分布

用 MQL5 表示统计概率分布

本文介绍了在应用统计中使用的随机变量的概率分布(正态分布、对数正态分布、二项分布、逻辑分布、指数分布、柯西分配、学生 t 分布、拉普拉斯分布、泊松分布、双曲线正割分布、贝塔分布和伽玛分布)。它还介绍用于处理这些分布的类。
使用伪模板替代 C++ 模板
使用伪模板替代 C++ 模板

使用伪模板替代 C++ 模板

本文说明了一种不使用模板但保持它们固有的编程风格的编程方式。文章讨论使用自定义方法实施模板的问题,并且附带了一个现成的脚本以依据指定的模板创建代码。
移动极小化极大:技术分析的新指标及其在 MQL5 中的实施
移动极小化极大:技术分析的新指标及其在 MQL5 中的实施

移动极小化极大:技术分析的新指标及其在 MQL5 中的实施

在下文中,我将基于 Z.G.Silagadze 的论文《移动极小化极大:技术分析的新指标》说明移动极小化极大指标的实施过程。指标的理念基于对量子隧穿现象的模拟,量子隧穿现象由 G. Gamov 在 α-衰变理论中提出。
先进的自适应指标理论及在 MQL5 中的实施
先进的自适应指标理论及在 MQL5 中的实施

先进的自适应指标理论及在 MQL5 中的实施

本文要讲述的是高级自适应指标及其在 MQL5 中的实施:自适应周期性指标、自适应重心及自适应 RVI。所有指标的最初出处都在 John F. Ehlers 编著的《股票与期货控制分析》一书中。
MetaTrader 5 中的并行计算
MetaTrader 5 中的并行计算

MetaTrader 5 中的并行计算

在人类的整个历史长河中,时间都是极其宝贵的,因此我们努力避免不必要的时间浪费。如果您的电脑配备了多核处理器,本文将告诉您如何为“EA 交易”的工作提速。此外,实施建议的方法不要求您掌握 MQL5 以外的其他语言的知识。
基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”
基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”

基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”

部分交易人员选择自动执行所有交易,而另外一些交易人员基于多个指标的输出混合使用自动和手动交易。作为后者中的一员,我需要一个互动式工具以直接从图表动态地评估风险和回报价格水平。本文将介绍通过预定义的资产净值风险和风险/回报比实施互动式半自动“EA 交易”的方法。“EA 交易”风险、风险/回报和手数参数可于运行时期间在 EA 面板上更改。
例解 MQL5 中的面向对象编程:处理警告和错误代码
例解 MQL5 中的面向对象编程:处理警告和错误代码

例解 MQL5 中的面向对象编程:处理警告和错误代码

本文以一个例子说明创建一个类用于处理 MQL 程序运行期间交易服务器返回的代码以及所有错误的类。阅读本文之后,您将学习到如何在 MQL5 中处理类和对象。同时,这是一个方便的错误处理工具;并且您可以依据您的具体需要进一步更改此工具。
将指标从 MQL4 迁移到 MQL5
将指标从 MQL4 迁移到 MQL5

将指标从 MQL4 迁移到 MQL5

本文旨在说明将用 MQL4 编写的价格构建迁移到 MQL5。为了让将指标计算从 MQL4 迁移到 MQL5 的过程更加容易,建议使用 mql4_2_mql5.mqh 函数库。依据 MACD、随机动量指标和 RSI 指标说明其用途。
建立一个频谱分析程序
建立一个频谱分析程序

建立一个频谱分析程序

本文旨在让读者熟悉使用 MQL5 语言图形对象的一种可能变量。它会对一个利用图形对象管理简单频谱分析程序的面板的实施指标进行分析。本文专为熟悉 MQL5 基础的读者编写。
利用标准库类创建您自己的“市场报价”
利用标准库类创建您自己的“市场报价”

利用标准库类创建您自己的“市场报价”

新型 MetaTrader 5 客户端与 MQL5 语言提供了向交易者展示可视信息的新机遇。本文中,我们会讲到一系列通用且可扩展的类,处理图表上方任意文本信息的组织与显示工作。“市场报价”指标的示例亦有提供。
生长型神经气:MQL5 中的实施
生长型神经气:MQL5 中的实施

生长型神经气:MQL5 中的实施

本文会举例说明如何开发一个可以实施名为“生长型神经气” (GNG) 自适应聚类算法的 MQL5 程序。本文针对已研究过语言文档、且已具备一定编程能力和神经信息学基础知识的用户。
一个用于通过 Google Chart API 构建图表的库
一个用于通过 Google Chart API 构建图表的库

一个用于通过 Google Chart API 构建图表的库

构建各种类型的图表是分析市场情形及测试交易系统的一个基本部分。通常,为了构建一个精致的图表,必须将数据输出到一个文件,然后在 MS Excel 等应用程序中使用该文件。这样并不是非常方便,并且使我们无法动态更新数据。Google Charts API 通过向服务器发送特别请求,提供了在线创建图表的方式。在本文中,我们将尝试让创建此类请求和从 Google 服务器获得图表的过程实现自动化。
New Bar (新柱)事件处理程序
New Bar (新柱)事件处理程序

New Bar (新柱)事件处理程序

MQL5 编程语言处理问题的能力已达到一个全新的水平。即便是那些已有此类解决方案的任务,也因为面向对象编程而进阶到一个更高的水平。本文中,我们会举一个检查图表中新柱的特别简单的例子,而且,它已经转化成为一种相当强大且用途多样的工具。什么工具?到文中找答案吧。
查找错误和记录
查找错误和记录

查找错误和记录

MetaEditor 5 具备调试功能。但是在编写 MQL5 程序时,您通常都希望不要显示个别的值,而是测试与在线工作期间出现的所有信息。如果日志文件内容庞大,所需信息快速便捷检索自动化的重要性就显而易见了。本文中,我们会研究 MQL5 程序中查找错误的方式以及记录方法。我们也会简单地记录到文件中,并了解一款方便日志查看的简单程序 - LogMon。
一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案
一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案

一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案

本文说明如何使用命名管道在 MetaTrader 5 客户端之间实施进程间通信。为使用命名管道而开发了 CNamedPipes 类。为了测试其使用以及测量连接吞吐能力,提供了价格变动指标、服务器和客户端脚本。命名管道的使用足以应对实时报价。
在单一工具上使用不同的 EA 交易进行交易时 ORDER_MAGIC 的使用
在单一工具上使用不同的 EA 交易进行交易时 ORDER_MAGIC 的使用

在单一工具上使用不同的 EA 交易进行交易时 ORDER_MAGIC 的使用

本文考虑有关使用不同 EA 交易的自动交易的魔法标识以及分隔、组合与同步进行信息编码的问题。初学者和经验更多的交易者会对本文感兴趣,因为它解决虚拟仓位的问题,这在实施由 EA 交易的同步和各种策略组成的复杂系统时非常有用。
中测试移动平均线计算的性能
中测试移动平均线计算的性能

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

在创建第一个移动平均线指标之后,已经出现了若干指标。其中很多指标使用类似的平滑方法,但是还没有研究不同的移动平均线算法的性能。在本文中,我们将考虑在 MQL5 中使用移动平均线的若干可能方式并比较它们的性能。