如何获取股票、期货数据

一、Efinance

efinance 是由个人打造的用于获取股票、基金、期货数据的免费开源 Python 库,你可以使用它很方便地获取数据以便更好地服务于个人的交易系统需求。
来源:https://pypi.org/project/efinance/

Installation

  • 通过 安装pip
    pip install efinance

  • 通过 更新pip
    pip install efinance --upgrade

Examples

  • 获取单只股票
# 导入 efinance 库
import efinance as ef

# 股票代码
stock_code = '000001'
# 获取股票的一些基本信息(返回 pandas.Series)
series = ef.stock.get_base_info(stock_code)
print(series)
------------------------------------
股票代码                   000001
股票名称                     平安银行
净利润             14096000000.0
总市值       222391822549.080017
流通市值      222387853401.000031
所处行业                       银行
市盈率()                   3.94
市净率                      0.51
ROE                       2.8
毛利率                       0.0
净利率                 41.816726
板块编号                   BK0475
  • 获取单只股票指定时间段的日K线数据
# 导入 efinance 库
import efinance as ef

beg = '20250519'
# 结束日期
end = '20250529'
# 获取股票日 K 数据
df = ef.stock.get_quote_history("300750", beg=beg, end=end)
print(df.to_string(index=False))
------------------------------------------------------------------------------------------------------------
股票名称   股票代码         日期     开盘     收盘     最高     最低    成交量          成交额   振幅   涨跌幅    涨跌额  换手率
宁德时代 300750 2025-05-19 260.50 260.00 260.54 257.27 169740 4.399898e+09 1.26  0.25   0.64 0.43
宁德时代 300750 2025-05-20 264.44 263.00 265.50 255.20 346424 9.053425e+09 3.96  1.15   3.00 0.89
宁德时代 300750 2025-05-21 266.99 274.08 279.99 265.80 565245 1.547059e+10 5.40  4.21  11.08 1.45
宁德时代 300750 2025-05-22 277.80 270.37 277.94 268.27 276081 7.470701e+09 3.53 -1.35  -3.71 0.71
宁德时代 300750 2025-05-23 271.01 266.99 274.00 266.95 230004 6.218224e+09 2.61 -1.25  -3.38 0.59
宁德时代 300750 2025-05-26 265.00 255.90 266.38 252.90 330122 8.477229e+09 5.05 -4.15 -11.09 0.85
宁德时代 300750 2025-05-27 255.89 253.99 257.21 252.39 176680 4.491281e+09 1.88 -0.75  -1.91 0.45
宁德时代 300750 2025-05-28 255.61 253.60 258.27 253.32 154563 3.946773e+09 1.95 -0.15  -0.39 0.40
宁德时代 300750 2025-05-29 253.00 251.91 253.98 249.00 192594 4.850627e+09 1.96 -0.67  -1.69 0.49
  • 根据股票名称获取日K线数据
# 导入 efinance 库
import efinance as ef

# 股票名称
stock_name = '平安银行'
# 获取股票日 K 线数据
ds = ef.stock.get_quote_history(stock_name)
print(ds)
--------------------------------------------------------------------------------------
      股票名称    股票代码          日期     开盘  ...    振幅   涨跌幅   涨跌额   换手率
0     平安银行  000001  1991-04-03  -2.22  ...  0.00  2.20  0.05  0.00
1     平安银行  000001  1991-04-04  -2.22  ...  0.00  0.00  0.00  0.00
2     平安银行  000001  1991-04-05  -2.22  ...  0.00  0.00  0.00  0.00
3     平安银行  000001  1991-04-06  -2.22  ...  0.00  0.00  0.00  0.00
4     平安银行  000001  1991-04-08  -2.22  ...  0.00  0.00  0.00  0.00
...    ...     ...         ...    ...  ...   ...   ...   ...   ...
8157  平安银行  000001  2025-05-23  11.55  ...  1.47 -0.78 -0.09  0.50
8158  平安银行  000001  2025-05-26  11.44  ...  0.87 -0.35 -0.04  0.36
8159  平安银行  000001  2025-05-27  11.45  ...  1.05  0.61  0.07  0.41
8160  平安银行  000001  2025-05-28  11.50  ...  0.96  0.35  0.04  0.34
8161  平安银行  000001  2025-05-29  11.52  ...  0.87 -0.61 -0.07  0.39
  • 获取美股、港股、英股等市场的股票日K线数据
