怎么用Python获取股票信息

企业微信

Python拿股票数据,哪个库最顺手

量化交易,数据是第一步。股票价格、成交量、财务指标,这些数据怎么用Python高效抓下来,直接决定你后面策略能不能跑起来。市面上库不少,但真正能打的主要就那几个。

akshare:免费且全能的选手

akshare 是开源财经数据接口库,股票、期货、期权、基金数据都能拿。它的优势是免费、更新快、覆盖广。比如你要获取A股实时行情,一行代码就能搞定。


import akshare as ak

# 获取A股实时行情

stock_zh_a_spot_df = ak.stock_zh_a_spot_em()

print(stock_zh_a_spot_df.head())

这段代码返回东方财富的实时行情快照,包含代码、名称、最新价、涨跌幅、成交量等字段。你想拿历史K线,可以这样:


# 获取平安银行历史K线,前复权

stock_zh_a_hist_df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20230101", end_date="20231231", adjust="qfq")

print(stock_zh_a_hist_df.tail())

期货数据同样支持,比如获取螺纹钢主力合约日线:

怎么用Python获取股票信息


# 获取期货历史行情(以螺纹钢为例)

futures_zh_daily_df = ak.futures_zh_daily_sina(symbol="RB0")

print(futures_zh_daily_df.head())

akshare 的坑在于部分接口依赖爬虫,新浪和东财改版时可能短期失效,但社区修复通常很快。期货数据注意主力合约换月,RB0 是连续合约,实际交易要换到具体月份合约。

tushare:积分制,数据质量更高

tushare 是老牌数据接口,pro版需要积分。它的优势是数据规整、字段清晰,财务数据尤其完整。获取日线行情示例:


import tushare as ts

# 设置token(需注册获取)

ts.set_token('你的token')

pro = ts.pro_api()

# 获取股票日线

df = pro.daily(ts_code='000001.SZ', start_date='20230101', end_date='20231231')

print(df.head())

期货数据用 fut_daily 接口,能拿合约日线行情。tushare 对积分有要求,频繁调用会扣积分,但数据一致性比akshare好。实盘策略建议用tushare做历史回测,akshare做实时监控。

从数据到策略,中间隔着什么

拿到数据只是第一步。股票和期货的数据结构不同,股票有复权问题,期货有主力换月。回测时股票要用前复权价格,期货要用主力连续合约。这些细节处理不好,策略回测结果就是空中楼阁。

用pandas做数据清洗是标配。比如计算移动平均线:


import pandas as pd

# 假设df有close列

df['ma20'] = df['close'].rolling(window=20).mean()

df['ma60'] = df['close'].rolling(window=60).mean()

# 生成金叉信号

df['signal'] = 0

df.loc[df['ma20'] > df['ma60'], 'signal'] = 1

df.loc[df['ma20'] <= df['ma60'], 'signal'] = -1

这段代码生成均线交叉信号,是趋势策略的基础。股票用这个逻辑可以,期货同样适用,但期货要加保证金和杠杆计算。

数据频率和实盘对接

日线级别数据akshare和tushare都够用。分钟级数据akshare有 stock_zh_a_minute 接口,但稳定性一般。实盘交易建议用券商或期货公司的CTP接口,数据延迟低。Python对接CTP常用 vnpy 框架,它封装了行情和交易接口。

期货夜盘数据要注意时间戳处理,不同交易所收盘时间不同。股票没有夜盘,但集合竞价数据需要单独获取。

避坑指南

akshare 接口返回的列名经常变,写代码时不要硬编码列名,用 df.columns 动态获取。tushare 积分不够时,可以用akshare替代。数据存储建议用SQLite或Parquet,别用CSV存大量分钟数据,读写太慢。

股票除权除息日价格会跳空,回测时必须用复权数据。期货主力合约切换时价格也会跳空,要用复权或价差调整。这些细节不注意,策略在实盘会亏得莫名其妙。

用Python获取股票和期货信息,核心就是选对库、处理好数据、对接好实盘。akshare和tushare双剑合璧,大部分需求都能覆盖。

转载请注明出处:https://www.lianghuajiaoyi.top/wenzhang/Python-gupiao-xinxi-707.html