MQL4和MQL5编程文章

icon

在众多发表的文章中研究 MQL5语言编程交易策略 的多数由您—我们 MQL5.community的会员所作。文章以类别分组来帮助您迅速找到任何有关MQL5编程问题的答案:集成,测试,交易策略等等。

Follow our 新发表讨论它们在 MQL5.community论坛

添加一个新的文章
最近 | 最佳
美林(Merrill)形态
美林(Merrill)形态

美林(Merrill)形态

在本文中,我们将研究美林形态的模型,并尝试评估它们与当前行情的相关性。 为此,我们将开发一种工具来测试形态,并将其模型应用在各种数据类型,例如收盘价、最高价和最低价,以及震荡指标。
轻松快捷开发 MetaTrader 程序的函数库(第十四部分):品种对象
轻松快捷开发 MetaTrader 程序的函数库(第十四部分):品种对象

轻松快捷开发 MetaTrader 程序的函数库(第十四部分):品种对象

在本文中,我们将创建品种对象类,该类将成为创建品种集合的基本对象。 该类可令我们获取必要品种的数据,以便进一步进行分析和比较。
轻松快捷开发 MetaTrader 程序的函数库(第十三部分):帐户对象事件
轻松快捷开发 MetaTrader 程序的函数库(第十三部分):帐户对象事件

轻松快捷开发 MetaTrader 程序的函数库(第十三部分):帐户对象事件

本文研究如何处理帐户事件,跟踪影响自动交易的重要帐户属性变化。 在开发帐户对象集合时,我们已在上一篇文章中实现了一些跟踪帐户事件的功能。
轻松快捷开发 MetaTrader 程序的函数库(第十二部分)。
轻松快捷开发 MetaTrader 程序的函数库(第十二部分)。

轻松快捷开发 MetaTrader 程序的函数库(第十二部分)。

上篇文章中,我们在函数库中为 MQL4 定义了平仓事件,并删除了若干未使用的订单属性。 在此,我们将研究创建 Account 对象,开发帐户对象的集合,并筹备跟踪帐户事件的功能。
开发跨平台网格 EA 交易(第三部分): 使用马丁格尔的基于修正的网格
开发跨平台网格 EA 交易(第三部分): 使用马丁格尔的基于修正的网格

开发跨平台网格 EA 交易(第三部分): 使用马丁格尔的基于修正的网格

在本文中,我们将尝试开发尽可能最好的基于网格的 EA 交易。像往常一样,这将是一个跨平台的EA,能够与 MetaTrader 4 和 MetaTrader 5一起工作。第一个 EA 已经足够好了,只是它在很长一段时间内不能盈利。第二个EA在几年之内可能有效,不幸的是,在最大回撤低于50%的条件下, 它每年无法产生超过50%的利润。
轻松快捷开发 MetaTrader 程序的函数库(第十一部分)。 与 MQL4 的兼容性 - 平仓事件
轻松快捷开发 MetaTrader 程序的函数库(第十一部分)。 与 MQL4 的兼容性 - 平仓事件

轻松快捷开发 MetaTrader 程序的函数库(第十一部分)。 与 MQL4 的兼容性 - 平仓事件

我们继续大型跨平台函数库的开发,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 在第十部分中,我们重启与 MQL4 函数库兼容性的工作,并定义了开仓和激活挂单的事件。 在本文中,我们将定义平仓事件,并剔除未使用的订单属性。
优化管理 (第一部分): 创建一个GUI(图形用户界面)
优化管理 (第一部分): 创建一个GUI(图形用户界面)

优化管理 (第一部分): 创建一个GUI(图形用户界面)

本文描述了为MetaTrader终端创建扩展的过程,所讨论的解决方案有助于通过在其他终端中运行优化来自动化优化过程。关于这个话题,我们将再写几篇文章。扩展是使用C#语言和设计模式开发的,它还展示了通过开发自定义模块扩展终端功能的能力,以及使用首选程序的功能创建自定义图形用户界面的能力。
轻松快捷开发 MetaTrader 程序的函数库(第十部分):与 MQL4 的兼容性 - 开仓和激活挂单的事件
轻松快捷开发 MetaTrader 程序的函数库(第十部分):与 MQL4 的兼容性 - 开仓和激活挂单的事件

