迁移至 MQL5 Algo Forge(第 3 部分):在您自己的项目中使用外部仓库·进阶篇
(2/3)· 不止自己维护仓库,第三方 SmartATR 库现在就能拉进 EA 编译链
「本地分支推不上去的根因」
SmartATR 仓库只带一个 main 分支,我们在 MetaEditor 里右键项目文件夹新建了 develop 分支,界面显示分支列表已更新,点推送后日志也回显成功。可去 MQL5 Algo Forge 网页端看原仓库,什么都没变。 接着我们在报错行前加注释标明待修点,从 MetaEditor 提交并推送,日志依旧显示成功。网页端复查,远程仓库依然毫无变化。这种“本地全绿、远端不动”的反常,只能换工具查。 用 VS Code 打开本地克隆目录,提交记录确实在,但编辑器提示“建议发布 develop 分支”——说明远程根本没有这个分支,提交也没出去。手动发布时报错,日志指向一个硬限制:当前账号对原仓库没有写入权限。 这很合理,否则任何人都能乱改,项目会迅速失控。后果是本地改动能留着,却无法同步远程,等于丢了外部仓库那份备份安全网。外汇与贵金属指标开发高风险,本地单点存储一旦损坏就无回滚余地。 值得警惕的是,纯在 MetaEditor 里操作时,全程没有任何异常信号,日志漂亮得像真推成功了。实际是推到一个不存在的远端。该问题至少在当前版本仍未暴露给用户,开 MT5 验证前先确认自己对仓库的权限层级。
在 Algo Forge 里派生仓库而不是本地克隆
不想碰命令行 Git 的开发者,可以走 MQL5 Algo Forge 的 web 界面派生原始仓库。派生是在平台内建一个完整、独立的副本:派生那一刻,源项目的所有提交历史、分支和文件都被继承,但从此它挂在你自己账户下,是自主仓库。 你随便改自己的派生,不会影响原仓库;原仓库后续更新也能通过技术关联拉回来合并。这和「克隆」不同——克隆只是某台电脑上的本地副本,派生则是在平台上另立远程仓库、归你所有。 派生后在 MetaEditor 的 Shared Projects 列表里直接可见,并能从 MT5 内一键克隆到本地。对外汇、贵金属这类高波动品种做 EA 二次开发时,用派生隔离改动能降低把实验代码误推回上游的概率。
◍ 派生仓库的同步链路实测
在 MQL5 Algo Forge 里派生 FMIC 仓库后,分支会直接出现在 MetaEditor 的 Shared Projects 列表下,本地克隆一次即可拿到完整副本。这条链路的关键是:上游提交先落到平台上的派生,再下沉到本地克隆,而不是反过来。 我们让上游作者提交了一个 Heikin Ashi 示例的 README.md。Web 界面很快弹出变更通知,但本地克隆和平台派生当时都还没动。本地历史最后一条提交停在 2025 年 8 月 27 日,上游的新提交则在更晚时间。 打开派生的 Web 页面,系统提示 main 分支比原始仓库落后 3 个提交,并给出同步按钮。点完后提交历史里出现 3 条 2025 年 9 月 5 日的记录,此前本地确实没有。说明原始仓库的提交已成功经平台派生中转进本地。 若想让每次拉取都顺带更新派生,可按 GitHub 的上游(upstream)配置指南加一个 remote。但只走 MetaEditor + Web 界面时,这一步多余——平台按钮已经替你做了中转同步。外汇与贵金属自动化涉及高风险,任何仓库同步机制都不构成策略收益保证,实盘前请在 MT5 策略测试器自行验证。
「把 SmartATR 原仓派生到你自己名下」
在 MQL5 Algo Forge 的 web 界面里做派生,第一步是在「探索」栏直接搜 SmartATR。搜索结果里会混进别的用户 fork 出来的分支,真正原始的那个要往下滚,认准 steverosenstock/SmartATR 这行再点进去。 点派生按钮后跳到创建页,这里能改你本地列表里的仓库名、勾选要带哪些原分支、顺手编辑描述。默认派生就是原仓的精确副本,对想改代码的人来说正合适,直接点「派生仓库」即可,页面会提示创建成功。 本地动手前,先把之前克隆的原 SmartATR 文件夹删掉。若 MetaEditor 还开着,去 Shared Projects 右键菜单点「刷新」,新派生仓的文件夹才会冒出来,再从它的右键菜单选「Git 克隆」就能拉到本机。克隆成功提示一出,你就可以在 MT5 里改 SmartATR 的参数或逻辑了——外汇与贵金属品种波动剧烈,改完先在策略测试器用历史数据跑一遍再上模拟盘。
在 MetaEditor 里绕开分支命名坑
想给 SmartATR 指标打补丁,第一步是在 MetaEditor 里开新分支。起名时写 fixes/news-impact,工具会自动把斜杠换成连字符,变成 fixes-news-impact——这是 MetaEditor 的硬限制,只认拉丁字母和连字符,Git 本身和网页端其实都允许斜杠。 我们在 MQL5 Algo Forge 网页端强行建了带斜杠的 fixes/cast-warning 分支做验证。分支能建出来,MetaEditor 里也能切过去,但一执行拉取就报错了。这说明网页端和本地客户端的命名规则并不互通,本地协作别碰斜杠。 切回 fixes-news-impact 后,我们注释掉引发编译错误的代码段,指标顺利编译通过。右键上下文菜单选 Git 提交,对话框里只改了一个文件,顺手写了修复说明再按 OK,改动就推到了远端分支。 此刻本地已能正常跑修正版,仓库里也有了安全副本。不过这版只是临时禁用功能而非真优化,所以先不点“新拉取请求”。指标修通了,接下来就能并进 Simple Candles 项目里用。