MQL4和MQL5编程文章

icon

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

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

添加一个新的文章
最近 | 最佳
基于交易模块创建多个 EA 交易
基于交易模块创建多个 EA 交易

基于交易模块创建多个 EA 交易

在 MQL5 中使用面向对象方法这一做法,极大简化了多币种/多系统/多时间表 EA 交易的创建过程。不妨想象一下单个 EA 交易采用多个交易策略、使用一切可用工具以及利用所有可能的时间表进行交易的情形!此外,EA 交易还方便使用测试程序进行测试,并且对于所有策略而言,该交易包含了一个或多个资金管理工作系统。
最新的改革
最新的改革

最新的改革

看一看您的交易终端。您能看到哪些价格展示方式?柱、烛形图和线条。我们追求的是时间和价格,但却只能由价格获利。那么,分析市场时,我们能否只关注价格呢?本文会针对点数图("圈圈叉叉")提出一种算法和脚本 - 已将各种各样的价格模式考虑在内,而其实际应用亦于提供的建议中列出。
William Blau 的 MQL5 指标与交易系统。第一部分:指标
William Blau 的 MQL5 指标与交易系统。第一部分:指标

William Blau 的 MQL5 指标与交易系统。第一部分:指标

本文要讲述的是 William Blau 在《动量、方向和背离》一书中所说的指标。William Blau 的方法允许我们迅速、准确地接近价格曲线的波动,从而确定价格变动的趋势和转折点,并消除价格噪声。同时,我们还能探测市场的超买/超卖状态,以及指明趋势结束和价格反向变化的信号。
分析指标统计参数
分析指标统计参数

分析指标统计参数

这种技术分析广泛应用于各个指标,从而更清楚地显示基本报价,并允许交易者执行分析和预测市场价格变动。非常明显,除非我们可以解决初始报价转换以及所得结果可信度的相关问题,否则使用这些指标没什么意义,更不用说将其应用于交易系统的创建了。我们会在本文中讲述,得出这样一个结论,是经过严格推理的。
利用指数平滑法进行时间序列预测
利用指数平滑法进行时间序列预测

利用指数平滑法进行时间序列预测

本文旨在让读者熟悉用于时间序列短期预测的指数平滑模型,此外还会探讨预测结果优化与评估相关的各种问题,并提供若干脚本与指标示例。当您首次接触基于指数平滑模型的预测原则时,阅读本文定会有所收益。
MQL5 傻瓜式向导
MQL5 傻瓜式向导

MQL5 傻瓜式向导

在 2011 年年初,我们发布了 MQL5 向导的第一个版本。这一新的应用程序为自动生成交易机器人提供了简单方便的工具。任何 MetaTrader 5 用户都能创建自定义的EA 交易,他们甚至无需知道如何以 MQL5 编程。
源代码的跟踪、调试和结构分析
源代码的跟踪、调试和结构分析

源代码的跟踪、调试和结构分析

可以在没有很大困难的情况下解决创建执行代码的结构以及对其进行跟踪的整个复杂问题。由于 MQL5 语言的新功能 - 自动创建复杂类型的数据变量(结构和类)以及在超出局部范围时自动消失,这种可能性已经出现在 MetaTrader 5 中。本文提供对方法和现成工具的描述。
用 MQL5 表示统计概率分布
用 MQL5 表示统计概率分布

用 MQL5 表示统计概率分布

本文介绍了在应用统计中使用的随机变量的概率分布(正态分布、对数正态分布、二项分布、逻辑分布、指数分布、柯西分配、学生 t 分布、拉普拉斯分布、泊松分布、双曲线正割分布、贝塔分布和伽玛分布)。它还介绍用于处理这些分布的类。
以线性回归为例说明指标加速的 3 种方法
以线性回归为例说明指标加速的 3 种方法

以线性回归为例说明指标加速的 3 种方法

本文讨论指标算法优化方法。每个人都会找到最适合自己的方法。本文介绍了三种方法。其中一个非常简单,另一个需要扎实的数学知识,最后一个需要一些智慧。使用指标或 MetaTrader5 客户端设计功能来实现其中的大多数方法。这些方法通用性强,不仅可用于加快线性回归计算,也可用于很多其他指标。
统计分布在交易者工作中的作用
统计分布在交易者工作中的作用

统计分布在交易者工作中的作用

本文是我的《用 MQL5 表示统计概率分布》一文的续篇,该文介绍了处理某些理论统计分布的类。现在,我们已经有了理论基础,我建议我们应直接进入实际数据集,并尝试据此基础获得某些信息。
使用伪模板替代 C++ 模板
使用伪模板替代 C++ 模板

