MQL4和MQL5编程文章

icon

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

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

添加一个新的文章
最近 | 最佳
preview
MQL5中的范畴论(第20部分):自我注意的迂回与转换

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

我们暂时离开我们的系列文章,考虑一下 chatGPT 中的部分算法。有没有从自然变换中借鉴的相似之处或概念?我们尝试用信号类格式的代码,在一篇有趣的文章中回答这些和其他问题。
preview
MQL5中使用坐标下降法的弹性网络回归

MQL5中使用坐标下降法的弹性网络回归

在这篇文章中,我们探索了弹性网络回归的实际实现,以最大限度地减少过拟合,同时自动将有用的预测因子与那些预测能力很小的预测因子区分开来。
preview
交易事务. 请求和响应结构、描述和记录

交易事务. 请求和响应结构、描述和记录

本文探讨了处理交易请求结构,即创建请求、将其发送到服务器之前的初步验证、服务器对交易请求的响应以及交易交易的结构。我们将创建简单方便的函数,将交易订单发送到服务器,并根据所讨论的内容,创建EA来通知交易事务。
preview
开发回放系统 — 市场模拟(第 19 部分):必要的调整

开发回放系统 — 市场模拟(第 19 部分):必要的调整

在此,我们要做好准备,如此当我们需要往代码里添加新函数时,就能顺滑轻松地发生。当前代码还不能涵盖或处理那些显著推进过程所必需的事情。我们需要将所有东西都结构化,以便能够以最小的工作量实现某些事情。如果我们正确地做好所有事情,我们就能得到一个真正通用的系统,可以轻松地适应任何需要处理的状况。
preview
DoEasy. 控件(第三十部分):动画态滚动条控件

DoEasy. 控件(第三十部分):动画态滚动条控件

在本文中,我将继续开发滚动条(ScrollBar)控件,并开始实现鼠标交互功能。 此外,我将扩展鼠标状态标志和事件的列表。
preview
开发回放系统 — 市场模拟(第 20 部分):外汇(I)

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

本文的最初目标不是涵盖外汇交易的所有可能性,而更是出于适配系统,如此您就至少可以执行一次市场回放。我们把模拟留待其它时刻。不过,如果我们没有跳价而仅有柱线的话,稍加努力,我们就可以模拟外汇市场中可能发生的交易。直到我们研究如何适配模拟器之前,情况一直如此。不经修改就尝试在系统内处理外汇数据会导致一系列错误。
preview
将 ML 模型与策略测试器集成(第 3 部分):CSV(II)文件管理

将 ML 模型与策略测试器集成(第 3 部分):CSV(II)文件管理

这篇资料提供了以 MQL5 创建类,从而高效管理 CSV 文件的完整指南。 我们将看到打开、写入、读取、和转换数据等方法的实现。 我们还将研究如何使用它们来存储和访问信息。 此外,我们将讨论使用该类的限制和最重要的方面。 本文对于那些想要学习如何在 MQL5 中处理 CSV 文件的人来说是一个宝贵的资源。
preview
神经网络变得轻松(第四十八部分):降低 Q-函数高估的方法

神经网络变得轻松(第四十八部分):降低 Q-函数高估的方法

在上一篇文章中,我们概述了 DDPG 方法,它允许在连续动作空间中训练模型。然而,与其它 Q-学习方法一样,DDPG 容易高估 Q-函数的数值。这个问题往往会造成训练代理者时选择次优策略。在本文中,我们将研究一些克服上述问题的方式。
preview
StringFormat(). 回顾和现成的例子

StringFormat(). 回顾和现成的例子

本文继续介绍PrintFormat()函数。我们将简要介绍使用StringFormat()格式化字符串及其在程序中的进一步使用。我们还将编写模板,在终端日志中显示交易品种数据。这篇文章对初学者和有经验的开发人员都很有用。
preview
DoEasy. 控件 (第 20 部分): SplitContainer WinForms 对象

DoEasy. 控件 (第 20 部分): SplitContainer WinForms 对象

在本文中,我将启动开发模拟 MS Visual Studio工具包的 SplitContainer 控件。 此控件由两个垂直或水平可移动隔板分开的面板组成。
preview
用置信区间估计未来效能

用置信区间估计未来效能

在这篇文章中,我们深入研究自举法技术的应用,作为评估自动化策略未来效能的一种手段。
DoEasy 函数库中的图形(第九十四部分):移动和删除复合图形对象
DoEasy 函数库中的图形(第九十四部分):移动和删除复合图形对象

DoEasy 函数库中的图形(第九十四部分):移动和删除复合图形对象

在本文中,我将启动开发各种复合图形对象事件。 我们还将部分研究移动和删除复合图形对象。 实际上,在此,我还会把前一篇文章中实现的东西进行微调。
preview
开发回放系统 — 市场模拟(第 14 部分):模拟器的诞生(IV)

开发回放系统 — 市场模拟(第 14 部分):模拟器的诞生(IV)

