MQL4和MQL5编程文章

icon

在众多发表的文章中研究 MQL5语言编程交易策略 的多数由您—我们 MQL5.community的会员所作。文章以类别分组来帮助您迅速找到任何有关MQL5编程问题的答案:集成,测试,交易策略等等。

Follow our 新发表讨论它们在 MQL5.community论坛

添加一个新的文章
最近 | 最佳
preview
群体优化算法:随机扩散搜索(SDS)

群体优化算法:随机扩散搜索(SDS)

本文讨论了基于随机游走原理的随机扩散搜索(Stochastic Diffusion Search,SDS)算法,它是一种非常强大和高效的优化算法。该算法允许在复杂的多维空间中找到最优解,同时具有高收敛速度和避免局部极值的能力。
preview
神经网络变得简单(第 60 部分):在线决策转换器(ODT)

神经网络变得简单(第 60 部分):在线决策转换器(ODT)

最近两篇文章专门介绍了决策转换器方法,其在期望奖励的自回归模型境况下针对动作序列进行建模。在本文中,我们将研究该方法的另一种优化算法。
preview
群体优化算法:思维进化计算(MEC)算法

群体优化算法:思维进化计算(MEC)算法

本文探讨了MEC家族的算法,称为简单思维进化计算(Simple Mind Evolutionary Computation, Simple-MEC,SMEC)算法。该算法以其思想之美和易于实现而著称。
preview
神经网络变得简单(第 59 部分):控制二分法(DoC)

神经网络变得简单(第 59 部分):控制二分法(DoC)

在上一篇文章中,我们领略了决策变换器。但是,外汇市场复杂的随机环境不允许我们充分发挥所提议方法的潜能。在本文中,我将讲述一种算法,旨在提高在随机环境中的性能。
preview
群体优化算法:混合蛙跳算法(SFL)

群体优化算法:混合蛙跳算法(SFL)

本文详细描述了混合蛙跳(Shuffled Frog-Leaping,SFL)算法及其在求解优化问题中的能力。SFL算法的灵感来源于青蛙在自然环境中的行为,为函数优化提供了一种新的方法。SFL算法是一种高效灵活的工具,能够处理各种数据类型并实现最佳解决方案。
preview
为 Metatrader 5 开发MQTT客户端:TDD方法——第4部分

为 Metatrader 5 开发MQTT客户端:TDD方法——第4部分

本文是一系列文章的第四部分,介绍了我们为 MQTT 协议开发本机 MQL5 客户端的步骤。在这一部分中,我们将描述什么是 MQTT v5.0 属性,它们的语义,以及我们如何阅读其中的一些属性,并提供一个如何使用属性来扩展协议的简短示例。
preview
神经网络变得简单(第 58 部分):决策转换器(DT)

神经网络变得简单(第 58 部分):决策转换器(DT)

我们继续探索强化学习方法。在本文中,我将专注于一种略有不同的算法,其参考智能体政策构造一连串动作的范式。
preview
机器学习中的量化(第1部分):使用 CatBoost 的理论、示例代码和实现分析

机器学习中的量化(第1部分):使用 CatBoost 的理论、示例代码和实现分析

本文探讨了量化在树模型构建中的理论应用,并展示了使用 CatBoost 实现的量化方法。不使用复杂的数学方程。
preview
如何利用 MQL5 创建简单的多币种智能交易系统(第 2 部分):指标信号:多时间帧抛物线 SAR 指标

如何利用 MQL5 创建简单的多币种智能交易系统(第 2 部分):指标信号:多时间帧抛物线 SAR 指标

本文中的多币种智能交易系统是智能交易系统或交易机器人,它仅在一个品种图表上就能交易(开单、平单、和管理订单,例如:尾随停损和止盈)超过 1 个交易品种对。这次我们只用 1 个指标,即抛物线 SAR 或 iSAR, 将其应用在 PERIOD_M15 到 PERIOD_D1 的多个时间帧。
preview
开发回放系统 — 市场模拟(第 28 部分):智能交易系统项目 — C_Mouse 类 (II)

开发回放系统 — 市场模拟(第 28 部分):智能交易系统项目 — C_Mouse 类 (II)

当人们开始创建第一个拥有计算能力的系统时,一切都需要工程师的参与,他们必须非常熟知该项目。我们谈论的是计算机技术的曙光,那个时代甚至没有用于编程的终端。随着它的发展,越来越多的人对能够创造一些东西感兴趣,涌现出新的思路和编程方式,取代了旧式风格的改变连接器位置。这就是第一个终端出现的时刻。
preview
开发回放系统(第32部分):订单系统(一)

