MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
在 GUI 控件中使用布局和容器: CBox 类
在 GUI 控件中使用布局和容器: CBox 类

在 GUI 控件中使用布局和容器: CBox 类

本文介绍一种基于布局和容器来创建 GUI (图形用户界面) 的替代方法, 使用一个布局管理器 — CBox 类。类 CBox class 是一个辅助控件, 在 GUI 面板里充当一个基本控件的容器。它可令图形面板设计更加简便, 并且在某些场合, 减少编写代码时间。
使用 CCanvas 类绘制刻度表盘
使用 CCanvas 类绘制刻度表盘

使用 CCanvas 类绘制刻度表盘

我们可以在汽车和飞机, 在工业产品以及在生活中随处发现刻度表盘。它们被用在所有需要对数值控制行为进行快速响应的领域。这篇文章描述用于 MetaTrader 5 的刻度表盘程序库。
模糊逻辑介绍
模糊逻辑介绍

模糊逻辑介绍

模糊逻辑扩展了我们的数理逻辑和集合论的界限。本文揭示了模糊逻辑的基本原理, 同时描述使用马丹尼型和关野型的两种推理系统。提供的例程将描述如何使用 MQL5 版本的模糊库来实现这两种类型的系统。
研究CCanvas类如何绘制透明的图形对象
研究CCanvas类如何绘制透明的图形对象

研究CCanvas类如何绘制透明的图形对象

你是不是想要更加好看的移动平均线?你想要在终端中绘制更加漂亮的而不是简单的实心矩形吗?终端中能够绘制出更有吸引力的图形。这可以通过CCanvas类来实现,该类用于创建自定义图形对象。用这个类你能够实现透明化,混合色以及通过重叠和混合颜色产生透明的效果。
使用面向对象的方法来编写EA的模式
使用面向对象的方法来编写EA的模式

使用面向对象的方法来编写EA的模式

本文介绍一种使用MQL5语言来编写多模式自动交易程序的方法。每一种模式都使用面向对象的方法来实现。不仅给出不同模式下类的层次结构,还给出用于测试的类的实例。多模式自动交易程序以MQL5语言实现,它应该考虑EA的每一种执行模式。创建用于确定EA模式的函数和枚举值。
MQL5 秘籍之:OCO订单
MQL5 秘籍之:OCO订单

MQL5 秘籍之:OCO订单

任何交易者的交易活动都会包含各种交易机制和内在联系,包括订单之间的关系。本文提出一种处理OCO订单的解决方案。将广泛采用标准类库来实现,同时也会新建一些数据类型。
基于价格运动方向和速度的交易策略
基于价格运动方向和速度的交易策略

基于价格运动方向和速度的交易策略

本文提出一种基于价格运动方向和速度的分析方法。我们已经将此想法用MQL4语言实现了一个EA,来研究此策略的效果。我们也将通过测试、检验和优化本文的一个例子来确定最优的参数。
关于策略优化的一些简单想法
关于策略优化的一些简单想法

关于策略优化的一些简单想法

即使你借助MQL5的云计算网络来进行优化工作,仍就需要消耗大量的计算机资源。本文由我对MetaTrader 5策略测试器一些简单的改进想所法组成。这些想法来自于MQL社区的相关技术文档、论坛和文章。
MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展
MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展

MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展

本文描述 MQL5 标准库扩展, 可以使用 MQL5 向导接收来自包含模块的价格, 创建 EA, 下单, 止损和止盈。这种方法不会对模块的应用数量有任何额外的限制,亦不会在联合工作中导致冲突。
MQL5 Cookbook: 处理 BookEvent
MQL5 Cookbook: 处理 BookEvent

MQL5 Cookbook: 处理 BookEvent

本文研究 BookEvent - 一个市场深度事件,以及它的处理原理。一个处理市场深度状态的 MQL 程序,作为例程。它采用面向对象方法编写。处理结果作为面板显示在屏幕上,还有市场深度级别。
MQL5 编程基础: 终端的全局变量
MQL5 编程基础: 终端的全局变量

MQL5 编程基础: 终端的全局变量

本文重点介绍了面向对象的 MQL5 语言,用于创建对象,并与终端的全局变量协同工作。作为一个实际的例子,我考虑这样一种情况,以全局变量作为控制点实现程序分段。
为何在 MetaTrader 4 与 MetaTrader 5 上的虚拟托管优于一般的 VPS
为何在 MetaTrader 4 与 MetaTrader 5 上的虚拟托管优于一般的 VPS

为何在 MetaTrader 4 与 MetaTrader 5 上的虚拟托管优于一般的 VPS

