MQL4和MQL5编程文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
您应当知道的 MQL5 向导技术(第 07 部分):树状图

您应当知道的 MQL5 向导技术(第 07 部分):树状图

出于分析和预测目的而把数据分类是机器学习中一个非常多样化的领域,它具有大量的方式和方法。本文着眼于一种这样的方式,即集聚层次化分类。
preview
开发回放系统 — 市场模拟(第 11 部分):模拟器的诞生(I)

开发回放系统 — 市场模拟(第 11 部分):模拟器的诞生(I)

为了依据数据形成柱线,我们必须放弃回放,并开始研发一款模拟器。 我们将采用 1-分钟柱线,因为它们所需的难度最小。
preview
神经网络变得简单(第 67 部分):按照过去的经验解决新任务

神经网络变得简单(第 67 部分):按照过去的经验解决新任务

在本文中,我们将继续讨论收集数据至训练集之中的方法。显然,学习过程需要与环境不断互动。不过,状况可能会有所不同。
preview
开发回放系统 — 市场模拟(第 16 部分):新的类系统

开发回放系统 — 市场模拟(第 16 部分):新的类系统

我们需要更好地组织我们的工作。 代码正在快速增长,如果现在不做,那么以后就变得更不可能了。 我们分而治之。 MQL5 支持类,可协助实现此任务,但为此,我们需要对类有一定的了解。 大概最让初学者困惑的是继承。 在本文中,我们将看到如何以实用和简单的方式来运用这些机制。
preview
开发回放系统(第 37 部分):铺平道路 (一)

开发回放系统(第 37 部分):铺平道路 (一)

在这篇文章中,我们终于要开始做我们早就想做的事情了。之前,由于缺乏 "坚实的基础",我没有信心公开介绍这部分内容。现在我有了这样做的基础。我建议您尽可能集中精力理解本文的内容。我指的不仅仅是阅读,我想强调的是,如果你不理解这篇文章,你可能就是完全放弃了理解以后文章内容的希望。
preview
机器学习中的量化(第 2 部分):数据预处理、表格选择、训练 CatBoost 模型

机器学习中的量化(第 2 部分):数据预处理、表格选择、训练 CatBoost 模型

本文探讨了量化在树模型构建中的实际应用。探讨了选择量化表和数据预处理的方法。没有使用复杂的数学方程。
preview
神经网络变得简单(第 71 部分):目标条件预测编码(GCPC)

神经网络变得简单(第 71 部分):目标条件预测编码(GCPC)

在之前的文章中,我们讨论了决策转换器方法,以及从其衍生的若干种算法。我们测验了不同的目标设定方法。在测验期间,我们依据各种设定目标的方式进行操作。然而,该模型早期研究时验算过的轨迹,始终处于我们的关注范围之外。在这篇文章中。我想向您介绍一种填补此空白的方法。
preview
股票交易中的非线性回归模型

股票交易中的非线性回归模型

股票交易中的非线性回归模型:能否预测金融市场?让我们考虑创建一个用于预测欧元兑美元(EURUSD)汇率的模型,并基于此模型制作两个交易机器人——分别使用Python和MQL5语言。
preview
如何利用 MQL5 创建简单的多币种智能交易系统(第 4 部分):三角移动平均线 — 指标信号

如何利用 MQL5 创建简单的多币种智能交易系统(第 4 部分):三角移动平均线 — 指标信号

本文中的多币种 EA 是智能交易系统或交易机器人,能从一个品种的图表里交易(开单、平单、及管理订单,例如:尾随止损和止盈)多个品种(货币对)。这次我们只会用到 1 个指标,即多时间帧或单一时间帧中的三角移动平均线。
preview
神经网络变得简单(第 90 部分):时间序列的频率插值(FITS)

神经网络变得简单(第 90 部分):时间序列的频率插值(FITS)

通过研究 FEDformer 方法,我们打开了时间序列频域表述的大门。在这篇新文章中,我们将继续一开始的主题。我们将研究一种方法,据其我们不仅能进行分析,还可以预测特定区域的后续状态。
preview
用置信区间估计未来效能

用置信区间估计未来效能

