MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
MQL5自优化智能交易系统(第九部分):双移动平均线交叉

MQL5自优化智能交易系统(第九部分):双移动平均线交叉

本文将介绍双移动平均线交叉策略的设计思路:利用更高的时间框架(日线D1)的信号指导更低的时间框架(15分钟M15)的入场,并通过中间风险周期(4小时H4)计算止损位。本文将讲解系统常量、自定义枚举,以及趋势跟踪和均值回归模式的逻辑,同时强调代码模块化与未来遗传算法优化的扩展性。该方法支持灵活的入场/出场条件,通过让较低的时间框架入场与较高的时间框架趋势保持一致,减少信号滞后、优化交易时机。
preview
从基础到中级:结构(四)

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

在本文中,我们将探讨如何创建所谓的结构化代码,即将处理变量和信息的整个上下文和方法都置于一个结构中,从而为任何代码的实现创造一个合适的上下文环境。因此,我们将探讨使用代码私有部分来区分公有部分和非公有部分的必要性,从而遵守封装原则,并保留创建数据结构时的上下文。
preview
MQL5自优化智能交易系统(第八部分):多策略分析(3)—— 加权投票机制

MQL5自优化智能交易系统(第八部分):多策略分析(3)—— 加权投票机制

本文将探讨如何确定集成策略中最优的策略数量 —— 这是一个复杂问题,而借助MetaTrader 5的遗传算法优化器可以轻松解决。同时,我们也会使用MQL5云端计算作为核心资源,加速回测与优化过程。具体而言,本篇内容将为后续开发统计评估模型奠定基础,用于基于初始集成结果评估并改进交易策略。
preview
MQL5 中的奇异谱分析(SSA)

MQL5 中的奇异谱分析(SSA)

本文专为不熟悉奇异谱分析概念、希望充分理解并运用 MQL5 内置相关工具的读者编写。
preview
构建动态多品种EA(第三部分):均值回归与动量策略

构建动态多品种EA(第三部分):均值回归与动量策略

在本文中,我们将继续讲解构建动态多品种智能交易系统(EA)的第三部分内容,重点聚焦于均值回归策略与动量交易策略的融合。我们将详细拆解如何检测价格对均值的偏离(通过Z-分数)并据此执行交易,以及如何在多个外汇对上测算动量,以此确定交易方向。
preview
混沌优化算法(COA)

混沌优化算法(COA)

本文介绍一种改进型混沌优化算法(COA),该算法将混沌特性与自适应搜索机制相结合。算法通过一组混沌映射与惯性分量对搜索空间进行遍历探索。文章阐述了金融优化领域中混沌方法的理论基础。
preview
从基础到中级:结构(三)

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

在本文中,我们将探讨什么是结构化代码。许多人将结构化代码与有组织的代码混淆,但这两个概念之间存在差异。这正是本文将要讨论的内容。尽管你在初次接触这类代码编写时可能会感到其明显的复杂性,但我已尽可能地以简单易懂的方式讲解这一主题。然而,本文只是迈向更宏大目标的第一步。
preview
风险管理(第五部分):将风险管理系统集成到 EA 中

风险管理(第五部分):将风险管理系统集成到 EA 中

在本文中,我们将实现在先前文章中开发的风险管理系统,并添加在其他文章中描述的订单区块指标。此外,我们将进行一次回测,以便比较启用风险管理系统前后的结果,并评估动态风险的影响。
preview
市场模拟(第 14 部分):套接字(八)

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

许多程序员可能会认为,我们应该放弃使用 Excel,直接使用 Python,使用一些允许 Python 生成 Excel 文件以供以后分析结果的包。不过,正如前一篇文章提到的,虽然这个解决方案对于很多程序员来说是最简单的,但它不会被一些用户接受。在这种特殊情况下,用户总是正确的。作为程序员,我们必须找到一种让一切都能正常工作的方法。
preview
价格行为分析工具包开发(第二十九部分):暴涨与暴跌拦截EA

