MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
基于Python和MQL5的特征工程(第一部分):为长期 AI 模型预测移动平均线

基于Python和MQL5的特征工程(第一部分):为长期 AI 模型预测移动平均线

移动平均线无疑是我们的 AI 模型进行预测的最佳指标。然而,我们可以通过严谨数据变换来进一步提高其准确性。本文将展示如何构建能够预测更远范围的AI模型,超越您目前所实现的水平,同时不会显著降低准确率。移动平均线的实用性确实令人惊叹。
preview
基于MQL5和Python的自优化EA(第五部分):深度马尔可夫模型

基于MQL5和Python的自优化EA(第五部分):深度马尔可夫模型

在本次讨论中,我们将把一个简单的马尔可夫链应用于相对强弱指标(RSI),以观察指标穿过关键水平后的价格行为。我们得出结论,当RSI处于11-20区间时,会产生最强的买入信号;而当RSI处于71-80区间时,会产生最强的卖出信号,这在新西兰元兑日元(NZDJPY)货币对上表现得尤为明显。我们将展示如何通过对数据的处理和分析,直接从您所拥有的数据中构建出最优的交易策略。此外,我们还将展示如何训练一个深度神经网络,使其能够最优地利用转移矩阵。
preview
开发回放系统(第 58 部分):重返服务工作

开发回放系统(第 58 部分):重返服务工作

在回放/模拟器服务的开发和改进暂停之后,我们正在恢复该工作。现在我们已经放弃使用终端全局变量等资源,我们将不得不完全重组其中的一些部分。别担心,我们会详细解释这个过程,这样每个人都可以关注我们服务的发展。
preview
开发回放系统(第 70 部分):取得正确的时间(三)

开发回放系统(第 70 部分):取得正确的时间(三)

在本文中,我们将了解如何正确有效地使用 CustomBookAdd 函数。尽管它看起来很简单,但它有许多细微差别。例如,它允许您告诉鼠标指标自定义交易品种是否正在竞价、交易或市场是否关闭。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
头脑风暴优化算法(第一部分):聚类

头脑风暴优化算法(第一部分):聚类

在本文中,我们将探讨一种受自然现象“头脑风暴”启发的新型优化方法——头脑风暴优化(Brain Storm Optimization,简称BSO)。我们还将讨论BSO方法所应用的一种解决多模态优化问题的新方法。该方法能够在无需预先确定子种群数量的情况下,找到多个最优解。此外,我们还会考虑K-Means和K-Means++聚类方法。
preview
在 MQL5 中重新构想经典策略(第二部分):富时 100 指数(FTSE100)与英国国债(UK Gilts)

在 MQL5 中重新构想经典策略(第二部分):富时 100 指数(FTSE100)与英国国债(UK Gilts)

在本系列文章中,我们探索了流行的交易策略,并尝试使用人工智能(AI)对其进行改进。在今天的文章中,我们将重新审视基于股市与债市之间关系的经典交易策略。
preview
市场轮廓指标 (第二部分):基于画布的优化与渲染

市场轮廓指标 (第二部分):基于画布的优化与渲染

本文探讨了一种优化后的市场轮廓指标,该版本用基于 CCanvas 类对象(即画布)的渲染,取代了原先使用多个图形对象进行渲染的方式。
preview
DoEasy. 控件 (第 22 部分): SplitContainer。 修改已创建对象的属性

DoEasy. 控件 (第 22 部分): SplitContainer。 修改已创建对象的属性

在本文中,我将实现更改新近创建的 SplitContainer 控件的属性和外观的功能。
preview
从头开始以 MQL5 实现 SHA-256 加密算法

从头开始以 MQL5 实现 SHA-256 加密算法

长期以来,构建无 DLL 的加密货币兑换集成一直是一个挑战,但该解决方案为直接市场对接提供了一个完整的框架。
preview
开发回放系统(第 44 部分):Chart Trader 项目(三)

开发回放系统(第 44 部分):Chart Trader 项目(三)

在上一篇文章中,我介绍了如何操作模板数据以便在 OBJ_CHART 中使用。在那篇文章中,我只是概述了这一主题,并没有深入探讨细节,因为在那个版本中,这项工作是以非常简单的方式完成的。这样做是为了更容易解释内容,因为尽管很多事情表面上很简单,但其中有些并不那么明显,如果不了解最简单、最基本的部分,就无法真正理解全局。
preview
从基础到中级:Include 指令