在这篇文章中,我们深入研究自举法技术的应用,作为评估自动化策略未来效能的一种手段。
preview
基于转移熵的时间序列因果分析

基于转移熵的时间序列因果分析

在本文中,我们讨论了如何将统计因果关系应用于识别预测变量。我们将探讨因果关系与传递熵(Transfer Entropy, TE)之间的联系,并展示用于检测两个变量之间信息方向性传递的MQL5代码。
preview
射箭算法(Archery Algorithm, AA)

射箭算法(Archery Algorithm, AA)

本文详细探讨了受射箭启发的优化算法——射箭算法(Archery Algorithm, AA),重点介绍了如何使用轮盘赌法(roulette method)作为选择“箭矢”目标区域的机制。该方法允许评估解决方案的质量,并选择最有希望的位置进行进一步的探究。
preview
DoEasy. 控件 (第 3 部分): 创建绑定控件

DoEasy. 控件 (第 3 部分): 创建绑定控件

在本文中,我将创建绑定到基准元素的从属控件。 开发任务将使用基准控件功能执行。 此外,我还会稍微修改一下图形元素阴影对象,因为把它应用于任何有阴影的对象时会遇到一些逻辑错误。
DoEasy 库中的其他类(第七十部分):扩展功能并自动更新图表对象集合
DoEasy 库中的其他类(第七十部分):扩展功能并自动更新图表对象集合

DoEasy 库中的其他类(第七十部分):扩展功能并自动更新图表对象集合

在本文中,我将扩展图表对象的功能,并编排图表导航、创建屏幕截图、以及为图表保存和应用模板。 此外,我还将实现图表对象集合、其窗口和其内指标的自动更新。
preview
神经网络变得简单(第 61 部分):离线强化学习中的乐观情绪问题

神经网络变得简单(第 61 部分):离线强化学习中的乐观情绪问题

在离线学习期间,我们基于训练样本数据优化了智能体的政策。成品政策令智能体对其动作充满信心。然而,这种乐观情绪并不总是正当的,并且可能会在模型操作期间导致风险增加。今天,我们要寻找降低这些风险的方法之一。
preview
开发多币种 EA 交易(第 6 部分):自动选择实例组

开发多币种 EA 交易(第 6 部分):自动选择实例组

在优化交易策略后,我们会收到一组参数。我们可以使用它们在一个 EA 中创建多个交易策略实例。以前,我们都是手动操作。在此,我们将尝试自动完成这一过程。
preview
在MQL5中创建交易管理员面板(第六部分):多功能界面(一)

在MQL5中创建交易管理员面板(第六部分):多功能界面(一)

交易管理员的角色不仅限于Telegram通信,他们还可以参与各种控制活动,包括订单管理、持仓跟踪和界面定制。在本文中,我们将分享有关扩展程序以支持MQL5中多种功能的实用见解。此次更新旨在克服当前管理员面板主要聚焦于通信这一局限,使其能够处理更广泛的任务。
preview
DoEasy 函数库中的时间序列(第五十八部分):指标缓冲区数据的时间序列

DoEasy 函数库中的时间序列(第五十八部分):指标缓冲区数据的时间序列

关于操控时间序列的主题总结,诸如组织存储、针对存储在指标缓冲区中的数据进行搜索和分类,如此即可在程序里利用函数库创建指标值,并进一步据其执行分析。 函数库的所有集合类的一般概念,能够轻松地在相应的集合中找到必要的数据。 在今天创建的类中,也可分别完成同样功能。
preview
Python中的虚假回归(伪回归)

Python中的虚假回归(伪回归)

虚假回归通常发生在两个时间序列之间仅因偶然因素而展现出高度相关性时,这会导致回归分析产生误导性的结果。在这种情况下,尽管变量之间可能看似存在关联,但这种关联仅仅是巧合,模型可能并不可靠。
preview
重构经典策略(第十一部分)移动平均线的交叉(二)

重构经典策略(第十一部分)移动平均线的交叉(二)