价格行为分析工具包开发(第二十九部分):暴涨与暴跌拦截EA

了解暴涨与暴跌拦截EA如何将您的图表转变为一个主动预警系统 —— 通过超高速扫描价格变动速度、检查波动率激增情况、确认趋势走向以及运用关键枢轴区域过滤条件,精准识别市场的爆发性行情。该工具以清晰的绿色“暴涨”和红色“暴跌”箭头为您的每一次决策提供指引,助您排除市场杂音,以前所未有的方式把握市场价格飙升的机遇。深入探究其工作原理,了解它为何能成为您下一个不可或缺的交易优势。
preview
精通日志记录(第九部分):实现构造器模式并添加默认配置

精通日志记录(第九部分):实现构造器模式并添加默认配置

本文将演示如何借助构造器模式与自动默认配置,大幅简化 Logify 库的使用流程。文中详细讲解了专用构造器的结构设计、智能代码补全功能的运用方式,以及如何确保日志无需手动配置即可正常运行。同时,本文还针对 MetaTrader 5 build 5100 版本的相关调整进行了适配。
preview
MQL5交易管理面板开发(第十二部分):汇率计算器的集成

MQL5交易管理面板开发(第十二部分):汇率计算器的集成

精准计算核心交易价值,是每位交易者必不可少的日常工作。本文介绍如何将汇率计算器集成至交易管理面板,以此拓展多面板交易管理系统的功能。在执行交易时,快速确定风险敞口、头寸规模及潜在盈利至关重要,这一新功能旨在使面板内参数的计算过程更高效、更直观。让我们共同探索MQL5在构建高级交易面板中的实战应用。
preview
从基础到中级:指标(四)

从基础到中级:指标(四)

在本文中,我们将探讨如何轻松创建和实施烛形着色操作方法。交易者们非常重视这一概念。在实现此类操作时,必须注意确保柱形或烛形保持其原有的外观,并且不会妨碍逐根烛形的解读。
preview
价格行为分析工具包开发(第二十七部分):利用移动平均线进行流动性扫单

价格行为分析工具包开发(第二十七部分):利用移动平均线进行流动性扫单

理解价格走势背后的微妙动态,能让您获得至关重要的优势。流动性扫单便是这样一种现象,大型交易者(尤其是机构)会刻意运用这一策略,推动价格突破关键支撑位或阻力位。这些价位往往集中了零售交易者的止损单,从而形成流动性池,大资金玩家可以借此机会买入或卖出大额头寸,且滑点极小。
preview
价格行为分析工具包开发(第二十六部分):针形线、吞没形态与RSI背离(多模式)工具

价格行为分析工具包开发(第二十六部分):针形线、吞没形态与RSI背离(多模式)工具

与我们开发实用型价格行为工具的初衷相一致,本文将探讨如何开发一款 EA。该 EA 能够识别 Pin Bar 和吞没形态,并利用 RSI 背离作为确认信号,仅在条件满足时生成交易提示。
preview
风险管理(第四部分):完善关键类方法

风险管理(第四部分):完善关键类方法

这是我们关于 MQL5 风险管理系列文章的第四部分,我们将继续探索保护和优化交易策略的高级方法。在前几篇文章中奠定了重要的基础之后,我们现在将专注于完成第三部分中推迟的所有剩余方法,包括检查是否达到特定利润或亏损水平的函数。此外,我们将引入新的关键事件,以实现更准确、更灵活的风险管理。
preview
精通日志记录(第七部分):如何在图表上显示日志

精通日志记录(第七部分):如何在图表上显示日志

了解如何在MetaTrader图表上以条理清晰的方式直接显示日志,包括边框、标题和自动 滚动功能。本文将演示如何用MQL5打造可视化日志系统,助您实时监控交易机器人的运行状态。
preview
MQL5 MVC架构中表格视图与控制器组件:简单控件

MQL5 MVC架构中表格视图与控制器组件:简单控件

