MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
让新闻交易变得容易(第一部分):创建一个数据库

让新闻交易变得容易(第一部分):创建一个数据库

新闻交易可能很复杂,令人难以招架,在本文中我们将介绍获取新闻数据的步骤。此外,我们还将了解MQL5经济数据日历及其提供的功能。
preview
在 MQL5 中实现增广迪基–富勒检验

在 MQL5 中实现增广迪基–富勒检验

在本文中,我们演示了增广迪基–富勒(Augmented Dickey-Fuller,ADF)检验的实现,并将其应用于使用 Engle-Granger 方法进行协整检验。
preview
图表上的历史仓位及其盈利/亏损图指标

图表上的历史仓位及其盈利/亏损图指标

在本文中,我将探讨根据交易历史获取已平仓头寸信息的选项。此外,我将创建一个简单的指标,以图表的形式显示每个柱形上仓位的大致盈利/亏损。
preview
衡量指标信息

衡量指标信息

机器学习已成为策略制定的流行方法。 虽然人们更强调最大化盈利能力和预测准确性,但处理用于构建预测模型的数据的重要性,仍未受到太多关注。 在本文中,我们研究依据熵的概念来评估预测模型构建的指标的适配性,如 Timothy Masters 的《测试和优调市场交易系统》一书中所述。
preview
开发回放系统 — 市场模拟(第 08 部分):锁定指标

开发回放系统 — 市场模拟(第 08 部分):锁定指标

在本文中,我们将亲眼见证如何在简单地利用 MQL5 语言锁定指标,我们将以一种非常有趣和迷人的方式做到这一点。
preview
DoEasy. 控件 (第 12 部分): 基准列表对象、ListBox 和 ButtonListBox WinForms 对象

DoEasy. 控件 (第 12 部分): 基准列表对象、ListBox 和 ButtonListBox WinForms 对象

在本文中,我将继续创建 WinForms 对象列表的基准对象,以及两个新对象:ListBox 和 ButtonListBox。
preview
情绪分析与深度学习在交易策略中的应用以及使用Python进行回测

情绪分析与深度学习在交易策略中的应用以及使用Python进行回测

在本文中,我们将介绍如何使用Python中的情绪分析和ONNX模型,并将它们应用于EA中。使用一个脚本运行TensorFlow训练的ONNX模型,以进行深度学习预测;而通过另一个脚本获取新闻标题,并使用人工智能技术量化情绪。
preview
交易事务. 请求和响应结构、描述和记录

交易事务. 请求和响应结构、描述和记录

本文探讨了处理交易请求结构,即创建请求、将其发送到服务器之前的初步验证、服务器对交易请求的响应以及交易交易的结构。我们将创建简单方便的函数,将交易订单发送到服务器,并根据所讨论的内容,创建EA来通知交易事务。
preview
种群优化算法:引力搜索算法(GSA)

种群优化算法:引力搜索算法(GSA)

GSA 是一种受无生命自然启发的种群优化算法。 万幸在算法中实现了牛顿的万有引力定律,对物理物体相互作用进行建模的高可靠性令我们能够观察到行星系统和星系团的迷人舞蹈。 在本文中,我将研究最有趣和最原始的优化算法之一。 还提供了空间物体运动的模拟器。
preview
开发回放系统 — 市场模拟(第 07 部分):首次改进(II)

开发回放系统 — 市场模拟(第 07 部分):首次改进(II)

在上一篇文章中,我们针对复现系统进行了一些修复并加入了测试,以确保可能的最佳稳定性。 我们还着手为这个系统创建和使用配置文件。
preview
DoEasy. 控件 (第 24 部分): 提示(Hint)辅助 WinForms 对象

DoEasy. 控件 (第 24 部分): 提示(Hint)辅助 WinForms 对象

在本文中,我将修改为所有 WinForms 函数库对象指定基准对象和主对象的逻辑,并开发一个新的提示(Hint)基准对象,及其若干个派生类,用以示意移动隔板的可能方向。
preview
开发回放系统 — 市场模拟(第 09 部分):自定义事件

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

在此,我们将见到自定义事件是如何被触发的,以及指标如何报告回放/模拟服务的状态。
preview
开发具有 RestAPI 集成的 MQL5 强化学习代理(第 4 部分):在 MQL5 中组织类中的函数

开发具有 RestAPI 集成的 MQL5 强化学习代理(第 4 部分):在 MQL5 中组织类中的函数

