有关MQL5策略测试的文章

icon

如何开发,编写和测试交易策略,如何找到最优的系统参数,以及如何分析结果?该 MetaTrader 平台为交易机器人开发者提供了丰富的功能,可以快速、准确地测试交易思路。阅读这些文章,了解如何测试多币种机器人,以及如何利用 MQL5 云网络 达到优化目的。

建议自动交易系统的开发者,在策略测试器中,先从测试基本面即时报价算法开始。

添加一个新的文章
最近 | 最佳
preview
开发回放系统 — 市场模拟(第 27 部分):智能交易系统项目 — C_Mouse 类

开发回放系统 — 市场模拟(第 27 部分):智能交易系统项目 — C_Mouse 类

在本文中,我们将实现 C_Mouse 类。它提供了最高级别的编程能力。不过,说到高级或低级编程语言,并不是在代码中包含污言秽语或行话。它有其它含义。当我们谈论高级或低级编程时,我们意指对于其他程序员来说理解代码是多么容易或困难。
preview
开发多币种 EA 交易(第 7 部分):根据前向时间段选择组

开发多币种 EA 交易(第 7 部分):根据前向时间段选择组

在此之前,我们曾对一组交易策略实例的选择进行过评估,目的是改进它们的联合运行结果,但这只是在对单个实例进行优化的同一时间段进行的。让我们拭目以待在前向时间段会发生什么。
preview
人工电场算法(AEFA)

人工电场算法(AEFA)

本文介绍了一种受库仑静电力定律启发的人工电场算法(AEFA)。该算法通过模拟电学现象,利用带电粒子及其相互作用来解决复杂的优化问题。与其他基于自然法则的算法相比,AEFA具有独特性质。
preview
使用Python和MQL5进行交易策略的自动参数优化

使用Python和MQL5进行交易策略的自动参数优化

有多种用于交易策略和参数自我优化的算法。这些算法基于历史和当前市场数据自动改进交易策略。在本文中,我们将通过Python和MQL5的示例来探讨其中一种算法。
preview
开发回放系统 — 市场模拟(第 14 部分):模拟器的诞生(IV)

开发回放系统 — 市场模拟(第 14 部分):模拟器的诞生(IV)

在本文中,我们将继续探讨模拟器开发的新阶段。 这次,我们会见到如何有效地创建随机游走类型的走势。 这种类型的走势非常引人入胜,因为它是构成资本市场上所发生一切的基础。 此外,我们将开始了解一些对于进行市场分析至关重要的概念。
preview
开发回放系统(第 56 部分):调整模块

开发回放系统(第 56 部分):调整模块

虽然模块之间已经可以正常交互,但在回放服务中尝试使用鼠标指标时会出现错误。在进入下一步之前,我们需要解决这个问题。此外,我们还将修复鼠标指标代码中的一个问题。所以这个版本经过适当的打磨,最终会稳定下来。
preview
开发多币种 EA 交易(第 8 部分):负载测试和处理新柱

开发多币种 EA 交易(第 8 部分):负载测试和处理新柱

随着我们的进步,我们在一个 EA 中使用了越来越多的同时运行的交易策略实例。让我们试着弄清楚在遇到资源限制之前,我们可以得到多少实例。
preview
最负盛名的人工协作搜索算法的改进版本(AXSm)

最负盛名的人工协作搜索算法的改进版本(AXSm)

在这里,我们将探讨 ACS 算法的演变:三种修改旨在改善收敛特性和算法效率。对最领先的优化算法之一进行修订改版。从数据矩阵修改到种群形成的革命性方法。
preview
比尔·威廉姆斯策略(或结合其他指标和预测)

比尔·威廉姆斯策略(或结合其他指标和预测)

在这篇文章中,我们将探讨比尔·威廉姆斯的一个著名策略,对其进行讨论,并尝试通过其他指标和预测来改进这一策略。
preview
开发回放系统 — 市场模拟(第 25 部分):为下一步做准备

开发回放系统 — 市场模拟(第 25 部分):为下一步做准备

