MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
开发一款波段交易入场监控智能交易系统(EA)

开发一款波段交易入场监控智能交易系统(EA)

随着年末临近,长期交易者往往会回顾市场历史数据,分析市场行为与趋势,以期预测未来可能的走势。本文将探讨如何使用MQL5开发一款长期交易入场监控智能交易系统(EA)。该系统的开发旨在解决因手动交易和缺乏自动化监控系统而导致的长期交易机会错失问题。我们将以交易量最为活跃的货币对之一为例,有效制定策略并开发我们的解决方案。
preview
在MQL5中创建交易管理员面板(第二部分):增强响应性和快速消息传递

在MQL5中创建交易管理员面板(第二部分):增强响应性和快速消息传递

在本文中,我们将增强之前创建过的管理面板的响应性。此外,我们还将探讨在交易信号背景下快速消息传递的重要性。
preview
细菌趋化优化(BCO)

细菌趋化优化(BCO)

本文介绍了细菌趋化优化(Bacterial Chemotaxis Optimization,简称 BCO)算法的原始版本及其改进版本。我们将详细探讨所有不同之处,特别关注 BCOm 的新版本,该版本简化了细菌的移动机制,减少了对位置历史的依赖,并且使用了比原始版本计算量更小的数学方法。我们还将进行测试并总结结果。
preview
Connexus中的正文(第四部分):添加HTTP请求正文

Connexus中的正文(第四部分):添加HTTP请求正文

在本文中,我们探讨了HTTP请求中的正文概念,这对于发送诸如JSON和纯文本之类的数据至关重要。我们讨论并解释了如何正确地使用正文,并结合适当的头部信息。此外,我们还介绍了Connexus库中的ChttpBody类,它将简化对请求正文的处理。
preview
让新闻交易轻松上手(第二部分):风险管理

让新闻交易轻松上手(第二部分):风险管理

在本文,我们将把继承引入到我们之前的代码和新代码中。我们将引入一种新的数据库设计以提高效率。此外,还将创建一个风险管理类来处理容量计算。
preview
在MQL5中创建交易管理员面板(第八部分):分析面板

在MQL5中创建交易管理员面板(第八部分):分析面板

今天,我们将深入探讨如何在管理员面板EA的一个集成专用窗口中,加入有用的交易指标。本次讨论的重点是使用MQL5实现一个分析面板,并强调其所提供数据对交易管理员的价值。其影响主要体现在教学意义上,因为整个开发过程能提炼出宝贵的经验教训,使新手和经验丰富的开发者都能从中受益。此功能展示了我们开发的系列工具在为交易经理配备先进软件工具方面所提供的无限可能。此外,作为对交易管理员面板能力的持续扩展,我们将探讨PieChart(饼图)和ChartCanvas(图表画布)类的实现。
preview
开发回放系统(第 66 部分):玩转服务(七)

开发回放系统(第 66 部分):玩转服务(七)

在本文中,我们将实现第一个解决方案,该解决方案使我们能够确定何时在图表上出现新的柱形。此解决方案适用于各种情况。了解它的发展将有助于你掌握几个重要方面。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
神经网络变得简单(第 91 部分):频域预测(FreDF)

神经网络变得简单(第 91 部分):频域预测(FreDF)

我们继续探索时间序列在频域中的分析和预测。在本文中,我们将领略一种在频域中预测数据的新方法,它可被加到我们之前研究过的众多算法当中。
preview
开发回放系统(第 42 部分):图表交易项目(I)

开发回放系统(第 42 部分):图表交易项目(I)

我们来创建一些更有趣的东西。我不想毁掉惊喜,故此紧随本文以便更好地理解。自本系列开发回放/模拟器系统的最开始,我就一直说,我们的意图是按相同的方式使用 MetaTrader 5 平台,无论正在开发的系统中,亦或真实市场中。重点是要正确完成。没有人愿意在训练和学习时用一种工具,而在战斗时不得不换另一种工具。
preview
从基础到中级:数组和字符串(三)

