MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳
金融证券的叠加和干扰
金融证券的叠加和干扰

金融证券的叠加和干扰

随着影响货币对行为受到更多因素影响,评估其行为和对未来进行预测将愈发困难。 因此,如果我们成功提取货币对的组成部分,随时间改变的国家货币值,通过和带有此货币以及影响其行为的多个因素的货币对相比较,我们便可以相当程度上界定国家货币移动的自由度。 因此我们可以提高对其行为评估和未来预测的精准度。 如何办到?
请保护好自己,开发员!
请保护好自己,开发员!

请保护好自己,开发员!

知识产权的保护依旧是个大问题。 本文对 MQL4 程序保护的基本原则进行阐述。 通过这些原则,你可以确保你所开发的成果不会被窃取,或至少能够让小偷的“工作”复杂化,以让他罢手。
Meta 交易者持仓报告 - 在 MetaTrader 4 中进行美国商品期货交易委员会报告分析的新领域
Meta 交易者持仓报告 - 在 MetaTrader 4 中进行美国商品期货交易委员会报告分析的新领域

Meta 交易者持仓报告 - 在 MetaTrader 4 中进行美国商品期货交易委员会报告分析的新领域

本文关于在 MetaTrader 中使用美国商品期货交易委员会(CFTC)的报告数据。 文章详细描述了所讨论的 META 交易者持仓报告(COT)项目,展示了如何加载和处理必要的信息。 项目中包含的 Expert Advisor 将帮助我们分析文章中给出概念的有效性。 最后,我们将得出一些结论并提供有用的建议。
FANN2MQL 神经网络教学
FANN2MQL 神经网络教学

FANN2MQL 神经网络教学

本文将利用一个简单的例子为你演示如何通过 FANN2MQL 来使用神经网络:教给神经网络一个简单的模式,然后测试它是否能够识别从未见过的模式。
烛台方向统计再现的研究
烛台方向统计再现的研究

烛台方向统计再现的研究

是否能够基于烛台方向的再现趋势,在一天内的特定时间预测市场在即将到来的一小段时间内的市场行为? 即,是否可以在第一时间找出此类事件。 每个交易者可能都想过这个问题。 本文的目的是尝试基于烛台在特定时间间隔内的统计再现来预测市场行为。
图形界面 II: 主菜单元件 (第四章))
图形界面 II: 主菜单元件 (第四章))

图形界面 II: 主菜单元件 (第四章))

这是图形界面系列第二部分的最后一章。在此,我们将探讨主菜单的创建,演示这个控件的开发以及设置库中类的处理函数以正确回应用户的操作。我们还将讨论如何把上下文菜单附加到主菜单项目中。另外,我们还会提到怎样阻止当前没有激活的元件。
通过"单元测试"的帮助来提高代码质量
通过"单元测试"的帮助来提高代码质量

通过"单元测试"的帮助来提高代码质量

就算是简单程序也会经常出现看似难以置信的错误。 “我怎么会编出这种东西?”是我们发现这种错误时的第一反应。 “我应该如何避免它?”则是较少会映入脑海的第二个问题。 编写完美无缺的代码是不可能的,特别是在大型项目里,但可通过技术手段及时检测出这些错误。 本文介绍如何借助通用的“单元测试”方法来提高 MQL4 代码质量。
图形界面 II: 设置库的事件处理函数 (第三章)
图形界面 II: 设置库的事件处理函数 (第三章)

图形界面 II: 设置库的事件处理函数 (第三章)

之前的文章中包含了用于创建主菜单构成部分类的实现. 现在, 是时候在主基础类和创建控件的类中关注事件处理函数了. 我们将特别关注根据鼠标光标的位置来管理图表的状态.
通用智能交易系统:交易策略的模式(第一章)
通用智能交易系统:交易策略的模式(第一章)

通用智能交易系统:交易策略的模式(第一章)

任何一个智能交易系统(EA)的开发人员,无论编程技能如何,每天都面临着同样的交易目标和算法问题的困扰,即应该如何建立一个可靠的交易系统。本文介绍CStrategy交易引擎,它可以给出这些任务的解决方案,并且向用户提供一种用于描述自定义交易思想的简便机制。
向指标或者EA中快速添加控制面板
向指标或者EA中快速添加控制面板