在本文中,我们将会完结开发回放和模拟系统的第一阶段。尊敬的读者,有了这样的成就,我确认该系统已经达到了高级水平,为引入新功能铺平了道路。目标是进一步丰富该系统,将其转变为研究和开发市场分析的强力工具。
preview
化学反应优化 (CRO) 算法(第二部分):汇编和结果

化学反应优化 (CRO) 算法(第二部分):汇编和结果

在第二部分中,我们将把化学运算符整合到一个算法中,并对其结果进行详细分析。让我们来看看化学反应优化 (CRO) 方法是如何解决测试函数的复杂问题的。
preview
MQL5 中的范畴论 (第 15 部分):函子与图论

MQL5 中的范畴论 (第 15 部分):函子与图论

本文是以 MQL5 实现范畴论,着眼于函子之系列的续篇,但这次是作为图论和集合之间的桥梁。我们重新审视日历数据,尽管它在策略测试器中存在使用局限,但在相关性的帮助下,可利用函子来预测波动性。
preview
种群优化算法:Boids(虚拟生物)算法

种群优化算法:Boids(虚拟生物)算法

本文基于动物集群行为的独特实例,说明Boids算法。反过来说,Boids算法又成为了一整类算法的基础,这类算法统称为“种群智能”。
preview
开发回放系统(第31部分):EA交易项目——C_Mouse类(五)

开发回放系统(第31部分):EA交易项目——C_Mouse类(五)

我们需要一个计时器,它可以显示距离回放/模拟运行结束还有多少时间。乍一看,这可能是一个简单快捷的解决方案。许多人只是尝试适应并使用交易服务器使用的相同系统。但有一件事是很多人在考虑这个解决方案时没有考虑的:对于回放,甚至更多的是模拟,时钟的工作方式不同。所有这些都使创建这样一个系统变得复杂。
preview
MQL5 中的范畴论 (第 16 部分):多层感知器函子

MQL5 中的范畴论 (第 16 部分):多层感知器函子

本文是我们系列文章的第 16 篇,继续考察函子以及如何使用人工神经网络实现它们。我们偏离了迄今为止在该系列中所采用的方式,这涉及预测波动率,并尝试实现自定义信号类来设置入仓和出仓信号。
preview
种群优化算法:细菌觅食优化 — 遗传算法(BFO-GA)

种群优化算法:细菌觅食优化 — 遗传算法(BFO-GA)

本文释义了一种解决优化问题的新方式,即把细菌觅食优化(BFO)算法和遗传算法(GA)中所用的技术结合到混合型 BFO-GA 算法当中。它用细菌群落来全局搜索最优解,并用遗传运算器来优调局部最优值。与原始的 BFO 不同,细菌现在可以突变,并继承基因。
preview
开发回放系统 — 市场模拟(第 26 部分):智能交易系统项目 — C_Terminal 类

开发回放系统 — 市场模拟(第 26 部分):智能交易系统项目 — C_Terminal 类

现在,我们可以开始创建回放/模拟系统的智能系统。不过,我们需要改进一些东西,并非敷衍了事。尽管如此,我们不应被最初的复杂性所吓倒。重要的是从某处开始,否则我们最终只会空想一项任务的难度,甚至没有尝试去克服它。这就是编程的全部意义:通过学习、测试和广泛的研究来攻克障碍。
preview
开发回放系统(第29部分):EA 交易项目——C_Mouse类(三)

开发回放系统(第29部分):EA 交易项目——C_Mouse类(三)

在改进了C_Mouse类之后,我们可以专注于创建一个类,该类旨在为我们的分析创建一个全新的框架。我们不会使用继承或多态性来创建这个新类。相反,我们将改变,或者更好地说,在价格线中添加新的对象。这就是我们在这篇文章中要做的。在下一节中,我们将研究如何更改分析。所有这些都将在不更改C_Mouse类的代码的情况下完成。实际上,使用继承或多态性会更容易实现这一点。然而,还有其他方法可以达到同样的结果。
preview
开发回放系统 — 市场模拟(第 28 部分):智能交易系统项目 — C_Mouse 类 (II)

开发回放系统 — 市场模拟(第 28 部分):智能交易系统项目 — C_Mouse 类 (II)

