MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
日志记录精通指南(第三部分):探索日志处理器(Handlers)实现方案

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

在本文中,我们将探索日志库中"处理器"(handlers)的概念,理解其工作原理,并创建三种基础实现:控制台、数据库和文件。我们将覆盖从处理器的基本结构到实际测试,为后续文章中的完整功能实现奠定基础。
preview
人工部落算法(ATA)

人工部落算法(ATA)

文章提供了 ATA 优化算法关键组成部分和创新的详细讨论,其为一种进化方法,具有独特的双重行为系统,可根据状况进行调整。ATA 结合了个体和社会学习,同时使用交叉进行探索和迁徙,从而在陷入局部最优时找到解。
preview
精通日志记录(第七部分):如何在图表上显示日志

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

了解如何在MetaTrader图表上以条理清晰的方式直接显示日志,包括边框、标题和自动 滚动功能。本文将演示如何用MQL5打造可视化日志系统,助您实时监控交易机器人的运行状态。
preview
从基础到中级:模板和类型名称(四)

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

在本文中,我们将非常仔细地研究如何解决上一篇文章末尾提出的问题。尝试创建这种类型的模板,以便能够创建数据联合的模板。
preview
市场模拟(第 10 部分):套接字(四)

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

在这篇文章中,我们将以一种非常有趣的方式,看看你需要做什么才能开始使用 Excel 来管理 MetaTrader 5。为此,我们将使用 Excel 加载项来避免使用内置的 VBA。如果您不知道什么是加载项,请阅读本文,学习如何直接在 Excel 中使用 Python 进行编程。
preview
MQL5中用于预测与分类评估的重采样技术

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

本文将探讨并实现一种方法:利用单一数据集同时作为训练集和验证集,来评估模型质量。
preview
从基础到中级:模板和类型名称(三)

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

在本文中,我们将讨论该主题的第一部分,这对初学者来说并不容易理解。为了避免更加困惑并正确解释这个话题,我们将把解释分为几个阶段。我们将把这篇文章用于第一阶段。然而,尽管在本文末尾,我们似乎已经陷入僵局,但事实上,我们将朝着另一种情况迈出一步,这将在下一篇文章中得到更好的理解。
preview
市场模拟(第九部分):套接字(三)

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

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

混沌优化算法(COA)

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

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

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

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

用套接字实现一些实用功能怎么样?在今天的文章中,我们将开始创建一个迷你聊天室。让我们一起来看看这是怎么做到的 —— 这会非常有趣。请注意,此处提供的代码仅用于教育目的。它不应用于商业目的或现成的应用程序,因为它不提供数据传输安全性,并且可以访问通过套接字传输的内容。
preview
精通日志记录(第六部分):数据库日志存储方案

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

本文探讨如何利用数据库以结构化、可扩展的方式存储日志。内容涵盖基础概念、核心操作、MQL5中数据库处理器的配置与实现。最后验证结果,并阐述该方法在优化与高效监控方面的优势。
preview
在 MQL5 中实现保本机制(第 2 部分):基于 ATR 和风险回报比的保本机制

在 MQL5 中实现保本机制(第 2 部分):基于 ATR 和风险回报比的保本机制

本文将完成 MQL5 中基于 ATR 和风险回报比(RRR)的保本机制实现,并从零开始开发一个类,使得在无需重新输入参数的情况下即可轻松切换保本模式。为评估每种保本类型的有效性,我们将进行多次回测,并在算法交易的背景下分析它们各自的优缺点。
preview
MQL5 中的奇异谱分析(SSA)

MQL5 中的奇异谱分析(SSA)

本文专为不熟悉奇异谱分析概念、希望充分理解并运用 MQL5 内置相关工具的读者编写。
preview
基于MQL5中表模型的表类和表头类:应用MVC概念

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

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

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

在本文中,我们将探讨如何轻松创建和实施烛形着色操作方法。交易者们非常重视这一概念。在实现此类操作时,必须注意确保柱形或烛形保持其原有的外观,并且不会妨碍逐根烛形的解读。
preview
从基础到中级:事件(二)

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

在本文中,我们将看到并非所有内容都需要以某种特定的方式实现。解决问题还有其他方法。要正确理解这篇文章,有必要掌握前几篇文章中描述的概念。此处提供的材料仅用于教育目的。不要将其视为已完成的应用程序,它的目的是研究这里提出的概念。
preview
MQL5中表格模型的实现:应用MVC概念

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