从基础到中级:Include 指令

在今天的文章中,我们将讨论一个在 MQL5 中可以找到的各种代码中广泛使用的编译指令。虽然这里对这个指令的解释相当肤浅,但重要的是你要开始了解如何使用它,因为随着你进入更高层次的编程,它很快就会变得不可或缺。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
重构经典策略(第十四部分):高胜率交易形态

重构经典策略(第十四部分):高胜率交易形态

高胜率交易形态在交易圈内广为人知,但遗憾的是,其定义始终缺乏明确标准。本文将通过实证研究与算法建模,为高胜率形态构建量化定义框架,并探索其识别与运用方法。借助梯度提升树模型,我们演示如何系统性优化任意交易策略的性能,同时以更精准、可解释的方式向计算机传达交易指令的核心逻辑。
preview
原子轨道搜索(AOS)算法

原子轨道搜索(AOS)算法

本文探讨了原子轨道搜索(Atomic Orbital Search,AOS)算法,该算法运用原子轨道模型的概念来模拟解的搜索过程。此算法基于概率分布以及原子内相互作用的动力学原理。本文详细阐述了关于AOS算法的数学层面,包括候选解位置的更新方式,以及能量吸收与释放的机制。AOS算法通过为计算问题提供一种创新的优化方法,为将量子原理应用于计算问题开辟了新思路。
preview
MQL5自优化智能交易系统(第八部分):多策略分析(2)

MQL5自优化智能交易系统(第八部分):多策略分析(2)

欢迎继续阅读本系列文章,我们将把前两个交易策略合并为一个集成交易策略。本文将展示多种合并多个策略的可行方案,并介绍如何控制参数空间,确保即使在参数数量增加的情况下,仍能进行有效的优化。
preview
开发具有 RestAPI 集成的 MQL5 强化学习代理(第 2 部分):用于与井字游戏 RestAPI 进行 HTTP 交互的 MQL5 函数

开发具有 RestAPI 集成的 MQL5 强化学习代理(第 2 部分):用于与井字游戏 RestAPI 进行 HTTP 交互的 MQL5 函数

在本文中,我们将讨论 MQL5 如何与 Python 和 FastAPI 交互,使用 MQL5 中的 HTTP 调用与 Python 开发的井字游戏交互。这篇文章讨论了使用 FastAPI 为这种集成创建一个 API,并提供了一个 MQL5 测试脚本,突出了 MQL5 的多功能性、Python 的简易性以及 FastAPI 在连接不同技术以创建创新解决方案方面的效果。
preview
从基础到中级:操作符

从基础到中级:操作符

在本文中,我们将介绍主要的操作符。虽然这个主题很容易理解,但在代码格式中包含数学表达式时,有一些要点非常重要。如果不充分了解这些细节,经验很少或没有经验的程序员最终会放弃尝试创建自己的解决方案。
preview
种群优化算法:模拟退火(SA)。第 1 部分

种群优化算法:模拟退火(SA)。第 1 部分

模拟退火算法是受到金属退火工艺启发的一种元启发式算法。在本文中,我们将对算法进行全面分析,并揭示围绕这种广为人知的优化方法的一些常见信仰和神话。本文的第二部分将研究自定义模拟各向同性退火(SIA)算法。
preview
将 MQL5 与数据处理包集成(第 4 部分):大数据处理

将 MQL5 与数据处理包集成(第 4 部分):大数据处理

本部分探讨了将 MQL5 与强大的数据处理工具集成的高级技术,重点是高效处理大数据,以增强交易分析和决策。
preview
DoEasy. 控件 (第 17 部分): 裁剪对象不可见部分、辅助箭头按钮 WinForms 对象

DoEasy. 控件 (第 17 部分): 裁剪对象不可见部分、辅助箭头按钮 WinForms 对象

在本文中,我将创建一种功能,可隐藏超出其容器之外的对象部分。 此外,我亦将创建辅助箭头按钮对象,作为其它 WinForms 对象的一部分。
preview
群体自适应矩估计(ADAM)优化算法

群体自适应矩估计(ADAM)优化算法

本文介绍了将广为人知且广受欢迎的ADAM梯度优化方法转变为群体算法的过程,并介绍了通过引入混合个体对其进行改进的方案。这种新方法能够利用概率分布创建融合了成功决策要素的智能体。关键创新点在于形成了群体混合个体,这些个体能够自适应地积累来自最具潜力解决方案的信息,从而提高了在复杂多维空间中的搜索效率。
preview
迁移至 MQL5 Algo Forge(第 4 部分):使用版本和发布

