MQL4和MQL5编程文章

icon

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

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

添加一个新的文章
最近 | 最佳
峰谷指标:新鲜的方法,新颖的解决方案
峰谷指标:新鲜的方法,新颖的解决方案

峰谷指标:新鲜的方法,新颖的解决方案

本文会验证创建一种高级峰谷指标的可能性。识别节点的概念是以使用轨道线指标为基础的。我们假设可以找到一系列轨道线输入参数的一种特定组合,所有峰谷节点均可借此处于轨道线带的界限之中。因此,我们可以尝试预测新节点的坐标。
使用非托管导出将 C# 代码运用到 MQL5
使用非托管导出将 C# 代码运用到 MQL5

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

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

Simulink: EA 交易开发人员指南

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

关于技术分析和市场预测的方法

本文论证了一个具备视觉思维的著名数学方法的能力和潜力,并提供了一种“独特的”市场展望。 一方面,它有助于吸引广泛受众的注意力,因为它可以让具有创造性思维的人们重新审视交易模式本身。 另一方面,它可以引导人们进行与各种分析和预测工具相关的其他开发和程序代码实现。
如何采用 MQL5 创建用于 Telegram 的 bots
如何采用 MQL5 创建用于 Telegram 的 bots

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

本文包含了采用 MQL5 逐步创建用于 Telegram 的 bots 教程。对于那些期望将自己的交易机器人与移动终端同步的用户来说, 这些信息十分有用。文章里的 bots 例程可以提供交易信号, 从网站上搜索情报, 发送有关账户余额信息以及图表报价和截图至您的智能手机。
preview
针对交易的组合数学和概率论(第一部分):基础知识

针对交易的组合数学和概率论(第一部分):基础知识

在本系列文章中,我们将尝试找寻概率论的实际运用来描述交易和定价过程。 在首篇文章中,我们将研究组合数学和概率论的基础知识,并将分析如何在概率论的框架中应用分形的第一个例子。
图形界面 X: 标准图表控件 (集成编译 4)
图形界面 X: 标准图表控件 (集成编译 4)

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

这一次我们将研究标准图表控件。它可以创建具有同步水平滚动功能的子图表数组。此外, 我们将继续优化库代码以降低 CPU 负载。
开发轴心均值振荡器:一款新颖的累积移动平均线指标
开发轴心均值振荡器:一款新颖的累积移动平均线指标

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

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

神经网络在交易中的实际应用。 是时候进行实践了

本文提供了在 Matlab 平台上实际运用神经网络模块的讲述和指南。 它还涵盖了运用神经网络模块创建交易系统的主要方面。 为了能够在一篇文章中厘清复杂内容,我必须对其进行修改,从而在一个程序中组合若干个神经网络模块函数。
EA 交易中的限制和验证
EA 交易中的限制和验证

EA 交易中的限制和验证

是否可以在周一交易此交易品种?是否有足够的资金用于开仓?如果止损触发,损失有多大?如何限制挂单数量?交易操作在当前柱上执行还是在前一柱上执行?如果交易机器人无法执行此类验证,则任何交易策略可转为带来损失。本文说明在EA交易中有用的验证示例。
蒙特卡洛方法在交易策略优化中的应用
蒙特卡洛方法在交易策略优化中的应用

蒙特卡洛方法在交易策略优化中的应用

在交易账户上运行 EA 交易之前,我们通常会在报价历史上测试和优化它。然而,这里会有一个合理的问题: 过去的结果怎么会对我们的未来有所帮助呢?本文描述了使用蒙特卡洛方法来为交易策略的优化构建自定义的标准,另外,还会探讨 EA 交易的稳定性标准。
运用 R-平方 评估策略余额曲线的品质
运用 R-平方 评估策略余额曲线的品质

运用 R-平方 评估策略余额曲线的品质

本文介绍如何构建自定义优化标准 R-平方。这一准则可用来评估一个策略的余额曲线的品质, 并选择增长最平滑和稳定的策略。这项工作讨论其构建原理, 以及用于评估属性和衡量品质的统计方法。
时间序列主要特性的分析
时间序列主要特性的分析

时间序列主要特性的分析

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

基因演算规则:数学运算

基因演算使用于智能交易的数据优化。这些用途的范例是一个神经网络的学习,即, 这样的值得到的误差最小。基因演算是以随机搜索的方法为基础的。
TradeObjects: 基于 MetaTrader 图形对象的自动化交易
TradeObjects: 基于 MetaTrader 图形对象的自动化交易

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

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

学习如何基于 MACD 设计交易系统

在本文中,将从我们的系列文章中挖掘一个新工具:我们将学习如何基于最流行的技术指标之一“移动平均收敛/发散(MACD)”设计交易系统。
图形界面 I:控件构成(第二章)
图形界面 I:控件构成(第二章)

