有关MQL5策略测试的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
开发多币种 EA 交易(第 24 部分):添加新策略(一)

开发多币种 EA 交易(第 24 部分):添加新策略(一)

在本文中,我们将研究如何将新策略连接到我们创建的自动优化系统。让我们看看我们需要创建哪些类型的 EA,以及是否可以在不更改 EA 库文件的情况下完成,或者尽量减少必要的更改。
preview
使用MQL5经济日历进行交易(第七部分):基于资源型新闻事件分析的策略测试准备

使用MQL5经济日历进行交易(第七部分):基于资源型新闻事件分析的策略测试准备

在本文中,我们通过将经济日历数据作为非实盘分析资源嵌入到MQL5交易系统中,为策略测试做好准备。我们实现了按时间、货币和影响程度加载和筛选事件的功能,并在策略测试器中验证其有效性。这使得基于新闻事件的策略能够进行高效的回测。
preview
从新手到专家:对K线进行编程

从新手到专家:对K线进行编程

在本文中,我们将迈出 MQL5 编程的第一步,即使是完全零基础的初学者也能上手。我们将向您展示,如何将熟悉的 K线形态 转换为一个功能完备的自定义指标。K线形态之所以有价值,是因为它们反映了真实的价格行为,并预示着市场的转变。与其手动扫描图表——这种方法容易出错且效率低下——我们将讨论如何通过一个指标来自动化这个过程,该指标会自动识别并标记出这些形态。在此过程中,我们将探讨一些关键概念,例如索引、时间序列、平均真实波幅(用于在多变的市场波动性中提高准确性),以及如何开发一个可自定义、可复用的 K线形态库,以便在未来的项目中使用。
preview
开发多币种 EA 交易(第 23 部分):整理自动项目优化阶段的输送机(二)

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

我们的目标是创建一个系统,用于自动定期优化最终 EA 中使用的交易策略。随着系统的发展,它变得越来越复杂,因此有必要不时地将其视为一个整体,以确定瓶颈和次优解决方案。
preview
开发多币种 EA 交易(第 22 部分):开始向设置的热插拔过渡

开发多币种 EA 交易(第 22 部分):开始向设置的热插拔过渡

如果要自动进行周期性优化,我们需要考虑自动更新交易账户上已经运行的 EA 设置。这样一来,我们就可以在策略测试器中运行 EA,并在单次运行中更改其设置。
preview
混沌博弈优化(CGO)

混沌博弈优化(CGO)

本文提出了一种新型元启发式算法——混沌博弈优化算法(CGO),该算法在处理高维问题时展现出独特的保持高效率的能力。与大多数优化算法不同,CGO在问题规模扩大时不仅不会降低性能,有时甚至还会提升性能,这便是其关键特性。
preview
市场模拟(第七部分):套接字(一)

市场模拟(第七部分):套接字(一)

套接字,你知道它们在 MetaTrader 5 中的用途或使用方法吗?如果答案是否定的,那么让我们从研究它们开始。在今天的文章中,我们将介绍一些基础知识。由于有几种方法可以做同样的事情,而且我们总是对结果感兴趣,我想证明确实有一种简单的方法可以将数据从 MetaTrader 5 传输到其他程序,如 Excel。然而,主要目的不是将数据从 MetaTrader 5 传输到 Excel,而是相反,即将数据从 Excel 或任何其他程序传输到 MetaTrader 5。
preview
创建动态多货币对EA(第二部分):投资组合多元化与优化

创建动态多货币对EA(第二部分):投资组合多元化与优化

投资组合多元化与优化旨在将投资有策略地分散配置于多种资产之上,在最小化风险的同时,依据风险调整后的绩效指标挑选出最理想的资产组合,从而实现回报最大化。
preview
市场模拟(第六部分):将信息从 MetaTrader 5 传输到 Excel

市场模拟(第六部分):将信息从 MetaTrader 5 传输到 Excel

许多人,尤其是非程序员,发现在 MetaTrader 5 和其他程序之间传输信息非常困难。其中一个程序就是 Excel。许多人使用 Excel 作为管理和维护风险控制的一种方式。这是一个优秀的程序,易于学习,即使对于那些不是 VBA 程序员的人来说也是如此。在这里,我们将看看如何在 MetaTrader 5 和 Excel 之间建立连接(一种非常简单的方法)。
preview
让手动回测变得简单:为MQL5策略测试器构建自定义工具包

让手动回测变得简单:为MQL5策略测试器构建自定义工具包

在本文中,我们设计了一个自定义的MQL5工具包,用于在策略测试器中轻松进行手动回测。我们将解释其设计与实现方案,重点介绍交互式交易控制功能。然后,我们将展示如何使用它来有效地测试交易策略。
preview
市场模拟(第五部分):创建 C_Orders 类(二)

市场模拟(第五部分):创建 C_Orders 类(二)

在本文中,我将解释 Chart Trade 如何与 EA 交易一起处理平仓请求,以关闭用户的所有未平仓头寸。这听起来简单,但你需要知道如何应对一些复杂情况。
preview
优化中自定义准则的新方法(第一部分):激活函数示例

