MQL4和MQL5编程文章

icon

在众多发表的文章中研究 MQL5语言编程交易策略 的多数由您—我们 MQL5.community的会员所作。文章以类别分组来帮助您迅速找到任何有关MQL5编程问题的答案:集成,测试,交易策略等等。

Follow our 新发表讨论它们在 MQL5.community论坛!

添加一个新的文章
最近 | 最佳
preview
交易中的神经网络:智能预测流程(结论)

交易中的神经网络:智能预测流程(结论)

本文深入介绍 SwiGLU 嵌入层如何挖掘隐藏的市场规律,以及Decoder-Only Transformer 架构内的稀疏混合专家模型,如何在合理的计算开销下提升预测精度。本文详解将 Time‑MoE 框架集成至 MQL5 与 OpenCL 的实现方法,并提供模型配置与训练的分步教程。
preview
您应该了解的MQL5向导技巧(第七十二部分):MACD与OBV组合形态的监督学习应用

您应该了解的MQL5向导技巧(第七十二部分):MACD与OBV组合形态的监督学习应用

本文将承接前一篇文章,之前我们介绍了MACD与OBV指标组合,本文将探讨如何通过机器学习对这一指标组合进行优化增强。MACD属于趋势指标,OBV属于成交量指标,二者为互补指标组合。本文采用卷积神经网络机器学习方案,通过有理二次核来设定网络卷积核尺寸与通道数量,从而对这套指标组合的预测结果进行微调优化。与之前类似,所有逻辑都封装在自定义信号类文件中,可配合MQL5向导直接生成智能交易系统(EA)。
preview
数据科学与机器学习(第四十六部分):在Python中使用N-BEATS进行股票市场预测

数据科学与机器学习(第四十六部分):在Python中使用N-BEATS进行股票市场预测

N-BEATS是一款革新性的深度学习模型,专为时间序列预测打造。该模型的初衷是超越ARIMA、PROPHET、VAR等传统时间序列预测模型。在本文中,我们将探讨该模型,并利用其实现股市行情预测。
preview
极值优化(EO)

极值优化(EO)

本文介绍极值优化算法(EO),这是一种受Bak-Sneppen(巴克–斯内彭)自组织临界性模型启发的优化方法,通过淘汰系统中表现最差的组件来实现演化。该算法的改进种群版本表明,其设计已从理论原则转向更注重实际效率,由此构建出高效的计算工具。
preview
您应该了解的MQL5向导技巧(第七十四部分):结合监督学习运用一目均衡表与ADX-Wilder形态

您应该了解的MQL5向导技巧(第七十四部分):结合监督学习运用一目均衡表与ADX-Wilder形态

本文为前一篇文章的延续,之前我们介绍了一目均衡表(Ichimoku)与ADX指标组合,本篇将探讨如何通过监督学习对这一指标组合进行优化改进。一目均衡表与ADX是一组互补型指标组合,前者侧重支撑/阻力判断,后者侧重趋势识别。我们采用的监督学习方案基于深度谱混合核神经网络,对该指标组合的预测结果进行精细调优。与之前相同,相关逻辑封装在自定义信号类文件中,可配合MQL5向导直接组装成智能交易系统(EA)。
preview
市场模拟(第 23 部分):仓位视图(一)

市场模拟(第 23 部分):仓位视图(一)

接下来我们将要介绍的内容,在理论和概念方面要复杂得多。我会让这些材料尽可能简单易懂。编程部分本身相当简单明了。但是,如果你不了解背后的理论,那么在将回放模拟系统改进或调整以适应不同于我将要展示的任务时,你就几乎没有任何可用于进一步改进或适配系统的实际依据。我不希望你只是编译和使用我提供的代码。我希望你能学习、理解,并且如果可能的话,能够创造出更好的东西。
preview
从基础到中级:继承

从基础到中级:继承

毫无疑问,要理解本文所述材料的工作原理和原因,你需要投入大量时间。这是因为这里将要展示的所有内容最初都是面向对象编程的,但实际上它们是基于结构化编程的原理。
preview
您应该了解的MQL5向导技巧(第六十八部分):结合余弦核网络使用TRIX与威廉百分比范围形态

您应该了解的MQL5向导技巧(第六十八部分):结合余弦核网络使用TRIX与威廉百分比范围形态

在前一篇中,我们介绍了三重平滑指数平均线(TRIX)与威廉百分比范围(WPR)指标组合,本文承接前文,将探讨如何通过机器学习对这一指标组合进行扩展优化。TRIX属于趋势指标,威廉百分比属于支撑/阻力震荡指标,二者形成互补。我们的机器学习方案采用卷积神经网络,网络结构中集成了余弦核函数,用于对该指标组合的预测结果进行精细调优。与之前类似,所有逻辑都封装在自定义信号类文件中,可配合MQL5向导直接生成智能交易系统(EA)。
preview
竞争性学习算法(CLA)

