MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
Connexus助手(第五部分):HTTP方法和状态码

Connexus助手(第五部分):HTTP方法和状态码

在本文中,我们将了解HTTP方法和状态码,这是网络上客户端与服务器之间通信的两个非常重要的部分。了解每种方法的作用,可以让您更精确地发出请求,告知服务器您想要执行的操作,从而提高效率。
preview
基于Python与MQL5的特征工程(第三部分):价格角度(2)——极坐标(Polar Coordinates)法

基于Python与MQL5的特征工程(第三部分):价格角度(2)——极坐标(Polar Coordinates)法

在本文中,我们将第二次尝试将任意市场的价格水平变化转化为对应的角度变化。此次,我们选择了比首次尝试更具数学复杂性的方法,而获得的结果表明,这一调整或许是正确的决策。今天,让我们共同探讨如何通过极坐标以有意义的方式计算价格水平变化所形成的角度,无论您分析的是何种市场。
preview
在 MQL5 中创建交易管理面板(第九部分):代码组织(三):通信模块

在 MQL5 中创建交易管理面板(第九部分):代码组织(三):通信模块

欢迎参与本次深度讨论,我们将揭示 MQL5 界面设计的最新进展,着重介绍重新设计的通信面板,并继续我们关于使用模块化原则构建新管理面板的系列文章。我们将逐步开发 CommunicationsDialog 类,并详细解释如何从 Dialog 类进行继承。此外,在我们的开发过程中,还将利用数组(arrays)和 ListView 类。获取可行的方案,以提升您的 MQL5 开发技能——请阅读本文,并在评论区加入讨论!
preview
从基础到中级:数组(一)

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

本文是迄今为止所讨论的内容与新的研究阶段之间的过渡。要理解这篇文章,您需要阅读前面的文章。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
在MQL5中创建交易管理员面板(第十一部分):现代化功能通信接口(1)

在MQL5中创建交易管理员面板(第十一部分):现代化功能通信接口(1)

今天,我们将聚焦于升级通信面板的消息交互界面,使其符合现代高性能通信应用的标准。这一改进将通过更新CommunicationsDialog类来实现。欢迎加入本文的探讨与讨论,我们将共同剖析关键要点,并规划使用MQL5推进界面编程的下一步方向。
preview
从基础到中级:运算符优先级

从基础到中级:运算符优先级

这绝对是纯理论上最难解释的问题。这就是为什么你需要练习我们在这里讨论的所有内容。虽然这起初看起来很简单,但操作符的话题只有在实践中结合不断的教育才能理解。
preview
精通日志记录(第五部分):通过缓存和轮转优化处理程序

精通日志记录(第五部分):通过缓存和轮转优化处理程序

本文通过为处理器添加格式化器、引入用于管理执行周期的 CIntervalWatcher 类、以及采用缓存和文件轮转进行优化,并辅以性能测试和实际示例,从而改进了该日志库。通过这些改进,我们确保了一个高效、可扩展且能适应不同开发场景的日志系统。
preview
从基础到中级:模板和类型名称(二)

从基础到中级:模板和类型名称(二)

本文解释了如何处理您可能遇到的最困难的编程情况之一:在同一个函数或过程模板中使用不同的类型。尽管我们大部分时间只关注函数,但这里介绍的所有内容都是有用的,并且可以应用于过程。
preview
从基础到中级:递归

从基础到中级:递归

在本文中,我们将探讨一个非常有趣且颇具挑战性的编程概念,尽管应该非常谨慎地对待它,因为它的误用或误解会将相对简单的程序变成不必要的复杂程序。但是,当正确使用并完全适应同样合适的情况时,递归成为解决问题的绝佳盟友,否则这些问题会更加费力和耗时。此处提供的材料仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
集成学习模型中的门控机制

集成学习模型中的门控机制

在本文中,我们继续探讨集成模型,重点讨论“门控”的概念,尤其是门控如何通过整合模型输出来提升预测准确性或模型泛化能力。
preview
通过原始代码优化和调整来改进回测结果