轻松快捷开发 MetaTrader 程序的函数库(第十部分):与 MQL4 的兼容性 - 开仓和激活挂单的事件

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 在第九部分中,我们开始改进 MQL4 的库类。 在此,我们将继续改进函数库,确保其与 MQL4 的完全兼容。
通过谷歌服务安排邮寄活动
通过谷歌服务安排邮寄活动

通过谷歌服务安排邮寄活动

交易者可能希望安排一次邮寄活动,以维持与其他交易者、订户、客户或朋友的业务关系。此外,可能需要发送屏幕截图、日志或报告。这些任务可能不是最经常出现的任务,但是拥有这样的特性显然是一个优势。本文讨论同时使用几个Google服务,在C#上开发适当的程序集,并将其与MQL工具集成。
攫取盈利至最后的点位
攫取盈利至最后的点位

攫取盈利至最后的点位

本文尝试阐述在算法交易领域中将理论与实践相结合。 有关创建交易系统的大多数讨论都与依据历史柱线和其上应用的各种指标有关联。 这是覆盖率最高的领域,因此我们不会再过多涉及。 柱线体现出非常人工的实体; 因此,我们将使用更接近原始数据的东西,即价格的即时报价。
开发一个跨平台的EA交易来根据风险设置止损和获利
开发一个跨平台的EA交易来根据风险设置止损和获利

开发一个跨平台的EA交易来根据风险设置止损和获利

在本文中,我们将创建一个EA交易,用于基于风险值自动进行入场手数的计算。此外,EA交易将能够以止损的比率来自动设置获利,也就是说,它可以根据任何选择的比率计算获利,例如3比1、4比1或任何其他选择的值。
轻松快捷开发 MetaTrader 程序的函数库(第九部分):与 MQL4 的兼容性 - 准备数据
轻松快捷开发 MetaTrader 程序的函数库(第九部分):与 MQL4 的兼容性 - 准备数据

轻松快捷开发 MetaTrader 程序的函数库(第九部分):与 MQL4 的兼容性 - 准备数据

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 在第八部分中,我们实现了跟踪订单和持仓修改事件的类。 在此,我们将令其与 MQL4 完全兼容来,极大改进函数库。
轻松快捷开发 MetaTrader 程序的函数库(第八部分):订单和持仓修改事件
轻松快捷开发 MetaTrader 程序的函数库(第八部分):订单和持仓修改事件

轻松快捷开发 MetaTrader 程序的函数库(第八部分):订单和持仓修改事件

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 在第七部分中,我们加入了 StopLimit 订单激活跟踪,以及准备了其它涉及订单和持仓事件的跟踪功能。 在本文中,我们将开发用于跟踪订单和持仓修改事件的类。
开发跨平台网格EA(第二部分):在趋势方向上的基于范围的网格
开发跨平台网格EA(第二部分):在趋势方向上的基于范围的网格

开发跨平台网格EA(第二部分):在趋势方向上的基于范围的网格

在本文中,我们将开发一个网格EA,用于在一个范围内的趋势方向上进行交易。这样,此EA主要适用于外汇和大宗商品市场,根据测试,我们的网格EA 自2018年以来显示盈利,不幸的是,这在2014-2018年期间并非如此。
通过差异化和熵值分析来探索市场"记忆"
通过差异化和熵值分析来探索市场"记忆"

通过差异化和熵值分析来探索市场"记忆"

分数型差分的应用范围足够广泛。 例如,差分序列通常作为机器学习算法的输入。 问题是,必须在机器学习模型可识别的前提下,显示相应历史阶段的新数据。 在本文中,我们将研究时间序列差分的原始方法。 本文还包含基于所接收差分序列的交易系统自我优化示例。
价格速度测量方法
价格速度测量方法

价格速度测量方法

市场研究和分析有多种不同的方法,主要是技术分析和基础分析。在技术分析中,交易者收集、处理和分析与市场有关的数字数据和参数,包括价格、数量等。在基本面分析中,交易者分析直接或间接影响市场的事件和新闻。本文研究了价格-速度测量方法,并在此基础上研究了交易策略。
评估分形指数和Hurst指数预测金融时间序列的能力
评估分形指数和Hurst指数预测金融时间序列的能力

评估分形指数和Hurst指数预测金融时间序列的能力