迁移至 MQL5 Algo Forge(第 4 部分):使用版本和发布

我们将继续开发 Simple Candles 和 Adwizard 项目,同时还将描述使用 MQL5 Algo Forge 版本控制系统和仓库的细节。
preview
开发回放系统(第 46 部分):Chart Trade 项目(五)

开发回放系统(第 46 部分):Chart Trade 项目(五)

厌倦了浪费时间搜索应用程序工作所需的文件吗?在可执行文件中包含所有内容如何?这样,你就不用再去找东西了。我知道很多人都使用这种分发和存储形式,但还有一种更合适的方式。至少在可执行文件的分发和存储方面是这样。这里将介绍的方法非常有用,因为您可以将 MetaTrader 5 本身用作优秀的助手,也可以使用 MQL5。此外,它并不难理解。
preview
开发回放系统(第 49 部分):事情变得复杂 (一)

开发回放系统(第 49 部分):事情变得复杂 (一)

在本文中,我们将把问题复杂化。通过前面文章中展示的内容,我们将开始打开模板文件,以便用户可以使用自己的模板。不过,我将逐步进行修改,因为我还将改进指标,以减少 MetaTrader 5 的负载。
preview
您应当知道的 MQL5 向导技术(第 18 部分):配合本征向量进行神经架构搜索

您应当知道的 MQL5 向导技术(第 18 部分):配合本征向量进行神经架构搜索

神经架构搜素,是一种判定理想神经网络设置的自动化方式,在面对许多选项和大型测试数据集时可能是一个加分项。我们试验了当本征向量搭配时,如何令这个过程更加高效。
preview
种群优化算法:鲸鱼优化算法(WOA)

种群优化算法:鲸鱼优化算法(WOA)

鲸鱼优化算法(WOA)是一种受座头鲸行为和捕食策略启发的元启发式算法。该算法的核心思想在于模仿所谓的“气泡网”捕食方法,即鲸鱼在猎物周围制造气泡,然后以螺旋运动的方式攻击猎物。
preview
重构经典策略(第五部分):基于USDZAR的多品种分析

重构经典策略(第五部分):基于USDZAR的多品种分析

在本系列文章中,我们重新审视经典策略,看看是否可以使用人工智能来改进这些策略。在今天的文章中,我们将研究一种使用一篮子具有相关性的金融产品来进行多品种分析的流行策略,我们将重点关注货币对 USDZAR。
preview
在MQL5中创建交易管理员面板(第二部分):增强响应性和快速消息传递

在MQL5中创建交易管理员面板(第二部分):增强响应性和快速消息传递

在本文中,我们将增强之前创建过的管理面板的响应性。此外,我们还将探讨在交易信号背景下快速消息传递的重要性。
preview
使用Python与MQL5进行多个交易品种分析(第二部分):主成分分析在投资组合优化中的应用

使用Python与MQL5进行多个交易品种分析(第二部分):主成分分析在投资组合优化中的应用

交易账户风险管理是所有交易者面临的共同挑战。我们如何在MetaTrader 5中开发能够动态学习不同交易品种的高、中、低风险模式的交易应用?通过主成分分析(PCA),我们可以更有效地控制投资组合的方差。本文将演示如何从MetaTrader 5获取的市场数据中,训练出这三种风险模式的交易模型。
preview
从基础到中级:数组(三)

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

在本文中,我们将介绍如何在 MQL5 中使用数组,包括如何使用数组在函数和过程之间传递信息。目的是为您准备在本系列后续材料中演示和解释的内容。因此,我强烈建议您仔细研究本文将展示的内容。
preview
DoEasy.服务函数(第 3 部分):外包线形态

DoEasy.服务函数(第 3 部分):外包线形态

在本文中,我们将开发 DoEasy 库中的外包线(Outside Bar)价格行为形态,并优化访问价格形态管理的方法。此外,我们将修复在库测试中发现的错误和缺点。
preview
在 MQL5 中构建自优化智能交易系统(第八部分):多策略分析

在 MQL5 中构建自优化智能交易系统(第八部分):多策略分析

