种群优化算法:模拟退火(SA)。第 1 部分
模拟退火算法是受到金属退火工艺启发的一种元启发式算法。在本文中,我们将对算法进行全面分析,并揭示围绕这种广为人知的优化方法的一些常见信仰和神话。本文的第二部分将研究自定义模拟各向同性退火(SIA)算法。
开发回放系统(第 36 部分):进行调整(二)
让我们的程序员生活举步维艰的原因之一就是做出假设。在本文中,我将向您展示假设是多么危险:例如在 MQL5 编程中假设类型将具有某个特定值,或是在 MetaTrader 5 中假设不同服务器的工作方式相同。
MQL5中的高级内存管理与优化技术
探索在MQL5交易系统中优化内存使用的实用技巧。学习构建高效、稳定且运行速度快的智能交易系统(EA)和指标。我们将深入探究MQL5中内存的实际运作方式、致使系统运行变慢或出现故障的常见陷阱,以及——最为关键的是——如何解决这些问题。
开发回放系统(第 57 部分):了解测试服务
需要注意的一点是:虽然服务代码没有包含在本文中,只会在下一篇文章中提供,但我会解释一下,因为我们将使用相同的代码作为我们实际开发的跳板。因此,请保持专注和耐心。等待下一篇文章,因为每一天都变得更加有趣。
基于人工生态系统的优化(AEO)算法
本文探讨了一种元启发式算法——基于人工生态系统的优化(Artificial Ecosystem-based Optimization, AEO)算法。该算法通过生成初始解种群并应用自适应更新策略,模拟生态系统各组成部分之间的相互作用。文中详细阐述了AEO算法的运行阶段,包括消耗阶段与分解阶段,以及不同智能体的行为策略。文章还介绍了该算法的特点和优势。
开发回放系统(第 72 部分):异常通信(一)
我们今天创造的东西将很难理解。因此,在这篇文章中,我将只谈论初始阶段。请仔细阅读这篇文章,这是我们继续下一步的重要前提。本材料的目的纯粹是教学性的,因为我们只会学习和掌握所提出的概念,而没有实际应用。
开发回放系统(第 38 部分):铺路(II)
许多认为自己是 MQL5 程序员的人,其实并不具备我在本文中将要概述的基础知识。许多人认为 MQL5 是一个有限的工具,但实际原因是他们尚未具备所需的知识。所以,如果您有啥不知道,不要为此感到羞愧。最好是因为不去请教而感到羞愧。简单地强制 MetaTrader 5 禁用指标重叠,并不能确保指标和智能系统之间的双向通信。我们离这个目标还很远,但指标在图表上没有重叠的事实给了我们一些信心。
智能系统健壮性测试
在策略开发中,有许多错综复杂的细节需要考虑,对于初学交易者其中许多都未予重视。如是结果,众多交易者,包括我自己,都不得不历经苦难来学习这些教训。本文基于我观察到的大多数初学交易者在 MQL5 上开发策略时常见的陷阱。它将提供一系列提示、技巧、和示例,帮助辨别不合格的 EA,并以一种易于实现的方式来测试我们自己 EA 的稳健性。目标是教导读者,帮助他们未来购买 EA 时避免遭遇骗局,以及预防他们自己开发策略时的错误。
开发回放系统(第 43 部分):Chart Trade 项目(II)
大多数想要或梦想学习编程的人实际上并不知道自己在做什么。他们的活动包括试图以某种方式创造事物。然而,编程并不是为了定制合适的解决方案。这样做会产生更多的问题而不是解决方案。在这里,我们将做一些更高级、更与众不同的事情。
开发回放系统(第 68 部分):取得正确的时间(一)
今天,我们将继续努力,让鼠标指针告诉我们在流动性较低期间,一根柱形上还剩下多少时间。尽管乍一看似乎很简单,但实际上这项任务要困难得多。这涉及一些我们必须克服的障碍。因此,为了理解以下部分,您必须很好地理解子系列第一部分的材料。
开发回放系统(第 69 部分):取得正确的时间(二)
今天我们将看看为什么我们需要 iSpread 功能。同时,我们将了解当没有可用的分时报价时,系统如何通知我们柱形的剩余时间。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
自适应社会行为优化(ASBO):Schwefel函数与Box-Muller方法
本文深入探讨了生物体的社会行为及其对新型数学模型——自适应社会行为优化(ASBO)创建的影响,为我们呈现了一个引人入胜的世界。我们将研究生物社会中观察到的领导、近邻和合作原则如何激发创新优化算法的开发。
ALGLIB 库优化方法(第二部分)
在本文中,我们将继续研究ALGLIB库中剩余的优化方法,并特别关注它们在复杂多维函数上的测试表现。这样我们不仅能够评估每种算法的效率,还能在不同条件下比较出它们的优势与不足。
细菌趋化优化(BCO)
本文介绍了细菌趋化优化(Bacterial Chemotaxis Optimization,简称 BCO)算法的原始版本及其改进版本。我们将详细探讨所有不同之处,特别关注 BCOm 的新版本,该版本简化了细菌的移动机制,减少了对位置历史的依赖,并且使用了比原始版本计算量更小的数学方法。我们还将进行测试并总结结果。
开发回放系统(第 51 部分):事情变得复杂(三)
在本文中,我们将研究 MQL5 编程领域最困难的问题之一:如何正确获取图表 ID,以及为什么对象有时不会绘制在图表上。此处提供的材料仅用于教学目的,在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
开发回放系统(第 61 部分):玩转服务(二)
在本文中,我们将研究使回放/模拟系统更高效、更安全地运行的修改。我也不会对那些想要充分利用这些类的人置之不理。此外,我们将探讨 MQL5 中的一个特定问题,即在使用类时降低代码性能,并解释如何解决它。
您应当知道的 MQL5 向导技术(第 18 部分):配合本征向量进行神经架构搜索
神经架构搜素,是一种判定理想神经网络设置的自动化方式,在面对许多选项和大型测试数据集时可能是一个加分项。我们试验了当本征向量搭配时,如何令这个过程更加高效。
开发回放系统(第 50 部分):事情变得复杂 (二)
我们将解决图表 ID 问题,同时开始为用户提供使用个人模板对所需资产进行分析和模拟的能力。此处提供的材料仅用于教学目的,不应被视为除学习和掌握所提供概念以外的任何目的的应用。
您应当知道的 MQL5 向导技术(第 14 部分):以 STF 进行多意向时间序列预测
“时空融合”就是在数据建模中同时使用“空间”和“时间”度量值,主要用在遥感,和一系列其它基于视觉的活动,以便更好地了解我们的周边环境。归功于一篇已发表的论文,我们通过验证它对交易者的潜力,采取一种新颖的方式来运用它。
开发回放系统(第 65 部分):玩转服务(六)
在本文中,我们将研究如何在与回放/模拟应用程序结合使用时实现和解决鼠标指针问题。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
大气云模型优化(ACMO):实战
在本文中,我们将继续深入研究大气云模型优化(ACMO)算法的实现。特别是,我们将讨论两个关键方面:云向低压区域的移动以及降雨模拟,包括液滴的初始化及其在云中的分布。我们还将研究其他在管理云的状态以及确保它们与环境相互作用方面发挥重要作用的方法。
开发回放系统(第 47 部分):Chart Trade 项目(六)
最后,我们的 Chart Trade 指标开始与 EA 互动,以交互方式传输信息。因此,在本文中,我们将对该指标进行改进,使其功能足以与任何 EA 配合使用。这样,我们就可以访问 Chart Trade 指标,并像实际连接 EA 一样使用它。不过,我们将以比以前更有趣的方式来实现这一目标。
开发回放系统(第 66 部分):玩转服务(七)
在本文中,我们将实现第一个解决方案,该解决方案使我们能够确定何时在图表上出现新的柱形。此解决方案适用于各种情况。了解它的发展将有助于你掌握几个重要方面。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
人工协作搜索算法 (ACS)
人工协作搜索算法ACS (Artificial Cooperative Search) 是一种创新方法,它利用二进制矩阵和基于互利共生与合作的多个动态种群来快速准确地找到最优解。ACS在捕食者与猎物问题上的独特处理方法使其能够在数值优化问题中取得卓越成果。
在Python中使用Numba对交易策略进行快速测试
本文实现了一个快速策略测试器,它使用Numba对机器学习模型进行快速策略测试。它的速度比纯 Python 策略回测器快 50 倍。作者推荐使用该库来加速数学计算,尤其是那些涉及循环的计算。
开发回放系统(第 42 部分):图表交易项目(I)
我们来创建一些更有趣的东西。我不想毁掉惊喜,故此紧随本文以便更好地理解。自本系列开发回放/模拟器系统的最开始,我就一直说,我们的意图是按相同的方式使用 MetaTrader 5 平台,无论正在开发的系统中,亦或真实市场中。重点是要正确完成。没有人愿意在训练和学习时用一种工具,而在战斗时不得不换另一种工具。
您应当知道的 MQL5 向导技术(第 23 部分):CNNs
卷积神经网络是另一种机器学习算法,倾向于专门将多维数据集分解为关键组成部分。我们看看典型情况下这是如何达成的,并探索为交易者在其它 MQL5 向导信号类中的可能应用。
开发回放系统(第 34 部分):订单系统 (三)
在本文中,我们将完成构建的第一阶段。虽然这部分内容很快就能完成,但我将介绍之前没有讨论过的细节。我将解释一些许多人不理解的问题。你知道为什么要按 Shift 或 Ctrl 键吗?
开发回放系统(第 64 部分):玩转服务(五)
在本文中,我们将介绍如何修复代码中的两个错误。然而,我将尝试以一种有助于初学者程序员理解事情并不总是如你所愿的方式解释它们。无论如何,这是一个学习的机会。此处提供的内容仅用于教育目的。本应用程序不应被视为最终文件,其目的除了探讨所提出的概念之外,不应有任何其它用途。
开发回放系统(第 67 部分):完善控制指标
在本文中,我们将看看通过一点代码改进可以实现什么。这一改进旨在简化我们的代码,更多地使用 MQL5 库调用,最重要的是,使其在我们未来可能开发的其他项目中更加稳定、安全和易于使用。
开发回放系统(第 73 部分):不寻常的通信(二)
在本文中,我们将探讨如何在指标和服务之间实时传输信息,并了解为什么在更改时间框架时可能会出现问题以及如何解决这些问题。作为奖励,您将可以访问回放/模拟应用程序的最新版本。
循环孤雌生殖算法(CPA)
本文提出了一种新的群体优化算法——循环孤雌生殖算法(CPA),其灵感源自蚜虫独特的生殖策略。该算法融合了两种生殖机制:孤雌生殖(无性繁殖)与有性生殖,并借助蚜虫的群体结构以及群体间的迁徙能力。算法的核心特点包括:在不同生殖策略之间自适应切换和通过“迁飞”机制实现群体间的信息交换。
群体算法的基类作为高效优化的支柱
该文章代表了一种独特的研究尝试,旨在将多种群体算法组合成一个类,以简化优化方法的应用。这种方法不仅为开发新算法(包括混合变体)开辟了机会,而且还创建了一个通用的基本测试平台。它成为根据特定任务选择最佳算法的关键工具。
非洲水牛优化(ABO)
本文介绍了非洲水牛优化(ABO)算法,这是一种于2015年开发的元启发式方法,基于这些动物的独特行为。文章详细描述了算法实现的各个阶段及其在解决复杂问题时的效率,这使得它成为优化领域中一个有价值的工具。
市场模拟(第五部分):创建 C_Orders 类(二)
在本文中,我将解释 Chart Trade 如何与 EA 交易一起处理平仓请求,以关闭用户的所有未平仓头寸。这听起来简单,但你需要知道如何应对一些复杂情况。