Skip to main content

TickFlow Python Client

Project description

TickFlow Python SDK

Python Version PyPI Package PyPI Downloads Docs GitHub Stars License

TickFlow Python SDK 是 TickFlow 行情数据 API 的官方 Python 客户端,支持 A 股、ETF、美股、港股、国内期货等。

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


安装

使用 pip 安装 TickFlow Python SDK:

pip install "tickflow[all]" --upgrade

如不需要 DataFrame 支持和进度条功能,可安装基本版:

pip install tickflow

SDK 支持 Python 3.9+,推荐使用 Python 3.10 或更高版本。


初始化客户端

免费服务(无需注册)

如果你只需要日K线数据和标的信息(不需要实时行情和分钟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.batch(symbols=["600000.SH", "000001.SZ"])
print(instruments)

免费服务特点:

  • ✅ 无需注册,直接使用
  • ✅ 提供历史日K线数据(1d、1w、1M、1Q、1Y)
  • ✅ 提供标的信息、交易所、标的池查询
  • ❌ 不提供实时行情
  • ❌ 不提供分钟级K线(1m、5m、15m、30m、60m)
  • ⚠️ 日K数据为历史数据,盘中不会实时更新

如果你需要实时行情、盘中实时更新的K线或更高频率访问,请使用完整服务。


完整服务(需注册)

1. 获取 API Key

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

2. 配置认证

方式一:直接传入

from tickflow import TickFlow

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

方式二:Windows 环境变量(PowerShell)

$env:TICKFLOW_API_KEY="your-api-key"

方式二:Windows 环境变量(CMD)

set TICKFLOW_API_KEY=your-api-key
from tickflow import TickFlow

tf = TickFlow()  # 自动读取环境变量

方式三:Linux/Mac 环境变量

export TICKFLOW_API_KEY="your-api-key"
from tickflow import TickFlow

tf = TickFlow()  # 自动读取 TICKFLOW_API_KEY 环境变量

3. 发起第一个请求

from tickflow import TickFlow

# 使用完整服务(需要 API key)
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线(5m、15m、30m、60m)
  • ✅ 日内分时数据
  • ✅ 更高的调用频率

标的代码格式与支持市场

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

标的代码格式

  • 格式:代码.市场后缀
  • 示例:
    • 股票:600000.SH(浦发银行)、000001.SZ(平安银行)、920662.BJ(方盛股份)
    • ETF:510300.SH(沪深 300 ETF)、159915.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):已支持。实时行情、全量历史日 K 线(支持前复权/后复权)、除权因子、标的池(US_Equity)。
  • 港股(HK):已支持。实时行情、全量历史日 K 线(支持前复权/后复权)、除权因子、标的池(HK_Equity)。

按标的查询时传入上述格式的字符串或列表即可:

from tickflow import TickFlow

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

symbols = [
    "600000.SH",   # 沪市
    "000001.SZ",   # 深市
    "AAPL.US",     # 美股
    "00700.HK",    # 港股
]
quotes = tf.quotes.get(symbols=symbols, as_dataframe=True)
print(quotes)

基础用法

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))

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

from tickflow import TickFlow

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

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())

日内分时

当日分钟 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())

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

# 获取当日 5 分钟 K 线
df_5m = tf.klines.intraday("600000.SH", period="5m", as_dataframe=True)
print(df_5m.tail())

批量:多只标的当日分钟线,使用 tf.klines.intraday_batch(symbols, ...)

from tickflow import TickFlow

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

symbols = ["600000.SH", "000001.SZ", "600519.SH"]
dfs = tf.klines.intraday_batch(symbols, as_dataframe=True, show_progress=True)
print(f"成功获取 {len(dfs)} 只股票的日内数据")
print(dfs["600000.SH"].tail())

获取实时行情

按标的代码查询

quotes = tf.quotes.get(symbols=["600000.SH", "000001.SZ"], as_dataframe=True)
print(quotes)

按标的池查询

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

# 获取全部沪深 ETF 行情
quotes_etf = tf.quotes.get(universes=["CN_ETF"], as_dataframe=True)
print(quotes_etf)

异步使用

对于高并发场景,使用异步客户端:

免费服务:

import asyncio
from tickflow import AsyncTickFlow

async def main():
    # 使用免费服务(无需 API key)
    async with AsyncTickFlow.free() as tf:
        df = await tf.klines.get("600000.SH", period="1d", as_dataframe=True)
        print(df.tail())

asyncio.run(main())

完整服务:

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())

更多文档


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tickflow-0.1.21.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tickflow-0.1.21-py3-none-any.whl (42.7 kB view details)

Uploaded Python 3

File details

Details for the file tickflow-0.1.21.tar.gz.

File metadata

  • Download URL: tickflow-0.1.21.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for tickflow-0.1.21.tar.gz
Algorithm Hash digest
SHA256 17fcff4fa3d38805923d92e4861c0bb592a89c6e8a08187533fad2853dc50364
MD5 810992d1330179eb52711c50bfd71ecb
BLAKE2b-256 0a80b808d04f52171abaa7db8f6f9a69fd3e4afe3ca569f0d99964b242d2e70f

See more details on using hashes here.

File details

Details for the file tickflow-0.1.21-py3-none-any.whl.

File metadata

  • Download URL: tickflow-0.1.21-py3-none-any.whl
  • Upload date:
  • Size: 42.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for tickflow-0.1.21-py3-none-any.whl
Algorithm Hash digest
SHA256 eba424d341b6ed7ba0c2ccd13e18e6d535513349b31ed9adcc5dd02c599980a4
MD5 6fa14d920a9f319ee3d492077d95444d
BLAKE2b-256 0b5357b629bcee5d9870a034a321c21325535612b9d69228612302e8facdcea7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page