1. 前言:别让数据阻挡你的发财路!😂
你有没有过这样的体验?兴冲冲地想写个量化交易策略,结果光是找数据就跑遍了各大网站,API文档比《红楼梦》还难懂,关键还各种限流、收费,看着账户余额直接把梦想掐灭了。
别慌!今天花姐就给大家带来一款 完全免费 的金融数据接口库------AkShare!🎉
无论是 股票、期货、基金、债券,还是加密货币,通通搞定!想做量化交易?AkShare 必须安排上!
2. AkShare 是什么?💡
AkShare 是一个基于 Python 的 金融数据接口库 ,完全开源,支持 股票、期货、基金、外汇、债券、指数、加密货币 等多种市场的数据获取。
👉 核心特点:
- 免费开源:不用掏一分钱,白嫖党狂喜!
- 数据丰富:A 股、美股、港股、期货、基金、外汇,样样齐全。
- 简单易用:不需要复杂的 API 注册,直接 Python 一键获取数据。
- 持续更新:开发者维护活跃,数据源不断拓展。
这么香的工具,赶紧来看看怎么用!🔥
3. 安装 AkShare 🚀
直接使用 pip 安装,一行命令搞定:
bash
pip install akshare
安装速度取决于网速,如果遇到安装慢的情况,可以使用国内源:
bash
pip install akshare -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,我们就可以开始愉快地拉取金融数据啦!📊
4. AkShare 核心功能详解 🔥
4.1 获取股票数据(A 股、美股、港股)
✅ 查询 A 股实时行情
python
import akshare as ak
df = ak.stock_zh_a_spot()
print(df)
输出结果:
yaml
代码 名称 最新价 涨跌额 涨跌幅 买入 卖出 昨收 今开 最高 最低 成交量 成交额 时间戳
0 bj430017 星昊医药 17.00 0.29 1.735 17.00 17.05 16.71 16.81 17.40 16.72 2377569.0 40624439.0 10:34:17
1 bj430047 诺思兰德 13.72 0.19 1.404 13.71 13.72 13.53 13.63 13.78 13.42 813702.0 11086837.0 10:34:17
2 bj430090 同辉信息 7.78 0.40 5.420 7.77 7.78 7.38 7.45 7.79 7.40 5773317.0 43927823.0 10:34:17
3 bj430139 华岭股份 27.91 0.70 2.573 27.91 27.98 27.21 27.30 28.20 27.12 3639672.0 100696054.0 10:34:17
4 bj430198 微创光电 16.17 0.31 1.955 16.16 16.17 15.86 15.89 16.36 15.71 2645957.0 42524050.0 10:34:17
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5391 sz301626 苏州天脉 90.99 1.88 2.110 90.98 90.99 89.11 88.80 91.50 88.65 586400.0 52904732.0 10:36:03
5392 sz301628 强达电路 102.16 -2.24 -2.146 102.15 102.16 104.40 102.50 104.10 100.00 1695387.0 172488306.0 10:36:03
5393 sz301631 壹连科技 134.36 0.48 0.359 134.37 134.50 133.88 133.90 134.70 133.00 403772.0 54013048.0 10:36:00
5394 sz301633 港迪技术 87.38 -0.84 -0.952 87.38 87.40 88.22 88.30 88.86 87.01 336300.0 29438178.0 10:36:00
5395 sz302132 中航成飞 61.96 -0.19 -0.306 61.91 61.96 62.15 62.00 62.50 61.58 2023800.0 125329607.0 10:36:03
[5396 rows x 14 columns]
🔹 解读:
stock_zh_a_spot()
获取 A 股市场全部的实时数据。- 直接返回一个 Pandas DataFrame,包含股票代码、名称、最新价、涨跌幅等信息。
✅ 查询指定股票的历史数据
python
df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20230101", end_date="20240301" ,adjust="qfq")
print(df)
输出结果:
yaml
日期 股票代码 开盘 收盘 最高 最低 成交量 成交额 振幅 涨跌幅 涨跌额 换手率
0 2024-01-02 000001 8.43 8.25 8.46 8.25 1158366 1.075742e+09 2.49 -2.14 -0.18 0.60
1 2024-01-03 000001 8.23 8.24 8.26 8.19 733610 6.736736e+08 0.85 -0.12 -0.01 0.38
2 2024-01-04 000001 8.23 8.15 8.23 8.12 864194 7.874701e+08 1.33 -1.09 -0.09 0.45
3 2024-01-05 000001 8.14 8.31 8.48 8.11 1991622 1.852660e+09 4.54 1.96 0.16 1.03
4 2024-01-08 000001 8.27 8.19 8.34 8.15 1121156 1.029007e+09 2.29 -1.44 -0.12 0.58
.. ... ... ... ... ... ... ... ... ... ... ... ...
283 2025-03-10 000001 11.66 11.59 11.67 11.55 663834 7.692614e+08 1.03 -0.69 -0.08 0.34
284 2025-03-11 000001 11.54 11.61 11.61 11.52 608975 7.042405e+08 0.78 0.17 0.02 0.31
285 2025-03-12 000001 11.60 11.85 11.87 11.56 1877318 2.210904e+09 2.67 2.07 0.24 0.97
286 2025-03-13 000001 11.81 11.84 11.91 11.78 1312371 1.555123e+09 1.10 -0.08 -0.01 0.68
287 2025-03-14 000001 11.82 11.98 11.99 11.82 836460 9.980182e+08 1.44 1.18 0.14 0.43
[288 rows x 12 columns]
🔹 解读:
symbol="000001"
是平安银行的股票代码。period="daily"
获取日线数据(支持日、周、月周期)。start_date
和end_date
指定时间范围。adjust
前复权:qfq
,后复权hfq
,不复权:不填
是不是比某些收费 API 还方便?💰 省下 API 费用,直接加仓不香吗?😂
4.2 期货数据获取
✅ 查询国内期货实时行情
python
df = ak.futures_zh_spot(symbol="SN0" ,market="CF" ,adjust="0")
print(df)
输出结果:
sql
symbol time open high low current_price bid_price ask_price buy_vol sell_vol hold volume avg_price last_close last_settle_price
0 锡连续 110337 264860.0 291510.0 264080.0 291510.0 291510.0 0.0 3255 0 41903.0 346237 0.0 0.0 265010.0
🔹 解读:
futures_zh_spot()
新浪财经-期货页面的实时行情数据symbol="SN0"
指定具体的期货合约代码。market
:"CF"
: 商品期货,"FF"
: 金融期货adjust
:'0'; '1'
: 返回合约、交易所和最小变动单位的实时数据
4.3 获取基金数据 🏦
4.3.1 获取开放式基金净值数据
python
df = ak.fund_open_fund_daily_em() #当前交易日的所有开放式基金净值数据
print(df)
输出结果:
erlang
基金代码 基金简称 2025-03-13-单位净值 2025-03-13-累计净值 2025-03-12-单位净值 2025-03-12-累计净值 日增长值 日增长率 申购状态 赎回状态 手续费
0 519212 万家宏观择时多策略混合A 2.1819 2.1819 2.0895 2.0895 0.0924 4.42 限大额 开放赎回 0.15%
1 017787 万家宏观择时多策略混合C 2.1593 2.1593 2.0679 2.0679 0.0914 4.42 限大额 开放赎回 0.00%
2 519185 万家精选混合A 1.5552 2.9295 1.4935 2.8678 0.0617 4.13 限大额 开放赎回 0.15%
3 015566 万家精选混合C 1.53 1.6562 1.4693 1.5955 0.0607 4.13 限大额 开放赎回 0.00%
4 161032 富国中证煤炭指数(LOF)A 1.858 1.295 1.785 1.244 0.073 4.09 开放申购 开放赎回 0.00%
... ... ... ... ... ... ... ... ... ... ... ...
20564 021095 东方低碳经济混合C 暂停申购 暂停赎回 0.00%
20565 022657 建信丰融债券A 暂停申购 暂停赎回 0.08%
20566 022658 建信丰融债券C 暂停申购 暂停赎回 0.00%
20567 023396 宝盈北证50成份指数发起式C 暂停申购 暂停赎回 0.00%
20568 022493 金元顺安鑫怡混合发起式C 暂停申购 暂停赎回 0.00%
[20569 rows x 11 columns]
🔹 解读:
fund_open_fund_daily_em
东方财富网-天天基金网-基金数据-开放式基金净值- 返回基金的代码、名称、净值等信息。
4.3.2 获取开放式基金-单位净值走势
python
df = ak.fund_open_fund_info_em(symbol="015566", indicator="单位净值走势" ) #万家精选混合C 走势
print(df)
输出结果:
yaml
净值日期 单位净值 日增长率
0 2022-04-25 1.2707 0.00
1 2022-04-26 1.2302 -3.19
2 2022-04-27 1.2696 3.20
3 2022-04-28 1.3437 5.84
4 2022-04-29 1.3587 1.12
.. ... ... ...
697 2025-03-07 1.4558 0.81
698 2025-03-10 1.4755 1.35
699 2025-03-11 1.4759 0.03
700 2025-03-12 1.4693 -0.45
701 2025-03-13 1.5300 4.13
[702 rows x 3 columns]
🔹 解读:
fund_open_fund_info_em
东方财富网-天天基金网-基金数据-具体基金信息symbol
代表基金代码。indicator
值可选单位净值走势、累计净值走势
period
该参数只对 累计收益率走势 有效, 可选择的值有"1月", "3月", "6月", "1年", "3年", "5年", "今年来", "成立来"
4.4 获取加密货币数据💰
python
df = ak.crypto_js_spot() #加密货币实时行情
print(df)
输出结果:
yaml
市场 交易品种 最近报价 涨跌额 涨跌幅 24小时最高 24小时最低 24小时成交量 更新时间
0 Bitfinex(香港) LTCUSD 67.465 0.59 0.87 68.867 66.259 6893.13 2023-10-02 22:45:09
1 Bitflyer(日本) BTCJPY 4244238.000 191147.00 4.72 4278000.000 4042615.000 1803.99 2023-10-02 22:45:09
2 Bitstamp(美国) BTCUSD 28309.000 1192.00 4.40 28592.000 27044.000 2667.55 2023-10-02 22:45:09
3 CEX.IO(伦敦) BTCUSD 28332.400 1200.50 4.42 28548.400 27071.000 8.04 2023-10-02 22:45:09
4 Kraken_EUR(美国) BTCEUR 26960.100 1328.10 5.18 27187.800 25572.800 1492.30 2023-10-02 22:45:09
5 Kraken(美国) LTCUSD 67.410 0.50 0.75 68.760 66.250 28818.47 2023-10-02 22:45:09
6 OKCoin(中国) BTCUSD 28312.570 1205.51 4.45 28482.250 27063.520 1.81 2023-10-02 22:45:09
7 Bitfinex(香港) BCHUSD 0.000 0.00 0.00 0.000 0.000 0.00 2020-11-16 21:02:04
8 Bitfinex(香港) BTCUSD 28323.000 1198.00 4.42 28611.000 27063.000 2656.08 2023-10-02 22:45:09
9 Kraken(美国) BTCUSD 28320.000 1217.60 4.49 28572.500 27059.600 3632.92 2023-10-02 22:45:09
🔹 解读:
crypto_js_spot
单次返回主流加密货币当前时点行情数据
5. AkShare 进阶玩法 🌟
结合 pandas 进行数据分析
python
import pandas as pd
stock_df = ak.stock_zh_a_spot()
filtered_df = stock_df[stock_df["涨跌幅"] > 5] # 找出涨幅超过 5% 的股票
print(filtered_df)
🔹 解读:
- 直接用 Pandas 进行数据筛选,找出涨幅超过 5% 的股票。
- 结合
matplotlib
或seaborn
可以直接绘制数据可视化。
6. 使用建议
AKShare本质是帮我们把全网公开金融数据都写成了爬虫,数据获取对网络要求比较高,频繁访问会导致IP被封。经过多次使用,使用东方财富网的数据接口对IP限制比较少,不容易被封IP,速度还快。
同时推荐把历史数据存放数据库或者存成本地csv文件再进行量化效果更好。
7. 总结 🎯
AkShare 绝对是 Python 量化分析必备的神器 ,不仅 免费,还支持超多金融数据,API 设计简单易用。
📌 适用人群: ✅ 量化交易爱好者 ✅ 金融数据分析师 ✅ 股票、期货、基金、加密货币研究者
💡 核心亮点:
- 数据齐全:涵盖全球主要金融市场。
- 开源免费:不用担心 API 限流或高昂费用。
- Python 友好:直接返回 Pandas DataFrame,和数据分析无缝衔接。
强烈建议大家赶紧试试 AkShare,别让数据难住你的财富之路!💰
👉 顺手点赞 + 在看就是对花姐最大的支持!🎉