有关MQL5策略测试的文章

icon

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

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

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

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

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

化学反应优化(CRO)算法(第一部分):在优化中处理化学

在本文的第一部分中,我们将深入化学反应的世界并发现一种新的优化方法!化学反应优化 (CRO,Chemical reaction optimization) 利用热力学定律得出的原理来实现有效的结果。我们将揭示分解、合成和其他化学过程的秘密,这些秘密成为了这种创新方法的基础。
preview
开发回放系统(第 45 部分):Chart Trade 项目(四)

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

本文的主要目的是介绍和解释 C_ChartFloatingRAD 类。我们有一个 Chart Trade 指标,它的工作方式非常有趣。您可能已经注意到了,图表上的对象数量仍然很少,但我们却获得了预期的功能。指标中的数值是可以编辑的。问题是,这怎么可能呢?这篇文章将使答案变得更加清晰。
preview
开发回放系统(第 41 部分):启动第二阶段(二)

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

如果到目前为止,你觉得一切都很好,那就说明你在开始开发应用程序时,并没有真正考虑到长远的问题。随着时间的推移,你将不再需要为新的应用程序编程,只需让它们协同工作即可。让我们看看如何完成鼠标指标的组装。
preview
禁忌搜索(TS)

禁忌搜索(TS)

本文讨论了禁忌搜索(Tabu Search)算法,这是一种最早且最为人所知的元启发式方法之一。我们将详细探讨该算法的运行过程,从选择初始解并探索邻近选项开始,重点介绍使用禁忌表。文章涵盖了该算法的关键方面及其特性。
preview
群体优化算法:抵抗陷入局部极值(第一部分)

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

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

算术优化算法(AOA):从AOA到SOA(简单优化算法)

在本文中,我们介绍了基于简单算术运算(加法、减法、乘法和除法)的算术优化算法(AOA)。这些基本的数学运算是为各种问题寻找最优解的基础。
preview
开发回放系统(第 75 部分):新 Chart Trade(二)

开发回放系统(第 75 部分):新 Chart Trade(二)

在本文中,我们将讨论 C_ChartFloatingRAD 类。这就是 Chart Trade 发挥作用的原因。然而,解释并未就此结束,我们将在下一篇文章中完成它,因为这篇文章的内容相当广泛,需要深入理解。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
MQL5 简介(第 9 部分):理解和使用 MQL5 中的对象

MQL5 简介(第 9 部分):理解和使用 MQL5 中的对象

学习使用当前和历史数据在 MQL5 中创建和自定义图表对象。本基于项目的指南可帮助您可视化交易并实际应用 MQL5 概念,从而更容易构建适合您交易需求的工具。
preview
开发回放系统 — 市场模拟(第 13 部分):模拟器的诞生(III)

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

为了下一阶段的工作,我们将于此简化一些与操作相关的元素。 我还会解释如何让您把模拟器随机生成的内容可视化。
preview
MQL5 中的范畴论 (第 9 部分):幺半群(Monoid)— 动作

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

本文是以 MQL5 实现范畴论系列的延续。 在这里,我们继续将“幺半群 — 动作”当为幺半群变换的一种手段,如上一篇文章所涵盖的内容,从而增加了应用。
preview
开发多币种 EA 交易 (第 5 部分):可变仓位大小

开发多币种 EA 交易 (第 5 部分):可变仓位大小

在前面的部分中,我们正在开发的智能交易系统 (EA) 只能使用固定的仓位大小进行交易。这对于测试来说是可以接受的,但在真实账户交易时并不建议这样做。让我们能够使用可变的仓位大小进行交易。
preview
大气云模型优化(ACMO):理论

大气云模型优化(ACMO):理论

本文致力于介绍一种元启发式算法——大气云模型优化(ACMO)算法,该算法通过模拟云层的行为来解决优化问题。该算法利用云层的生成、移动和传播的原理,适应解空间中的“天气条件”。本文揭示了该算法如何通过气象模拟在复杂的可能性空间中找到最优解,并详细描述了ACMO运行的各个阶段,包括“天空”准备、云层的生成、云层的移动以及水的集中。
preview
开发回放系统(第 44 部分):Chart Trader 项目(三)

开发回放系统(第 44 部分):Chart Trader 项目(三)

在上一篇文章中,我介绍了如何操作模板数据以便在 OBJ_CHART 中使用。在那篇文章中,我只是概述了这一主题,并没有深入探讨细节,因为在那个版本中,这项工作是以非常简单的方式完成的。这样做是为了更容易解释内容,因为尽管很多事情表面上很简单,但其中有些并不那么明显,如果不了解最简单、最基本的部分,就无法真正理解全局。
preview
开发回放系统(第 70 部分):取得正确的时间(三)