向指标或者EA中快速添加控制面板

你是不是觉得需要向你的指标或者EA中添加图形面板来提升配置参数的速度和便捷性?在本文中,你将学会如何一步一步在你的MQL4/MQL5程序中实现输入参数的交互面板。
通过 DDE 在 MetaTrader 4 与 Matlab 之间进行交互
通过 DDE 在 MetaTrader 4 与 Matlab 之间进行交互

通过 DDE 在 MetaTrader 4 与 Matlab 之间进行交互

分步说明如何使用 DDE 将数据从 Matlab 传输到 MetaTrader 4。
已打开头寸的两步修改
已打开头寸的两步修改

已打开头寸的两步修改

两步法让你在邻近趋势的情况下和可能发生偏离的时候,避免不必要的关闭和重新打开头寸。
谬误,第 2 部分统计学是一门伪科学,亦或是一部记录艰难生计的编年史
谬误,第 2 部分统计学是一门伪科学,亦或是一部记录艰难生计的编年史

谬误,第 2 部分统计学是一门伪科学,亦或是一部记录艰难生计的编年史

无数次将统计方法应用于客观现实(即金融序列)的尝试在流程的非稳定性、伴随概率分布的肥尾效应和金融数据量不足等障碍前撞得头破血流。本文中,我将尝试不去探讨金融序列本身,而是探讨其主观呈现 - 在这种情况下,就是探讨交易者尝试控制序列(即交易系统)的方式。介绍交易结果流程的统计规律是件相当有意思的任务。在某些情况下,我们可以对此流程的模型下一个非常正确的结论,这些结论可以应用于交易系统。
将 MetaTrader 4  客户终端与 MS SQL Server 相集成
将 MetaTrader 4  客户终端与 MS SQL Server 相集成

将 MetaTrader 4 客户终端与 MS SQL Server 相集成

本文介绍一个有关使用 dll 将 MetaTrader 4 客户终端与 MS SQL Server 相集成的示例。附件为两个用 С++ 和 MQL4 编写的源代码,以及现成的已编译 Visual C++ 6.0 SP5 项目。
谬误,第 1 部分:资金管理排第二位,并不是很重要
谬误,第 1 部分:资金管理排第二位,并不是很重要

谬误,第 1 部分:资金管理排第二位,并不是很重要

以 0.1 手为基础的第一次策略测试结果展示正在变成论坛上的事实标准。从专业人士那里获得“还不错”的评价后,新手会看到“0.1”测试带来了相当保守的结果,并决定引入一个更积极进取的资金管理方式,以为正数学期望值会自动提供正面的成果。让我们看看会达成什么结果。此外,我们将试着构建多个极具指导意义的人工余额图。
非交易 EA 的测试指标
非交易 EA 的测试指标

非交易 EA 的测试指标

全部指标可以分为两组:静态指标(一旦显示后始终保持不变,不随新报价变化)和动态指标(仅显示当前时刻的状态,新价格出现时要完全重新绘制)。静态指标的效力在图表上直接可见。但如何检验动态指标的有效性呢?这是本文要探讨的问题。
市场变动及其预测的统计分析
市场变动及其预测的统计分析

市场变动及其预测的统计分析

本文深入探讨统计方法在市场中的广泛机会。遗憾的是,交易新手故意不应用非常强大的统计学。同时,这又是他们在分析市场时潜意识使用的唯一工具。此外,统计可以为很多问题给出回答。
基于 MACD 扩展分析的交易助手
基于 MACD 扩展分析的交易助手

基于 MACD 扩展分析的交易助手

基于任意时间范围上实时交易中最后三个柱的 MACD 状态的扩展分析,‘交易助手’脚本帮助你对打开头寸进行决策。也可以用于回测。
更改 MQL4 程序的外部参数而无需重启
更改 MQL4 程序的外部参数而无需重启

更改 MQL4 程序的外部参数而无需重启

本文介绍一种实时更改 MQL4 程序的外部参数而无需重启的方法。
通过 WINAPI 进行文件操作
通过 WINAPI 进行文件操作

通过 WINAPI 进行文件操作