开发回放系统(第32部分):订单系统(一)

在我们迄今为止开发的所有东西中,正如你可能会注意到并最终同意的那样,这个系统是最复杂的。现在我们需要做一些非常简单的事情:让我们的系统模拟交易服务器的操作。准确实现交易服务器操作方式似乎是一件轻而易举的事情。至少说起来是这样。但我们需要这样做,以便对回放/模拟系统的用户来说,一切都是无缝和透明的。
preview
将您自己的LLM集成到EA中(第2部分):环境部署示例

将您自己的LLM集成到EA中(第2部分):环境部署示例

随着人工智能的快速发展,语言模型(LLMs)是人工智能的重要组成部分,因此我们应该思考如何将强大的语言模型集成到我们的算法交易中。对大多数人来说,很难根据他们的需求对这些强大的模型进行微调,在本地部署,然后将其应用于算法交易。本系列文章将采取循序渐进的方法来实现这一目标。
preview
开发回放系统 — 市场模拟(第 27 部分):智能交易系统项目 — C_Mouse 类

开发回放系统 — 市场模拟(第 27 部分):智能交易系统项目 — C_Mouse 类

在本文中,我们将实现 C_Mouse 类。它提供了最高级别的编程能力。不过,说到高级或低级编程语言,并不是在代码中包含污言秽语或行话。它有其它含义。当我们谈论高级或低级编程时,我们意指对于其他程序员来说理解代码是多么容易或困难。
preview
开发回放系统(第31部分):EA交易项目——C_Mouse类(五)

开发回放系统(第31部分):EA交易项目——C_Mouse类(五)

我们需要一个计时器,它可以显示距离回放/模拟运行结束还有多少时间。乍一看,这可能是一个简单快捷的解决方案。许多人只是尝试适应并使用交易服务器使用的相同系统。但有一件事是很多人在考虑这个解决方案时没有考虑的:对于回放,甚至更多的是模拟,时钟的工作方式不同。所有这些都使创建这样一个系统变得复杂。
preview
神经网络变得简单(第 57 部分):随机边际扮演者-评论者(SMAC)

神经网络变得简单(第 57 部分):随机边际扮演者-评论者(SMAC)

在此,我将研究相当新颖的随机边际扮演者-评论者(SMAC)算法,该算法允许在熵值最大化的框架内构建潜在变量政策。
preview
开发回放系统 — 市场模拟(第 26 部分):智能交易系统项目 — C_Terminal 类

开发回放系统 — 市场模拟(第 26 部分):智能交易系统项目 — C_Terminal 类

现在,我们可以开始创建回放/模拟系统的智能系统。不过,我们需要改进一些东西,并非敷衍了事。尽管如此,我们不应被最初的复杂性所吓倒。重要的是从某处开始,否则我们最终只会空想一项任务的难度,甚至没有尝试去克服它。这就是编程的全部意义:通过学习、测试和广泛的研究来攻克障碍。
preview
开发回放系统(第30部分):EA交易项目——C_Mouse类(四)

开发回放系统(第30部分):EA交易项目——C_Mouse类(四)

今天,我们将学习一种技术,它可以在程序员职业生涯的不同阶段对我们有很大帮助。通常,受到限制的不是平台本身,而是谈论限制的人的知识。这篇文章将告诉你,凭借常识和创造力,你可以让 MetaTrader 5 平台变得更加有趣和通用,而无需创建疯狂的程序或类似的东西,并创建简单但安全可靠的代码。我们将利用我们的创造力修改现有代码,而不删除或添加源代码中的任何一行。
preview
神经网络变得简单(第 56 部分):利用核范数推动研究

神经网络变得简单(第 56 部分):利用核范数推动研究

强化学习中的环境研究是一个紧迫的问题。我们之前已视察过一些方式。在本文中,我们将讲述另一种基于最大化核范数的方法。它允许智能体识别拥有高度新颖性和多样性的环境状态。
preview
MQL5中的范畴论(第23部分):对双重指数移动平均的不同看法

MQL5中的范畴论(第23部分):对双重指数移动平均的不同看法

在这篇文章中,我们继续我们的主题,最后是从“新”的角度处理日常交易指标。我们正在为这篇文章处理自然变换的水平组合,而这方面的最佳指标是双重指数移动平均(DEMA),它扩展了我们刚刚涵盖的内容。
preview
开发回放系统(第29部分):EA 交易项目——C_Mouse类(三)

开发回放系统(第29部分):EA 交易项目——C_Mouse类(三)