开发回放系统(第 70 部分):取得正确的时间(三)

在本文中,我们将了解如何正确有效地使用 CustomBookAdd 函数。尽管它看起来很简单,但它有许多细微差别。例如,它允许您告诉鼠标指标自定义交易品种是否正在竞价、交易或市场是否关闭。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
开发多币种 EA 交易 (第 13 部分):自动化第二阶段 — 分组选择

开发多币种 EA 交易 (第 13 部分):自动化第二阶段 — 分组选择

我们已经实现了自动化优化的第一阶段。我们根据若干标准对不同的交易品种和时间框架进行优化,并将每次通过的结果信息存储在数据库中。现在我们将从第一阶段找到的参数集中选择最佳组。
preview
开发多币种 EA 交易(第 20 部分):整理自动项目优化阶段的输送机(一)

开发多币种 EA 交易(第 20 部分):整理自动项目优化阶段的输送机(一)

我们已经创建了不少有助于安排自动优化的组件。在创建过程中,我们遵循了传统的循环结构:从创建最小的工作代码到重构和获得改进的代码。是时候开始清理我们的数据库了,这也是我们正在创建的系统中的一个关键组件。
preview
动物迁徙优化(AMO)算法

动物迁徙优化(AMO)算法

本文介绍了AMO算法,该算法通过模拟动物的季节性迁徙来寻找适合生存和繁殖的最优条件。AMO的主要特点包括使用拓扑邻域和概率更新机制,使得其易于实现,并且能够灵活应用于各种优化任务。
preview
周期与交易

周期与交易

本文将探讨如何在交易中运用周期理论。我们将考虑基于周期模型构建交易策略。
preview
开发回放系统(第 58 部分):重返服务工作

开发回放系统(第 58 部分):重返服务工作

在回放/模拟器服务的开发和改进暂停之后,我们正在恢复该工作。现在我们已经放弃使用终端全局变量等资源,我们将不得不完全重组其中的一些部分。别担心,我们会详细解释这个过程,这样每个人都可以关注我们服务的发展。
preview
开发回放系统(第 35 部分):进行调整 (一)

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

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

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

厌倦了浪费时间搜索应用程序工作所需的文件吗?在可执行文件中包含所有内容如何?这样,你就不用再去找东西了。我知道很多人都使用这种分发和存储形式,但还有一种更合适的方式。至少在可执行文件的分发和存储方面是这样。这里将介绍的方法非常有用,因为您可以将 MetaTrader 5 本身用作优秀的助手,也可以使用 MQL5。此外,它并不难理解。
preview
开发回放系统(第 49 部分):事情变得复杂 (一)

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

在本文中,我们将把问题复杂化。通过前面文章中展示的内容,我们将开始打开模板文件,以便用户可以使用自己的模板。不过,我将逐步进行修改,因为我还将改进指标,以减少 MetaTrader 5 的负载。
preview
随机数生成器质量对优化算法效率的影响

随机数生成器质量对优化算法效率的影响

在这篇文章中,我们将探讨梅森旋转算法(Mersenne Twister)随机数生成器,并将其与MQL5中的标准随机数生成器进行比较。此外,我们还将研究随机数生成器的质量对优化算法结果的影响。
preview
人工藻类算法(Artificial Algae Algorithm,AAA)

人工藻类算法(Artificial Algae Algorithm,AAA)

文章探讨了基于藻类微生物特征的人工藻类算法(AAA)。该算法包括螺旋运动、进化过程和适应性,使其能够解决优化问题。本文深入分析了AAA的工作原理及其在数学建模中的潜力,强调了自然与算法解决方案之间的联系。
preview
开发回放系统(第 39 部分):铺平道路(三)

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

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

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

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

原子轨道搜索(AOS)算法

本文探讨了原子轨道搜索(Atomic Orbital Search,AOS)算法,该算法运用原子轨道模型的概念来模拟解的搜索过程。此算法基于概率分布以及原子内相互作用的动力学原理。本文详细阐述了关于AOS算法的数学层面,包括候选解位置的更新方式,以及能量吸收与释放的机制。AOS算法通过为计算问题提供一种创新的优化方法,为将量子原理应用于计算问题开辟了新思路。
preview
您应当知道的 MQL5 向导技术(第 44 部分):平均真实范围(ATR)技术指标

您应当知道的 MQL5 向导技术(第 44 部分):平均真实范围(ATR)技术指标