本文探讨了如何在MVC(模型 - 视图 - 控制器)架构下实现表格,重点介绍简单控件,它们是构建复杂视图组件的基础。控制器主要用来处理用户与元素、元素与元索之间的交互。这是关于视图组件的第二篇文章,也是关于为MetaTrader 5客户端创建表格系列文章中的第四篇。
preview
从基础到中级:指标(三)

从基础到中级:指标(三)

在本文中,我们将探讨如何声明各种图形表现形式的指标,例如 DRAW_COLOR_LINE 和 DRAW_FILLING。此外,当然,我们将学习如何以简单、实用和快速的方式使用多个指标绘制图表。这确实可以改变你对 MetaTrader 5 和整个市场的看法。
preview
市场模拟(第 12 部分):套接字(六)

市场模拟(第 12 部分):套接字(六)

在本文中,我们将探讨如何解决在其他程序中使用 Python 代码时出现的某些问题。更具体地说,我们将演示在将 Excel 与 MetaTrader 5 结合使用时遇到的一个常见问题,尽管我们将使用 Python 来促进这种交互。然而,这种实现方式有一个小小的缺点。它并非在所有情况下都会发生,而是仅在某些特定情况下发生。当它发生时,有必要了解原因。在今天的文章中,我们将开始解释如何解决这个问题。
preview
从基础到中级:指标(二)

从基础到中级:指标(二)

在本文中,我们将研究如何实现移动平均值计算,以及在执行此计算时应该采取哪些预防措施。我们还将讨论如何重载 OnCalculate 函数,以便了解何时以及如何使用不同的模型。
preview
市场模拟(第 11 部分):套接字(五)

市场模拟(第 11 部分):套接字(五)

我们开始实现 Excel 和 MetaTrader 5 之间的连接,但首先我们需要了解一些关键点。这样,你就不必绞尽脑汁去弄清楚为什么有些东西有效或无效。在您对集成 Python 和 Excel 的前景感到沮丧之前,让我们看看如何(在某种程度上)使用 xlwings 通过 Excel 控制 MetaTrader 5。我们在这里展示的内容将主要集中在教育目标上。但是,不要以为我们只能做这里涵盖的事情。
preview
从基础到中级:指标(一)

从基础到中级:指标(一)

在本文中,我们将创建第一个完全实用和功能齐全的指标。目标不是展示如何创建应用程序,而是帮助您了解如何开发自己的想法,并让您有机会以安全、简单和实用的方式应用它们。
preview
从基础到中级:事件(二)

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

在本文中,我们将看到并非所有内容都需要以某种特定的方式实现。解决问题还有其他方法。要正确理解这篇文章,有必要掌握前几篇文章中描述的概念。此处提供的材料仅用于教育目的。不要将其视为已完成的应用程序,它的目的是研究这里提出的概念。
preview
从新手到专家:使用 MQL5 制作动画新闻标题(七)—— 新闻交易的后冲击策略

从新手到专家:使用 MQL5 制作动画新闻标题(七)—— 新闻交易的后冲击策略

在重大经济新闻发布后的第一分钟内,市场出现剧烈波动的风险极高。在那短暂的时间窗口内,价格走势可能不稳定且波动剧烈,经常会触发两个方向的挂单。在发布后不久 —— 通常在一分钟内 —— 市场趋于稳定,恢复或纠正更典型的波动性。在本节中,我们将探讨新闻交易的另一种方法,旨在评估其作为交易者工具包中有价值的补充的有效性。继续阅读,了解本讨论中的更多见解和细节。
preview
MQL5自优化智能交易系统(第八部分):多策略分析(2)

MQL5自优化智能交易系统(第八部分):多策略分析(2)

欢迎继续阅读本系列文章,我们将把前两个交易策略合并为一个集成交易策略。本文将展示多种合并多个策略的可行方案,并介绍如何控制参数空间,确保即使在参数数量增加的情况下,仍能进行有效的优化。
preview
价格行为分析工具开发(第二十八部分):开盘区间突破工具

价格行为分析工具开发(第二十八部分):开盘区间突破工具

