English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
preview
MQL5 Algo Forge 入门

MQL5 Algo Forge 入门

MetaTrader 5示例 |
1 024 29
MetaQuotes
MetaQuotes

新的 MQL5 Algo Forge 不仅仅是您的项目列表 —— 它是一个成熟的开发人员社交网络。您可以轻松跟踪更改,维护项目历史,与志同道合的专业人士联系,并发现新想法。在这里,您可以关注有趣的作者,组建团队,并在算法交易项目上进行协作。  

MQL5 Algo Forge 建立在现代版本控制系统 Git 上的。它为每个开发人员提供了一个强大的工具集,用于跟踪项目历史、分支、实验和团队合作。但这一切是如何运作的呢?在本文中,我们将解释如何开始使用 MQL5 Algo Forge


MQL5 Algo Forge 中的存储库是什么?

开发软件通常是一个漫长的过程,需要时间和调试。代码不仅必须编写和维护,而且必须安全存储。现代交易算法远远超出了简单的移动平均线交叉。它们建立在数学库、神经网络和机器学习的基础上。这意味着开发人员需要一种便捷的方式来快速保存更改,并从任何地方访问最新代码。 

MQL5 Storage 是集成到 MetaEditor 中的内置版本控制系统。它以前使用 Subversion 1.7,这是一个集中式版本控制系统,其中所有历史记录都存储在 MetaQuotes 服务器上。没有互联网连接,您无法提交更改、回滚到以前的版本或查看历史记录。如今,它已被一个更强大、更灵活的解决方案 —— MQL5 Algo Forge 完全取代。

现在,MQL5 Algo Forge 的工作方式不同:


MQL5 Algo Forge(基于 Git) MQL5 Storage(传统)
历史存储 本地和云 仅限 MetaQuotes 云
离线工作 完整(提交、回滚、差异) 受限或不可用
运算速度 即时、本地 取决于网络/服务器

Algo Forge 给您自由。您可以在火车上离线工作,创建实验分支,保存中间结果,然后将它们合并到主分支中。

Algo Forge 中的项目存储库不仅仅是一个云文件夹。它是一个结构化的 Git 存储库,存在于您的本地驱动器上,并与 MQL5 Algo Forge 云服务器同步。它由几层组成:

MetaEditor 中的工作目录

您在 MetaEditor 中编辑的 .MQ5、.MQH、.SET 和其他文件。您可以在此处编写 EA 交易代码、连接指标并测试策略。除非您明确添加更改,否则 Algo Forge 不会跟踪它们。                                                                   

暂存区(索引)

在将更改保存到项目历史记录之前,您需要准备这些更改。使用 “Git Add” 命令,您可以选择下次提交时要包含的文件。这允许您对更改进行逻辑分组,例如,将交易逻辑的调整与界面或配置的更新分开保存。


本地存储库


一旦您使用 “Git Commit” 提交更改,Algo Forge 就会将您的文件快照存储在您计算机的本地存储库中。在任何时候,您都可以查看以前的版本,回滚到较早的状态,或分析哪些修改影响了您的 EA 交易系统的性能。


远程存储库位于 MQL5 Algo Forge


准备就绪后,您可以使用 “Git Push” 将提交推送到 MQL5 Algo Forge 服务器。这将创建一个安全的备份,并使您的更改可供团队成员使用。即使你独自工作,这也是有用的:你的代码安全地存储在云中,你的项目历史保持不变。


如何连接到 MQL5 Algo Forge

要开始使用 MQL5 Algo Forge,您只需要一个 MQL5 帐户。只需使用您的凭据登录 https://forge.mql5.io/ 即可。  


登录后,您可以探索其所有功能。公共项目可在探索部分找到,您可以在其中浏览项目、研究其代码、分享自己的工作以及与他人协作。



但是,您的大部分开发工作将在 MetaEditor 环境中进行。要将 MetaEditor 连接到 MQL5 Algo Forge,只需使用社区选项卡下的 MQL5 帐户凭据登录即可。



Git 是什么以及它在 MQL5 Algo Forge 中的工作原理

Git 是一个版本控制系统,它记录了文件在不同时间点的外观。它有助于防止重要更改的丢失,使回滚变得容易,支持实验的分支,并使多个开发人员能够在同一项目上进行协作。

在 MetaEditor 中,你不需要直接使用 Git 命令 —— 一切都是通过用户友好的界面处理的。然而,在幕后,Git 正在执行一些基本操作。让我们将它们分解,看看在 MetaEditor 中使用相应命令时会发生什么。

让我们在公共项目文件夹中创建一个新项目 “Base_EA”。


