MQL5编程文章

icon

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

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

添加一个新的文章
最近 | 最佳
使用 WCF 服务将报价从 MetaTrader 5 导出至 .NET 应用程序的方法
使用 WCF 服务将报价从 MetaTrader 5 导出至 .NET 应用程序的方法

使用 WCF 服务将报价从 MetaTrader 5 导出至 .NET 应用程序的方法

想要从 MetaTrader 5 导出报价到您自己的应用程序?MQL5-DLL 组合可给出这样的解决方案!本文介绍将报价从 MetaTrader 5 导出至以 .NET 编写的应用程序的方法。对我而言,使用该平台实施报价的导出要更为有趣、合理和容易。遗憾的是版本 5 仍然不支持 .NET,因此和以往一样,我们将使用 .NET 支持的 win32 dll 作为中间层。
用 MQL5 绘制指标的喷发
用 MQL5 绘制指标的喷发

用 MQL5 绘制指标的喷发

在本文中,我们将讨论指标的喷发 - 一种市场研究的新方法。喷发的计算基于不同指标的相交:在每次价格跳动后,将出现越来越多的带不同颜色和各种形状的点。它们形成了众多的集群,如星云、云团、轨迹、直线、弧线等。这些形状有助于发现影响市场价格变动的无形的跳跃力和驱动力。
如何交换数据:10 分钟为 MQL5 创建 DLL
如何交换数据:10 分钟为 MQL5 创建 DLL

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

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

价格直方图(市场概况)及其在 MQL5 中的实施

“市场概况”由真正才华横溢的思想家 Peter Steidlmayer 所提出。他建议使用有关“水平”和“垂直”市场动态信息的替代表示法,从而给出一套完全不同的模型。他认为存在市场深层次的摆动或称之为平衡和失衡周期的基本模式。在本文中,我将会探讨价格直方图(市场概况的一种简化模型)以及它在 MQL5 中的实施。
以经济方式计算指标的原则
以经济方式计算指标的原则

以经济方式计算指标的原则

调用用户指标和技术指标在自动交易系统的程序代码中只占很少的空间。通常它仅仅只是行代码。但是经常出现正是这几行代码占用测试 EA 交易程序所需的大部分时间的情况。因此,与指标内的数据计算有关的所有一切都需要更加彻底地考虑,而不能随意决定。本文正是探讨这一点。
创建一个在若干工具上交易的 EA 交易程序
创建一个在若干工具上交易的 EA 交易程序

创建一个在若干工具上交易的 EA 交易程序

金融市场中资产的多样化是一个非常旧的概念,并且始终吸引着新入门的交易者。在本文中,作者提出了一个最简单的方法用以构建一个多货币 EA 交易程序,以便对这种方向的交易策略提供一个初步介绍。
分析烛的图案
分析烛的图案

分析烛的图案

日本烛形图的构建和烛图案的分析构成了技术分析的一个迷人领域。烛形图的优点在于它们以您能够跟踪数据动态的方式表示数据。在本文中,我们将分析烛的类型、烛图案的分类并提出一个能够确定烛图案的指标。
依据 Heiken-Ashi 指标的交易系统示例
依据 Heiken-Ashi 指标的交易系统示例

依据 Heiken-Ashi 指标的交易系统示例

在本文中我们将探讨在交易中使用 Heiken-Ashi 指标的问题。依据此指标考虑了一个简单的交易系统,并编写了一个 MQL5 EA 交易程序。依据标准类库中的类实施交易操作。复核后的交易策略的测试结果以历史记录为基础,并使用内建的 MetaTrader 5 策略测试程序获得,也在本文中提供。
用于在以仓位为中心的 MetaTrader 5 环境中跟踪订单的虚拟订单管理程序
用于在以仓位为中心的 MetaTrader 5 环境中跟踪订单的虚拟订单管理程序

用于在以仓位为中心的 MetaTrader 5 环境中跟踪订单的虚拟订单管理程序

可以将此类库添加到 MetaTrader 5 EA 交易程序,从而能够通过一种与 MetaTrader 4 非常类似的以订单为中心的方法编写程序(与基于仓位的 MetaTrader 5 相比较)。它通过在 MetaTrader 5 客户端跟踪虚拟订单,同时为每个仓位维护一个保护性经纪人止损,从而提供灾难防护来实现这一目的。
MetaTrader 5:在博客、社交网络和专业网站上通过电子邮件发布交易预测和实时交易声明
MetaTrader 5:在博客、社交网络和专业网站上通过电子邮件发布交易预测和实时交易声明

MetaTrader 5:在博客、社交网络和专业网站上通过电子邮件发布交易预测和实时交易声明