在改进了C_Mouse类之后,我们可以专注于创建一个类,该类旨在为我们的分析创建一个全新的框架。我们不会使用继承或多态性来创建这个新类。相反,我们将改变,或者更好地说,在价格线中添加新的对象。这就是我们在这篇文章中要做的。在下一节中,我们将研究如何更改分析。所有这些都将在不更改C_Mouse类的代码的情况下完成。实际上,使用继承或多态性会更容易实现这一点。然而,还有其他方法可以达到同样的结果。
preview
MQL5中的范畴论(第22部分):对移动平均的不同看法

MQL5中的范畴论(第22部分):对移动平均的不同看法

在本文中,我们尝试通过只关注一个指标来简化对这些系列中所涵盖概念的说明,这是最常见的,可能也是最容易理解的。它就是移动平均。在这样做的时候,我们会探讨垂直自然变换的意义和可能的应用。
preview
为 MetaTrader 5 开发MQTT客户端:TDD方法——第3部分

为 MetaTrader 5 开发MQTT客户端:TDD方法——第3部分

本文是一系列文章的第三部分,介绍了我们为MQTT协议开发本机MQL5客户端的步骤。在这一部分中,我们详细描述了如何使用测试驱动开发来实现CONNECT/CONNACK数据包交换的操作行为部分。在这一步骤结束时,我们的客户端必须能够在处理连接尝试可能产生的任何服务器结果时表现得正常。
preview
开发回放系统 — 市场模拟(第 25 部分):为下一步做准备

开发回放系统 — 市场模拟(第 25 部分):为下一步做准备

在本文中,我们将会完结开发回放和模拟系统的第一阶段。尊敬的读者,有了这样的成就,我确认该系统已经达到了高级水平,为引入新功能铺平了道路。目标是进一步丰富该系统,将其转变为研究和开发市场分析的强力工具。
preview
MQL5中的范畴论(第21部分):使用LDA的自然变换

MQL5中的范畴论(第21部分):使用LDA的自然变换

这篇文章是我们系列的第21篇,继续研究自然变换以及如何使用线性判别分析(linear discriminant analysis,LDA)来实现它们。我们以信号类格式展示了它的应用程序,就像在前一篇文章中一样。
preview
开发回放系统 — 市场模拟(第 24 部分):外汇(V)

开发回放系统 — 市场模拟(第 24 部分):外汇(V)

今天,我们将去除阻止基于最后成交价进行模拟的限制,并将专门针对这类模拟引入一个新的切入点。整个操作机制将基于外汇市场的原则。该过程的主要区别在于出价(Bid)和最后成交价(Last)模拟的分离。不过,重点要注意,用于随机化时间,并将其调整为与 C_Replay 类兼容的方法在两类模拟中保持雷同。这很好,因为一种模式的变化会导致另一种模式的自动改进,尤其遇到处理跳价之间的时间。
preview
神经网络变得轻松(第五十五部分):对比内在控制(CIC)

神经网络变得轻松(第五十五部分):对比内在控制(CIC)

对比训练是一种无监督训练方法表象。它的目标是训练一个模型,突显数据集中的相似性和差异性。在本文中,我们将谈论使用对比训练方式来探索不同的扮演者技能。
preview
将ML模型与策略测试器集成(结论):实现价格预测的回归模型

将ML模型与策略测试器集成(结论):实现价格预测的回归模型

本文描述了一个基于决策树的回归模型的实现。该模型应预测金融资产的价格。我们已经准备好了数据,对模型进行了训练和评估,并对其进行了调整和优化。然而,需要注意的是,该模型仅用于研究目的,不应用于实际交易。
preview
MQL5中的范畴论(第20部分):自我注意的迂回与转换

MQL5中的范畴论(第20部分):自我注意的迂回与转换

我们暂时离开我们的系列文章,考虑一下 chatGPT 中的部分算法。有没有从自然变换中借鉴的相似之处或概念?我们尝试用信号类格式的代码,在一篇有趣的文章中回答这些和其他问题。
preview
为 MetaTrader 5 开发一款 MQTT 客户端:TDD 方式 - 第2部分

为 MetaTrader 5 开发一款 MQTT 客户端:TDD 方式 - 第2部分

本文是描述 MQTT 协议的本机MQL5客户端开发步骤系列文章的一部分。在这一部分中,我们将描述我们的代码组织、第一个头文件和类,以及我们如何编写测试。本文还包括关于测试驱动开发实践以及我们如何将其应用于该项目的简要说明。
preview
MQL5 中的范畴论 (第 17 部分):函子与幺半群

