有关MQL5策略测试的文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
种群优化算法:模拟退火(SA)。第 1 部分

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

模拟退火算法是受到金属退火工艺启发的一种元启发式算法。在本文中,我们将对算法进行全面分析,并揭示围绕这种广为人知的优化方法的一些常见信仰和神话。本文的第二部分将研究自定义模拟各向同性退火(SIA)算法。
preview
开发回放系统(第 39 部分):铺平道路(三)

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

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

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

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

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

在本文中,我们将把问题复杂化。通过前面文章中展示的内容,我们将开始打开模板文件,以便用户可以使用自己的模板。不过,我将逐步进行修改,因为我还将改进指标,以减少 MetaTrader 5 的负载。
preview
自适应社会行为优化(ASBO):Schwefel函数与Box-Muller方法

自适应社会行为优化(ASBO):Schwefel函数与Box-Muller方法

本文深入探讨了生物体的社会行为及其对新型数学模型——自适应社会行为优化(ASBO)创建的影响,为我们呈现了一个引人入胜的世界。我们将研究生物社会中观察到的领导、近邻和合作原则如何激发创新优化算法的开发。
preview
细菌趋化优化(BCO)

细菌趋化优化(BCO)

本文介绍了细菌趋化优化(Bacterial Chemotaxis Optimization,简称 BCO)算法的原始版本及其改进版本。我们将详细探讨所有不同之处,特别关注 BCOm 的新版本,该版本简化了细菌的移动机制,减少了对位置历史的依赖,并且使用了比原始版本计算量更小的数学方法。我们还将进行测试并总结结果。
preview
开发回放系统(第 69 部分):取得正确的时间(二)

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

今天我们将看看为什么我们需要 iSpread 功能。同时,我们将了解当没有可用的分时报价时,系统如何通知我们柱形的剩余时间。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
您应当知道的 MQL5 向导技术(第 12 部分):牛顿多项式

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

牛顿多项式,其依据一组少量点创建二次方程,是一种古老但有趣的时间序列观察方式。在本文中,我们尝试探讨这种方式在哪些方面对交易者有用,并解决其局限性。
preview
开发回放系统(第 35 部分):进行调整 (一)

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

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

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

我们今天创造的东西将很难理解。因此,在这篇文章中,我将只谈论初始阶段。请仔细阅读这篇文章,这是我们继续下一步的重要前提。本材料的目的纯粹是教学性的,因为我们只会学习和掌握所提出的概念,而没有实际应用。
preview
开发回放系统(第 36 部分):进行调整(二)

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

让我们的程序员生活举步维艰的原因之一就是做出假设。在本文中,我将向您展示假设是多么危险:例如在 MQL5 编程中假设类型将具有某个特定值,或是在 MetaTrader 5 中假设不同服务器的工作方式相同。
preview
非洲水牛优化(ABO)

非洲水牛优化(ABO)

本文介绍了非洲水牛优化(ABO)算法,这是一种于2015年开发的元启发式方法,基于这些动物的独特行为。文章详细描述了算法实现的各个阶段及其在解决复杂问题时的效率,这使得它成为优化领域中一个有价值的工具。
preview
开发回放系统(第 52 部分):事情变得复杂(四)

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

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

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

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

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

今天,我们将继续努力,让鼠标指针告诉我们在流动性较低期间,一根柱形上还剩下多少时间。尽管乍一看似乎很简单,但实际上这项任务要困难得多。这涉及一些我们必须克服的障碍。因此,为了理解以下部分,您必须很好地理解子系列第一部分的材料。
preview
开发回放系统(第 50 部分):事情变得复杂 (二)

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

我们将解决图表 ID 问题,同时开始为用户提供使用个人模板对所需资产进行分析和模拟的能力。此处提供的材料仅用于教学目的,不应被视为除学习和掌握所提供概念以外的任何目的的应用。
preview
大气云模型优化(ACMO):实战

大气云模型优化(ACMO):实战

