在量化研究和交易策略开发中,数据是核心驱动力。行情数据的覆盖范围、实时性、稳定性和可获取性,直接决定了策略的可行性和风险控制能力。市场上常见的数据服务有 TushareAKShare 以及 Infoway API。本文将对三者进行深入对比,帮助量化研究者和交易开发者做出明智选择。

1. Tushare

tushare logo

Tushare 是国内较早的金融数据接口库,提供免费、开源的Python财经数据接口包,主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程。这个平台最初由开发者Jimmy创建,早期版本通过爬虫从新浪财经等平台实时抓取数据。

2018年推出了Tushare Pro版本,数据质量有了质的提升,不再直接从互联网抓取,而是通过社区采集和整理存入数据库,经过质量控制后再提供给用户。这个平台主要面向金融分析人员和量化投资者,帮助他们减轻数据获取的工作量,专注于策略和模型研究。

1.1 Tushare能查询哪些数据?

Tushare的数据覆盖面非常广泛,包括股票、基金、期货、数字货币等行情数据,以及公司财务、基金经理等基本面数据。具体来说:

  • 沪深股票数据:股票列表、日线/周线/月线行情、分钟级K线数据、复权数据、涨跌停信息等
  • 基础数据:股票代码、名称、上市日期、退市日期等
  • 财务数据:财务报表、利润表、资产负债表等
  • 市场参考数据:换手率、市盈率、市净率等技术指标
  • 其他市场:港股、美股、期货、期权、债券、外汇
  • 宏观数据:行业经济、宏观经济数据

返回的数据格式大多为Pandas DataFrame,方便进行数据分析和可视化处理。

1.2 Tushare的收费政策

Tushare本身有免费的数据,但是数据非常有限,只能查询A股,而且每分钟限制查询50次以内。

而Tushare Pro作为付费产品,开放了更高的查询权限,目前绝大部分还在使用Tushare的朋友都基本迁移到了Tushare Pro,因为免费版实在不够用了。Tushare Pro是积分制,查询权限和频率都与积分有关,具体为:

  • 2000积分(充值200人民币):API每分钟可查询200次,每天上限10万次
  • 5000积分(充值500元):API每分钟500次,每天查询数量不设上限

注意,以上的权限只能查询到日K线,如果你需要分钟级的数据,得加钱,以A股的分钟级数据为例,每月收费是1000元,提供1、5、15、30、60分钟的K线,每分钟限制查询500次。

Tushare也提供港股的实时数据,但是只有日K线,没有分钟级的数据,收费是1000元/月。

1.3 Tushare的优缺点总结

优点:

  • 数据种类丰富,API接口简洁直观,对初学者友好
  • 与Pandas完美集成,便于数据分析
  • 基础数据免费提供

缺点:

  • 数据来源依靠爬虫抓取,接口稳定性较差
  • 海外市场没有分钟级的实时数据
  • 除了期货,其他均不支持WebSocket

2. AKShare

akshare logo

AKShare 发布于2019年,由开源社区组织 AKFamily 维护。是一个开源 Python 库,覆盖股票、期货、基金、外汇以及宏观经济数据。其优势在于 免费、接口统一、使用便捷,适合学术研究和数据分析。

2.1 AKShare能查询哪些数据?

AKShare的数据覆盖范围也非常广泛, 包括:

  • 股票数据:A股、港股、美股的实时行情、历史数据、日线/周线/月线、财务报表、停复牌信息等
  • 基金数据:公募基金、ETF基金、分级基金的净值、持仓、评级等
  • 期货数据:各大期货交易所(上期所、大商所、郑商所、中金所等)的日线数据、持仓排名等
  • 宏观数据:GDP、CPI、PMI等宏观经济指标
  • 另类数据:新闻资讯、社交媒体情绪等

AKShare的数据主要来自东方财富、新浪财经、Wind等平台,通过爬虫获取。

2.2 AKShare是如何收费的?

截止笔者写稿(2026年1月6日),AKShare仍然是免费的,完全没有额外的付费服务。

2.3 AKShare的优缺点总结

