单位、缺失值和时间含义都是接口的一部分。交易视图字段未知时为 None,行情数值初始为 NaN;不要把未知值当作 0。
Quote#
合约行情快照;通过观察句柄的 data() 获取,不随后续更新改变。
| 字段 | 类型 | 含义 |
|---|---|---|
symbol | str | 合约代码,如 SHFE.rb2610 或 DCE.a2611-C-3700。 |
trading_day | str | 交易日,格式 YYYYMMDD。 |
timestamp | int | 行情时间,Unix 毫秒。 |
open | float | 开盘价。 |
highest | float | 最高价。 |
lowest | float | 最低价。 |
last_price | float | 最新价。 |
pre_settlement | float | 昨结算价。 |
pre_close | float | 昨收盘价。 |
upper_limit | float | 涨停价。 |
lower_limit | float | 跌停价。 |
volume | float | CTP 当前交易日累计成交量,单位为手,不是本次更新的增量。 |
turnover | float | CTP 当前交易日累计成交额,单位为元。 |
open_interest | float | 当前持仓量,单位为手。 |
bids | list | 买盘档位,每档为(价格, 手数)。 |
asks | list | 卖盘档位,每档为(价格, 手数)。 |
初始 symbol 由订阅决定,trading_day="",timestamp=0,数值字段为 NaN,盘口为空列表。对象字段只读,快照不随后续更新变化。盘口不保证固定档数。
ExError#
SDK 数据或交易服务异常。
ExError(message: str)继承 Exception;通过 str(error) 读取错误提示。
CtpAccount#
CTP 直连账户配置,交易凭据不会发送至行情服务。
| 字段 | 类型 | 含义 |
|---|---|---|
broker_id | str | 期货公司代码。 |
user_id | str | 资金账号。 |
password | str | 交易密码。 |
front_url | str | 交易前置地址,格式为 tcp://地址:端口。 |
app_id | str | 期货公司提供的客户端标识。 |
auth_code | str | 期货公司提供的客户端授权码。 |
全部参数均为非空字符串,front_url 必须是以 tcp:// 开头的交易前置地址。
Account#
只读资金快照;金额单位为人民币元,未知字段为 None。
金额仅由完整柜台查询更新,不根据行情或成交估算;交易日来自登录回报。
updated_at 是本地查询完成时间,不是柜台余额变动时间。金额不变时也可能完成新查询;默认变化检测不包含此字段,见 资金刷新。SDK 不提供手续费率、保证金率查询,实际手续费金额见 commission。
| 字段 | 类型 | 含义 |
|---|---|---|
account_id | str | None | 资金账号。 |
trading_day | str | None | 交易日,格式 YYYYMMDD。 |
balance | float | None | 账户权益。 |
available | float | None | 可用资金。 |
margin | float | None | 已占用保证金。 |
frozen_margin | float | None | 冻结保证金。 |
commission | float | None | 当日累计实际手续费。 |
frozen_commission | float | None | 冻结手续费。 |
close_profit | float | None | 当日平仓盈亏。 |
position_profit | float | None | 持仓盈亏。 |
deposit | float | None | 当日入金。 |
withdraw | float | None | 当日出金。 |
updated_at | int | None | 最近一次完整查询完成的本地时间,Unix 毫秒。 |
Position#
只读持仓快照;数量单位为手。
登录查询建立基线,之后根据真实成交本地更新;未知数量为 None。
| 字段 | 类型 | 含义 |
|---|---|---|
symbol | str | 合约代码,如 SHFE.rb2610。 |
pos_long | int | None | 多头持仓。 |
pos_short | int | None | 空头持仓。 |
pos_long_today | int | None | 剩余多头今仓。 |
pos_short_today | int | None | 剩余空头今仓。 |
available_long | int | None | 本地参考可平多头手数:多头持仓减已知有效卖出平仓委托的冻结量;最终由柜台校验。 |
available_short | int | None | 本地参考可平空头手数:空头持仓减已知有效买入平仓委托的冻结量;最终由柜台校验。 |
Order#
只读订单快照;断线后观察句柄保留最后一次已提交的数据。
| 字段 | 类型 | 含义 |
|---|---|---|
order_id | str | FrontID:SessionID:OrderRef 格式的本地订单标识。 |
order_sys_id | str | None | CTP 返回的交易所订单号 OrderSysID,尚未收到时为 None。 |
symbol | str | 合约代码。 |
direction | str | None | BUY 买入,SELL 卖出。 |
offset | str | None | 实际委托开平标志:OPEN、CLOSE、CLOSE_TODAY 或 CLOSE_YESTERDAY。 |
limit_price | float | None | 委托限价。 |
volume_original | int | None | 原始委托数量,单位为手。 |
volume_traded | int | None | 已成交数量,单位为手。 |
volume_left | int | None | 未成交数量;撤单结束后仍可大于零。 |
status | Literal['PENDING', 'ALIVE', 'FILLED', 'CANCELLED', 'REJECTED'] | None | 待回报、尚未确认终态、全部成交、未全成且不再排队、提交失败或被拒;未知时为 None。 |
status_msg | str | None | 最近一次订单状态说明。 |
cancel_pending | bool | 撤单已提交或提交结果不明、正在等待柜台结果时为 True。 |
cancel_error | str | None | 撤单失败提示,可能只有通用文字;没有失败提示时为 None。 |
insert_time | int | None | 委托时间,Unix 毫秒。 |
CANCELLED 不代表剩余数量为零;部分成交后撤单,volume_traded 仍表示已成交手数。status_msg 和 cancel_error 不保证包含详细柜台原因。撤单结果跟踪见 订单教程。
Trade#
只读真实成交快照,不包含估算手续费;断线后保留最后一次已提交的数据。
| 字段 | 类型 | 含义 |
|---|---|---|
trade_id | str | CTP 返回的原始成交号 TradeID。 |
order_sys_id | str | CTP 返回的交易所订单号 OrderSysID。 |
symbol | str | 合约代码。 |
direction | str | None | BUY 买入,SELL 卖出。 |
offset | str | None | OPEN 开仓,CLOSE 普通平仓,CLOSE_TODAY 平今,CLOSE_YESTERDAY 平昨。 |
price | float | None | 实际成交价格。 |
volume | int | None | 实际成交数量,单位为手。 |
trade_time | int | None | 成交时间,Unix 毫秒。 |
trade_id 为原始 CTP TradeID;通过 order_sys_id 关联 Order.order_sys_id。成交不包含估算手续费。
TradingResult#
一次交易操作的即时提交结果;不是最终委托或撤单结果。
| 字段 | 类型 | 含义 |
|---|---|---|
status | Literal['SUBMITTED', 'REJECTED', 'UNKNOWN'] | SUBMITTED / REJECTED / UNKNOWN,即时提交结果。 |
order_id | str | None | 关联本地订单号;下单本地拒绝为 None。 |
message | str | 即时结果说明,默认空字符串。 |
K 线 DataFrame#
| 列 | 类型 | 含义 |
|---|---|---|
| timestamp | int64 | Unix 毫秒;分钟、小时线标记窗口结束时间,日、周、月线分别标记北京时间交易日、周一、月初零点 |
| trading_day | object(字符串) | YYYYMMDD 交易日;周月线为周期内最新交易日 |
| open / high / low / close | float64 | 该周期的开盘 / 最高 / 最低 / 收盘价 |
| volume | float64 | 该周期成交量,单位为手;日线为对应交易日累计值 |
| turnover | float64 | 该周期成交额,单位为元;历史补录可能为 0,见下文 |
| open_interest | float64 | 该周期最新持仓量,单位为手,不是周期内累加值 |
frame.attrs 包含 symbol 与 period。数据为独立快照,最新一行可能仍在变化;新建指标列不会进入下一份 SDK 快照。
watch_kline() 固定返回 data_length 行,历史不足时在前面补 timestamp=0、trading_day="" 和数值 NaN。有效行判断见 K 线窗口。历史下载不补齐,无数据返回带上述列名的空表。
历史补录的数据可能没有成交额,服务以 turnover=0 保存,SDK 不将它转换成 NaN。不能仅凭 0 判断该周期没有成交,也不能将所有历史成交额都视为完整真实值;依赖成交额的计算需先核对数据来源与覆盖。
合约详情字典#
query_symbol_info() 顶层固定含 symbol、exchange_id、product_id、ins_class、is_main、data。当前行情服务的常用 data 字段如下;程序仍需处理缺失或空值。
| 字段 | 含义 |
|---|---|
name | 合约名称 |
price_tick、price_decs | 最小变动价位、价格小数位数;合法限价须按价位核对,不能只按小数位数四舍五入 |
volume_multiple | 合约乘数,用于按合约口径换算价格与金额 |
min_limit_order_volume、max_limit_order_volume | 单笔限价委托最小、最大手数 |
delivery_year、delivery_month | 交割年、月 |
trading_time | 日盘、夜盘交易时段,分别在 day、night 列表中 |
underlying_symbol | 期权标的合约代码 |
option_class、strike_price | 期权类别、行权价 |
exercise_year、exercise_month | 期权行权年、月 |
期权专属字段仅用于期权。服务还可能返回其他信息,例如市价委托数量限制,但不代表 SDK 提供市价下单接口。常用字段的读取见 合约查询;最终下单校验以柜台为准。
只读集合#
watch_position、watch_order、watch_trade 的 data() 返回只读 Mapping。分别按 symbol、order_id、trade_id 索引;即使指定单个合约也返回映射。不要向映射或交易快照字段赋值。