MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件

轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台上的程序开发。 在第四部分中,我们测试了在帐户上跟踪交易事件。 在本文中,我们将开发交易事件类,并将它们置于事件集合当中。 从那里,它们将被发送到 Engine (引擎)库的基准对象,并控制程序图表。
轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件

轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 我们已拥有历史订单和成交集合,在场订单和仓位的集合,以及便捷选择和订单排序的类。 在这一部分中,我们将继续开发基础对象,并教导引擎(Engine)函数库跟踪帐户上的交易事件。
在 MetaTrader 5 中使用 MATLAB 2018 的计算功能

在 MetaTrader 5 中使用 MATLAB 2018 的计算功能

在2015年升级了 MATLAB 包之后,有必要考虑一种现代的创建 DLL 库的方法。本文利用样本预测指标,说明了在目前使用的64位平台上关联 MetaTrader 5 和 MATLAB 的特点。通过探讨连接 MATLAB 的整个过程,MQL5 开发人员将能够更快地创建具有高级计算能力的应用程序,从而避免“陷阱”。
用于轻松快速开发 MetaTrader 程序的函数库(第三部分)。 市价订单和仓位的集合,搜索和排序

用于轻松快速开发 MetaTrader 程序的函数库(第三部分)。 市价订单和仓位的集合,搜索和排序

在第一部分中,我们曾创建了一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 再者,我们实现了历史订单和成交的集合。 我们的下一步是创建一个类,用来针对订单、成交和仓位的集合进行选择和排序。 我们将实现名为引擎(Engine)的基准函数库对象,并向函数库中添加市价订单和仓位的集合。
轻松快捷开发 MetaTrader 程序的函数库(第二部分)。 历史订单和成交的集合

轻松快捷开发 MetaTrader 程序的函数库(第二部分)。 历史订单和成交的集合

在第一部分中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 我们创建了 COrder 抽象对象,它是一个基础对象,用于存储历史订单和成交的数据,以及市价订单和仓位。 现在,我们将开发在集合中存储帐户历史数据的所有必要对象。
轻松快捷开发 MetaTrader 程序的函数库(第一部分)。 概念,数据管理和首期成果

轻松快捷开发 MetaTrader 程序的函数库(第一部分)。 概念,数据管理和首期成果

在分析海量交易策略,订购用于 MetaTrader 5 和 MetaTrader 4 终端以及各种 MetaTrader 网站的应用程序开发订单时,我得出了一个结论,就是所有这些貌似多样性,大多基于相同的基本函数,动作和数值有规律地出现在不同的程序当中。 在 DoEasy 跨平台函数库中的这一成效,可以轻松快捷地开发 МetaТrader 5 和 МetaТrader 4 应用程序。
基于 .Net 框架和 C# 为 EA 交易和指标开发图形界面

基于 .Net 框架和 C# 为 EA 交易和指标开发图形界面

本文介绍了一种使用 Visual Studio 创建图形窗口的简单而快速的方法,并随后将其集成到专家顾问的MQL代码中。本文面向非专业读者,不需要了解C#和.NET技术。
ZigZag (之字折线) 的力量(第二部分)。 接收、处理和显示数据的示例

ZigZag (之字折线) 的力量(第二部分)。 接收、处理和显示数据的示例

在本文的第一部分当中,我曾描述过一个修订的 ZigZag (之字折线) 指标和一个用于接收该类型指标数据的类。 在此,我将展示如何基于这些工具开发指标,并编写一款根据 ZigZag 指标形成的信号进行交易的 EA 来测试。 作为补充,本文将介绍一套开发图形用户界面的新版 EasyAndFast 函数库。
ZigZag(之字折线)的力量(第一部分)。 开发指标基类

ZigZag(之字折线)的力量(第一部分)。 开发指标基类

许多研究人员对于判定价格行为没有给予足够的重视。 与此同时,还使用各种复杂方法,而这些方法通常只是“黑盒子”,例如机器学习或神经网络。 在这种情况下显现出的最严重问题就是提交何种数据来训练特定模型。
MеtaTrader5 图表上的水平示意图

MеtaTrader5 图表上的水平示意图

水平示意图在终端图表上并不常见,但在很多任务中仍然会用到它们,例如在开发显示特定周期的交易量或价格分布的指标时,当创建各种版本的市场深度时。 本文研究构建和管理水平示意图作为图形基元的数组。
使用 OpenCL 测试烛形形态

使用 OpenCL 测试烛形形态

这篇文章描述了在"一分钟OHLC"模式下实现 OpenCL 烛形形态测试器的算法。我们还将把它的速度与内建的策略测试器在快速和慢速优化模式下做比较。
逆转形态:测试头肩形态

逆转形态:测试头肩形态

本文是前一篇名为“逆转形态:测试双顶/双底形态”的后续文章。 现在我们将会看到另一个著名的逆转形态,称为头肩,比较两种形态的交易效率,并尝试将它们合并成为单一的交易系统。
逆转形态:测试双顶/双底形态

逆转形态:测试双顶/双底形态

