MQL5编程文章

icon

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

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

添加一个新的文章
最近 | 最佳
MQL5 编程基础:列表
MQL5 编程基础:列表

MQL5 编程基础:列表

用于交易策略开发的编程语言 MQL 的新版本 [MQL5] 与以前的版本 [MQL4] 相比,提供了更加强大和高效的功能。这些优势实质上是面向对象的编程功能。本文探讨对于复杂自定义数据类型的使用,例如节点和列表。它还在提供了在 MQL5 实战编程中使用列表的例子。
MQL5 对决 QLUA - 为什么在 MQL5 中交易操作速度快达 28 倍?
MQL5 对决 QLUA - 为什么在 MQL5 中交易操作速度快达 28 倍?

MQL5 对决 QLUA - 为什么在 MQL5 中交易操作速度快达 28 倍?

您可曾想过您的订单是如何迅速传递到交易所, 它的执行速度如何, 而您的终端需要多久才能收到操作结果?我们已经准备好一场交易操作执行速度的比对, 因为从未有人测量过使用 MQL5 和 QLUA 应用时的这些数值。
探索新功能:MQL5 的自定义指标
探索新功能:MQL5 的自定义指标

探索新功能:MQL5 的自定义指标

在这里,我无法一一列举新终端和新编程语言的所有新的可能性和功能。这数不胜数,而且部分创新点也需要以单独的章节来进行详细探讨。同样,本章节也不会出现以面向对象编程语言写就的代码。这部分内容十分重要,不能简单地附于其他内容之后作为补充优点呈现给开发人员。在本文中,我们将会探讨指标,以及相比 MQL4 指标的结构、图形、类型和编程细节。希望无论是初学者还是经验丰富的开发人员均能从本文中获益,也许部分读者还会有自己新的发现。
MQL5 Cookbook: 基于三重滤网策略开发交易系统框架
MQL5 Cookbook: 基于三重滤网策略开发交易系统框架

MQL5 Cookbook: 基于三重滤网策略开发交易系统框架

在本文中,我们将基于三重滤网(Triple Screen)策略,使用MQL5开发一个交易系统的框架。EA交易不会从头开始开发,我们会简单地修改前一篇文章, 即"MQL5 Cookbook: 在EA交易中使用指标设置交易条件"中的程序,它已经基本上满足了我们的目标。所以这篇文章也会向您展示如何简单地修改已经完成的程序的模式。
开发基于振荡器的之字折线 (ZigZag) 指标。 执行需求规范的示例
开发基于振荡器的之字折线 (ZigZag) 指标。 执行需求规范的示例

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

本文根据《订购指标时如何准备需求规范》一文中描述的规范样本之一展示之字折线 (ZigZag) 指标的开发。 该指标利用振荡器所定义的极值来构建。 它能够采用五种振荡器之一: WPR,CCI,Chaikin,RSI 或 Stochastic 振荡器。
MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展
MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展

MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展

本文描述 MQL5 标准库扩展, 可以使用 MQL5 向导接收来自包含模块的价格, 创建 EA, 下单, 止损和止盈。这种方法不会对模块的应用数量有任何额外的限制,亦不会在联合工作中导致冲突。
图形界面 V: 列表视图元件 (第二章)
图形界面 V: 列表视图元件 (第二章)

图形界面 V: 列表视图元件 (第二章)

在前一章中,我们开发了用于创建垂直和水平滚动条的类。在本章中,我们将应用它们,我们将开发一个用于创建列表视图元件的类,它的一个组成部分将是一个垂直滚动条。
EA 遥控方法
EA 遥控方法

EA 遥控方法

交易机器人的主要优势在于能够在远程 VPS 服务器上每天 24 小时不间断工作。 但有时候有必要干预它们的工作,而此刻可能无法直接访问服务器。 是否可以遥控管理 EA? 本文提出了一种通过外部命令控制 EA 的选项。
检测超买/超卖区域的方法。 第一部分
检测超买/超卖区域的方法。 第一部分

检测超买/超卖区域的方法。 第一部分

超买/超卖区域是某种市场状态的特征,可由证券价格的疲软变化来区分。 这种负面变化会明显发生在任何尺度趋势发展的最后阶段。 由于交易中的利润价值直接取决于尽可能覆盖更广趋势幅度的能力,因此在任何证券交易中,探测此类区域的准确性是一项关键任务。
包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)
包含图形用户界面 (GUI) 的 EA 交易: 增加功能 (第二部分)

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