# 导入 efinance 库
import efinance as ef

# 股票代码
stock_code = 'JD'
# 获取股票日 K 线数据
dd = ef.stock.get_quote_history(stock_code)
print(dd)
-----------------------------------------------------------------------------------------
         股票名称   股票代码          日期       开盘  ...    振幅   涨跌幅  涨跌额   换手率
0     京东集团-SW  09618  2020-06-18  224.764  ...  4.91  3.78  8.0  1.12
1     京东集团-SW  09618  2020-06-19  219.764  ...  1.00 -0.18 -0.4  0.29
2     京东集团-SW  09618  2020-06-22  215.564  ...  1.46 -2.55 -5.6  0.33
3     京东集团-SW  09618  2020-06-23  212.764  ...  2.62  0.94  2.0  0.22
4     京东集团-SW  09618  2020-06-24  218.364  ...  1.67  2.22  4.8  0.27
...       ...    ...         ...      ...  ...   ...   ...  ...   ...
1209  京东集团-SW  09618  2025-05-23  132.700  ...  1.58 -0.45 -0.6  0.23
1210  京东集团-SW  09618  2025-05-26  130.800  ...  1.90 -1.74 -2.3  0.28
1211  京东集团-SW  09618  2025-05-27  127.000  ...  5.86 -1.00 -1.3  0.67
1212  京东集团-SW  09618  2025-05-28  127.200  ...  2.10 -1.40 -1.8  0.38
1213  京东集团-SW  09618  2025-05-29  123.800  ...  7.11  3.79  4.8  0.62
  • 获取ETF K线数据
# 导入 efinance 库
import efinance as ef

# ETF代码
etf_code = '513050'
de = ef.stock.get_quote_history(etf_code)
print(de)
--------------------------------------------------------------------------------------------
          股票名称    股票代码          日期     开盘  ...    振幅   涨跌幅    涨跌额   换手率
0     中概互联网ETF  513050  2017-01-18  0.989  ...  2.00 -2.30 -0.023  0.14
1     中概互联网ETF  513050  2017-01-19  0.978  ...  1.23  1.23  0.012  0.11
2     中概互联网ETF  513050  2017-01-20  0.989  ...  0.40 -0.10 -0.001  0.02
3     中概互联网ETF  513050  2017-01-23  0.988  ...  0.30  0.00  0.000  0.01
4     中概互联网ETF  513050  2017-01-24  0.989  ...  0.51  0.10  0.001  0.01
...        ...     ...         ...    ...  ...   ...   ...    ...   ...
2023  中概互联网ETF  513050  2025-05-23  1.408  ...  1.50 -0.14 -0.002  5.82
2024  中概互联网ETF  513050  2025-05-26  1.402  ...  1.71 -1.29 -0.018  4.79
2025  中概互联网ETF  513050  2025-05-27  1.379  ...  1.74  0.58  0.008  5.54
2026  中概互联网ETF  513050  2025-05-28  1.386  ...  1.65 -1.73 -0.024  5.21
2027  中概互联网ETF  513050  2025-05-29  1.371  ...  2.05  1.61  0.022  9.02
  • 获取多只股票指定时间段的日K线数据
# 导入 efinance 库
import efinance as ef

# 股票代码列表
stock_codes = ['600519', '300750']
# 开始日期
beg = '20250526'
# 结束日期
end = '20250528'
# 获取多只股票日 K 数据(得到的是 dict)
dfs = ef.stock.get_quote_history(stock_codes, beg=beg, end=end)
# 查看代码为 600519 的股票
print(dfs['300750'])
--------------------------------------------------------------------------------------------
   股票名称    股票代码          日期      开盘  ...    振幅   涨跌幅    涨跌额   换手率
0  宁德时代  300750  2025-05-26  265.00  ...  5.05 -4.15 -11.09  0.85
1  宁德时代  300750  2025-05-27  255.89  ...  1.88 -0.75  -1.91  0.45
2  宁德时代  300750  2025-05-28  255.61  ...  1.95 -0.15  -0.39  0.40

二、Akshare

AKShare 是基于 Python 的财经数据接口库,目的是实现对股票、期货、期权、基金、外汇、债券、指数、加密货币等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具,主要用于学术研究目的。
来源:https://akshare.akfamily.xyz/
为了支持更多特性,请将 Python 升级到 3.9.0 及以上版本!

Installation

  • 通过 pip 安装:
    直接使用pip install akshare安装大概率会失败。
    请使用管理员权限安装:pip install --user akshare