本文讨论 MQL5 中从面向过程编码向面向对象编程 (OOP) 的过渡,重点是与 REST API 的集成。今天,我们将讨论如何将 HTTP 请求函数(GET 和 POST)组织到类中。我们将仔细研究代码重构,并展示如何用类方法替换孤立的函数。本文包含实用的示例和测试。
preview
如何使用抛物线转向(Parabolic SAR)指标设置跟踪止损(Trailing Stop)

如何使用抛物线转向(Parabolic SAR)指标设置跟踪止损(Trailing Stop)

在创建交易策略时,我们需要测试多种多样的保护性止损。这时,一个随着价格变动而动态调整止损位的想法浮现在我的脑海中。抛物线转向(Parabolic SAR)指标无疑是最佳选择。很难想到有比这更简单且视觉上更清晰的指标了。
preview
DoEasy.服务功能(第 1 部分):价格形态

DoEasy.服务功能(第 1 部分):价格形态

在本文中,我们将开始开发使用时间序列数据搜索价格形态的方法。一种形态有一组参数,对任何类型的形态都是通用的。所有此类数据都将集中在基础抽象形态的对象类中。在本文中,我们将创建一个抽象形态类和一个 Pin Bar 形态类。
preview
DoEasy. 控件 (第 8 部分): 基准 WinForms 对象类别,GroupBox 和 CheckBox 控件

DoEasy. 控件 (第 8 部分): 基准 WinForms 对象类别,GroupBox 和 CheckBox 控件

本文研究创建 “GroupBox” 和 “CheckBox” WinForms 对象,以及开发 WinForms 对象类别的基准对象。 所有已创建对象仍然是静态的,即,它们无法与鼠标交互。
preview
MQL5中的结构及其数据打印方法

MQL5中的结构及其数据打印方法

在本文中,我们将研究MqlDateTime、MqlTick、MqlRates和MqlBookInfo结构,以及从它们打印数据的方法。为了打印结构的所有字段,有一个标准的ArrayPrint()函数,它以方便的表格格式显示数组中包含的数据以及处理结构的类型。
preview
GUI:利用 MQL 创建您自己的图形库的提示和技巧

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

我们将通览 GUI 函数库的基础知识,以便您能理解它们如何工作,甚至着手打造您自己的函数库。
preview
重构经典策略:原油

重构经典策略:原油

在本文中,我们重新审视一种经典的原油交易策略,旨在通过利用监督机器学习算法来对其进行优化。我们将构建一个最小二乘模型,该模型基于布伦特原油(Brent)和西德克萨斯中质原油(WTI)之间的价差来预测未来布伦特原油价格。我们的目标是找到一个能够预测布伦特原油未来价格变化的领先指标。
preview
DoEasy. 控件 (第 13 部分): 优化 WinForms 对象与鼠标的交互,启动开发 TabControl WinForms 对象

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

在本文中,我将修复和优化当鼠标光标移离 WinForms 对象后 WinForms 对象的外观处理,并启动开发 TabControl WinForms 对象。
preview
DoEasy. 控件 (第 27 部分): 继续致力 ProgressBar(进度条)WinForms 对象

DoEasy. 控件 (第 27 部分): 继续致力 ProgressBar(进度条)WinForms 对象

在本文中,我将继续开发进度条(ProgressBar)控件。 特别是,我将创建管理进度条和视觉效果的功能。
preview
如何不通过翻找历史交易记录直接在图表上查看交易情况

如何不通过翻找历史交易记录直接在图表上查看交易情况

在本文中,我们将创建一个简单的工具,通过按键导航方式方便地直接在图表上查看持仓和交易。这将使交易者能够直观地检查每笔交易,并当场获取有关交易结果的所有信息。
DoEasy 库中的其他类(第七十部分):扩展功能并自动更新图表对象集合
DoEasy 库中的其他类(第七十部分):扩展功能并自动更新图表对象集合

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

在本文中,我将扩展图表对象的功能,并编排图表导航、创建屏幕截图、以及为图表保存和应用模板。 此外,我还将实现图表对象集合、其窗口和其内指标的自动更新。
DoEasy 函数库中的图形(第九十三部分):准备创建复合图形对象的功能
DoEasy 函数库中的图形(第九十三部分):准备创建复合图形对象的功能

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

在本文中,我将着手开发用于创建复合图形对象的功能。 该函数库将支持创建复合图形对象,允许这些对象含有任意层次的连接。 我将为这些对象的后续实现准备所有必要的类。
preview
彗星尾算法(CTA)

彗星尾算法(CTA)

