鱼C论坛

 找回密码
 立即注册
查看: 245|回复: 1

[技术交流] Python金融数据神器:AkShare全解析,量化交易必备!

[复制链接]
发表于 2025-4-11 11:53:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 前言:别让数据阻挡你的发财路!
你有没有过这样的体验?兴冲冲地想写个量化交易策略,结果光是找数据就跑遍了各大网站,API文档比《红楼梦》还难懂,关键还各种限流、收费,看着账户余额直接把梦想掐灭了。
别慌!今天花姐就给大家带来一款 完全免费 的金融数据接口库——AkShare!
无论是 股票、期货、基金、债券,还是加密货币,通通搞定!想做量化交易?AkShare 必须安排上!
2. AkShare 是什么
AkShare 是一个基于 Python 的 金融数据接口库,完全开源,支持 股票、期货、基金、外汇、债券、指数、加密货币 等多种市场的数据获取。
核心特点:
·免费开源:不用掏一分钱,白嫖党狂喜!
·数据丰富:A 股、美股、港股、期货、基金、外汇,样样齐全。
·简单易用:不需要复杂的 API 注册,直接 Python 一键获取数据。
·持续更新:开发者维护活跃,数据源不断拓展。
这么香的工具,赶紧来看看怎么用!
3. 安装 AkShare
直接使用 pip 安装,一行命令搞定:
  1. pip install akshare
复制代码


4. AkShare 核心功能详解
4.1 获取股票数据(A 股、美股、港股)
查询 A 股实时行情
  1. import akshare as ak

  2. df = ak.stock_zh_a_spot()
  3. print(df)
复制代码

输出结果:
  1.    代码    名称     最新价   涨跌额    涨跌幅      买入      卖出      昨收      今开      最高      最低        成交量          成交额       时间戳
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. ...        ...   ...     ...   ...    ...     ...     ...     ...     ...     ...     ...        ...          ...       ...
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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

  13. [5396 rows x 14 columns]
复制代码

解读:
·stock_zh_a_spot() 获取 A 股市场全部的实时数据。
·直接返回一个 Pandas DataFrame,包含股票代码、名称、最新价、涨跌幅等信息。
查询指定股票的历史数据
  1. df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20230101", end_date="20240301" ,adjust="qfq")
  2. print(df)
复制代码

输出结果:
  1. 日期    股票代码     开盘     收盘     最高     最低      成交量           成交额    振幅   涨跌幅   涨跌额   换手率
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. ..          ...     ...    ...    ...    ...    ...      ...           ...   ...   ...   ...   ...
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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

  13. [288 rows x 12 columns]
复制代码

解读:
·symbol="000001" 是平安银行的股票代码。
·period="daily" 获取日线数据(支持日、周、月周期)。
·start_date 和 end_date 指定时间范围。
·adjust 前复权:qfq,后复权hfq ,不复权:不填
是不是比某些收费 API 还方便? 省下 API 费用,直接加仓不香吗?
4.2 期货数据获取
查询国内期货实时行情
  1. df = ak.futures_zh_spot(symbol="SN0" ,market="CF" ,adjust="0")  
  2. print(df)
复制代码

输出结果:
  1.   symbol    time      open      high       low  current_price  bid_price  ask_price  buy_vol  sell_vol     hold  volume  avg_price  last_close  last_settle_price
  2. 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 获取开放式基金净值数据
  1. df = ak.fund_open_fund_daily_em() #当前交易日的所有开放式基金净值数据
  2. print(df)
复制代码

输出结果:
  1. 基金代码            基金简称 2025-03-13-单位净值 2025-03-13-累计净值 2025-03-12-单位净值 2025-03-12-累计净值    日增长值  日增长率  申购状态  赎回状态    手续费
  2. 0      519212    万家宏观择时多策略混合A          2.1819          2.1819          2.0895          2.0895  0.0924  4.42   限大额  开放赎回  0.15%
  3. 1      017787    万家宏观择时多策略混合C          2.1593          2.1593          2.0679          2.0679  0.0914  4.42   限大额  开放赎回  0.00%
  4. 2      519185         万家精选混合A          1.5552          2.9295          1.4935          2.8678  0.0617  4.13   限大额  开放赎回  0.15%
  5. 3      015566         万家精选混合C            1.53          1.6562          1.4693          1.5955  0.0607  4.13   限大额  开放赎回  0.00%
  6. 4      161032  富国中证煤炭指数(LOF)A           1.858           1.295           1.785           1.244   0.073  4.09  开放申购  开放赎回  0.00%
  7. ...       ...             ...             ...             ...             ...             ...     ...   ...   ...   ...    ...
  8. 20564  021095       东方低碳经济混合C                                                                                暂停申购  暂停赎回  0.00%
  9. 20565  022657         建信丰融债券A                                                                                暂停申购  暂停赎回  0.08%
  10. 20566  022658         建信丰融债券C                                                                                暂停申购  暂停赎回  0.00%
  11. 20567  023396  宝盈北证50成份指数发起式C                                                                                暂停申购  暂停赎回  0.00%
  12. 20568  022493    金元顺安鑫怡混合发起式C                                                                                暂停申购  暂停赎回  0.00%

  13. [20569 rows x 11 columns]
复制代码

解读:
·fund_open_fund_daily_em 东方财富网-天天基金网-基金数据-开放式基金净值
·返回基金的代码、名称、净值等信息。
4.3.2 获取开放式基金-单位净值走势
  1. df = ak.fund_open_fund_info_em(symbol="015566", indicator="单位净值走势" ) #万家精选混合C 走势
  2. print(df)