优化中自定义准则的新方法(第一部分):激活函数示例

本系列文章首篇将探讨自定义准则的数学原理,重点聚焦神经网络中使用的非线性函数、MQL5实现代码,以及目标导向与校正偏移量的应用。
preview
血液遗传优化算法(BIO)

血液遗传优化算法(BIO)

我向大家介绍我的新种群优化算法——血液遗传优化算法(Blood Inheritance Optimization,BIO),该算法的灵感源自人类血型遗传系统。在该算法中,每个解都有其自身的“血型”,这一血型决定了其进化方式。正如自然界中,孩子的血型是依据特定规则遗传而来,在BIO算法中,新解通过一套遗传与变异机制来获取自身特性。
preview
圆搜索算法(CSA)

圆搜索算法(CSA)

本文提出一种基于圆几何特性的新型元启发式优化算法——圆搜索算法(CSA)。该算法通过模拟切线方向上的点移动机制,在解空间中实现全局探索与局部开发的协同优化。
preview
智能系统健壮性测试

智能系统健壮性测试

在策略开发中,有许多错综复杂的细节需要考虑,对于初学交易者其中许多都未予重视。如是结果,众多交易者,包括我自己,都不得不历经苦难来学习这些教训。本文基于我观察到的大多数初学交易者在 MQL5 上开发策略时常见的陷阱。它将提供一系列提示、技巧、和示例,帮助辨别不合格的 EA,并以一种易于实现的方式来测试我们自己 EA 的稳健性。目标是教导读者,帮助他们未来购买 EA 时避免遭遇骗局,以及预防他们自己开发策略时的错误。
preview
MQL5中的高级内存管理与优化技术

MQL5中的高级内存管理与优化技术

探索在MQL5交易系统中优化内存使用的实用技巧。学习构建高效、稳定且运行速度快的智能交易系统(EA)和指标。我们将深入探究MQL5中内存的实际运作方式、致使系统运行变慢或出现故障的常见陷阱,以及——最为关键的是——如何解决这些问题。
preview
开发多币种 EA 交易(第 21 部分):准备重要实验并优化代码

开发多币种 EA 交易(第 21 部分):准备重要实验并优化代码

为了取得进一步的进展,最好看看我们是否可以通过定期重新运行自动优化并生成新的 EA 来改进结果。关于使用参数优化的许多争论中的绊脚石是,在将盈利能力和回撤保持在指定水平的同时,所获得的参数在未来一段时间内可用于交易的时间有多长。有可能做到这一点吗?
preview
市场模拟(第三部分):性能问题

市场模拟(第三部分):性能问题

我们经常需要后退一步,然后继续前进。在本文中,我们将展示所有必要的更改,以确保鼠标和 Chart Trade 指标不会中断。作为奖励,我们还将介绍未来将广泛使用的其他头文件中发生的其他更改。
preview
市场模拟(第二部分):跨期订单(二)

市场模拟(第二部分):跨期订单(二)

与上一篇文章中所做的不同,这里我们将使用 EA 交易来测试选择选项。虽然这还不是最终的解决方案,但目前已经足够了。在本文的帮助下,您将能够理解如何实现一种可能的解决方案。
preview
市场模拟(第一部分):跨期订单(一)

市场模拟(第一部分):跨期订单(一)

今天我们将开始第二阶段,研究市场回放/模拟系统。首先,我们将展示跨期订单的可能解决方案。我会向你展示解决方案,但它还不是最终的。这将是我们在不久的将来需要解决的一个问题的可能解决方案。
preview
循环孤雌生殖算法(CPA)

循环孤雌生殖算法(CPA)

本文提出了一种新的群体优化算法——循环孤雌生殖算法(CPA),其灵感源自蚜虫独特的生殖策略。该算法融合了两种生殖机制:孤雌生殖(无性繁殖)与有性生殖,并借助蚜虫的群体结构以及群体间的迁徙能力。算法的核心特点包括:在不同生殖策略之间自适应切换和通过“迁飞”机制实现群体间的信息交换。
preview
开发多币种 EA 交易(第 20 部分):整理自动项目优化阶段的输送机(一)

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

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

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

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

开发回放系统(第 74 部分):新 Chart Trade(一)

在本文中,我们将修改本系列关于 Chart Trade 中显示的最后一段代码。这些变化对于使代码适应当前的回放/模拟系统模型是必要的。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
开发回放系统(第 73 部分):不寻常的通信(二)

开发回放系统(第 73 部分):不寻常的通信(二)

在本文中,我们将探讨如何在指标和服务之间实时传输信息,并了解为什么在更改时间框架时可能会出现问题以及如何解决这些问题。作为奖励,您将可以访问回放/模拟应用程序的最新版本。
preview
开发回放系统(第 72 部分):异常通信(一)

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