图形界面 I:控件构成(第二章)

在本文中我们将创建第一个图形界面的主元素 — 控件的一个窗体。多个控件可以以任何组合被附加到此窗体的任何地方。
使用计量经济学方法分析图表
使用计量经济学方法分析图表

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

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

深入了解累积/派发以及它的作用

累积/派发 (A/D) 指标有一个有趣的功能 - 突破此指标图表中绘制的趋势线暗示着一定概率上会即将突破价格图表中的趋势线。本文对于那些刚开始在 MQL4 中进行编程的人来说很有帮助和趣味性。为此,我尝试用易于理解的方式呈现信息并使用最简单的代码结构。
New Bar (新柱)事件处理程序
New Bar (新柱)事件处理程序

New Bar (新柱)事件处理程序

MQL5 编程语言处理问题的能力已达到一个全新的水平。即便是那些已有此类解决方案的任务,也因为面向对象编程而进阶到一个更高的水平。本文中,我们会举一个检查图表中新柱的特别简单的例子,而且,它已经转化成为一种相当强大且用途多样的工具。什么工具?到文中找答案吧。
连接 NeuroSolutions 神经网络
连接 NeuroSolutions 神经网络

连接 NeuroSolutions 神经网络

除了创建神经网络,NeuroSolutions 软件套件允许将它们导出为 DLL。本文介绍创建神经网络、生成 DLL 并将其连接至"EA 交易"以在 MetaTrader 5 中交易的过程。
在 MetaTrader 5 里使用 HedgeTerminal (对冲终端) 面板进行双向交易和仓位对冲, 第一部分
在 MetaTrader 5 里使用 HedgeTerminal (对冲终端) 面板进行双向交易和仓位对冲, 第一部分

在 MetaTrader 5 里使用 HedgeTerminal (对冲终端) 面板进行双向交易和仓位对冲, 第一部分

本文描述了一种新的方法来进行仓位对冲,并在 MetaTrader 4 和 MetaTrader 5 的用户之间就此事的争辩划清界线。用通俗地语言描述可靠的对冲算法,并用简单图表和图例示意。本文专述新的 HedgeTerminal (对冲终端) 面板, 实质上是用于 MetaTrader 5 的全功能交易终端。使用 HedgeTerminal 和它提供的虚拟化交易, 仓位管理与 MetaTrader 4 的方式类似。
开发跨平台网格 EA(最后部分):多元化是提高盈利能力的一种途径
开发跨平台网格 EA(最后部分):多元化是提高盈利能力的一种途径

开发跨平台网格 EA(最后部分):多元化是提高盈利能力的一种途径

在本系列的前几篇文章中,我们尝试了各种方法来创建或多或少能够盈利的网格智能交易系统。 现在,我们将会尝试通过多元化来提高 EA 的盈利能力。 我们的终极目标是每年赚取 100% 的利润,而最大回撤不超过 20%。
交易员生存诀窍: 若干测试的比较报告
交易员生存诀窍: 若干测试的比较报告

交易员生存诀窍: 若干测试的比较报告

本文应对在四种不同的金融工具上同时启动智能交易系统测试。四个测试报告的最终比较在表格中提供, 类似于在线商店中陈列商品。附送礼包是为每个品种自动创建分布图表。
轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件
轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件

轻松快捷开发 MetaTrader 程序的函数库(第四部分):交易事件

在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台程序的开发。 我们已拥有历史订单和成交集合,在场订单和仓位的集合,以及便捷选择和订单排序的类。 在这一部分中,我们将继续开发基础对象,并教导引擎(Engine)函数库跟踪帐户上的交易事件。
研究烛条分析技术(第三部分):用于形态操作的函数库
研究烛条分析技术(第三部分):用于形态操作的函数库

研究烛条分析技术(第三部分):用于形态操作的函数库

本文的目的是创建一个自定义工具,令用户能够接收和使用前面所讨论形态的整体信息数组。 我们将创建一个形态相关的函数库,您可以在自己的指标、交易面板、智能交易系统等等应用中运用它们。
跨平台智能交易程序: 订单
跨平台智能交易程序: 订单

跨平台智能交易程序: 订单

MetaTrader 4 和 MetaTrader 5 在处理交易请求时使用不同的约定。本文讨论使用类对象来表达由服务器处理的交易的可能性, 目的是让跨平台智能交易程序可以无视交易平台版本和使用模式均可工作。
图形界面 VI: 复选框控件,编辑框控件以及它们的组合类型 (第一章)
图形界面 VI: 复选框控件,编辑框控件以及它们的组合类型 (第一章)

图形界面 VI: 复选框控件,编辑框控件以及它们的组合类型 (第一章)

本文是在MetaTrader终端图形界面开发库系列中第六部分的开端,在第一章中,我们将讨论复选框控件,编辑框控件以及它们的组合类型。
快捷手动交易工具箱:基本功能
快捷手动交易工具箱:基本功能

