安装
使用 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数据为历史数据,盘中不会实时更新
- 历史数据回测
- 研究学习
- 日级别策略开发(收盘后)
完整服务(需注册)
获取 API Key
访问 tickflow.org 登录后,在控制台一键生成你的 API Key。
配置认证
有两种方式配置 API Key:
- 直接传入
- Windows 环境变量
- Linux/Mac 环境变量
复制
from tickflow import TickFlow
tf = TickFlow(api_key="your-api-key")
powershell
复制
$env:TICKFLOW_API_KEY="your-api-key"
cmd
复制
set TICKFLOW_API_KEY=your-api-key
复制
export TICKFLOW_API_KEY="your-api-key"
复制
from tickflow import TickFlow
# 自动读取 TICKFLOW_API_KEY 环境变量
tf = TickFlow()
标的代码格式与支持市场
所有按标的查询的接口(行情、K 线等)均使用统一标的代码,格式为:代码.市场后缀(中间为英文点号)。
标的代码格式
- 格式:
代码.市场后缀 - 示例:
- 股票:
600000.SH(浦发银行)、000001.SZ(平安银行)、920662.BJ(方盛股份) - ETF:
510050.SH(沪深 300 ETF)、159919.SZ(创业板 ETF) - 指数:
000001.SH(上证指数)、399006.SZ(创业板指数) - 期货:
au2604.SHF(上期所黄金主力合约)、i2605.DCE(大商所铁矿石主力合约)等
- 股票:
支持的市场(后缀)
| 后缀 | 市场 | 说明 |
|---|---|---|
| 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())
下一步
完整示例
查看更多使用场景和代码示例
最佳实践
了解生产环境的最佳实践