MQL5 中的范畴论 (第 17 部分):函子与幺半群

本文是我们系列文章的最后一篇,将函子作为一个主题来讨论,且把幺半群作为一个范畴来重新审视。幺半群已在我们的系列中多次讲述,于此配合多层感知器帮助确定持仓规模。
preview
神经网络变得轻松(第五十四部分):利用随机编码器(RE3)进行高效研究

神经网络变得轻松(第五十四部分):利用随机编码器(RE3)进行高效研究

无论何时我们研究强化学习方法时,我们都会面对有效探索环境的问题。解决这个问题通常会导致算法更复杂性,以及训练额外模型。在本文中,我们将看看解决此问题的替代方法。
preview
MQL5中的范畴论(第19部分):自然性四边形归纳法

MQL5中的范畴论(第19部分):自然性四边形归纳法

我们继续通过探讨自然性四边形归纳法来研究自然变换。对于使用MQL5向导构建的EA交易来说,对多货币实现的轻微限制意味着我们正在通过脚本展示我们的数据分类能力。所考虑的主要应用是价格变化分类及其预测。
preview
MQL5中的范畴论(第18部分):自然性四边形

MQL5中的范畴论(第18部分):自然性四边形

本文通过介绍自然变换这一主题中的一个关键支柱,继续我们的范畴理论系列。我们研究看似复杂的定义,然后深入研究本系列“面包和黄油”的示例和应用程序;波动性预测。
preview
MQL5 中的范畴论 (第 16 部分):多层感知器函子

MQL5 中的范畴论 (第 16 部分):多层感知器函子

本文是我们系列文章的第 16 篇,继续考察函子以及如何使用人工神经网络实现它们。我们偏离了迄今为止在该系列中所采用的方式,这涉及预测波动率,并尝试实现自定义信号类来设置入仓和出仓信号。
preview
如何利用 MQL5 创建简单的多币种智能交易系统(第 1 部分):基于 ADX 指标的信号,并结合抛物线 SAR

如何利用 MQL5 创建简单的多币种智能交易系统(第 1 部分):基于 ADX 指标的信号,并结合抛物线 SAR

本文中的多币种智能交易系统是交易机器人,它只能在单一品种图表中运营,但可交易(开单、平单和管理订单)超过一个品种对。
preview
神经网络变得轻松(第五十三部分):奖励分解

神经网络变得轻松(第五十三部分):奖励分解

我们已经不止一次地讨论过正确选择奖励函数的重要性,我们通过为单独动作添加奖励或惩罚来刺激代理者的预期行为。但是关于由代理者解密我们的信号的问题仍旧悬而未决。在本文中,我们将探讨将单独信号传输至已训练代理者时的奖励分解。
preview
开发回放系统 — 市场模拟(第 23 部分):外汇(IV)

开发回放系统 — 市场模拟(第 23 部分):外汇(IV)

现在,创建发生在我们将跳价转换为柱线的同一点。以这种方式,如果在转换过程中出现问题,我们就能立即注意到错误。这是因为在快进期间,在图表上放置 1-分钟柱线的代码,也同样在正常表现期间用于定位系统放置柱线。换言之,负责此任务的代码不会在其它任何地方重复。如此这般,我们获得的系统就能更好的维护和改进。
preview
利用 MQL5 的交互式 GUI 改进您的交易图表(第 III 部分):简易可移动交易 GUI

利用 MQL5 的交互式 GUI 改进您的交易图表(第 III 部分):简易可移动交易 GUI

加入我们的《利用 MQL5 的交互式 GUI 改进您的交易图表》系列的第 III 部分,我们将探索将交互式 GUI 集成到 MQL5 中的可移动交易仪表板之中。本文建立在第 I 部分和第 II 部分的基础上,指导读者将静态交易仪表板转换为动态、可移动的。
preview
神经网络变得轻松(第五十二部分):研究乐观情绪和分布校正

神经网络变得轻松(第五十二部分):研究乐观情绪和分布校正

由于模型是基于经验复现缓冲区进行训练,故当前的扮演者政策会越来越远离存储的样本,这会降低整个模型的训练效率。在本文中,我们将查看一些能在强化学习算法中提升样本使用效率的算法。
preview
在 ONNX 模型中使用 float16 和 float8 格式

在 ONNX 模型中使用 float16 和 float8 格式

用于表示机器学习模型的数据格式对其有效性起着至关重要的作用。近年来,出现了几种新类型的数据,专门为使用深度学习模型而设计。在本文中,我们将重点介绍两种新的数据格式,它们已在现代模型中广泛采用。