MQL5编程文章

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

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

最近 | 最佳

创建 EA 交易优化的自定义标准

MetaTrader 5 客户端提供了各种机会来优化 EA 交易的参数。除了策略测试程序中包含的优化标准以外,开发人员还有机会创建自己的标准。这样一来,EA 交易的测试和优化便具有了无限的可能性。本文介绍了创建此类标准的实用方法,既适用于复杂标准,也适用于简单标准。

在 MetaTrader 5 中使用自组织特征映射(Kohonen 映射)

自组织特征映射(Kohonen 映射)最有趣的方面是,其在不受监督的情况下就可学会对数据进行分类。就其基本形式而言,该映射能够生成输入数据的一个类似映射(聚类)。可使用 SOM 映射实现高维数据的分类和可视化。在本文中,我们将讨论 Kohonen 映射的几个简单应用。

统计估计

对某个序列的统计参数进行估计非常重要,因为大多数数学模型和方法均基于不同的假设。例如,正态分布规律或离差值(或其他参数)就是这样。因此,在分析和预测时间序列时,我们需要一个简单方便的工具,用于快速清晰地估计主要统计参数。本文简要说明了一个随机序列的最简单统计参数,以及其可视分析的几种方法。本文还说明了如何在 MQL5 中实现这些方法,以及使用 Gnuplot 应用程序对计算结果进行可视化的方法。

使用带 ENCOG 机器学习框架的 MetaTrader 5 指标进行时间序列预测

本文介绍如何将 MetaTrader 5 连接到 ENCOG - 高级神经网络和机器学习框架。它包含一个基于标准技术指标的简单神经网络指标和一个基于神经指标的 EA 交易的描述和实施。本文还附带了所有源代码、编译后的二进制文件、DLL 和一个可仿效的经过训练的网络。

用于预测市场价格的通用回归模型

市场价格是缺乏需求和供应之间的稳定平衡而形成的,反之,又取决于各种各样的经济、政治和心理因素。这些因素的性质以及影响原因所存在的差异,使得直接考虑所有因素非常困难。本文提出一种依据精心设计的回归模型预测市场价格的尝试。

使用非托管导出将 C# 代码运用到 MQL5

在本文中,我介绍了在 MQL5 代码和托管 C# 代码之间进行互动的不同方法。我还提供了几个例子来说明如何针对 C# 封送 MQL5 结构以及如何在 MQL5 脚本中调用导出的 DLL 函数。我相信提供的例子能用作以后研究用托管代码编写 DLL 的基础。本文也为 MetaTrader 使用已经在 C# 中实施了的多个库打开了大门。

随机游走和趋势指标

随机游走和实际的市场数据看起来非常类似,但是它有一些重要的特征。在本文中,我们将通过用掷硬币游戏进行模拟,讨论随机游走的特性。为了研究数据的特性,开发了趋势指标。

HTML 中的图表

现今很难找到一台没有安装 Web 浏览器的计算机。长久一来,浏览器一直在进化和改进。本文讨论依据从 MetaTrader 5 客户端获得的信息,以简单和安全的方式创建图表,以在浏览器显示它们。

在 MetaTrader 5 中实施多货币模式

长期以来,人们对多货币分析和多货币交易存在极大的兴趣。随着 MetaTrader 5 和 MQL5 编程语言的公开发行,实施完备的多货币体系成为可能。在本文中,针对多个交易品种,我们提出一种方法来分析和处理所有到来的价格变动。让我们将 USDx 美元指数的多货币 RSI 指标作为示例。

MQL5 中的电子表格

本文介绍在其第一个维度中包含不同类型的数据的动态二维数组的类。以表格的形式存储数据可方便地解决与安排、存储和操作不同类型的绑定信息相关的各种问题。实施表格处理功能性的类的源代码已附于本文。

小型趋势指标、中型趋势指标和主要趋势指标

本文基于 James Hyerczyk 所著《形态-价格-时间:甘氏理论在交易系统里的运用》一书中的某些理念,旨在探讨以指标和 《EA 交易》;形式进行自动化交易和分析的可能性。本文不敢自称内容详尽,在此我们只是探讨模型 - 甘氏理论的第一部分。

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

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

最新的改革

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

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

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

分析指标统计参数

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

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

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

MQL5 傻瓜式向导

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

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

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

用 MQL5 表示统计概率分布

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

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

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

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

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

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

本文说明了一种不使用模板但保持它们固有的编程风格的编程方式。文章讨论使用自定义方法实施模板的问题,并且附带了一个现成的脚本以依据指定的模板创建代码。

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

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

连接 NeuroSolutions 神经网络

除了创建神经网络,NeuroSolutions 软件套件允许将它们导出为 DLL。本文介绍创建神经网络、生成 DLL 并将其连接至"EA 交易"以在 MetaTrader 5 中交易的过程。

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

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

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

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

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

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

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

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

在视图内/外绘制通道

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

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

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

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

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

时间序列主要特性的分析

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

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

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

MetaTrader 5 中的并行计算

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

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

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

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

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

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

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

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

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

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

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

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

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