MQL5 编程示例的文章

icon

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

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

添加一个新的文章
最近 | 最佳

DoEasy. 控件 (第 3 部分): 创建绑定控件

在本文中,我将创建绑定到基准元素的从属控件。 开发任务将使用基准控件功能执行。 此外,我还会稍微修改一下图形元素阴影对象,因为把它应用于任何有阴影的对象时会遇到一些逻辑错误。

从头开始开发智能交易系统(第 8 部分):概念上的飞跃

实现新功能的最简单途径是什么? 在本文中,我们将后撤一步,然后再前进两步。

DoEasy. 控件 (第 2 部分): 操控 CPanel 类

在本文中,我将剔除一些与操控图形元素相关的错误,并继续开发 CPanel 控件。 尤其是,我将实现为所有面板文本对象设置默认字体参数的方法。

DoEasy. 控件 (第 1 部分): 第一步

本文开始延展话题,介绍如何利用 MQL5 仿照 Windows 窗体样式创建控件。 我感兴趣的第一个对象是创建面板(panel)类。 若是没有控件,那么管理就会变得越来越困难。 因此,我将仿照 Windows 窗体样式创建所有可能的控件。

DoEasy 函数库中的图形(第一百部分):改进扩展标准图形对象的处理

在本文中,我将剔除在画布上同时处理扩展(和标准)图形对象和窗体对象方面的明显缺陷,并修复在前一篇文章中执行测试期间检测到的错误。 本文总结了函数库说明的这一部分。

DoEasy 函数库中的图形(第九十九部分):依据单个控制点移动扩展图形对象

在前一篇文章中,我实现了依据控件窗体移动扩展图形对象轴点的功能。 现在,我将实现依据单个图形对象控制点(窗体)移动复合图形对象的功能。

DoEasy 函数库中的图形(第九十八部分):移动扩展的标准图形对象的轴点

在本文中,我将继续扩展的标准图形对象的开发,创建移动复合图形对象轴点的功能,通过控制点来管理图形对象轴点坐标。

在一张图表上的多个指标(第 03 部分):为用户开发定义

今天,我们将首次更新指标系统的功能。 在“一张图表上的多个指标”的前一篇文章中,我们研究了允许在图表子窗口中加载多个指标的基本代码。 但其所代表的只是一个更大系统的起点。

在一张图表上的多个指标(第 02 部分):首次实验

在前一篇文章“在一张图表上的多个指标”中,我介绍了如何在一张图表上加载多个指标的概念和基本知识。 在本文中,我将提供源代码,并对其进行详解。

您能用移动平均线做什么呢

本文研究了若干种移动平均指标的应用方法。 每种方法涉及到的曲线分析,都配有思想实现的可视化指标。 在大多数情况下,这里展示的所有思路均属于它们尊敬的作者。 我唯一的任务就是把它们归纳起来,令您看到其主要作用,并希望做出更合理的交易决策。 MQL5 熟练程度 — 基本。

让图表更有趣:添加背景

许多工作站包含一些代表性的图片用以显示用户的一些信息。 这些图片令工作环境更加优美和令人兴奋。 我们来看看如何通过添加背景令图表更有趣。

DoEasy 函数库中的图形(第九十七部分):独立处理窗体对象移动

在本文中,我将研究实现鼠标独立拖动任何窗体对象。 此外,我还将在该函数库里补充错误消息和之前在终端和 MQL5 中实现的新成交属性。

在 MQL 应用程序中运用 CCanvas 类

本文研究在 MQL 应用程序中运用 CCanvas 类。 原理会伴随着详细的解释和示例,从而彻底理解 CCanvas 的基础知识。

在一张图表上的多个指标(第 01 部分):理解概念

今天,我们将学习如何在一张图表上同时添加多个指标,但又不占用单独的区域。 众多交易员感觉,如果他们一次性能监控多个指标(例如,RSI、STOCASTIC、MACD、ADX 和其它一些指标),或者在某些情况下甚至能监控构成指数的不同资产,则会得到更强信心。

