自定义组合管理 —— 从选股到跟踪的"最后一公里"


为什么需要这个功能?

无论你是用 Python 量化选股、通过龙虾/Hermes 等大模型平台智能筛选,还是手动研究后整理出一份标的清单,最终都面临同一个问题:选出来的股票怎么持续管理?

过去,你可能用 Excel 记录、用备忘录保存,或者每次重新跑一遍代码。现在,Tushare 提供了 自定义组合 功能,让你在选股流程结束后,一行代码就能将结果保存到云端,随时查看、随时更新、随时删除——真正打通"选股 → 入库 → 跟踪 → 分析"的完整闭环。

核心价值

痛点 解决方案
选股结果散落各处,无法统一管理 一行代码保存到云端组合,多端可查
每次分析都要重新构造股票列表 直接调用组合,省去重复工作
大模型选出的标的无法持久化 龙虾/Hermes 输出后直接 p_save 入库
组合调仓记录没有时间戳 系统自动记录创建和更新时间
想给不同策略分组管理 最多 200 个组合,按策略/行业/主题自由分类

四个接口,一分钟上手

import tushare as ts
pro = ts.pro_api()

1. 查看我的所有组合 — p_list

df = pro.p_list()
print(df)

无需任何参数,一眼总览你名下所有组合的名称、描述和时间信息。

输出示例:

   id   name         desc                  create_time          update_time
0  51  我的股票池  默认选取股票10只股票  2026-03-19 10:40:45  2026-03-19 10:45:57
1  41    组合1        测试组合1          2026-03-13 14:31:58  2026-03-13 14:31:58

2. 查看某个组合的成分 — p_get

df = pro.p_get(name="我的股票池")
print(df)

返回该组合内的所有标的代码、名称、权重、类型等详细信息。

输出示例:

     ts_code          create_time          update_time
0  000001.SZ  2026-03-19 13:21:03  2026-03-19 13:21:03
1  000002.SZ  2026-03-19 13:21:03  2026-03-19 13:21:03
2  000004.SZ  2026-03-19 13:21:03  2026-03-19 13:21:03
...

3. 创建/更新组合 — p_save

# 假设你通过量化筛选得到一批股票
selected = pro.stock_basic(exchange='SSE', list_status='L').head(10)

# 一行代码保存为组合
pro.p_save(name="量化精选池", desc="ROE>15%且PE<20的标的", 
           items=selected[['ts_code','name']].to_dict(orient='records'))

关键点:

  • 组合名称相同时自动覆盖更新(即"调仓")
  • items 支持 ts_code(必填)、name、weight、ts_type、desc等字段
  • 可以设置权重(weight)用于后续组合收益归因分析

输出示例:

   id    ts_code   name  desc  weight          create_time          update_time
0  44  000001.SZ  平安银行  None     0.0  2026-03-19 10:40:45  2026-03-19 10:40:45
1  45  000002.SZ   万科A  None     0.0  2026-03-19 10:40:45  2026-03-19 10:40:45
2  46  000004.SZ  *ST国华  None     0.0  2026-03-19 10:40:45  2026-03-19 10:40:45
...

4. 删除组合 — p_delete

pro.p_delete(name="不再跟踪的组合")

输出示例:

   status
0    True

典型使用场景

场景一:量化策略输出

# 多因子选股 → 直接入库
result = my_factor_model.select_top(n=20)
pro.p_save(name="多因子Top20_202607", items=result.to_dict(orient='records'))

场景二:大模型对话选股

在龙虾或 Hermes 平台中,让大模型帮你筛选后,平台会自动调用 p_save将结果存入你的组合,下次打开即可查看。

场景三:组合调仓跟踪

# 每月初更新一次组合,旧成分自动被覆盖
new_pool = run_monthly_screening()
pro.p_save(name="月度精选", items=new_pool.to_dict(orient='records'))

接口参数速查

p_list(组合列表)

参数 类型 必选 说明
name str 组合名称(不传则返回所有组合)

p_get(成分查询)

参数 类型 必选 说明
name str 组合名称

p_save(创建/更新)

参数 类型 必选 说明
name str 组合名称
desc str 组合描述
items list 成分列表,每个元素为 dict

items 元素字段:

字段 类型 必选 说明
ts_code str 标的代码(如 000001.SZ)
ts_type str 类型(股票、基金、指数等)
name str 名称
desc str 描述
weight float 权重(如 0.1)

p_delete(删除组合)

参数 类型 必选 说明
name str 组合名称

小贴士

  • 每位用户最多可创建 200 个组合,足以覆盖不同策略、不同周期的需求
  • 所有数据存储在 Tushare 云端,无需担心本地丢失
  • 组合与 Tushare 其他数据接口无缝衔接——保存后可直接用 ts_code 列表批量拉取行情、财务等数据进行后续分析
  • 建议在组合名称中加入日期或策略标识(如“动量策略_202607”),便于后续回溯
置顶