通过原始代码优化和调整来改进回测结果

通过优化逻辑、细化计算和减少执行时间来提高回测精度,从而增强 MQL5 代码。微调参数,优化循环,消除低效,以获得更好的性能。
preview
从基础到中级:数组和字符串(二)

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

在本文中,我将展示,尽管我们仍处于编程的一个非常基本的阶段,但我们已经可以实现一些有趣的应用程序。在这种情况下,我们将创建一个相当简单的密码生成器。通过这种方式,我们将能够应用到目前为止已经解释过的一些概念。此外,我们将研究如何为一些具体问题制定解决方案。
preview
从基础到中级:模板和类型名称(三)

从基础到中级:模板和类型名称(三)

在本文中,我们将讨论该主题的第一部分,这对初学者来说并不容易理解。为了避免更加困惑并正确解释这个话题,我们将把解释分为几个阶段。我们将把这篇文章用于第一阶段。然而,尽管在本文末尾,我们似乎已经陷入僵局,但事实上,我们将朝着另一种情况迈出一步,这将在下一篇文章中得到更好的理解。
preview
从新手到专家:使用 MQL5 制作动画新闻标题(二)

从新手到专家:使用 MQL5 制作动画新闻标题(二)

今天,我们又向前迈进了一步,整合了一个外部新闻 API 作为我们的 News Headline EA 的头条新闻来源。在这个阶段,我们将探索各种新闻来源 —— 包括成熟的和新兴的 —— 并学习如何有效地访问它们的 API。我们还将介绍如何将检索到的数据解析成适合在我们的 EA 交易中显示的格式。加入讨论,我们将探索直接在图表上访问新闻标题和经济日历的好处,所有这些都在一个紧凑、不干扰用户的界面中。
preview
在训练中激活神经元的函数:快速收敛的关键?

在训练中激活神经元的函数:快速收敛的关键?

本文研究了在神经网络训练背景下,不同激活函数与优化算法之间的相互作用。我们特别关注了经典的 ADAM 算法及其种群版本在处理多种激活函数(包括振荡的 ACON 和 Snake 函数)时的表现。通过使用一个极简的 MLP (1-1-1) 架构和单个训练样本,我们将激活函数对优化的影响与其他因素隔离开来。文章提出了一种通过激活函数边界来管理网络权重的方法,以及一种权重反射机制,这有助于避免训练中的饱和和停滞问题。
preview
MQL5 简介(第 16 部分):利用技术图表形态构建 EA 交易

MQL5 简介(第 16 部分):利用技术图表形态构建 EA 交易

本文向初学者介绍如何构建一个 MQL5 EA 交易,该系统可以识别和交易经典的技术图表形态 —— 头肩顶形态。它涵盖了如何利用价格行为来检测形态,如何在图表上绘制形态,如何设置入场点、止损点和止盈点,以及如何根据形态自动执行交易。
preview
日志记录精通指南(第三部分):探索日志处理器(Handlers)实现方案

日志记录精通指南(第三部分):探索日志处理器(Handlers)实现方案

在本文中,我们将探索日志库中"处理器"(handlers)的概念,理解其工作原理,并创建三种基础实现:控制台、数据库和文件。我们将覆盖从处理器的基本结构到实际测试,为后续文章中的完整功能实现奠定基础。
preview
在 MQL5 中创建交易管理员面板(第十部分):基于外部资源的界面

在 MQL5 中创建交易管理员面板(第十部分):基于外部资源的界面

今天,我们将深入挖掘 MQL5 的潜力,利用外部资源(例如 BMP 格式的图片)为交易管理面板打造独具风格的主界面。文中演示的策略在打包多种资源(包括图片、声音等)以实现高效分发时尤为实用。欢迎随我们一起探讨,如何利用这些功能为我们的 New_Admin_Panel EA 实现现代、美观的界面设计。
preview
从基础到中级:模板和类型名称(四)

从基础到中级:模板和类型名称(四)