交易时段伊始,市场方向往往晦暗不明,唯有价格突破开盘区间后,趋势才逐渐显现。本文将详解如何利用MQL5编写一款EA,自动识别与分析开盘区间突破,为日内交易提供精准、经得起数据验证的入场信号。
preview
从新手到专家:使用 MQL5 制作动画新闻标题(五)—— 事件提醒系统

从新手到专家:使用 MQL5 制作动画新闻标题(五)—— 事件提醒系统

在本讨论中,我们将探索在整合 News Headline EA 显示的经济日历事件的改进事件警报逻辑时所取得的进一步进展。这项改进至关重要 —— 它能确保用户在重要事件发生前不久及时收到通知。加入此讨论以了解更多信息。
preview
重构经典策略(第十三部分):让我们的交叉策略迈向新维度(2)

重构经典策略(第十三部分):让我们的交叉策略迈向新维度(2)

欢迎参与讨论,一起探索移动平均线交叉策略的更多改进方法。我们将运用数据科学技能,致力于将策略的滞后性降至更低水平,从而提升其可靠性。众所周知,将数据投影到更高维度有时能提高机器学习模型的性能。我们将向交易者展示这一做法的实际意义,并说明如何利用MetaTrader 5交易终端运用这一强大原理。
preview
精通日志记录(第八部分):具备自动翻译能力的错误日志记录

精通日志记录(第八部分):具备自动翻译能力的错误日志记录

在《精通日志记录》第八部分中,我们将探索如何在Logify(一款功能强大的MQL5日志库)中实现多语言报错提示。您将学习如何根据上下文结构化报错信息、将提示内容切换成多种语言,并根据日志重要级别进行自动动态格式化。所有这一切都基于一个简洁、可扩展且适用于生产环境的设计。
preview
在 MQL5 中构建自优化智能交易系统(第八部分):多策略分析

在 MQL5 中构建自优化智能交易系统(第八部分):多策略分析

如何才能最有效地整合多种策略,构建一个强大的策略组合?欢迎加入本次讨论,我们将探讨如何将三种不同的策略整合到我们的交易应用程序中。交易员通常会采用专门的策略来开仓和平仓。我们想探究的是,机器能否在这项任务上表现得比人类更出色。我们将首先从熟悉策略测试器的各项功能开始讨论,以及完成此任务所需的面向对象编程(OOP)原则。
preview
MQL5 中的策略可视化:在标准图表中展示优化结果

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

在本文中,我们编写了一个可视化优化过程的示例,并显示了四个优化标准的前三个步骤。我们还将提供一个机会,从三个最佳通过中选择一个,以便在表格和图表上显示其数据。
preview
在MQL5中构建自优化智能交易系统(第七部分):同时利用多个时间周期进行交易

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

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

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

在这篇文章中,我们将以一种非常有趣的方式,看看你需要做什么才能开始使用 Excel 来管理 MetaTrader 5。为此,我们将使用 Excel 加载项来避免使用内置的 VBA。如果您不知道什么是加载项,请阅读本文,学习如何直接在 Excel 中使用 Python 进行编程。
preview
风险管理(第三部分):构建风险管理主类

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

在本文中,我们将开始创建一个核心风险管理类,这将是控制系统风险的关键。我们将重点建立基础,定义基本结构、变量和函数。此外,我们将实施设定最大损益值的必要方法,从而为风险管理奠定基础。
preview
克服机器学习的局限性(第二部分):缺乏可重复性

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

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

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

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

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

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

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

用套接字实现一些实用功能怎么样?在今天的文章中,我们将开始创建一个迷你聊天室。让我们一起来看看这是怎么做到的 —— 这会非常有趣。请注意,此处提供的代码仅用于教育目的。它不应用于商业目的或现成的应用程序,因为它不提供数据传输安全性,并且可以访问通过套接字传输的内容。
preview
从新手到专家:使用 MQL5 制作动画新闻标题(四) — 本地托管 AI 模型市场洞察

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

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