本文所有内容仅供参考学习,不构成任何投资建议。市场有风险,投资需谨慎。
一、为什么需要自动化获取连板数据?
前七篇文章,我们讲了连板量化的理念、指标、模型、指标公式——但所有这些都依赖一个前提:你有数据。
如果你每天还在手动翻涨停板、手工录入连板股,那么:
- 数据容易遗漏,漏掉一只关键连板股就可能错过一个题材
用Python一键获取连板天梯数据,是量化复盘的起点。
这一篇,我们提供三种主流方案,从最简单到最灵活,任你选择。
二、方案一:Tushare(最专业,需注册)
Tushare是国内最流行的金融数据开源平台,提供了专门的连板天梯接口 limit_step。
2.1 安装与配置
# 安装tusharepip install tushare
注册获取token:访问tushare.pro注册账号,在“用户中心-接口token”复制你的token。
2.2 获取连板天梯数据
import tushare as ts# 设置token(替换成你自己的)ts.set_token('你的token')pro = ts.pro_api()# 获取指定日期的连板天梯df = pro.limit_step(trade_date='20260715')print(df.head(10))
输出示例(数据来自2024年11月25日):
nums字段就是连板次数——11板、8板、7板……一目了然。
2.3 进阶用法:批量获取多日数据
import tushare as tsimport pandas as pdfrom datetime import datetime, timedeltats.set_token('你的token')pro = ts.pro_api()# 获取最近5个交易日的连板天梯def get_limit_step_multiple(days=5):# 这里需要结合交易日历,简化版用日期递减 end_date = datetime.now().strftime('%Y%m%d') all_data = [] for i in range(days): date = (datetime.now() - timedelta(days=i)).strftime('%Y%m%d') try: df = pro.limit_step(trade_date=date) if not df.empty: all_data.append(df) except: pass if all_data: return pd.concat(all_data, ignore_index=True) return pd.DataFrame()df = get_limit_step_multiple(5)print(f”获取到{len(df)}条连板记录”)
2.4 Tushare的优缺点
三、方案二:AKShare(完全免费,无需注册)
AKShare是基于Python的开源财经数据接口库,完全免费,无需注册,无需token。
3.1 安装
3.2 获取涨停股池数据
import akshare as akimport pandas as pd# 获取指定日期的涨停股池df = ak.stock_zt_pool_em(date='20260715')print(df.head(10))
返回字段包括:股票代码、名称、最新价、涨跌幅、换手率、封单金额、首次涨停时间、最终涨停时间、连板数等。
3.3 从涨停池中提取连板数据
import akshare as akdef get_limit_up_board(date): ”””获取连板天梯数据””” df = ak.stock_zt_pool_em(date=date) if df.empty: return pd.DataFrame()# 筛选连板股(连板数>=2) df['连板数'] = df['连板数'].astype(int) df_limit = df[df['连板数'] >= 2].copy()# 按连板数降序排列 df_limit = df_limit.sort_values('连板数', ascending=False)# 只保留关键字段 result = df_limit[['名称', '代码', '最新价', '涨跌幅', '换手率', '连板数', '首次涨停时间', '最终涨停时间', '封单金额']] return result# 使用示例df = get_limit_up_board('20260715')print(f”今日连板股数量:{len(df)}”)print(df)
3.4 获取昨日涨停表现
import akshare as ak# 获取昨日涨停今日表现df_yesterday = ak.stock_yesterday_zt_em(date='20260715')print(df_yesterday.head())
这个接口返回昨日涨停股在今天的分时表现——溢价率、最高涨幅、收盘涨跌等。
3.5 获取交易日历(辅助功能)
import akshare as akimport pandas as pdfrom datetime import datetime# 获取A股全历史交易日trade_date_range = ak.tool_trade_date_hist_sina()trade_date_range['trade_date'] = pd.to_datetime(trade_date_range['trade_date']).dt.date# 判断今天是否为交易日today = datetime.now().date()is_trade = today in trade_date_range['trade_date'].valuesprint(f”今天是否为交易日:{is_trade}”)# 输出:True 或 False
3.6 AKShare的优缺点
四、方案三:levistock(轻量级SDK,封装完善)
levistock是一个封装了东方财富、财联社等数据源的轻量级Python SDK。
4.1 安装
4.2 获取涨停池
import levistock as lk# 获取涨停板股票池df = lk.stock_zt_pool_em()print(df.head())# 返回涨停股列表
4.3 获取市场情绪数据
import levistock as lk# 获取市场情绪数据data = lk.market_emotion_cls()print(f”市场热度: {data['market_degree']}”)print(f”涨停家数: {data['up_down_dis']['up_num']}”)# 输出涨停家数
4.4 levistock的优缺点
五、方案对比与选型建议
选型建议:
六、实战:每日自动化复盘脚本
以下是一个完整的每日自动化复盘脚本,结合AKShare获取数据并自动生成连板报告:
import akshare as akimport pandas as pdfrom datetime import datetimedef daily_limit_report(date=None): ”””生成每日连板复盘报告””” if date is None: date = datetime.now().strftime('%Y%m%d') print(f”========== {date} 连板复盘报告 ==========\n”)# 1. 获取涨停股池 df = ak.stock_zt_pool_em(date=date) if df.empty: print(”今日无涨停数据(可能为非交易日)”) return# 2. 统计基础数据 total_limit = len(df) df['连板数'] = df['连板数'].astype(int) limit_2plus = len(df[df['连板数'] >= 2]) max_boards = df['连板数'].max() print(f”📊 涨停总数:{total_limit}家”) print(f”📈 连板股数(≥2板):{limit_2plus}家”) print(f”🏆 最高连板:{max_boards}板\n”)# 3. 连板天梯 print(”【连板天梯】”) for boards in range(max_boards, 0, -1): count = len(df[df['连板数'] == boards]) bar = '█' * min(count, 20) print(f” {boards}板:{count}家 {bar}”)# 4. 高连板个股明细 print(”\n【高连板个股(≥3板)】”) high = df[df['连板数'] >= 3].sort_values('连板数', ascending=False) if not high.empty: for _, row in high.iterrows(): print(f” {row['名称']}({row['代码']}):{row['连板数']}板 | ” f”换手{row['换手率']}% | 封单{row['封单金额']:.0f}万”) else: print(” 无3板以上个股”)# 5. 保存数据 df.to_csv(f'limit_up_{date}.csv', encoding='utf-8-sig') print(f”\n✅ 数据已保存至:limit_up_{date}.csv”)# 执行daily_limit_report()
输出示例:
========== 20260715 连板复盘报告 ==========📊 涨停总数:89家📈 连板股数(≥2板):24家🏆 最高连板:7板【连板天梯】 7板:1家 █ 6板:2家 ██ 5板:3家 ███ 4板:5家 █████ 3板:6家 ██████ 2板:7家 ███████【高连板个股(≥3板)】 粤桂股份(000833.SZ):7板 | 换手8.5% | 封单24500万 东方精工(002611.SZ):6板 | 换手12.3% | 封单18300万 ...
七、写在最后
从今天开始,你的复盘可以告别手工录入。
用Python一键获取连板天梯数据,只是自动化的第一步。后续你可以:
数据是量化的一切基础。没有数据,所有的模型和指标都是空中楼阁。
这一篇给了你工具——接下来,用它去搭建你自己的连板量化数据库。