ContestTrade核心竞赛机制:LightGBM如何预测并优选最强数据智能体

【免费下载链接】ContestTrade

A Multi-Agent Trading System Based on Internal Contest Mechanism

项目地址: https://gitcode.com/gh_mirrors/co/ContestTrade
点击查看 免费下载

ContestTrade 是一个基于内部竞赛机制(Contest Mechanism)的多智能体(Multi-Agent)量化交易框架。它的核心思路是:让多个数据智能体(Data Analysis Agent)各自从海量市场数据中提炼"文本因子",再由 LightGBM 机器学习模型根据历史收益表现预测每个智能体未来谁更强,最终优选出最强的一批数据智能体参与后续研究决策。本文将拆解这套"内部选秀"机制的完整链路。

🏆 双竞赛架构:模拟一家投资公司

ContestTrade 的工作流程模拟了一家投资公司的动态决策过程,由数据处理阶段和研究决策阶段两个竞赛管道组成:

ContestTrade双竞赛架构:数据智能体竞赛与研究智能体竞赛

  • 第一轮竞赛(数据侧):多个数据智能体并行产出因子,内部竞赛机制评估每个因子的潜在价值,选出"冠军"因子组合;
  • 第二轮竞赛(研究侧):研究员智能体基于冠军因子提交交易提案,再次通过竞赛与 LightGBM 预测进行权重分配,合成最终配置。

数据智能体自身的产出流程如下:从新闻、研报、财报等多源数据出发,经过"泛读 → 精读 → 总结 → 因子生成"四步,最终输出一段结构化的文本因子:

ContestTrade数据智能体工作流:多源数据到文本因子

📊 第一轮竞赛:给每个数据智能体"算分"

第一轮竞赛的主控制器是 data_contest.py,它把竞赛拆成 5 个清晰步骤:

  1. 加载历史因子:data_manager.py 从 agents_workspace/factors 目录加载每个智能体最近 5 个交易日的因子文件(每天一个 YYYY-MM-DD_09-00-00.json);
  2. 评估缺失的 reward:对尚未评分的历史因子,evaluator.py 用 LLM 把因子文本拆成独立的 observation(观点/事实),再识别出受影响的个股或行业(mention → symbol),让 LLM 按 -2 到 2 的五档标准预测次日表现,最后用真实次日开盘价变化计算 reward(评分 × 实际涨跌幅);
  3. 预测因子排序:这一步就是 LightGBM 登场的地方(见下文);
  4. 选择优质智能体:按预测得分排序,采用 top-k 策略取前 3 名;
  5. 筛选当天因子:只保留冠军智能体当天产出的因子,传递给研究团队。

💡 关键设计:reward 不是拍脑袋的分数,而是"LLM 预测方向 × 真实市场表现"的闭环反馈,这让每个智能体的历史成绩单客观可验证。

🤖 LightGBM 预测:用5天成绩单预测明天谁最强

预测器实现在 predictor.py,整个机制可以概括为"双模型 + 夏普比率":

① 特征工程 —— 把5天reward变成5个特征

对每个智能体过去 5 天的 reward 序列(缺失日用局部中位数填充),构造滚动统计特征:

特征含义
reward_mean_1d最近 1 天平均收益
reward_mean_3d / reward_std_3d近 3 天均值与波动
reward_mean_5d / reward_std_5d近 5 天均值与波动

② 双模型预测 —— 同时预测"均值"和"波动"

项目内置了两个训练好的 LightGBM 回归模型(预训练模型直接随仓库提供):

两者相除得到预测夏普比率(pred_mean / max(pred_std, 0.01)),作为该智能体的预测得分。这个设计的巧味在于:不仅奖励"赚得多",还惩罚"波动大"——一个天天大起大落和稳扎稳打的智能体,即使平均收益相同,后者也会胜出。

③ 优雅降级 —— 模型不可用时的兜底

如果模型文件缺失或加载失败(use_lightgbm 为 False),预测器自动回退到"5 天 reward 简单均值"策略,保证系统永远不会因为模型问题而停摆。研究侧的预测器 research_predictor.py 更进一步:它用 12 个特征(5 个历史收益特征 + 7 个 LLM 评审团的 judge 评分特征)训练模型,并支持通过 train_model.py 基于近 180 天历史信号重新训练。

🎯 优胜者晋级:从因子冠军到交易信号

数据侧选出的 top-3 冠军因子会作为"背景情报"喂给研究团队。每个研究员智能体携带一条个性化"交易信念"(配置在 belief_list.json),基于 ReAct 循环(观察 → 思考 → 工具调用)使用选股器、网页搜索等工具进行深度分析,最终提交交易信号:

ContestTrade研究智能体工作流:从因子到交易信号

第二轮竞赛(research_contest.py)同样使用 LightGBM 预测各研究员的夏普比率,再由 research_weight_optimizer.py 按"夏普比率加权"分配权重——预测夏普为负的智能体直接淘汰,为正者按比率占比获得权重,最终合成一份统一的投资组合建议。

📈 实战表现:竞赛机制的价值

在论文的滚动回测对比中,ContestTrade 的组合净值显著跑赢 MACD、RSI&KDJ、LSTM 等其他策略,也跑赢 CSI All Share 基准:

ContestTrade与其他策略的回测净值对比曲线

这说明"让智能体内部竞争 + 用机器学习预测谁更靠谱"的机制,确实能有效过滤噪声信号,让最终决策只由最稳健的洞察驱动。

📁 关键源码索引

想深入阅读这套机制的实现,可以从以下入口开始:

⚠️ 写在最后

ContestTrade 是开源研究项目,仅供学习与研究。LightGBM 的预测得分本质上是"历史表现的统计外推",市场风格切换时可能失效;所有输出均为 AI 模型推演结果,不构成投资建议。投资有风险,入市需谨慎。

【免费下载链接】ContestTrade

A Multi-Agent Trading System Based on Internal Contest Mechanism

项目地址: https://gitcode.com/gh_mirrors/co/ContestTrade
点击查看 免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值