有关金融数据分形行为的研究表明,在经济时间序列看似混乱的行为背后,存在着参与者集体行为的隐性稳定机制。这些机制可以导致交易所出现价格动态,从而定义和描述价格序列的具体属性。应用于交易中,能够有效、可靠地估计尺度和时间框架内的分形参数的指标,具有一定的实用价值。
轻松快捷开发 MetaTrader 程序的函数库(第七部分): StopLimit 订单激活事件,为修改订单和持仓事件准备功能
轻松快捷开发 MetaTrader 程序的函数库(第七部分): StopLimit 订单激活事件,为修改订单和持仓事件准备功能

轻松快捷开发 MetaTrader 程序的函数库(第七部分): StopLimit 订单激活事件,为修改订单和持仓事件准备功能

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化了 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 在第六部分中,我们训导函数在净持结算账户上工作。 在此,我们将实现跟踪 StopLimit 订单激活,并准备跟踪修改订单和持仓事件的功能。
轻松快捷开发 MetaTrader 程序的函数库(第六部分):净持帐户事件
轻松快捷开发 MetaTrader 程序的函数库(第六部分):净持帐户事件

轻松快捷开发 MetaTrader 程序的函数库(第六部分):净持帐户事件

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 在本系列文章的第五部分中,我们创建了交易事件类和事件集合,从中将事件发送到 Engine 函数库的基础对象和控制程序图表。 在这部分中,我们将让函数工作在净结算账户上。
在交易中应用 OLAP(第 2 部分):可视化交互式多维数据分析的结果
在交易中应用 OLAP(第 2 部分):可视化交互式多维数据分析的结果

在交易中应用 OLAP(第 2 部分):可视化交互式多维数据分析的结果

在本文中,我们会探讨为一个MQL程序创建一个交互式图形界面,该程序设计用于使用OLAP技术处理帐户历史和交易报告。为了获得视觉效果,我们将使用最大化和可伸缩的窗口、自适应布局的控件和用于显示图表的新控件。为了提供可视化功能,我们将实现一个GUI,其中沿着坐标轴选择变量,以及选择聚合函数、图表类型和排序选项。
在交易中应用 OLAP(第 1 部分):在线分析多维数据
在交易中应用 OLAP(第 1 部分):在线分析多维数据

在交易中应用 OLAP(第 1 部分):在线分析多维数据

本文论述如何创建多维数据(OLAP - 在线分析处理)的在线分析框架,以及如何在 MQL 中实现此框架,还有利用交易帐户历史数据在 MetaTrader 环境中应用此类分析的示例。
基于 .Net 框架和 C# 开发图形界面(第二部分):另外的图形元素
基于 .Net 框架和 C# 开发图形界面(第二部分):另外的图形元素

基于 .Net 框架和 C# 开发图形界面(第二部分):另外的图形元素

本文是之前发表的“基于.NET框架和C为EA交易和指标开发图形界面”的后续部分,它引入了新的图形元素来创建图形界面。
轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件
轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件

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

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

利用 MQL5 和 MQL4 实现的选择和导航工具: 把数据添加到图表中

在本文中,我们将继续扩展实用程序的功能。这一次,我们将增加显示简化交易的数据的能力,特别是前一天的最高、最低价位,全年的最高、最低价位,开盘时间等。
轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件
轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件

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

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

如何基于HTML和CSV报表可视化多币种交易历史

自推出以来,MetaTrader 5提供了多货币测试选项,也许交易者经常使用这个功能。然而,这种功能并不是万能的。本文介绍了几种基于HTML和CSV交易历史报告的图表图形绘制程序,多货币交易可以在多个子窗口以及使用动态切换命令的一个窗口中并行分析。
研究烛条分析技术(第四部分):形态分析器的更新和补充
研究烛条分析技术(第四部分):形态分析器的更新和补充

研究烛条分析技术(第四部分):形态分析器的更新和补充

本文论述了形态分析器(Pattern Analyzer)应用程序的新版本。 此版本修复了已发现错误并提供了一些新功能,还改进了用户界面。 在新版本的开发过程中参考了上一篇文章中的意见和建议。 最终的应用程序会在本文中进行说明。
开发一个跨平台网格 EA
开发一个跨平台网格 EA

开发一个跨平台网格 EA