在本文中,我们将探讨如何使用MVC(模型-视图-控制器)架构模式在MQL5中开发表格模型,该模式可将数据逻辑、展示和控制进行分离,从而实现结构化、灵活且可扩展的代码。我们将考虑实现用于构建表格模型的各类,包括使用链表来存储数据。
preview
精通日志记录(第九部分):实现构造器模式并添加默认配置

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

本文将演示如何借助构造器模式与自动默认配置,大幅简化 Logify 库的使用流程。文中详细讲解了专用构造器的结构设计、智能代码补全功能的运用方式,以及如何确保日志无需手动配置即可正常运行。同时,本文还针对 MetaTrader 5 build 5100 版本的相关调整进行了适配。
preview
MQL5 MVC模式中表格的视图组件:基础图形元素

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

本文介绍了在MQL5中实现MVC(模型-视图-控制器)范式下表格视图组件时,开发基础图形元素的过程。这是关于视图组件的首篇文章,也是为MetaTrader 5客户端开发表格功能系列文章的第三篇。
preview
从新手到专家:用MQL5实现动态新闻头条(八)—— 新闻交易快捷交易按钮

从新手到专家:用MQL5实现动态新闻头条(八)—— 新闻交易快捷交易按钮

虽然算法交易系统可以实现自动化操作,但许多新闻交易者与剥头皮交易者更倾向于在高影响力新闻事件和快节奏行情中主动掌控交易,这就要求具备快速的订单执行与管理能力。这一点凸显了对直观前端交互工具的需求 —— 这类工具需集成实时新闻推送、财经日历数据、指标分析、AI分析以及高响应交易控件。
preview
市场模拟(第 14 部分):套接字(八)

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

许多程序员可能会认为,我们应该放弃使用 Excel,直接使用 Python,使用一些允许 Python 生成 Excel 文件以供以后分析结果的包。不过,正如前一篇文章提到的,虽然这个解决方案对于很多程序员来说是最简单的,但它不会被一些用户接受。在这种特殊情况下,用户总是正确的。作为程序员,我们必须找到一种让一切都能正常工作的方法。
preview
精通日志记录(第八部分):具备自动翻译能力的错误日志记录

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

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

MQL5 MVC 范式下表格的视图与控制器组件:容器

在本文中,我们将讨论如何创建一个支持内容滚动的“容器”控件。在此过程中,将对已实现的图形库控件类进行改进。
preview
无需真实期权的期权交易(第二部分):实盘中的应用

无需真实期权的期权交易(第二部分):实盘中的应用

本文探讨了简单的期权策略及其在MQL5中的实现。我们将开发一个基础 EA,并逐步对其进行升级,使其变得更加复杂。
preview
从基础到中级:结构(三)

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

在本文中,我们将探讨什么是结构化代码。许多人将结构化代码与有组织的代码混淆,但这两个概念之间存在差异。这正是本文将要讨论的内容。尽管你在初次接触这类代码编写时可能会感到其明显的复杂性,但我已尽可能地以简单易懂的方式讲解这一主题。然而,本文只是迈向更宏大目标的第一步。
preview
MQL5 MVC范式下的表格视图与控制器组件:可调整尺寸的元素

MQL5 MVC范式下的表格视图与控制器组件:可调整尺寸的元素

在本文中,我们将实现通过鼠标拖动控件的边缘和角点来调整控件大小的功能。
preview
价格行为分析工具包开发(第三十七部分):市场情绪偏向计

价格行为分析工具包开发(第三十七部分):市场情绪偏向计

市场情绪是影响价格走势最容易被忽视的强大因素之一。尽管大多数交易者依赖滞后指标或是主观猜测,但市场情绪偏向计(STM)智能交易系统(EA)能够将原始市场数据转化为清晰的可视化指引,实时显示市场倾向看涨、看跌还是保持中性。这让确认交易、避免虚假入场信号以及更有效地把握市场参与时机变得更加容易。
preview
利用灰色模型进行交易预测

利用灰色模型进行交易预测

本文探讨灰色模型(GM)在金融时间序列预测中的应用。我们将介绍GM的工作原理,以及其在金融序列上的具体应用方式。同时也会讨论该类模型在交易场景中的优势与局限性。
preview
从基础到中级:继承

从基础到中级:继承