我们今天创造的东西将很难理解。因此,在这篇文章中,我将只谈论初始阶段。请仔细阅读这篇文章,这是我们继续下一步的重要前提。本材料的目的纯粹是教学性的,因为我们只会学习和掌握所提出的概念,而没有实际应用。
preview
构建K线趋势约束模型(第十部分):战略均线金叉与死叉(智能交易系统EA)

构建K线趋势约束模型(第十部分):战略均线金叉与死叉(智能交易系统EA)

您是否知道,基于移动平均线交叉的金叉和死叉策略,是识别长期市场趋势最为可靠的指标之一?当短期移动平均线上穿长期移动平均线时,金叉发出看涨趋势信号;而当短期移动平均线下穿长期移动平均线时,死叉则表明看跌趋势。尽管这些策略简单且有效,但手动运用时往往会导致错失机会或延迟交易。
preview
开发多币种 EA 交易(第 19 部分):创建用 Python 实现的阶段

开发多币种 EA 交易(第 19 部分):创建用 Python 实现的阶段

到目前为止,我们已经探讨了仅在标准策略测试器中启动顺序程序以优化 EA 的自动化。但是,如果我们想在两次启动之间使用其他方法对获得的数据进行一些处理呢?我们将尝试添加创建由用 Python 编写的程序执行的新优化阶段的功能。
preview
开发回放系统(第 71 部分):取得正确的时间(四)

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

在本文中,我们将研究如何实现上一篇文章中所示的与回放/模拟服务相关的内容。就像生活中的许多其他事情一样,问题必然会出现。这次的情况也不例外。在这篇文章中,我们将继续改进。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
开发回放系统(第 70 部分):取得正确的时间(三)

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

在本文中,我们将了解如何正确有效地使用 CustomBookAdd 函数。尽管它看起来很简单,但它有许多细微差别。例如,它允许您告诉鼠标指标自定义交易品种是否正在竞价、交易或市场是否关闭。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
在Python中使用Numba对交易策略进行快速测试

在Python中使用Numba对交易策略进行快速测试

本文实现了一个快速策略测试器,它使用Numba对机器学习模型进行快速策略测试。它的速度比纯 Python 策略回测器快 50 倍。作者推荐使用该库来加速数学计算,尤其是那些涉及循环的计算。
preview
开发回放系统(第 69 部分):取得正确的时间(二)

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

今天我们将看看为什么我们需要 iSpread 功能。同时,我们将了解当没有可用的分时报价时,系统如何通知我们柱形的剩余时间。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
原子轨道搜索(AOS)算法

原子轨道搜索(AOS)算法

本文探讨了原子轨道搜索(Atomic Orbital Search,AOS)算法,该算法运用原子轨道模型的概念来模拟解的搜索过程。此算法基于概率分布以及原子内相互作用的动力学原理。本文详细阐述了关于AOS算法的数学层面,包括候选解位置的更新方式,以及能量吸收与释放的机制。AOS算法通过为计算问题提供一种创新的优化方法,为将量子原理应用于计算问题开辟了新思路。
preview
周期与交易

周期与交易

本文将探讨如何在交易中运用周期理论。我们将考虑基于周期模型构建交易策略。
preview
算术优化算法(AOA):从AOA到SOA(简单优化算法)

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

在本文中,我们介绍了基于简单算术运算(加法、减法、乘法和除法)的算术优化算法(AOA)。这些基本的数学运算是为各种问题寻找最优解的基础。
preview
您应当知道的 MQL5 向导技术(第 44 部分):平均真实范围(ATR)技术指标

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

ATR 振荡指标是一款非常流行的指标,权当波动率代表,尤其是在交易量数据稀缺的外汇市场当中。我们以形态为基础来验证这一点,就如我们对先前指标所做那样,并分享策略和测试报告,致谢 MQL5 向导库的类和汇编。
preview
人工喷淋算法(ASHA)

人工喷淋算法(ASHA)

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

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

今天,我们将继续努力,让鼠标指针告诉我们在流动性较低期间,一根柱形上还剩下多少时间。尽管乍一看似乎很简单,但实际上这项任务要困难得多。这涉及一些我们必须克服的障碍。因此,为了理解以下部分,您必须很好地理解子系列第一部分的材料。
preview
原子轨道搜索(AOS)算法:改进与拓展

原子轨道搜索(AOS)算法:改进与拓展

在本文的第二部分,我们将继续开发一种改进版的原子轨道搜索(AOS)算法,重点聚焦于特定操作符的优化设计,以提升算法的效率和适应性。在分析了该算法的基本原理和运行机制之后,我们将探讨提升其性能以及分析复杂解空间能力的方法,并提出新的思路以扩展其作为优化工具的功能。
preview
开发回放系统(第 67 部分):完善控制指标

开发回放系统(第 67 部分):完善控制指标

在本文中,我们将看看通过一点代码改进可以实现什么。这一改进旨在简化我们的代码,更多地使用 MQL5 库调用,最重要的是,使其在我们未来可能开发的其他项目中更加稳定、安全和易于使用。