当人们开始创建第一个拥有计算能力的系统时,一切都需要工程师的参与,他们必须非常熟知该项目。我们谈论的是计算机技术的曙光,那个时代甚至没有用于编程的终端。随着它的发展,越来越多的人对能够创造一些东西感兴趣,涌现出新的思路和编程方式,取代了旧式风格的改变连接器位置。这就是第一个终端出现的时刻。
preview
人工蜂巢算法(ABHA):测试与结果

人工蜂巢算法(ABHA):测试与结果

在本文中,我们将继续深入探索人工蜂巢算法(ABHA),通过深入研究代码并探讨其余的方法。正如您可能还记得的那样,模型中的每只蜜蜂都被表示为一个独立的智能体,其行为取决于内部和外部信息以及动机状态。我们将在各种函数上测试该算法,并通过在评分表中呈现结果来总结测试效果。
preview
开发多币种 EA 交易系统(第 16 部分):不同报价历史对测试结果的影响

开发多币种 EA 交易系统(第 16 部分):不同报价历史对测试结果的影响

正在开发中的 EA 预计在与不同经纪商进行交易时都会表现出良好的效果。但目前我们一直使用 MetaQuotes 模拟账户的报价进行测试。让我们看看我们的 EA 是否准备好使用与测试和优化期间使用的报价不同的交易账户。
preview
群体优化算法:抵抗陷入局部极值(第二部分)

群体优化算法:抵抗陷入局部极值(第二部分)

我们将继续我们的实验,它的目标是研究群体优化算法在群体多样性较低时有效摆脱局部最小值并达到全局最大值的能力。提供了研究的结果。
preview
开发多币种 EA 交易系统(第 15 部分):为真实交易准备 EA

开发多币种 EA 交易系统(第 15 部分):为真实交易准备 EA

当我们逐渐接近获得一个现成的 EA 时,我们需要注意在测试交易策略阶段看似次要的问题,但在转向真实交易时变得重要。
preview
威廉·江恩(William Gann)方法(第三部分):占星术是否有效?

威廉·江恩(William Gann)方法(第三部分):占星术是否有效?

行星和恒星的位置会影响金融市场吗?让我们借助统计数据和大数据,踏上一段令人兴奋的探索之旅,进入星星与股票图表交汇的世界。
preview
开发回放系统(第 53 部分):事情变得复杂(五)

开发回放系统(第 53 部分):事情变得复杂(五)

在本文中,我们将介绍一个很少有人了解的重要话题:定制事件。危险。这些要素的优缺点。对于希望成为 MQL5 或其他语言专业程序员的人来说,本主题至关重要。在此,我们将重点介绍 MQL5 和 MetaTrader 5。
preview
开发回放系统 — 市场模拟(第 13 部分):模拟器的诞生(III)

开发回放系统 — 市场模拟(第 13 部分):模拟器的诞生(III)

为了下一阶段的工作,我们将于此简化一些与操作相关的元素。 我还会解释如何让您把模拟器随机生成的内容可视化。
preview
开发回放系统(第 45 部分):Chart Trade 项目(四)

开发回放系统(第 45 部分):Chart Trade 项目(四)

本文的主要目的是介绍和解释 C_ChartFloatingRAD 类。我们有一个 Chart Trade 指标,它的工作方式非常有趣。您可能已经注意到了,图表上的对象数量仍然很少,但我们却获得了预期的功能。指标中的数值是可以编辑的。问题是,这怎么可能呢?这篇文章将使答案变得更加清晰。
preview
种群优化算法:二进制遗传算法(BGA)。第 I 部分

种群优化算法:二进制遗传算法(BGA)。第 I 部分

在本文中,我们将探讨二进制遗传和其它种群算法中所用的各种方法。我们将见识到算法的主要组成部分,例如选择、交叠和突变,以及它们对优化的影响。此外,我们还将研究数据表示方法,及其对优化结果的影响。
preview
GIT:它是什么?

GIT:它是什么?

在本文中,我将为开发人员介绍一个非常重要的工具。如果您不熟悉 GIT,请阅读本文,以了解它是什么以及如何在 MQL5 中使用它。
preview
开发多币种 EA 交易(第 6 部分):自动选择实例组

开发多币种 EA 交易(第 6 部分):自动选择实例组