MQL4 环境是基于安全“沙盒”概念:通过语言读取和保存文件的功能仅限于部分预定义的文件夹。这将保护 MetaTrader 4 的用户避免 HDD 上的重要数据受到破坏的潜在危险。但是,离开该安全区域有时也是必要的。本文专门介绍如何能够简单而正确地进行该操作。
MetaEditor:模板作为支点
MetaEditor:模板作为支点

MetaEditor:模板作为支点

可一次性为 EA 编写完成所有准备工作并且这些准备工作可供以后持续使用,这对我们很多读者而言可能还有点陌生。
分组文件的操作
分组文件的操作

分组文件的操作

有时候需要对一组文件执行相同的操作。如果你有包含在一组中的文件列表,则没有问题。但是,如果你需要自己制作列表,问题就出现了:“我该如何去做呢?”文本提出了利用 kernel32.dll 中包含的 FindFirstFile() 和 FindNextFile() 函数实现的方法。
使用 MQL4 的 HTML 引导
使用 MQL4 的 HTML 引导

使用 MQL4 的 HTML 引导

HTML 是当今最广泛使用的文件类型之一。MetaTrader 4 客户终端允许你将语句、测试和优化报告保存为 .htm 文件。有时需要从这些位于 MQL4 程序的文件中获取信息。本文描述了如何从 HTML 获得标记结构和内容的一个形式。
如何编写快速非重绘锯齿形调整浪
如何编写快速非重绘锯齿形调整浪

如何编写快速非重绘锯齿形调整浪

本文提出了一种编写锯齿形调整浪类型指标的相当通用的方法。这个方法包含了许多已经描述的锯齿形调整浪,你可以相对容易的创建新的锯齿形调整浪。
考虑 T. Demark 方法的趋势线指标
考虑 T. Demark 方法的趋势线指标

考虑 T. Demark 方法的趋势线指标

指标反映了显示市场近期事件的趋势线。该指标的开发考虑了 Thomas Demark 有关技术分析的建议和方法。指标显示了趋势的最后方向和趋势的倒数第二个相反方向。
懒惰是进步的动力,或者如何交互性的使用图形
懒惰是进步的动力,或者如何交互性的使用图形

懒惰是进步的动力,或者如何交互性的使用图形

用于跟趋势线、斐波那契水平和手动置于图表上的图标交互作用的指标。可以让你绘制斐波那契水平的颜色区域、显示价格交叉趋势线的时刻以及管理“价格标签”对象。
通过注释确定代码中错误的方法
通过注释确定代码中错误的方法

通过注释确定代码中错误的方法

本文介绍了基于注释搜索 MQL4 代码中错误的方法。当大而合理的代码中的错误导致编译出现问题时,该方法被认为非常有用。
再谈等量图
再谈等量图

再谈等量图

本文阐述了构建图表的方法,其中每个柱都包含等量的价格变动。
面向初学者的 MQL4 语言。自定义指标(第 2 部分)
面向初学者的 MQL4 语言。自定义指标(第 2 部分)

面向初学者的 MQL4 语言。自定义指标(第 2 部分)

这是“面向初学者的 MQL4 语言”系列的第五篇文章。今天我们将学习使用图形对象,这是个非常强大的开发工具,可以大幅拓宽指标的应用范围。此外,它们可以用于脚本和 Expert Advisor。我们将学习创建对象,更改其参数以及检查错误。当然,我不可能详细地描述所有对象,那也太多了。但你会获得让你能够自主学习这些对象的所有必要知识。本文还包含一个逐步引导你创建复杂信号指标的示例。在这里示例中,很多参数都是可调整的,这样就能轻松更改指标的外观。
懒惰是进步的动力。半自动标记模板
懒惰是进步的动力。半自动标记模板

懒惰是进步的动力。半自动标记模板

在几十个关于如何使用图表的示例中,有一种手动标记模板的方法。趋势线、通道、支撑/阻力位等等,都放在图表上。无疑,有一些针对这种工作的特殊程序。每人自己决定采用哪种方法。本文中,我提供了可以供你考虑的方法,即手动标记并随后将一些重复性常规操作自动化。
显示新日历
显示新日历

显示新日历