移动平均线和随机振荡器可用于生成趋势跟踪交易信号。然而,这些信号只有在价格行为发生之后才会被观察到。我们可以有效地利用人工智能克服技术指标中这种固有的滞后性。本文将教您如何创建一个完全自主的人工智能驱动型EA,这种方式可以改进您现有的任何交易策略。即使是最古老的交易策略也可以被改进。
preview
价格行为分析工具包开发(第五部分):波动率导航智能交易系统(Volatility Navigator EA)

价格行为分析工具包开发(第五部分):波动率导航智能交易系统(Volatility Navigator EA)

判断市场方向或许相对简单,但把握入场时机却颇具挑战。作为“价格行为分析工具包开发”系列文章的一部分,我很高兴再为大家介绍一款能够提供入场点、止盈水平和止损设置位置的工具。为实现这一目标,我们采用了MQL5编程语言。让我们在本文中深入探讨每一步。
preview
因果推理中的倾向性评分

因果推理中的倾向性评分

本文探讨因果推理中的匹配问题。匹配用于比较数据集中的类似观察结果,这对于正确确定因果关系和消除偏见是必要的。作者解释了这如何有助于构建基于机器学习的交易系统,这些系统在没有经过训练的新数据上变得更加稳定。倾向性评分在因果推理中起着核心作用并被广泛应用。
preview
密码锁算法(CLA)

密码锁算法(CLA)

在本文中,我们将重新考虑密码锁,将它们从安全机制转变为解决复杂优化问题的工具。让我们探索密码锁的世界,不再将其视为简单的安全装置,而是作为优化问题新方法的灵感来源。我们将创建一整群“锁”,其中每把锁都代表问题的一个独特解决方案。然后,我们将开发一种算法来“破解”这些锁,并从机器学习到交易系统开发等多个领域中找到最优解。
preview
神经网络实验(第 7 部分):传递指标

神经网络实验(第 7 部分):传递指标

传递指标至感知器的示例。本文讲述了一般概念,并展示了最简单的现成智能交易系统,后随其优化和前向验算结果。
preview
开发多币种 EA 交易(第 4 部分):虚拟挂单和保存状态

开发多币种 EA 交易(第 4 部分):虚拟挂单和保存状态

在开始开发多币种 EA 后,我们已经取得了一些成果,并成功地进行了多次代码改进迭代。但是,我们的 EA 无法处理挂单,也无法在终端重启后恢复运行。让我们添加这些功能。
preview
从新手到专家:自动几何分析系统

从新手到专家:自动几何分析系统

几何形态为交易者提供了一种简洁的方式来解读价格走势。许多分析师手工绘制趋势线、矩形和其他形状,然后根据他们看到的形态做出交易决策。在本文中,我们探索了一种自动化的替代方案:利用 MQL5 来检测和分析最流行的几何形态。我们将分解方法论,讨论实现细节,并强调自动形态识别如何提高交易者的市场洞察力。
preview
神经网络变得轻松(第四十八部分):降低 Q-函数高估的方法

神经网络变得轻松(第四十八部分):降低 Q-函数高估的方法

在上一篇文章中,我们概述了 DDPG 方法,它允许在连续动作空间中训练模型。然而,与其它 Q-学习方法一样,DDPG 容易高估 Q-函数的数值。这个问题往往会造成训练代理者时选择次优策略。在本文中,我们将研究一些克服上述问题的方式。
在杀毒软件和防火墙下运行的 MetaTrader 4
在杀毒软件和防火墙下运行的 MetaTrader 4

在杀毒软件和防火墙下运行的 MetaTrader 4

大多数交易者使用特定的程序保护其电脑。不幸的是,这些程序不仅保护电脑免于入侵、病毒和木马,同时还占用了相当多的资源。首先,这跟网络流量相关。网络流量完全由各种智能杀毒软件和防火墙控制。之所以写这篇文章,是因为交易者抱怨在使用 Outpost 防火墙时 MetaTrader 4 客户端太慢。我们决定使用 Kaspersky Antivirus 6.0 和 Outpost Firewall Pro 4.0 进行自己的研究。
preview
关于因果网络分析(Causality Network Analysis,CNA)和向量自回归(Vector Autoregression,VAR)模型在市场事件预测中的应用实例

关于因果网络分析(Causality Network Analysis,CNA)和向量自回归(Vector Autoregression,VAR)模型在市场事件预测中的应用实例