右键单击项目文件以查看可用的 Git 命令。


1.Git 添加文件/文件夹 —— 暂存更改

当您编辑文件时,Git 不会自动跟踪它们。要告诉系统要保存这些更改,请将文件添加到索引中。这可以通过 “Git 添加文件/文件夹” 或在选择要提交的文件时完成。

Git 会对文件的当前状态进行快照并准备保存,就像将文档放入“待签名”文件夹中一样。

2.Git 提交 —— 保存项目快照

单击 MetaEditor 中的 “Git 提交” 可获取项目的当前状态并将其保存到版本历史记录中。

过程是这样的:

  • Git 将您的更改与以前的文件进行比较。
  • 它只存储差异(以节省空间)。
  • 更改会写入一个隐藏的 .git 文件夹。 
  • 提交将获得一个唯一的 SHA-1 标识符。 

提交本质上是一个检查点,显示了项目当时的情况。你总是可以稍后返回到任何这样的点,并从那里继续。

3.Git 推送 —— 发送至 MQL5 Algo Forge Cloud

当您选择 “Git 推送” 时,您的本地提交将上传到 MQL5 Algo Forge 服务器。 

这就像将项目的新版本上传到云端,但有完整的更改历史记录。

为了方便起见,MetaEditor 在 “Git 提交” 之后立即自动执行 “Git 推送”。这可确保您当前的版本始终同步到云端。如果由于任何原因将更改推送到服务器失败,您可以手动运行 “Git 推送”。

4.Git 拉取 —— 获取最新版本

协作时,其他人可能会在您之前更新项目。或者,您可以从一台计算机提交更改,然后在另一台计算机上(或在同一台计算机但在不同的终端上)继续工作。要获取这些更新,请使用 “Git 拉取”,它会从 Forge 中检索所有更改。

Git 将从云端下载新的提交,并将其与您的本地版本合并。

5.Git 分支 —— 安全地进行分支和实验

有时您可能想在不影响主项目的情况下测试想法,这可以通过分支来完成。例如,您可以创建一个分支来测试不同的指标,或者为您的策略添加一个过滤器。每个分支都有自己的名称,您可以在它们之间自由切换。

分支只是一条平行的开发线。您可以随心所欲地进行实验,然后丢弃它或将其合并到主分支中。


6.Git 差异 —— 审查文件更改

此命令准确显示提交前文件中的更改内容(逐行)。它将打开一个比较面板,突出显示添加、删除或修改的行。


7.Git 日志 —— 查看项目历史记录

“Git 日志” 命令列出所有提交及其日期、作者和提交消息。这为您提供了一个清晰的项目开发时间表,并让您跟踪谁在何时更改了什么。


8. Git 回滚 —— 撤消提交

“Git 回滚” 创建一个新的提交,取消前一次提交的效果,但不会将其从历史记录中删除。这是撤消更改的最安全方法。但它只能在最新的提交上正常工作。

如果您发现某个提交破坏了 EA 交易,此命令会特别有用 —— 您可以快速撤消它而不会影响其他提交。但是,如果恢复的提交与以后的提交影响相同的代码,则可能会发生合并冲突,必须手动解决。


项目工作的安全实践

版本控制中最常见的问题之一是本地版本和远程版本之间的冲突。为了避免这些问题,请遵循一些简单的规则:总是先拉取。当您打开一个项目继续工作时,运行 “Git 拉取” 以确保您拥有最新版本。

另一条规则是始终最后提交 + 推送。完成工作后,运行“Git 提交”(包含自动推送)将您的更新发送到云端。遵循这些习惯将使您的工作流程顺畅且无冲突,同时确保您的代码始终安全。


MQL5 Algo Forge —— 可靠项目管理所需的一切

您不需要手动输入 Git 命令。一切都集成到 MetaEditor 中:

  • 添加文件、提交和分支 —— 通过项目上下文菜单
  • 推送和拉取 —— 只需两个按钮即可与云同步。
  • 分支和回滚 —— 用于开发控制的简单命令。
  • 变更历史记录 —— 可作为清晰的内置日志。

这 8 个命令就是您自信地使用 MQL5 Algo Forge 所需的全部。它们提供结构化开发、安全实验、团队合作支持,并完全防止数据丢失。



立即开始

MQL5 Algo Forge 不仅仅是存储 —— 它是算法交易者的完整项目管理系统。它允许您跟踪每一个更改,无风险地进行实验,在团队中协作,并维护稳定可靠的代码。

如果 Git 曾经感觉太复杂,MQL5 Algo Forge 会让它变得简单。MetaEditor 集成了基本命令,因此您可以专注于编写代码、保存进度并为任何回滚做好准备。


