GoForum🌐 V2EX

从 efinance 到 TickFlow:斩获 GitHub 3.4k ⭐ 后,我又开发了免费、稳定、全面的股票、ETF 行情数据服务

alex0618 · 2026-03-14 12:52 · 0 次点赞 · 4 条回复

📌 太长不看

前言

2021 年,我发布了 efinance,一个专注从东方财富获取股票、ETF 、期货、基金等数据的 Python 库。至今累计获得 3.4k ⭐。开发难度不大,但它的火爆说明了量化研究者对高质量数据的需求非常大。

当时接口没有严格限流,efinance 上手简单、数据齐全,受到广泛好评。可惜到 2025 年上半年,东方财富开始限制匿名接口调用,频繁访问会被阻断,需要验证或审核。通过后又可能被拉入“小黑屋”,反复循环。

AI 的快速发展降低了量化研究门槛,参与人数激增,导致数据提供方带宽成本上升,限流在所难免。但限流并不能阻挡大家的热情,自此,efinance 仓库收到越来越多关于数据稳定性的问题反馈。可见,一个稳定且价格合理的数据源,已经成为量化研究者的刚需。


TickFlow 的诞生

为了解决这一痛点,我和团队启动了新项目 TickFlow,提供覆盖 A 股行情、K 线、财务数据的 API 。目标是:

  • 低延迟、高可用
  • 让开发者专注策略本身,而非数据抓取

开发过程中,有几十位 GitHub 网友作为早期用户,他们见证了 TickFlow 从 0 到 1 的成长。解决他们的需求,也能覆盖大部分量化研究者的需求。

定价与服务

TickFlow 区分两类用户:

  1. 免费用户:只需要日 K 级别历史数据
  2. 高级用户:需要实时行情、分钟级 K 线及全市场覆盖

免费用户无需注册和 API key ;高级用户需注册获取 API key ,以保障流量和权限管理。


产品对比

特性 TickFlow Tushare Akshare
数据稳定性 ✅ 可靠 ✅ 可靠 ❌ 完全爬虫,易中断
日 K 线 全量历史,免费层支持不复权、等差/等比复权,可批量获取 全量历史,免费层仅不复权 全量历史,复权依赖数据源
分钟 K 线 近一年历史 + 当日实时 j 近十几年历史+高价订阅实时 K 线 仅近几天分钟级
实时行情 全量 A 股、ETF 、指数 需付费且昂贵 ❌ 无可靠实时行情
接入门槛 5 分钟上手,文档齐全,SDK + API 接入
数据完整性 历史 K 线、财务、除权因子 免费版有限,高阶贵 数据缺失多,零散
开发体验 免费套餐长期可用,按需升级 免费版受限,高阶贵 稳定性差,维护成本高

TickFlow 的优势:低门槛、稳定、免费套餐可长期使用、高阶功能按需升级。


快速体验

TickFlow 提供官方 Python SDK,支持 A 股、ETF 、美股、港股、国内期货等。

完整文档https://docs.tickflow.org

安装

# 安装完整版(支持 DataFrame 与进度条)
pip install "tickflow[all]" --upgrade

# 安装基础版
pip install tickflow

支持 Python 3.9+,推荐 3.10+。


初始化客户端

免费服务(无需注册)

from tickflow import TickFlow

tf = TickFlow.free()  # 免费服务

# 获取日 K 线
df = tf.klines.get("600000.SH", period="1d", count=100, as_dataframe=True)
print(df.tail())

# 获取标的信息
instruments = tf.instruments.batch(symbols=["600000.SH", "000001.SZ"])
print(instruments)

特点

  • ✅ 无需注册
  • ✅ 提供历史日 K 线( 1d 、1w 、1M 、1Q 、1Y )
  • ✅ 标的信息、交易所、标的池查询
  • ❌ 不提供实时行情
  • ❌ 不提供分钟级 K 线

完整服务(需注册 API key )

  1. 获取 API Key
    登录 tickflow.org,在控制台生成 API key 。

  2. 配置认证

方式一:直接传入

from tickflow import TickFlow

tf = TickFlow(api_key="your-api-key")