在本文中,我们将非常仔细地研究如何解决上一篇文章末尾提出的问题。尝试创建这种类型的模板,以便能够创建数据联合的模板。
preview
MQL5中用于预测与分类评估的重采样技术

MQL5中用于预测与分类评估的重采样技术

本文将探讨并实现一种方法:利用单一数据集同时作为训练集和验证集,来评估模型质量。
preview
从新手到专家:使用 MQL5 制作动画新闻标题(四) — 本地托管 AI 模型市场洞察

从新手到专家:使用 MQL5 制作动画新闻标题(四) — 本地托管 AI 模型市场洞察

在今天的讨论中,我们将探讨如何自行托管开源 AI 模型,并使用它们来生成市场洞察。这是我们持续扩展 News Headline EA 的一部分努力,引入了 AI 洞察通道,将其转变为多集成辅助工具。升级后的 EA 旨在通过日历事件、财经突发新闻、技术指标以及现在的 AI 生成的市场观点,让交易者随时了解最新动态,从而为交易决策提供及时、多样化和智能的支持。加入我们的讨论,我们将探讨实用的集成策略,以及 MQL5 如何与外部资源协作,构建强大而智能的交易工作终端。
preview
人工部落算法(ATA)

人工部落算法(ATA)

文章提供了 ATA 优化算法关键组成部分和创新的详细讨论,其为一种进化方法,具有独特的双重行为系统,可根据状况进行调整。ATA 结合了个体和社会学习,同时使用交叉进行探索和迁徙,从而在陷入局部最优时找到解。
preview
从新手到专家:使用 MQL5 制作动画新闻标题(一)

从新手到专家:使用 MQL5 制作动画新闻标题(一)

在 MetaTrader 5 终端上进行交易时,新闻可访问性是一个关键因素。虽然有很多新闻 API 可用,但许多交易者在访问这些 API 并将其有效集成到他们的交易环境中时仍面临挑战。在本次讨论中,我们的目标是开发一种简化的解决方案,将新闻直接呈现在图表上 —— 也就是最需要新闻的地方。我们将通过构建一个新闻标题 EA 来实现这一目标,该 EA 可以监控并显示来自 API 源的实时新闻更新。
preview
精通日志记录(第六部分):数据库日志存储方案

精通日志记录(第六部分):数据库日志存储方案

本文探讨如何利用数据库以结构化、可扩展的方式存储日志。内容涵盖基础概念、核心操作、MQL5中数据库处理器的配置与实现。最后验证结果,并阐述该方法在优化与高效监控方面的优势。
preview
从新手到专家:使用 MQL5 制作动画新闻标题 (三) — 指标洞察

从新手到专家:使用 MQL5 制作动画新闻标题 (三) — 指标洞察

在本文中,我们将通过引入专门的指标洞察通道来推进新闻标题EA —— 一个紧凑的图表显示,显示由RSI、MACD、随机震荡指标和 CCI 等流行指标生成的关键技术信号。这种方法消除了 MetaTrader 5 终端上多个指标子窗口的需要,使您的工作空间保持干净高效。通过利用 MQL5 API 在后台访问指标数据,我们可以使用自定义逻辑实时处理和可视化市场洞察。加入我们,探索如何在 MQL5 中操纵指标数据,以创建一个智能且节省空间的滚动洞察系统,所有这些都在您的交易图表上的一个水平通道内。
preview
克服机器学习的局限性(第二部分):缺乏可重复性

克服机器学习的局限性(第二部分):缺乏可重复性

本文探讨了即便使用相同的策略和金融标的,不同经纪商的交易结果为何仍会存在显著差异,原因在于定价的分散化以及数据差异。本文有助于MQL5开发者理解为何他们的产品在MQL5市场上的评价褒贬不一,并敦促开发者针对特定经纪商调整方法,以确保结果透明且可重复。如果这一做法能被广泛地采用,将有望成为我们社区重要的特定领域最佳实践。
preview
市场模拟(第九部分):套接字(三)

市场模拟(第九部分):套接字(三)