优点:

  • 真 · 免费,完全不设收费门槛
  • API设计简洁直观,文档齐全,每个接口都提供详细示例代码(对新手非常友好)
  • 与Pandas完美集成,数据以DataFrame格式返回

缺点:

  • 本质是帮我们把全网公开金融数据都写成了爬虫,数据获取对网络要求比较高,频繁访问会导致IP被封
  • 由于是爬虫采集数据,当目标网站更改格式时,接口可能失效,需要及时更新版本
  • 仅限学术研究使用,商业用途有风险

3. Infoway API

infoway api logo

Infoway API是一款高性能的行情接口产品,专为量化交易、股票分析平台、交易所设计,提供毫秒级金融行情数据API。我们的核心特点是提供实时、低延迟的金融市场数据,平均延迟仅60 – 150毫秒,并承诺99.96%的SLA保障。

Infoway API定位为专业级金融数据服务商,支持逐笔成交和订单簿快照等颗粒度,兼容RESTful API和WebSocket两种接入方式,满足高频量化、资产管理系统、行情终端等专业场景需求。

3.1 Infoway API能查询哪些数据?

Infoway API 的数据覆盖范围非常广泛,包含超过20,000+可查询品种。具体包括:

  • 股票数据:覆盖A股约5000只股票(沪深交易所)、港股、美股市场,提供实时行情、K线数据、逐笔成交、五档盘口、基本面信息等
  • 外汇数据:支持超过40种主流货币对(如EUR/USD、USD/JPY等)的实时和历史数据
  • 加密货币数据:覆盖100+主要加密货币,7×24小时全球热门市场即时报价,覆盖币安、Coinbase、OKX等30+主流交易所
  • 商品期货数据:包括伦敦金银现货、COMEX黄金期货、CME能源农产品、EUREX欧洲期货、新加坡矿石期货等品种

数据类型包括:

  • K线数据(1分钟到年线多种周期)
  • 实时成交明细
  • 订单簿深度
  • 历史数据

所有数据以高度标准化的JSON格式返回,格式规范且可立即使用:

Python
{
  "s": "USDGBP",
  "respList": [
    {
      "t": "1752872400",
      "h": "0.74578",
      "o": "0.74527",
      "l": "0.74503",
      "c": "0.74503",
      "v": "45.0",
      "vw": "33.530460",
      "pc": "-0.09%",
      "pca": "-0.00065"
    }
  ]
}

3.2 Infoway API的WebSocket行情订阅

传统 HTTP 接口虽然可以获取批量行情数据,但在需要实时行情、盘口变化或高频事件触发的场景下,延迟往往成为策略执行的瓶颈。而WebSocket则可以大大降低数据延迟,并被广泛运用于海内外的量化交易,以及交易所等专业场景。

下面是HTTP与WebSocket的差异对比:

特性HTTP 接口WebSocket 接口
数据获取方式客户端发起请求服务器主动推送数据
实时性延迟较高,需轮询几乎即时,低延迟
网络开销每次请求都建立连接长连接,开销低
使用场景历史数据、批量查询实时行情、盘口、策略信号推送

从以上对比可以看出,HTTP接口更适合用来查询历史数据、做数据分析等场景,而在实盘交易,或者在交易所场景,使用WebSocket会更合适。Infoway API 提供专业的 WebSocket 接口,支持:

  • 多市场订阅:股票、期货、外汇、加密货币的实时行情
  • 盘口和成交数据:即时捕捉买卖盘变化
  • 事件驱动:数据更新触发回调,可直接接入策略执行模块

3.3 Infoway API是如何收费的?

Infoway API 提供免费试用,在我们官网注册即可自动获得7天试用会员,在试用期间,可以查询所有的数据,但为了防止滥用,查询频率会做如下限制:

  • REST API:每分钟60次 (每秒一次)
  • WebSocket:支持订阅10个产品(A股、港股、美股、外汇、加密货币、期货,任意10个)
  • 历史数据:最近6个月

更多定价方案,可以看这里:产品定价

4. 实例对比

以获取 A 股实时行情为例:

