快速开始

本页目录

获取行情,连接 CTP 账户并读取可用资金。

1. 准备环境与凭据#

  1. 完成 安装与环境。
  2. 在个人中心复制 SDK Token,确认体验或专业版权益有效。
  3. 将示例中的 YOUR_TOKEN 替换为完整令牌。

仅看行情不需要交易账户,可以直接完成下一节。

凭据保管:不要公开含 Token、账号或交易凭据的文件。

2. 获取行情#

  1. 将下面的代码保存为 hello_exsdk.py。
  2. 在安装 SDK 的同一 Python 环境中运行 python hello_exsdk.py。
import math
import time
from exsdk import ExApi

with ExApi(token="YOUR_TOKEN") as api:
    symbols = api.query_symbols("FUTURE", exchange_id="SHFE", is_main=True)
    if not symbols:
        raise RuntimeError("No matching futures contracts")
    symbol = symbols[0]
    quote = api.watch_quote(symbol)
    print("正在订阅", symbol, ";按 Ctrl+C 停止")

    while True:
        if not api.wait_update(deadline=time.time() + 10):
            print("本次未收到更新,继续等待;请检查交易时段与合约")
            continue
        if quote.is_changing(["timestamp", "last_price"]):
            q = quote.data()
            if q.timestamp > 0 and math.isfinite(q.last_price):
                print("收到行情", q.symbol, q.timestamp, q.last_price)

运行结果:先打印订阅的合约,收到有效行情后打印合约、Unix 毫秒时间戳和最新价。按 Ctrl+C 停止并释放连接。

  • 合约来自当前查询结果,列表中的第一项仅用于演示。
  • 休市时可能持续等待;等待超时不等于断线,运行故障会以异常报告。
调用作用
watch_quote()创建观察句柄
wait_update()推进更新
data()读取独立快照

多个订阅共用一个更新循环,详见 更新模型。

3. 连接 CTP 账户#

下面是独立的只读程序,不提交委托。接入前在个人中心绑定资金账号,并向期货公司准备以下配置:

配置用途
broker_id期货公司代码
user_id已绑定的资金账号
password交易密码
front_url以 tcp:// 开头的交易前置,不能填行情前置
app_id客户端标识
auth_code客户端授权码
  1. 替换 Token 和六项 CTP 配置。
  2. 保存为 hello_ctp.py。
  3. 运行 python hello_ctp.py。
import time
from exsdk import ExApi, CtpAccount

account = CtpAccount(
    broker_id="期货公司代码",
    user_id="已在个人中心绑定的资金账号",
    password="交易密码",
    front_url="tcp://交易前置地址:端口",
    app_id="客户端标识",
    auth_code="客户端授权码",
)
with ExApi(token="YOUR_TOKEN", account=account) as api:
    funds = api.watch_account()
    print("正在等待 CTP 账户同步")
    deadline = time.time() + 60
    while api.trading_status() != "READY":
        if time.time() >= deadline or not api.wait_update(deadline=deadline):
            raise TimeoutError("CTP synchronization timed out")
    print("账户已就绪,可用资金:", funds.data().available)

运行结果:打印账户就绪和可用资金后结束。READY 表示登录与同步完成,不代表资金会随每笔行情即时刷新。

若超时或报错,按 CTP 账户与交易数据 和 错误处理 检查配置。SDK 不会默认创建模拟账户。

下一步#

联系我们

微信扫一扫