交易者经常寻找趋势逆转点,因为在趋势新形成的最初阶段价格走势具有最大潜力。 因此,在技术分析中考虑了各种逆转形态。 双顶/双底是最著名和最常用的形态之一。 本文提出了程序检测形态的方法。 它还测试了形态在历史数据上的盈利能力。
使用限价订单替代止盈且无需修改 EA 的原始代码

使用限价订单替代止盈且无需修改 EA 的原始代码

使用限价订单来替代传统的止盈是论坛讨论的长期话题。 这种方法的优点是什么?如何在您的交易中实施? 在本文中,我将向您介绍我对此主题的看法。
走势延续模型 - 搜索图表和执行统计

走势延续模型 - 搜索图表和执行统计

本文提供了一种走势延续模型的程序化定义。 主要思路是定义两个波浪 — 主浪和修正浪。 对于极值点,我应用分形以及“潜在”分形 - 尚未形成分形的极值点。
EA 遥控方法

EA 遥控方法

交易机器人的主要优势在于能够在远程 VPS 服务器上每天 24 小时不间断工作。 但有时候有必要干预它们的工作,而此刻可能无法直接访问服务器。 是否可以遥控管理 EA? 本文提出了一种通过外部命令控制 EA 的选项。
MQL5 酷客宝典: 读取持有锁仓仓位的属性

MQL5 酷客宝典: 读取持有锁仓仓位的属性

MetaTrader 5 是一个多资产平台,此外,它还支持不同的仓位管理系统。这种功能为实现和创建交易思路提供了更加广泛的选择,在本文中,我们将讨论在锁仓模式下处理和计算仓位属性的方法。这篇文章包含了一个派生类,以及展示如何取得和处理锁仓仓位属性的实例 。
Elder-Ray (多头力度和空头力度)

Elder-Ray (多头力度和空头力度)

本文详述了基于多头力度(Bulls Power),空头力度(Bears Power)和均线指标(EMA - 指数平均)的 Elder-Ray 交易系统。 Alexander Elder 在他的著作“为生活而交易”中描述了这个系统。
基于 CGraphic  用于分析数据数组(时间序列)之间相互关联的 PairPlot  图

基于 CGraphic 用于分析数据数组(时间序列)之间相互关联的 PairPlot 图

在技术分析中比较几个时间序列是一种很常用的任务,需要合适的工具。在本文中,我提出开发一种用于图形化分析的工具,可以侦测两个或者多个时间序列之间的相互关联。
以 delta 指标为例开发股票交易量控制指标

以 delta 指标为例开发股票交易量控制指标

本文讨论基于实际交易量并使用 CopyTicks() 和 CopyTicksRange() 函数开发股票指标的算法。 还描述了开发此类指标的一些细微环节,以及它们在实时和策略测试器中的操作。
同时双向工作的通用 RSI 指标

同时双向工作的通用 RSI 指标

当开发交易算法时,我们经常遇到这样一个难题:如何确定趋势/盘整从哪里开始和结束?在本文中,我们尝试创建一个通用指标,在其中我们会尝试组合几种不同类型策略的信号。在 EA 交易中,我们将尝试尽可能简化取得交易信号的过程,并将给出一个把几个指标组合为一的实例。
自定义交易历史表述并创建报告图表

自定义交易历史表述并创建报告图表

本文研讨自定义交易历史的评估方法。 并为下载和分析历史记录编写了两个类。 第一个收集交易历史并将其表述为汇总表格。 第二个是处理统计数据: 它计算众多变量并构建图表,以便更有效地评估交易结果。
包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)

包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)

