MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
MQL5 对决 QLUA - 为什么在 MQL5 中交易操作速度快达 28 倍?
MQL5 对决 QLUA - 为什么在 MQL5 中交易操作速度快达 28 倍?

MQL5 对决 QLUA - 为什么在 MQL5 中交易操作速度快达 28 倍?

您可曾想过您的订单是如何迅速传递到交易所, 它的执行速度如何, 而您的终端需要多久才能收到操作结果?我们已经准备好一场交易操作执行速度的比对, 因为从未有人测量过使用 MQL5 和 QLUA 应用时的这些数值。
探索新功能:MQL5 的自定义指标
探索新功能:MQL5 的自定义指标

探索新功能:MQL5 的自定义指标

在这里,我无法一一列举新终端和新编程语言的所有新的可能性和功能。这数不胜数,而且部分创新点也需要以单独的章节来进行详细探讨。同样,本章节也不会出现以面向对象编程语言写就的代码。这部分内容十分重要,不能简单地附于其他内容之后作为补充优点呈现给开发人员。在本文中,我们将会探讨指标,以及相比 MQL4 指标的结构、图形、类型和编程细节。希望无论是初学者还是经验丰富的开发人员均能从本文中获益,也许部分读者还会有自己新的发现。
MQL5 Cookbook: 基于三重滤网策略开发交易系统框架
MQL5 Cookbook: 基于三重滤网策略开发交易系统框架

MQL5 Cookbook: 基于三重滤网策略开发交易系统框架

在本文中,我们将基于三重滤网(Triple Screen)策略,使用MQL5开发一个交易系统的框架。EA交易不会从头开始开发,我们会简单地修改前一篇文章, 即"MQL5 Cookbook: 在EA交易中使用指标设置交易条件"中的程序,它已经基本上满足了我们的目标。所以这篇文章也会向您展示如何简单地修改已经完成的程序的模式。
开发基于振荡器的之字折线 (ZigZag) 指标。 执行需求规范的示例
开发基于振荡器的之字折线 (ZigZag) 指标。 执行需求规范的示例

开发基于振荡器的之字折线 (ZigZag) 指标。 执行需求规范的示例

本文根据《订购指标时如何准备需求规范》一文中描述的规范样本之一展示之字折线 (ZigZag) 指标的开发。 该指标利用振荡器所定义的极值来构建。 它能够采用五种振荡器之一: WPR,CCI,Chaikin,RSI 或 Stochastic 振荡器。
MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展
MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展

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

本文描述 MQL5 标准库扩展, 可以使用 MQL5 向导接收来自包含模块的价格, 创建 EA, 下单, 止损和止盈。这种方法不会对模块的应用数量有任何额外的限制,亦不会在联合工作中导致冲突。
图形界面 V: 列表视图元件 (第二章)
图形界面 V: 列表视图元件 (第二章)

图形界面 V: 列表视图元件 (第二章)

在前一章中,我们开发了用于创建垂直和水平滚动条的类。在本章中,我们将应用它们,我们将开发一个用于创建列表视图元件的类,它的一个组成部分将是一个垂直滚动条。
EA 遥控方法
EA 遥控方法

EA 遥控方法

交易机器人的主要优势在于能够在远程 VPS 服务器上每天 24 小时不间断工作。 但有时候有必要干预它们的工作,而此刻可能无法直接访问服务器。 是否可以遥控管理 EA? 本文提出了一种通过外部命令控制 EA 的选项。
包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)
包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)

包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)

这是展示开发用于人工交易的多交易品种信号 EA 文章的第二部分,我们已经创建了图形界面,现在是时候把它与程序功能相关联了。
轻松快捷开发 MetaTrader 程序的函数库(第八部分):订单和持仓修改事件
轻松快捷开发 MetaTrader 程序的函数库(第八部分):订单和持仓修改事件

轻松快捷开发 MetaTrader 程序的函数库(第八部分):订单和持仓修改事件

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 在第七部分中,我们加入了 StopLimit 订单激活跟踪,以及准备了其它涉及订单和持仓事件的跟踪功能。 在本文中,我们将开发用于跟踪订单和持仓修改事件的类。
MQL5 中如何调用指标
MQL5 中如何调用指标

MQL5 中如何调用指标

