MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
开发回放系统 — 市场模拟(第 09 部分):自定义事件

开发回放系统 — 市场模拟(第 09 部分):自定义事件

在此,我们将见到自定义事件是如何被触发的,以及指标如何报告回放/模拟服务的状态。
preview
GUI:利用 MQL 创建您自己的图形库的提示和技巧

GUI:利用 MQL 创建您自己的图形库的提示和技巧

我们将通览 GUI 函数库的基础知识,以便您能理解它们如何工作,甚至着手打造您自己的函数库。
preview
群体优化算法:螺旋动态优化 (SDO) 算法

群体优化算法:螺旋动态优化 (SDO) 算法

文章介绍了一种基于自然界螺旋轨迹构造模式(如软体动物贝壳)的优化算法 - 螺旋动力学优化算法(Spiral Dynamics Optimization,SDO)。我对作者提出的算法进行了彻底的修改和完善,本文将探讨这些修改的必要性。
preview
从新手到专家:MQL5中的协作式调试指南

从新手到专家:MQL5中的协作式调试指南

问题解决法能为掌握复杂技能(如MQL5编程)构建高效路径。该方法让您在专注攻克问题的同时,潜移默化地提升技能水平。解决的难题越多,大脑积累的专业知识就越深厚。就我个人而言,调试是精通编程最有效的途径。本文将带你逐步梳理代码清理流程,并探讨将杂乱程序转化为简洁高效代码的核心技巧。阅读本文,洞悉其中的宝贵见解。
preview
频域中的滤波和特征提取

频域中的滤波和特征提取

在本文中,我们探索了在时间序列由数字滤波器在频域上进行表达的应用,如此即可提取也许对预测模型有用的独特特征。
preview
DoEasy. 控件 (第 13 部分): 优化 WinForms 对象与鼠标的交互,启动开发 TabControl WinForms 对象

DoEasy. 控件 (第 13 部分): 优化 WinForms 对象与鼠标的交互,启动开发 TabControl WinForms 对象

在本文中,我将修复和优化当鼠标光标移离 WinForms 对象后 WinForms 对象的外观处理,并启动开发 TabControl WinForms 对象。
preview
MQL5 交易管理面板开发指南(第六部分):交易管理面板(续篇)

MQL5 交易管理面板开发指南(第六部分):交易管理面板(续篇)

在本文中,我们对多功能管理面板的“交易面板”进行升级。我们引入一个强大的辅助函数,大幅简化代码,提高可读性、可维护性与运行效率。同时演示如何无缝集成更多按钮,并优化界面,以支持更广泛的交易任务。无论是持仓管理、订单调整,还是简化交互,本文将助您打造稳健且易用的交易管理面板。
preview
种群优化算法:模拟各向同性退火(SIA)算法。第 II 部分

种群优化算法:模拟各向同性退火(SIA)算法。第 II 部分

第一部分专注于众所周知、且流行的算法 — 模拟退火。我们已经通盘研究了它的利弊。本文的第二部分专注于算法的彻底变换,将其转变为一种新的优化算法 — 模拟各向同性退火(SIA)。
preview
使用PSAR、Heiken Ashi和深度学习进行交易

使用PSAR、Heiken Ashi和深度学习进行交易

本项目探索深度学习与技术分析的融合,用于在外汇市场测试交易策略。使用Python脚本进行快速实验,结合ONNX模型和传统指标(如PSAR、SMA和RSI)来预测欧元/美元(EUR/USD )的走势。之后,MQL5脚本将此策略引入实时环境,利用历史数据和技术分析帮助交易者做出明智的交易决策。回测结果表明,该策略秉持保守且稳健的运作理念,始终将风险管控置于首位,追求持续稳定的收益增长模式,摒弃激进逐利的行为。
preview
在 MQL5 中创建交易管理员面板(第一部分):构建消息接口

在 MQL5 中创建交易管理员面板(第一部分):构建消息接口

本文讨论了为 MetaTrader 5 创建一个消息接口,旨在帮助系统管理员在平台内直接与其他交易者进行沟通。MQL5 最近与社交平台的整合使得信号能够通过不同渠道快速广播。想象一下,只需点击“是”或“否”就能确认发送信号。继续阅读以了解更多信息。
DoEasy 函数库中的图形(第九十三部分):准备创建复合图形对象的功能
DoEasy 函数库中的图形(第九十三部分):准备创建复合图形对象的功能

DoEasy 函数库中的图形(第九十三部分):准备创建复合图形对象的功能

在本文中,我将着手开发用于创建复合图形对象的功能。 该函数库将支持创建复合图形对象,允许这些对象含有任意层次的连接。 我将为这些对象的后续实现准备所有必要的类。
preview
价格行为分析工具包开发(第一部分):图表投影仪

价格行为分析工具包开发(第一部分):图表投影仪

