MQL4和MQL5编程文章

icon

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

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

添加一个新的文章
最近 | 最佳
开发自适应算法(第一部分):寻找基本模式
开发自适应算法(第一部分):寻找基本模式

开发自适应算法(第一部分):寻找基本模式

在接下来的系列文章中,我将演示探讨大多数市场因素的自适应算法的开发,以及如何将这些情况系统化,用逻辑描述它们,并在您的交易活动中应用它们。我将从一个非常简单的算法开始,这个算法将逐渐获得理论,并发展成一个非常复杂的项目。
市场数学:盈利、亏损、和成本
市场数学:盈利、亏损、和成本

市场数学:盈利、亏损、和成本

在本文中,我将向您展示如何计算任何交易的总盈利或亏损,包括佣金和掉期利息。 我会提供最精准的数学模型,并依据它来编写代码,之后将其与标准进行比较。 此外,我还将尝试进入主要 MQL5 函数的内部来计算利润,并从规则中获取所有必要值的根底。
MQL5 向导:如何创建风险和资金管理模块
MQL5 向导:如何创建风险和资金管理模块

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

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

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

分数型差分的应用范围足够广泛。 例如,差分序列通常作为机器学习算法的输入。 问题是,必须在机器学习模型可识别的前提下,显示相应历史阶段的新数据。 在本文中,我们将研究时间序列差分的原始方法。 本文还包含基于所接收差分序列的交易系统自我优化示例。
外部指标的提醒和注释。 通过外部扫描进行多货币分析
外部指标的提醒和注释。 通过外部扫描进行多货币分析

外部指标的提醒和注释。 通过外部扫描进行多货币分析

外部指标的多货币和多时间范围分析的提醒。 本文讨论了一种获得外部指标事件信息的方法,而不必将指标添加到图表或自己打开图表。 我们将其称为外部扫描。
轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件
轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件

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

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台上的程序开发。 在第四部分中,我们测试了在帐户上跟踪交易事件。 在本文中,我们将开发交易事件类,并将它们置于事件集合当中。 从那里,它们将被发送到 Engine (引擎)库的基准对象,并控制程序图表。
专家系统"解说员". 在MQL4程序中嵌入指标的实际应用
专家系统"解说员". 在MQL4程序中嵌入指标的实际应用

专家系统"解说员". 在MQL4程序中嵌入指标的实际应用

本文描述了在MQL4编程中技术指标的使用.
社交交易。 可盈利的信号能否变得更好?
社交交易。 可盈利的信号能否变得更好?

社交交易。 可盈利的信号能否变得更好?

大多数订阅者是通过优美的余额曲线和订阅用户数量来选择交易信号。 这就是为什么如今许多提供者只在乎漂亮的统计数据而非信号的真实质量,经常玩弄手数把戏并人为地将余额曲线整理到理想的外观。 本文论述了可靠性准则,以及提供者可用于提高其信号质量的方法。 展现特定信号历史的示例性分析,以及有助于提供者提升盈利并降低风险的方法。
对冲 Expert Advisor 编码基础
对冲 Expert Advisor 编码基础

对冲 Expert Advisor 编码基础

本文给出了对冲 Expert Advisor 的示例。作者将选择自己喜欢的对冲对,即 EURJPY 与 GBPJPY。此对冲对的运作方式始终相同,能较为方便地设置对冲订单类型。
MQL5 代码自动生成文档
MQL5 代码自动生成文档

MQL5 代码自动生成文档

大多数 Java 代码编写者熟悉可通过 JavaDocs 创建的自动生成文档。其思路是以一种半结构化的方式向代码添加注释,然后可以将这些注释提取到易于导航的帮助文件。C++ 世界也有若干文档自动生成器,其中微软的 SandCastle 和 Doxygen 是两款领先产品。本文说明使用 Doxygen,从 MQL5 代码的结构化注释创建 HTML 帮助文件。试验非常成功,我认为 Doxygen 从 MQL5 代码生成的帮助文档会增加很多价值。
MT4TerminalSync - MetaTrader 4 终端的同步系统
MT4TerminalSync - MetaTrader 4 终端的同步系统

