跳转到主要内容

安装

使用 pip 安装 TickFlow Python SDK:
pip install "tickflow[all]" --upgrade
SDK 支持 Python 3.9+,推荐使用 Python 3.10 或更高版本。

免费服务(快速体验)

如果你只需要日K线数据和标的信息(不需要实时行情),可以直接使用免费服务,无需注册:
from tickflow import TickFlow

# 使用免费服务(无需 API key)
tf = TickFlow.free()

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

# 查询标的信息
instruments = tf.instruments.get(symbols=["600000.SH", "000001.SZ"])
for inst in instruments:
    print(f"{inst.symbol}: {inst.name}")
免费服务特点:
  • ✅ 无需注册,直接使用
  • ✅ 提供历史日K线数据(1d、1w、1M、1Q、1Y)
  • ✅ 提供标的信息、交易所、标的池查询
  • ❌ 不提供实时行情
  • ❌ 不提供分钟级K线(1m、5m、15m、30m、60m)
  • ⚠️ 日K数据为历史数据,盘中不会实时更新
免费服务适合:
  • 历史数据回测
  • 研究学习
  • 日级别策略开发(收盘后)
如需实时行情、分钟K线或更高频率访问,请继续阅读下方的完整服务配置。

完整服务(需注册)

1

获取 API Key

访问 tickflow.org 登录后,在控制台一键生成你的 API Key。
2

配置认证

有两种方式配置 API Key:
from tickflow import TickFlow

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

发起第一个请求

from tickflow import TickFlow

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

# 获取沪深 A 股实时行情
quotes = tf.quotes.get(symbols=["600000.SH", "000001.SZ"])

for q in quotes:
    print(f"{q['symbol']}: {q['last_price']}")
如果看到股票价格输出,说明 SDK 已配置成功!

标的代码格式与支持市场

所有按标的查询的接口(行情、K 线等)均使用统一标的代码,格式为:代码.市场后缀(中间为英文点号)。

标的代码格式

  • 格式:代码.市场后缀
  • 示例:
    • 股票:600000.SH(浦发银行)、000001.SZ(平安银行)、920662.BJ(方盛股份)
    • ETF:510050.SH(沪深 300 ETF)、159919.SZ(创业板 ETF)
    • 指数:000001.SH(上证指数)、399006.SZ(创业板指数)
    • 期货:au2604.SHF(上期所黄金主力合约)、i2605.DCE(大商所铁矿石主力合约)等
代码部分使用交易所官方代码(如 6 位 A 股代码、合约代码等),市场后缀见下表。

支持的市场(后缀)

后缀市场说明
SH上海证券交易所沪市 A 股、ETF、债券等
SZ深圳证券交易所深市 A 股、创业板、ETF 等
BJ北京证券交易所北交所股票
SHF上海期货交易所上期所期货
DCE大连商品交易所大商所期货
ZCE郑州商品交易所郑商所期货
CFX中国金融期货交易所中金所股指/国债期货
INE上海国际能源交易中心原油等期货
GFE广州期货交易所广期所期货
US美股美国证券市场
HK港股香港联交所

目前支持状态

  • A 股(SH / SZ / BJ):已支持。可查实时行情、日 K、分钟 K、标的池(如 CN_Equity_A)等。
  • 国内期货(SHF / DCE / ZCE / CFX / INE / GFE):支持主力合约查询。按合约代码 + 后缀查询(如 au2604.SHF)。
  • 美股(US)、港股(HK):接口与标的格式已支持,但暂无数据。
按标的查询时传入上述格式的字符串或列表即可,例如:
from tickflow import TickFlow

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

# 多市场示例
symbols = [
    "600000.SH",   # 沪市
    "000001.SZ",   # 深市
    "920662.BJ",   # 北交所
    "au2604.SHF",  # 上期所期货
]
quotes = tf.quotes.get(symbols=symbols, as_dataframe=True)
print(quotes)
输出示例
       symbol region  last_price  prev_close     open  ...  ext.name  ext.change_pct  ext.change_amount  ext.amplitude  ext.turnover_rate
