龙虎榜是A股最透明的"底牌"——每天涨停跌停、换手异常的个股,交易所会公开买卖前5大席位。本文介绍如何用Python+TuShare获取龙虎榜数据,从机构动向、游资操盘、板块热度3个维度做深度分析,辅助短线交易决策。## 一、龙虎榜数据的价值做短线的朋友都知道"跟着主力走",但主力是谁?在哪里?龙虎榜是唯一能让我们直接看到的答案。龙虎榜公开条件(沪深交易所):- 日涨跌幅偏离值±7%- 日换手率达20%- 日振幅达15%- ST/*ST涨跌幅偏离值±5%**关键看点:**1. 机构专用席位:代表公募/私募/险资等大资金,机构集体买入=中期利好信号2. 知名游资营业部:短线操盘手,跟着做有肉吃但也有坑3. 买卖净额:净买入=主力看多,净卖出=主力出逃## 二、TuShare获取龙虎榜数据### 2.1 基础数据获取pythonimport tushare as tsimport pandas as pd# 初始化(替换为你自己的token)pro = ts.pro_api('你的token')def get_daily_dragon(date='20260804'): """获取某日龙虎榜明细""" df = pro.top_list(trade_date=date) return df# 查看字段df = get_daily_dragon()print(df.columns.tolist())# ['ts_code', 'trade_date', 'name', 'close', 'pct_change', # 'turnover_rate', 'amount', 'mill_amount', 'buy', 'sell', ...]返回字段解读:| 字段 | 含义 ||------|------|| ts_code | 股票代码 || name | 股票名称 || close | 收盘价 || pct_change | 涨跌幅 || buy | 买入额(万元) || sell | 卖出额(万元) || buy_rate | 买入占总成交比例 || sell_rate | 卖出占总成交比例 |### 2.2 获取营业部席位详情pythondef get_top_detail(date='20260804'): """获取龙虎榜买卖前5大席位详情""" df = pro.top_detail(trade_date=date) return dfdetail = get_top_detail()print(detail.head(10))# 包含:营业部名称、买入/卖出金额、排名等## 三、3个维度的深度分析### 3.1 维度一:机构动向追踪机构专用席位是"聪明钱"的代表,当多只个股同时出现机构买入时,值得重点关注。pythondef track_institutional(date='20260804'): """追踪机构席位买入""" detail = get_top_detail(date) # 筛选机构专用席位(买方) institutional = detail[ (detail['exalter'].str.contains('机构专用', na=False)) & (detail['side'] == '买入') ] # 按股票聚合,计算机构净买入总额 result = institutional.groupby(['ts_code', 'name']).agg({ 'buy': 'sum', 'sell': 'sum' }).reset_index() result['net_buy'] = result['buy'] - result['sell'] return result.sort_values('net_buy', ascending=False)inst = track_institutional()print("=== 机构净买入TOP10 ===")print(inst[['ts_code', 'name', 'net_buy']].head(10))解读技巧:- 单只个股出现3家以上机构买入 → 强势信号- 机构买入但股价在低位 → 可能是建仓期- 机构出现在卖方 → 需要警惕### 3.2 维度二:游资行为识别知名游资营业部有鲜明的操盘风格,识别它们可以判断短线走势。python# 常见知名游资营业部FAMOUS_DESKS = [ '华鑫证券有限责任公司上海松江证券营业部', # 松江路 '东方财富证券股份有限公司拉萨团结路第二证券营业部', # 拉萨帮 '中信证券股份有限公司上海溧阳路证券营业部', # 溧阳路 '国泰君安证券股份有限公司上海江苏路证券营业部', # 江苏路]def detect_hot_money(date='20260804'): """检测知名游资动向""" detail = get_top_detail(date) hot_money_hits = [] for desk in FAMOUS_DESKS: hits = detail[detail['exalter'].str.contains(desk[:6], na=False)] if not hits.empty: for _, row in hits.iterrows(): hot_money_hits.append({ '游资': desk[:10], '股票': row['name'], '方向': row['side'], '金额(万)': row['buy'] if row['side'] == '买入' else row['sell'], }) return pd.DataFrame(hot_money_hits)hm = detect_hot_money()print("=== 今日游资动向 ===")print(hm)游资风格总结:- 拉萨帮:偏好涨停板,隔日高抛,跟盘要快- 松江路:喜欢低位启动,持仓周期稍长- 溧阳路:偏好题材股,快进快出### 3.3 维度三:板块资金热度通过龙虎榜统计各行业板块的买卖净额,判断当前市场主线。pythondef sector_heatmap(date='20260804'): """龙虎榜板块热度统计""" df = get_daily_dragon(date) # 通过板块映射(需要额外的行业数据) # 这里用股票名称中的关键词简单分类 sector_keywords = { '新能源': ['锂', '电池', '光伏', '新能'], '半导体': ['芯片', '半导体', '微电', '集成'], 'AI': ['智能', '算力', '数据', '软件'], '消费': ['食品', '饮料', '医药', '生物'], '金融': ['银行', '证券', '保险', '信托'], } results = {} for sector, keywords in sector_keywords.items(): mask = df['name'].apply(lambda x: any(k in str(x) for k in keywords)) sector_df = df[mask] results[sector] = { '上榜数': len(sector_df), '总买入(万)': sector_df['buy'].sum(), '总卖出(万)': sector_df['sell'].sum(), '净买入(万)': sector_df['buy'].sum() - sector_df['sell'].sum(), } return pd.DataFrame(results).T.sort_values('净买入(万)', ascending=False)heat = sector_heatmap()print("=== 龙虎榜板块热度 ===")print(heat)## 四、实战应用:构建龙虎榜监控体系将上述分析整合为一个每日复盘工具:pythondef daily_dragon_report(date=None): """每日龙虎榜综合报告""" if date is None: date = pd.Timestamp.now().strftime('%Y%m%d') print(f"\n{'='*50}") print(f"📊 龙虎榜日报 - {date}") print(f"{'='*50}") # 1. 上榜概览 df = get_daily_dragon(date) print(f"\n📋 今日上榜股票:{len(df)}只") print(f" 涨停:{len(df[df['pct_change'] >= 9.5])}只") print(f" 跌停:{len(df[df['pct_change'] <= -9.5])}只") # 2. 机构动向 inst = track_institutional(date) if not inst.empty: print(f"\n🏢 机构净买入TOP5:") for _, row in inst.head(5).iterrows(): print(f" {row['name']}({row['ts_code']}) " f"净买入{row['net_buy']:.0f}万") # 3. 游资动向 hm = detect_hot_money(date) if not hm.empty: print(f"\n🔥 知名游资动向:") for _, row in hm.iterrows(): print(f" {row['游资']}... {row['方向']} {row['股票']} " f"{row['金额(万)']:.0f}万") # 4. 板块热度 heat = sector_heatmap(date) if not heat.empty: print(f"\n📈 板块热度排名:") for sector, row in heat.iterrows(): print(f" {sector}:上榜{int(row['上榜数'])}只 " f"净买入{row['净买入(万)']:.0f}万")# 执行daily_dragon_report('20260804')## 五、踩坑记录1. 数据延迟:龙虎榜数据一般收盘后18:00-19:00才更新,不要提前查2. 席位识别:机构席位显示"机构专用",但不同券商的游资席位需要自己维护列表3. 数据质量:TuShare的top_detail接口偶尔有缺失,建议用top_list做交叉验证4. 频率限制:龙虎榜接口调用频率不高,建议每天只取一次缓存到本地## 六、总结龙虎榜是A股最透明的"主力底牌",通过3个维度分析可以发现:1. 机构在买什么 → 中期方向2. 游资在做什么 → 短线节奏3. 哪个板块最热 → 市场主线配合TuShare的自动化获取,每天5分钟就能掌握主力资金动向。代码可直接复用,建议加入每日复盘流程。—本文为TuShare实战系列第10篇,关注我获取更多A股量化实战内容。有问题欢迎评论区交流!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