推出新版本后,MQL 编程语言不仅提供处理那些已变更指标的方法,还提供如何创建指标的新途径。而且,您还具备了使用指标缓冲区的更多灵活性 - 现在,您可以指定目标索引方向,并可完全如您所愿地获取多个指标值。本文讲述的是调用指标的基本方法,以及通过指标缓冲区检索数据。
MagicNumber: 定单的“魔法“识别符
MagicNumber: 定单的“魔法“识别符

MagicNumber: 定单的“魔法“识别符

文章提及在相同 МТ 4 客户端内几个智能交易相互冲突的问题并且处理。 “教会”智能交易只管理自己的定单并且不修改和平仓 (手动开仓).文章希望能够给初期使用MQL 4终端和 程序的交易者带来益处。
关于技术分析和市场预测的方法
关于技术分析和市场预测的方法

关于技术分析和市场预测的方法

本文论证了一个具备视觉思维的著名数学方法的能力和潜力,并提供了一种“独特的”市场展望。 一方面,它有助于吸引广泛受众的注意力,因为它可以让具有创造性思维的人们重新审视交易模式本身。 另一方面,它可以引导人们进行与各种分析和预测工具相关的其他开发和程序代码实现。
使用 MetaTrader 4客户端初学者的常见错误
使用 MetaTrader 4客户端初学者的常见错误

使用 MetaTrader 4客户端初学者的常见错误

每个人都会发生错误:通过认知之后,频率或多或少。你们的疑问,我们来解答:终端时间,日志内的打印,测试结果,测试历史,历史输入,保证金, 交易,提示, 缩放, 计算错误,无效账户,无新闻,价格变化,资金不足,市场关闭。
MQL5 编程基础: 终端中的全局变量
MQL5 编程基础: 终端中的全局变量

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

终端中的全局变量为开发复杂而可靠的EA交易提供了一种方便的工具,如果您掌握了全局变量,您就会发现在使用MQL5开发EA交易的时候它们是必不可少的。
Elder-Ray (多头力度和空头力度)
Elder-Ray (多头力度和空头力度)

Elder-Ray (多头力度和空头力度)

本文详述了基于多头力度(Bulls Power),空头力度(Bears Power)和均线指标(EMA - 指数平均)的 Elder-Ray 交易系统。 Alexander Elder 在他的著作“为生活而交易”中描述了这个系统。
通用智能交易系统:事件模型和交易策略原型(第二章)
通用智能交易系统:事件模型和交易策略原型(第二章)

通用智能交易系统:事件模型和交易策略原型(第二章)

本文是通用智能交易模型系列文章的又一篇。这一部分详细介绍了基于数据集中处理的原始事件模型,并考虑了交易引擎CStrategy基类的结构。
图形界面 X: 标准图表控件 (集成编译 4)
图形界面 X: 标准图表控件 (集成编译 4)

图形界面 X: 标准图表控件 (集成编译 4)

这一次我们将研究标准图表控件。它可以创建具有同步水平滚动功能的子图表数组。此外, 我们将继续优化库代码以降低 CPU 负载。
交易机器人的原型
交易机器人的原型

交易机器人的原型

本文是对创建算法的原则以及交易系统的元素的总结和系统化。本文讨论EA 交易算法的设计。我们将以CExpertAdvisor类作为示例进行探讨,该类可用于轻松快捷地开发交易系统。
升级至MetaTrader 4 Build 600及更高版本
升级至MetaTrader 4 Build 600及更高版本

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

新版MetaTrader 4客户端的新版本拥有用户数据存储的更新结构。在早期版本中所有程序,模板,配置文件等都被直接存储在程序端的安装文件夹。现在,特定用户所需的所有必要的数据都存储在一个单独的称为数据文件夹的目录中。阅读文章来寻找常见问题的答案。
如何交换数据:10 分钟为 MQL5 创建 DLL
如何交换数据:10 分钟为 MQL5 创建 DLL

如何交换数据:10 分钟为 MQL5 创建 DLL

现在很多开发人员不知道如何编写简单的 DLL,而这是不同系统绑定的特殊特性。我将通过多个示例,展示在 10 分钟内创建简单 DLL 的整个过程,并讨论我们绑定实施的一些技术细节。我将给出 Visual Studio 中的 DLL 创建的分步过程,以及交换不同变量类型的示例(数字、数组、字符串等)。此外,我还将说明在自定义 DLL 中如何使您的客户端免于崩溃。
OpenCL:并行世界的桥梁
OpenCL:并行世界的桥梁