这是展示开发用于人工交易的多交易品种信号 EA 文章的第二部分,我们已经创建了图形界面,现在是时候把它与程序功能相关联了。
形态与示例(第一部分):多顶
形态与示例(第一部分):多顶

形态与示例(第一部分):多顶

这是研讨算法交易框架中逆转形态相关的系列文章中的首篇。 我们将从最有趣的形态家族开始,它们源自双顶和双底形态。
不使用额外的缓冲区,为中间计算进行系列价格的平均化
不使用额外的缓冲区,为中间计算进行系列价格的平均化

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

本文要讲述的是封装于最简单的单型类中的传统与非寻常平均线算法。它们旨在实现于几乎所有指标的开发过程中的普适用途。我希望建议的这些类,会成为那些自定义与技术指标“笨重”调用的一个很好的替代。
轻松快捷开发 MetaTrader 程序的函数库(第八部分):订单和持仓修改事件
轻松快捷开发 MetaTrader 程序的函数库(第八部分):订单和持仓修改事件

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

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 在第七部分中,我们加入了 StopLimit 订单激活跟踪,以及准备了其它涉及订单和持仓事件的跟踪功能。 在本文中,我们将开发用于跟踪订单和持仓修改事件的类。
MQL5 中如何调用指标
MQL5 中如何调用指标

MQL5 中如何调用指标

推出新版本后,MQL 编程语言不仅提供处理那些已变更指标的方法,还提供如何创建指标的新途径。而且,您还具备了使用指标缓冲区的更多灵活性 - 现在,您可以指定目标索引方向,并可完全如您所愿地获取多个指标值。本文讲述的是调用指标的基本方法,以及通过指标缓冲区检索数据。
在 MetaTrader 5 中使用自组织特征映射(Kohonen 映射)
在 MetaTrader 5 中使用自组织特征映射(Kohonen 映射)

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

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

根据品种和 EA 的 ORDER_MAGIC 分析余额/净值图形

随着对冲的引入, MetaTrader 5 提供了一个极佳的机会, 可以在一个交易账户内同时利用若干个专家交易系统进行交易。当一个策略是可盈利, 而第二个泽亏损的时候, 盈利图也许会徘徊在零值附近。在此情况下, 分别为每个交易策略构建余额和净值图形是十分有益的。
基于 Bill Williams 所著"证券交易新空间"的 EA 交易程序
基于 Bill Williams 所著"证券交易新空间"的 EA 交易程序

基于 Bill Williams 所著"证券交易新空间"的 EA 交易程序

在本文中,我将依据 Bill Williams 所著的《证券交易新空间:如何从股票、债券和商品交易中的混沌获利》一书讨论 EA 交易程序的开发。该策略本身已经广为人知,并且其使用在交易者之间仍然备受争议。本文考虑系统的交易信号、其实施的细节以及有关历史数据的测试结果。
用 MQL5 创建交易活动控制板
用 MQL5 创建交易活动控制板

用 MQL5 创建交易活动控制板

本文介绍用 MQL5 开发活动控制板所遇到的问题。接口元件通过事件处理机制来管理。此外,还提供控制元件属性的灵活设置选项。活动控制板允许处理仓位,以及设置、修改和删除市场和挂单。
开发轴心均值振荡器:一款新颖的累积移动平均线指标
开发轴心均值振荡器:一款新颖的累积移动平均线指标

开发轴心均值振荡器:一款新颖的累积移动平均线指标

本文介绍轴心均值振荡器(PMO),它是累积移动平均线(CMA)的一种实现,作为一款 MetaTrader 平台的交易指标。 特别是,我们首先引入数据轴心均值(PM)作为时间序列的常规化指数,该指数计算任意数据点位和 CMA 之间的分值。 然后,我们依据两个 PM 信号均值之间的差值构建 PMO。 报告还针对 EURUSD 品种还进行了一些初步实验,测试拟议指标的有效性,从而为将来的研究和改进留出了足够的空间。
MQL5 编程基础: 终端中的全局变量
MQL5 编程基础: 终端中的全局变量

MQL5 编程基础: 终端中的全局变量