在本文中,我们将学习如何创建在 MetaTrader 4 和 MetaTrader 5 中都能工作的 EA 交易。为此,我们将开发一个 EA 构建的订单网格,网格是指将多个限价订单置于当前价格之上,同时将相同数量的限价订单置于当前价格之下的 EA 交易。
10 分钟掌握 MQL5 的 DLL(第二部分):使用 Visual Studio 2017 创建
10 分钟掌握 MQL5 的 DLL(第二部分):使用 Visual Studio 2017 创建

10 分钟掌握 MQL5 的 DLL(第二部分):使用 Visual Studio 2017 创建

初版文章依然具有其相关性,因此如果您对此主题感兴趣,请务必阅读第一篇文章。 从初版起已经过了很久时间,而当前的 Visual Studio 2017 具有全新的界面。 MetaTrader 5 平台也拥有了诸多新功能。 本文提供了开发 DLL 项目各个阶段的描述,以及如何设置 DLL 并与 MetaTrader 5 工具进行交互。
在 MetaTrader 5 中使用 MATLAB 2018 的计算功能
在 MetaTrader 5 中使用 MATLAB 2018 的计算功能

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

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

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

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

作为技术分析工具的 MTF 指标

大多数交易者都同意,当前的市场状态分析从评估更高的图表时间框架开始。该分析向下执行,以缩短执行交易的时间范围。这种分析方法似乎是成功交易的专业方法的强制性部分。在本文中,我们将讨论多时间段指标及其创建方法,并提供MQL5代码示例。除了对优缺点进行综合评价外,我们还将提出一种采用MTF模式的新指标方法。
使用CSS选择器从HTML页面提取结构化数据
使用CSS选择器从HTML页面提取结构化数据

使用CSS选择器从HTML页面提取结构化数据

本文描述了一种通用的基于CSS选择器的HTML文档数据分析和转换方法。交易报告、测试报告、您最喜欢的经济日历、公共信号、账户监控和其他在线报价源将直接从MQL获得。
从网络中获取债券收益率数据
从网络中获取债券收益率数据

从网络中获取债券收益率数据

自动收集利率数据以提高EA交易的效率。
轻松快捷开发 MetaTrader 程序的函数库(第二部分)。 历史订单和成交的集合
轻松快捷开发 MetaTrader 程序的函数库(第二部分)。 历史订单和成交的集合

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

在第一部分中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 我们创建了 COrder 抽象对象,它是一个基础对象,用于存储历史订单和成交的数据,以及市价订单和仓位。 现在,我们将开发在集合中存储帐户历史数据的所有必要对象。
研究烛条分析技术(第三部分):用于形态操作的函数库
研究烛条分析技术(第三部分):用于形态操作的函数库

研究烛条分析技术(第三部分):用于形态操作的函数库

本文的目的是创建一个自定义工具,令用户能够接收和使用前面所讨论形态的整体信息数组。 我们将创建一个形态相关的函数库,您可以在自己的指标、交易面板、智能交易系统等等应用中运用它们。
轻松快捷开发 MetaTrader 程序的函数库(第一部分)。 概念,数据管理和首期成果
轻松快捷开发 MetaTrader 程序的函数库(第一部分)。 概念,数据管理和首期成果

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

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

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

本文介绍了一种使用 Visual Studio 创建图形窗口的简单而快速的方法,并随后将其集成到专家顾问的MQL代码中。本文面向非专业读者,不需要了解C#和.NET技术。
交易策略的色彩优化
交易策略的色彩优化

交易策略的色彩优化

在本文中,我们将进行一个实验:我们将使用颜色优化结果。颜色由三个参数决定:红色、绿色和蓝色(RGB)的级别。还有其他的颜色编码方法,它们也使用三个参数。因此,可以将三个测试参数转换为一种颜色,它直观地表示值,阅读本文以了解这种表示是否有用。
MetaTrader 5 与 Python 的集成:接收和发送数据
MetaTrader 5 与 Python 的集成:接收和发送数据

MetaTrader 5 与 Python 的集成:接收和发送数据

全方位的数据处理需要大量工具,并且经常超出单一应用程序的功能沙箱。 专用编程语言正在用于处理和分析数据,统计和机器学习。 Python 是数据处理的主要编程语言之一。 本文介绍如何使用套接字连接 MetaTrader 5 和 Python,以及如何通过终端 API 接收报价。