MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)
包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)

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

这是展示开发用于人工交易的多交易品种信号 EA 文章的第二部分,我们已经创建了图形界面,现在是时候把它与程序功能相关联了。
整合基于MQL的EA交易和数据库 (SQL Server, .NET 和 C#)
整合基于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 应用程序,这一次,我们将会展示如何在通过图形界面指定了其它标准、在优化参数之后生成最佳结果的表格。
如何创建订购交易机器人的需求规范
如何创建订购交易机器人的需求规范

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MetaTrader 5 中的多元品种余额图

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

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

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

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

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

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

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

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

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

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

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

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

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

通道突破形态

价格趋势形成的价格通道可在金融产品的图表上观察到。突破当前通道是强趋势的反转信号之一。在本文中, 我推荐一种查找此类信号的自动处理方法, 并观察通道突破形态是否可用来创建交易策略。
动量弹球交易策略
动量弹球交易策略

动量弹球交易策略

在这篇文章中,我们会继续探讨根据 Linda B. Raschke 和 Laurence A. Connors 的 “华尔街智慧: 高胜算短线交易策略(Street Smarts: High Probability Short-Term Trading Strategies)”一书中描述的交易策略来书写代码,这一次我们将研究动量弹球系统(Momentum Pinball system): 我们会描述创建两个指标,交易机器人和一个其中的信号模块。
利用迪纳波利 (DiNapoli) 等级进行交易
利用迪纳波利 (DiNapoli) 等级进行交易

利用迪纳波利 (DiNapoli) 等级进行交易

本文研究使用 MQL5 标准工具依据迪纳波利 (DiNapoli) 等级进行实际交易的智能交易系统变种。对其性能进行了测试并得出结论。
交易策略中的模糊逻辑
交易策略中的模糊逻辑

交易策略中的模糊逻辑

本文研究使用模糊函数库建立基于模糊逻辑的简单交易系统示例。结合提议的模糊逻辑、遗传算法和神经网络改进的系统变体。
跨平台智能交易系统: CExpertAdvisor 和 CExpertAdvisors 类
跨平台智能交易系统: CExpertAdvisor 和 CExpertAdvisors 类

跨平台智能交易系统: CExpertAdvisor 和 CExpertAdvisors 类

本文主要介绍 CExpertAdvisor 和 CExpertAdvisors 类, 它们是本系列文章中所述跨平台智能交易系统里用到的所有组件的容器。
使用 CGraphic 开发库实现一个剥头皮市场深度
使用 CGraphic 开发库实现一个剥头皮市场深度

使用 CGraphic 开发库实现一个剥头皮市场深度

在本文中,我们将会创建一个剥头皮市场深度工具的基本功能。另外,我们将基于 CGraphic 开发库开发一个订单分时图表,并且把它与订单簿整合。使用所描述的市场深度,就可以创造一个用于短线交易的强大辅助工具。
自适应行情跟踪方法的实际评估
自适应行情跟踪方法的实际评估

自适应行情跟踪方法的实际评估

本文所述交易系统的不同寻常之处主要是使用数学工具分析股票报价。系统应用了数字滤波和离散时间序列的频谱估值。策略的理论层面已描述过, 并曾创建了一款测试智能交易系统。
自动搜索背离和趋合
自动搜索背离和趋合

自动搜索背离和趋合

本文研究各种类型背离: 简单, 隐藏, 扩展, 三重, 四重, 收敛, 以及 A, B 和 C 种类的背离。还开发了在图表上搜索并显示的通用指标。
本文讨论如何在跨平台智能交易系统中设置自定义停止价位。它还讨论了一种紧密相关的方法, 即随着时间的推移, 定义停止位的演化。
本文讨论如何在跨平台智能交易系统中设置自定义停止价位。它还讨论了一种紧密相关的方法, 即随着时间的推移, 定义停止位的演化。

本文讨论如何在跨平台智能交易系统中设置自定义停止价位。它还讨论了一种紧密相关的方法, 即随着时间的推移, 定义停止位的演化。

本文讨论如何在跨平台智能交易系统中设置自定义停止价位。它还讨论了一种紧密相关的方法, 即随着时间的推移, 定义停止位的演化。
通用EA交易: CUnIndicator 和挂单的使用(第9部分)
通用EA交易: CUnIndicator 和挂单的使用(第9部分)

通用EA交易: CUnIndicator 和挂单的使用(第9部分)

本文讲述的是通过通用的 CUnIndicator 类来操作指标,另外,还探讨了操作挂单的新方法。请注意,从这一点开始,CStrategy 项目的结构开始发生本质改变,现在所有的文件都位于一个目录中以便用户方便使用。
图形界面 XI: 集成标准图形库 (统合构建 16)
图形界面 XI: 集成标准图形库 (统合构建 16)

图形界面 XI: 集成标准图形库 (统合构建 16)

能够创建科学图表 (CGraphic 类) 的新版本图形库已于最近发布。创建图形界面的开发中函数库在本次更新中将引入创建图表的新版本控件。不同类型数据的可视化现在更加容易了。
跨平台智能交易系统: 停止位
跨平台智能交易系统: 停止位

跨平台智能交易系统: 停止位

本文讨论智能交易系统中停止价位的实现, 以便在两个平台 Metatrader 4 和 Metatrader 5 之间兼容。
使用云存储服务来进行终端之间的数据交换
使用云存储服务来进行终端之间的数据交换

使用云存储服务来进行终端之间的数据交换

云技术正在变得越来越流行,现在,我们可以选择付费或者免费的存储服务,有没有可能在交易中使用它们呢?本文提出了一种技术,可以使用云存储服务来进行终端之间的数据交换。
图形界面 XI: 表格单元中的文本编辑框和组合框 (统合构建15)
图形界面 XI: 表格单元中的文本编辑框和组合框 (统合构建15)

图形界面 XI: 表格单元中的文本编辑框和组合框 (统合构建15)

在更新的函数库中, 表格控件 (CTable 类) 将补充新的选项。表格单元中的控件阵容得到扩展, 此次添加了文本编辑框和组合框。此外, 此次更新还引入了在运行时调整 MQL 应用程序窗口大小的功能。
旗形形态
旗形形态

旗形形态

本文分析了以下的K线形态: 旗形, 三角旗形, 楔形,长方形,收敛三角型,扩张三角形。除了分析它们的相同点和不同点,我们还将创建指标用于在图表上侦测这些形态,还有一个测试指标用于快速评估它们的效果。
在 MetaTrader 5 中创建和测试自定义交易品种
在 MetaTrader 5 中创建和测试自定义交易品种

在 MetaTrader 5 中创建和测试自定义交易品种

创建自定义交易品种拓展了开发交易系统和金融市场分析的边界,现在,交易者可以在无限的金融资产工具上绘制图表和测试交易策略了。
通用EA交易: 访问交易品种的属性 (第8部分)
通用EA交易: 访问交易品种的属性 (第8部分)

通用EA交易: 访问交易品种的属性 (第8部分)

文章的第八部分包含了 CSymbol 类的描述, 它是一个特别的对象,可以访问任何交易资产。当在 EA 交易中使用时, 这个类提供了很多交易品种的属性,而简化了EA交易的编程,并扩展了它的功能。
跨平台智能交易系统: 时间过滤器
跨平台智能交易系统: 时间过滤器

跨平台智能交易系统: 时间过滤器

本文探讨如何实现跨平台智能交易系统的各种时间过滤方法。时间过滤器类负责检查给定时间是否处于特定时间配置设置的范围内。
图形界面 XI: 渲染控件 (统合构建14.2)
图形界面 XI: 渲染控件 (统合构建14.2)

图形界面 XI: 渲染控件 (统合构建14.2)

在新版本的函数库中, 所有控件将在 OBJ_BITMAP_LABEL 类型的单独图形对象上绘制。我们还将继续描述代码的优化: 讨论函数库核心类的变化。
图形界面 XI: 重构函数库代码 (集成编译 14.1)
图形界面 XI: 重构函数库代码 (集成编译 14.1)

图形界面 XI: 重构函数库代码 (集成编译 14.1)

随着函数库的增长, 其代码必须重新优化以便减少其大小。本文中描述的函数库版本已变得更加面向对象。这令代码更容易学习。最新变化的详细描述将令读者能够根据自己的需求独立开发函数库。
利用 CCanvas 的自定义指标和信息图
利用 CCanvas 的自定义指标和信息图

利用 CCanvas 的自定义指标和信息图

本文研究结构更加复杂实现的新型指标。它还描述了如何开发伪 3D 指标类型和动态信息图。
跨平台的EA交易: 资金管理
跨平台的EA交易: 资金管理

跨平台的EA交易: 资金管理

本文讨论了跨平台EA交易中资金管理方法的实现,资金管理类是用于EA交易中下一次交易进场时进行交易的手数大小计算的。