本文旨在使用 MetaTrader 5 提供用于发布预测的即用型解决方案。它涵盖各种各样的想法:从使用针对发布 MetaTrader 声明的专业网站,到几乎不需要任何 Web 编程经验就可搭建自己的网站,再到与允许很多读者加入并关注预测的社交网络微博服务的集成,无所不包。在此处提供的所有解决方案都是百分百免费的,并且能够由具备电子邮件和 FTP 服务基本知识的任何人所搭建。使用相同的技术来提供专业托管和商业性交易预测服务也毫无问题。
利用模糊逻辑创建指标的简单示例
利用模糊逻辑创建指标的简单示例

利用模糊逻辑创建指标的简单示例

本文专门讲解金融市场分析模糊逻辑理念的实际应用。 我们会根据两条模糊规则和轨道线指标,提供生成信号的指标示例。 开发出的指标会采用多个指标缓冲区:7 个计算用缓冲区,5 个图表显示用缓冲区和 2 个颜色缓冲区。
Simulink: EA 交易开发人员指南
Simulink: EA 交易开发人员指南

Simulink: EA 交易开发人员指南

我不是专业的程序员。 正因如此,对于我来说,要进行交易系统开发,“由简入繁”是最最重要的原则。 那么,对我来说,怎样才算是简单呢? 首先,是创建系统过程的可视化,及其工作的逻辑。 还有,手写代码要尽可能地少。 在本文中,我将尝试根据 Matlab 软件包完成交易系统的创建和测试,然后再编写一个 MetaTrader 5 “EA 交易”。而测试过程会采用 MetaTrader 5 的历史数据。
如何快速创建一个"2010 年自动交易锦标赛"专用"EA 交易"
如何快速创建一个"2010 年自动交易锦标赛"专用"EA 交易"

如何快速创建一个"2010 年自动交易锦标赛"专用"EA 交易"

为了开发出一种参与“2010 年自动交易锦标赛”的“EA 交易”,我们使用一个即用的“EA 交易”模板。 即便是 MQL5 程序员初哥也能胜任此任务,因为您策略的基类、函数和模板都已经开发完毕。 编写少量的代码来实现您的交易理念就足够了。
使用TesterWithdrawal() 函数模拟利润提取
使用TesterWithdrawal() 函数模拟利润提取

使用TesterWithdrawal() 函数模拟利润提取

本文讲述的是用于交易系统风险评估的TesterWithDrawal()函数的用法,即运行期间提取一部分资产。此外,还会讲到此函数对于策略测试程序中资产净值减少的计算算法的作用。在优化您的EA交易的时候,就会用到此函数。
利用 MQL5 面向对象编程法编写"EA 交易"
利用 MQL5 面向对象编程法编写"EA 交易"

利用 MQL5 面向对象编程法编写"EA 交易"

本文将着重讲述的是面向对象法,将我们曾在"针对初学者以 MQL5 编写"EA 交易"的分步指南"文中谈到的内容落到实处-创建简单的"EA 交易"。 很多人都觉得难,但是,我向您保证,看完本文之后,您就能够编写自己的面向对象 "EA 交易"了。
MQL5 Cookbook: 减少过度配合的影响以及处理报价缺失
MQL5 Cookbook: 减少过度配合的影响以及处理报价缺失

MQL5 Cookbook: 减少过度配合的影响以及处理报价缺失

无论您使用何种交易策略,总会有一个问题:怎样选择参数以保证未来的利润。本文提供了一个EA交易的实例,使您可以同时优化多个交易品种的参数,这种方法是未了减少参数的过度配合以及处理在研究中来自单个交易品种的数据不足的问题。
MQL5 Cookbook: 把交易历史写入文件以及为每个交易品种在Excel中创建余额图表
MQL5 Cookbook: 把交易历史写入文件以及为每个交易品种在Excel中创建余额图表

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

当在各种论坛做沟通时,我经常使用我自己的测试结果作为例子,这些结果显示为Microsoft Excel中的图表截图。很多时候都有人问我这些图表是怎样创建的,最终,我现在有时间在本文中解释其中的全部了。
MQL5 Cookbook: 使用不限数量的参数开发多币种EA交易
MQL5 Cookbook: 使用不限数量的参数开发多币种EA交易

MQL5 Cookbook: 使用不限数量的参数开发多币种EA交易

在本文中,我们将创建一种模式,它会使用一系列参数为交易系统作优化,而且允许不加数量限制的参数。交易品种的列表将在标准文本文件(*.txt)中创建,每个交易品种的输入参数也将存储于文件中。使用这种方法,我们将能够免除终端中对EA输入参数个数的限制。
6 步创建您自己的交易机器人!
6 步创建您自己的交易机器人!

