理解编程范式(第 2 部分):面向对象方式开发价格行为智能系统
学习面向对象的编程范式,及其在 MQL5 代码中的应用。这是第二篇文章,更深入地讲解面向对象编程的规范,并通过一个实际示例提供上手经验。您将学习如何运用 EMA 指标,和烛条价格数据,将我们早期开发的过程化价格行为智能系统转换为面向对象的代码。
在 MQL5 中创建交易管理员面板(第一部分):构建消息接口
本文讨论了为 MetaTrader 5 创建一个消息接口,旨在帮助系统管理员在平台内直接与其他交易者进行沟通。MQL5 最近与社交平台的整合使得信号能够通过不同渠道快速广播。想象一下,只需点击“是”或“否”就能确认发送信号。继续阅读以了解更多信息。
如何利用 MQL5 创建简单的多币种智能交易系统(第 3 部分):添加交易品种、前缀和/或后缀、以及交易时段
若干交易员同事发送电子邮件或评论了如何基于经纪商提供的名称里带有前缀和/或后缀的品种使用此多币种 EA,以及如何在该多币种 EA 上实现交易时区或交易时段。
创建 MQL5-Telegram 集成 EA 交易(第 5 部分):从 Telegram 向 MQL5 发送命令并接收实时响应
在本文中,我们创建了几个类来促进 MQL5 和 Telegram 之间的实时通信。我们专注于从 Telegram 获取命令,解码和解释它们,并发送适当的响应。最后,我们确保这些交互在交易环境中得到有效测试和运行。
MQL5中的范畴论(第19部分):自然性四边形归纳法
我们继续通过探讨自然性四边形归纳法来研究自然变换。对于使用MQL5向导构建的EA交易来说,对多货币实现的轻微限制意味着我们正在通过脚本展示我们的数据分类能力。所考虑的主要应用是价格变化分类及其预测。
构建和测试 Aroon 交易系统
在本文中,我们将学习在了解了 Aroon 指标(阿隆指标)的基础知识和基于该指标构建交易系统的必要步骤之后,如何构建 Aroon 交易系统。建立这个交易系统后,我们将对其进行测试,看看它是否能盈利,还是需要进一步优化。
数据科学与机器学习(第24部分):使用常规AI模型进行外汇时间序列预测
在外汇市场中,如果不了解过去的情况,就很难预测未来的趋势。很少有机器学习模型能够通过考虑过去的数据来做出未来预测。在本文中,我们将讨论如何使用经典(非时间序列)人工智能模型来战胜市场。
群体优化算法:随机扩散搜索(SDS)
本文讨论了基于随机游走原理的随机扩散搜索(Stochastic Diffusion Search,SDS)算法,它是一种非常强大和高效的优化算法。该算法允许在复杂的多维空间中找到最优解,同时具有高收敛速度和避免局部极值的能力。
关于因果网络分析(Causality Network Analysis,CNA)和向量自回归(Vector Autoregression,VAR)模型在市场事件预测中的应用实例
本文提供了一个使用因果网络分析(Causality Network Analysis,CNA)和向量自回归(Vector Autoregression,VAR)模型在MQL5中实现复杂交易系统的全面指南。文章涵盖了这些方法的理论背景,详细解释了交易算法中的关键函数,并提供了实现的示例代码。
重构经典策略(第十一部分)移动平均线的交叉(二)
移动平均线和随机振荡器可用于生成趋势跟踪交易信号。然而,这些信号只有在价格行为发生之后才会被观察到。我们可以有效地利用人工智能克服技术指标中这种固有的滞后性。本文将教您如何创建一个完全自主的人工智能驱动型EA,这种方式可以改进您现有的任何交易策略。即使是最古老的交易策略也可以被改进。
种群优化算法:微人工免疫系统(Micro-AIS)
本文研究一种基于人体免疫系统原理的优化方法 — 微人工免疫系统(Micro-AIS) - AIS 的修订版。Micro-AIS 使用更简单的免疫系统模型,和更简单的免疫信息处理操作。本文还讨论了 Micro-AIS 与传统 AIS 相比的优缺点。
神经网络变得简单(第 75 部分):提升轨迹预测模型的性能
我们创建的模型变得越来越大,越来越复杂。这不光提高了它们的训练成本,还有操作成本。不过,做出决定所需的时间往往很关键。有关于此,我们来研究在不损失品质的情况下优化模型性能的方法。
神经网络变得轻松(第四十九部分):软性扮演者-评价者
我们继续讨论解决连续动作空间问题的强化学习算法。在本文中,我将讲演软性扮演者-评论者(SAC)算法。SAC 的主要优点是拥有查找最佳策略的能力,不仅令预期回报最大化,而且拥有最大化的动作熵(多样性)。
您应当知道的 MQL5 向导技术(第 09 部分):K-Means 聚类与分形波配对
“K-均值”聚类采用数据点分组的方式,该过程最初侧重于数据集的宏观视图,使用随机生成的聚类质心,然后放大并调整这些质心,从而准确表示数据集。我们将对此进行研究,并开拓一些它的用例。
密码锁算法(CLA)
在本文中,我们将重新考虑密码锁,将它们从安全机制转变为解决复杂优化问题的工具。让我们探索密码锁的世界,不再将其视为简单的安全装置,而是作为优化问题新方法的灵感来源。我们将创建一整群“锁”,其中每把锁都代表问题的一个独特解决方案。然后,我们将开发一种算法来“破解”这些锁,并从机器学习到交易系统开发等多个领域中找到最优解。
开发回放系统(第30部分):EA交易项目——C_Mouse类(四)
今天,我们将学习一种技术,它可以在程序员职业生涯的不同阶段对我们有很大帮助。通常,受到限制的不是平台本身,而是谈论限制的人的知识。这篇文章将告诉你,凭借常识和创造力,你可以让 MetaTrader 5 平台变得更加有趣和通用,而无需创建疯狂的程序或类似的东西,并创建简单但安全可靠的代码。我们将利用我们的创造力修改现有代码,而不删除或添加源代码中的任何一行。
DoEasy. 控件 (第 25 部分): Tooltip WinForms 对象
在本文中,我将开始开发 Tooltip(工具提示)控件,以及函数库的新图形基元。 自然而然地,并非每个元素都有工具提示,但每个图形对象都有设置它的能力。
开发回放系统 — 市场模拟(第 24 部分):外汇(V)
今天,我们将去除阻止基于最后成交价进行模拟的限制,并将专门针对这类模拟引入一个新的切入点。整个操作机制将基于外汇市场的原则。该过程的主要区别在于出价(Bid)和最后成交价(Last)模拟的分离。不过,重点要注意,用于随机化时间,并将其调整为与 C_Replay 类兼容的方法在两类模拟中保持雷同。这很好,因为一种模式的变化会导致另一种模式的自动改进,尤其遇到处理跳价之间的时间。
DoEasy. 控件 (第 9 部分): 重新编排 WinForms 对象方法、RadioButton 和 Button 控件
在本文中,我将修复 WinForms 对象类方法的名称,并创建 WinForms 的对象 Button 和 RadioButton。
种群优化算法:鸟群算法(BSA)
本文探讨了受自然界鸟类集群行为启发而产生的基于鸟群的算法(BSA)。BSA中的个体采用不同的搜索策略,包括在飞行、警戒和觅食行为之间的切换,使得该算法具有多面性。它利用鸟类集群、交流、适应性、领导与跟随等规则来高效地找到最优解。
因果推理中的倾向性评分
本文探讨因果推理中的匹配问题。匹配用于比较数据集中的类似观察结果,这对于正确确定因果关系和消除偏见是必要的。作者解释了这如何有助于构建基于机器学习的交易系统,这些系统在没有经过训练的新数据上变得更加稳定。倾向性评分在因果推理中起着核心作用并被广泛应用。
通过成交量洞察交易:趋势确认
增强型趋势确认技术结合了价格行为、成交量分析和机器学习,用以识别真实的市场行情。该技术要求价格突破和成交量激增(高于平均值50%)这两个条件同时满足以验证交易信号,同时使用一个LSTM神经网络进行附加确认。该系统采用基于ATR(平均真实波幅)的仓位调整和动态风险管理,使其能够适应不同的市场条件,同时过滤掉虚假信号。
DoEasy. 控件(第 二十九 部分):滚动条(ScrollBar)辅助控件
在本文中,我起始开发滚动条(ScrollBar)辅助控制元素,及其衍生对象 — 垂直和水平滚动条。 滚动条用于窗体内容(如果窗体超出容器)的滚动显示。 滚动条通常位于窗体的底部和右侧。 底部的水平滚动条可左右滚动内容,而垂直的则上下滚动内容。
使用MQL5和Python构建自优化EA(第三部分):破解Boom 1000算法
在本系列文章中,我们探讨了如何构建能够自主适应动态市场条件的EA。今天的文章中,我们将尝试调整一个深度神经网络以适应Deriv的合成市场。
开发回放系统 — 市场模拟(第 22 部分):外汇(III)
虽然这是关于这个主题的第三篇文章,但我必须为那些还不了解股票市场和外汇市场之间区别的人解释一下:最大的区别在于,在外汇中没有、或者更确切地说,我们得不到交易过程中有关一些实际发生关键处的信息。
MQL5 交易管理面板开发指南(第六部分):交易管理面板(续篇)
在本文中,我们对多功能管理面板的“交易面板”进行升级。我们引入一个强大的辅助函数,大幅简化代码,提高可读性、可维护性与运行效率。同时演示如何无缝集成更多按钮,并优化界面,以支持更广泛的交易任务。无论是持仓管理、订单调整,还是简化交互,本文将助您打造稳健且易用的交易管理面板。
您应当知道的 MQL5 向导技术(第 45 部分):蒙特卡洛强化学习
蒙特卡洛是我们正在研究的第四种不同的强化学习算法,目的是探索它在向导汇编智能交易系统中的实现。尽管它锚定在随机抽样,但它提供了我们可以利用的多种模拟方法。
群体优化算法:带电系统搜索(CSS)算法
在本文中,我们将探讨另一种受无生命自然启发的优化算法--带电系统搜索(Charged System Search,CSS)算法。本文旨在介绍一种基于物理和力学原理的新的优化算法。
开发多币种 EA 交易系统(第 16 部分):不同报价历史对测试结果的影响
正在开发中的 EA 预计在与不同经纪商进行交易时都会表现出良好的效果。但目前我们一直使用 MetaQuotes 模拟账户的报价进行测试。让我们看看我们的 EA 是否准备好使用与测试和优化期间使用的报价不同的交易账户。
开发回放系统 — 市场模拟(第 18 部分):跳价和更多跳价(II)
显然,目前的衡量度与创建 1-分钟柱线的理想时间相距甚远。这是我们要率先解决的一件事。解决同步问题并不困难。也许这看起来很难,但实际上却很简单。在上一篇文章中,我们没有进行所需的调整,因为它的目的是解释如何把图表上创建 1-分钟柱线的跳价数据转移至市场观察窗口。
使用莱文贝格-马夸尔特(Levenberg-Marquardt,LM)算法训练多层感知器
本文介绍了一种用于训练前馈神经网络的莱文贝格-马夸尔特(Levenberg-Marquardt,LM)算法的实现。与Python的scikit-learn库中的算法进行性能比较分析。初步探讨更简便的学习方法,如梯度下降、带动量的梯度下降和随机梯度下降。
矩阵分解基础知识
由于这里的目标是教学,我们将尽可能简单地进行。也就是说,我们将只实现所需的功能:矩阵乘法。今天您将看到,这足以模拟矩阵标量乘法。许多人在使用矩阵分解实现代码时遇到的最大困难是:与标量分解不同,在标量分解中,几乎所有情况下因子的顺序都不会改变结果,但使用矩阵时情况并非如此。
在MQL5中创建交易管理员面板(第六部分):多功能界面(一)
交易管理员的角色不仅限于Telegram通信,他们还可以参与各种控制活动,包括订单管理、持仓跟踪和界面定制。在本文中,我们将分享有关扩展程序以支持MQL5中多种功能的实用见解。此次更新旨在克服当前管理员面板主要聚焦于通信这一局限,使其能够处理更广泛的任务。