MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
MetaTrader 中的多机器人:从单图表中启动多个机器人

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

在本文中,我将研究一个简单的模板,用来创建通用的 MetaTrader 机器人,该机器人可以在多个图表上使用,同时仅附加到一个图表,无需在每个单独的图表上为每个机器人实例进行配置。
DoEasy 函数库中的时间序列(第六十一部分):品种即时报价序列集合
DoEasy 函数库中的时间序列(第六十一部分):品种即时报价序列集合

DoEasy 函数库中的时间序列(第六十一部分):品种即时报价序列集合

鉴于程序在其运行时可能会用到不同的品种,因此应为每个品种创建一个单独的列表。 在本文中,我将把这些列表合并到一个即时报价数据集合。 实际上,这将是一个常规列表,基于指向标准库 CObject 类及其衍生类实例指针的动态数组。
preview
DoEasy. 控件 (第 1 部分): 第一步

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

本文开始延展话题,介绍如何利用 MQL5 仿照 Windows 窗体样式创建控件。 我感兴趣的第一个对象是创建面板(panel)类。 若是没有控件,那么管理就会变得越来越困难。 因此,我将仿照 Windows 窗体样式创建所有可能的控件。
preview
种群优化算法:灰狼优化器(GWO)

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

我们来研究一种最新的现代优化算法 — 灰狼优化。 测试函数的原始行为令该算法成为以前研究过的算法中最有趣的算法之一。 这是训练神经网络的顶级算法之一,具有许多变量的平滑函数。
MetaEditor:模板作为支点
MetaEditor:模板作为支点

MetaEditor:模板作为支点

可一次性为 EA 编写完成所有准备工作并且这些准备工作可供以后持续使用,这对我们很多读者而言可能还有点陌生。
preview
基于MQL5的订单剥头皮交易系统

基于MQL5的订单剥头皮交易系统

这款MetaTrader 5 EA实现了基于订单流的剥头皮交易策略,并配备了高级风险管理功能。它使用多种技术指标,通过订单的不平衡性来识别交易机会。回测结果显示该策略具有潜在的盈利能力,但同时也突显了需要进一步优化的必要性,尤其是在风险管理和交易结果比率方面。该策略适合经验丰富的交易者,但在实际部署之前,需要进行彻底的测试和深入理解。
技术分析: 使不可能成为可能!
技术分析: 使不可能成为可能!

技术分析: 使不可能成为可能!

本文回答了以下问题: 虽然备受质疑,为什么不可能会变为可能? 技术分析论证。
MQL5 Cookbook: 减少过度配合的影响以及处理报价缺失
MQL5 Cookbook: 减少过度配合的影响以及处理报价缺失

MQL5 Cookbook: 减少过度配合的影响以及处理报价缺失

无论您使用何种交易策略,总会有一个问题:怎样选择参数以保证未来的利润。本文提供了一个EA交易的实例,使您可以同时优化多个交易品种的参数,这种方法是未了减少参数的过度配合以及处理在研究中来自单个交易品种的数据不足的问题。
市场变动及其预测的统计分析
市场变动及其预测的统计分析

市场变动及其预测的统计分析

本文深入探讨统计方法在市场中的广泛机会。遗憾的是,交易新手故意不应用非常强大的统计学。同时,这又是他们在分析市场时潜意识使用的唯一工具。此外,统计可以为很多问题给出回答。
怎样使用崩溃记录来调试您的动态链接库(DLL)
怎样使用崩溃记录来调试您的动态链接库(DLL)

怎样使用崩溃记录来调试您的动态链接库(DLL)

在收到的用户崩溃记录中,有25%到30%是因为执行自定义动态链接库(DLL)中的输入函数而出的错.
为嘉盛开发群集指标的理论基础
为嘉盛开发群集指标的理论基础

为嘉盛开发群集指标的理论基础

群集指标是一系列将货币对分成独立的货币的指标。指标允许跟踪相对货币波动,确定形成新的货币趋势的潜能,接收交易信号,以及追踪中期和长期仓位。
金融证券的叠加和干扰
金融证券的叠加和干扰

金融证券的叠加和干扰

随着影响货币对行为受到更多因素影响,评估其行为和对未来进行预测将愈发困难。 因此,如果我们成功提取货币对的组成部分,随时间改变的国家货币值,通过和带有此货币以及影响其行为的多个因素的货币对相比较,我们便可以相当程度上界定国家货币移动的自由度。 因此我们可以提高对其行为评估和未来预测的精准度。 如何办到?
preview
从头开始开发智能交易系统(第 25 部分):提供系统健壮性(II)

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

在本文中,我们将朝着 EA 的性能迈出最后一步。 为此,请做好长时间阅读的准备。 为了令我们的智能交易系统可靠,我们首先从代码中删除不属于交易系统的所有内容。
preview
如何利用 MQL5 创建简单的多币种智能交易系统(第 6 部分):两条 RSI 指标相互交叉

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