MT4TerminalSync - MetaTrader 4 终端的同步系统

本文围绕"使用操作系统功能和其他程序开发方法扩大 MQL4 程序功能"这一主题展开。本文将介绍一个程序系统示例,该程序系统将基于单一源模板实施多个终端副本同步的任务。
用于轻松快速开发 MetaTrader 程序的函数库(第三部分)。 市价订单和仓位的集合,搜索和排序
用于轻松快速开发 MetaTrader 程序的函数库(第三部分)。 市价订单和仓位的集合,搜索和排序

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

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

神经网络在交易中的实际应用 Python (第一部分)

在本文中,我们将分析一个基于Python的深层神经网络编程的交易系统的分步实现。这将使用谷歌开发的 TensorFlow 机器学习库执行。我们还将使用 Keras 库来描述神经网络。
Strategy Tester:交易策略测试中模式化的方式
Strategy Tester:交易策略测试中模式化的方式

Strategy Tester:交易策略测试中模式化的方式

技术分析的很多程序允许在历史数据上测试交易策略。在大多数情况下, 测试被连接到已经完成的数据上,在价格柱内这些数据不带有任何试图模式化的趋势。测试会快速进行,但是不精确。
ZUP - 派斯温托通用锯齿形调整浪模式。第 1 部分
ZUP - 派斯温托通用锯齿形调整浪模式。第 1 部分

ZUP - 派斯温托通用锯齿形调整浪模式。第 1 部分

本文简要描述了指标 ZUP(派斯温托通用锯齿形调整浪模式)的基本原理。文章还描述了 ZUP 中内置的各个锯齿形调整浪指标。
例解 MQL5 中的面向对象编程:处理警告和错误代码
例解 MQL5 中的面向对象编程:处理警告和错误代码

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

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

统计估计

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

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

本文是之前发表的“基于.NET框架和C为EA交易和指标开发图形界面”的后续部分,它引入了新的图形元素来创建图形界面。
使用 EA 交易可视向导创建 EA 交易
使用 EA 交易可视向导创建 EA 交易

使用 EA 交易可视向导创建 EA 交易

MetaTrader 5的EA交易可视向导提供一种高度直观的图形环境,带有一整套允许您在数分钟内完成EA交易设计的预定义交易代码块。EA交易可视向导的单击拖拽法允许您像使用铅笔和纸张一样,创建外汇交易策略与信号的可视化呈现。这些交易图表均通过Molanis的MQL5代码生成器自动进行分析,并将其转换为即用型EA交易。而互动式图形环境则会简化设计过程,且无需编写MQL5代码。
图形界面 VII: 表格控件 (第一章)
图形界面 VII: 表格控件 (第一章)

图形界面 VII: 表格控件 (第一章)

MetaTrader 图形界面系列的第七部分处理的是三种表格类型:文本标签型,编辑框型,以及绘制型。另一种重要并且常用的控件是页面,它使您可以显示/隐藏成组的其他控件并且在您的MQL应用程序中开发有效利用空间的界面。
使用指数平滑法进行时间序列预测(续)
使用指数平滑法进行时间序列预测(续)

使用指数平滑法进行时间序列预测(续)

本文力求升级此前创建的指标,并简要讲述了利用自助法与分位数评估预测置信区间的一种方法。如此一来,我们便会获得将用于评估预测准确性的预测指标和脚本。
将您的线性交易系统提升为幂交易系统
将您的线性交易系统提升为幂交易系统

将您的线性交易系统提升为幂交易系统