Tushare:

Python
import tushare as ts
pro = ts.pro_api('YOUR_TOKEN')
df = pro.stock_basic()

输出字段多,需额外筛选,实时性有限。

AKShare:

Python
import akshare as ak
df = ak.stock_zh_a_spot_em()

快速返回数据,但受网页抓取稳定性影响,频繁使用容易被封IP。

Infoway API (Websocket)

Python
import asyncio
import json
import websockets

WS_URL = "wss://data.infoway.io/ws?business=stock&apikey=yourApikey"

async def connect_and_receive():
    async with websockets.connect(WS_URL) as websocket:
        init_message = {
            "code": 10000,
            "trace": "01213e9d-90a0-426e-a380-ebed633cba7a",
            "data": {"codes": "002594.sz"}
        }
        await websocket.send(json.dumps(init_message))

        async def send_ping():
            while True:
                await asyncio.sleep(30)
                ping_message = {
                    "code": 10010,
                    "trace": "01213e9d-90a0-426e-a380-ebed633cba7a"
                }
                await websocket.send(json.dumps(ping_message))

        ping_task = asyncio.create_task(send_ping())
        
        try:
            while True:
                message = await websocket.recv()
                print(f"Message received: {message}")
        except websockets.exceptions.ConnectionClosedOK:
            print("Connection closed normally")
        finally:
            ping_task.cancel()

asyncio.run(connect_and_receive())

Infoway API 的 WebSocket 接口实时性高,接口稳定,直接可用于策略或分发给终端用户。

5. 如何选择适合你的行情API?

不同用户场景对数据的需求都不一样:历史覆盖、实时性、稳定性、成本等因素都会影响最终选择。下面我们从典型场景出发,为您提供具体的选择逻辑。

5.1 学术研究 / 数据分析:推荐AKShare 或 Tushare

对研究型用户来说,核心目标是数据获取方便、覆盖全面、成本低,实时性可以适度妥协。如果你有以下痛点:

  • 需要快速获取大量历史数据进行统计分析或模型验证
  • 成本敏感,希望使用免费或开源工具
  • 对实时性要求低,更多关注数据完整性和覆盖面

那么建议首先选择AKShare,因为它完全免费,接口设计合理。当AKShare无法满足要求后,再选择Tushare,虽然Tushare的积分比较难获取(除非直接氪金),但是也有一些推广送积分的活动,可以持续白嫖一段时间。

5.2 策略回测 / 多市场验证:推荐Tushare + Infoway API

对回测型用户,选择策略的核心逻辑是历史数据覆盖 + 实时验证能力。比如你需要:

  • 回测需要高质量历史数据覆盖不同市场与品种
  • 在多市场策略验证中,需要保证数据格式统一、可直接输入回测系统
  • 希望在模拟交易中检验策略逻辑,同时获取真实市场反馈

那么建议选择Tushare + Infoway API 的组合。Tushare 用于回测,Infoway API 提供低延迟实时数据,保证策略在真实交易中的可行性。

5.3 高频 / 实时交易:推荐Infoway API

高频策略用户的核心需求是实时性与稳定性,任何延迟都会直接影响策略收益和风控,因此 Infoway API 的 WebSocket 是不可替代的优势。Infoway API能够完美解决以下痛点:

  • 高频策略对数据延迟极度敏感
  • 需要实时行情、盘口和成交数据驱动策略决策
  • HTTP 轮询或网页抓取无法满足毫秒级的实时需求

5.4 交易所 / 专业交易平台开发:推荐Infoway API

对专业交易平台开发者而言,Infoway API 是唯一可靠选择。开源工具无法提供生产环境所需的性能和稳定性。

在专业交易平台开发时,需要数据接口具备高稳定性、低延迟和持续推送能力,而Tushare 和 AKShare 依赖爬虫抓取网页或第三方 API,存在延迟、波动大、稳定性差等问题,数据错误或延迟直接影响交易执行,可能导致严重损失。

在这种场景下建议选择Infoway API,我们为海内外多家交易所提供行情数据,产品久经考验,是更合适的选择。