tushare获取股票数据
tushare获取股票数据
Tushare是取股个老牌Python财经数据接口,免费版能拿日线行情,票数Pro版要积分。取股我常用的票数场景是拿它拉历史K线做回测,或者抓上市公司基础信息。取股今天直接说怎么用,票数不废话。取股 先装库,票数`pip install tushare`,取股然后注册个账号拿token。票数这步绕不开,取股免费版也要token,票数去官网注册后个人主页就能看到一串字母数字混合的取股字符串。存成环境变量,票数别硬编码在代码里——我见过有人把token贴GitHub上,取股第二天账号就被盗刷积分了。 拿到token后初始化: ```python import tushare as ts ts.set_token('你的token') pro = ts.pro_api() ``` 最常用的接口是`pro.daily()`,拿日线行情。参数里`ts_code`是股票代码,格式要带后缀:平安银行是`000001.SZ`,贵州茅台是`600519.SH`。`start_date`和`end_date`用`YYYYMMDD`格式。比如拉茅台最近20个交易日: ```python df = pro.daily(ts_code='600519.SH', start_date='20240101', end_date='20240201') print(df.head()) ``` 返回的DataFrame里`trade_date`是交易日期,`open`、`high`、`low`、`close`是价格,`vol`是成交量(手),`amount`是成交额(千元)。注意复权问题——`daily`接口返回的是不复权数据,遇到分红送股价格会跳空。做技术分析得用`pro.adj_factor()`拿复权因子自己算,或者直接用`ts.pro_bar()`这个封装好的函数,它支持`adj='qfq'`前复权参数: ```python df_qfq = ts.pro_bar(ts_code='600519.SH', adj='qfq', start_date='20240101', end_date='20240201') ``` `pro_bar`比裸调`daily`顺手,自动处理了停牌、退市这些特殊情况,还能指定`freq='W'`拿周线。我写策略脚本基本都用它。 除了行情,基本面数据也能拿。比如`pro.stock_basic()`返回所有股票列表,包含上市日期、行业、总股本。想批量研究某个板块,先拉这个列表再逐个抓行情,注意控制请求频率——Tushare免费版每分钟限500次,循环里加个`sleep(0.2)`比较稳妥。 有个坑必须提醒:Tushare的积分体系。新注册用户120分,能调用的接口很少,`daily`这种基础接口都要2000分。攒积分要么靠每日签到(一天1分,攒够要五年),要么充值赞助,要么写文档/提bug换积分。我当年为了拿`moneyflow`接口数据,硬是写了三篇使用笔记才凑够。所以别指望纯免费能拿全量数据,先看文档里每个接口的积分要求,规划好你的调用需求。 数据拿下来后存本地。CSV最省事,但增量更新麻烦;SQLite适合个人研究,表结构简单;量大数据用Parquet格式,压缩率高读取快。我习惯每天收盘后定时任务拉一次增量数据,存成Parquet按年分区,回测时用`pandas.read_parquet`直接读,比每次现调接口快几个数量级。 最后说个细节:Tushare返回的时间字段是字符串,不是datetime类型。做时间序列分析前记得`df['trade_date'] = pd.to_datetime(df['trade_date'])`,再`set_index`。不然画图时X轴顺序会乱——我刚开始就栽在这上面,MACD指标算出来全是错的。 以上是日常最顺手的用法。更进阶的像分钟数据、期权期货、宏观经济指标,接口风格都差不多,看文档举一反三就行。关键还是先把token配好,跑通一条最简单的链路,后面加需求就是换参数的事。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-