ATR 振荡指标是一款非常流行的指标,权当波动率代表,尤其是在交易量数据稀缺的外汇市场当中。我们以形态为基础来验证这一点,就如我们对先前指标所做那样,并分享策略和测试报告,致谢 MQL5 向导库的类和汇编。
preview
开发回放系统(第 36 部分):进行调整(二)

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

让我们的程序员生活举步维艰的原因之一就是做出假设。在本文中,我将向您展示假设是多么危险:例如在 MQL5 编程中假设类型将具有某个特定值,或是在 MetaTrader 5 中假设不同服务器的工作方式相同。
preview
数据科学和机器学习(第 21 部分):解锁神经网络,优化算法揭秘

数据科学和机器学习(第 21 部分):解锁神经网络,优化算法揭秘

深入神经网络的心脏,我们将揭秘神经网络内部所用的优化算法。在本文中,探索解锁神经网络全部潜力的关键技术,把您的模型准确性和效率推向新的高度。
preview
种群优化算法:模拟退火(SA)。第 1 部分

种群优化算法:模拟退火(SA)。第 1 部分

模拟退火算法是受到金属退火工艺启发的一种元启发式算法。在本文中,我们将对算法进行全面分析,并揭示围绕这种广为人知的优化方法的一些常见信仰和神话。本文的第二部分将研究自定义模拟各向同性退火(SIA)算法。
preview
您应当知道的 MQL5 向导技术(第 12 部分):牛顿多项式

您应当知道的 MQL5 向导技术(第 12 部分):牛顿多项式

牛顿多项式,其依据一组少量点创建二次方程,是一种古老但有趣的时间序列观察方式。在本文中,我们尝试探讨这种方式在哪些方面对交易者有用,并解决其局限性。
preview
人工喷淋算法(ASHA)

人工喷淋算法(ASHA)

本文介绍了人工喷淋算法(Artificial Showering Algorithm,ASHA),这是一种为解决一般优化问题而开发的新型元启发式方法。基于对水流和积聚过程的模拟,该算法构建了理想场的概念,其中要求每个资源单元(水)找到最优解。我们将了解 ASHA 如何调整流和累积原则来有效地分配搜索空间中的资源,并查看其实现和测试结果。
preview
开发回放系统(第 52 部分):事情变得复杂(四)

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

在本文中,我们将修改鼠标指针,以实现与控制指标的交互,确保可靠、稳定地运行。
preview
开发回放系统(第 38 部分):铺路(II)

开发回放系统(第 38 部分):铺路(II)

许多认为自己是 MQL5 程序员的人,其实并不具备我在本文中将要概述的基础知识。许多人认为 MQL5 是一个有限的工具,但实际原因是他们尚未具备所需的知识。所以,如果您有啥不知道,不要为此感到羞愧。最好是因为不去请教而感到羞愧。简单地强制 MetaTrader 5 禁用指标重叠,并不能确保指标和智能系统之间的双向通信。我们离这个目标还很远,但指标在图表上没有重叠的事实给了我们一些信心。
preview
开发回放系统(第 43 部分):Chart Trade 项目(II)

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

大多数想要或梦想学习编程的人实际上并不知道自己在做什么。他们的活动包括试图以某种方式创造事物。然而,编程并不是为了定制合适的解决方案。这样做会产生更多的问题而不是解决方案。在这里,我们将做一些更高级、更与众不同的事情。
preview
构建蜡烛图趋势约束模型(第8部分):EA开发(II)

构建蜡烛图趋势约束模型(第8部分):EA开发(II)

构思一个独立的EA。之前,我们讨论了一个基于指标的EA,它还与一个独立脚本配合,用于绘制风险与收益图形。今天,我们将讨论一个整合了所有功能的MQL5 EA的架构。
preview
开发回放系统(第 57 部分):了解测试服务

开发回放系统(第 57 部分):了解测试服务

需要注意的一点是:虽然服务代码没有包含在本文中,只会在下一篇文章中提供,但我会解释一下,因为我们将使用相同的代码作为我们实际开发的跳板。因此,请保持专注和耐心。等待下一篇文章,因为每一天都变得更加有趣。
preview
开发回放系统(第 72 部分):异常通信(一)

开发回放系统(第 72 部分):异常通信(一)

我们今天创造的东西将很难理解。因此,在这篇文章中,我将只谈论初始阶段。请仔细阅读这篇文章,这是我们继续下一步的重要前提。本材料的目的纯粹是教学性的,因为我们只会学习和掌握所提出的概念,而没有实际应用。