本文包含对编写简单快捷的指标的描述,该指标用于在工作区域显示来自外部网络资源的重大经济事件。
面向初学者的 MQL4 语言。自定义指标(第 1 部分)
面向初学者的 MQL4 语言。自定义指标(第 1 部分)

面向初学者的 MQL4 语言。自定义指标(第 1 部分)

这是“面向初学者的 MQL4 语言”系列的第四篇文章。今天我们将学习编写自定义指标。我们将熟悉指标特征的分类,了解这些特征如何影响指标,学习新函数和优化方法,最后就是编写我们自己的指标。此外,本文末尾处提供了有关编程风格的建议。如果这是你阅读的第一篇“面向初学者”文章,那你最好抽空读读之前的几篇文章。此外,确保你已经正确理解了之前学过的材料,因为本文不介绍基础知识。
指标和提醒的盈利能力可视化测试
指标和提醒的盈利能力可视化测试

指标和提醒的盈利能力可视化测试

通过这些提醒进行 EA 测试时,通常将决定是使用交易提醒的哪个指标或只是指标计算方式。但是,为每个指标编写一个 EA 并非总是可能/必要/合理的。你可以通过自己收集提醒并绘制理想交易图像的特殊指标,快速计算出基于其他指标提醒的交易盈利能力。这可帮助你既对所得结果进行可视化估计,又快速选择了最优参数。
面向初学者的 MQL4 语言。技术指标和内置函数
面向初学者的 MQL4 语言。技术指标和内置函数

面向初学者的 MQL4 语言。技术指标和内置函数

这是“面向初学者的 MQL4 语言”系列的第三篇文章。现在我们将学习使用内置函数和用于技术指标的函数。后者对于以后开发你自己的 Expert Advisor 和指标至关重要。另外,我们将通过一个简答的例子,解释如何追踪进入市场的交易信号,以及如何正确使用指标。在文章的末尾,你将学到一些关于语言本身的新鲜有趣的内容。
群集指标在嘉盛市场中的实际应用
群集指标在嘉盛市场中的实际应用

群集指标在嘉盛市场中的实际应用

群集指标是一系列将货币对分成独立的货币的指标。指标允许跟踪相对货币波动,确定形成新的货币趋势的潜能,接收交易信号,以及跟踪中期和长期仓位。
使用分形绘制水平突破位
使用分形绘制水平突破位

使用分形绘制水平突破位

本文描述了使用上/下分形显示支撑/阻力位的指标创建。
图形界面 II: 菜单项元件 (第一章)
图形界面 II: 菜单项元件 (第一章)

图形界面 II: 菜单项元件 (第一章)

在本系列文章的第二部分中, 我们将向您展示界面元件开发的详细过程, 例如主菜单和上下文菜单. 我们还会提到元件的绘制以及为此开发一个特别的类. 我们还将深度讨论程序事件管理, 包括自定义事件的问题.
图形界面 I: 在MetaTrader 4终端中使用不同类型的程序来测试界面库 (第五章)
图形界面 I: 在MetaTrader 4终端中使用不同类型的程序来测试界面库 (第五章)

图形界面 I: 在MetaTrader 4终端中使用不同类型的程序来测试界面库 (第五章)

在图形界面系列的第一部分前面的章节中, 我们已经丰富了表单类, 可以通过按下其中的控件来管理表单. 在本文中, 我们将使用不同类型的MQL程序, 例如指标和脚本程序, 来测试我们的成果. 因为此函数库被设计为跨平台的, 因而它可以用于所有MetaTrader平台, 我们也会在MetaTrader 4中测试它.
图形界面 I:控件构成(第二章)
图形界面 I:控件构成(第二章)

图形界面 I:控件构成(第二章)

在本文中我们将创建第一个图形界面的主元素 — 控件的一个窗体。多个控件可以以任何组合被附加到此窗体的任何地方。
图形界面 I:库结构(第一章)
图形界面 I:库结构(第一章)

图形界面 I:库结构(第一章)

本文是另外一系列图形界面开发相关文章的开端。当前,还没有能够在MQL应用中快速而便捷的创建高质量图形界面的独立代码库。我所说图形界面是指我们熟悉的操作系统中的图形界面。