目录
Python SDK文档
4.数据结构
4.1数据类
Tick - Tick 对象
报价quote - (dict 类型)
Bar - Bar 对象
L2Order - Level2 逐笔委托
L2Transaction - Level2 逐笔成交
4.2交易类
Account - 账户对象
Order - 委托对象
ExecRpt - 回报对象
Cash - 资金对象
Position - 持仓对象
Indicator - 绩效指标对象
行情快照数据
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
open | float | 日线开盘价 |
high | float | 日线最高价 |
low | float | 日线最低价 |
price | float | 最新价 |
cum_volume | long | 最新总成交量,累计值(日线成交量) |
cum_amount | float | 最新总成交额,累计值 (日线成交金额) |
cum_position | int | 合约持仓量(只适用于期货),累计值(股票此值为 0) |
trade_type | int | 交易类型(只适用于期货) 1: '双开', 2: '双平', 3: '多开', 4: '空开', 5: '空平', 6: '多平', 7: '多换', 8: '空换' |
last_volume | int | 最新瞬时成交量 |
last_amount | float | 最新瞬时成交额(郑商所 last_amount 为 0) |
created_at | datetime.datetime | 创建时间 |
quotes | [] (list of dict) | 股票提供买卖 5 档数据, list[0]~list[4]分别对应买卖一档到五档, 期货提供买卖 1 档数据, list[0]表示买卖一档;, level2 行情对应的是 list[0]~list[9]买卖一档到十档,注意:可能会有买档或卖档报价缺失,比如跌停时无买档报价(bid_p 和 bid_v 为 0),涨停时无卖档报价(ask_p 和 ask_v 为 0); 其中每档报价quote 结构如下: |
quote
- (dict 类型)参数名 | 类型 | 说明 |
---|---|---|
bid_p | float | 买价 |
bid_v | int | 买量 |
ask_p | float | 卖价 |
ask_v | int | 卖量 |
bid_q | dict | 委买队列 包含(total_orders (int)委托总个数, queue_volumes (list) 委托量队列),仅 level2 行情支持 |
ask_q | dict | 委卖队列 包含(total_orders (int)委托总个数, queue_volumes (list) 委托量队列),仅 level2 行情支持 |
注意: 1、tick 是分笔成交数据,股票频率为 3s, 期货为 0.5s, 指数 5s, 包含集合竞价数据,股票早盘集合竞价数为 09:15:00-09:25:00 的 tick 数据 2、涨停时, 没有卖价和卖量, ask_p 和 ask_v 用 0 填充,跌停时,没有买价和买量,bid_p 和 bid_v 用 0 填充 3、queue_volumes 委托量队列,只能获取到最优第一档的前 50 个委托量(不活跃标的可能会不足 50 个)
bar 数据是指各种频率的行情数据
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
frequency | str | 频率, 支持 'tick', '60s', '300s', '900s' 等, 默认'1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率 |
open | float | 开盘价 |
close | float | 收盘价 |
high | float | 最高价 |
low | float | 最低价 |
amount | float | 成交额 |
volume | long | 成交量 |
position | long | 持仓量(仅期货) |
bob | datetime.datetime | bar 开始时间 |
eob | datetime.datetime | bar 结束时间 |
注意: 不活跃标的,没有成交量是不生成 bar
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
side | str | 委托方向 深市:'1'买, '2'卖, 'F'借入, 'G'出借, 沪市:'B'买,'S'卖 |
price | float | 委托价 |
volume | int | 委托量 |
order_type | str | 委托类型 深市:'1'市价, '2'限价, 'U'本方最优,沪市:'A'新增委托订单,'D'删除委托订单 |
order_index | int | 委托编号 |
created_at | datetime.datetime | 创建时间 |
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
side | str | 委托方向 沪市:B – 外盘,主动买, S – 内盘,主动卖, N – 集合竞价,深市无此字段 |
price | float | 成交价 |
volume | int | 成交量 |
exec_type | str | 成交类型 深市:'4'撤单,'F'成交, 沪市无此字段 |
exec_index | int | 成交编号 |
ask_order_index | int | 叫卖委托编号 |
bid_order_index | int | 叫买委托编号 |
created_at | datetime.datetime | 创建时间 |
属性 | 类型 | 说明 |
---|---|---|
id | str | 账户 id,实盘时用于指定交易账户 |
cash | dict | 资金字典 |
positions(symbol='', side=None) | list | 持仓情况 列表, 默认全部持仓, 可根据单一 symbol(类型 str), [side](/sdk/python/枚举常量.html#PositionSide - 持仓方向 "PositionSide - 持仓方向") 参数可缩小查询范围 |
position(symbol, side) | dict | 持仓情况 查询指定单一 symbol(类型 str)及持仓方向的持仓情况 |
status | dict | 交易账户状态 查询交易账户连接状态 |
属性 | 类型 | 说明 |
---|---|---|
strategy_id | str | 策略 ID |
account_id | str | 账号 ID |
account_name | str | 账户登录名 |
cl_ord_id | str | 委托客户端 ID,下单生成,固定不变(掘金维护,下单唯一标识) |
order_id | str | 委托柜台 ID(系统字段,下单不会立刻生成,委托报到柜台才会生成) |
ex_ord_id | str | 委托交易所 ID(系统字段,下单不会立刻生成,委托报到柜台才会生成) |
algo_order_id | str | 算法单 ID |
symbol | str | 标的代码 |
status | int | 委托状态 取值参考 OrderStatus |
side | int | 买卖方向 取值参考 OrderSide |
position_effect | int | 开平标志 取值参考 PositionEffect |
position_side | int | 持仓方向 取值参考 PositionSide |
order_type | int | 委托类型 取值参考 OrderType |
order_duration | int | 委托时间属性 取值参考 OrderDuration |
order_qualifier | int | 委托成交属性 取值参考 OrderQualifier |
order_business | int | 委托业务属性 取值参考 OrderBusiness |
ord_rej_reason | int | 委托拒绝原因 取值参考 OrderRejegectReason |
ord_rej_reason_detail | str | 委托拒绝原因描述 |
position_src | int | 头寸来源(系统字段) |
volume | int | 委托量 |
price | float | 委托价格 |
value | int | 委托额 |
percent | float | 委托百分比 |
target_volume | int | 委托目标量 |
target_value | int | 委托目标额 |
target_percent | float | 委托目标百分比 |
filled_volume | int | 已成量 (一笔委托对应多笔成交为累计值) |
filled_vwap | float | 已成均价,公式为(price*(1+backtest_slippage_ratio)) (仅股票实盘支持,期货实盘不支持) |
filled_amount | float | 已成金额,公式为(filled_volume*filled_vwap) (仅股票实盘支持,期货实盘不支持) |
filled_commission | float | 已成手续费,(实盘不支持) |
created_at | datetime.datetime | 委托创建时间 |
updated_at | datetime.datetime | 委托更新时间 |
属性 | 类型 | 说明 |
---|---|---|
strategy_id | str | 策略 ID |
account_id | str | 账号 ID |
account_name | str | 账户登录名 |
cl_ord_id | str | 委托客户端 ID |
order_id | str | 柜台委托 ID |
exec_id | str | 交易所成交 ID |
symbol | str | 委托标的 |
side | int | 买卖方向 取值参考 OrderSide |
position_effect | int | 开平标志 取值参考 PositionEffect |
order_business | int | 委托业务属性 OrderBusiness |
order_style | int | 委托风格 OrderStyle |
ord_rej_reason | int | 委托拒绝原因 取值参考 OrderRejectReason |
ord_rej_reason_detail | str | 委托拒绝原因描述 |
exec_type | int | 执行回报类型 取值参考 ExecType |
price | float | 成交价格 |
volume | int | 成交量 |
amount | float | 成交金额 |
cost | float | 成交成本金额(仅期货实盘支持,股票实盘不支持) |
created_at | datetime.datetime | 回报创建时间 |
属性 | 类型 | 说明 |
---|---|---|
account_id | str | 账号 ID |
account_name | str | 账户登录名 |
currency | int | 币种 |
nav | float | 总资产 |
fpnl | float | 浮动盈亏 |
frozen | float | 持仓占用资金 (仅期货实盘支持,股票实盘不支持) |
order_frozen | float | 冻结资金 |
available | float | 可用资金 |
market_value | float | 市值 |
balance | float | 资金余额 |
created_at | datetime.datetime | 资金初始时间 |
updated_at | datetime.datetime | 资金变更时间 |
属性 | 类型 | 说明 |
---|---|---|
account_id | str | 账号 ID |
account_name | str | 账户登录名 |
symbol | str | 标的代码 |
side | int | 持仓方向 取值参考 PositionSide |
volume | int | 总持仓量; 如果要得到昨持仓量,公式为 (volume - volume_today) |
volume_today | int | 今日买入量 |
market_value | float | 持仓市值 |
vwap | float | 持仓均价 new_vwap=((position.vwap * position.volume)+(trade.volume*trade.price))/(position.volume+trade.volume) (实盘时,期货跨天持仓,会自动变成昨结价,仿真是开仓均价) |
vwap_open | float | 开仓均价(期货适用,实盘适用) |
vwap_diluted | float | 摊薄成本(股票适用,实盘适用) |
amount | float | 持仓额 (volume*vwap*multiplier) |
price | float | 当前行情价格(回测时值为 0) |
fpnl | float | 持仓浮动盈亏 ((price - vwap) * volume * multiplier) (基于效率的考虑,回测模式 fpnl 只有仓位变化时或者一天更新一次,仿真模式 3s 更新一次, 回测的 price 为当天的收盘价) (根据持仓均价计算) |
fpnl_open | float | 浮动盈亏(期货适用, 根据开仓均价计算) |
cost | float | 持仓成本 (vwap * volume * multiplier * margin_ratio) |
order_frozen | int | 挂单冻结仓位 |
order_frozen_today | int | 挂单冻结今仓仓位(仅上期所和上海能源交易所标的支持) |
available | int | 非挂单冻结仓位 ,公式为(volume - order_frozen) ; 如果要得到可平昨仓位,公式为 (available - available_today) |
available_today | int | 非挂单冻结今仓位,公式为 (volume_today - order_frozen_today) (仅上期所和上海能源交易所标的支持) |
available_now | int | 当前可用仓位 |
credit_position_sellable_volume | int | 可卖担保品数 |
created_at | datetime.datetime | 建仓时间 (实盘不支持) |
updated_at | datetime.datetime | 仓位变更时间 (实盘不支持) |
属性 | 类型 | 说明 |
---|---|---|
account_id | str | 账号 ID |
pnl_ratio | float | 累计收益率 (pnl/cum_inout) |
pnl_ratio_annual | float | 年化收益率 (pnl_ratio/自然天数*365) |
sharp_ratio | float | 夏普比率 ([E(Rp)-Rf]/δp*sqrt(250),E(Rp) = mean(pnl_ratio),Rf = 0,δp = std(pnl_ratio) ) |
max_drawdown | float | 最大回撤 max_drawdown=max(Di-Dj)/Di;D 为某一天的净值(j>i) |
risk_ratio | float | 风险比率 (持仓市值/nav) |
calmar_ratio | float | 卡玛比率 年化收益率/最大回撤 |
open_count | int | 开仓次数 |
close_count | int | 平仓次数 |
win_count | int | 盈利次数(平仓价格大于持仓均价 vwap 的次数) |
lose_count | int | 亏损次数 (平仓价格小于或者等于持仓均价 vwap 的次数) |
win_ratio | float | 胜率 (win_count / (win_count + lose_count)) |
created_at | datetime.datetime | 指标创建时间 |
updated_at | datetime.datetime | 指标变更时间 |