这是展示开发用于人工交易的多交易品种信号 EA 文章的第二部分,我们已经创建了图形界面,现在是时候把它与程序功能相关联了。
整合基于MQL的EA交易和数据库 (SQL Server, .NET 和 C#)

整合基于MQL的EA交易和数据库 (SQL Server, .NET 和 C#)

本文描述了如何把操作 Microsoft SQL Server 数据库的功能加到基于 MQL 语言的 EA 交易中,它使用了从一个DLL(动态链接库)中引入函数的方法。这个 DLL 是使用 Microsoft .NET 平台和 C# 语言创建的。本文中使用的方法只要做少许调整,就可以用于使用 MQL4 开发的 EA 交易中。
可视化使用选定标准优化的结果

可视化使用选定标准优化的结果

在这篇文章中,我们继续开发用于操作优化结果的 MQL 应用程序,这一次,我们将会展示如何在通过图形界面指定了其它标准、在优化参数之后生成最佳结果的表格。
preview
如何创建订购交易机器人的需求规范

如何创建订购交易机器人的需求规范

您是否正在运用自己的策略进行交易? 如果您的系统规则可以描述为正规的软件算法,那么最好将交易委托给自动智能系统。 机器人不需要睡觉或食物,也不会受到人类弱点的影响。 在本文中,我们将展示如何在自由职业服务版块订购交易机器人时创建需求规范。
在 EA 交易代码中实现指标的计算

在 EA 交易代码中实现指标的计算

把指标代码移动到 EA 交易中可能有多种原因,怎样评估这种方法的优缺点呢?本文描述了在 EA 交易中实现指标代码,还进行了几个实验来评估 EA 交易运行的速度。
改进面板:增加透明化、改变背景色以及继承于 CAppDialog/CWndClient

改进面板:增加透明化、改变背景色以及继承于 CAppDialog/CWndClient

在这篇文章中,我们继续研究 CAppDialog 的使用。现在我们将会学习如何设置对话框的背景、边框和抬头的颜色。另外,这篇文章还提供了有关在图表中拖曳应用程序窗口时,如何增加透明化它的分步描述。我们还将探讨,怎样创建 CAppDialog 或者 CWndClient 的子类来分析如何操作控件的新特点。最后,我们将从新的角度回顾新项目。
如何分析图表中所选择信号的交易

如何分析图表中所选择信号的交易

交易信号服务正在突飞猛进地发展。 将我们的资金托付给信号提供者,我们希望尽量减少资金亏损的风险。 那么如何在这个交易信号的森林中解开拼图呢? 如何发现能赚取盈利的产品? 本文提出创建一种工具,可在品种图表中直观地分析交易信号的交易历史。
包含图形用户界面 (GUI) 的 EA 交易: 创建面板 (第一部分)

包含图形用户界面 (GUI) 的 EA 交易: 创建面板 (第一部分)

尽管很多交易者还是倾向于人工交易,但是很难完全避免一些重复性操作的自动化。这篇文章展示了一个实例,为人工交易开发一个多交易品种信号的 EA 交易。
开发基于振荡器的之字折线 (ZigZag) 指标。 执行需求规范的示例

开发基于振荡器的之字折线 (ZigZag) 指标。 执行需求规范的示例

本文根据《订购指标时如何准备需求规范》一文中描述的规范样本之一展示之字折线 (ZigZag) 指标的开发。 该指标利用振荡器所定义的极值来构建。 它能够采用五种振荡器之一: WPR,CCI,Chaikin,RSI 或 Stochastic 振荡器。
强化学习中的随机决策森林

强化学习中的随机决策森林

使用 bagging 的随机森林(Random Forest, RF) 是最强大的机器学习方法之一, 它略微弱于梯度 boosting,这篇文章尝试开发了一个自我学习的交易系统,它会根据与市场的交互经验来做出决策。
同步多个相同交易品种而时段不同的图表

同步多个相同交易品种而时段不同的图表

当做交易决定时,我们经常必须在多个时段分析图表,同时,这些图表常常包含着图形对象,把相同的对象应用到所有图表中会不大方便,在本文中,我提出了一种自动克隆将要显示在图表中对象的方法。
MetaTrader 5 中的多元品种余额图

MetaTrader 5 中的多元品种余额图

本文提供了一个 MQL 应用程序示例,其图形界面具有多元品种余额图,以及基于最后测试结果的资金回撤图。
深度神经网络 (第五部分)。 DNN 超参数的贝叶斯优化

深度神经网络 (第五部分)。 DNN 超参数的贝叶斯优化

本文研究利用贝叶斯优化深度神经网络 (DNN) 超参数,获取各种训练变体的可能性。 比较不同训练变体中最优超参数 DNN 的分类品质。 DNN 最优超参数的有效性的深度已在前瞻性测试中得以验证。 改善分类品质的可能方向也已确定。
preview
如何创建任意复杂度的图形面板

如何创建任意复杂度的图形面板

本文详细介绍了如何在 CAppDialog 类的基础上创建面板,以及如何在面板上增加控件。它描述了面板的结构和框架,显示了对象的继承关系。从这篇文章中,您还可以学习到事件是怎样处理的以及它们是怎样在独立的控件之间传递的。另外还有实例演示了如何编辑面板参数,例如大小和背景颜色。
交易者生活窍门: 利用 defines (#define) 融合 ForEach

交易者生活窍门: 利用 defines (#define) 融合 ForEach

对于那些仍然使用 MQL4 编程且不想切换到 MQL5 的人来说, 本文是一个过渡步骤。 我们继续寻找以 MQL4 风格编写代码的机会。 这一次, 我们将研究 #define 预处理器的宏替代。
如何创建订购指标的需求规范

如何创建订购指标的需求规范

大多数情况下, 开发交易系统的第一步是创建技术指标, 以便识别有价值的市场行为形态。 专业开发的指标可以从自由职业服务板块订购。 从本文中, 您将学习如何创建一份适当的需求规范, 这将有助于您更快地获得所需的指标。
为 MetaTrader 5 创建自定义新闻递送

为 MetaTrader 5 创建自定义新闻递送

在本文中, 我们将探讨创建灵活新闻递送的可能性, 可提供更多新闻类型和来源方面的选项。 本文将介绍如何将 Web API 与 MetaTrader 5 终端集成。
基于快速数学计算的自定义策略测试器

基于快速数学计算的自定义策略测试器

本文将介绍创建自定义策略测试器和自定义优化通关分析器的方法。阅读之后, 您将了解数学计算模式, 和所谓分帧机制如何工作, 如何准备和加载用于计算的自定义数据, 以及如何使用有效的算法将它们压缩。对于那些打算在智能系统中存储自定义信息感兴趣的人来说, 这篇文章会很有趣。