0   000001.SZ     CN       10.79       10.76    10.77  ...      平安银行        0.002788               0.03       0.006506           0.003603
1   920662.BJ     CN       28.62       27.53    28.26  ...      方盛股份        0.039593               1.09       0.052307           0.023130
2  au2604.SHF     CN     1150.16     1140.00  1139.00  ...    沪金2604        0.008912              10.16       0.017316                NaN
3   600000.SH     CN        9.98        9.85     9.83  ...      浦发银行        0.013198               0.13       0.019289           0.001633

[4 rows x 18 columns]

基础用法

K 线获取

单次单标的最多获取 10000 根 K 线

非批量

单只标的日 K、周 K 等,使用 tf.klines.get(symbol, ...)
from tickflow import TickFlow

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

# 获取日 K 线,返回原始数据
klines = tf.klines.get("600000.SH", period="1d", count=10000)
print(f"最新收盘价: {klines['close'][-1]}")

# 获取日 K 线,返回 DataFrame(需安装 pandas)
df = tf.klines.get("600000.SH", period="1d", count=10000, as_dataframe=True)
print(df.tail(5))
输出示例
最新收盘价: 9.96
         symbol  name      timestamp  trade_date           trade_time  open   high   low  close   volume        amount
6373  600000.SH  浦发银行  1772553600000  2026-03-04  2026-03-04 00:00:00  9.69   9.70  9.43   9.60  1617556  1.544304e+09
6374  600000.SH  浦发银行  1772640000000  2026-03-05  2026-03-05 00:00:00  9.56   9.81  9.56   9.78  1197453  1.163685e+09
6375  600000.SH  浦发银行  1772726400000  2026-03-06  2026-03-06 00:00:00  9.74   9.90  9.71   9.89   727260  7.147781e+08
6376  600000.SH  浦发银行  1772985600000  2026-03-09  2026-03-09 00:00:00  9.83  10.02  9.77   9.85  1168405  1.156617e+09
6377  600000.SH  浦发银行  1773072000000  2026-03-10  2026-03-10 00:00:00  9.83   9.99  9.80   9.96   527097  5.218013e+08

批量

多只标的一次性拉取,使用 tf.klines.batch(symbols, ...),适合大量标的:
from tickflow import TickFlow

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

# 批量获取多只股票的 K 线
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()))
print(dfs["600000.SH"].tail())
输出示例
['000001.SZ', '600519.SH', '600000.SH']
         symbol  name      timestamp  trade_date           trade_time  open   high   low  close   volume        amount
6373  600000.SH  浦发银行  1772553600000  2026-03-04  2026-03-04 00:00:00  9.69   9.70  9.43   9.60  1617556  1.544304e+09
6374  600000.SH  浦发银行  1772640000000  2026-03-05  2026-03-05 00:00:00  9.56   9.81  9.56   9.78  1197453  1.163685e+09
6375  600000.SH  浦发银行  1772726400000  2026-03-06  2026-03-06 00:00:00  9.74   9.90  9.71   9.89   727260  7.147781e+08
6376  600000.SH  浦发银行  1772985600000  2026-03-09  2026-03-09 00:00:00  9.83  10.02  9.77   9.85  1168405  1.156617e+09
6377  600000.SH  浦发银行  1773072000000  2026-03-10  2026-03-10 00:00:00  9.83   9.99  9.80   9.97   528753  5.234518e+08

日内分时

当日分钟 K 线(1 分钟、5 分钟等),按单只或批量调用。

非批量

单只标的当日分钟线,使用 tf.klines.intraday(symbol, ...)
from tickflow import TickFlow

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

# 获取当日 1 分钟 K 线
df = tf.klines.intraday("600000.SH", as_dataframe=True)
print(f"今日已有 {len(df)} 根分钟 K 线")
print(df.tail())
print("-" * 50)

# 指定 count 参数,获取当日最新5根分钟K线
df_last_1 = tf.klines.intraday("600000.SH", as_dataframe=True, count=1)
print("获取当日最新 1 根分钟K线")
print(df_last_1.tail())
print("-" * 50)

# 获取当日 5 分钟 K 线
df_5m = tf.klines.intraday("600000.SH", period="5m", as_dataframe=True)
print(f"今日已有 {len(df_5m)} 根 5 分钟 K 线")
print(df_5m.tail())
输出示例
今日已有 202 根分钟 K 线
        symbol  name      timestamp  trade_date           trade_time  open  high   low  close  volume     amount