使用伪模板替代 C++ 模板

本文说明了一种不使用模板但保持它们固有的编程风格的编程方式。文章讨论使用自定义方法实施模板的问题,并且附带了一个现成的脚本以依据指定的模板创建代码。
移动极小化极大:技术分析的新指标及其在 MQL5 中的实施
移动极小化极大:技术分析的新指标及其在 MQL5 中的实施

移动极小化极大:技术分析的新指标及其在 MQL5 中的实施

在下文中,我将基于 Z.G.Silagadze 的论文《移动极小化极大:技术分析的新指标》说明移动极小化极大指标的实施过程。指标的理念基于对量子隧穿现象的模拟,量子隧穿现象由 G. Gamov 在 α-衰变理论中提出。
连接 NeuroSolutions 神经网络
连接 NeuroSolutions 神经网络

连接 NeuroSolutions 神经网络

除了创建神经网络,NeuroSolutions 软件套件允许将它们导出为 DLL。本文介绍创建神经网络、生成 DLL 并将其连接至"EA 交易"以在 MetaTrader 5 中交易的过程。
MQL5 向导:如何创建未平仓位的追踪模块
MQL5 向导:如何创建未平仓位的追踪模块

MQL5 向导:如何创建未平仓位的追踪模块

MQL5 向导的交易策略生成器极大简化了交易理念的检验过程。本文介绍了如何编写自己的未平仓位管理类,以及如何将其连接至 MQL5 向导的交易策略生成器;当价格呈持仓方向移动时,该类可将止损水平移入无损区域,从而在交易过程中保护您的利益并减少亏损。本文还介绍了为 MQL5 向导创建的类的说明的结构和格式。
MQL5 向导:如何创建风险和资金管理模块
MQL5 向导:如何创建风险和资金管理模块

MQL5 向导:如何创建风险和资金管理模块

MQL5 向导的交易策略生成器极大简化了交易理念的检验过程。本文介绍了如何创建自定义风险和资金管理模块以及如何在 MQL5 向导中启用该模块。我们将使用一个资金管理算法作为示例,在该算法中交易量规模取决于上一笔交易的结果。本文还将介绍为 MQL5 向导创建的类的说明的结构和格式。
MQL5 向导:如何创建交易信号模块
MQL5 向导:如何创建交易信号模块

MQL5 向导:如何创建交易信号模块

本文介绍了如何通过在穿越价格和移动平均线时构成信号这一方法来编写自己的交易信号类,以及如何将其包含在 MQL5 向导的交易策略生成器中,还介绍了用于 MQL5 向导的生成类的说明的结构和格式。
使用计量经济学方法分析图表
使用计量经济学方法分析图表

使用计量经济学方法分析图表

本文介绍了用于分析、自相关分析尤其是条件方差分析的计量经济学方法。本文介绍的方法有何益处?使用非线性 GARCH 模型可以从数学角度正式表示分析序列并为指定步骤数建立预测。
在视图内/外绘制通道
在视图内/外绘制通道

在视图内/外绘制通道

如果说通道是继移动平均线之后最流行的市场分析和交易决策工具,我想这并没有夸大。无需深入了解为数众多的使用通道及其组件的交易策略,我们将讨论某指标的数据基础和实际实施,该指标用于在客户端的屏幕上绘制由三个极值确定的通道。
编写"EA 交易"时,MQL5 标准交易类库的使用
编写"EA 交易"时,MQL5 标准交易类库的使用

编写"EA 交易"时,MQL5 标准交易类库的使用

本文阐述的是,在编写"EA 交易"的过程中,如何使用 MQL5 标准库交易类的主要功能,实现更改仓位与平仓、挂单的下达与删除,以及交易进行之前的预付款验证。我们还会演示可以如何使用交易类来获取订单与交易详情。
利用判别分析开发交易系统
利用判别分析开发交易系统

利用判别分析开发交易系统

开发交易系统时,通常都会出现选择最佳指标与信号组合的问题。而判别分析就是找到此类组合的方法之一。本文会给出一个用于市场数据采集的 EA 开发示例,并详细阐明如何利用判别分析在 Statistica 软件中构建外汇市场预后模型。
时间序列主要特性的分析
时间序列主要特性的分析

时间序列主要特性的分析

