智能系统健壮性测试
智能系统健壮性测试
在策略开发中,有许多错综复杂的细节需要考虑,对于初学交易者其中许多都未予重视。如是结果,众多交易者,包括我自己,都不得不历经苦难来学习这些教训。本文基于我观察到的大多数初学交易者在 MQL5 上开发策略时常见的陷阱。它将提供一系列提示、技巧、和示例,帮助辨别不合格的 EA,并以一种易于实现的方式来测试我们自己 EA 的稳健性。目标是教导读者,帮助他们未来购买 EA 时避免遭遇骗局,以及预防他们自己开发策略时的错误。
MQL5交易管理面板开发(第九部分):代码组织(4):交易管理面板类
MQL5交易管理面板开发(第九部分):代码组织(4):交易管理面板类
本文探讨我们在New_Admin_Panel智能交易系统(EA)中更新交易管理面板(TradeManagementPanel)。此次更新通过引入内置类组件,显著提升了面板的用户友好性,为交易者提供了直观的交易管理界面。其内置交易按钮,可一键开仓,并提供管理现有持仓与挂单的控制选项。核心亮点是集成的风险管理功能——可直接在界面内设置止损与止盈值。此次更新优化了大型程序的代码组织方式,并简化了对终端中常见繁杂订单管理工具的访问。
风险管理(第一部分):建立风险管理类的基础知识
风险管理(第一部分):建立风险管理类的基础知识
在本文中,我们将介绍交易风险管理的基础知识,并学习如何创建第一个函数来计算交易的适当手数以及止损。此外,我们将详细介绍这些功能的工作原理,解释每个步骤。我们的目标是清楚地了解如何在自动交易中应用这些概念。最后,我们将通过创建一个包含文件的简单脚本来将所有内容付诸实践。
从基础到中级:模板和类型名称(二)
从基础到中级:模板和类型名称(二)
本文解释了如何处理您可能遇到的最困难的编程情况之一:在同一个函数或过程模板中使用不同的类型。尽管我们大部分时间只关注函数,但这里介绍的所有内容都是有用的,并且可以应用于过程。
日内交易:拉里·康纳斯(Larry Connors)RSI2均值回归策略
日内交易:拉里·康纳斯(Larry Connors)RSI2均值回归策略
拉里·康纳斯(Larry Connors)是知名交易员与量化交易领域权威作家,其最著名的成果之一是2周期相对强弱指数(RSI2)策略。该指标通过捕捉短期超买超卖信号,辅助判断市场反转时机。在本文中,我们将首先阐述研究契机,随后在MQL5中复现康纳斯的三大经典策略,并应用于标普500指数差价合约(CFD)的日内交易场景。
在 MQL5 中构建自优化EA(第六部分):自适应交易规则(二)
在 MQL5 中构建自优化EA(第六部分):自适应交易规则(二)
本文探讨了如何优化 RSI 的水平和周期,以获得更好的交易信号。我们介绍了估算最优 RSI 值的方法,并使用网格搜索和统计模型来自动选择周期。最后,我们在 MQL5 中实现了该解决方案,同时利用 Python 进行分析。我们的方法力求务实和直接,旨在以简单的方式帮助您解决潜在复杂的问题。
MQL5 交易工具包(第 6 部分):使用最新成交的挂单函数扩展历史管理 EX5 库
MQL5 交易工具包(第 6 部分):使用最新成交的挂单函数扩展历史管理 EX5 库
了解如何创建可导出函数的 EX5 模块,无缝查询和保存最近填写的挂单数据。在本全面的分步指南中,我们将通过开发专用和分隔的函数来检索最后填写的挂单的基本属性,从而增强历史管理 EX5 库。这些属性包括订单类型、设置时间、执行时间、填充类型以及有效管理和分析挂单交易历史所需的其他关键细节。
时间演化旅行算法(TETA)
时间演化旅行算法(TETA)
这是我自己的算法。本文表阐述受平行宇宙和时间流概念启发的时间演化旅行算法(TETA)。该算法的基本思路是,尽管传统意义上的时间旅行是不可能的,但我们能够选择一系列事件来导致不同的现实。
市场模拟(第三部分):性能问题
市场模拟(第三部分):性能问题
我们经常需要后退一步,然后继续前进。在本文中,我们将展示所有必要的更改,以确保鼠标和 Chart Trade 指标不会中断。作为奖励,我们还将介绍未来将广泛使用的其他头文件中发生的其他更改。
卡尔曼滤波器在外汇均值回归策略中的应用
卡尔曼滤波器在外汇均值回归策略中的应用
卡尔曼滤波器是一种递归算法,在算法交易中用于通过滤除价格走势中的噪声来估计金融时间序列的真实状态。它能够根据新的市场数据动态更新预测,这使得它在均值回归等自适应策略中极具价值。本文首先介绍卡尔曼滤波器,涵盖其计算方法和实现方式。接下来,我们以外汇领域一个经典的均值回归策略为例,应用该滤波器。最后,我们通过将卡尔曼滤波器与移动平均线(MA)在外汇不同货币对上进行比较,开展各种统计分析。
使用Python和MQL5进行多品种分析(第三部分):三角汇率
使用Python和MQL5进行多品种分析(第三部分):三角汇率
交易者常常因虚假信号而面临资金回撤,而等待确认信号又可能导致错失交易机会。本文介绍了一种三角交易策略,该策略利用白银兑美元(XAGUSD)和白银兑欧元(XAGEUR)的价格,以及欧元兑美元(EURUSD)的汇率,来过滤市场噪音。通过利用跨市场关系,交易者可以揭示隐藏的市场情绪,并实时优化交易入场点。
在 MetaTrader 5 中交易的可视评估和调整
在 MetaTrader 5 中交易的可视评估和调整
策略测试器允许您所做的不光是优化交易机器人的参数。我将展示如何在事后评估您账户的交易历史,并通过在测试器中更改持仓的止损来调整您的交易。
在 MQL5 中构建自优化智能交易系统(第六部分):防止爆仓
在 MQL5 中构建自优化智能交易系统(第六部分):防止爆仓
在今天的讨论中,我们将一同寻找一种算法程序,以最大限度地减少我们因盈利交易被止损而平仓的总次数。我们面临的问题极具挑战性,社区讨论中给出的大多数解决方案都缺乏既定且固定的规则。我们解决问题的算法方法提高了我们交易的盈利能力,并降低了我们的平均每笔交易亏损。然而,要完全过滤掉所有将被止损的交易,还需要进一步的改进,但我们的解决方案对任何人来说都是一个很好的初步尝试
从基础到中级:重载
从基础到中级:重载
也许这篇文章对新手程序员来说是最令人困惑的。事实上,在这里我将证明,并非所有函数和过程在同一代码中都有唯一的名称。是的,我们可以很容易地使用同名函数和过程 —— 这被称为重载。
在 MQL5 中创建交易管理面板(第九部分):代码组织(二):模块化
在 MQL5 中创建交易管理面板(第九部分):代码组织(二):模块化
在本次讨论中,我们进一步将 MQL5 程序分解为更小、更易于管理的模块。然后,这些模块化组件将被集成到主程序中,从而增强其组织性和可维护性。这种方法简化了我们主程序的结构,并使各个组件可以在其他EA和指标的开发中复用。通过采用这种模块化设计,我们为未来的增强功能创建了坚实的基础,这将使我们的项目和更广泛的开发者社区都受益。
从基础到中级:浮点数
从基础到中级:浮点数
本文简要介绍浮点数的概念。由于这篇文章非常复杂,请仔细阅读,不要期望很快掌握浮点数系统。随着时间的推移,当你获得使用它的经验时,它才会变得清晰。但本文将帮助您理解为什么您的应用程序有时会产生与预期不同的结果。
精通日志记录(第五部分):通过缓存和轮转优化处理程序
精通日志记录(第五部分):通过缓存和轮转优化处理程序
本文通过为处理器添加格式化器、引入用于管理执行周期的 CIntervalWatcher 类、以及采用缓存和文件轮转进行优化,并辅以性能测试和实际示例,从而改进了该日志库。通过这些改进,我们确保了一个高效、可扩展且能适应不同开发场景的日志系统。
创建MQL5交易管理员面板(第九部分):代码组织(1)
创建MQL5交易管理员面板(第九部分):代码组织(1)
这次将深入探讨处理大型代码库时遇到的挑战。我们将探索在MQL5中进行代码组织的最佳实践,并采用一种实用方法来提升我们交易管理面板源代码的可读性和可扩展性。此外,我们致力于开发可复用的代码组件,这些组件有可能为其他开发者在其算法开发过程中带来益处。请继续阅读并参与讨论。
开发回放系统(第 78 部分):新 Chart Trade(五)
开发回放系统(第 78 部分):新 Chart Trade(五)
在本文中,我们将研究如何实现部分接收方代码。在这里我们将实现一个 EA 交易来测试和了解协议交互是如何工作的。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
基于Python与MQL5的特征工程(第三部分):价格角度(2)——极坐标(Polar Coordinates)法
基于Python与MQL5的特征工程(第三部分):价格角度(2)——极坐标(Polar Coordinates)法
在本文中,我们将第二次尝试将任意市场的价格水平变化转化为对应的角度变化。此次,我们选择了比首次尝试更具数学复杂性的方法,而获得的结果表明,这一调整或许是正确的决策。今天,让我们共同探讨如何通过极坐标以有意义的方式计算价格水平变化所形成的角度,无论您分析的是何种市场。
集成学习模型中的门控机制
集成学习模型中的门控机制
在本文中,我们继续探讨集成模型,重点讨论“门控”的概念,尤其是门控如何通过整合模型输出来提升预测准确性或模型泛化能力。
逆公允价值缺口(IFVG)交易策略
逆公允价值缺口(IFVG)交易策略
当价格回到先前确定的公允价值缺口位置,且未表现出预期的支撑或阻力反应,而是无视该缺口时,便出现了逆公允价值缺口(IFVG)。这种“无视”现象可能预示着市场方向的潜在转变,并为反向交易提供优势。在本文中,我将介绍自己开发的量化方法,以及如何将IFVG作为一种策略,应用于MetaTrader 5智能交易系统(EA)中。
从基础到中级:定义(二)
从基础到中级:定义(二)
在本文中,我们将继续了解 #define 指令,但这次我们将重点关注它的第二种使用形式,即创建宏。由于这个主题可能有点复杂,我们决定使用我们已经研究了一段时间的应用程序。希望您喜欢今天的文章。
精通日志记录(第四部分):将日志保存到文件
精通日志记录(第四部分):将日志保存到文件
在本文中,我将向您讲解基本的文件操作,以及如何配置一个灵活的自定义处理器。我们将更新 CLogifyHandlerFile 类,以将日志直接写入文件。我们将通过在 EURUSD 上模拟一周的策略来进行性能测试,在每个 tick 生成日志,总耗时为 5 分 11 秒。其结果将在未来的文章中进行比较,届时我们将实现一个缓存系统来提升性能。
从基础到中级:定义(一)
从基础到中级:定义(一)
在这篇文章中,我们将做一些许多人会觉得奇怪和完全脱离上下文的事情,但如果使用得当,这将使你的学习更加有趣:我们将能够根据这里显示的内容构建非常有趣的东西。这将使您更好地理解 MQL5 语言的语法。此处提供的材料仅用于教育目的。它不应以任何方式被视为最终应用程序。其目的不是探索所提出的概念。
黑洞算法(BHA)
黑洞算法(BHA)
黑洞算法(BHA)利用黑洞引力原理来优化解。在本文中,我们将考察 BHA 如何在避免局部极端情况的同时,吸引最佳解,以及为什么该算法已成为解决复杂问题的强大工具。学习简单的思路如何在优化世界带来令人印象深刻的结果。