DoEasy 函数库中的图形(第九十六部分):窗体对象中的图形和鼠标事件的处理

在本文中,我将启动创建处理窗体对象中的鼠标事件的功能,以及向品种对象添加新属性并跟踪。 此外,我将改进品种对象类,因为图表品种现在有新的属性需要考虑和跟踪。

DoEasy 函数库中的图形(第九十五部分):复合图形对象控件

在本文中,我将研究管理复合图形对象的工具包 — 管理扩展标准图形对象的控件。 今天,我从复合图形对象重新定位的内容稍微离题 ,并实现图表上复合图形对象的变更事件处理。 此外,我将重点讲解管理复合图形对象的控件。

DoEasy 函数库中的图形(第九十四部分):移动和删除复合图形对象

在本文中,我将启动开发各种复合图形对象事件。 我们还将部分研究移动和删除复合图形对象。 实际上,在此,我还会把前一篇文章中实现的东西进行微调。

MetaTrader 5 的 WebSocket — 使用 Windows API

在本文中,我们将使用 WinHttp.dll 针对 MetaTrader 5 平台创建 WebSocket 客户端程序。 客户端最终将作为一个类实现,并借助 Binary.com 的 WebSocket API 进行测试。

DoEasy 函数库中的图形(第九十三部分):准备创建复合图形对象的功能

在本文中,我将着手开发用于创建复合图形对象的功能。 该函数库将支持创建复合图形对象,允许这些对象含有任意层次的连接。 我将为这些对象的后续实现准备所有必要的类。

DoEasy 函数库中的图形(第九十二部分):标准图形对象记忆类。 对象属性变更历史记录

在本文中,我将创建标准图形对象记忆类,能够在对象修改其属性时保存其过往状态。 反之,这样就能够溯源以前的图形对象状态。

DoEasy 函数库中的图形(第九十一部分):标准图形对象事件。 对象名称更改历史记录

在本文中,我将改进基本功能,从而能够基于函数库程序来控制图形对象事件。 我一开始将以“对象名称”属性为例,实现存储图形对象更改历史的功能。

DoEasy 函数库中的图形(第九十部分):标准图形对象事件。 基本功能

在本文中,我将实现跟踪标准图形对象事件的基本功能。 我将从图形对象上的双击事件开始。

在 MQL5 中使用 AutoIt

简述。 在本文中,我们将探索采用 MetraTrader 5 终端里以集成的 MQL5 编写 AutoIt 脚本。 在其中,我们将覆盖如何操纵终端的用户界面来自动完成各种任务,并介绍一个采用 AutoItX 库的类。

DoEasy 函数库中的图形(第八十九部分):标准图形对象编程。 基本功能

目前,该函数库能够跟踪客户端终端图表上的标准图形对象,包括删除和修改其某些参数。 在当下,它还缺乏从自定义程序创建标准图形对象的能力。

固化价格动作止损或固化 RSI(智能止损)

在交易中,止损是资金管理采用的主要工具。 有效利用止损、获利回吐和成交量可以使交易者在交易中更加一致,总体上更加有利可图。 尽管止损是一个极好的工具,但在运用中也会遇到一些挑战。 最主要的是止损猎杀(stop-loss hunt)。 本文展望如何降低交易中的猎杀,并与经典的止损用例进行比较,从而判定其盈利能力。

更好的程序员(第 07 部分):变为一名成功的自由职业开发者的注意事项

您想成为一名成功的 MQL5 自由开发者吗? 如果答案是肯定的,这篇文章适合您。

从头开始采用 MQL 语言进行深度神经网络编程

本文旨在教导读者如何从头开始采用 MQL4/5 语言构建深度神经网络。

更好的程序员(第 06 部分):9 个导致有效编码的习惯

并非有关编写代码的所有事情总是导致有效编码。 在我的从业经历中,我发现了一些会导致有效编码的习惯。 我们将在本文中详细讨论其中的一些。 对于每一位想要以更少的麻烦来提高自己编写复杂算法的能力的程序员来说,这是一篇必须阅读的文章。