本文中的多货币智能系统是一款智能交易系统或交易机器人,它利用两条 RSI 指标线的交叉,即与慢速 RSI 与快速 RSI 两线相交。
DoEasy 库中的其他类(第六十八部分):图表窗口对象类和图表窗口中的指标对象类
DoEasy 库中的其他类(第六十八部分):图表窗口对象类和图表窗口中的指标对象类

DoEasy 库中的其他类(第六十八部分):图表窗口对象类和图表窗口中的指标对象类

在本文中,我将继续开发图表对象类。 我将添加含有可用指标列表的图表窗口对象列表。
preview
从头开始开发智能交易系统(第 28 部分):面向未来((III)

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

我们的订单系统有一项任务仍然尚未完成,但我们终将把它搞定。 MetaTrader 5 提供了一个允许创建和更正订单参数值的单据系统。 该思路是拥有一个智能系统,可令相同的票据系统更快、更高效。
DoEasy 函数库中的时间序列(第三十六部分):所有用到的品种周期的时间序列对象
DoEasy 函数库中的时间序列(第三十六部分):所有用到的品种周期的时间序列对象

DoEasy 函数库中的时间序列(第三十六部分):所有用到的品种周期的时间序列对象

在本文中我们将探讨,把每个用到的品种周期的柱形对象列表合并到单一品种时间序列对象之中。 因此,每个品种均含一个对象,存储所有已用到品种时间序列周期的列表。
将指标代码转移至 Expert Advisor 代码。指标结构
将指标代码转移至 Expert Advisor 代码。指标结构

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

本文详细介绍将指标代码转移至 Expert Advisor 代码的方式,并详细介绍编写 Expert Advisor 的过程,在此过程中,不调用任何自定义指标,且整个程序代码用于计算 Expert Advisor 中的必要指标值。本文介绍了指标结构的总体方案、Expert Advisor 中指标缓冲区的模拟以及函数 IndicatorCounted() 的替代项。本文面向拥有使用 MQL4 语言进行编程的经验的读者。
将指标代码转移至 Expert Advisor 代码。总结
将指标代码转移至 Expert Advisor 代码。总结

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

这是最后一篇文章,专门讨论如何将指标代码转移到 Expert Advisor 代码中。作者在这里针对一个特定示例转换 Expert Advisor 的代码,以便在不调用自定义指标的情况下在单个文件中呈现此 EA。
preview
在 MQL5 中使用 AutoIt

在 MQL5 中使用 AutoIt

简述。 在本文中,我们将探索采用 MetraTrader 5 终端里以集成的 MQL5 编写 AutoIt 脚本。 在其中,我们将覆盖如何操纵终端的用户界面来自动完成各种任务,并介绍一个采用 AutoItX 库的类。
DoEasy 函数库中的其他类(第六十六部分):MQL5.com 信号集合类
DoEasy 函数库中的其他类(第六十六部分):MQL5.com 信号集合类

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

在本文中,我将针对 MQL5.com 信号服务创建信号集合类,拥有能够管理信号的函数。 此外,我将改进“市场深度”快照对象类,来显示 DOM 的总买卖量。
preview
从基础到中级:结构(二)

从基础到中级:结构(二)

在本文中,我们将尝试理解为什么像 MQL5 这样的编程语言有结构,为什么在某些情况下,结构是在函数和过程之间传递值的理想方式,而在其他情况下,它们可能不是最好的方式。
preview
在一张图表上的多个指标(第 03 部分):为用户开发定义

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

今天,我们将首次更新指标系统的功能。 在“一张图表上的多个指标”的前一篇文章中,我们研究了允许在图表子窗口中加载多个指标的基本代码。 但其所代表的只是一个更大系统的起点。
preview
重构MQL5中的经典策略(第三部分):富时100指数预测

重构MQL5中的经典策略(第三部分):富时100指数预测

在本系列文章中,我们将重新审视一些知名的交易策略,以探究是否可以利用AI来改进这些策略。在今天的文章中,我们将研究富时100指数,并尝试使用构成该指数的部分个股来预测该指数。
DoEasy 函数库中的时间序列(第四十五部分):多周期指标缓冲区
DoEasy 函数库中的时间序列(第四十五部分):多周期指标缓冲区

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

在本文中,我将着手改进指标缓冲区对象和集合类,从而可在多周期和多品种模式下操作。 我打算在当前品种图表上的任何时间帧内接收和显示数据缓冲区对象的操作。
preview
在 Linux 上利用 C++ 多线程支持开发 MetaTrader 5 概念验证 DLL

在 Linux 上利用 C++ 多线程支持开发 MetaTrader 5 概念验证 DLL

我们将开始探索如何仅基于 Linux 系统开发 MetaTrader 5 平台的步骤和工作流程,其中最终产品能在 Windows 和 Linux 系统上无缝运行。 我们将了解 Wine 和 Mingw;两者都是制作跨平台开发任务的基本工具。 特别是 Mingw 的线程实现(POSIX 和 Win32),我们在选择追随哪一个时需要仔细考虑。 然后,我们构建一个能在 MQL5 代码中所用的概念验证 DLL,最后比较两种线程实现的性能。 这一切都是为了您的基金能进一步扩张自己。 阅读本文后,您应该可以轻松地在 Linux 上构建 MT 相关工具。
非交易 EA 的测试指标
非交易 EA 的测试指标

非交易 EA 的测试指标

全部指标可以分为两组:静态指标(一旦显示后始终保持不变,不随新报价变化)和动态指标(仅显示当前时刻的状态,新价格出现时要完全重新绘制)。静态指标的效力在图表上直接可见。但如何检验动态指标的有效性呢?这是本文要探讨的问题。
DoEasy 函数库中的价格(第六十四部分):市场深度,DOM 快照类和快照序列对象
DoEasy 函数库中的价格(第六十四部分):市场深度,DOM 快照类和快照序列对象

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

在本文中,我将创建两个类(DOM 快照对象类,和 DOM 快照序列对象类),并测试 DOM 数据序列的创建。
DoEasy 函数库中的图形(第七十三部分):图形元素的交互窗对象
DoEasy 函数库中的图形(第七十三部分):图形元素的交互窗对象

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

这篇文章开辟了函数库一个新的操控图形的大章节。 在本文中,我将创建鼠标状态对象、所有图形元素的基准对象、以及函数库图形元素的交互窗对象类。
preview
制作仪表板以显示指标和EA中的数据

制作仪表板以显示指标和EA中的数据

在本文中,我们将创建一个用于指标和EA的仪表板类。这是一个小系列文章中的介绍性文章,其中包含模板以在EA交易中包含和使用标准指标。我将首先创建一个类似于MetaTrader 5数据窗口的面板。
preview
种群优化算法:杜鹃优化算法(COA)

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

我将研究的下一个算法是 Levy 飞行正在使用的杜鹃搜索优化。 这是最新的优化算法之一,也是排行榜的新领导者。
preview
交易者基于角度的操作

交易者基于角度的操作

本文将介绍基于角度的操作。我们将研究构建角度和在交易中使用角度的方法。
DoEasy 函数库中的图形(第七十四部分):由 CCanvas 类提供强力支持的基本图形元素
DoEasy 函数库中的图形(第七十四部分):由 CCanvas 类提供强力支持的基本图形元素

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

在本文中,我将重修上一篇文章中构建的图形对象概念,并准备由标准库 CCanvas 类提供强力支持的函数库所有图形对象的基类。
DoEasy 函数库中的价格(第六十五部分):市场深度集合并操控 MQL5.com 信号的类
DoEasy 函数库中的价格(第六十五部分):市场深度集合并操控 MQL5.com 信号的类

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

在本文中,我将创建所有品种的市场深度集合类,并着手开发创建信号对象类来操控 MQL5.com 信号服务的功能。
preview
神经网络变得轻松(第十四部分):数据聚类

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

我的上一篇文章已经发表一年多了。 这令我有了大量时间考虑修改思路和发展新方法。 在这篇新文章中,我想转移一下以前使用的监督学习方法。 这次我们将深入研究无监督学习算法。 特别是,我们将考虑一种聚类算法 — k-均值。
preview
DoEasy 函数库中的时间序列(第五十一部分):复合多周期、多品种标准指标

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

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

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

在本文中,我将完成图表对象类及其集合的操控。 我还将实现图表属性及其窗口变化的自动跟踪,以及把新参数保存到对象属性。 如此修订允许在未来实现整个图表集合的事件功能。
preview
利用回归衡量度评估 ONNX 模型

利用回归衡量度评估 ONNX 模型

回归是一项依据未标记样本预测真实数值的任务。 所谓的回归衡量度则是用来评估回归模型的预测准确性。
DoEasy 函数库中的图形(第七十六部分):会话窗对象和预定义的颜色主题
DoEasy 函数库中的图形(第七十六部分):会话窗对象和预定义的颜色主题

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

在本文中,我所述的概念将涵盖构建各种函数库 GUI 设计主题,创建会话窗对象,它是图形元素类对象的衍生后代,并为创建函数库图形对象的阴影准备数据,以及进一步开发功能。
使用 MQL4 的 HTML 引导
使用 MQL4 的 HTML 引导

使用 MQL4 的 HTML 引导

HTML 是当今最广泛使用的文件类型之一。MetaTrader 4 客户终端允许你将语句、测试和优化报告保存为 .htm 文件。有时需要从这些位于 MQL4 程序的文件中获取信息。本文描述了如何从 HTML 获得标记结构和内容的一个形式。