GIT:它是什么?(基础篇)
◍ 先搞懂 GIT 在 MT5 生态里的位置
GIT 本质是分布式版本控制系统,用来追踪代码变更、协同维护脚本。在 MetaTrader 5 的自定义指标与 EA 开发里,它不直接参与行情计算,而是管住你每一次 mq5 文件的改动历史。 一个实际现象:2024 年 9 月 9 日某社区示例帖获得 735 次查看、4 条评论,作者 Daniel Jose 借 GIT 提交了可复用的指标原型——这说明 MT5 圈层已习惯用版本库托管策略代码,而非论坛贴纯文本。 对外汇与贵金属交易者而言,直接 clone 他人仓库存在逻辑黑箱与高风险,开 MT5 前应先本地 diff 提交记录,确认无隐藏的订单操纵指令再编译。
「为什么 MQL5 开发者该碰一下 GIT」
做 MQL5 开发不一定非要用版本工具,但如果你在 MT5 里改 EA 或指标代码,隔几天才发现某次改动把逻辑搞崩了,就会明白有个回溯手段多重要。原文作者提到,这种「改完当时没事、几周后才爆雷」的情况,在手工编码里比多数人以为的更常见。 GIT 最初为 Linux 设计,现在 Windows 也能跑,不过原文明确点出:在 Windows 11 上它不如 Windows 10 好使,写本文时建议交易者开发者尽量留一个 Win10 环境。MQL5 编辑器本身没内置 GIT 集成,这不阻碍你用命令行或外部客户端管自己的 .mq5 文件。 如果你从没碰过 GIT,最实在的起步动作是:装好 Git 后,对你常用的 Experts 或 Indicators 文件夹执行一次 git init,每次大改前 commit 一版。哪天 MT5 回测突然不对劲,git diff 能直接告诉你哪行策略代码动了手脚。外汇与贵金属交易本身高风险,自动化代码出错会放大亏损,版本回溯至少能少踩这类坑。
用 GIT 给 MQL5 改代码留痕
MetaEditor 本身不带版本控制,和 Visual Studio 那种原生集成 GIT 的编辑器不同,要在 MT5 环境里用 GIT 得先手动做一套特殊配置。网上绝大多数 GIT 教程都默认你用带集成的编辑器,直接照抄会卡在提交环节,所以这一步不能跳过。 对交易者来说,GIT 的核心价值不是协作,而是把「假设—修改—回测」的过程记下来。比如你拿小布的回放系统改个入场逻辑,隔两周又改一次止损,没有版本工具,很难说清第二次相对第一次到底动了哪几行。GIT 会把每次改动高亮标出,形成一份可回溯的变更记录。 它的底层结构其实很直白:一串带链接的变更节点,类似每日交易日记。每个节点(NODE)存一个状态,连线(EDGES)表示演进方向;规模上去后就是一张有分支的图。想真吃透,建议从线性列表入手,再过渡到树和图,别一上来啃图论。外汇与贵金属杠杆高,回测假设失效是常态,留痕能帮你快速定位是哪次改动把策略带偏。
◍ 把 GIT 接进 MetaEditor 的底步
先在 git-scm.com 取下最新安装包,Windows 用户一路默认安装即可,但建议把默认编辑器改成自己顺手的(比如 NotePad++),对应全局变量是 CORE.EDITOR,装完随时能改。 装好后右键菜单里会有 Git GUI Here 和 Git Bash Here,本文只走 GUI。顺带一提:Windows 11 默认藏起了那两个右键项,用 Win10 更省事,不过我们实际并不需要它们,只是有会更舒服。 打开 MetaEditor,去设置里打开「显示隐藏文件」,再用资源管理器把系统隐藏项勾上并应用。随后右键选 Git GUI Here → Create New Repository,浏览到 MQL5 目录确认创建,会生成 .git 文件夹。 刚建完仓库时 GUI 里满屏都是 EX5 这类编译产物,得进 .git/info/exclude 把噪音滤掉。原始排除文件长这样: [CODE] # git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ [/CODE] 上面这段代码是 exclude 文件出厂内容:前几行都是注释,真正起作用的是 git ls-files 那行示范,以及被注释掉的 *.[oa]、*~ 这类忽略规则。把注释清掉,加上 *.ex5 等行,保存后回 Git GUI 点 Rescan,EX5 就从列表消失了。 过滤越干净,后面提交越轻松。记住:真正要备份的只是 .git 文件夹,MQL5 下其他文件靠它跟踪即可,能省大量空间,也可推到 GitHub 做云端容灾。 最后选 Repository → Git Gui → Options(或全局 Option),填好用户名和邮箱。建议设成 Global,以后任何仓库都免重复配置。到这步,本地 GIT 与 MT5 的接驳底座就搭好了。
# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with &class="macro">#x27;#&class="macro">#x27; are comments. # For a project mostly in C, the following would be a good set of # exclude patterns(uncomment them if you want to use them): # *.[oa] # *~