CryptoTradingAgents 背后
2025-07-23
前段时间在公众号上看到了一个关于 LLM 交易决策的项目开源了,因为之前就在用 freqtrade 交易,而且无论是一些看到的视频还是身边的一些信科朋友都在聊金融相关的大模型什么的,于是就把项目和论文 clone 了下来,想要看看这个项目做了什么样的创新。
这个项目主要还是在模型的应用方式上做了些事情,而不是微调基底模型什么的,本身使用的还是 GPT 等商用的模型。在我看来,其最重要的核心是一个多 Agents 模拟现实投资团队交易的决策流程(这点解读也得到了原作者的认可),而非依靠单个模型解读数据流。现有金融领域的 Agent 面临几个主要限制:一是缺乏真实的组织建模,未能模拟真实交易团队的复杂互动;二是沟通接口效率低,依赖自然语言导致信息丢失和上下文混乱;三是单个模型会有“认知负担”,陷入瓶颈。
这个项目设计了一个 LangGraph 框架,包括分析师团队、多空研究团队、交易主管、风险管理这样四个团队按一定次序传递报告与信息的工作流。分析师团队包括市场分析师、社媒分析师、新闻分析师和基本面分析师,他们从现实接口中获取现实数据,然后传递给特定的 Agent 分析,各司其职,生成专门的定向报告;多空研究团队根据分析师团队的报告进行多轮的市场多空辩论,反驳对方观点,在此过程中发掘利于多头或空头趋势的证据;交易主管则根据前面两个团队的报告和辩论历史制定初步的交易计划,此外,这个项目还引入了记忆反射机制,要求主管级别的 Agent 从过往的交易及其成效中吸取经验和反思,使用强化学习的方法来激励 LLM;虽然很常见,但是最让我有亲切感的就是风险管理团队了,这个项目把风险管理团队分为激进、中性和保守型分析师,对交易主管提出的初步交易计划进行辩论,最终交由风险主管做出最终决策。
在我看来,这个项目的亮点在于模拟现实交易决策团队、辩论和反思机制,尝试让 LLM 以人类团队的流程思考、尽力发掘数据中的信息、以及从过去中吸取教训。
不过,我也发现了一些可能可以优化的点:首先,市场数据仅输入给了市场分析师,其他的三个分析师虽然并不直接分析市场价格数据或 TA,但是也需要对当前价格进行判断,例如,市场消息中出现“XXX 股票上涨到 XXX”,LLM 在使用自身过时数据的情况下,很容易做出误判,因此,他们也有必要获得一些基础的市场数据;其次,仅由单个 LLM 分析市场数据和 TA 或许容易误判,对于比较重要的市场数据和技术分析指标,多个 LLM 或许可以缓解幻觉情况;此外,这个框架也少了一些“自定义性”,现实交易决策的做出是会带有明显的团队投资风格偏好的,若是能够将预设的投资风格偏好带入,其决策将更具有可行性。
我在 TradingAgents 的基础上重构了一个 CryptoTradingAgents,将目标市场从美股改为了加密货币市场,尽量实现了我认为可以优化的地方。在此过程中,也做了不少事情,对 TradingAgents 这一项目和技术的架构与工作流有了更深的了解,而不是仅仅只依靠他人的解读。不仅在知识上学到了很多从未接触的东西,解密了一些 Agent-Driven App 的工作机制,还在应用上逐渐探索和满足用户的需求,例如增加了自动发送报告、决策提取、点位预测、用 Mamba 模型预测价格、Streamlit UI 等一些东西,既在拓宽 TradingAgents 的边界,也在拓宽自己能力的边界,受益匪浅。
(BTW,基于这段时间的工作,我构建出了更适合自己使用的 TinyCryptoAgents,更快更经济,一周下来实现了不错的 ROI 🥳)