方式二:环境变量( Windows / Linux / Mac )

# Linux / Mac
export TICKFLOW_API_KEY="your-api-key"

# Windows CMD
set TICKFLOW_API_KEY=your-api-key
from tickflow import TickFlow

tf = TickFlow()  # 自动读取环境变量
  1. 发起第一个请求
quotes = tf.quotes.get(symbols=["600000.SH", "000001.SZ"])
for q in quotes:
    print(f"{q['symbol']}: {q['last_price']}")

完整服务特点

  • ✅ 实时行情数据
  • ✅ 分钟级 K 线( 5m 、15m 、30m 、60m 、4h )
  • ✅ 日内分时数据
  • ✅ 高调用频率支持

标的代码与支持市场

统一格式:代码.市场后缀,示例:

  • 股票:600000.SH(浦发银行)、000001.SZ(平安银行)
  • ETF:510300.SH(沪深 300 ETF )
  • 指数:000001.SH(上证指数)
  • 期货:au2604.SHF(上期所黄金主力合约)
后缀 市场 说明
SH 上海证券交易所 沪市 A 股、ETF 、债券等
SZ 深圳证券交易所 深市 A 股、创业板、ETF 等
BJ 北京证券交易所 北交所股票
SHF 上海期货交易所 上期所期货
DCE 大连商品交易所 大商所期货
ZCE 郑州商品交易所 郑商所期货
CFX 中国金融期货交易所 股指/国债期货
INE 上海国际能源交易中心 原油等期货
GFE 广州期货交易所 广期所期货
US 美股 美国证券市场
HK 港股 香港联交所

支持 A 股、国内期货,部分美股、港股接口已支持格式,但暂无数据。


基础用法示例

K 线

# 单标的获取日 K 线
klines = tf.klines.get("600000.SH", period="1d", count=10000, as_dataframe=True)
print(klines.tail(5))

# 批量获取多标的
symbols = ["600000.SH", "000001.SZ", "600519.SH"]
dfs = tf.klines.batch(symbols, period="1d", count=10000, as_dataframe=True, show_progress=True)
print(list(dfs.keys()))

日内分时 K 线

# 单标的 1 分钟 K 线
df = tf.klines.intraday("600000.SH", period="1m", as_dataframe=True)
print(df.tail())

# 批量
dfs = tf.klines.intraday_batch(["600000.SH", "000001.SZ"], as_dataframe=True, show_progress=True)
print(dfs["600000.SH"].tail())

实时行情

# 按标的查询
quotes = tf.quotes.get(symbols=["600000.SH", "000001.SZ"], as_dataframe=True)

# 按标的池查询
quotes_a = tf.quotes.get(universes=["CN_Equity_A"], as_dataframe=True)
quotes_etf = tf.quotes.get(universes=["CN_ETF"], as_dataframe=True)

异步使用

import asyncio
from tickflow import AsyncTickFlow

async def main():
    async with AsyncTickFlow(api_key="your-api-key") as tf:
        df = await tf.klines.get("600000.SH", as_dataframe=True)
        print(df.tail())

        tasks = [tf.klines.get(s, as_dataframe=True) for s in ["600000.SH", "000001.SZ"]]
        results = await asyncio.gather(*tasks)

asyncio.run(main())

结语

TickFlow 提供低延迟、稳定、易用的行情数据服务,适合量化研究者快速上手:

  • 免费服务:历史日 K ,直接用,无需注册
  • 完整服务:实时行情、分钟级 K 线,高并发支持

无论你是初学者还是专业量化团队,TickFlow 都能帮助你专注策略开发,而非数据抓取。

官网:https://tickflow.org
文档:https://docs.tickflow.org

4 条回复
somebodybbb · 2026-03-14 12:57
#1

有 WS 订阅推送吗?

alex0618 · 2026-03-14 13:02
#2

@somebodybbb 现在还没有。后续 1-2 个月会考虑支持。

somebodybbb · 2026-03-14 13:02
#3

@alex0618 需要港和 A 的实时 WS 推送,加油

monmon · 2026-03-14 14:07
#4

赞啊大佬!

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: alex0618
发布: 2026-03-14
点赞: 0
回复: 0