本项目旨在利用 MQL5 程序算法为 MetaTrader 5 开发一套全面的分析工具。这些工具包括脚本、指标、人工智能模型以及EA,能够自动地进行市场分析。在某些情况下,这些工具能够完全无需人工干预地进行高级分析,并将预测结果发送到相应的平台。绝不会错过任何机会。请与我一同探索构建一套强大的自定义市场分析工具箱。我们将从开发一个简单的 MQL5 程序开始,我将其命名为“图表投影仪”。
DoEasy 函数库中的图形(第九十五部分):复合图形对象控件
DoEasy 函数库中的图形(第九十五部分):复合图形对象控件

DoEasy 函数库中的图形(第九十五部分):复合图形对象控件

在本文中,我将研究管理复合图形对象的工具包 — 管理扩展标准图形对象的控件。 今天,我从复合图形对象重新定位的内容稍微离题 ,并实现图表上复合图形对象的变更事件处理。 此外,我将重点讲解管理复合图形对象的控件。
DoEasy 库中的其他类(第七十部分):扩展功能并自动更新图表对象集合
DoEasy 库中的其他类(第七十部分):扩展功能并自动更新图表对象集合

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

在本文中,我将扩展图表对象的功能,并编排图表导航、创建屏幕截图、以及为图表保存和应用模板。 此外,我还将实现图表对象集合、其窗口和其内指标的自动更新。
preview
开发回放系统(第 37 部分):铺平道路 (一)

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

在这篇文章中,我们终于要开始做我们早就想做的事情了。之前,由于缺乏 "坚实的基础",我没有信心公开介绍这部分内容。现在我有了这样做的基础。我建议您尽可能集中精力理解本文的内容。我指的不仅仅是阅读,我想强调的是,如果你不理解这篇文章,你可能就是完全放弃了理解以后文章内容的希望。
preview
MQL5中的替代风险回报标准

MQL5中的替代风险回报标准

在这篇文章中,我们介绍了几种被称为夏普比率(Sharpe ratio)替代品的风险回报标准的实现,并检查了假设的权益曲线以分析其特征。
preview
DoEasy 函数库中的时间序列(第五十八部分):指标缓冲区数据的时间序列

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

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

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

在本文中,我将创建绑定到基准元素的从属控件。 开发任务将使用基准控件功能执行。 此外,我还会稍微修改一下图形元素阴影对象,因为把它应用于任何有阴影的对象时会遇到一些逻辑错误。
preview
开发回放系统 — 市场模拟(第 11 部分):模拟器的诞生(I)

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

为了依据数据形成柱线,我们必须放弃回放,并开始研发一款模拟器。 我们将采用 1-分钟柱线,因为它们所需的难度最小。
preview
研究PrintFormat()并应用现成的示例

研究PrintFormat()并应用现成的示例

这篇文章对初学者和有经验的开发人员都很有用。我们将研究PrintFormat()函数,分析字符串格式的示例,并编写用于在终端日志中显示各种信息的模板。
preview
一个基于新指标和条件长短期记忆网络(LSTM)的实例

一个基于新指标和条件长短期记忆网络(LSTM)的实例

本文探讨了一种用于自动化交易的EA的开发,该EA结合了技术分析和深度学习预测。
preview
借助成交量精准洞悉交易动态:超越传统OHLC图表

借助成交量精准洞悉交易动态:超越传统OHLC图表

一种将成交量分析与机器学习技术(特别是LSTM神经网络)相结合的算法交易系统。与主要关注价格波动的传统交易方法不同,该系统强调成交量模式及其衍生指标,以预测市场走势。该方法包含三个主要组成部分:成交量衍生指标分析(一阶和二阶导数)、基于LSTM的成交量模式预测,以及传统技术指标。
preview
DoEasy. 控件 (第 14 部分): 命名图形元素的新算法。 继续操控 TabControl WinForms 对象

DoEasy. 控件 (第 14 部分): 命名图形元素的新算法。 继续操控 TabControl WinForms 对象

在本文中,我将创建一个新算法来为构建自定义图形的所有图形元素命名,并继续开发 TabControl WinForms 对象。
preview
种群优化算法:和弦搜索(HS)

种群优化算法:和弦搜索(HS)

在本文中,我将研究和测试最强大的优化算法 — 和弦搜索(HS),其灵感来自寻找完美声音和声的过程。 那么现在什么算法在我们的评级中处于领先地位?
preview
种群优化算法:鸟群算法(BSA)

种群优化算法:鸟群算法(BSA)

本文探讨了受自然界鸟类集群行为启发而产生的基于鸟群的算法(BSA)。BSA中的个体采用不同的搜索策略,包括在飞行、警戒和觅食行为之间的切换,使得该算法具有多面性。它利用鸟类集群、交流、适应性、领导与跟随等规则来高效地找到最优解。
在杀毒软件和防火墙下运行的 MetaTrader 4
在杀毒软件和防火墙下运行的 MetaTrader 4

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