竞争性学习算法(CLA)

本文介绍了竞争性学习算法(CLA),这是一种基于模拟教育过程的新型元启发式优化方法。该算法将解的种群组织为若干班级,班级中包含学生,而每个班级中最优的学生充当教师。其中代理通过三种机制进行学习:跟随班级中的最优解、利用个人经验以及在班级之间共享知识。
preview
MQL5中的量子神经网络(第三部分):基于量子比特的虚拟量子处理器

MQL5中的量子神经网络(第三部分):基于量子比特的虚拟量子处理器

本文聚焦于构建一套搭载真正的量子模拟器的交易系统,而非仅使用数学类比。该系统通过3个虚拟量子比特、量子门以及量子叠加原理对市场进行分析,并以MQL5编写为MetaTrader 5平台的交易EA实现。其核心突破在于从简单模拟转向真正遵循量子原理处理金融信息。
preview
决斗者算法

决斗者算法

如果您的交易策略能像真实的决斗者一样互相较量、彼此学习,会怎样?决斗者算法(Duelist Algorithm)是一种新的优化方法:在该算法中,不同的参数组合会像决斗者一样相互较量,争夺最优解的位置。
preview
MetaTrader 5中交易品种及其价差的小时级波动分析

MetaTrader 5中交易品种及其价差的小时级波动分析

带简单移动平均线(SMA)的ProSpread季节性指数指标是一款技术分析工具,用于识别价格走势中的季节性规律、分析特定交易时段的价格行为,该指标既支持单个交易品种,也可用于两个资产之间的价差分析。同时,它能够可视化价格定向波动的统计概率。
preview
MQL5 向导技巧(第七十七部分):使用 Gator 振荡器与积累/派发振荡器(AD Oscillator)

MQL5 向导技巧(第七十七部分):使用 Gator 振荡器与积累/派发振荡器(AD Oscillator)

Gator 振荡器(Gator Oscillator)由比尔·威廉姆斯(Bill Williams)开发,与累积/派发振荡器(Accumulation/Distribution Oscillator)是另一对可在 MQL5 EA 中协同使用的指标组合。我们使用 Gator 振荡器来确认趋势,同时使用 AD 振荡器通过检查成交量来确认趋势。在探索这种指标组合时,我们一如既往地使用 MQL5 向导来构建和测试它们的潜力。
preview
市场模拟(第 21 部分):SQL 入门(四)

市场模拟(第 21 部分):SQL 入门(四)

你们中的许多人可能比我更有数据库工作经验,因此可能会有不同的看法。由于有必要解释数据库为何以这样的方式设计,以及SQL为何具有这样的形式 — 尤其是主键和外键为何出现 — 因此有些内容必须保持一定的抽象性。
preview
从基础到中级:结构(七)

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

在今天的文章中,我们将展示如何着手解决与构建不同元素以及创造更简单、更具吸引力的解决方案相关的问题。尽管内容以学习为导向,因此并不构成生产代码,但深入理解这里将涵盖的概念和知识至关重要。这样,今后我们就能理解我们将展示的代码。
preview
MQL5 向导技巧(第七十七部分):使用 Gator 振荡器与积累/派发振荡器(AD Oscillator)

MQL5 向导技巧(第七十七部分):使用 Gator 振荡器与积累/派发振荡器(AD Oscillator)

Gator 振荡器(Gator Oscillator)由比尔·威廉姆斯(Bill Williams)开发,与累积/派发振荡器(Accumulation/Distribution Oscillator)是另一对可在 MQL5 EA 中协同使用的指标组合。我们使用 Gator 振荡器来确认趋势,同时使用 AD 振荡器通过检查成交量来确认趋势。在探索这种指标组合时,我们一如既往地使用 MQL5 向导来构建和测试它们的潜力。
preview
您应该了解的MQL5向导技巧(第七十六部分):利用AO形态与包络通道进行监督学习建模

您应该了解的MQL5向导技巧(第七十六部分):利用AO形态与包络通道进行监督学习建模

本文承接前一篇文章。之前我们介绍了动量震荡指标(AO)与包络通道组合指标,本篇将探讨如何通过监督学习对该组合进行优化增强。动量震荡指标与包络通道是一组在趋势识别与支撑/阻力判断方面彼此互补的指标组合。我们采用的监督学习模型为卷积神经网络(CNN),该网络通过点积核函数与跨时间注意力机制自适应调整卷积核与通道维度。与之前相同,相关逻辑封装在自定义信号类文件中,可配合MQL5向导组装成智能交易系统(EA)。
preview
从新手到专家:报表 EA — 搭建工作流程

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

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

