MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
种群优化算法:人工蜂群(ABC)

种群优化算法:人工蜂群(ABC)

在本文中,我们将研究人工蜂群的算法,并用研究函数空间得到的新原理来补充我们的知识库。 在本文中,我将陈列我对经典算法版本的解释。
MetaEditor:模板作为支点
MetaEditor:模板作为支点

MetaEditor:模板作为支点

可一次性为 EA 编写完成所有准备工作并且这些准备工作可供以后持续使用,这对我们很多读者而言可能还有点陌生。
DoEasy 函数库中的图形(第七十七部分):阴影对象类
DoEasy 函数库中的图形(第七十七部分):阴影对象类

DoEasy 函数库中的图形(第七十七部分):阴影对象类

在本文中,我将为阴影对象创建一个单独类,它是图形元素对象的衍生后代,并加入渐变填充对象背景的功能。
preview
从基础到中级:结构(二)

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

在本文中,我们将尝试理解为什么像 MQL5 这样的编程语言有结构,为什么在某些情况下,结构是在函数和过程之间传递值的理想方式,而在其他情况下,它们可能不是最好的方式。
preview
MetaTrader 中的多机器人:从单图表中启动多个机器人

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

在本文中,我将研究一个简单的模板,用来创建通用的 MetaTrader 机器人,该机器人可以在多个图表上使用,同时仅附加到一个图表,无需在每个单独的图表上为每个机器人实例进行配置。
preview
在一张图表上的多个指标(第 02 部分):首次实验

在一张图表上的多个指标(第 02 部分):首次实验

在前一篇文章“在一张图表上的多个指标”中,我介绍了如何在一张图表上加载多个指标的概念和基本知识。 在本文中,我将提供源代码,并对其进行详解。
DoEasy 函数库中的时间序列(第六十一部分):品种即时报价序列集合
DoEasy 函数库中的时间序列(第六十一部分):品种即时报价序列集合

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

鉴于程序在其运行时可能会用到不同的品种,因此应为每个品种创建一个单独的列表。 在本文中,我将把这些列表合并到一个即时报价数据集合。 实际上,这将是一个常规列表,基于指向标准库 CObject 类及其衍生类实例指针的动态数组。
preview
从头开始开发智能交易系统(第 25 部分):提供系统健壮性(II)

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

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

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

本文中的多货币智能系统是一款智能交易系统或交易机器人,它利用两条 RSI 指标线的交叉,即与慢速 RSI 与快速 RSI 两线相交。
preview
DoEasy. 控件 (第 1 部分): 第一步

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

本文开始延展话题,介绍如何利用 MQL5 仿照 Windows 窗体样式创建控件。 我感兴趣的第一个对象是创建面板(panel)类。 若是没有控件,那么管理就会变得越来越困难。 因此,我将仿照 Windows 窗体样式创建所有可能的控件。
技术分析: 使不可能成为可能!
技术分析: 使不可能成为可能!

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

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

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

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

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

本文深入探讨统计方法在市场中的广泛机会。遗憾的是,交易新手故意不应用非常强大的统计学。同时,这又是他们在分析市场时潜意识使用的唯一工具。此外,统计可以为很多问题给出回答。
DoEasy 函数库中的时间序列(第三十六部分):所有用到的品种周期的时间序列对象
DoEasy 函数库中的时间序列(第三十六部分):所有用到的品种周期的时间序列对象

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

在本文中我们将探讨,把每个用到的品种周期的柱形对象列表合并到单一品种时间序列对象之中。 因此,每个品种均含一个对象,存储所有已用到品种时间序列周期的列表。
怎样使用崩溃记录来调试您的动态链接库(DLL)
怎样使用崩溃记录来调试您的动态链接库(DLL)

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

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

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

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

金融证券的叠加和干扰

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

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

我们的订单系统有一项任务仍然尚未完成,但我们终将把它搞定。 MetaTrader 5 提供了一个允许创建和更正订单参数值的单据系统。 该思路是拥有一个智能系统,可令相同的票据系统更快、更高效。
DoEasy 库中的其他类(第六十八部分):图表窗口对象类和图表窗口中的指标对象类
DoEasy 库中的其他类(第六十八部分):图表窗口对象类和图表窗口中的指标对象类

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

在本文中,我将继续开发图表对象类。 我将添加含有可用指标列表的图表窗口对象列表。
preview
在 MQL5 中使用 AutoIt

在 MQL5 中使用 AutoIt

简述。 在本文中,我们将探索采用 MetraTrader 5 终端里以集成的 MQL5 编写 AutoIt 脚本。 在其中,我们将覆盖如何操纵终端的用户界面来自动完成各种任务,并介绍一个采用 AutoItX 库的类。
将指标代码转移至 Expert Advisor 代码。指标结构
将指标代码转移至 Expert Advisor 代码。指标结构

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

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

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

在本文中,我将着手改进指标缓冲区对象和集合类,从而可在多周期和多品种模式下操作。 我打算在当前品种图表上的任何时间帧内接收和显示数据缓冲区对象的操作。
preview
制作仪表板以显示指标和EA中的数据

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