今天的文章为中级 MQL5 编程人员讲解如何通过轻松实施所谓的幂的技术从他们的线性交易系统(固定手数)中获利更多。这是因为结果资产净值曲线呈抛物线形式,以几何级数或指数增长。具体而言,我们将实施一个由 Ralph Vince 开发的固定分数仓位大小的实际 MQL5 变体。
分形线的构造
分形线的构造

分形线的构造

本文讲述了使用趋势线和分形来构造各种类型的分形线.
MQL5 Cookbook: 把交易历史写入文件以及为每个交易品种在Excel中创建余额图表
MQL5 Cookbook: 把交易历史写入文件以及为每个交易品种在Excel中创建余额图表

MQL5 Cookbook: 把交易历史写入文件以及为每个交易品种在Excel中创建余额图表

当在各种论坛做沟通时,我经常使用我自己的测试结果作为例子,这些结果显示为Microsoft Excel中的图表截图。很多时候都有人问我这些图表是怎样创建的,最终,我现在有时间在本文中解释其中的全部了。
轻松快捷开发 MetaTrader 程序的函数库(第十二部分)。
轻松快捷开发 MetaTrader 程序的函数库(第十二部分)。

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

上篇文章中,我们在函数库中为 MQL4 定义了平仓事件,并删除了若干未使用的订单属性。 在此,我们将研究创建 Account 对象,开发帐户对象的集合,并筹备跟踪帐户事件的功能。
逐步说明如何通过 CSV 文件组织 MetaTrader 4 与 Matlab 之间的数据数组交换。
逐步说明如何通过 CSV 文件组织 MetaTrader 4 与 Matlab 之间的数据数组交换。

逐步说明如何通过 CSV 文件组织 MetaTrader 4 与 Matlab 之间的数据数组交换。

逐步说明如何通过 CSV 文件组织 MetaTrader 4 与 Matlab 之间的数据数组交换。
根据指定的分布法则为自定义品种的时间序列建模
根据指定的分布法则为自定义品种的时间序列建模

根据指定的分布法则为自定义品种的时间序列建模

本文概述终端创建和运用自定义品种的能力,提供了使用自定义品种模拟交易历史、趋势和各种图表形态的选项。
自动交易的传说: 是少或多?
自动交易的传说: 是少或多?

自动交易的传说: 是少或多?

两年前,在 "The Last Crusade - 最新的改革" 我们回顾了一个相当有趣但目前没有被广泛使用的显示市场信息的方法 - 点数图。现在,我建议您尝试写一个基于检测点数图范式的自动交易。
自适应算法(第三部分): 放弃优化
自适应算法(第三部分): 放弃优化

自适应算法(第三部分): 放弃优化

如果采用基于历史数据的优化方法来选择参数,就不可能得到真正稳定的算法。一个稳定的算法应该知道在任何时候操作任何交易工具时需要哪些参数。它不应该预测或猜测,它应该确定知道。
谬误,第 1 部分:资金管理排第二位,并不是很重要
谬误,第 1 部分:资金管理排第二位,并不是很重要

谬误,第 1 部分:资金管理排第二位,并不是很重要

以 0.1 手为基础的第一次策略测试结果展示正在变成论坛上的事实标准。从专业人士那里获得“还不错”的评价后,新手会看到“0.1”测试带来了相当保守的结果,并决定引入一个更积极进取的资金管理方式,以为正数学期望值会自动提供正面的成果。让我们看看会达成什么结果。此外,我们将试着构建多个极具指导意义的人工余额图。
AutoElliottWaveMaker - 用于艾略特波浪半自动分析的 MetaTrader 5 工具
AutoElliottWaveMaker - 用于艾略特波浪半自动分析的 MetaTrader 5 工具

AutoElliottWaveMaker - 用于艾略特波浪半自动分析的 MetaTrader 5 工具

本文要讲述的是 AutoElliottWaveMaker - MetaTrader 5 中针对艾略特波浪分析的首次开发,体现出手动与自动波浪标签的合二为一。该波浪分析工具完全在 MQL5 中编写,不包含任何外部 dll 库。这也是可以(且应)利用 MQL5 开发成熟有趣程序的又一证据。
通过 WINAPI 进行文件操作
通过 WINAPI 进行文件操作