6 步创建您自己的交易机器人!

如果您不清楚交易类如何构造,而且一看到面向对象编程之类的词就害怕,那么,本文正适合您。实际上,那些编写您自己的交易信号模块的细节,您无需知道。只需遵循几条简单法则即可。MQL5 向导会完成所有其余工作,而您则会得到一个即用型的交易机器人!
面向对象法建立多时间表及多货币面板
面向对象法建立多时间表及多货币面板

面向对象法建立多时间表及多货币面板

本文讲述如何利用面向对象编程创建 MetaTrader 5 多时间表与多货币面板。主要目标在于建立一个可用于显示多种不同类型数据(比如价格、价格变动、指标值或自定义买/卖条件)、且无需修改面板本身代码的通用面板。
面向对象编程基础
面向对象编程基础

面向对象编程基础

您无需了解什么是多态性、什么是封装性,以及使用面向对象编程(OOP)相关的一切内容……您可能只需要使用这些功能就好了。本文中涵盖了 OOP 的基础知识,且带有亲身实践示例。
利用MQL5创建您自己的图形面板
利用MQL5创建您自己的图形面板

利用MQL5创建您自己的图形面板

MQL5程序的可用性,是由其丰富的功能性和制作精细的图形用户界面所决定的。视觉感知有时比快速且稳定的运行更加重要。根据标准库类,您可以自行创建显示面板,以下即逐步操作指南。
自定义图形控件。第 3 部分 表单
自定义图形控件。第 3 部分 表单

自定义图形控件。第 3 部分 表单

专门讲解图形控件的有三篇文章,此为最后一篇。其中涵盖主要图形界面组件的创建 - 表单 - 及其同其它控件的搭配使用。除表单类之外,CFrame、CButton、CLabel 类亦已添加到此控件库。
自定义图形控件。第 2 部分 控件库
自定义图形控件。第 2 部分 控件库

自定义图形控件。第 2 部分 控件库

自定义图形控件系列的第二篇文章引入了一个控件库,而该控件库旨在处理程序(EA 交易、脚本、指标)与用户交互过程中产生的主要问题。库中包含大量的类(CInputBox、CSpinInputBox、CCheckBox、CRadioGroup、CVSсrollBar、CHSсrollBar、CList、CListMS、CComBox、CHMenu、CVMenu、CHProgress、CDialer、CDialerInputBox、CTable)及其使用示例。
MQL5 Wizard:新版本
MQL5 Wizard:新版本

MQL5 Wizard:新版本

本文介绍 MQL5 Wizard 升级版的新功能。修改后的信号架构允许基于各种市场情形的组合创建交易机器人。本文所载的例子说明了交互式创建一个 EA 交易程序的过程。
preview
在 MQL5 中使用资源

在 MQL5 中使用资源

MQL5程序不仅仅对例行计算进行自动化,还能够创建全功能图形环境。现在,创建真实互动控制的功能,几乎与经典编程语言一样丰富。如果您希望以 MQL5 编写一个完全成熟的独立程序,请使用MQL5中的资源。带有资源的程序更容易维护与分发。
MQL5 中的绘图风格
MQL5 中的绘图风格

MQL5 中的绘图风格

MQL4 中有 6 种绘图风格,而到 MQL5 则增加到了 18 种。因此,可能很有必要撰写一篇文章,专门介绍 MQL5 的绘图风格。我们会在本文研究 MQL5 中的绘图风格详情。此外,我们还会创建一个指标来展示如何使用这些绘图风格,并细化标绘。
使用信号指标的简单交易系统
使用信号指标的简单交易系统

使用信号指标的简单交易系统

如果我们完整地检查任何复杂的交易系统,就会发现它们都是基于一组简单的交易信号。因此,新手开发人员无需立即开始复杂算法的编写。本文讲述的是一套使用信号指标执行交易的交易系统示例。
MQL5 Cookbook: 多币种EA交易 - 简洁而快速的途径
MQL5 Cookbook: 多币种EA交易 - 简洁而快速的途径

MQL5 Cookbook: 多币种EA交易 - 简洁而快速的途径

本文将介绍一个针对多币种EA交易的简单而合适的实现。意思是说您可以设置EA交易,针对多币种在同一条件下测试/交易,但是为每个交易品种设置不同的参数。作为例子,我们将创建针对两个交易品种的模式,但是通过这种方法可以还增加另外的交易品种,如有必要只需修改很少的代码。
MQL5 Cookbook: 基于三重滤网策略开发交易系统框架
MQL5 Cookbook: 基于三重滤网策略开发交易系统框架

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

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

