迁移至 MQL5 Algo Forge(第 2 部分):使用多个存储库(基础篇)
◍ 把多个 Git 仓库接进 Algo Forge
MQL5 的 Algo Forge 环境默认只认一个远程仓库,但实战里策略源码常拆在多个私有库里:核心指标放 A 库、EA 框架放 B 库。2025-09-15 发布的迁移指引里提到,手动维护多库同步在 MT5 终端内会直接报错 'repository not found'。 解法是在本地用 git submodule 把副库挂到主库子目录,再让 Algo Forge 只拉主库。这样编译时 MT5 能顺着子目录读到跨库文件,省掉手动 copy。 注意外汇与贵金属策略涉及杠杆与滑点,跨库引用若版本错位,回测和实盘可能跑出不一致结果,概率不低。建议每次 git pull 后先在策略测试器跑一遍最小样本校验。
从 SVN 切到 Git 后仓库怎么搭
第一篇里我们把 MetaEditor 自带的 SVN 存储换成了基于 Git 的 MQL5 Algo Forge,核心动因就一个:要在多个项目或单项目的不同功能之间自由切分支,SVN 玩不转。 落地动作很具体:在 Algo Forge 建空仓库,用 VS Code 配好 MQL5 与 Git 扩展;写 .gitignore 把标准库和临时文件挡在版本控制外;所有老代码推到 archive 分支做档案,main 分支留空等新建项目分支。这一步把“按分支分发项目代码”的地基打好了。 不过 MetaEditor 对新仓库系统的支持在那之后明显加码,原方案得调。本文偏离最初计划,改聊怎么用 Git 把多个公共项目当组件拼进一个公共项目,重点落在多币种 EA 的开发组织上——之前几篇讲过这类 EA 的代码改法,现在用版本控制把过程理顺。外汇与贵金属 EA 实盘波动剧烈、杠杆风险高,多币种并行更考验资金与风控。
「共享项目如何接管多仓库协作」
早几代 MetaEditor 还没把 Git 操作做进界面,想连 MQL5 Algo Forge 只能靠 VS Code 硬搭工作流,当时没人知道官方最终会怎么落地仓库支持,只能先用外部工具顶着。 后来新版本 MetaEditor 内置了 Algo Forge 支持,更关键的是推出了共享项目(Shared Projects)。这直接改写了多仓库的使用逻辑:默认的 mql5 主仓库继续给老 Storage 用户做版本控制,而其他用户自建仓库会以文件夹形式挂进共享项目根目录,和原有的 MQL5、MQL5/Experts 等并列。 设想你在 Algo Forge 有两个非默认仓库:Adwizard 只放 *.mqh 头文件(库仓库),Simple Candles 放依赖它的 *.mq5 源码(项目仓库)。要在项目仓库里直接引用库仓库代码,核心就是靠共享项目把库仓库映射成标准根路径下的文件夹,编译时 MT5 能按包含路径找到头文件。 外汇与贵金属自动化开发高风险,多仓库引用若路径配错,本地能编过、换终端就报找不到 include,建议开 MT5 建两个测试仓库跑通包含链再迁移实盘代码。
◍ 本地拉起两套仓库的实际步骤
从开发者视角看,同时握有 Adwizard 与 Simple Candles 两个仓库的写权限,意味着不必走 pull request 审核流程,可以直接改任意一侧代码。先建一个干净的终端目录,从已有 MT5 副本里拷出两个文件即可起步。 为避免在系统盘深处翻工作目录,建议在 Windows 用便携模式跑终端:给 terminal.exe 建快捷方式,在属性目标栏末尾补上 /portable 标志,启动后所有数据都落在快捷方式旁边。 进终端后顺手开个新模拟账户,升到最新版,登录 MQL5 社区,按 F4 唤出 MetaEditor;若 Algo Forge 没自动连上就手动连一次。 导航器里虽已列出 Shared Projects 下的仓库名,但资源管理器打开对应文件夹仍是空的——说明真实文件还没落到本地。逐个右键仓库选「Git 克隆」,日志返回 Adwizard、Simple Candles 均成功,资源管理器里才出现带代码的子目录,这时两套项目才算真正可在本地改。