处理时间(第二部分):函数

自动判定经纪商时移和 GMT。 与其请求您的经纪商的支持,您可能会从他们那里得到一个不充分的答案(他们很愿意解释时间错位),我们只需自行查看在时间变化的几周内他们如何计算价格 — 但手工操作极其繁琐,我们让程序来做这件事 — 毕竟这就是为什么我们要有一台 PC。

手工制图表和交易工具箱(第三部分)。 优化和全新工具

在本文中,我们将深入开发利用键盘快捷键在图表上绘制图形对象的设想。 全新工具已被加到函数库当中了,包括一条贯穿任意顶点绘制的直线,以及一组能够评估逆转时间和价位的矩形。 此外,本文还展示了优化代码从而提高性能的可能性。 实现示例已经重写,能够使用其它交易程序的快捷方式。 所需的代码知识水平:略高于初学者。

MQL5 酷宝书 – 财经日历

本文着重于财经日历的编程特性,并研究创建一个类来简化访问日历属性和接收事件值。 运用 CFTC(商品期货交易委员会)的非商业净持仓规则来开发指标作为一个实际例子。

开发 EA 构造函数的一次尝试

在本文中,我把自己的一套交易函数以成品 EA 的形式提供给大家。 这种方法能够通过简单地添加指标和改变输入来获得多种交易策略。

DoEasy 函数库中的图形(第八十八部分):图形对象集合 — 存储对象动态变化属性的二维动态数组

在本文中,我将创建一个动态多维数组类,该类能够改变任意维度中的数据量。 基于所创建的类,我还将创建一个二维动态数组来存储一些会动态变动的图形对象属性。

DoEasy 函数库中的图形(第八十七部分):图形对象集合 - 在所有打开的图表上管理对象属性修改

在本文中,我将继续跟踪标准图形对象事件,并创建允许用户控制在终端中打开的任何图表上放置的图形对象属性更改的功能。

多层感知器和反向传播算法(第二部分):利用 Python 实现并与 MQL5 集成

有一个 Python 程序包可用于开发与 MQL 的集成,它提供了大量机会,例如数据探索、创建和使用机器学习模型。 集成在 MQL5 内置的 Python,能够创建各种解决方案,从简单的线性回归、到深度学习模型。 我们来看看如何设置和准备开发环境,以及如何使用一些机器学习函数库。

DoEasy 函数库中的图形(第八十六部分):图形对象集合 - 管理属性修改

在本文中,我将研究跟踪属性值的修改,以及删除和重命名函数库中的图形对象。

更好的程序员(第 05 部分):如何成为更迅捷的开发人员

每位开发人员都希望能够更快地编写代码,且能够更快、更有效地编写代码并非只是少数人与生俱来的特殊能力。 这项技能是可通过学习提升的,这就是我在本文中尝试传授的内容。

DoEasy 函数库中的图形(第八十五部分):图形对象集合 - 添加新创建的对象

在本文中,我将完成抽象图形对象类的衍生后代类的开发,并开始实现将这些对象存储在集合类中的能力。 特别是,我将开发把新创建的标准图形对象添加到集合类的功能。

DoEasy 函数库中的图形(第八十四部分):抽象标准图形对象的衍生后代类

在本文中,我将研究为终端的抽象标准图形对象创建衍生后代对象。 该类对象定义了所有图形对象通用的属性。 因此,它只是某个种类的图形对象。 为了阐明它与真实图形对象的从属关系,我们需要在衍生后代对象类中设置该图形对象特定的固有属性。

DoEasy 函数库中的图形(第八十三部分):抽象标准图形对象类

在本文中,我将创建抽象图形对象类。 该对象用作创建标准图形对象类的基础。 图形对象拥有多种属性。 因此,在实际创建抽象图形对象类之前,我还需要做很多的准备工作。 这项工作包括在函数库的枚举中设置属性。