从基础到中级:数组和字符串(三)

本文从两个方面进行探讨。首先,标准库如何将二进制值转换为其他表示形式,如八进制、十进制和十六进制。其次,我们将讨论如何使用我们已经获得的知识,根据秘密短语确定密码的宽度。
preview
开发回放系统(第 72 部分):异常通信(一)

开发回放系统(第 72 部分):异常通信(一)

我们今天创造的东西将很难理解。因此,在这篇文章中,我将只谈论初始阶段。请仔细阅读这篇文章,这是我们继续下一步的重要前提。本材料的目的纯粹是教学性的,因为我们只会学习和掌握所提出的概念,而没有实际应用。
preview
开发回放系统(第 62 部分):玩转服务(三)

开发回放系统(第 62 部分):玩转服务(三)

在本文中,我们将开始解决在使用真实数据时可能影响应用程序性能的分时报价过量问题。这种过量通常会干扰在相应窗口构建一分钟柱形所需的正确时间。
preview
人工协作搜索算法 (ACS)

人工协作搜索算法 (ACS)

人工协作搜索算法ACS (Artificial Cooperative Search) 是一种创新方法,它利用二进制矩阵和基于互利共生与合作的多个动态种群来快速准确地找到最优解。ACS在捕食者与猎物问题上的独特处理方法使其能够在数值优化问题中取得卓越成果。
preview
开发回放系统(第 65 部分):玩转服务(六)

开发回放系统(第 65 部分):玩转服务(六)

在本文中,我们将研究如何在与回放/模拟应用程序结合使用时实现和解决鼠标指针问题。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
开发回放系统(第 50 部分):事情变得复杂 (二)

开发回放系统(第 50 部分):事情变得复杂 (二)

我们将解决图表 ID 问题,同时开始为用户提供使用个人模板对所需资产进行分析和模拟的能力。此处提供的材料仅用于教学目的,不应被视为除学习和掌握所提供概念以外的任何目的的应用。
preview
市场轮廓指标 (第二部分):基于画布的优化与渲染

市场轮廓指标 (第二部分):基于画布的优化与渲染

本文探讨了一种优化后的市场轮廓指标,该版本用基于 CCanvas 类对象(即画布)的渲染,取代了原先使用多个图形对象进行渲染的方式。
preview
开发回放系统(第 67 部分):完善控制指标

开发回放系统(第 67 部分):完善控制指标

在本文中,我们将看看通过一点代码改进可以实现什么。这一改进旨在简化我们的代码,更多地使用 MQL5 库调用,最重要的是,使其在我们未来可能开发的其他项目中更加稳定、安全和易于使用。
preview
开发回放系统(第 47 部分):Chart Trade 项目(六)

开发回放系统(第 47 部分):Chart Trade 项目(六)

最后,我们的 Chart Trade 指标开始与 EA 互动,以交互方式传输信息。因此,在本文中,我们将对该指标进行改进,使其功能足以与任何 EA 配合使用。这样,我们就可以访问 Chart Trade 指标,并像实际连接 EA 一样使用它。不过,我们将以比以前更有趣的方式来实现这一目标。
preview
Connexus客户端(第七部分):添加客户端层

Connexus客户端(第七部分):添加客户端层

在本文中,我们将继续开发connexus库。在本章节中,我们将构建CHttpClient类,该类负责发送请求并接收指令。我们还将介绍模拟对象(mocks)的概念,让该库与WebRequest函数解耦,从而为用户提供更强大的灵活性。
preview
开发回放系统(第 54 部分):第一个模块的诞生

开发回放系统(第 54 部分):第一个模块的诞生

在本文中,我们将探讨如何将多个真正功能模块中的第一个组合在一起,用于回放/模拟器系统,这些模块也将用于其他用途。我们现在说的是鼠标模块。
preview
群体算法的混合 -顺序结构和并行结构