在本文中,我们将继续探讨模拟器开发的新阶段。 这次,我们会见到如何有效地创建随机游走类型的走势。 这种类型的走势非常引人入胜,因为它是构成资本市场上所发生一切的基础。 此外,我们将开始了解一些对于进行市场分析至关重要的概念。
preview
DRAKON可视化编程语言 - 面向MQL开发人员和客户的通信工具

DRAKON可视化编程语言 - 面向MQL开发人员和客户的通信工具

DRAKON是一种可视化编程语言,旨在简化来自不同领域的专家(生物学家、物理学家、工程师…)与俄罗斯太空项目(例如,Buran可重复使用航天器项目)程序员之间的互动。在这篇文章中,我将讨论DRAKON如何使算法的创建变得容易和直观,即使你从未遇到过代码,以及客户在订购交易机器人时如何更容易解释他们的想法,以及程序员如何在复杂函数中减少错误。
preview
MQL5中的范畴论(第19部分):自然性四边形归纳法

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

我们继续通过探讨自然性四边形归纳法来研究自然变换。对于使用MQL5向导构建的EA交易来说,对多货币实现的轻微限制意味着我们正在通过脚本展示我们的数据分类能力。所考虑的主要应用是价格变化分类及其预测。
preview
开发回放系统 — 市场模拟(第 17 部分):跳价和更多跳价(I)

开发回放系统 — 市场模拟(第 17 部分):跳价和更多跳价(I)

于此,我们将见识到如何实现一些非常有趣的东西,但同时也会因某些可能十分令人困惑的关键点而极其困难。可能发生的最糟糕的事情是,一些自诩专业人士的交易者却对这些概念在资本市场中的重要性一无所知。好吧,尽管我们在这里专注于编程,但理解市场交易中涉及的一些问题,对于我们将要实现的内容至关重要。
preview
MQL5 中的范畴论 (第 12 部分):秩序(Orders)

MQL5 中的范畴论 (第 12 部分):秩序(Orders)

本文是范畴论系列文章之以 MQL5 实现图论的部分,深入研讨秩序(Orders)。我们通过研究两种主要的秩序类型,实测秩序论的概念如何支持幺半群集合,从而为交易决策提供信息。
preview
MQL5 中的范畴论 (第 13 部分):数据库制程的日历事件

MQL5 中的范畴论 (第 13 部分):数据库制程的日历事件

本文在 MQL5 中遵循范畴论实现秩序,研究如何在 MQL5 中结合数据库制程进行分类。我们介绍了当辨别交易相关的文本(字符串)信息时,如何把数据库制程概念与范畴论相结合。日历事件是焦点。
preview
DoEasy. 控件 (第 28 部分): 进度条控件中的柱线样式

DoEasy. 控件 (第 28 部分): 进度条控件中的柱线样式

在本文中,我将开发进度条控件的柱线显示样式和说明文本。
preview
在 ONNX 模型中使用 float16 和 float8 格式

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

用于表示机器学习模型的数据格式对其有效性起着至关重要的作用。近年来,出现了几种新类型的数据,专门为使用深度学习模型而设计。在本文中,我们将重点介绍两种新的数据格式,它们已在现代模型中广泛采用。
preview
将您自己的LLM集成到EA中(第2部分):环境部署示例

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

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

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

这篇文章是我们系列的第21篇,继续研究自然变换以及如何使用线性判别分析(linear discriminant analysis,LDA)来实现它们。我们以信号类格式展示了它的应用程序,就像在前一篇文章中一样。
preview
神经网络变得轻松(第五十三部分):奖励分解

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

我们已经不止一次地讨论过正确选择奖励函数的重要性,我们通过为单独动作添加奖励或惩罚来刺激代理者的预期行为。但是关于由代理者解密我们的信号的问题仍旧悬而未决。在本文中,我们将探讨将单独信号传输至已训练代理者时的奖励分解。
preview
了解如何在MQL5中处理日期和时间

了解如何在MQL5中处理日期和时间

这是一篇关于一个新的重要话题的新文章,这个话题是关于日期和时间的。作为交易工具的交易员或程序员,了解如何很好、有效地处理日期和时间这两个方面至关重要。因此,我将分享一些重要信息,关于我们如何处理日期和时间,以便顺利、简单地创建有效的交易工具。
preview
神经网络变得轻松(第四十九部分):软性扮演者-评价者

神经网络变得轻松(第四十九部分):软性扮演者-评价者

我们继续讨论解决连续动作空间问题的强化学习算法。在本文中,我将讲演软性扮演者-评论者(SAC)算法。SAC 的主要优点是拥有查找最佳策略的能力,不仅令预期回报最大化,而且拥有最大化的动作熵(多样性)。
preview
MQL5中的范畴论(第18部分):自然性四边形

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

本文通过介绍自然变换这一主题中的一个关键支柱,继续我们的范畴理论系列。我们研究看似复杂的定义,然后深入研究本系列“面包和黄油”的示例和应用程序;波动性预测。
preview
神经网络变得轻松(第五十一部分):行为-指引的扮演者-评论者(BAC)