希尔伯特-施密特独立性判据(HSIC)

本文讨论了非参数 HSIC(希尔伯特-施密特独立性判据)统计检验,该检验旨在识别数据中的线性和非线性依赖关系。本文提出了两种用 MQL5 语言计算 HSIC 的算法实现:精确置换测试和伽马近似法。该方法的有效性通过模拟特征与目标变量之间非线性关系的合成数据得到了验证。
preview
您应该了解的MQL5向导技巧(第七十九部分):在监督学习中使用鳄鱼震荡指标和A/D震荡指标

您应该了解的MQL5向导技巧(第七十九部分):在监督学习中使用鳄鱼震荡指标和A/D震荡指标

在前一篇文章中,我们完成了对鳄鱼震荡指标与集散量(A/D)震荡指标组合的研究,分析二者在原生信号模式下的应用效果。这两个指标互为补充:鳄鱼震荡指标属于趋势指标,A/D震荡指标属于量能指标。本文作为续篇,研究如何利用监督式学习,优化前文所探讨的各类特征形态。我们采用的监督学习模型为卷积神经网络(CNN),该模型结合核回归与点积相似度,对卷积核和通道进行尺度配置。一如既往,我们将逻辑写在自定义信号类文件中,该文件可配合MQL5向导来生成EA。
preview
交易中的神经网络:频域异常检测(终篇)

交易中的神经网络:频域异常检测(终篇)

我们继续推进 CATCH 框架的实现。该框架结合傅里叶变换与频域分块,以确保能够准确检测市场异常。在本文中,我们将完成对所提方法的这一实现,并基于真实历史数据测试新模型。
preview
开发多币种 EA(第 28 部分):添加平仓管理器

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

在并行运行多个策略时,您可能希望定期关闭所有持仓,并重新启动策略。现有代码仅允许通过手动操作来实现这一行为。让我们尝试将这一部分自动化。
preview
神经网络在交易中的应用:不依赖特定数据的时间序列泛化(Mamba4Cast)

神经网络在交易中的应用:不依赖特定数据的时间序列泛化(Mamba4Cast)

在本文中,我们介绍了 Mamba4Cast 框架,并深入探讨了其关键组件之一:基于时间戳的位置编码。本文展示了如何结合数据的日历结构来构建时间嵌入。
preview
MQL5 中的量子神经网络(第二部分):基于 ALGLIB 马尔可夫矩阵的神经网络反向传播训练

MQL5 中的量子神经网络(第二部分):基于 ALGLIB 马尔可夫矩阵的神经网络反向传播训练

本文介绍了一种创新的量子神经网络架构,用于结合量子力学原理与现代机器学习方法进行算法交易。该系统引入了量子效应(共振、干涉、退相干)、不同时间尺度的多级记忆、结合 ALGLIB 库的马尔可夫链以及自适应参数控制。整个实现过程使用 MQL5 内置的矩阵/向量类型完成,从而降低了在 MetaTrader 5 中实现该系统的门槛。
preview
交易中的神经网络:一种跨领域时间序列预测框架(TimeFound)

交易中的神经网络:一种跨领域时间序列预测框架(TimeFound)

本文将分步搭建 TimeFound 智能模型的核心模块,使其适配真实场景下的时序预测任务。如果你希望了解神经网络分块算法在 MQL5 中的工程落地实现,那么本文正是为你准备的。
preview
在MQL5中自定义交易品种:创建三维K线自定义品种

在MQL5中自定义交易品种:创建三维K线自定义品种

本文详细讲解创新指标文件3DBarCustomSymbol.mq5的完整制作流程,该指标可在MetaTrader 5中生成自定义品种,将价格、时间、成交量与波动率整合为一体化三维可视化图形。我们会讲解其数学理论基础、系统架构、实操实现步骤,以及在交易策略中的实际应用方式。
preview
交易中的神经网络:自适应周期分段(结论)

交易中的神经网络:自适应周期分段(结论)

我们诚邀您一同探索LightGTS的精彩世界 —— 这是一款轻量但性能强大的时间序列预测框架,融合了自适应卷积、旋转位置编码(RoPE)与创新注意力机制。本文将详细阐述框架内全部组件:从分块(patch)构建,一直到解码器内复杂的混合专家模块,这些实现思路已具备集成到MQL5项目中的条件。您将了解LightGTS如何令自动化交易提升至全新高度!
preview
市场模拟(第 19 部分):SQL 入门(二)

