MQL5编程文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
从基础到中级:数组(一)

从基础到中级:数组(一)

本文是迄今为止所讨论的内容与新的研究阶段之间的过渡。要理解这篇文章,您需要阅读前面的文章。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
将互信息作为渐进特征选择的准则

将互信息作为渐进特征选择的准则

在本文中,我们展示了基于最优预测变量集与目标变量之间互信息渐进特征选择的MQL5实现。
preview
交易中的神经网络:搭配区段注意力的参数效率变换器(终篇)

交易中的神经网络:搭配区段注意力的参数效率变换器(终篇)

在之前的工作中,我们讨论了 PSformer 框架的理论层面,其中包括经典变换器架构的两大创新:参数共享(PS)机制,以及时空区段注意力(SegAtt)。在本文中,我们继续实现所提议方式的 MQL5 版本。
preview
开发回放系统(第 77 部分):新 Chart Trade(四)

开发回放系统(第 77 部分):新 Chart Trade(四)

在本文中,我们将介绍创建通信协议时需要考虑的一些措施和预防措施。这些都是非常简单明了的事情,所以我们在本文中不会详细介绍。但要了解会发生什么,您需要了解文章的内容。
preview
市场模拟(第一部分):跨期订单(一)

市场模拟(第一部分):跨期订单(一)

今天我们将开始第二阶段,研究市场回放/模拟系统。首先,我们将展示跨期订单的可能解决方案。我会向你展示解决方案,但它还不是最终的。这将是我们在不久的将来需要解决的一个问题的可能解决方案。
preview
Connexus请求解析(第六部分):创建HTTP请求与响应

Connexus请求解析(第六部分):创建HTTP请求与响应

在Connexus库系列文章的第六篇中,我们将聚焦于完整的HTTP请求,涵盖构成请求的各个组件。我们将创建一个表示整个请求的类,这将有助于将之前创建的各个类整合在一起。
preview
交易中的神经网络:配备注意力机制(MASAAT)的智代融汇(终章)

交易中的神经网络:配备注意力机制(MASAAT)的智代融汇(终章)

在上一篇文章中,我们讲述了多智代自适应框架 MASAAT,其用一组智代的融汇在不同数据尺度下对多模态时间序列进行交叉分析。今天我们将继续实现该框架方法的 MQL5 版本,并将这项工作带至逻辑完结。
preview
神经网络实践:绘制神经元

神经网络实践:绘制神经元

在本文中,我们将构建一个基本神经元。虽然它看起来很简单,许多人可能会认为这段代码完全微不足道,毫无意义,但我希望你在学习这个简单的神经元草图时能玩得开心。不要害怕修改代码,完全理解它才是目标。
preview
基于Python与MQL5的特征工程(第三部分):价格角度(2)——极坐标(Polar Coordinates)法

基于Python与MQL5的特征工程(第三部分):价格角度(2)——极坐标(Polar Coordinates)法

在本文中,我们将第二次尝试将任意市场的价格水平变化转化为对应的角度变化。此次,我们选择了比首次尝试更具数学复杂性的方法,而获得的结果表明,这一调整或许是正确的决策。今天,让我们共同探讨如何通过极坐标以有意义的方式计算价格水平变化所形成的角度,无论您分析的是何种市场。
preview
使用 Python 创建波动率预测指标

使用 Python 创建波动率预测指标

在本文中,我们将使用二元分类来预测未来的极端波动。此外,我们将利用机器学习开发极端波动预测指标。
preview
迁移至 MQL5 Algo Forge(第 2 部分):使用多个存储库

迁移至 MQL5 Algo Forge(第 2 部分):使用多个存储库

在本文中,我们将探讨在公共存储库中组织项目源代码存储的一种可能的方法。我们将把代码分发到不同的分支,为项目开发建立清晰方便的规则。
preview
交易中的神经网络:具有层化记忆的智代(终篇)