OpenCL:并行世界的桥梁

2012 年 1 月末,从事 MetaTrader 5 开发业务的软件开发公司宣布 MQL5 可向 OpenCL 提供原生支持。本文通过一个示例说明了 MQL5 环境下 OpenCL 的编程基础知识,并列举了几个示例,讲述了为提高运行速度所做的朴素优化。
图形界面III:简单与多功能按钮(第一章)
图形界面III:简单与多功能按钮(第一章)

图形界面III:简单与多功能按钮(第一章)

让我们探讨按钮控件。我们将讨论几个用于创建简单按钮,扩展功能按钮(图标按钮和分割按钮)以及关联按钮(按钮组和单选按钮)的类的实例。另外,我们还将在已有的类中增加一些内容以扩展它们的功能。
使用 MQL5 绘制阻力和支撑级别
使用 MQL5 绘制阻力和支撑级别

使用 MQL5 绘制阻力和支撑级别

本文介绍一种查找四个极点并在此基础上绘制支撑和阻力级别的方法。为了在当前货币对的图表上查找极点, 使用 RSI 指标。作为例子, 我们提供了一款指标的代码显示支撑和阻力级别。
如何在另一指标的基础上编写一个指标
如何在另一指标的基础上编写一个指标

如何在另一指标的基础上编写一个指标

在 MQL5 中,您既可以从头编写一个指标,亦可根据客户端内置或自定义的另一现有指标来创建。而在这里,您也有两种方式 - 通过向其添加新的计算和图形风格来改善某个指标,或是通过 iCustom() 或 IndicatorCreate() 函数使用客户端内置或自定义的某个指标。
直方图形式的统计分布, 无需指标缓冲区和数组
直方图形式的统计分布, 无需指标缓冲区和数组

直方图形式的统计分布, 无需指标缓冲区和数组

本文讨论当绘制市场条件的统计分布直方图时利用图形存储器的可能性, 而无需指标缓冲区和数组。描述了样本直方图的细节, 并展示了 MQL5 图形对象的 "隐藏" 功能。
MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标
MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标

MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标

在滑动窗口中执行计算时, 环形缓存是排布数据最简单和最有效的方式。本文描述其算法, 并展示它如何简化滑动窗口中的计算, 以令其更有效率。
价格直方图(市场概况)及其在 MQL5 中的实施
价格直方图(市场概况)及其在 MQL5 中的实施

价格直方图(市场概况)及其在 MQL5 中的实施

“市场概况”由真正才华横溢的思想家 Peter Steidlmayer 所提出。他建议使用有关“水平”和“垂直”市场动态信息的替代表示法,从而给出一套完全不同的模型。他认为存在市场深层次的摆动或称之为平衡和失衡周期的基本模式。在本文中,我将会探讨价格直方图(市场概况的一种简化模型)以及它在 MQL5 中的实施。
创建多币种多系统 EA 交易
创建多币种多系统 EA 交易

创建多币种多系统 EA 交易

本文介绍了 EA 交易结构,它可实现多交易品种交易,并同时使用多个交易系统。如果你已经确认了所有 EA 交易的最佳输入参数,并分别得到很好的回溯测试结果,那么思考一下:如果结合自己的所有策略同时测试所有 EA,你会得到什么结果?
交易员生存诀窍: 若干测试的比较报告
交易员生存诀窍: 若干测试的比较报告

交易员生存诀窍: 若干测试的比较报告

本文应对在四种不同的金融工具上同时启动智能交易系统测试。四个测试报告的最终比较在表格中提供, 类似于在线商店中陈列商品。附送礼包是为每个品种自动创建分布图表。
图形界面 I:控件构成(第二章)
图形界面 I:控件构成(第二章)

图形界面 I:控件构成(第二章)

在本文中我们将创建第一个图形界面的主元素 — 控件的一个窗体。多个控件可以以任何组合被附加到此窗体的任何地方。
preview
神经网络在交易中的实际应用。 是时候进行实践了

神经网络在交易中的实际应用。 是时候进行实践了