复制代码

输出结果:
  1.            净值日期    单位净值  日增长率
  2. 0    2022-04-25  1.2707  0.00
  3. 1    2022-04-26  1.2302 -3.19
  4. 2    2022-04-27  1.2696  3.20
  5. 3    2022-04-28  1.3437  5.84
  6. 4    2022-04-29  1.3587  1.12
  7. ..          ...     ...   ...
  8. 697  2025-03-07  1.4558  0.81
  9. 698  2025-03-10  1.4755  1.35
  10. 699  2025-03-11  1.4759  0.03
  11. 700  2025-03-12  1.4693 -0.45
  12. 701  2025-03-13  1.5300  4.13

  13. [702 rows x 3 columns]
复制代码

解读:
·fund_open_fund_info_em 东方财富网-天天基金网-基金数据-具体基金信息
·symbol 代表基金代码。
·indicator 值可选 单位净值走势、累计净值走势
·period 该参数只对 累计收益率走势 有效, 可选择的值有 "1月", "3月", "6月", "1年", "3年", "5年", "今年来", "成立来"
4.4 获取加密货币数据
  1. df = ak.crypto_js_spot() #加密货币实时行情
  2. print(df)
复制代码

输出结果:
  1. 市场    交易品种         最近报价        涨跌额   涨跌幅       24小时最高       24小时最低   24小时成交量                 更新时间
  2. 0    Bitfinex(香港)  LTCUSD       67.465       0.59  0.87       68.867       66.259   6893.13  2023-10-02 22:45:09
  3. 1    Bitflyer(日本)  BTCJPY  4244238.000  191147.00  4.72  4278000.000  4042615.000   1803.99  2023-10-02 22:45:09
  4. 2    Bitstamp(美国)  BTCUSD    28309.000    1192.00  4.40    28592.000    27044.000   2667.55  2023-10-02 22:45:09
  5. 3      CEX.IO(伦敦)  BTCUSD    28332.400    1200.50  4.42    28548.400    27071.000      8.04  2023-10-02 22:45:09
  6. 4  Kraken_EUR(美国)  BTCEUR    26960.100    1328.10  5.18    27187.800    25572.800   1492.30  2023-10-02 22:45:09
  7. 5      Kraken(美国)  LTCUSD       67.410       0.50  0.75       68.760       66.250  28818.47  2023-10-02 22:45:09
  8. 6      OKCoin(中国)  BTCUSD    28312.570    1205.51  4.45    28482.250    27063.520      1.81  2023-10-02 22:45:09
  9. 7    Bitfinex(香港)  BCHUSD        0.000       0.00  0.00        0.000        0.000      0.00  2020-11-16 21:02:04
  10. 8    Bitfinex(香港)  BTCUSD    28323.000    1198.00  4.42    28611.000    27063.000   2656.08  2023-10-02 22:45:09
  11. 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 pdstock_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 设计简单易用。
适用人群:1.量化交易爱好者2.金融数据分析师3.股票、期货、基金、加密货币研究者
核心亮点:
·数据齐全:涵盖全球主要金融市场。
·开源免费:不用担心 API 限流或高昂费用。
·Python 友好:直接返回 Pandas DataFrame,和数据分析无缝衔接。
强烈建议大家赶紧试试 AkShare,别让数据难住你的财富之路!

转自:花小姐的春天

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
LEEFEI571 + 5 + 5 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-11 11:55:10 | 显示全部楼层
Python金融数据神器:AkShare全解析,量化交易必备!

1. 前言
别让数据阻挡你的发财路!AkShare这个完全免费的金融数据接口库,股票、期货、基金、加密货币数据一键获取!

2. AkShare是什么
  • 免费开源:白嫖党狂喜
  • 数据丰富:涵盖A股/美股/期货/基金等
  • 简单易用:Python一行代码获取数据
  • 持续更新:维护活跃,数据源不断扩展


3. 安装

  1. pip install akshare
复制代码


4. 核心功能

4.1 股票数据
实时行情:

  1. import akshare as ak
  2. df = ak.stock_zh_a_spot()
  3. print(df.head())
复制代码


历史数据:

  1. df = ak.stock_zh_a_hist(
  2.     symbol="000001",
  3.     period="daily",
  4.     start_date="20230101",
  5.     adjust="qfq"
  6. )
复制代码


4.2 期货数据

  1. df = ak.futures_zh_spot(
  2.     symbol="SN0",
  3.     market="CF",
  4.     adjust="0"
  5. )
复制代码


4.3 基金数据
基金净值:

  1. df = ak.fund_open_fund_daily_em()
复制代码


净值走势:

  1. df = ak.fund_open_fund_info_em(
  2.     symbol="015566",
  3.     indicator="单位净值走势"
  4. )
复制代码


4.4 加密货币

  1. df = ak.crypto_js_spot()
复制代码


5. 进阶玩法
数据筛选示例:

  1. import pandas as pd
  2. stock_df = ak.stock_zh_a_spot()
  3. hot_stocks = stock_df[stock_df['涨跌幅'] > 5]
复制代码


6. 使用建议
  • 建议缓存历史数据到CSV或数据库
  • 优先使用东方财富接口(IP限制较少)
  • 避免高频请求(防止被封IP)


7. 总结
量化交易/金融分析必备神器!核心优势:
  • 数据齐全:覆盖股票/期货/基金/加密货币
  • 完全免费:告别API收费
  • Pandas友好:直接返回DataFrame


(教程来源:花小姐的春天)

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-5 20:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表