用 LLM 制定并微调交易策略:从零理解外汇 EA 的模型底座(基础篇)
(1/2)· 想让大模型替你跑外汇策略,却卡在“训练完为何还要微调”?这篇先铺地基
「把私有LLM塞进EA前的目录与定位」
这篇系列第5部分拆的是用LLM开发并测试交易策略的第一截,落点是微调而不是提示词工程。原文发布于2025年3月4日,MetaTrader 5语境下,截至发文页面对外显示阅读量1348、评论3条,作者Yuqiang Pan。 全篇结构已经排好:概述、大模型微调、制定交易策略、数据集创建、微调模型、测试、结论、参考。也就是说,这一节只是把路线铺开,真正动手改参数和跑回测在后面几节。 外汇与贵金属本身高杠杆、高波动,用LLM辅助生成的策略未经严格样本外验证前,实盘胜率倾向偏低,别急着挂真金白银。
◍ 从训练到落地的四步路径
上一篇文章把 GPU 训练大模型跑通了,但没碰策略制定和回测。训练出来的模型最终得拿来服务交易,所以这一篇起要逐步把语言模型接进外汇策略里实测,过程不简单,得拆步骤走。 整套流程预计要分几篇文章才能做完:先定交易策略;再按策略造数据集并微调模型(以 GPT2 为例),让输入输出贴合策略;接着做模型推理,融合策略产出 EA,推理阶段还要选框架并做 flash-attention、量化等优化;最后用 MT5 历史回测验 EA。 有人会问,自己数据都训过模型了为何还要微调?这篇就回答这事。除了微调,RAG 检索增强和 Agent 智能体也能用,但全塞一篇太长太乱,本文只做第一步和第二步,并给一个 GPT2 微调实例。外汇与贵金属杠杆高,回测通过也不代表实盘概率占优,任何步骤都要先在 MT5 策略测试器里验证。
把通用大模型改造成盯盘助手的几条现实路径
做价格行为分析的交易助手,未必需要从零训一个 Transformer。现阶段的 LLM 基本都基于带注意力机制的 Transformer,参数量大,从头训练几十亿 token 通常要集群跑几十小时到几天,对个人开发者基本不现实——除非你手头有多张 80G 显存卡且电费不计。 更务实的做法是在通用预训练模型上做下游微调,达到领域自适应。主流分三类:用标注对话集做的监督微调、用未标注文本继续预训练的无监督微调、以及先训一个奖励模型给多个输出排序再用 PPO/DPO 等强化学习对齐的 RLHF 类方法。 具体落地常用两条线。其一是全参数微调:把 8B 模型全量更新,大约要吃满 2 张 80G 显存(合计约 160G 多卡),普通散户开发者基本望而却步。其二是 PEFT 系列,只动少量参数。Adapter-Tuning 在 Transformer 里插一个「降维—非线性—升维+跳过连接」的小结构,原模型冻结;Prompt-Tuning 仅在输入前加连续嵌入前缀,只训前缀;Prefix-Tuning 用 MLP 编码前缀且不进 LLM 输入流;P-Tuning v2 把连续提示铺到每一层,仅微调 0.1%–3% 参数就能逼近全量微调。 LoRA 及其变体在量化交易圈更常用:冻结原权重,在解码层加低秩矩阵 A、B,显存门槛降约 3 倍,部署时还能把 A、B 合并进原权重不增推理延迟。AdaLoRA 按奇异值给不同层分配不同秩,靠近末尾的层秩更高;QLoRA 用 4 位 NormalFloat 量化预训练模型再反传梯度到 LoRA,单张 48GB GPU 可微调 65B 模型且不掉点。外汇与贵金属行情序列噪声大、跳空频繁,用这类方法做领域适配仍属高风险实验,结论仅代表「可能」改善胜率筛选。 下一节会直接给一个 GPT-2 全参数微调的可运行样例,你可以照着在本地把行情注释数据喂进去验证泛化边界。
「用均价差给 LLM 定买卖规则」
这里给大语言模型定了一条极简策略,先不碰 EA:从客户端取某货币对最近 20 个报价收盘价,算均值记为 A;再让 LLM 预测同期未来 40 个报价的开盘价,算均值记为 B。 判断只看 B 与 A 的大小——B 大于 A 倾向买入,B 小于 A 倾向卖出,两者相等或极接近就空仓。外汇与贵金属杠杆高、滑点大,这套规则只是策略原型,实盘触发前须在 MT5 用历史数据验证信号频率。 原文留了替换口子:把输入长度做成动态,预测总长设为 60 减输入长;或换波浪、鳄鱼、乌龟等逻辑,但模型输入输出要同步改。下一阶段才是建数据集做微调。