虚拟托管云网络是专为 MetaTrader 4 和 MetaTrader 5 平台研发的,并拥有许多本地解决方案。获得我们的 24 小时免费服务 - 现在即可测试一台虚拟服务器。
MQL5 Cookbook - 以 MQL5 编写的多币种 EA,利用限价订单工作
MQL5 Cookbook - 以 MQL5 编写的多币种 EA,利用限价订单工作

MQL5 Cookbook - 以 MQL5 编写的多币种 EA,利用限价订单工作

这次,我们将要创建一款多币种 EA,交易算法基于限价订单 Buy Stop(高买) 和 Sell Stop(低卖)。本文讨论下列事项:在规定时间范围内进行交易,布置/修改/删除限价订单,检查最后一个持仓是否在止盈或止损位置平仓,以及在成交历史中控制每个品种。
MQL5 Cookbook: 处理自定义图表事件
MQL5 Cookbook: 处理自定义图表事件

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

本文研究在 MQL5 环境里设计和开发自定义图表事件的内容。一种事件分类的例程也可以在这里找到,当然,还有事件类,以及自定义事件处理器类的程序代码。
MQL5 Cookbook: 处理典型图表事件
MQL5 Cookbook: 处理典型图表事件

MQL5 Cookbook: 处理典型图表事件

本文研究典型图表事件,包括其处理例程。我们将专注于鼠标事件,按键,创建/修改/删除图形对象,鼠标点击图表上的图形对象,用鼠标移动图形对象,在文本域中完成文本编辑,以及在图表上修改事件。研究的每一类事件,都有一个 MQL5 程序例程。
MQL5 Cookbook: 处理 TradeTransaction 事件
MQL5 Cookbook: 处理 TradeTransaction 事件

MQL5 Cookbook: 处理 TradeTransaction 事件

本文从事件驱动编程的角度来考察 MQL5 语言的能力。这种方法的最大好处是,程序可以接收有关交易操作的分阶段实施信息。本文还包含一个使用 TradeTransaction 事件处理器的例子,来接收和处理正在进行的交易操作的动作信息。在我看来,这种方式可用于复制一个终端的交易到另一个终端。
如何准备迁移至虚拟主机的交易账户
如何准备迁移至虚拟主机的交易账户

如何准备迁移至虚拟主机的交易账户

MetaTrader 客户端完美支持自动交易策略。它有自动交易开发者所需的所有工具 ‒ 强劲的,基于 C++ 的 MQL4/MQL5 编程语言,便利的 MetaEditor 开发环境,以及支持在 MQL5 云网络中进行分布式计算的多线程策略测试器。在本文中, 您将发现如何将您的客户端连同所有定制元素一并移至虚拟环境。
构建三线突破图表指标
构建三线突破图表指标

构建三线突破图表指标

本文专门研究由 Steve Nison 在其著作 "Beyond Candlesticks(超越蜡烛条)" 中建议的三线突破图表。这个图表的最大优点是它可以过滤相对以前行情的小幅价格波动。我们将要讨论图表的原理,指标代码,以及基于此交易策略的一些示例。
市场上产品有效展示的小贴士
市场上产品有效展示的小贴士

市场上产品有效展示的小贴士

有效地向交易人出售程序,不仅需要编写一个高效有用的产品,然后还要在市场上发布。提供一份全面详尽的描述和高品质的插图至关重要。性能标识和正确的截图也与“真正的编码”同等重要。记住一个简单的公式:没有下载=没有销量。
SQL 与 MQL5: 与 SQLite 数据库集成
SQL 与 MQL5: 与 SQLite 数据库集成

SQL 与 MQL5: 与 SQLite 数据库集成

本文的目的,是那些打算在他们的项目中使用 SQL 的开发者。它解释了 SQLite 的功能和优势。本文不需要特别的 SQLite 函数知识, 当然对 SQL 的最小理解将是有益的。
用于 Renko 制图的指标
用于 Renko 制图的指标

用于 Renko 制图的指标

本篇举例描述一个用 MQL5 实现的 Renko 制图指标。这个指标的修改,将它从经典图表中区分开来。它在指标窗口或主窗口两者中都可以构建。此外,此处还有 ZigZag 指标。您可以找到一些图表实现的例子。
MQL5 Cookbook: 开发多品种指标分析价格偏离
MQL5 Cookbook: 开发多品种指标分析价格偏离

MQL5 Cookbook: 开发多品种指标分析价格偏离

在本篇中, 我们将研究开发一款多品种指标来分析指定时间周期内的价格偏离。其核心议题已经在之前的多货币对指标编程文章中进行过讨论 "MQL5 Cookbook: 用 MQL5 开发多品种波动指标"。所以这次,我们将仅关注那些有了大幅变化的新特征和功能。如果您是多货币对指标编程的新人, 我建议您先去阅读之前的文章。
为什么8月1日MetaTrader 4升级至最新版本很重要?
为什么8月1日MetaTrader 4升级至最新版本很重要?