在本文中,我们将继续深入研究大气云模型优化(ACMO)算法的实现。特别是,我们将讨论两个关键方面:云向低压区域的移动以及降雨模拟,包括液滴的初始化及其在云中的分布。我们还将研究其他在管理云的状态以及确保它们与环境相互作用方面发挥重要作用的方法。
preview
开发回放系统(第 57 部分):了解测试服务

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

需要注意的一点是:虽然服务代码没有包含在本文中,只会在下一篇文章中提供,但我会解释一下,因为我们将使用相同的代码作为我们实际开发的跳板。因此,请保持专注和耐心。等待下一篇文章,因为每一天都变得更加有趣。
preview
神经Boid优化算法2(NOA2)

神经Boid优化算法2(NOA2)

新型专有优化算法NOA2融合了种群智能原理与神经控制机制。NOA2将神经Boid的运动机制与自适应神经系统结合,使智能体在搜索最优解的过程中能够自我修正其行为。该算法目前正处于积极开发阶段,展现出对于解决复杂优化问题的潜力。
preview
开发回放系统(第 62 部分):玩转服务(三)

开发回放系统(第 62 部分):玩转服务(三)

在本文中,我们将开始解决在使用真实数据时可能影响应用程序性能的分时报价过量问题。这种过量通常会干扰在相应窗口构建一分钟柱形所需的正确时间。
preview
通过原始代码优化和调整来改进回测结果

通过原始代码优化和调整来改进回测结果

通过优化逻辑、细化计算和减少执行时间来提高回测精度,从而增强 MQL5 代码。微调参数,优化循环,消除低效,以获得更好的性能。
preview
人工协作搜索算法 (ACS)

人工协作搜索算法 (ACS)

人工协作搜索算法ACS (Artificial Cooperative Search) 是一种创新方法,它利用二进制矩阵和基于互利共生与合作的多个动态种群来快速准确地找到最优解。ACS在捕食者与猎物问题上的独特处理方法使其能够在数值优化问题中取得卓越成果。
preview
开发回放系统(第 43 部分):Chart Trade 项目(II)

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

大多数想要或梦想学习编程的人实际上并不知道自己在做什么。他们的活动包括试图以某种方式创造事物。然而,编程并不是为了定制合适的解决方案。这样做会产生更多的问题而不是解决方案。在这里,我们将做一些更高级、更与众不同的事情。
preview
开发回放系统(第 48 部分):了解服务的概念

开发回放系统(第 48 部分):了解服务的概念

学习些新知识怎么样?在本文中,您将了解如何将脚本转换为服务,以及为什么这样做很有用。
preview
开发回放系统(第 51 部分):事情变得复杂(三)

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

在本文中,我们将研究 MQL5 编程领域最困难的问题之一:如何正确获取图表 ID,以及为什么对象有时不会绘制在图表上。此处提供的材料仅用于教学目的,在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
您应当知道的 MQL5 向导技术(第 14 部分):以 STF 进行多意向时间序列预测

您应当知道的 MQL5 向导技术(第 14 部分):以 STF 进行多意向时间序列预测

“时空融合”就是在数据建模中同时使用“空间”和“时间”度量值,主要用在遥感,和一系列其它基于视觉的活动,以便更好地了解我们的周边环境。归功于一篇已发表的论文,我们通过验证它对交易者的潜力,采取一种新颖的方式来运用它。
preview
在Python中使用Numba对交易策略进行快速测试

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

本文实现了一个快速策略测试器,它使用Numba对机器学习模型进行快速策略测试。它的速度比纯 Python 策略回测器快 50 倍。作者推荐使用该库来加速数学计算,尤其是那些涉及循环的计算。
preview
ALGLIB 库优化方法(第二部分)

ALGLIB 库优化方法(第二部分)

在本文中,我们将继续研究ALGLIB库中剩余的优化方法,并特别关注它们在复杂多维函数上的测试表现。这样我们不仅能够评估每种算法的效率,还能在不同条件下比较出它们的优势与不足。
preview
循环孤雌生殖算法(CPA)

循环孤雌生殖算法(CPA)