大多数交易者使用特定的程序保护其电脑。不幸的是,这些程序不仅保护电脑免于入侵、病毒和木马,同时还占用了相当多的资源。首先,这跟网络流量相关。网络流量完全由各种智能杀毒软件和防火墙控制。之所以写这篇文章,是因为交易者抱怨在使用 Outpost 防火墙时 MetaTrader 4 客户端太慢。我们决定使用 Kaspersky Antivirus 6.0 和 Outpost Firewall Pro 4.0 进行自己的研究。
preview
价格行为分析工具包开发(第七部分):信号脉冲智能交易系统(EA)

价格行为分析工具包开发(第七部分):信号脉冲智能交易系统(EA)

借助“信号脉冲(Signal Pulse)”这款MQL5智能交易系统(EA),释放多时间框架分析的潜力。该EA整合了布林带(Bollinger Bands)和随机震荡器(Stochastic Oscillator),以提供准确、高概率的交易信号。了解如何实施这一策略,并使用自定义箭头有效直观地显示买入和卖出机会。非常适合希望借助多时间框架的自动化分析来提升自身判断能力的交易者。
preview
市场轮廓指标

市场轮廓指标

在本文中,我们将探讨市场轮廓指标。我们将探究这个名称背后隐藏的内容,尝试理解其运行原理,并分析其程序代码(MarketProfile)。
preview
DoEasy. 控件 (第 11 部分): WinForms 对象 — 群组,CheckedListBox WinForms 对象

DoEasy. 控件 (第 11 部分): WinForms 对象 — 群组,CheckedListBox WinForms 对象

本文将讨论 WinForms 对象群组,及创建 CheckBox 对象列表对象。
preview
数据分组处理方法:在MQL5中实现多层迭代算法。

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

在本文中,我们介绍如何在MQL5中实现分组数据处理方法中的多层迭代算法。
preview
MQL5中使用坐标下降法的弹性网络回归

MQL5中使用坐标下降法的弹性网络回归

在这篇文章中,我们探索了弹性网络回归的实际实现,以最大限度地减少过拟合,同时自动将有用的预测因子与那些预测能力很小的预测因子区分开来。
preview
DoEasy 函数库中的图形(第一百部分):改进扩展标准图形对象的处理

DoEasy 函数库中的图形(第一百部分):改进扩展标准图形对象的处理

在本文中,我将剔除在画布上同时处理扩展(和标准)图形对象和窗体对象方面的明显缺陷,并修复在前一篇文章中执行测试期间检测到的错误。 本文总结了函数库说明的这一部分。
preview
开发回放系统 — 市场模拟(第 03 部分):调整设置(I)

开发回放系统 — 市场模拟(第 03 部分):调整设置(I)

我们从梳理当前状况开始,因为我们尚未以最好的方式开始。 如果我们现在不这样做,我们很快就会遇到麻烦。
preview
密码锁算法(CLA)

密码锁算法(CLA)

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

MQL5 Algo Forge 入门

我们正在推出 MQL5 Algo Forge —— 一个专为算法交易开发人员设计的门户网站。它将 Git 的强大功能与直观的界面相结合,用于管理和组织 MQL5 生态系统内的项目。在这里,您可以关注有趣的作者,组建团队,并在算法交易项目上进行协作。
preview
在MQL5中创建交易管理员面板(第六部分):多功能界面(一)

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

交易管理员的角色不仅限于Telegram通信,他们还可以参与各种控制活动,包括订单管理、持仓跟踪和界面定制。在本文中,我们将分享有关扩展程序以支持MQL5中多种功能的实用见解。此次更新旨在克服当前管理员面板主要聚焦于通信这一局限,使其能够处理更广泛的任务。
preview
理解编程范式(第 2 部分):面向对象方式开发价格行为智能系统

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

学习面向对象的编程范式,及其在 MQL5 代码中的应用。这是第二篇文章,更深入地讲解面向对象编程的规范,并通过一个实际示例提供上手经验。您将学习如何运用 EMA 指标,和烛条价格数据,将我们早期开发的过程化价格行为智能系统转换为面向对象的代码。
preview
开发回放系统(第 40 部分):启动第二阶段(一)

开发回放系统(第 40 部分):启动第二阶段(一)

今天我们将讨论回放/模拟器系统的新阶段。在这个阶段,谈话才会变得真正有趣,内容也相当丰富。我强烈建议您仔细阅读本文并使用其中提供的链接。这将帮助您更好地理解内容。
preview
DoEasy. 控件 (第 9 部分): 重新编排 WinForms 对象方法、RadioButton 和 Button 控件

DoEasy. 控件 (第 9 部分): 重新编排 WinForms 对象方法、RadioButton 和 Button 控件

在本文中,我将修复 WinForms 对象类方法的名称,并创建 WinForms 的对象 Button 和 RadioButton。
preview
基于转移熵的时间序列因果分析

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

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