今天的文章是上一篇文章的延续。我们将研究 EA 交易的实现,主要关注服务器代码的执行方式。上一篇文章中给出的代码不足以使一切按预期工作,因此我们需要更深入地挖掘它。因此,有必要阅读这两篇文章,以便更好地了解会发生什么。
preview
MQL5 MVC模式中表格的视图组件:基础图形元素

MQL5 MVC模式中表格的视图组件:基础图形元素

本文介绍了在MQL5中实现MVC(模型-视图-控制器)范式下表格视图组件时,开发基础图形元素的过程。这是关于视图组件的首篇文章,也是为MetaTrader 5客户端开发表格功能系列文章的第三篇。
preview
从基础到中级:事件(一)

从基础到中级:事件(一)

鉴于目前所展示的一切,我认为我们现在可以开始实现某种应用程序,以便直接在图表上运行某些交易品种。然而,首先我们需要讨论一个对初学者来说可能相当困惑的概念。也就是说,在 MQL5 中开发并用于在图表上显示的应用程序的创建方式与我们迄今为止看到的不同。在本文中,我们将开始更好地理解这一点。
preview
基于MQL5中表模型的表类和表头类:应用MVC概念

基于MQL5中表模型的表类和表头类:应用MVC概念

本文是致力于使用MVC(模型-视图-控制器)架构范式在MQL5中实现表模型系列文章的第二部分。本文基于先前创建的表模型来开发表类和表头。已经开发的类将构成进一步实现视图和控制器组件的基础,这些内容将在随后的文章中讨论。
preview
市场模拟(第八部分):套接字(二)

市场模拟(第八部分):套接字(二)

用套接字实现一些实用功能怎么样?在今天的文章中,我们将开始创建一个迷你聊天室。让我们一起来看看这是怎么做到的 —— 这会非常有趣。请注意,此处提供的代码仅用于教育目的。它不应用于商业目的或现成的应用程序,因为它不提供数据传输安全性,并且可以访问通过套接字传输的内容。
preview
MQL5中表格模型的实现:应用MVC概念

MQL5中表格模型的实现:应用MVC概念

在本文中,我们将探讨如何使用MVC(模型-视图-控制器)架构模式在MQL5中开发表格模型,该模式可将数据逻辑、展示和控制进行分离,从而实现结构化、灵活且可扩展的代码。我们将考虑实现用于构建表格模型的各类,包括使用链表来存储数据。
preview
风险管理(第三部分):构建风险管理主类

风险管理(第三部分):构建风险管理主类

在本文中,我们将开始创建一个核心风险管理类,这将是控制系统风险的关键。我们将重点建立基础,定义基本结构、变量和函数。此外,我们将实施设定最大损益值的必要方法,从而为风险管理奠定基础。
preview
在MQL5中构建自优化智能交易系统(第七部分):同时利用多个时间周期进行交易

在MQL5中构建自优化智能交易系统(第七部分):同时利用多个时间周期进行交易

在本系列文章中,我们已经探讨了多种确定技术指标最佳使用周期的方法。今天,我们将向读者展示如何反其道而行之,也就是我们不再局限于挑选一个最佳时间周期,而是演示如何有效地利用所有可用周期。这种方法减少了被剔除的数据量,并为机器学习算法提供了常规价格预测以外的应用场景。
preview
市场模拟(第 10 部分):套接字(四)

市场模拟(第 10 部分):套接字(四)

在这篇文章中,我们将以一种非常有趣的方式,看看你需要做什么才能开始使用 Excel 来管理 MetaTrader 5。为此,我们将使用 Excel 加载项来避免使用内置的 VBA。如果您不知道什么是加载项,请阅读本文,学习如何直接在 Excel 中使用 Python 进行编程。
preview
MQL5 中的策略可视化:在标准图表中展示优化结果

MQL5 中的策略可视化:在标准图表中展示优化结果

在本文中,我们编写了一个可视化优化过程的示例,并显示了四个优化标准的前三个步骤。我们还将提供一个机会,从三个最佳通过中选择一个,以便在表格和图表上显示其数据。