为什么8月1日MetaTrader 4升级至最新版本很重要?

自2014年8月1日起,将不再支持低于build 600的MetaTrader 4桌面程序端。 然而,许多交易人仍然使用过时的版本而没有意识到更新平台的功能。我们在开发上做了很大的努力,愿陪伴交易人继续前进,而放弃之前的版本。在本篇文章中,我们描述了新版MetaTrader 4的优势。
Kagi 制图指标
Kagi 制图指标

Kagi 制图指标

文中介绍了 Kagi 图指标以及各种制图选项和其它函数,同时考虑了指标制图原则及其 MQL5 实现功能。本文还展示了最常见的实现方式,阴阳交易策略,偏离走势线并不断提高“肩”部/降低“腰”部。
创建多币种多系统 EA 交易
创建多币种多系统 EA 交易

创建多币种多系统 EA 交易

本文介绍了 EA 交易结构,它可实现多交易品种交易,并同时使用多个交易系统。如果你已经确认了所有 EA 交易的最佳输入参数,并分别得到很好的回溯测试结果,那么思考一下:如果结合自己的所有策略同时测试所有 EA,你会得到什么结果?
MQL5 细则手册:在 MQL5 中开发多交易品种波动指标
MQL5 细则手册:在 MQL5 中开发多交易品种波动指标

MQL5 细则手册:在 MQL5 中开发多交易品种波动指标

本文将探讨如何开发多交易品种波动指标。对于 MQL5 开发新手来说,开发多交易品种指标可能有些难度,本文将帮他们理清开发过程。开发多交易品种指标的主要问题:其它交易品种的数据与当前交易品种之间的同步;缺乏某些指标数据;以及确定既定时间表“真实”柱的起点。本文将密切关注以上所有问题。
MQL5 细则手册:指标子窗口控件 - 滚动条
MQL5 细则手册:指标子窗口控件 - 滚动条

MQL5 细则手册:指标子窗口控件 - 滚动条

让我们继续开发各种控件,这一次我们将注意力转向滚动条。正如前文“MQL5 细则手册:指标子窗口控件 - 按钮”一样,所有操作将在指标子窗口中执行。花一些时间阅读上面提到的文章,文中对在 OnChartEvent() 函数中处理事件提供了详细的说明,而这一点在本文中只是略有提及。为便于说明,这一次我们将为一个大列表创建一个垂直滚动条,该列表包含使用 MQL5 资源可以获得的所有金融工具属性。
MQL5 细则手册:指标子窗口控件 - 按钮
MQL5 细则手册:指标子窗口控件 - 按钮

MQL5 细则手册:指标子窗口控件 - 按钮

本文中,我们将探讨开发具备按钮控件的用户界面的示例。为向用户传递互动性理念,当光标悬停于按钮时,按钮颜色会发生改变。光标位于按钮之上时,按钮颜色将稍微变暗,点击时,按钮颜色则会变得明显更暗。此外,我们将为每一按钮添加工具提示,从而创建直观界面。
MQL5 细则手册:在单一窗口中监控多个时间表
MQL5 细则手册:在单一窗口中监控多个时间表

MQL5 细则手册:在单一窗口中监控多个时间表

在 MetaTrader 5 中,有 21 个时间表可供分析。您可以利用能置于现有图表上的特殊图表对象,并在相应位置设置交易品种、时间表及其他属性。文章将对此类图表图形对象进行详细介绍:我们将使用控件(按钮)创建指标,以便同时在子窗口中建立多个图表对象。此外,图表对象将准确置于子窗口中,并随主图表或终端窗口的大小调整自动进行校正。
MQL5 细则手册:MetaTrader 5 交易事件的声音通知
MQL5 细则手册:MetaTrader 5 交易事件的声音通知

MQL5 细则手册:MetaTrader 5 交易事件的声音通知

在本文中,我们将考虑在“EA 交易”的文件中包含声音文件、从而为交易事件添加声音通知的事宜。将包含文件的事实意味着声音文件将位于“EA 交易”的内部。因此,在向其他用户提供编译后的“EA 交易”版本 (*.ex5) 时,您无需再提供声音文件并说明它们应予以保存的位置。
扩展 MQL5 标准库和重用代码
扩展 MQL5 标准库和重用代码

扩展 MQL5 标准库和重用代码

作为一名开发人员,MQL5 标准库让您的工作变得更加容易。然而,它无法实现世界上所有开发人员的全部需求,所以,如果您觉得您需要更多的自定义程序,您可以对标准库进行进一步的扩展。本文指导您完成将 MetaQuotes 的峰谷技术指标集成至标准库。我们从 MetaQuotes 的设计理念获得启发以实现我们的目标。
通过有用的技术组合让您的 MQL5 客户惊叹!
通过有用的技术组合让您的 MQL5 客户惊叹!