如何才能最有效地整合多种策略,构建一个强大的策略组合?欢迎加入本次讨论,我们将探讨如何将三种不同的策略整合到我们的交易应用程序中。交易员通常会采用专门的策略来开仓和平仓。我们想探究的是,机器能否在这项任务上表现得比人类更出色。我们将首先从熟悉策略测试器的各项功能开始讨论,以及完成此任务所需的面向对象编程(OOP)原则。
preview
使用MQL5和Python构建自优化的EA(第四部分):模型堆叠

使用MQL5和Python构建自优化的EA(第四部分):模型堆叠

今天,我们将展示如何构建能够从自身错误中学习的AI驱动的交易应用程序。我们将展示一种称为堆叠(stacking)的技术,我们使用2个模型来做出1个预测。第一个模型通常是较弱的学习器,而第二个模型通常是更强大的模型,它学习较弱学习器的残差。我们的目标是创建一个模型集成,以期获得更高的准确性。
preview
在MQL5中创建交易管理员面板(第三部分):通过视觉样式设计增强图形用户界面(1)

在MQL5中创建交易管理员面板(第三部分):通过视觉样式设计增强图形用户界面(1)

在本文中,我们将专注于使用MQL5为交易管理员面板的图形用户界面(GUI)进行视觉样式设计与优化。我们将探讨MQL5中可用的各种技术和功能,这些技术和功能允许对界面进行定制和优化,确保它既能满足交易者的需求,又能保持吸引人的外观。
preview
迁移至 MQL5 Algo Forge(第 3 部分):在您自己的项目中使用外部仓库

迁移至 MQL5 Algo Forge(第 3 部分):在您自己的项目中使用外部仓库

让我们探索如何开始将 MQL5 Algo Forge 存储中任何仓库的外部代码集成到您自己的项目中。在本文中,我们最后转向这个有前景但更复杂的任务:如何在 MQL5 Algo Forge 中实际连接和使用来自第三方仓库的库。
preview
开发具有 RestAPI 集成的 MQL5 强化学习代理(第 3 部分):在 MQL5 中创建自动移动和测试脚本

开发具有 RestAPI 集成的 MQL5 强化学习代理(第 3 部分):在 MQL5 中创建自动移动和测试脚本

本文讨论在 Python 中实现井字游戏中的自动移动,并与 MQL5 函数和单元测试集成。目标是通过在 MQL5 中进行测试,提高游戏的互动性并确保系统的可靠性。本文内容包括游戏逻辑开发、集成和实际测试,最后将介绍动态游戏环境和强大集成系统的创建。
preview
开发回放系统(第 35 部分):进行调整 (一)

开发回放系统(第 35 部分):进行调整 (一)

在向前迈进之前,我们需要解决几个问题。这些实际上并不是必需的修正,而是对类的管理和使用方式的改进。原因是系统内的某些相互作用导致了故障的发生。尽管我们试图找出这些故障的原因以消除它们,但所有这些尝试都没有成功。其中有些情况完全不合理,例如,当我们在 C/C++ 中使用指针或递归时,程序就会崩溃。
preview
在 MQL5 中创建交易管理面板(第九部分):代码组织(二):模块化

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

在本次讨论中,我们进一步将 MQL5 程序分解为更小、更易于管理的模块。然后,这些模块化组件将被集成到主程序中,从而增强其组织性和可维护性。这种方法简化了我们主程序的结构,并使各个组件可以在其他EA和指标的开发中复用。通过采用这种模块化设计,我们为未来的增强功能创建了坚实的基础,这将使我们的项目和更广泛的开发者社区都受益。
preview
开发回放系统(第 69 部分):取得正确的时间(二)

开发回放系统(第 69 部分):取得正确的时间(二)

今天我们将看看为什么我们需要 iSpread 功能。同时,我们将了解当没有可用的分时报价时,系统如何通知我们柱形的剩余时间。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
开发回放系统(第 39 部分):铺平道路(三)

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

在进入开发的第二阶段之前,我们需要修正一些想法。您知道如何让 MQL5 满足您的需求吗?您是否尝试过超出文档所包含的范围?如果没有,那就做好准备吧。因为我们将做一些大多数人通常不会做的事情。
preview
将 MQL5 与数据处理包集成(第 3 部分):增强的数据可视化

将 MQL5 与数据处理包集成(第 3 部分):增强的数据可视化

在本文中,我们将通过结合交互性、分层数据和动态元素等功能,超越基本图表,实现增强的数据可视化,使交易者能够更有效地探索趋势、形态和相关性。