在本文中,我们将创建一个用于指标和EA的仪表板类。这是一个小系列文章中的介绍性文章,其中包含模板以在EA交易中包含和使用标准指标。我将首先创建一个类似于MetaTrader 5数据窗口的面板。
将指标代码转移至 Expert Advisor 代码。总结
将指标代码转移至 Expert Advisor 代码。总结

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

这是最后一篇文章,专门讨论如何将指标代码转移到 Expert Advisor 代码中。作者在这里针对一个特定示例转换 Expert Advisor 的代码,以便在不调用自定义指标的情况下在单个文件中呈现此 EA。
DoEasy 函数库中的其他类(第六十六部分):MQL5.com 信号集合类
DoEasy 函数库中的其他类(第六十六部分):MQL5.com 信号集合类

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

在本文中,我将针对 MQL5.com 信号服务创建信号集合类,拥有能够管理信号的函数。 此外,我将改进“市场深度”快照对象类,来显示 DOM 的总买卖量。
preview
在一张图表上的多个指标(第 03 部分):为用户开发定义

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

今天,我们将首次更新指标系统的功能。 在“一张图表上的多个指标”的前一篇文章中,我们研究了允许在图表子窗口中加载多个指标的基本代码。 但其所代表的只是一个更大系统的起点。
DoEasy 函数库中的价格(第六十四部分):市场深度,DOM 快照类和快照序列对象
DoEasy 函数库中的价格(第六十四部分):市场深度,DOM 快照类和快照序列对象

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

在本文中,我将创建两个类(DOM 快照对象类,和 DOM 快照序列对象类),并测试 DOM 数据序列的创建。
preview
从新手到专家:支撑与阻力强度指标(SRSI)

从新手到专家:支撑与阻力强度指标(SRSI)

在本文中,我们将分享如何利用MQL5编程来精准定位市场关键价位——区分价格水平中的弱势与强势区域。我们将完整开发一个可用的支撑与阻力强度指标(SRSI)。
preview
种群优化算法:杜鹃优化算法(COA)

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

我将研究的下一个算法是 Levy 飞行正在使用的杜鹃搜索优化。 这是最新的优化算法之一,也是排行榜的新领导者。
DoEasy 函数库中的图形(第七十三部分):图形元素的交互窗对象
DoEasy 函数库中的图形(第七十三部分):图形元素的交互窗对象

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

这篇文章开辟了函数库一个新的操控图形的大章节。 在本文中,我将创建鼠标状态对象、所有图形元素的基准对象、以及函数库图形元素的交互窗对象类。
非交易 EA 的测试指标
非交易 EA 的测试指标

非交易 EA 的测试指标

全部指标可以分为两组:静态指标(一旦显示后始终保持不变,不随新报价变化)和动态指标(仅显示当前时刻的状态,新价格出现时要完全重新绘制)。静态指标的效力在图表上直接可见。但如何检验动态指标的有效性呢?这是本文要探讨的问题。
preview
交易者基于角度的操作

交易者基于角度的操作

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

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

在本文中,我将重修上一篇文章中构建的图形对象概念,并准备由标准库 CCanvas 类提供强力支持的函数库所有图形对象的基类。
preview
神经网络变得轻松(第十四部分):数据聚类

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

我的上一篇文章已经发表一年多了。 这令我有了大量时间考虑修改思路和发展新方法。 在这篇新文章中,我想转移一下以前使用的监督学习方法。 这次我们将深入研究无监督学习算法。 特别是,我们将考虑一种聚类算法 — k-均值。
preview
用于在EA交易中包含指标的现成模板(第一部分):振荡指标

用于在EA交易中包含指标的现成模板(第一部分):振荡指标

本文从振荡指标类开始研究标准指标,我们将创建现成的模板,用于EA中——声明和设置参数、指标初始化和去初始化,以及从EA中的指标缓冲区接收数据和信号。
DoEasy 函数库中的价格(第六十五部分):市场深度集合并操控 MQL5.com 信号的类
DoEasy 函数库中的价格(第六十五部分):市场深度集合并操控 MQL5.com 信号的类

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

在本文中,我将创建所有品种的市场深度集合类,并着手开发创建信号对象类来操控 MQL5.com 信号服务的功能。
preview
利用回归衡量度评估 ONNX 模型

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

回归是一项依据未标记样本预测真实数值的任务。 所谓的回归衡量度则是用来评估回归模型的预测准确性。
preview
时间序列的频域表示:功率谱

时间序列的频域表示:功率谱

在本文中,我们将讨论在频域中分析时间序列的相关方法。 构建预测模型时,强调检验时间序列功率谱的效用 在本文中,我们将讨论运用离散傅里叶变换(dft)在频域中分析时间序列获得的一些实用观点。
preview
DoEasy 函数库中的时间序列(第五十一部分):复合多周期、多品种标准指标

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

在本文中,会完成多周期、多品种标准指标对象的开发。 以 Ichimoku Kinko Hyo 标准指标为例,分析复合自定义指标的创建,该指标含有辅助绘制缓冲区,可在图表上显示数据。