本文提供了一个使用因果网络分析(Causality Network Analysis,CNA)和向量自回归(Vector Autoregression,VAR)模型在MQL5中实现复杂交易系统的全面指南。文章涵盖了这些方法的理论背景,详细解释了交易算法中的关键函数,并提供了实现的示例代码。
preview
理解编程范式(第 2 部分):面向对象方式开发价格行为智能系统

理解编程范式(第 2 部分):面向对象方式开发价格行为智能系统

学习面向对象的编程范式,及其在 MQL5 代码中的应用。这是第二篇文章,更深入地讲解面向对象编程的规范,并通过一个实际示例提供上手经验。您将学习如何运用 EMA 指标,和烛条价格数据,将我们早期开发的过程化价格行为智能系统转换为面向对象的代码。
preview
开发多币种 EA 交易系统(第 16 部分):不同报价历史对测试结果的影响

开发多币种 EA 交易系统(第 16 部分):不同报价历史对测试结果的影响

正在开发中的 EA 预计在与不同经纪商进行交易时都会表现出良好的效果。但目前我们一直使用 MetaQuotes 模拟账户的报价进行测试。让我们看看我们的 EA 是否准备好使用与测试和优化期间使用的报价不同的交易账户。
preview
数据分组处理方法:在MQL5中实现多层迭代算法。

数据分组处理方法:在MQL5中实现多层迭代算法。

在本文中,我们介绍如何在MQL5中实现分组数据处理方法中的多层迭代算法。
preview
开发多币种 EA 交易 (第 10 部分):从字符串创建对象

开发多币种 EA 交易 (第 10 部分):从字符串创建对象

EA 开发计划包括几个阶段,中间结果保存在数据库中,它们只能作为字符串或数字而不是对象再次从那里读取。因此,我们需要一种方法来根据从数据库读取的字符串重新创建 EA 中的所需对象。
preview
将 MQL5 与数据处理包集成(第 1 部分):高级数据分析和统计处理

将 MQL5 与数据处理包集成(第 1 部分):高级数据分析和统计处理

集成实现了无缝的工作流程,来自 MQL5 的原始金融数据可以导入到 Jupyter Lab 等数据处理包中,用于包括统计测试在内的高级分析。
preview
如何利用 MQL5 创建简单的多币种智能交易系统(第 7 部分):依据动量振荡器指标的之字折线

如何利用 MQL5 创建简单的多币种智能交易系统(第 7 部分):依据动量振荡器指标的之字折线

本文中的多货币智能系统是利用之字折线(ZigZag)指标的自动交易系统,该指标依据动量振荡器过滤、或彼此过滤信号。
preview
CatBoost 模型中的交叉验证和因果推理基础及导出为 ONNX 格式

CatBoost 模型中的交叉验证和因果推理基础及导出为 ONNX 格式

本文提出了使用机器学习创建 EA 交易的方法。
preview
使用MQL5和Python构建自优化EA(第三部分):破解Boom 1000算法

使用MQL5和Python构建自优化EA(第三部分):破解Boom 1000算法

在本系列文章中,我们探讨了如何构建能够自主适应动态市场条件的EA。今天的文章中,我们将尝试调整一个深度神经网络以适应Deriv的合成市场。
preview
将 Discord 与 MetaTrader 5 集成:构建具有实时通知功能的交易机器人

将 Discord 与 MetaTrader 5 集成:构建具有实时通知功能的交易机器人

本文将介绍如何将 MetaTrader 5 与 Discord 服务器集成,以便能从任何地方实时接收交易通知。我们将了解如何配置平台和 Discord,以启用向 Discord 发送警报的功能。我们还将讨论在使用 WebRequests 和 webhook 实现此类警报解决方案时可能引发的安全问题。
preview
价格行为分析工具包开发(第十四部分):抛物线转向与反转工具

价格行为分析工具包开发(第十四部分):抛物线转向与反转工具

采用技术指标分析价格行为是一种强有力的方法。这些指标通常突出显示反转和回调的关键水平,为揭示市场动态提供了宝贵的信息。在本文中,我们演示了如何开发一个使用抛物线转向(Parabolic SAR)指标生成信号的自动化交易程序。