毫无疑问,要理解本文所述材料的工作原理和原因,你需要投入大量时间。这是因为这里将要展示的所有内容最初都是面向对象编程的,但实际上它们是基于结构化编程的原理。
preview
从基础到中级:结构(七)

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

在今天的文章中,我们将展示如何着手解决与构建不同元素以及创造更简单、更具吸引力的解决方案相关的问题。尽管内容以学习为导向,因此并不构成生产代码,但深入理解这里将涵盖的概念和知识至关重要。这样,今后我们就能理解我们将展示的代码。
preview
价格行为分析工具包开发(第34部分):借助高级数据采集管道将原始市场数据转化为预测模型

价格行为分析工具包开发(第34部分):借助高级数据采集管道将原始市场数据转化为预测模型

你是否曾错过市场突然的尖峰行情,或者在行情发生时措手不及?预判实时行情的最佳方法是从历史形态中学习。为了训练一个机器学习模型,本文首先向您展示如何在 MetaTrader 5 中创建一个脚本,用于摄取历史数据并将其发送到 Python 进行存储 —— 为您的尖峰检测系统奠定基础。继续阅读,了解每个步骤的实际操作。
preview
构建动态多品种EA(第四部分):波动率与风险调节

构建动态多品种EA(第四部分):波动率与风险调节

本阶段将对多品种 EA 进行精细化调优,依托 ATR 等波动率指标实时调整交易手数与风险敞口,提升不同市场环境下策略的稳定性、风控能力与整体绩效。
preview
从基础到中级:函数指针

从基础到中级:函数指针

在编程方面,您可能已经听说过指针。但是您知道我们可以在 MQL5 中使用这种类型的数据吗?当然,必须以一种让我们始终保持控制、避免程序在执行时出现异常行为的方式来使用它。尽管如此,由于这是一个具有非常特定目的且针对特定类型任务的功能,因此很少听到有人讨论指针是什么以及如何在 MQL5 中使用它。
preview
从基础到中级:指标(五)

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

在本文中,我们将探讨如何处理用户更改图表绘制模式的请求。这是必要的,以确保为当前图表绘制模式设计的指标不会显得奇怪,或与 MetaTrader 5 用户的预期不符。
preview
开发多币种 EA(第 28 部分):添加平仓管理器

开发多币种 EA(第 28 部分):添加平仓管理器

在并行运行多个策略时,您可能希望定期关闭所有持仓,并重新启动策略。现有代码仅允许通过手动操作来实现这一行为。让我们尝试将这一部分自动化。
preview
MQL5中的自优化智能交易系统(第十一部分):线性代数基础入门

MQL5中的自优化智能交易系统(第十一部分):线性代数基础入门

在本文中,我们将为使用MQL5矩阵与向量API中强大的线性代数工具奠定基础。想要熟练运用此套API,我们必须牢固掌握支撑这些方法合理使用的线性代数原理。本文旨在让读者直观理解,作为MQL5算法交易者,入门并利用这一强大库所需的一些最重要的线性代数规则。
preview
从基础到中级:对象事件(四)

从基础到中级:对象事件(四)

在本文中,我们将完成上一篇文章中已经开始的内容:一种直接在图表上以完全交互的方式调整对象大小的方法。尽管许多人认为创建这样的功能需要对 MQL5 有更深入的了解,但您将看到,只需运用简单的概念和基础知识,我们就可以实现一种直接在图表上操作对象的方法。这样最终会得到一个既有趣又相当吸引人的结果。
preview
精通日志记录(第十部分):通过抑制机制避免日志重复输出

精通日志记录(第十部分):通过抑制机制避免日志重复输出

我们在 Logify 函数库中搭建了一套日志抑制系统。本文详细讲解 CLogifySuppression 类如何通过可配置规则过滤重复、无关日志消息,减少控制台冗余信息。同时本文还介绍外部配置框架、参数校验机制以及完整测试方案,保障 EA、指标开发过程中日志记录能力稳定、灵活。
preview
从基础到中级:对象(三)

从基础到中级:对象(三)

在今天的文章中,我们将探讨如何实现一个极具吸引力和趣味性的交互系统,特别是对于那些刚开始学习 MQL5 编程的人来说。这里并没有任何全新的内容。得益于我对这个主题的处理方式,理解起来会容易得多,因为我们将通过实践,了解如何使用结构化的方法,以实用且引人入胜的目标来开发程序。