交易中的神经网络:具有层化记忆的智代(终篇)

我们继续致力于创建 FinMem 框架,其采用层化记忆方式,即模拟人类认知过程。这令该模型不仅能有效处理复杂的财务数据,还能适应新信号,显著提升了在动态变化市场中投资决策的准确性和有效性。
preview
从基础到中级:运算符优先级

从基础到中级:运算符优先级

这绝对是纯理论上最难解释的问题。这就是为什么你需要练习我们在这里讨论的所有内容。虽然这起初看起来很简单,但操作符的话题只有在实践中结合不断的教育才能理解。
preview
交易中的神经网络:配备注意力机制(MASAAT)的智代融汇

交易中的神经网络:配备注意力机制(MASAAT)的智代融汇

我们概述多智代自适应投资组合优化框架(MASAAT),其结合了注意力机制和时间序列分析。MASAAT 生成一组智代,分析价格序列和方向变化,能够在不同细节层次识别资产价格的明显波动。
preview
重新定义MQL5与MetaTrader 5指标

重新定义MQL5与MetaTrader 5指标

MQL5中一种创新的指标信息收集方法,使开发者能够向指标传递自定义输入参数以进行即时计算,从而实现了更灵活、更高效的数据分析。这种方法在算法交易中尤为实用,因为它能突破传统限制,增强对指标所处理信息的掌控力。
preview
以 MQL5 实现强化分类任务的融汇方法

以 MQL5 实现强化分类任务的融汇方法

在本文中,我们讲述以 MQL5 实现若干融汇分类器,并讨论了它们在不同状况下的功效。
preview
您应当知道的 MQL5 向导技术(第 31 部分):选择损失函数

您应当知道的 MQL5 向导技术(第 31 部分):选择损失函数

损失函数是机器学习算法的关键量值,即量化给定参数集相比预期目标的性能来为训练过程提供反馈。我们在 MQL5 自定义向导类中探索该函数的各种格式。
preview
创建MQL5交易管理员面板(第九部分):代码组织(1)

创建MQL5交易管理员面板(第九部分):代码组织(1)

这次将深入探讨处理大型代码库时遇到的挑战。我们将探索在MQL5中进行代码组织的最佳实践,并采用一种实用方法来提升我们交易管理面板源代码的可读性和可扩展性。此外,我们致力于开发可复用的代码组件,这些组件有可能为其他开发者在其算法开发过程中带来益处。请继续阅读并参与讨论。
preview
从基础到中级:模板和类型名称 (五)

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

在本文中,我们将探讨模板的最后一个简单用例,并讨论在代码中使用 typename 的好处和必要性。虽然这篇文章乍一看可能有点复杂,但为了以后使用模板和 typename,正确理解它很重要。
preview
市场模拟(第五部分):创建 C_Orders 类(二)

市场模拟(第五部分):创建 C_Orders 类(二)

在本文中,我将解释 Chart Trade 如何与 EA 交易一起处理平仓请求,以关闭用户的所有未平仓头寸。这听起来简单,但你需要知道如何应对一些复杂情况。
preview
具有强化学习和灭绝失败个体的进化交易算法(ETARE)

具有强化学习和灭绝失败个体的进化交易算法(ETARE)

在本文中,我介绍了一种创新的交易算法,其针对外汇交易结合了进化算法与深度强化学习。该算法利用低效个体灭绝机制来优化交易策略。
preview
从基础到中级:递归

从基础到中级:递归

在本文中,我们将探讨一个非常有趣且颇具挑战性的编程概念,尽管应该非常谨慎地对待它,因为它的误用或误解会将相对简单的程序变成不必要的复杂程序。但是,当正确使用并完全适应同样合适的情况时,递归成为解决问题的绝佳盟友,否则这些问题会更加费力和耗时。此处提供的材料仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
精通日志记录(第五部分):通过缓存和轮转优化处理程序