本文会介绍一个专为针对各种时间序列的特性给出快速初步评估而设计的类。与其同时,亦对统计参数和自相关函数进行评估,对时间序列执行频谱估计,并构建一个直方图。
先进的自适应指标理论及在 MQL5 中的实施
先进的自适应指标理论及在 MQL5 中的实施

先进的自适应指标理论及在 MQL5 中的实施

本文要讲述的是高级自适应指标及其在 MQL5 中的实施:自适应周期性指标、自适应重心及自适应 RVI。所有指标的最初出处都在 John F. Ehlers 编著的《股票与期货控制分析》一书中。
MetaTrader 5 中的并行计算
MetaTrader 5 中的并行计算

MetaTrader 5 中的并行计算

在人类的整个历史长河中,时间都是极其宝贵的,因此我们努力避免不必要的时间浪费。如果您的电脑配备了多核处理器,本文将告诉您如何为“EA 交易”的工作提速。此外,实施建议的方法不要求您掌握 MQL5 以外的其他语言的知识。
基于 CChartObject 类设计和实施新 GUI 组件
基于 CChartObject 类设计和实施新 GUI 组件

基于 CChartObject 类设计和实施新 GUI 组件

在我撰写了关于通过 GUI 界面实现半自动“EA 交易”的前作后,结果表明针对更复杂的指标和“EA 交易”,最好使用新的功能来改善界面。在熟悉 MQL5 标准库类后,我实施了一些新的组件。本文介绍新 MQL5 GUI 组件的设计和实施过程;这些组件可用于指标和“EA 交易”。本文中介绍的组件包括:CChartObjectSpinner、CChartObjectProgressBar 和 CChartObjectEditTable。
基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”
基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”

基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”

部分交易人员选择自动执行所有交易,而另外一些交易人员基于多个指标的输出混合使用自动和手动交易。作为后者中的一员,我需要一个互动式工具以直接从图表动态地评估风险和回报价格水平。本文将介绍通过预定义的资产净值风险和风险/回报比实施互动式半自动“EA 交易”的方法。“EA 交易”风险、风险/回报和手数参数可于运行时期间在 EA 面板上更改。
以峰谷指标和 ATR 指标为例说明作为类来实施指标
以峰谷指标和 ATR 指标为例说明作为类来实施指标

以峰谷指标和 ATR 指标为例说明作为类来实施指标

有关指标计算的最佳方式的争论无休无止。我们应在何处计算指标值 - 在指标本身内还是嵌入使用该指标的 EA 交易的整个逻辑之中?本文说明在 EA 交易或脚本的代码中移动自定义指标 iCustom 的源代码的一种情形,并对计算和 prev_calculated 值的建模进行优化。
基于成交历史的交易播放器
基于成交历史的交易播放器

基于成交历史的交易播放器

交易播放器。仅仅五个字,无需解释。一个带有按钮的小对话框出现在您的脑海中。按一个按钮 - 它开始播放,移动控制杆 - 播放速度改变。事实上,它非常类似。在本文中,我想展示我编写的以几乎与实时交易完全相同的方式播放交易历史的程序。本文使用指标和管理图表来介绍 OOP 的某些细节。
不使用额外的缓冲区,为中间计算进行系列价格的平均化
不使用额外的缓冲区,为中间计算进行系列价格的平均化

不使用额外的缓冲区,为中间计算进行系列价格的平均化

本文要讲述的是封装于最简单的单型类中的传统与非寻常平均线算法。它们旨在实现于几乎所有指标的开发过程中的普适用途。我希望建议的这些类,会成为那些自定义与技术指标“笨重”调用的一个很好的替代。
例解 MQL5 中的面向对象编程:处理警告和错误代码
例解 MQL5 中的面向对象编程:处理警告和错误代码

例解 MQL5 中的面向对象编程:处理警告和错误代码

本文以一个例子说明创建一个类用于处理 MQL 程序运行期间交易服务器返回的代码以及所有错误的类。阅读本文之后,您将学习到如何在 MQL5 中处理类和对象。同时,这是一个方便的错误处理工具;并且您可以依据您的具体需要进一步更改此工具。
针对市场分析的数据库的具体应用
针对市场分析的数据库的具体应用

针对市场分析的数据库的具体应用

处理数据成为现代软件的主要任务 - 独立应用程序和网络应用程序都是如此。为解决此问题而创建了专业软件。这些软件被称为数据库管理系统 (DBMS),能够针对它们的计算机存储和处理对数据进行构建、系统化和组织。对于交易,大多数分析师并不在他们的工作中使用数据库。但是对于一些任务,必须使用此类解决方案。本文提供了一个在客户端-服务器和文件-服务器架构中都能将数据保存到数据库或从数据库加载数据的指标例子。
将指标从 MQL4 迁移到 MQL5
将指标从 MQL4 迁移到 MQL5

