Python SDK REST API 和 WebSocket 实时推送接口 金融数据API文档 SDK & 开发工具 iTick 官方 Python SDK,提供基础、股票、指数、期货、基金、外汇、加密货币数据的 REST API 查询和 WebSocket 实时数据订阅功能。

Python SDK 文档

Python 语言版本的 iTick API SDK,提供基础、股票、指数、期货、基金、外汇、加密货币数据的 REST API 查询和 WebSocket 实时数据订阅功能。

功能特性

  • 支持 REST API 查询基础、股票、指数、期货、基金、外汇、加密货币数据
  • 支持 WebSocket 实时数据订阅
  • 自动重连机制
  • 心跳保持连接
  • 回调式事件处理

安装

pip install itick-sdk

或从源码安装:

cd python
pip install -e .

快速开始

初始化客户端

from itick.sdk import Client

token = "your_api_token"
client = Client(token)

REST API 使用

外汇数据查询

# 获取外汇实时成交
tick = client.get_forex_tick("GB", "EURUSD")
print("Forex Tick:", tick)

# 获取外汇实时报价
quote = client.get_forex_quote("GB", "EURUSD")
print("Forex Quote:", quote)

# 获取外汇实时盘口
depth = client.get_forex_depth("GB", "EURUSD")
print("Forex Depth:", depth)

# 获取外汇历史K线
kline = client.get_forex_kline("GB", "EURUSD", 2, 10)
print("Forex Kline:", kline)

股票数据查询

# 获取股票实时成交
tick = client.get_stock_tick("US", "AAPL")
print("Stock Tick:", tick)

# 获取股票实时报价
quote = client.get_stock_quote("US", "AAPL")
print("Stock Quote:", quote)

# 获取股票实时盘口
depth = client.get_stock_depth("US", "AAPL")
print("Stock Depth:", depth)

# 获取股票历史K线
kline = client.get_stock_kline("US", "AAPL", 2, 10)
print("Stock Kline:", kline)

加密货币数据查询

# 获取加密货币实时成交
tick = client.get_crypto_tick("BA", "BTCUSDT")
print("Crypto Tick:", tick)

# 获取加密货币实时报价
quote = client.get_crypto_quote("BA", "BTCUSDT")
print("Crypto Quote:", quote)

# 获取加密货币实时盘口
depth = client.get_crypto_depth("BA", "BTCUSDT")
print("Crypto Depth:", depth)

# 获取加密货币历史K线
kline = client.get_crypto_kline("BA", "BTCUSDT", 2, 10)
print("Crypto Kline:", kline)

WebSocket 使用

SDK 提供了增强的 WebSocket 功能,包括自动重连和心跳保持,用户无需手动管理连接状态。

设置回调函数

# 设置消息处理器
def on_message(message):
    print(f"Received WebSocket message: {message}")

# 设置错误处理器
def on_error(error):
    print(f"WebSocket error: {error}")

client.set_message_handler(on_message)
client.set_error_handler(on_error)

连接和订阅

# 连接外汇 WebSocket
client.connect_forex_websocket()

# 发送订阅消息
client.send_websocket_message('{"action": "subscribe", "codes": ["EURUSD"]}')

# 等待接收消息
import time
time.sleep(10)

# 检查连接状态
print(f"WebSocket connected: {client.is_websocket_connected()}")

# 关闭 WebSocket
client.close_websocket()

其他 WebSocket 连接

# 连接股票 WebSocket
client.connect_stock_websocket()

# 连接加密货币 WebSocket
client.connect_crypto_websocket()

API 接口列表

基础 (Basics)

方法说明
get_symbol_list获取符号列表
get_symbol_holidays获取节假日信息

股票 (Stock)

方法说明
get_stock_info获取股票信息
get_stock_ipo获取股票IPO信息
get_stock_split获取股票分拆信息
get_stock_tick获取股票实时成交
get_stock_quote获取股票实时报价
get_stock_depth获取股票实时盘口
get_stock_kline获取股票历史K线
get_stock_ticks获取股票批量实时成交
get_stock_quotes获取股票批量实时报价
get_stock_depths获取股票批量实时盘口
get_stock_klines获取股票批量历史K线
connect_stock_websocket连接股票 WebSocket