终端中的全局变量为开发复杂而可靠的EA交易提供了一种方便的工具,如果您掌握了全局变量,您就会发现在使用MQL5开发EA交易的时候它们是必不可少的。
Elder-Ray (多头力度和空头力度)
Elder-Ray (多头力度和空头力度)

Elder-Ray (多头力度和空头力度)

本文详述了基于多头力度(Bulls Power),空头力度(Bears Power)和均线指标(EMA - 指数平均)的 Elder-Ray 交易系统。 Alexander Elder 在他的著作“为生活而交易”中描述了这个系统。
通用智能交易系统:事件模型和交易策略原型(第二章)
通用智能交易系统:事件模型和交易策略原型(第二章)

通用智能交易系统:事件模型和交易策略原型(第二章)

本文是通用智能交易模型系列文章的又一篇。这一部分详细介绍了基于数据集中处理的原始事件模型,并考虑了交易引擎CStrategy基类的结构。
图形界面 X: 标准图表控件 (集成编译 4)
图形界面 X: 标准图表控件 (集成编译 4)

图形界面 X: 标准图表控件 (集成编译 4)

这一次我们将研究标准图表控件。它可以创建具有同步水平滚动功能的子图表数组。此外, 我们将继续优化库代码以降低 CPU 负载。
交易机器人的原型
交易机器人的原型

交易机器人的原型

本文是对创建算法的原则以及交易系统的元素的总结和系统化。本文讨论EA 交易算法的设计。我们将以CExpertAdvisor类作为示例进行探讨,该类可用于轻松快捷地开发交易系统。
如何交换数据:10 分钟为 MQL5 创建 DLL
如何交换数据:10 分钟为 MQL5 创建 DLL

如何交换数据:10 分钟为 MQL5 创建 DLL

现在很多开发人员不知道如何编写简单的 DLL,而这是不同系统绑定的特殊特性。我将通过多个示例,展示在 10 分钟内创建简单 DLL 的整个过程,并讨论我们绑定实施的一些技术细节。我将给出 Visual Studio 中的 DLL 创建的分步过程,以及交换不同变量类型的示例(数字、数组、字符串等)。此外,我还将说明在自定义 DLL 中如何使您的客户端免于崩溃。
OpenCL:并行世界的桥梁
OpenCL:并行世界的桥梁

OpenCL:并行世界的桥梁

2012 年 1 月末,从事 MetaTrader 5 开发业务的软件开发公司宣布 MQL5 可向 OpenCL 提供原生支持。本文通过一个示例说明了 MQL5 环境下 OpenCL 的编程基础知识,并列举了几个示例,讲述了为提高运行速度所做的朴素优化。
自适应交易系统以及它们在 MetaTrader 5 客户端中的运用
自适应交易系统以及它们在 MetaTrader 5 客户端中的运用

自适应交易系统以及它们在 MetaTrader 5 客户端中的运用

本文推荐一种由很多策略组成的自适应系统,每种策略执行其自己的虚拟交易操作。实际交易依据当时最赚钱策略的信号进行。归功于使用面向对象的方法、标准库中用于处理数据的类和交易类,系统的架构看起来很简单并且可扩展;现在,您可以轻松地创建和分析包含数以百计的交易策略的自适应系统。
外汇交易的基础数学
外汇交易的基础数学

外汇交易的基础数学

本文旨在尽可能简单、快速地描述外汇交易的主要特点,并与初学者分享一些基本的想法。它还试图回答交易界最诱人的问题,同时展示一个简单指标的开发。
preview
SQLite: MQL5 原生 SQL 数据库操纵

SQLite: MQL5 原生 SQL 数据库操纵

交易策略的研发与大数据处理相关联。 现在,您能够基于 SQLite 在 MQL5 中直接运用 SQL 查询来操纵数据库。 该引擎的重要特性在于整个数据库都被安置在用户 PC 上的单个文件中。
优化管理 (第一部分): 创建一个GUI(图形用户界面)
优化管理 (第一部分): 创建一个GUI(图形用户界面)

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

本文描述了为MetaTrader终端创建扩展的过程,所讨论的解决方案有助于通过在其他终端中运行优化来自动化优化过程。关于这个话题,我们将再写几篇文章。扩展是使用C#语言和设计模式开发的,它还展示了通过开发自定义模块扩展终端功能的能力,以及使用首选程序的功能创建自定义图形用户界面的能力。
图形界面III:简单与多功能按钮(第一章)
图形界面III:简单与多功能按钮(第一章)