在这篇文章中,我们将探讨彗星尾优化算法(CTA),该算法从独特的太空物体——彗星及其接近太阳时形成的壮观尾部中汲取灵感。该算法基于彗星及其尾部运动的概念设计而成,旨在寻找优化问题中的最优解。
preview
开发回放系统(第 37 部分):铺平道路 (一)

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

在这篇文章中,我们终于要开始做我们早就想做的事情了。之前,由于缺乏 "坚实的基础",我没有信心公开介绍这部分内容。现在我有了这样做的基础。我建议您尽可能集中精力理解本文的内容。我指的不仅仅是阅读,我想强调的是,如果你不理解这篇文章,你可能就是完全放弃了理解以后文章内容的希望。
preview
DoEasy. 控件 (第 3 部分): 创建绑定控件

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

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

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

为了依据数据形成柱线,我们必须放弃回放,并开始研发一款模拟器。 我们将采用 1-分钟柱线,因为它们所需的难度最小。
preview
多交易品种多周期指标中的 DRAW_ARROW 绘图类型

多交易品种多周期指标中的 DRAW_ARROW 绘图类型

本文将介绍如何绘制多交易品种多周期的箭头指标。我们还将改进类方法,以便正确显示箭头指标的数据,这些数据是根据与当前图表交易品种/周期不一致的交易品种/周期计算的。
preview
DoEasy 函数库中的时间序列(第五十八部分):指标缓冲区数据的时间序列

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

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

群体优化算法:混合蛙跳算法(SFL)

本文详细描述了混合蛙跳(Shuffled Frog-Leaping,SFL)算法及其在求解优化问题中的能力。SFL算法的灵感来源于青蛙在自然环境中的行为,为函数优化提供了一种新的方法。SFL算法是一种高效灵活的工具,能够处理各种数据类型并实现最佳解决方案。
preview
重塑经典策略(第二部分):布林带突破

重塑经典策略(第二部分):布林带突破

本文探讨了一种将线性判别分析(LDA)与布林带相结合的交易策略,利用对市场区域的分类预测来生成战略性入场信号。
preview
DoEasy. 控件 (第 11 部分): WinForms 对象 — 群组,CheckedListBox WinForms 对象

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

本文将讨论 WinForms 对象群组,及创建 CheckBox 对象列表对象。
preview
群体优化算法:螺旋动态优化 (SDO) 算法

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

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

群体优化算法:差分进化(DE)

在本文中,我们将讨论在前面讨论过的所有算法中最有争议的算法 - 差分进化算法(Differential Evolution,DE)。
preview
种群优化算法:Nelder-Mead(NM),或单纯形搜索方法

种群优化算法:Nelder-Mead(NM),或单纯形搜索方法

本文表述针对 Nelder-Mead 方法进行的彻底探索,解释了如何在每次迭代中修改和重新排列单纯形(函数参数空间),从而达成最优解,并讲述了如何改进该方法。
preview
MQL5中的替代风险回报标准

MQL5中的替代风险回报标准

在这篇文章中,我们介绍了几种被称为夏普比率(Sharpe ratio)替代品的风险回报标准的实现,并检查了假设的权益曲线以分析其特征。
preview
龟壳演化算法(TSEA)

龟壳演化算法(TSEA)

这是一种受乌龟壳演化启发的独特优化算法。TSEA算法模拟了角质化皮肤区域的逐渐形成,这些区域代表了一个问题的最优解。最优解会变得更加“坚硬”,并位于更靠近外层表面的位置,而不太理想的解则保持“较软”的状态,并位于内部。该算法通过根据质量和距离对解进行聚类,从而保留了不太理想的选项,并提供了灵活性和适应性。
preview
MQL5 中的范畴论 (第 4 部分):跨度、实验、及合成

MQL5 中的范畴论 (第 4 部分):跨度、实验、及合成

范畴论是数学的一个多样化和不断扩展的分支,到目前为止,在 MQL5 社区中还相对难以发现。 这些系列文章旨在介绍和研究其一些概念,其总体目标是建立一个开放的函数库,提供洞察力,同时希望在交易者的策略开发中进一步运用这一非凡的领域。
preview
人工蜂巢算法(ABHA):理论及方法

人工蜂巢算法(ABHA):理论及方法

在本文中,我们将探讨2009年开发的人工蜂巢算法(ABHA)。该算法旨在解决连续优化问题。我们将研究ABHA如何从蜂群的行为中汲取灵感,其中每只蜜蜂都有独特的角色,帮助它们更有效地寻找资源。