群体算法的混合 -顺序结构和并行结构

在这里,我们将深入探讨优化算法混合的三个主要类型:策略混合、顺序混合和并行混合。我们将结合并测试相关的优化算法进行一系列实验。
preview
从基础到中级:按值传递还是按引用传递

从基础到中级:按值传递还是按引用传递

在本文中,我们将实际了解按值传递和按引用传递之间的区别。虽然这看起来很简单,很常见,不会造成任何问题,但许多经验丰富的程序员经常因为这个小细节而在处理代码时遇到真正的失败。知道何时、如何以及为什么使用按值传递或按引用传递将对我们作为程序员的生活产生巨大的影响。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
群体自适应矩估计(ADAM)优化算法

群体自适应矩估计(ADAM)优化算法

本文介绍了将广为人知且广受欢迎的ADAM梯度优化方法转变为群体算法的过程,并介绍了通过引入混合个体对其进行改进的方案。这种新方法能够利用概率分布创建融合了成功决策要素的智能体。关键创新点在于形成了群体混合个体,这些个体能够自适应地积累来自最具潜力解决方案的信息,从而提高了在复杂多维空间中的搜索效率。
preview
矩阵分解:更实用的建模

矩阵分解:更实用的建模

您可能没有注意到,矩阵建模有点奇怪,因为只指定了列,而不是行和列。在阅读执行矩阵分解的代码时,这看起来非常奇怪。如果您希望看到列出的行和列,那么在尝试分解时可能会感到困惑。此外,这种矩阵建模方法并不是最好的。这是因为当我们以这种方式对矩阵建模时,会遇到一些限制,迫使我们使用其他方法或函数,而如果以更合适的方式建模,这些方法或函数是不必要的。
preview
从零开始在MQL5中实现移动平均线:简单明了

从零开始在MQL5中实现移动平均线:简单明了

我们将通过简单的示例,探究移动平均线的计算原理,同时了解优化指标计算(包括移动平均线计算)的方法。
preview
从基础到中级:SWITCH 语句

从基础到中级:SWITCH 语句

在本文中,我们将学习如何以最简单、最基本的形式使用 SWITCH 语句。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
从基础到中级:变量(II)

从基础到中级:变量(II)

今天,我们将探讨如何使用静态变量。这个问题常常让许多程序员感到困惑,无论是初学者还是有一定经验的开发者,因为使用这一机制时需要遵循一些特定的建议。本文旨在为教学目的提供材料。在任何情况下,应用程序都应仅用于学习和掌握所介绍的概念。
preview
开发回放系统(第 64 部分):玩转服务(五)

开发回放系统(第 64 部分):玩转服务(五)

在本文中,我们将介绍如何修复代码中的两个错误。然而,我将尝试以一种有助于初学者程序员理解事情并不总是如你所愿的方式解释它们。无论如何,这是一个学习的机会。此处提供的内容仅用于教育目的。本应用程序不应被视为最终文件,其目的除了探讨所提出的概念之外,不应有任何其它用途。
preview
流动性攫取交易策略

流动性攫取交易策略

流动性攫取交易策略是智能资金概念(SMC)的核心组成部分,旨在识别并利用市场中机构投资者的操作行为。该策略聚焦于高流动性区域(如支撑位或阻力位),在这些区域,大额订单可引发价格波动,随后市场恢复原有趋势。本文将详细阐释流动性攫取的概念,并概述如何在MQL5中开发流动性攫取交易策略的智能交易系统(EA)。
preview
适应性社会行为优化(ASBO):两阶段演变

适应性社会行为优化(ASBO):两阶段演变

我们继续探讨生物体的社会行为及其对新数学模型 ASBO(适应性社会行为优化)开发的影响。我们将深入研究两阶段演变,测试算法并得出结论。正如在自然界中,一群生物体共同努力生存一样,ASBO 使用集体行为原理来解决复杂的优化问题。
preview
开发回放系统(第 55 部分):控制模块