神经网络变得轻松(第五十一部分):行为-指引的扮演者-评论者(BAC)

最后两篇文章研究了软性扮演者-评论者算法,该算法将熵正则化整合到奖励函数当中。这种方式在环境探索和模型开发之间取得平衡,但它仅适用于随机模型。本文提出了一种替代方式,能适用于随机模型和确定性模型两者。
preview
DoEasy. 控件 (第 19 部分): 在 TabControl 中滚动选项卡、WinForms 对象事件

DoEasy. 控件 (第 19 部分): 在 TabControl 中滚动选项卡、WinForms 对象事件

在本文中,我将创建的功能是利用滚动按钮在 TabControl 中滚动选项卡标题。 该功能旨在将选项卡标题从控件的任一侧拖放到单行之中。
preview
研究PrintFormat()并应用现成的示例

研究PrintFormat()并应用现成的示例

这篇文章对初学者和有经验的开发人员都很有用。我们将研究PrintFormat()函数,分析字符串格式的示例,并编写用于在终端日志中显示各种信息的模板。
preview
MQL5 中的范畴论 (第 17 部分):函子与幺半群

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

本文是我们系列文章的最后一篇,将函子作为一个主题来讨论,且把幺半群作为一个范畴来重新审视。幺半群已在我们的系列中多次讲述,于此配合多层感知器帮助确定持仓规模。
preview
为智能系统制定品质因数

为智能系统制定品质因数

在本文中,我们将见识到如何制定一个品质得分,并由您的智能系统从策略测试器返回。 我们将查看两种著名的计算方法 — Van Tharp 和 Sunny Harris。
preview
时间序列挖掘的数据标签(第3部分):使用标签数据的示例

时间序列挖掘的数据标签(第3部分):使用标签数据的示例

本系列文章介绍了几种时间序列标记方法,这些方法可以创建符合大多数人工智能模型的数据,而根据需要进行有针对性的数据标记可以使训练后的人工智能模型更符合预期设计,提高我们模型的准确性,甚至帮助模型实现质的飞跃!
preview
MQL5中的范畴论(第23部分):对双重指数移动平均的不同看法

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

在这篇文章中,我们继续我们的主题,最后是从“新”的角度处理日常交易指标。我们正在为这篇文章处理自然变换的水平组合,而这方面的最佳指标是双重指数移动平均(DEMA),它扩展了我们刚刚涵盖的内容。
DoEasy. 控件 (第 32 部分): 水平滚动条,鼠标轮滚动
DoEasy. 控件 (第 32 部分): 水平滚动条,鼠标轮滚动

DoEasy. 控件 (第 32 部分): 水平滚动条,鼠标轮滚动

在本文中,我们将完成水平滚动条对象功能的开发。我们还将令移动滚动条滑块和旋转鼠标滚轮来滚动容器的内容成为可能,以及考虑到 MQL5 中的新订单执行策略,和新的运行时错误代码,在函数库里相应添加。
preview
MQL5 中的范畴论 (第 16 部分):多层感知器函子

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

本文是我们系列文章的第 16 篇,继续考察函子以及如何使用人工神经网络实现它们。我们偏离了迄今为止在该系列中所采用的方式,这涉及预测波动率,并尝试实现自定义信号类来设置入仓和出仓信号。
preview
为 MetaTrader 5 开发一款 MQTT 客户端:TDD 方式 - 第2部分

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

本文是描述 MQTT 协议的本机MQL5客户端开发步骤系列文章的一部分。在这一部分中,我们将描述我们的代码组织、第一个头文件和类,以及我们如何编写测试。本文还包括关于测试驱动开发实践以及我们如何将其应用于该项目的简要说明。
preview
DoEasy. 控件 (第 22 部分): SplitContainer。 修改已创建对象的属性

DoEasy. 控件 (第 22 部分): SplitContainer。 修改已创建对象的属性

在本文中,我将实现更改新近创建的 SplitContainer 控件的属性和外观的功能。
preview
神经网络变得简单(第 58 部分):决策转换器(DT)

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

我们继续探索强化学习方法。在本文中,我将专注于一种略有不同的算法,其参考智能体政策构造一连串动作的范式。
preview
开发回放系统 — 市场模拟(第 13 部分):模拟器的诞生(III)

开发回放系统 — 市场模拟(第 13 部分):模拟器的诞生(III)

为了下一阶段的工作,我们将于此简化一些与操作相关的元素。 我还会解释如何让您把模拟器随机生成的内容可视化。
preview
软件开发和 MQL5 中的设计范式(第一部分):创建范式

软件开发和 MQL5 中的设计范式(第一部分):创建范式

有一些方法可以用来解决许多重复性的问题。一旦明白如何运用这些方法,就可助您有效地创建软件,并贯彻 DRY(不要重复自己)的概念。在这种境况下,设计范式的主题就非常好用,因为它们为恰当描述过,且重复的问题提供了解决方案。