在优化交易策略后,我们会收到一组参数。我们可以使用它们在一个 EA 中创建多个交易策略实例。以前,我们都是手动操作。在此,我们将尝试自动完成这一过程。
preview
开发回放系统(第 41 部分):启动第二阶段(二)

开发回放系统(第 41 部分):启动第二阶段(二)

如果到目前为止,你觉得一切都很好,那就说明你在开始开发应用程序时,并没有真正考虑到长远的问题。随着时间的推移,你将不再需要为新的应用程序编程,只需让它们协同工作即可。让我们看看如何完成鼠标指标的组装。
preview
种群优化算法:进化策略,(μ,λ)-ES 和 (μ+λ)-ES

种群优化算法:进化策略,(μ,λ)-ES 和 (μ+λ)-ES

本文研究一套称为进化策略(ES)的优化算法。它们是最早使用进化原理来寻找最优解的种群算法之一。我们将针对传统的 ES 变体实现变更,并修改算法的测试函数和测试台方法。
preview
开发回放系统(第 59 部分):新的未来

开发回放系统(第 59 部分):新的未来

正确理解不同的想法可以让我们事半功倍。在本文中,我们将探讨为什么在服务与图表交互之前需要配置模板。此外,如果我们改进鼠标指标,这样我们就可以用它做更多的事情呢?
preview
自定义指标:为净额结算账户绘制部分入场、出场和反转交易

自定义指标:为净额结算账户绘制部分入场、出场和反转交易

在本文中,我们将探讨在MQL5中创建指标的一种非标准方法。我们的目标不是专注于趋势或图表形态,而是管理我们自己的仓位,包括部分入场和出场。我们将广泛使用动态矩阵以及一些与交易历史和未平仓头寸相关的交易函数,以在图表上显示这些交易发生的位置。
preview
群体优化算法:抵抗陷入局部极值(第一部分)

群体优化算法:抵抗陷入局部极值(第一部分)

本文介绍了一个独特的实验,旨在研究群体优化算法在群体多样性较低时有效逃脱局部最小值并达到全局最大值的能力。朝着这个方向努力将进一步了解哪些特定算法可以使用用户设置的坐标作为起点成功地继续搜索,以及哪些因素会影响它们的成功。
preview
开发回放系统(第 39 部分):铺平道路(三)

开发回放系统(第 39 部分):铺平道路(三)

在进入开发的第二阶段之前,我们需要修正一些想法。您知道如何让 MQL5 满足您的需求吗?您是否尝试过超出文档所包含的范围?如果没有,那就做好准备吧。因为我们将做一些大多数人通常不会做的事情。
preview
MQL5 中的范畴论 (第 9 部分):幺半群(Monoid)— 动作

MQL5 中的范畴论 (第 9 部分):幺半群(Monoid)— 动作

本文是以 MQL5 实现范畴论系列的延续。 在这里,我们继续将“幺半群 — 动作”当为幺半群变换的一种手段,如上一篇文章所涵盖的内容,从而增加了应用。
preview
开发回放系统(第 36 部分):进行调整(二)

开发回放系统(第 36 部分):进行调整(二)

让我们的程序员生活举步维艰的原因之一就是做出假设。在本文中,我将向您展示假设是多么危险:例如在 MQL5 编程中假设类型将具有某个特定值,或是在 MetaTrader 5 中假设不同服务器的工作方式相同。
preview
开发回放系统(第 35 部分):进行调整 (一)

开发回放系统(第 35 部分):进行调整 (一)

在向前迈进之前,我们需要解决几个问题。这些实际上并不是必需的修正,而是对类的管理和使用方式的改进。原因是系统内的某些相互作用导致了故障的发生。尽管我们试图找出这些故障的原因以消除它们,但所有这些尝试都没有成功。其中有些情况完全不合理,例如,当我们在 C/C++ 中使用指针或递归时,程序就会崩溃。
preview
MQL5 中的范畴论 (第 14 部分):线性序函子

MQL5 中的范畴论 (第 14 部分):线性序函子

本文是更广泛关于以 MQL5 实现范畴论系列的一部分,深入探讨了函子(Functors)。我们实验了如何将线性序映射到集合,这要归功于函子;通过研究两组数据,典型情况下会忽略其间的任何联系。