197  600000.SH  浦发银行  1773123420000  2026-03-10  2026-03-10 14:17:00  9.97  9.97  9.96   9.96    1878  1871400.0
198  600000.SH  浦发银行  1773123480000  2026-03-10  2026-03-10 14:18:00  9.97  9.97  9.96   9.97    2090  2083325.0
199  600000.SH  浦发银行  1773123540000  2026-03-10  2026-03-10 14:19:00  9.97  9.97  9.96   9.97    1311  1306814.0
200  600000.SH  浦发银行  1773123600000  2026-03-10  2026-03-10 14:20:00  9.97  9.97  9.96   9.97    1819  1813426.0
201  600000.SH  浦发银行  1773123660000  2026-03-10  2026-03-10 14:21:00  9.97  9.97  9.96   9.97     496   494470.0
--------------------------------------------------
获取当日最新 1 根分钟K线
      symbol  name      timestamp  trade_date           trade_time  open  high   low  close  volume    amount
0  600000.SH  浦发银行  1773123660000  2026-03-10  2026-03-10 14:21:00  9.97  9.97  9.96   9.97     496  494470.0
--------------------------------------------------
今日已有 41 根 5 分钟 K 线
       symbol  name      timestamp  trade_date           trade_time  open  high   low  close  volume      amount
36  600000.SH  浦发银行  1773122700000  2026-03-10  2026-03-10 14:05:00  9.95  9.97  9.95   9.97   11766  11722589.0
37  600000.SH  浦发银行  1773123000000  2026-03-10  2026-03-10 14:10:00  9.96  9.97  9.96   9.97    5950   5930976.0
38  600000.SH  浦发银行  1773123300000  2026-03-10  2026-03-10 14:15:00  9.96  9.97  9.96   9.96   13054  13012628.0
39  600000.SH  浦发银行  1773123600000  2026-03-10  2026-03-10 14:20:00  9.96  9.97  9.96   9.97   10810  10773740.0
40  600000.SH  浦发银行  1773123900000  2026-03-10  2026-03-10 14:25:00  9.97  9.97  9.96   9.97     496    494470.0

批量

多只标的当日分钟线,使用 tf.klines.intraday_batch(symbols, ...)
from tickflow import TickFlow

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

# 批量获取多只股票的当日分钟 K 线
symbols = ["600000.SH", "000001.SZ", "600519.SH"]
dfs = tf.klines.intraday_batch(symbols, as_dataframe=True, show_progress=True)
print(f"成功获取 {len(dfs)} 只股票的日内数据")
# 展示浦发银行当日最新5根分钟K线
print(dfs["600000.SH"].tail())
输出示例
成功获取 3 只股票的日内数据
        symbol  name      timestamp  trade_date           trade_time  open  high   low  close  volume     amount
200  600000.SH  浦发银行  1773123600000  2026-03-10  2026-03-10 14:20:00  9.97  9.97  9.96   9.97    1819  1813426.0
201  600000.SH  浦发银行  1773123660000  2026-03-10  2026-03-10 14:21:00  9.97  9.97  9.96   9.96     881   878056.0
202  600000.SH  浦发银行  1773123720000  2026-03-10  2026-03-10 14:22:00  9.96  9.97  9.96   9.96     618   615792.0
203  600000.SH  浦发银行  1773123780000  2026-03-10  2026-03-10 14:23:00  9.97  9.97  9.96   9.97     649   646777.0
204  600000.SH  浦发银行  1773123840000  2026-03-10  2026-03-10 14:24:00  9.96  9.97  9.96   9.97    1328  1323983.0

获取实时行情

按标的代码查询

quotes = tf.quotes.get(symbols=["600000.SH", "000001.SZ"], as_dataframe=True)
print(quotes)
输出示例
      symbol region  last_price  prev_close   open  ...  ext.name  ext.change_pct  ext.change_amount  ext.amplitude  ext.turnover_rate
0  600000.SH     CN        9.89        9.98   9.98  ...      浦发银行       -0.009018              -0.09       0.015030           0.002103
1  000001.SZ     CN       10.91       10.96  10.96  ...      平安银行       -0.004562              -0.05       0.008212           0.002860