通过有用的技术组合让您的 MQL5 客户惊叹!

得益于 MQL5 为编程人员提供的一套非常完整的函数集和面向对象 API,他们可以在 MetaTrader 环境中大展身手。然而,Web 技术如今是用途极为广泛的工具,可以在一些情形中提供帮助:当您需要完成一些非常具体的工作;希望用一些不同的东西给您的客户留下深刻印象;或仅仅是您没有足够的时间来掌握 MT5 标准库的特定部分。今天的练习引导您完成有关如何在创建令人惊叹的技术组合的同时,管理您的开发时间的实例。
MQL5 向导:如何教导 EA 以任意价格建立挂单
MQL5 向导:如何教导 EA 以任意价格建立挂单

MQL5 向导:如何教导 EA 以任意价格建立挂单

本文讲述允许您以距当前价格的任意距离设置挂单的功能实现的交易信号模块代码的修改方法:它可以是上一个柱的收盘价或开盘价,或者是移动平均线的值。有很多的选择。重要的是,您可以为挂单设置任意的开盘价。本文对于使用挂单交易的交易人员而言会有所帮助。
MQL5 编程基础:列表
MQL5 编程基础:列表

MQL5 编程基础:列表

用于交易策略开发的编程语言 MQL 的新版本 [MQL5] 与以前的版本 [MQL4] 相比,提供了更加强大和高效的功能。这些优势实质上是面向对象的编程功能。本文探讨对于复杂自定义数据类型的使用,例如节点和列表。它还在提供了在 MQL5 实战编程中使用列表的例子。
如何写好市场产品的描述
如何写好市场产品的描述

如何写好市场产品的描述

MQL5 市场有很多产品出售,但是某些产品的描述并不是很好。很多文字显然需要改进,因为普通交易者不能领会它们。本文将帮助您使产品给人留下好印象。采用我们的建议来撰写惹人注目的描述,轻易地向您的客户精确展示您的卖点。
如何向 MetaTrader 5 平台添加新的用户界面语言
如何向 MetaTrader 5 平台添加新的用户界面语言

如何向 MetaTrader 5 平台添加新的用户界面语言

MetaTrader 5 平台的用户界面被翻译成几种语言。如果您的母语不在支持的语言之中,请不用担心。您可以使用的特别的 MetaTrader 5 MultiLanguage Pack 工具轻松地完成翻译,这个工具由 MetaQuotes Software Corp. 提供,对所有用户都是免费的。在本文中,我们将介绍几个如何向 MetaTrader 5 平台添加新的用户界面语言的例子。
MQL5 代码自动生成文档
MQL5 代码自动生成文档

MQL5 代码自动生成文档

大多数 Java 代码编写者熟悉可通过 JavaDocs 创建的自动生成文档。其思路是以一种半结构化的方式向代码添加注释,然后可以将这些注释提取到易于导航的帮助文件。C++ 世界也有若干文档自动生成器,其中微软的 SandCastle 和 Doxygen 是两款领先产品。本文说明使用 Doxygen,从 MQL5 代码的结构化注释创建 HTML 帮助文件。试验非常成功,我认为 Doxygen 从 MQL5 代码生成的帮助文档会增加很多价值。
MQL4程序的常见错误以及如何避免它们
MQL4程序的常见错误以及如何避免它们

MQL4程序的常见错误以及如何避免它们

为了避免关键的程序完成,以前版本的编译器在运行环境中处理了许多错误。例如,除数为零或数组越界都是严重错误,并通常会导致程序崩溃。新的编译器可以检测实际或潜在的错误源并提高代码质量。在这篇文章中,我们讨论了旧程序编译过程中检测到的可能出现的错误,并看看如何解决这些问题。
另一个 MQL5 OOP 类
另一个 MQL5 OOP 类

另一个 MQL5 OOP 类

本文会从一种理论性交易概念的构想,到编制一个在经验世界中实现这一概念的 MQL5 EA 交易,为您讲解如何从头建立一个面向对象的 EA 交易。依本人看,边做边学是取得成功的一种可靠方法。所以,我会拿出一个实用的例子,让您明白如何才能整理自己的想法,并最终完成外汇自动交易代码。和您一起遵守“面向对象”原则,也是我的目标之一。
基于自定义指标的交易信号生成器
基于自定义指标的交易信号生成器

基于自定义指标的交易信号生成器

如何根据自定义指标创建一个交易信号生成器?如何创建自定义指标?如何访问自定义指标数据?我们为什么需要 IS_PATTERN_USAGE(0) 结构和模型 0?