将指标从 MQL4 迁移到 MQL5

本文旨在说明将用 MQL4 编写的价格构建迁移到 MQL5。为了让将指标计算从 MQL4 迁移到 MQL5 的过程更加容易,建议使用 mql4_2_mql5.mqh 函数库。依据 MACD、随机动量指标和 RSI 指标说明其用途。
建立一个频谱分析程序
建立一个频谱分析程序

建立一个频谱分析程序

本文旨在让读者熟悉使用 MQL5 语言图形对象的一种可能变量。它会对一个利用图形对象管理简单频谱分析程序的面板的实施指标进行分析。本文专为熟悉 MQL5 基础的读者编写。
利用标准库类创建您自己的“市场报价”
利用标准库类创建您自己的“市场报价”

利用标准库类创建您自己的“市场报价”

新型 MetaTrader 5 客户端与 MQL5 语言提供了向交易者展示可视信息的新机遇。本文中,我们会讲到一系列通用且可扩展的类,处理图表上方任意文本信息的组织与显示工作。“市场报价”指标的示例亦有提供。
MQL5 向导:无需编程即可创建 EA 交易程序
MQL5 向导:无需编程即可创建 EA 交易程序

MQL5 向导:无需编程即可创建 EA 交易程序

您想试试不用浪费时间来编程的交易策略吗?利用 MQL5 向导,您只需要选择交易信号的类型,添加追踪仓位和资金管理模块,您的工作就完成了!创建自己的模块实现,或是通过“任务”服务订购 - 再将您的新模块合并到现有模块。
生长型神经气:MQL5 中的实施
生长型神经气:MQL5 中的实施

生长型神经气:MQL5 中的实施

本文会举例说明如何开发一个可以实施名为“生长型神经气” (GNG) 自适应聚类算法的 MQL5 程序。本文针对已研究过语言文档、且已具备一定编程能力和神经信息学基础知识的用户。
一个用于通过 Google Chart API 构建图表的库
一个用于通过 Google Chart API 构建图表的库

一个用于通过 Google Chart API 构建图表的库

构建各种类型的图表是分析市场情形及测试交易系统的一个基本部分。通常,为了构建一个精致的图表,必须将数据输出到一个文件,然后在 MS Excel 等应用程序中使用该文件。这样并不是非常方便,并且使我们无法动态更新数据。Google Charts API 通过向服务器发送特别请求,提供了在线创建图表的方式。在本文中,我们将尝试让创建此类请求和从 Google 服务器获得图表的过程实现自动化。
New Bar (新柱)事件处理程序
New Bar (新柱)事件处理程序

New Bar (新柱)事件处理程序

MQL5 编程语言处理问题的能力已达到一个全新的水平。即便是那些已有此类解决方案的任务,也因为面向对象编程而进阶到一个更高的水平。本文中,我们会举一个检查图表中新柱的特别简单的例子,而且,它已经转化成为一种相当强大且用途多样的工具。什么工具?到文中找答案吧。
查找错误和记录
查找错误和记录

查找错误和记录

MetaEditor 5 具备调试功能。但是在编写 MQL5 程序时,您通常都希望不要显示个别的值,而是测试与在线工作期间出现的所有信息。如果日志文件内容庞大,所需信息快速便捷检索自动化的重要性就显而易见了。本文中,我们会研究 MQL5 程序中查找错误的方式以及记录方法。我们也会简单地记录到文件中,并了解一款方便日志查看的简单程序 - LogMon。
“EA 交易”运行期间平衡曲线斜率的控制
“EA 交易”运行期间平衡曲线斜率的控制

“EA 交易”运行期间平衡曲线斜率的控制

找到交易系统的规则,再于“EA 交易”中进行编程,任务就完成一半了。随着交易结果的累积,您需要通过某种方式纠正“EA 交易”的操作。本文讲述一种方法,通过创建平衡曲线斜率的测量反馈,改善“EA 交易”的性能。
通过指定的幻数计算总持仓量的最佳方法
通过指定的幻数计算总持仓量的最佳方法

通过指定的幻数计算总持仓量的最佳方法

本文探讨了与指定交易品种和幻数有关的总持仓量的计算问题。所提议的方法仅请求交易历史记录的最少必要部分,在总持仓量等于零时查找最接近的时间,并用最新的交易进行计算。还考虑了客户端全局变量的处理。