订单策略。多目标 EA 交易

本文主要介绍一些主动使用挂单的策略、用来描述这些策略的元语言,以及如何使用一种以这些描述为基础运行的多目标 EA 交易。
MQL5 Cookbook: 在EA交易中使用指标来设置交易条件
MQL5 Cookbook: 在EA交易中使用指标来设置交易条件

MQL5 Cookbook: 在EA交易中使用指标来设置交易条件

在本文中,我们将继续修改之前在MQL5 Cookbook系列文章中的EA交易,这一次,EA交易将进一步增强,使用指标来检查建仓条件。为了增加点乐趣,我们会在外部参数中创建一个下拉列表,可以从三个交易指标中选择一个。
MQL5 Cookbook: 交易历史和取得仓位信息的函数库
MQL5 Cookbook: 交易历史和取得仓位信息的函数库

MQL5 Cookbook: 交易历史和取得仓位信息的函数库

现在是时候简单总结一下之前关于仓位属性文章的内容了,在本文中,我们会额外创建几个函数来取得只能通过访问交易历史才能获得的属性,我们也会对数据结构更加熟悉,这使我们可以用更加方便的方法访问仓位和交易品种属性。
初学者快速入门或简明指南
初学者快速入门或简明指南

初学者快速入门或简明指南

亲爱的读者,您好!本文中,我们会试着为您解释并向您呈现可以如何轻松快速地掌握创建EA交易、使用指标等等原则的要领。本文面向初学者,所以不会包含任何难懂或晦涩的示例。
MQL5 中的交易操作 - 很简单
MQL5 中的交易操作 - 很简单

MQL5 中的交易操作 - 很简单

几乎所有的交易者都是为了赚钱而进入市场,但也有一些交易者却是享受交易过程的本身。然而,并不是只有手动交易才能给您兴奋的体验。自动化交易系统开发也可以让您欲罢不能。创建一个交易机器人,可以像读一本出色的悬疑小说一样有趣。
preview
MQL5 快速上手

MQL5 快速上手

您已决定学习 MQL5 交易策略的编程语言,但却对其一无所知?我们尝试从新人的视角来看待 MQL5 和 MetaTrader 5 终端,并撰写了此篇简短的介绍性文章。本文中简要地讲述了该语言的多种可能性,还包含有关使用 MetaEditor 5 及此终端的一些小贴士。
自定义图形控件。第一部分:创建简单控件
自定义图形控件。第一部分:创建简单控件

自定义图形控件。第一部分:创建简单控件

本文介绍开发图形控件的一般原则。我们将准备若干用于快速和方便地处理图形对象的工具,分析一个创建用于输入文本或数字的简单控件的例子以及使用该控件的方法。
MQL5 Cookbook: 怎样在设置/修改交易参数时避免错误
MQL5 Cookbook: 怎样在设置/修改交易参数时避免错误

MQL5 Cookbook: 怎样在设置/修改交易参数时避免错误

作为我们在系列前一篇文章,"MQL Cookbook: 在MetaTrader 5策略测试器中分析仓位属性"中EA交易工作的继续,我们将使用很多有用的函数,以及提高和优化已有的函数来增强它。这一次EA交易有可以在MetaTrader 5策略测试器中优化的外部参数,并且在某些方面组成了一个简单的交易系统。
MQL5 Cookbook: 在MetaTrader 5策略测试器中分析仓位属性
MQL5 Cookbook: 在MetaTrader 5策略测试器中分析仓位属性

MQL5 Cookbook: 在MetaTrader 5策略测试器中分析仓位属性

我们将会展示一个来自前一篇文章,"MQL5 Cookbook: 自定义信息面板上的仓位属性"的修改版的EA交易。我们将会解决一些问题,包括从柱中获得数据,在当前交易品种中检查新柱事件,在文件中包含标准库中的交易类,创建一个函数来搜索交易信号,还有一个执行交易操作的函数以及在OnTrade()函数中判断交易事件。
MQL5 Cookbook: 自定义信息面板上的仓位属性
MQL5 Cookbook: 自定义信息面板上的仓位属性

MQL5 Cookbook: 自定义信息面板上的仓位属性

这一次我们创建一个简单的EA交易,它可以取得当前交易品种的仓位属性并且在人工交易的时候在自定义信息面板上显示它们。信息面板将使用图形对象创建,显示的信息在每当有订单时都会刷新,这将比系列文章的前一篇 - "MQL5 Cookbook: 获取仓位属性"中提到的每次必须人工运行脚本要方便得多。