通过 WINAPI 进行文件操作

MQL4 环境是基于安全“沙盒”概念:通过语言读取和保存文件的功能仅限于部分预定义的文件夹。这将保护 MetaTrader 4 的用户避免 HDD 上的重要数据受到破坏的潜在危险。但是,离开该安全区域有时也是必要的。本文专门介绍如何能够简单而正确地进行该操作。
在 MQL5 中使用对象指针
在 MQL5 中使用对象指针

在 MQL5 中使用对象指针

默认情况下,MQL5 中的所有对象都通过引用传递,但还有使用对象指针的可能性。然而,由于对象可能没有初始化,我们必须执行指针检查。在这种情况下,MQL5程序可能会因为关键性错误而终止并卸载。自动创建的对象不会引起此类错误,因此就此意义而言它们十分安全。通过本文,我们将理解对象引用和对象指针之间的差异,并思考如何编写使用指针的安全代码。
在 MQL5 中使用 WinInet。第二部分:POST 请求和文件
在 MQL5 中使用 WinInet。第二部分:POST 请求和文件

在 MQL5 中使用 WinInet。第二部分:POST 请求和文件

在本文中,我们将继续学习使用 HTTP 请求处理互联网和与服务器进行信息交换的原则。它介绍了 CMqlNet 类的新函数、从表单发送信息的方法、使用 POST 请求发送文件的方法以及使用 Cookie 在您登录网站时进行身份验证。
preview
神经网络变得轻松(第十二部分):舍弃

神经网络变得轻松(第十二部分):舍弃

作为研究神经网络的下一步,我建议研究在神经网络训练过程中提高收敛性的方法。 有若干种这样的方法。 在本文中,我们将研究其中之一,名为“舍弃”。
学习如何设计不同的移动平均线系统
学习如何设计不同的移动平均线系统

学习如何设计不同的移动平均线系统

有众多策略可依据任何规则过滤生成的信号,甚至可采用本文自身所讨论的移动平均值。 因此,本文的目的是与大家分享一些移动平均线策略,以及如何设计一款算法交易系统。
图形界面 II: 主菜单元件 (第四章))
图形界面 II: 主菜单元件 (第四章))

图形界面 II: 主菜单元件 (第四章))

这是图形界面系列第二部分的最后一章。在此,我们将探讨主菜单的创建,演示这个控件的开发以及设置库中类的处理函数以正确回应用户的操作。我们还将讨论如何把上下文菜单附加到主菜单项目中。另外,我们还会提到怎样阻止当前没有激活的元件。
preview
连续前行优化 (第三部分): 将机器人适配为自动优化器

连续前行优化 (第三部分): 将机器人适配为自动优化器

第三部分充当前两部分之间的桥梁:它阐述的是第一篇文章中研究的 DLL,以及第二篇文章中论述的报告下载对象之间的交互机制。 我们将分析从 DLL 导入的包装类的创建过程,该类可依据交易历史记录形成 XML 文件。 我们还将研究一种与此包装器进行交互的方法。
利用 curl 解析 HTML
利用 curl 解析 HTML

利用 curl 解析 HTML

本文论述利用第三方控件的简易 HTML 代码解析库。 特别是,它涵盖了诸多访问数据的可能性,甚至有些用往常的 GET 和 POST 请求都无法检索。 我们将选择一个页面不太大的网站,并尝试从该网站获取感兴趣的数据。
图形界面 X: 排序、重建表格和单元格中的控件 (集成编译 11)
图形界面 X: 排序、重建表格和单元格中的控件 (集成编译 11)

图形界面 X: 排序、重建表格和单元格中的控件 (集成编译 11)

我们继续向渲染表格添加新功能: 数据排序, 管理列和行数, 设置表格单元类型以将控件放入其中。