1. 为什么你需要AKShare:一个量化新手的福音
如果你刚开始接触量化投资,或者对用Python分析金融市场数据感兴趣,那你大概率会遇到一个头疼的问题:数据从哪里来? 我刚开始那会儿,为了找一份干净的股票日线数据,可能得去翻各种财经网站,手动下载CSV,或者研究那些复杂又昂贵的商业数据API。过程繁琐不说,数据格式还五花八门,清洗起来特别费劲。
直到我发现了AKShare,感觉就像找到了宝藏。简单来说,AKShare是一个用Python写的、完全免费开源的金融数据接口库。它的目标特别纯粹:让你用一行代码,就能获取到股票、期货、基金、债券、外汇、期权等几乎全品类的金融市场数据。你不用再关心数据是怎么爬取的、页面结构又变了没有,AKShare的维护团队已经把这些脏活累活都干了,把干净、结构化的数据用Pandas DataFrame的格式直接送到你手上。
对于个人研究者、学生和量化爱好者来说,这简直是神器。你不用再为数据源发愁,可以把全部精力集中在策略研究和模型构建上。AKShare的数据覆盖面非常广,从国内的沪深京交易所,到主要的商品期货交易所,甚至一些宏观、行业、另类数据都有涉及。它的设计哲学就是“Write less, get more”(写得少,得到多),这一点在实际使用中感受非常深刻。
2. 5分钟极速上手:安装与第一个数据请求
说再多不如动手试一下。AKShare的安装非常简单,打开你的命令行终端(Windows用CMD或PowerShell,Mac/Linux用Terminal),输入下面这行命令就行:
pip install akshare --upgrade
如果你在国内,觉得从PyPI官方源下载慢,可以使用阿里云的镜像,速度会快很多:
pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --upgrade
安装完成后,打开你的Python编辑器(比如Jupyter Notebook, VS Code, PyCharm都行),我们就可以开始获取数据了。让我们从一个最经典的例子开始:获取A股“平安银行”(股票代码000001)的历史日线数据。
import akshare as ak
# 获取平安银行从2023年1月1日到2024年4月1日的日线行情数据
stock_zh_a_hist_df = ak.stock_zh_a_hist(
symbol="000001", # 股票代码
period="daily", # 周期:日线
start_date="20230101", # 开始日期
end_date="20240401", # 结束日期
adjust="qfq" # 复权类型:qfq-前复权
)
# 查看数据的前几行
print(stock_zh_a_hist_df.head())
运行这段代码,你会立刻得到一个Pandas DataFrame,里面包含了日期、开盘价、收盘价、最高价、最低价、成交量、成交额、振幅、涨跌幅、涨跌额、换手率等完整的日线数据。所有数据都是现成的,直接就可以用于接下来的分析和可视化。
注意:
adjust参数很重要,它决定了价格是否复权。“”表示不复权,“qfq”表示前复权(以最新价格为基准调整历史价格),“hfq”表示后复权。在做长期时间序列分析时,强烈建议使用前复权(qfq)数据,这样才能真实反映股价的历史走势和收益率,避免因为分红送股导致的价格跳空扭曲你的分析结果。
3. 深入期货数据:获取主力合约与仓单信息
股票数据只是AKShare能力的冰山一角。对于商品期货和金融期货的研究者来说,AKShare提供的接口更加宝贵。期货数据比股票更复杂,涉及到不同交割月的合约、主力合约换月、仓单、持仓排名等等。
比如,我想研究大连商品交易所的豆粕期货。首先,我可以获取其每日的交易


1万+

被折叠的 条评论
为什么被折叠?