图形界面III:简单与多功能按钮(第一章)

让我们探讨按钮控件。我们将讨论几个用于创建简单按钮,扩展功能按钮(图标按钮和分割按钮)以及关联按钮(按钮组和单选按钮)的类的实例。另外,我们还将在已有的类中增加一些内容以扩展它们的功能。
使用 MQL5 绘制阻力和支撑级别
使用 MQL5 绘制阻力和支撑级别

使用 MQL5 绘制阻力和支撑级别

本文介绍一种查找四个极点并在此基础上绘制支撑和阻力级别的方法。为了在当前货币对的图表上查找极点, 使用 RSI 指标。作为例子, 我们提供了一款指标的代码显示支撑和阻力级别。
如何在另一指标的基础上编写一个指标
如何在另一指标的基础上编写一个指标

如何在另一指标的基础上编写一个指标

在 MQL5 中,您既可以从头编写一个指标,亦可根据客户端内置或自定义的另一现有指标来创建。而在这里,您也有两种方式 - 通过向其添加新的计算和图形风格来改善某个指标,或是通过 iCustom() 或 IndicatorCreate() 函数使用客户端内置或自定义的某个指标。
直方图形式的统计分布, 无需指标缓冲区和数组
直方图形式的统计分布, 无需指标缓冲区和数组

直方图形式的统计分布, 无需指标缓冲区和数组

本文讨论当绘制市场条件的统计分布直方图时利用图形存储器的可能性, 而无需指标缓冲区和数组。描述了样本直方图的细节, 并展示了 MQL5 图形对象的 "隐藏" 功能。
连接 NeuroSolutions 神经网络
连接 NeuroSolutions 神经网络

连接 NeuroSolutions 神经网络

除了创建神经网络,NeuroSolutions 软件套件允许将它们导出为 DLL。本文介绍创建神经网络、生成 DLL 并将其连接至"EA 交易"以在 MetaTrader 5 中交易的过程。
开发跨平台网格 EA:测试多币种 EA
开发跨平台网格 EA:测试多币种 EA

开发跨平台网格 EA:测试多币种 EA

行情在一个月内下跌了 30% 以上。 这似乎是测试基于网格和马丁格尔的智能交易系统的最佳时间。 本文是“创建跨平台网格 EA”系列的计划外延续。 当前行情为安排网格 EA 提供了疏解压力的机会。 因此,我们要把握这次机会,并测试我们的智能交易系统。
如何采用 MQL5 创建用于 Telegram 的 bots
如何采用 MQL5 创建用于 Telegram 的 bots

如何采用 MQL5 创建用于 Telegram 的 bots

本文包含了采用 MQL5 逐步创建用于 Telegram 的 bots 教程。对于那些期望将自己的交易机器人与移动终端同步的用户来说, 这些信息十分有用。文章里的 bots 例程可以提供交易信号, 从网站上搜索情报, 发送有关账户余额信息以及图表报价和截图至您的智能手机。
利用指标实时优化智能交易系统
利用指标实时优化智能交易系统

利用指标实时优化智能交易系统

任何交易机器人的效率均取决于正确选择(优化)其参数。 然而,在某个时间区间内被认为是最佳的参数可能无法在另一个交易历史区间保持其有效性。 此外,在测试期间表现良好的 EA 在实时状态下最终会亏损。 持续优化的问题就此凸显出来。 当面对大量重复性工作时,人类总会寻找自动化方法。 在本文中,我提出了一种解决此问题的非标准方法。
MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标
MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标

MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标

在滑动窗口中执行计算时, 环形缓存是排布数据最简单和最有效的方式。本文描述其算法, 并展示它如何简化滑动窗口中的计算, 以令其更有效率。
TradeObjects: 基于 MetaTrader 图形对象的自动化交易
TradeObjects: 基于 MetaTrader 图形对象的自动化交易

TradeObjects: 基于 MetaTrader 图形对象的自动化交易

本文探讨基于图表线性标记创建自动交易系统的一种简单方法, 并提供了一款使用 MetaTrader 4/5 标准对象属性的现成智能交易系统, 可支持主要交易操作。