MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
从基础到中级:继承

从基础到中级:继承

毫无疑问,要理解本文所述材料的工作原理和原因,你需要投入大量时间。这是因为这里将要展示的所有内容最初都是面向对象编程的,但实际上它们是基于结构化编程的原理。
preview
价格行为分析工具包开发(第34部分):借助高级数据采集管道将原始市场数据转化为预测模型

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

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

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

在今天的文章中,我们将展示如何着手解决与构建不同元素以及创造更简单、更具吸引力的解决方案相关的问题。尽管内容以学习为导向,因此并不构成生产代码,但深入理解这里将涵盖的概念和知识至关重要。这样,今后我们就能理解我们将展示的代码。
preview
从新手到专家:使用MQL5实现动态新闻标题(9)—— 新闻交易中的单图表多品种管理

从新手到专家:使用MQL5实现动态新闻标题(9)—— 新闻交易中的单图表多品种管理

新闻行情往往伴随着剧烈波动,交易者需要在极短时间内管理多个持仓与交易品种。在本文中,我们将把多品种功能集成到新闻标题EA中,以集成多品种功能的方式应对多品种交易的挑战。接下来我们一起探讨,如何借助MQL5算法交易,让多品种交易变得更加高效、强大。
preview
构建动态多品种EA(第四部分):波动率与风险调节

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

本阶段将对多品种 EA 进行精细化调优,依托 ATR 等波动率指标实时调整交易手数与风险敞口,提升不同市场环境下策略的稳定性、风控能力与整体绩效。
preview
通过图表同步简化技术分析

通过图表同步简化技术分析

图表同步作为简化技术分析的工具,可保证同一交易品种的所有周期图表,统一展示趋势线、矩形、指标等各类图形对象。诸如平移、缩放、切换品种等操作会在所有已同步图表上体现,交易者能够在多个周期下流畅地查看并对比同一价格走势环境。
preview
开发多币种 EA(第 28 部分):添加平仓管理器

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

在并行运行多个策略时,您可能希望定期关闭所有持仓,并重新启动策略。现有代码仅允许通过手动操作来实现这一行为。让我们尝试将这一部分自动化。
preview
从基础到中级:函数指针

从基础到中级:函数指针

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

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

在本文中,我们将探讨如何处理用户更改图表绘制模式的请求。这是必要的,以确保为当前图表绘制模式设计的指标不会显得奇怪,或与 MetaTrader 5 用户的预期不符。
preview
从基础到中级:对象事件(四)

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

在本文中,我们将完成上一篇文章中已经开始的内容:一种直接在图表上以完全交互的方式调整对象大小的方法。尽管许多人认为创建这样的功能需要对 MQL5 有更深入的了解,但您将看到,只需运用简单的概念和基础知识,我们就可以实现一种直接在图表上操作对象的方法。这样最终会得到一个既有趣又相当吸引人的结果。
preview
MQL5中的自优化智能交易系统(第十一部分):线性代数基础入门

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

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

从基础到中级:在 MetaTrader 5 沙箱中处理文件

你知道什么是沙箱吗?你知道怎么操作它吗?如果这两个问题的答案都是“否”,请阅读本文以了解沙箱的基本工作原理。您还将了解为什么 MetaTrader 5 使用沙箱来保护其某些内部数据的完整性。本文所提供的材料纯粹用于教学目的。在任何情况下,你都不应将该应用程序视为最终产品,其目的仅限于研究所呈现的概念。
preview
从基础到进阶:图表对象(I)

从基础到进阶:图表对象(I)

在本文中,我们将开始讲解如何在图表上直接操作图形对象。相关示例使用专为演示编写的代码实现。图形对象编程十分有趣,能给人带来许多快乐。由于这是我们初次接触该主题,将从非常基础的内容入手。
preview
精通日志记录(第十部分):通过抑制机制避免日志重复输出

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

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

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

在本文中,我们将为下一篇文章所涵盖的内容奠定基础。我们还将探讨如何使 OBJ_LABEL 对象完全可交互,以便进行编辑和移动。换句话说,我们无需打开“对象属性”对话框,即可更改 OBJ_LABEL 对象的文本和位置。
preview
从新手到专家:报表 EA — 搭建工作流程

从新手到专家:报表 EA — 搭建工作流程

经纪商通常会根据预定的时间表定期提供交易账户报表。这些公司通过其 API 技术,可以访问您的账户活动和交易历史,从而为您生成业绩报表。同样,MetaTrader 5 终端会存储您交易活动的详细记录,这些记录可以使用 MQL5 来创建完全定制的报表,并定义个性化的交付方式。
preview
从基础到中级:对象(三)

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

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

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

在今天的文章中,我们将探讨如何使用代码以一种简单的方式控制某些对象属性。我们还将了解自定义应用程序如何将多个对象放置在同一个图表上。此外,我们将开始认识到,为我们计划实现的任何指标分配一个简称的重要性。
preview
从基础到中级:对象(四)

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

这可能是迄今为止最有趣的一篇文章。原因在于,我们将修改 MetaTrader 5 中已有的一个对象,以创建另一个原本不在该平台上的对象。当然,我们接下来要介绍的内容可能看起来有点疯狂,但它确实有效,并且具有非常有趣的用途。
preview
从基础到中级:对象事件(一)

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

在本文中,我们将探讨当图表上的某个对象发生变化时,MetaTrader 5 可以生成的六个事件中的三个。从用户交互的角度来看,这些事件非常有用。这是因为,如果不了解这些事件,在尝试为特定目的管理对象时,我们将不得不付出更多的努力来维护特定的图表配置。
preview
从基础到进阶:处理鼠标事件

从基础到进阶:处理鼠标事件

阅读本文相关的此类技术资料,仅仅浏览和研究代码,绝对不足以理解其中涉及的过程。实际上,您需要编译出可执行程序,并在任意图表上运行它。只有这样,您才能体会到那些单靠看代码极难掌握的细节,例如结合键盘与鼠标来创建某些元素。
preview
MQL5自优化智能交易系统(第十二部分):利用矩阵分解构建线性分类器

MQL5自优化智能交易系统(第十二部分):利用矩阵分解构建线性分类器

本文探讨矩阵分解在算法交易中的强大作用,重点介绍其在 MQL5 程序里的应用。从回归模型到多目标分类器,我们通过实战示例演示如何借助 MQL5 内置函数轻松集成这类技术。无论你是预测价格方向,还是构建指标行为模型,这份教程都为你使用矩阵方法搭建智能交易系统打下坚实基础。
preview
从基础到进阶:对象事件(II)

从基础到进阶:对象事件(II)

本文将介绍由对象触发的最后三类事件的工作原理。理解这些内容会非常有意思,因为文末我们要实现的功能在很多人看来有些疯狂,但它完全可行,并且效果十分惊艳。
preview
重构经典策略(第十五部分):日线突破交易策略

重构经典策略(第十五部分):日线突破交易策略

早在计算机出现之前,人工交易者就已投身金融市场,并总结出指导交易决策的经验法则。在本文中,我们重新研究一套知名的突破策略,来检验这种从实战中总结的市场逻辑,能否与系统化交易方法抗衡。研究结果表明:原始策略虽然胜率很高,但存在稳定性差、风险管控不足的问题。通过策略优化,我们展示如何将主观交易经验改造为更加稳健的算法交易策略。