MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
MQL5中的自优化智能交易系统(第十一部分):线性代数基础入门

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

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

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

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

从基础到中级:函数指针

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

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

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

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

在本文中,我们将为下一篇文章所涵盖的内容奠定基础。我们还将探讨如何使 OBJ_LABEL 对象完全可交互,以便进行编辑和移动。换句话说,我们无需打开“对象属性”对话框,即可更改 OBJ_LABEL 对象的文本和位置。
preview
从基础到进阶:图表对象(I)

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

在本文中,我们将开始讲解如何在图表上直接操作图形对象。相关示例使用专为演示编写的代码实现。图形对象编程十分有趣,能给人带来许多快乐。由于这是我们初次接触该主题,将从非常基础的内容入手。
preview
MQL5自优化智能交易系统(第十二部分):利用矩阵分解构建线性分类器

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

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

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

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

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

今天,我们将基于图表对象开发一套多图表视图系统。开发目标是服务于新闻交易,借助MQL5算法,缩短交易者在重大新闻发布等高波动行情下的反应时间。在本示例中,我们为交易者提供一体化方案,可以在同一个新闻交易工具内同时监控多个主流交易品种。我们的开发在新闻标题EA(News Headline EA)的基础上持续迭代,目前该EA的功能还在不断扩充,无论是全自动策略使用者,还是依靠算法辅助手工交易的交易者,都能从中获得实际帮助。欢迎点击阅读、参与讨论,一起学习更多知识、思路与实战方案。
preview
从基础到中级:对象(三)

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

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

简化MQL5中的数据库操作(第一部分):数据库与SQL简介

本文会讲解如何运用MQL5的原生函数操作数据库。我们的内容涵盖建表、数据插入、更新、删除以及数据导入导出,全部配有示例代码。本文可以帮助读者扎实理解数据访问的内部工作机制,同时为后续ORM相关内容做好铺垫 —— 我们将在MQL5中构建一个迷你ORM。
preview
精通日志记录(第十部分):通过抑制机制避免日志重复输出

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

我们在 Logify 函数库中搭建了一套日志抑制系统。本文详细讲解 CLogifySuppression 类如何通过可配置规则过滤重复、无关日志消息,减少控制台冗余信息。同时本文还介绍外部配置框架、参数校验机制以及完整测试方案,保障 EA、指标开发过程中日志记录能力稳定、灵活。
preview
价格行为分析工具包开发(第三十九部分):在MQL5中实现BOS与ChoCH的自动识别

价格行为分析工具包开发(第三十九部分):在MQL5中实现BOS与ChoCH的自动识别

本文介绍分形响应系统(Fractal Reaction System),这是一套精简的MQL5工具,能够将分形拐点转化为可用于交易的市场结构信号。该EA采用K线收盘判定逻辑,避免信号重绘;可以识别行情性质转变(ChoCH)预警、确认结构突破(BOS),在图表上绘制持久图形对象,并对每一个已确认事件生成日志与多渠道告警(桌面端、移动端和声音提醒)。下文将呈现算法设计、实现要点、测试结果以及完整EA源码,您可以自行编译、回测并部署这套信号识别工具。
preview
从基础到中级:对象(四)

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

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

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

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

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

在本文中,我们将探讨当图表上的某个对象发生变化时,MetaTrader 5 可以生成的六个事件中的三个。从用户交互的角度来看,这些事件非常有用。这是因为,如果不了解这些事件,在尝试为特定目的管理对象时,我们将不得不付出更多的努力来维护特定的图表配置。
preview
价格行为分析工具包开发(第三十八部分):基于Tick环形缓冲区的VWAP与短窗口失衡引擎

价格行为分析工具包开发(第三十八部分):基于Tick环形缓冲区的VWAP与短窗口失衡引擎

在本文中,我们搭建一套可投入实盘使用的MT5监控面板,它能够将原始逐笔tick数据转化为可用于交易的信号。该EA会缓存tick数据,用于计算tick级别的VWAP、短窗口订单失衡(资金流)指标,以及基于ATR的仓位大小。面板采用减少闪烁的柱状图,直观展示点差、ATR与资金流。系统会输出建议手数与1倍风险止损位,并支持自定义告警:低点差、强资金流、具备交易优势的行情状态均可触发提醒。自动交易功能被有意禁用;本项目的重心放在稳定可靠的信号生成与简洁友好的交互体验上。
preview
从基础到进阶:处理鼠标事件

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

阅读本文相关的此类技术资料,仅仅浏览和研究代码,绝对不足以理解其中涉及的过程。实际上,您需要编译出可执行程序,并在任意图表上运行它。只有这样,您才能体会到那些单靠看代码极难掌握的细节,例如结合键盘与鼠标来创建某些元素。
preview
从基础到进阶:对象事件(II)

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

本文将介绍由对象触发的最后三类事件的工作原理。理解这些内容会非常有意思,因为文末我们要实现的功能在很多人看来有些疯狂,但它完全可行,并且效果十分惊艳。
preview
将MQL5与数据处理软件包集成(第 5 部分):自适应学习与灵活性

将MQL5与数据处理软件包集成(第 5 部分):自适应学习与灵活性

本部分重点阐述如何基于历史 XAUUSD 数据构建一个灵活、自适应的交易模型,并为其 ONNX 导出做好准备,以便日后能够集成至实时交易系统中。
preview
MQL5自优化智能交易系统(第十四部分):将数据变换视为反馈控制器的可调参数

MQL5自优化智能交易系统(第十四部分):将数据变换视为反馈控制器的可调参数

数据预处理是一项作用强大,却极易被忽视的调参手段。它总是隐于“主角”们的光环之下:各类优化器、光鲜新颖的模型架构抢占了大部分的关注度。在预处理环节哪怕只是小幅提升,也会对收益与风险产生不成比例的、复利式的巨大影响。这一尚有大量探索空间的研究内容,往往被简化成一套固定流程,仅仅被当作达成目标的手段。实际上在此处信号既可能被有效放大,也同样可能遭到破坏。
preview
开发自定义市场情绪指标

开发自定义市场情绪指标

在本文中,我们开发一个自定义市场情绪指标,用于把市场状况分类为看涨、看跌、风险偏好(risk-on)、风险规避(risk-off)或中性。该指标采用多时间框架,帮助交易者更清晰地把握整体市场偏向并获得短期确认。
preview
从基础到中级:FileSave 和 FileLoad

从基础到中级:FileSave 和 FileLoad

在今天的文章中,我们将探讨几种使用 FileSave 和 FileLoad 库函数的方法。尽管由于它们在特定场景中带来的某些限制或困难,许多人认为它们的使用范围有限,但正确理解这两个函数的工作原理在某些情况下可以为我们节省大量精力。它们也是处理日志文件的绝佳方式。
preview
从基础到中级:文件随机访问(一)

从基础到中级:文件随机访问(一)

在今天的文章中,我们将首次探讨对文件内容的随机访问。这既适用于写入文件中的信息,也适用于读取文件中的信息。然而,由于该主题过于宽泛,无法在一篇文章中全面涵盖,因此我们在此仅限于介绍随机访问。