开发回放系统(第 55 部分):控制模块

在本文中,我们将实现一个控制指标,以便它可以集成到我们正在开发的消息系统中。虽然这并不难,但关于这个模块的初始化,有一些细节需要了解。此处提供的材料仅用于教育目的。除了学习和掌握所示的概念外,绝不应将其视为任何目的的应用程序。
preview
从基础到中级:WHILE 和 DO WHILE 语句

从基础到中级:WHILE 和 DO WHILE 语句

在本文中,我们将对第一个循环语句进行实用且非常直观的介绍。尽管许多初学者在面对创建循环的任务时感到害怕,但知道如何正确安全地完成它只能通过经验和练习来实现。但谁知道呢,也许我可以通过向你展示在代码中使用循环时的主要问题和预防措施来减少你的麻烦和痛苦。
preview
迁移至 MQL5 Algo Forge(第 3 部分):在您自己的项目中使用外部仓库

迁移至 MQL5 Algo Forge(第 3 部分):在您自己的项目中使用外部仓库

让我们探索如何开始将 MQL5 Algo Forge 存储中任何仓库的外部代码集成到您自己的项目中。在本文中,我们最后转向这个有前景但更复杂的任务:如何在 MQL5 Algo Forge 中实际连接和使用来自第三方仓库的库。
preview
您应当知道的 MQL5 向导技术(第 18 部分):配合本征向量进行神经架构搜索

您应当知道的 MQL5 向导技术(第 18 部分):配合本征向量进行神经架构搜索

神经架构搜素,是一种判定理想神经网络设置的自动化方式,在面对许多选项和大型测试数据集时可能是一个加分项。我们试验了当本征向量搭配时,如何令这个过程更加高效。
preview
在任何市场中获得优势(第三部分):Visa消费指数

在任何市场中获得优势(第三部分):Visa消费指数

在大数据的世界里,有数以百万计的备选数据集,它们有可能提升我们的交易策略。在这一系列文章中,我们将帮助您识别最有信息量的公开数据集。
preview
从基础到中级:数组(二)

从基础到中级:数组(二)

在本文中,我们将了解动态数组和静态数组是什么。使用一个或另一个有区别吗?还是它们总是一样的?何时应该使用一种类型,何时应该使用另一种类型?那么常数数组呢?我们将尝试了解它们的设计目的,并考虑不初始化数组中所有值的风险。
preview
名义变量的序数编码

名义变量的序数编码

在本文中,我们将讨论并演示如何使用Python和MQL5将名义预测变量转换为适合机器学习算法的数值格式。
preview
从基础到中级:联合(二)

从基础到中级:联合(二)

今天我们有一篇非常有趣的文章。我们将研究联合并尝试解决之前讨论的问题。我们还将探讨在应用程序中使用联合时可能出现的一些不寻常的情况。此处提供的材料仅用于教学目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
构建MQL5自优化智能交易系统(第二部分):美元兑日元(USDJPY)剥头皮策略

构建MQL5自优化智能交易系统(第二部分):美元兑日元(USDJPY)剥头皮策略

今天我们齐聚一堂,挑战为美元兑日元(USDJPY)货币对打造一套全新交易策略。我们将基于日线图上的K线形态开发交易策略,因为日线级别的信号通常蕴含更强的市场动能。初始策略已实现盈利,这激励我们进一步优化策略,并增加风险控制层以保护已获利资本。
preview
在Python和MQL5中应用局部特征选择

在Python和MQL5中应用局部特征选择

本文探讨了Narges Armanfard等人在论文《数据分类的局部特征选择》中介绍的一种特征选择算法。该算法使用Python实现,用于构建二元分类器模型,这些模型可以与MetaTrader 5应用程序集成以进行推理。