市场模拟(第 19 部分):SQL 入门(二)

正如我们在第一篇关于 SQL 的文章中所解释的那样,没有必要花费时间编写程序来执行 SQL 中已经内置的功能。然而,如果不了解基础知识,你就无法使用 SQL 或充分利用这个工具所提供的一切功能。因此,在本文中,我们将探讨如何在数据库中执行基本任务。
preview
Parafrac震荡器:抛物线SAR与分形指标的组合

Parafrac震荡器:抛物线SAR与分形指标的组合

我们将探究如何把抛物线SAR与分形指标相结合,构建一款全新的震荡器。通过融合这两种工具各自独有的优势,交易者有望开发出一套更完善且更高效的交易策略。
preview
您应该了解的MQL5向导技巧(第七十八部分):鳄鱼振荡器与AD指标的市场韧性策略

您应该了解的MQL5向导技巧(第七十八部分):鳄鱼振荡器与AD指标的市场韧性策略

本文介绍鳄鱼震荡器与积累/派发(AD)指标系统化交易方法的后半部分内容。作者新增五种信号形态,演示如何过滤虚假走势、捕捉早期反转,并在多时间周期上实现信号共振。文中附带清晰的代码示例与性能测试结果,为 MQL5 开发者搭建了从理论到实践的桥梁。
preview
从新手到专家:使用 Reporting EA 打造详尽的交易报告

从新手到专家:使用 Reporting EA 打造详尽的交易报告

本文深入探讨如何丰富交易报告的细节,并以 PDF 格式通过电子邮件发送最终报告。本文是前序文章内容的延伸,我们将继续探索如何利用 MQL5 与 Python,生成并定时输出格式专业、使用便捷的交易报告。跟随本文,你将了解如何在 MQL5 生态中优化交易报告的生成流程。
preview
交易中的神经网络:面向准确分类的有效特征提取(Mantis)

交易中的神经网络:面向准确分类的有效特征提取(Mantis)

认识Mantis —— 一款基于 Transformer 架构的轻量级时间序列分类基础模型,采用对比预训练与混合注意力机制,实现创纪录的精度,并具备出色的可扩展性。
preview
科学家群体优化(CoSO):理论

科学家群体优化(CoSO):理论

元启发式方法中交易策略有效优化的秘诀。科学家群体优化算法是一种新型的基于种群的算法,其灵感来源于科学界的运作机制。与传统的自然启发式隐喻不同,CoSO 模型展现了人类科学活动的独特方面:在期刊上发表成果、竞争资助以及组建研究团队。
preview
从基础到中级:函数指针

从基础到中级:函数指针

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

协方差矩阵自适应演化策略(CMA-ES)

本文探讨了一种最有趣的非梯度优化算法,该算法能够学习理解目标函数的几何特性。我们将重点关注对 CMA-ES 的经典实现,并稍作修改 — 用幂律分布代替正态分布。我们将深入探究算法背后的数学原理以及实际实现方式,并验证 CMA-ES 在哪些方面无懈可击,以及在哪些方面应避免使用。
preview
数据科学与机器学习(第四十五部分):利用Facebook的Prophet模型进行外汇时间序列预测

数据科学与机器学习(第四十五部分):利用Facebook的Prophet模型进行外汇时间序列预测

Prophet模型由Facebook研发,是一款稳健的时间序列预测工具,能够自动捕捉趋势、季节性与节假日效应,且几乎无需人工调整。该模型已被广泛应用于需求预测与商业规划。在本文中,我们将探讨Prophet模型在外汇交易品种波动率预测中的效果,展示其如何应用于传统商业场景之外的任务。
preview
MQL5中的自优化智能交易系统(第十一部分):线性代数基础入门

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

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

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

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

科学家群体优化(CoSO):算法实现

我们继续讨论“科学家群体优化”这一主题。不应将 CoSO 视为现成的解决方案,而应将其视为一个有前景的研究平台。经过适当开发,CoSO 可以在那些适应性和应变能力至关重要、计算时间不是关键的任务中找到自己的定位。
preview
通过套接字将 MetaTrader 的 Tick 信息从 MQL5 服务传输到 Python 应用程序

通过套接字将 MetaTrader 的 Tick 信息从 MQL5 服务传输到 Python 应用程序

有时候,并非所有东西都能用 MQL5 语言编程实现。即使有可能在 MQL5 中转换现有的高级库,那也将是一项耗时的任务。本文试图证明,我们可以通过使用套接字将 MetaTrader 服务中的买卖报价和时间等 tick 信息传输到 Python 应用程序中,从而绕过对 Windows 操作系统的依赖。