精通日志记录(第五部分):通过缓存和轮转优化处理程序

本文通过为处理器添加格式化器、引入用于管理执行周期的 CIntervalWatcher 类、以及采用缓存和文件轮转进行优化,并辅以性能测试和实际示例,从而改进了该日志库。通过这些改进,我们确保了一个高效、可扩展且能适应不同开发场景的日志系统。
preview
在MQL5中创建交易管理面板(第九部分):代码组织(5):分析面板(AnalyticsPanel)类

在MQL5中创建交易管理面板(第九部分):代码组织(5):分析面板(AnalyticsPanel)类

在本文中,我们将探讨如何获取实时市场数据和交易账户信息,执行各种计算,并将结果展示在自定义面板上。为此,我们将深入开发一个分析面板(AnalyticsPanel)类,该类封装了所有这些功能,包括面板创建功能。这项工作是我们正在进行的新建管理面板智能交易系统(EA)扩展工作的一部分,旨在运用模块化设计原则和代码组织的最佳实践来引入高级功能。
preview
市场模拟(第三部分):性能问题

市场模拟(第三部分):性能问题

我们经常需要后退一步,然后继续前进。在本文中,我们将展示所有必要的更改,以确保鼠标和 Chart Trade 指标不会中断。作为奖励,我们还将介绍未来将广泛使用的其他头文件中发生的其他更改。
preview
圆搜索算法(CSA)

圆搜索算法(CSA)

本文提出一种基于圆几何特性的新型元启发式优化算法——圆搜索算法(CSA)。该算法通过模拟切线方向上的点移动机制,在解空间中实现全局探索与局部开发的协同优化。
preview
您应当知道的 MQL5 向导技术(第 54 部分):搭配混合 SAC 和张量的强化学习

您应当知道的 MQL5 向导技术(第 54 部分):搭配混合 SAC 和张量的强化学习

软性参与者-评论者是一种强化学习算法,我们曾在之前的系列文章中考察过 Python 和 ONNX,作为高效的网络训练方式。我们重新审视该算法,意在利用张量,即 Python 中常用的计算图形。
preview
从基础到中级:数组和字符串(二)

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

在本文中,我将展示,尽管我们仍处于编程的一个非常基本的阶段,但我们已经可以实现一些有趣的应用程序。在这种情况下,我们将创建一个相当简单的密码生成器。通过这种方式,我们将能够应用到目前为止已经解释过的一些概念。此外,我们将研究如何为一些具体问题制定解决方案。
preview
探索达瓦斯箱体突破策略中的高级机器学习技术

探索达瓦斯箱体突破策略中的高级机器学习技术

达瓦斯箱体突破策略由尼古拉斯·达瓦斯(Nicolas Darvas)提出,是一种技术交易方法:当股价突破预设的"箱体"区间上沿时,视为潜在买入信号,表明强劲的上升动能。本文将以该策略为例,探讨三种高级机器学习技术的应用。其中包括:利用机器学习模型直接生成交易信号(而非仅过滤交易);采用连续型信号(而非离散型信号);使用基于不同时间框架训练的模型进行交易验证。
preview
MQL5 交易工具包(第 7 部分):使用最近取消的挂单函数扩展历史管理 EX5 库

MQL5 交易工具包(第 7 部分):使用最近取消的挂单函数扩展历史管理 EX5 库

了解如何完成历史管理 EX5 库中最终模块的创建,重点关注负责处理最近取消的挂单的函数。这将为您提供使用 MQL5 有效检索和存储与已取消挂单相关的关键详细信息的工具。
preview
市场模拟(第六部分):将信息从 MetaTrader 5 传输到 Excel

市场模拟(第六部分):将信息从 MetaTrader 5 传输到 Excel