本文提出了一种新的群体优化算法——循环孤雌生殖算法(CPA),其灵感源自蚜虫独特的生殖策略。该算法融合了两种生殖机制:孤雌生殖(无性繁殖)与有性生殖,并借助蚜虫的群体结构以及群体间的迁徙能力。算法的核心特点包括:在不同生殖策略之间自适应切换和通过“迁飞”机制实现群体间的信息交换。
preview
您应当知道的 MQL5 向导技术(第 23 部分):CNNs

您应当知道的 MQL5 向导技术(第 23 部分):CNNs

卷积神经网络是另一种机器学习算法,倾向于专门将多维数据集分解为关键组成部分。我们看看典型情况下这是如何达成的,并探索为交易者在其它 MQL5 向导信号类中的可能应用。
preview
开发回放系统(第 54 部分):第一个模块的诞生

开发回放系统(第 54 部分):第一个模块的诞生

在本文中,我们将探讨如何将多个真正功能模块中的第一个组合在一起,用于回放/模拟器系统,这些模块也将用于其他用途。我们现在说的是鼠标模块。
preview
开发回放系统(第 61 部分):玩转服务(二)

开发回放系统(第 61 部分):玩转服务(二)

在本文中,我们将研究使回放/模拟系统更高效、更安全地运行的修改。我也不会对那些想要充分利用这些类的人置之不理。此外,我们将探讨 MQL5 中的一个特定问题,即在使用类时降低代码性能,并解释如何解决它。
preview
开发回放系统(第 66 部分):玩转服务(七)

开发回放系统(第 66 部分):玩转服务(七)

在本文中,我们将实现第一个解决方案,该解决方案使我们能够确定何时在图表上出现新的柱形。此解决方案适用于各种情况。了解它的发展将有助于你掌握几个重要方面。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
开发回放系统(第 65 部分):玩转服务(六)

开发回放系统(第 65 部分):玩转服务(六)

在本文中,我们将研究如何在与回放/模拟应用程序结合使用时实现和解决鼠标指针问题。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
开发回放系统(第 73 部分):不寻常的通信(二)

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

在本文中,我们将探讨如何在指标和服务之间实时传输信息,并了解为什么在更改时间框架时可能会出现问题以及如何解决这些问题。作为奖励,您将可以访问回放/模拟应用程序的最新版本。
preview
群体算法的混合 -顺序结构和并行结构

群体算法的混合 -顺序结构和并行结构

在这里,我们将深入探讨优化算法混合的三个主要类型:策略混合、顺序混合和并行混合。我们将结合并测试相关的优化算法进行一系列实验。
preview
开发回放系统(第 47 部分):Chart Trade 项目(六)

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

最后,我们的 Chart Trade 指标开始与 EA 互动,以交互方式传输信息。因此,在本文中,我们将对该指标进行改进,使其功能足以与任何 EA 配合使用。这样,我们就可以访问 Chart Trade 指标,并像实际连接 EA 一样使用它。不过,我们将以比以前更有趣的方式来实现这一目标。
preview
开发回放系统(第 64 部分):玩转服务(五)

开发回放系统(第 64 部分):玩转服务(五)

在本文中,我们将介绍如何修复代码中的两个错误。然而,我将尝试以一种有助于初学者程序员理解事情并不总是如你所愿的方式解释它们。无论如何,这是一个学习的机会。此处提供的内容仅用于教育目的。本应用程序不应被视为最终文件,其目的除了探讨所提出的概念之外,不应有任何其它用途。
preview
市场模拟(第六部分):将信息从 MetaTrader 5 传输到 Excel

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

许多人,尤其是非程序员,发现在 MetaTrader 5 和其他程序之间传输信息非常困难。其中一个程序就是 Excel。许多人使用 Excel 作为管理和维护风险控制的一种方式。这是一个优秀的程序,易于学习,即使对于那些不是 VBA 程序员的人来说也是如此。在这里,我们将看看如何在 MetaTrader 5 和 Excel 之间建立连接(一种非常简单的方法)。
preview
市场模拟(第五部分):创建 C_Orders 类(二)

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

在本文中,我将解释 Chart Trade 如何与 EA 交易一起处理平仓请求,以关闭用户的所有未平仓头寸。这听起来简单,但你需要知道如何应对一些复杂情况。