Examples

  • 接口:深圳证券交易所-市场总貌-地区交易排序
import akshare as ak

# 接口:深圳证券交易所-市场总貌-地区交易排序
stock_szse_area_summary_df = ak.stock_szse_area_summary(date="202412")
print(stock_szse_area_summary_df)
--------------------------------------------------------------------------------------------------
    序号    地区          总交易额     占市场         股票交易额         基金交易额         债券交易额
0    1    上海  9.487525e+12  16.349  5.951120e+12  4.247199e+11  3.111261e+12
1    2    深圳  7.224594e+12  12.450  4.630469e+12  3.935335e+11  2.200312e+12
2    3    浙江  5.290404e+12   9.117  4.360136e+12  1.182085e+11  8.120595e+11
3    4    北京  5.233418e+12   9.018  3.416063e+12  2.662883e+11  1.550712e+12
...
31  32   内蒙古  1.694187e+11   0.292  1.277484e+11  2.512480e+09  3.915781e+10
32  33    宁夏  1.117968e+11   0.193  9.845570e+10  2.297211e+09  1.104391e+10
33  34    青海  3.967756e+10   0.068  2.884644e+10  4.814743e+08  1.034965e+10
  • 接口:东方财富-个股-股票信息
import akshare as ak

stock_individual_info_em_df = ak.stock_individual_info_em(symbol="000001")
print(stock_individual_info_em_df)
----------------------------------
   item                value
0   总市值  222391822549.080017
1  流通市值  222387853401.000031
2    行业                   银行
3  上市时间             19910403
4    最新                11.46
5  股票代码               000001
6  股票简称                 平安银行
7   总股本        19405918198.0
8   流通股        19405571850.0
  • 接口: 雪球财经-个股-公司概况-公司简介
import akshare as ak

stock_individual_basic_info_xq_df = ak.stock_individual_basic_info_xq(symbol="SH601127")
print(stock_individual_basic_info_xq_df)
-------------------------------------------------------------------------------------------------
                            item                                              value
0              actual_controller                                       张兴海 (13.07%)
1               actual_issue_vol                                        142500000.0
2              actual_rc_net_amt                                        738451000.0
3             affiliate_industry         {'ind_code': 'BK0025', 'ind_name': '汽车整车'}
4                       chairman                                                张正萍
5                    classi_name                                               民营企业
6                       currency                                                CNY
7                currency_encode                                             019001
8                district_encode                                             500106
9                          email                                    601127@seres.cn
10              established_date                                      1178812800000
11               executives_nums                                                 20
12                           fax                                     86-23-65179777
13               general_manager                                                张正萍
14                   issue_price                                               5.81
15          legal_representative                                                张正萍
16                   listed_date                                      1465920000000
17       main_operation_business                         新能源汽车及核心三电等产品的研发、制造、销售及服务。
18             office_address_cn                                      重庆市沙坪坝区五云湖路719             office_address_en                                               None
20  online_success_rate_of_issue                                           0.110176
21               operating_scope    一般项目:制造、销售:汽车零部件、机动车辆零部件、普通机械、电器机械、电器、电子产品(不...
22           org_cn_introduction  赛力斯始创于1986年,是以新能源汽车为核心业务的技术科技型汽车企业。现有员工1.6万人,A...
23                        org_id                                         T000071215
24                   org_name_cn                                        赛力斯集团股份有限公司
25                   org_name_en                               Seres Group Co.,Ltd.
26             org_short_name_cn                                                赛力斯
27             org_short_name_en                                              SERES
28                   org_website                                   www.seres.com.cn
29              pe_after_issuing                                              18.19
30                      postcode                                             401335
31                   pre_name_cn                                     重庆小康工业集团股份有限公司
32               provincial_name                                                重庆市
33                reg_address_cn                                      重庆市沙坪坝区五云湖路734                reg_address_en                                               None
35                     reg_asset                                       1633366086.0
36                     secretary                                                 申薇
37                     staff_num                                              18838
38                     telephone                                     86-23-65179666

三、Tushare Pro

Tushare Pro所提供的数据内容将扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。
来源:https://tushare.pro/

由于Tushare需要注册用,并获取Token才能调用数据。实际使用跟前两个都类似,可以根据官方文档示例进行编码,交给你们自己啦~

❤如果文章对您有帮助,您的点赞就是我最大的动力❤
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