快捷手动交易工具箱:基本功能

如今,众多交易者切换至自动交易系统,这类系统可能需要附加设置,或是能够完全自动化并准备就绪。 然而,有相当一部分交易者更喜欢以旧有方式进行手动交易。 在本文中,我们将创建快速手动交易工具箱,用热键来一键执行典型交易操作。
机器学习:支持向量机如何应用于交易
机器学习:支持向量机如何应用于交易

机器学习:支持向量机如何应用于交易

长时间以来,支持向量机一直被应用于生物信息学和应用数学等领域,以评估复杂数据集以及提取可用于数据分类的有用模式。本文会研究何为支持向量机、它们的工作方式,以及为什么说它们在提取复杂模式时非常有用。之后,我们再研究如何将其应用于市场,并发挥交易建议的潜在作用。本文将提供使用支持向量机学习工具的有效示例,让读者能够试验自己的交易。
项目可协助创建可盈利的交易机器人! 或至少,看似可以
项目可协助创建可盈利的交易机器人! 或至少,看似可以

项目可协助创建可盈利的交易机器人! 或至少,看似可以

大程序都是从小文件开始,然后随着您不断添加更多的函数和对象而增长。 大多数的机器人开发人员都采用包含文件来应对此问题。 然而,有一个更好的解决方案:在一个项目中开始开发任意交易应用程序。 这样做的原因有很多。
优化管理(第二部分):创建按键对象和附加逻辑
优化管理(第二部分):创建按键对象和附加逻辑

优化管理(第二部分):创建按键对象和附加逻辑

这篇文章是之前发表的关于创建优化管理图形界面的延续,本文探讨了附加组件的逻辑,将为 MetaTrader 5 终端创建一个包装器:它将使附加组件通过C#作为一个托管进程运行。此外,本文还探讨了对配置文件和安装文件的操作。应用逻辑分为两部分:第一部分描述了按下特定按键后调用的方法,第二部分描述了优化启动和管理。
MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标
MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标

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

在滑动窗口中执行计算时, 环形缓存是排布数据最简单和最有效的方式。本文描述其算法, 并展示它如何简化滑动窗口中的计算, 以令其更有效率。
一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案
一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案

一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案

本文说明如何使用命名管道在 MetaTrader 5 客户端之间实施进程间通信。为使用命名管道而开发了 CNamedPipes 类。为了测试其使用以及测量连接吞吐能力,提供了价格变动指标、服务器和客户端脚本。命名管道的使用足以应对实时报价。
深度神经网络 (第 II 部)。制定和选择预测因子
深度神经网络 (第 II 部)。制定和选择预测因子

深度神经网络 (第 II 部)。制定和选择预测因子

有关深度神经网络系列的第二篇文章研究当准备模型训练的数据期间预测因子的变换和选择。
攫取盈利至最后的点位
攫取盈利至最后的点位

攫取盈利至最后的点位

本文尝试阐述在算法交易领域中将理论与实践相结合。 有关创建交易系统的大多数讨论都与依据历史柱线和其上应用的各种指标有关联。 这是覆盖率最高的领域,因此我们不会再过多涉及。 柱线体现出非常人工的实体; 因此,我们将使用更接近原始数据的东西,即价格的即时报价。
学习如何设计一款布林带(Bollinger Bands)交易系统
学习如何设计一款布林带(Bollinger Bands)交易系统

学习如何设计一款布林带(Bollinger Bands)交易系统

在本文中,我们将学习布林带,这是交易界最流行的指标之一。 我们将研究技术分析,并看看如何设计一款基于布林带(Bollinger Bands)指标的算法交易系统。
调试 MQL5 程序
调试 MQL5 程序

调试 MQL5 程序

本文主要针对那些已经学过这种语言、但又没有完全掌握该语言开发的程序员。文中给出一些调试技巧,并介绍作者与众多其他程序人员的经验。
利用余额图进行策略优化并将结果与 "余额 + 最大锋锐比率" 标准进行比较
利用余额图进行策略优化并将结果与 "余额 + 最大锋锐比率" 标准进行比较

利用余额图进行策略优化并将结果与 "余额 + 最大锋锐比率" 标准进行比较

在本文中, 我们研究另一种基于分析余额图来优化自定义交易策略的准则。线性回归使用 ALGLIB 函数库中的函数进行计算。
创建手动交易策略的模糊逻辑
创建手动交易策略的模糊逻辑

创建手动交易策略的模糊逻辑

本文提出使用模糊理论来改善手动交易策略的方法。作为例子,我们给出了如何一步步构建策略和选则参数,然后将模糊逻辑应用与进入市场的标准选择上。这样,在修改策略后,我们获得了能对市场情况做出合理反应的弹性开仓条件。