迁移至 MQL5 Algo Forge(第 4 部分):使用版本和发布·综合运用
📘

迁移至 MQL5 Algo Forge(第 4 部分):使用版本和发布·综合运用

第 3/3 篇

「用标签钉住 develop 合并后的代码快照」

完成 article-17607 分支的任务改动后,先把它合并进 develop 而非 main。主分支选 main 还是 develop 在演示机制层面并不关键,当前阶段只合到 develop 就够了。 在 SimpleCandles 仓库的提交树里,原 article-17607 最新提交哈希为 432d8a0fd7;合并后 develop 的最新提交变为 001d35b4a7,这条记录两个分支汇合的提交就是合并提交。 借助 MQL5 Algo Forge 网页界面给合并提交打上 “v0.1” 标签。项目离终版尚远,小版本号本身就是在提示后续改动会很多;需注意该 Web 界面暂不支持带注释标签。 本地执行 git pull 后标签会同步,但 MetaEditor 不显示仓库标签,可在 Visual Studio Code 把鼠标悬停在提交树上,工具提示里会出现带 “v0.1” 的彩色标签。之后用 git checkout v0.1 即可切到该精确代码状态,或基于此拉出版本分支。外汇与贵金属自动化开发涉及实盘高风险,任何标签快照都只是代码里程碑,不代表策略有效性。

把稳定状态打成可分发版本

发布(Release)本质是给仓库某个代码状态打官方标:它代表你觉得这段逻辑已无明显硬伤、功能验证过,可以交出去给别人跑。和用什么语言写无关,EA、指标、脚本都能这么干。 除版本控制外,发布还承担两件实事:一是直接挂编译好的 .ex5 / .dll / .zip,用户不必自己开 MT5 编译;二是写清这次改了什么、修了哪个 bug,让人决定要不要更新。MQL5 Algo Forge 这类 CI/CD 能在分支合进 main 时自动出发布并传二进制,但得先配事件脚本,属于可选项,新手先手动跑通流程即可。 已有标签时,进仓库标签页,点目标标签旁的“发布新版”。表单里填发布名、目标分支、关联标签,再写发布说明,最后传附加文件(编译程序或文档链接)。存草稿或立即发布都行,发布后也能改描述、改名字——发布名不必和标签名一致。 我们实测过:先基于旧标签发了一版,随后把版本发布名称改掉、补上方案说明文章的外链,页面立刻对其他用户可见。高风险提示:外汇/贵金属 EA 即便标了“稳定版”,实盘仍可能因点差跳空失效,下载后务必先在策略测试器回测再上模拟。

◍ 画得少,看得清

把零散的 MQ5 源文件塞进 Algo Forge 之后,工作流最大的变化不是多了几个按钮,而是每一次提交都留下可追溯的改动节点。当前仓库离成熟产品还差一段距离,但回退到任意稳定版本已经只是几条命令的事。 对做价格行为策略的人来说,这种结构意味着你改一处均线过滤逻辑,不会再把整棵 EA 树搅乱;小布盯盘要接的外部指标仓库,也能照同样方式挂进来。外汇与贵金属杠杆高,版本乱了一次误单,比重写代码更贵。 剩下要做的,就是拿手头那个还没纳管的脚本开一次仓库,跑通提交与发布。门已经开好,复杂项目迟早要进。

常见问题

在合并完成的提交上打一个语义化标签(如 v1.2.0),标签就是不可变的快照,之后随时可切回该版本核对。
把通过测试的分支状态打成带版本号的发布包,别直接甩源码,用标签对应的发布物保证对方拿到的是同一份稳定代码。
可以,小布能按你打的版本标签梳理各版改动与稳定性,打开对应品种页就能直接看版本诊断,不用自己翻记录。
只保留触发决策的核心线,把辅助线设为隐藏或灰显,做到画得少看得清,避免视觉噪声掩盖关键价格行为。
用主.次.修订三段式(如 1.3.1),修订号随修复递增,出问题时按标签秒定位对应代码快照。