本文提供了在 Matlab 平台上实际运用神经网络模块的讲述和指南。 它还涵盖了运用神经网络模块创建交易系统的主要方面。 为了能够在一篇文章中厘清复杂内容,我必须对其进行修改,从而在一个程序中组合若干个神经网络模块函数。
ZigZag (之字折线) 的力量(第二部分)。 接收、处理和显示数据的示例
ZigZag (之字折线) 的力量(第二部分)。 接收、处理和显示数据的示例

ZigZag (之字折线) 的力量(第二部分)。 接收、处理和显示数据的示例

在本文的第一部分当中,我曾描述过一个修订的 ZigZag (之字折线) 指标和一个用于接收该类型指标数据的类。 在此,我将展示如何基于这些工具开发指标,并编写一款根据 ZigZag 指标形成的信号进行交易的 EA 来测试。 作为补充,本文将介绍一套开发图形用户界面的新版 EasyAndFast 函数库。
指标和信号盈利能力的可视化优化
指标和信号盈利能力的可视化优化

指标和信号盈利能力的可视化优化

本文是我的上一篇文章“指标和提醒的盈利能力的可视化测试”的延续和拓展。 通过在参数更改过程中添加一些交互性和修改研究对象,我成功地获得了一个新工具,此工具不仅仅显示基于所使用信号的预期交易结果,还允许通过移动在主图表中用作信号参数值控件的虚拟滑块,立即获得交易布局、余额图表和最终交易结果。
图形界面 VI: 复选框控件,编辑框控件以及它们的组合类型 (第一章)
图形界面 VI: 复选框控件,编辑框控件以及它们的组合类型 (第一章)

图形界面 VI: 复选框控件,编辑框控件以及它们的组合类型 (第一章)

本文是在MetaTrader终端图形界面开发库系列中第六部分的开端,在第一章中,我们将讨论复选框控件,编辑框控件以及它们的组合类型。
一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案
一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案

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

本文说明如何使用命名管道在 MetaTrader 5 客户端之间实施进程间通信。为使用命名管道而开发了 CNamedPipes 类。为了测试其使用以及测量连接吞吐能力,提供了价格变动指标、服务器和客户端脚本。命名管道的使用足以应对实时报价。
New Bar (新柱)事件处理程序
New Bar (新柱)事件处理程序

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

MQL5 编程语言处理问题的能力已达到一个全新的水平。即便是那些已有此类解决方案的任务,也因为面向对象编程而进阶到一个更高的水平。本文中,我们会举一个检查图表中新柱的特别简单的例子,而且,它已经转化成为一种相当强大且用途多样的工具。什么工具?到文中找答案吧。
轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件
轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件

轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 我们已拥有历史订单和成交集合,在场订单和仓位的集合,以及便捷选择和订单排序的类。 在这一部分中,我们将继续开发基础对象,并教导引擎(Engine)函数库跟踪帐户上的交易事件。
图形界面 V: 组合框控件 (第三章)
图形界面 V: 组合框控件 (第三章)

图形界面 V: 组合框控件 (第三章)

在本系列第五部分的前两章中,我们开发了用于创建滚动条和列表视图的类,在本章中,我们将讨论创建组合框(combobox)控件的类,这也是一个组合控件,包含了第五部分前面章节中讨论的一些元件。
EA 交易中的限制和验证
EA 交易中的限制和验证

EA 交易中的限制和验证

是否可以在周一交易此交易品种?是否有足够的资金用于开仓?如果止损触发,损失有多大?如何限制挂单数量?交易操作在当前柱上执行还是在前一柱上执行?如果交易机器人无法执行此类验证,则任何交易策略可转为带来损失。本文说明在EA交易中有用的验证示例。
具有最小延迟的有效平均算法: 在指标和 Expert Advisor 中使用
具有最小延迟的有效平均算法: 在指标和 Expert Advisor 中使用

具有最小延迟的有效平均算法: 在指标和 Expert Advisor 中使用

本文介绍笔者开发的更高质量的自定义平均函数: JJMASeries()、JurXSeries()、JLiteSeries()、ParMASeries()、LRMASeries()、T3Series() 和 MASeries()。 作者考虑在指标中使用 SmoothXSeries() 函数的调用进行上述函数的热替换。