许多人,尤其是非程序员,发现在 MetaTrader 5 和其他程序之间传输信息非常困难。其中一个程序就是 Excel。许多人使用 Excel 作为管理和维护风险控制的一种方式。这是一个优秀的程序,易于学习,即使对于那些不是 VBA 程序员的人来说也是如此。在这里,我们将看看如何在 MetaTrader 5 和 Excel 之间建立连接(一种非常简单的方法)。
preview
财经建模中合成数据的生成式对抗网络(GAN)(第 2 部分):创建测试合成品种

财经建模中合成数据的生成式对抗网络(GAN)(第 2 部分):创建测试合成品种

在本文中,我们将利用生成式对抗网络(GAN)创建一个合成品种,涉及生成逼真的财经数据,即模仿真实市场金融产品(例如 EURUSD)的行为。GAN 模型从历史市场数据中学习形态和波动性,并创建拥有相似特征的合成价格数据。
preview
数据科学和机器学习(第 33 部分):MQL5 中的 Pandas 数据帧,为机器学习收集数据更加容易

数据科学和机器学习(第 33 部分):MQL5 中的 Pandas 数据帧,为机器学习收集数据更加容易

当与机器学习模型共事时,确保用于训练、验证和测试的数据一致性必不可少。在本文中,我们将创建我们自己的 MQL5 版本 Pandas 函数库,确保使用统一方式来处理机器学习数据;这样做是为确保在 MQL5 内部和外部应用相同的数据,其中大部分发生在训练阶段。
preview
市场模拟(第二部分):跨期订单(二)

市场模拟(第二部分):跨期订单(二)

与上一篇文章中所做的不同,这里我们将使用 EA 交易来测试选择选项。虽然这还不是最终的解决方案,但目前已经足够了。在本文的帮助下,您将能够理解如何实现一种可能的解决方案。
preview
市场模拟(第七部分):套接字(一)

市场模拟(第七部分):套接字(一)

套接字,你知道它们在 MetaTrader 5 中的用途或使用方法吗?如果答案是否定的,那么让我们从研究它们开始。在今天的文章中,我们将介绍一些基础知识。由于有几种方法可以做同样的事情,而且我们总是对结果感兴趣,我想证明确实有一种简单的方法可以将数据从 MetaTrader 5 传输到其他程序,如 Excel。然而,主要目的不是将数据从 MetaTrader 5 传输到 Excel,而是相反,即将数据从 Excel 或任何其他程序传输到 MetaTrader 5。
preview
日志记录精通指南(第三部分):探索日志处理器(Handlers)实现方案

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

在本文中,我们将探索日志库中"处理器"(handlers)的概念,理解其工作原理,并创建三种基础实现:控制台、数据库和文件。我们将覆盖从处理器的基本结构到实际测试,为后续文章中的完整功能实现奠定基础。
preview
在 MQL5 中创建交易管理面板(第九部分):代码组织(三):通信模块

在 MQL5 中创建交易管理面板(第九部分):代码组织(三):通信模块

欢迎参与本次深度讨论,我们将揭示 MQL5 界面设计的最新进展,着重介绍重新设计的通信面板,并继续我们关于使用模块化原则构建新管理面板的系列文章。我们将逐步开发 CommunicationsDialog 类,并详细解释如何从 Dialog 类进行继承。此外,在我们的开发过程中,还将利用数组(arrays)和 ListView 类。获取可行的方案,以提升您的 MQL5 开发技能——请阅读本文,并在评论区加入讨论!
preview
从基础到中级:模板和类型名称(三)

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

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

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

本文解释了如何处理您可能遇到的最困难的编程情况之一:在同一个函数或过程模板中使用不同的类型。尽管我们大部分时间只关注函数,但这里介绍的所有内容都是有用的,并且可以应用于过程。
preview
集成学习模型中的门控机制

集成学习模型中的门控机制

在本文中,我们继续探讨集成模型,重点讨论“门控”的概念,尤其是门控如何通过整合模型输出来提升预测准确性或模型泛化能力。