[2 rows x 18 columns]

按标的池查询

# 获取全部 A 股行情
quotes_df_a = tf.quotes.get(universes=["CN_Equity_A"], as_dataframe=True)
print(quotes_df_a)

# 获取全部沪深 ETF 行情
quotes_df_etf = tf.quotes.get(universes=["CN_ETF"], as_dataframe=True)
print(quotes_df_etf)
输出示例
         symbol region  last_price  prev_close   open  ...  ext.name  ext.change_pct  ext.change_amount  ext.amplitude  ext.turnover_rate
0     600916.SH     CN       10.50       10.66  10.69  ...      中国黄金       -0.015009              -0.16       0.026266           0.025402
1     301363.SZ     CN       29.16       29.14  29.37  ...      美好医疗        0.000686               0.02       0.024708           0.011435
2     600649.SH     CN        4.79        4.84   4.86  ...      城投控股       -0.010331              -0.05       0.022727           0.013862
3     603681.SH     CN       21.73       21.88  21.88  ...      永冠新材       -0.006856              -0.15       0.027422           0.025814
4     301137.SZ     CN       61.56       59.15  58.56  ...      哈焊华通        0.040744               2.41       0.071851           0.072857
...         ...    ...         ...         ...    ...  ...       ...             ...                ...            ...                ...
5479  300127.SZ     CN       35.83       35.19  35.51  ...      银河磁体        0.018187               0.64       0.020176           0.014084
5480  600249.SH     CN        5.84        5.80   5.84  ...       两面针        0.006897               0.04       0.013793           0.008029
5481  600456.SH     CN       39.64       39.17  39.50  ...      宝钛股份        0.011999               0.47       0.023487           0.017193
5482  603095.SH     CN       20.30       20.41  20.60  ...      越剑智能       -0.005390              -0.11       0.030867           0.016026
5483  002181.SZ     CN       10.72       10.46  10.57  ...     粤 传 媒        0.024857               0.26       0.032505           0.034027

[5484 rows x 18 columns]
         symbol region  last_price  prev_close   open  ...     ext.name  ext.change_pct  ext.change_amount  ext.amplitude  ext.turnover_rate
0     159974.SZ     CN       1.980       1.978  1.960  ...    央企创新ETF富国        0.001011              0.002       0.014156           0.014264
1     159637.SZ     CN       0.924       0.910  0.914  ...    新能源车ETF东财        0.015385              0.014       0.019780           0.011927
2     159258.SZ     CN       1.159       1.137  1.144  ...     机器人ETF南方        0.019349              0.022       0.014072           0.013587
3     159351.SZ     CN       1.252       1.232  1.237  ...    A500ETF嘉实        0.016234              0.020       0.012175           0.097820
4     159692.SZ     CN       1.229       1.221  1.226  ...      证券ETF东财        0.006552              0.008       0.008190           0.025241
...         ...    ...         ...         ...    ...  ...          ...             ...                ...            ...                ...
1393  159775.SZ     CN       0.910       0.892  0.900  ...      电池ETF建信        0.020179              0.018       0.017937           0.150701
1394  512750.SH     CN       1.452       1.452  1.443  ...   基本面50ETF嘉实        0.000000              0.000       0.008264           0.005310
1395  563000.SH     CN       1.051       1.036  1.040  ...  中国A50ETF易方达        0.014479              0.015       0.010618           0.012222
1396  512050.SH     CN       1.239       1.220  1.225  ...    A500ETF基金        0.015574              0.019       0.013115           0.224107
1397  516390.SH     CN       1.007       0.992  0.998  ...   新能源车ETF汇添富        0.015121              0.015       0.017137           0.037805

[1398 rows x 18 columns]

异步使用

对于高并发场景,使用异步客户端:
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())
        
        # 并发获取多只股票,仅演示,如需大量获取K线数据,请使用批量接口,tf.klines.batch
        tasks = [
            tf.klines.get(s, as_dataframe=True)
            for s in ["600000.SH", "000001.SZ"]
        ]
        results = await asyncio.gather(*tasks)

asyncio.run(main())

下一步

完整示例

查看更多使用场景和代码示例

最佳实践

了解生产环境的最佳实践