欢迎来到 MQL5 Algo Forge!


有用的链接:

本文由MetaQuotes Ltd译自俄文
原文地址: https://www.mql5.com/ru/articles/18518

最近评论 | 前往讨论 (29)
Vladislav Boyko
Vladislav Boyko | 16 7月 2026 在 05:56
Vladislav Boyko #:
你可以尝试使用 Swagger 删除自己的账户:

我刚刚将一个测试账户添加为协作者(该账户未启用双因素认证)。如果你不是协作者管理员,此方法将无法奏效:

{

   "message": "user should be an owner or a collaborator with admin write of a repository",

   "url": "https://forge.mql5.io/api/swagger"

}

在我将该测试账户设为管理员后,我便能通过 Swagger 将其删除。但你不太可能拥有该处的管理员权限,因此这对你没有帮助。


Aleksandr Slavskii
Aleksandr Slavskii | 16 7月 2026 在 06:38
Vladislav Boyko #:

您很可能是在此代码库中的共同作者。您可以尝试使用 swagger 将自己移除:

https://forge.mql5.io/api/swagger#/repository/repoDeleteCollaborator

需要登录(页面顶部):


我试过这个(在将自己添加为测试账户的共同作者后),但收到了401响应状态(invalid provided OTP),这可能是因为我启用了双因素认证。 我不想关闭双因素认证;如果你愿意,可以自己试一试。

对我来说这简直是一片迷雾。它要我输入某个密钥,我上哪儿去弄?而且我怎么能成为那里的共同作者呢?

我完全明白,这篇帖子——或者说那玩意儿——是我自己不知从哪儿捡来的。但真正让我感到惊讶的是,我竟然无法删除这些不需要的垃圾内容。

Vladislav Boyko
Vladislav Boyko | 16 7月 2026 在 17:44
Aleksandr Slavskii #:
那我该怎么才能成为那里的合著者呢?

方法如下——请看下面的视频。

我猜你之前可能表达过兴趣,所以仓库所有者决定给你一个贡献的机会。

Vladislav Boyko
Vladislav Boyko | 16 7月 2026 在 17:50
Aleksandr Slavskii #:
它要求输入某种密钥——我到底该去哪儿弄到那个啊?

有一个选项可以使用用户名和密码登录。但我已经发现,只有当你是该代码库的管理员时,这种方法才有效。这几乎不可能,所以没必要在这上面浪费时间。


Vladislav Boyko
Vladislav Boyko | 16 7月 2026 在 18:54
Aleksandr Slavskii #:
如何从我的页面中移除他人的项目?

看来你没有技术能力自行取消协作者身份。

请尝试联系singwai,并请求他们将你从协作者列表中移除。

如果该用户没有回应,那么很可能只有 AlgoForge 管理员(应为 MQ 方面的人员)才能将你从协作者列表中移除。

使用凯利准则与蒙特卡洛模拟的投资组合风险模型 使用凯利准则与蒙特卡洛模拟的投资组合风险模型
几十年来,交易员们一直使用凯利准则公式来确定投资或赌注的最优资本配置比例,其目标是在最大化长期增长的同时,最小化破产风险。然而,对于个人交易者而言,盲目地依据单次回测的结果来遵循凯利准则往往是危险的,因为在实盘交易中,交易优势会随着时间的推移而减弱,并且过往业绩并不能保证未来的结果。在本文中,我将提出一种在 MetaTrader 5 平台中,为一个或多个智能交易系统进行风险分配的现实方法,该方法将融合来自 Python 的蒙特卡洛模拟结果。
外汇投资组合优化:风险价值理论与马科维茨理论的融合 外汇投资组合优化:风险价值理论与马科维茨理论的融合
外汇市场中的投资组合交易是如何运作的?我们如何将用于优化投资组合权重的马科维茨投资组合理论与用于优化投资组合风险的VaR模型结合起来?我们基于投资组合理论创建一个EA,一方面,我们将获得低风险;另一方面,获得可接受的长期盈利能力。
开发回放系统(第 71 部分):取得正确的时间(四) 开发回放系统(第 71 部分):取得正确的时间(四)
在本文中,我们将研究如何实现上一篇文章中所示的与回放/模拟服务相关的内容。就像生活中的许多其他事情一样,问题必然会出现。这次的情况也不例外。在这篇文章中,我们将继续改进。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
基于三维反转形态的算法交易 基于三维反转形态的算法交易
在三维K线上探索自动化交易的新世界。基于多维价格K线的交易机器人是什么样的?三维K线中的“黄色”簇群能否预测趋势反转?多维交易是什么样的?