指数 (Indices)

方法说明
get_indices_tick获取指数实时成交
get_indices_quote获取指数实时报价
get_indices_depth获取指数实时盘口
get_indices_kline获取指数历史K线
get_indices_ticks获取指数批量实时成交
get_indices_quotes获取指数批量实时报价
get_indices_depths获取指数批量实时盘口
get_indices_klines获取指数批量历史K线
connect_indices_websocket连接指数 WebSocket

期货 (Futures)

方法说明
get_future_tick获取期货实时成交
get_future_quote获取期货实时报价
get_future_depth获取期货实时盘口
get_future_kline获取期货历史K线
get_future_ticks获取期货批量实时成交
get_future_quotes获取期货批量实时报价
get_future_depths获取期货批量实时盘口
get_future_klines获取期货批量历史K线
connect_future_websocket连接期货 WebSocket

基金 (Funds)

方法说明
get_fund_tick获取基金实时成交
get_fund_quote获取基金实时报价
get_fund_depth获取基金实时盘口
get_fund_kline获取基金历史K线
get_fund_ticks获取基金批量实时成交
get_fund_quotes获取基金批量实时报价
get_fund_depths获取基金批量实时盘口
get_fund_klines获取基金批量历史K线
connect_fund_websocket连接基金 WebSocket

外汇 (Forex)

方法说明
get_forex_tick获取外汇实时成交
get_forex_quote获取外汇实时报价
get_forex_depth获取外汇实时盘口
get_forex_kline获取外汇历史K线
get_forex_ticks获取外汇批量实时成交
get_forex_quotes获取外汇批量实时报价
get_forex_depths获取外汇批量实时盘口
get_forex_klines获取外汇批量历史K线
connect_forex_websocket连接外汇 WebSocket

加密货币 (Crypto)

方法说明
get_crypto_tick获取加密货币实时成交
get_crypto_quote获取加密货币实时报价
get_crypto_depth获取加密货币实时盘口
get_crypto_kline获取加密货币历史K线
get_crypto_ticks获取加密货币批量实时成交
get_crypto_quotes获取加密货币批量实时报价
get_crypto_depths获取加密货币批量实时盘口
get_crypto_klines获取加密货币批量历史K线
connect_crypto_websocket连接加密货币 WebSocket

WebSocket 功能说明

自动重连

SDK 内置自动重连机制,当网络异常或连接断开时,会自动尝试重新连接:

  • 重连间隔:5 秒
  • 最大重连次数:10 次
  • 重连成功后自动恢复订阅

心跳保持

SDK 自动维护 WebSocket 连接的心跳:

  • 心跳间隔:30 秒
  • 自动发送 ping 消息保持连接活跃

连接状态检查

# 检查 WebSocket 是否连接
connected = client.is_websocket_connected()

完整示例

from itick.sdk import Client
import time

# 初始化客户端
token = "your_api_token"
client = Client(token)

# 设置 WebSocket 消息处理器
def on_message(message):
    print(f"Received WebSocket message: {message}")

# 设置 WebSocket 错误处理器
def on_error(error):
    print(f"WebSocket error: {error}")

client.set_message_handler(on_message)
client.set_error_handler(on_error)

# 测试 REST API
tick = client.get_forex_tick("GB", "EURUSD")
print("Forex Tick:", tick)

# 测试 WebSocket
try:
    client.connect_forex_websocket()

    # 发送订阅消息
    client.send_websocket_message('{"action": "subscribe", "codes": ["EURUSD"]}')

    # 等待接收消息
    print("Waiting for WebSocket messages...")
    time.sleep(10)

    # 检查连接状态
    print(f"WebSocket connected: {client.is_websocket_connected()}")

finally:
    # 关闭 WebSocket
    client.close_websocket()
  1. 基金报价Websocket API

    提供场内交易基金(ETF/LOF)的WebSocket实时行情数据流,完整推送基金实时价格、成交量、IOPV净值估值及盘口深度变化。数据覆盖股票ETF、债券ETF、商品ETF等全品类基金品种,毫秒级低延迟推送。

  2. Java SDK

    iTick 官方 Java SDK,提供基础、股票、指数、期货、基金、外汇、加密货币数据的 REST API 查询和 WebSocket 实时数据订阅功能。