1789 lines
63 KiB
Markdown
1789 lines
63 KiB
Markdown
---
|
|
title: XtQuant.Xttrade 交易模块 | 迅投知识库
|
|
source: https://dict.thinktrader.net/nativeApi/xttrader.html
|
|
author:
|
|
published:
|
|
created: 2025-08-01
|
|
description: QMT说明, QMT-Python-API, QMT用户手册。
|
|
tags:
|
|
- clippings
|
|
---
|
|
## XtQuant.Xttrade 交易模块
|
|
|
|
## 版本信息
|
|
|
|
- 2020-09-01
|
|
- 初稿
|
|
- 2020-10-14
|
|
- 持仓结构添加字段
|
|
- 投资备注相关修正
|
|
- 2020-10-21
|
|
- 添加信用交易相关委托类型(order\_type)枚举
|
|
- 调整XtQuant运行依赖环境说明,更新多版本支持相关说明
|
|
- 2020-11-13
|
|
- 添加信用交易相关类型定义说明
|
|
- 添加信用交易相关接口说明
|
|
- 添加异步撤单委托反馈结构说明
|
|
- 添加下单失败和撤单失败主推结构说明
|
|
- 添加订阅和反订阅接口
|
|
- 添加创建API实例,注册回调类,准备API环境,创建连接,停止运行,阻塞进程接口说明
|
|
- 调整API接口说明
|
|
- 将接口细分为"系统设置接口",“操作接口”,“查询接口”,"信用相关查询接口",“回调类”等五类
|
|
- 接口返回“None”修改为“无”
|
|
- 去掉回调类接口中的示例
|
|
- 添加“备注”项
|
|
- 所有“证券账号”改为“资金账号”
|
|
- 英文“,”调整为中文“,”
|
|
- 示例代码中增加XtQuant API实例对象,修正没有实例,直接调用的错误
|
|
- 添加股票异步撤单接口说明,将原股票撤单修改为股票同步撤单
|
|
- 2020-11-19
|
|
- 添加账号状态主推接口
|
|
- 添加账号状态数据结构说明
|
|
- 添加账号状态枚举值
|
|
- 回调类接口说明调整
|
|
- 将回调函数定义及函数说明标题调整一致
|
|
- 补充异步下单回报推送、异步撤单回报推送接口说明
|
|
- 2021-07-20
|
|
- 修改回调/主推函数实现机制,提升报撤单回报的速度,降低穿透延时波动
|
|
- `XtQuantTrader.run_forever()` 修改实现,支持 `Ctrl+C` 跳出
|
|
- 2022-06-27
|
|
- 委托查询支持仅查询可撤委托
|
|
- 添加新股申购相关接口
|
|
- `query_new_purchase_limit` 查询新股申购额度
|
|
- `query_ipo_data` 查询新股信息
|
|
- 添加账号信息查询接口
|
|
- `query_account_infos`
|
|
- 2022-11-15
|
|
- 修复 `XtQuantTrader.unsubscribe` 的实现
|
|
- 2022-11-17
|
|
- 交易数据字典格式调整
|
|
- 2022-11-28
|
|
- 为主动请求接口的返回增加专用线程以及相关控制,以支持在on\_stock\_order等推送接口中调用同步请求
|
|
- `XtQuantTrader.set_relaxed_response_order_enabled`
|
|
- 2023-07-17
|
|
- 持仓结构 `XtPosition` 成本价字段调整
|
|
- `open_price` - 开仓价
|
|
- `avg_price` - 成本价
|
|
- 2023-07-26
|
|
- 添加资金划拨接口 `fund_transfer`
|
|
- 2023-08-11
|
|
- 添加划拨业务查询普通柜台资金接口 `query_com_fund`
|
|
- 添加划拨业务查询普通柜台持仓接口 `query_com_position`
|
|
- 2023-10-16
|
|
- 添加期货市价的报价类型
|
|
- `xtconstant.MARKET_BEST` - 市价最优价\[郑商所\]
|
|
- `xtconstant.MARKET_CANCEL` - 市价即成剩撤\[大商所\]
|
|
- `xtconstant.MARKET_CANCEL_ALL` - 市价全额成交或撤\[大商所\]
|
|
- `xtconstant.MARKET_CANCEL_1` - 市价最优一档即成剩撤\[中金所\]
|
|
- `xtconstant.MARKET_CANCEL_5` - 市价最优五档即成剩撤\[中金所\]
|
|
- `xtconstant.MARKET_CONVERT_1` - 市价最优一档即成剩转\[中金所\]
|
|
- `xtconstant.MARKET_CONVERT_5` - 市价最优五档即成剩转\[中金所\]
|
|
- 2023-10-20
|
|
- 委托结构 `XtOrder` ,成交结构 `XtTrade` ,持仓结构 `XtPosition` 新增多空字段
|
|
- `direction` - 多空,股票不需要
|
|
- 委托结构 `XtOrder` ,成交结构 `XtTrade` 新增交易操作字段
|
|
- `offset_flag` - 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等
|
|
- 2023-11-03
|
|
- 添加券源行情查询接口 `smt_query_quoter`
|
|
- 添加库存券约券申请接口 `smt_negotiate_order`
|
|
- 添加约券合约查询接口 `smt_query_compact`
|
|
- 2024-01-02
|
|
- 委托类型增加ETF申赎
|
|
- 2024-02-29
|
|
- 添加期货持仓统计查询接口 `query_position_statistics`
|
|
- 2024-04-25
|
|
- 数据结构添加 `stock_code1` 字段以适配长代码
|
|
- 2024-05-24
|
|
- 添加通用数据导出接口export\_data
|
|
- 添加通用数据查询接口query\_data
|
|
- 2024-06-27
|
|
- 添加外部成交导入接口sync\_transaction\_from\_external
|
|
|
|
## 快速入门
|
|
|
|
### 创建策略
|
|
|
|
```python
|
|
#coding=utf-8
|
|
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
|
|
from xtquant.xttype import StockAccount
|
|
from xtquant import xtconstant
|
|
|
|
class MyXtQuantTraderCallback(XtQuantTraderCallback):
|
|
def on_disconnected(self):
|
|
"""
|
|
连接断开
|
|
:return:
|
|
"""
|
|
print("connection lost")
|
|
def on_stock_order(self, order):
|
|
"""
|
|
委托回报推送
|
|
:param order: XtOrder对象
|
|
:return:
|
|
"""
|
|
print("on order callback:")
|
|
print(order.stock_code, order.order_status, order.order_sysid)
|
|
def on_stock_trade(self, trade):
|
|
"""
|
|
成交变动推送
|
|
:param trade: XtTrade对象
|
|
:return:
|
|
"""
|
|
print("on trade callback")
|
|
print(trade.account_id, trade.stock_code, trade.order_id)
|
|
def on_order_error(self, order_error):
|
|
"""
|
|
委托失败推送
|
|
:param order_error:XtOrderError 对象
|
|
:return:
|
|
"""
|
|
print("on order_error callback")
|
|
print(order_error.order_id, order_error.error_id, order_error.error_msg)
|
|
def on_cancel_error(self, cancel_error):
|
|
"""
|
|
撤单失败推送
|
|
:param cancel_error: XtCancelError 对象
|
|
:return:
|
|
"""
|
|
print("on cancel_error callback")
|
|
print(cancel_error.order_id, cancel_error.error_id, cancel_error.error_msg)
|
|
def on_order_stock_async_response(self, response):
|
|
"""
|
|
异步下单回报推送
|
|
:param response: XtOrderResponse 对象
|
|
:return:
|
|
"""
|
|
print("on_order_stock_async_response")
|
|
print(response.account_id, response.order_id, response.seq)
|
|
def on_account_status(self, status):
|
|
"""
|
|
:param response: XtAccountStatus 对象
|
|
:return:
|
|
"""
|
|
print("on_account_status")
|
|
print(status.account_id, status.account_type, status.status)
|
|
|
|
if __name__ == "__main__":
|
|
print("demo test")
|
|
# path为mini qmt客户端安装目录下userdata_mini路径
|
|
path = 'D:\\迅投极速交易终端 睿智融科版\\userdata_mini'
|
|
# session_id为会话编号,策略使用方对于不同的Python策略需要使用不同的会话编号
|
|
session_id = 123456
|
|
xt_trader = XtQuantTrader(path, session_id)
|
|
# 创建资金账号为1000000365的证券账号对象
|
|
acc = StockAccount('1000000365')
|
|
# StockAccount可以用第二个参数指定账号类型,如沪港通传'HUGANGTONG',深港通传'SHENGANGTONG'
|
|
# acc = StockAccount('1000000365','STOCK')
|
|
# 创建交易回调类对象,并声明接收回调
|
|
callback = MyXtQuantTraderCallback()
|
|
xt_trader.register_callback(callback)
|
|
# 启动交易线程
|
|
xt_trader.start()
|
|
# 建立交易连接,返回0表示连接成功
|
|
connect_result = xt_trader.connect()
|
|
print(connect_result)
|
|
# 对交易回调进行订阅,订阅后可以收到交易主推,返回0表示订阅成功
|
|
subscribe_result = xt_trader.subscribe(acc)
|
|
print(subscribe_result)
|
|
stock_code = '600000.SH'
|
|
# 使用指定价下单,接口返回订单编号,后续可以用于撤单操作以及查询委托状态
|
|
print("order using the fix price:")
|
|
fix_result_order_id = xt_trader.order_stock(acc, stock_code, xtconstant.STOCK_BUY, 200, xtconstant.FIX_PRICE, 10.5, 'strategy_name', 'remark')
|
|
print(fix_result_order_id)
|
|
# 使用订单编号撤单
|
|
print("cancel order:")
|
|
cancel_order_result = xt_trader.cancel_order_stock(acc, fix_result_order_id)
|
|
print(cancel_order_result)
|
|
# 使用异步下单接口,接口返回下单请求序号seq,seq可以和on_order_stock_async_response的委托反馈response对应起来
|
|
print("order using async api:")
|
|
async_seq = xt_trader.order_stock_async(acc, stock_code, xtconstant.STOCK_BUY, 200, xtconstant.FIX_PRICE, 10.5, 'strategy_name', 'remark')
|
|
print(async_seq)
|
|
# 查询证券资产
|
|
print("query asset:")
|
|
asset = xt_trader.query_stock_asset(acc)
|
|
if asset:
|
|
print("asset:")
|
|
print("cash {0}".format(asset.cash))
|
|
# 根据订单编号查询委托
|
|
print("query order:")
|
|
order = xt_trader.query_stock_order(acc, fix_result_order_id)
|
|
if order:
|
|
print("order:")
|
|
print("order {0}".format(order.order_id))
|
|
# 查询当日所有的委托
|
|
print("query orders:")
|
|
orders = xt_trader.query_stock_orders(acc)
|
|
print("orders:", len(orders))
|
|
if len(orders) != 0:
|
|
print("last order:")
|
|
print("{0} {1} {2}".format(orders[-1].stock_code, orders[-1].order_volume, orders[-1].price))
|
|
# 查询当日所有的成交
|
|
print("query trade:")
|
|
trades = xt_trader.query_stock_trades(acc)
|
|
print("trades:", len(trades))
|
|
if len(trades) != 0:
|
|
print("last trade:")
|
|
print("{0} {1} {2}".format(trades[-1].stock_code, trades[-1].traded_volume, trades[-1].traded_price))
|
|
# 查询当日所有的持仓
|
|
print("query positions:")
|
|
positions = xt_trader.query_stock_positions(acc)
|
|
print("positions:", len(positions))
|
|
if len(positions) != 0:
|
|
print("last position:")
|
|
print("{0} {1} {2}".format(positions[-1].account_id, positions[-1].stock_code, positions[-1].volume))
|
|
# 根据股票代码查询对应持仓
|
|
print("query position:")
|
|
position = xt_trader.query_stock_position(acc, stock_code)
|
|
if position:
|
|
print("position:")
|
|
print("{0} {1} {2}".format(position.account_id, position.stock_code, position.volume))
|
|
# 阻塞线程,接收交易推送
|
|
xt_trader.run_forever()
|
|
```
|
|
|
|
## 进阶篇
|
|
|
|
## XtQuant运行逻辑
|
|
|
|
XtQuant封装了策略交易所需要的Python API接口,可以和MiniQMT客户端交互进行报单、撤单、查询资产、查询委托、查询成交、查询持仓以及收到资金、委托、成交和持仓等变动的主推消息。
|
|
|
|
## XtQuant数据字典
|
|
|
|
### 交易市场(market)
|
|
|
|
- 上交所 - `xtconstant.SH_MARKET`
|
|
- 深交所 - `xtconstant.SZ_MARKET`
|
|
- 北交所 - `xtconstant.MARKET_ENUM_BEIJING`
|
|
- 沪港通 - `xtconstant.MARKET_ENUM_SHANGHAI_HONGKONG_STOCK`
|
|
- 深港通 - `xtconstant.MARKET_ENUM_SHENZHEN_HONGKONG_STOCK`
|
|
- 上期所 - `xtconstant.MARKET_ENUM_SHANGHAI_FUTURE`
|
|
- 大商所 - `xtconstant.MARKET_ENUM_DALIANG_FUTURE`
|
|
- 郑商所 - `xtconstant.MARKET_ENUM_ZHENGZHOU_FUTURE`
|
|
- 中金所 - `xtconstant.MARKET_ENUM_INDEX_FUTURE`
|
|
- 能源中心 - `xtconstant.MARKET_ENUM_INTL_ENERGY_FUTURE`
|
|
- 广期所 - `xtconstant.MARKET_ENUM_GUANGZHOU_FUTURE`
|
|
- 上海期权 - `xtconstant.MARKET_ENUM_SHANGHAI_STOCK_OPTION`
|
|
- 深证期权 - `xtconstant.MARKET_ENUM_SHENZHEN_STOCK_OPTION`
|
|
|
|
### 账号类型(account\_type)
|
|
|
|
- 期货 - `xtconstant.FUTURE_ACCOUNT`
|
|
- 股票 - `xtconstant.SECURITY_ACCOUNT`
|
|
- 信用 - `xtconstant.CREDIT_ACCOUNT`
|
|
- 期货期权 - `xtconstant.FUTURE_OPTION_ACCOUNT`
|
|
- 股票期权 - `xtconstant.STOCK_OPTION_ACCOUNT`
|
|
- 沪港通 - `xtconstant.HUGANGTONG_ACCOUNT`
|
|
- 深港通 - `xtconstant.SHENGANGTONG_ACCOUNT`
|
|
|
|
### 委托类型(order\_type)
|
|
|
|
- 股票
|
|
- 买入 - `xtconstant.STOCK_BUY`
|
|
- 卖出 - `xtconstant.STOCK_SELL`
|
|
- 信用
|
|
- 担保品买入 - `xtconstant.CREDIT_BUY`
|
|
- 担保品卖出 - `xtconstant.CREDIT_SELL`
|
|
- 融资买入 - `xtconstant.CREDIT_FIN_BUY`
|
|
- 融券卖出 - `xtconstant.CREDIT_SLO_SELL`
|
|
- 买券还券 - `xtconstant.CREDIT_BUY_SECU_REPAY`
|
|
- 直接还券 - `xtconstant.CREDIT_DIRECT_SECU_REPAY`
|
|
- 卖券还款 - `xtconstant.CREDIT_SELL_SECU_REPAY`
|
|
- 直接还款 - `xtconstant.CREDIT_DIRECT_CASH_REPAY`
|
|
- 专项融资买入 - `xtconstant.CREDIT_FIN_BUY_SPECIAL`
|
|
- 专项融券卖出 - `xtconstant.CREDIT_SLO_SELL_SPECIAL`
|
|
- 专项买券还券 - `xtconstant.CREDIT_BUY_SECU_REPAY_SPECIAL`
|
|
- 专项直接还券 - `xtconstant.CREDIT_DIRECT_SECU_REPAY_SPECIAL`
|
|
- 专项卖券还款 - `xtconstant.CREDIT_SELL_SECU_REPAY_SPECIAL`
|
|
- 专项直接还款 - `xtconstant.CREDIT_DIRECT_CASH_REPAY_SPECIAL`
|
|
- 期货六键风格
|
|
- 开多 - `xtconstant.FUTURE_OPEN_LONG`
|
|
- 平昨多 - `xtconstant.FUTURE_CLOSE_LONG_HISTORY`
|
|
- 平今多 - `xtconstant.FUTURE_CLOSE_LONG_TODAY`
|
|
- 开空 - `xtconstant.FUTURE_OPEN_SHORT`
|
|
- 平昨空 - `xtconstant.FUTURE_CLOSE_SHORT_HISTORY`
|
|
- 平今空 - `xtconstant.FUTURE_CLOSE_SHORT_TODAY`
|
|
- 期货四键风格
|
|
- 平多,优先平今 - `xtconstant.FUTURE_CLOSE_LONG_TODAY_FIRST`
|
|
- 平多,优先平昨 - `xtconstant.FUTURE_CLOSE_LONG_HISTORY_FIRST`
|
|
- 平空,优先平今 - `xtconstant.FUTURE_CLOSE_SHORT_TODAY_FIRST`
|
|
- 平空,优先平昨 - `xtconstant.FUTURE_CLOSE_SHORT_HISTORY_FIRST`
|
|
- 期货两键风格
|
|
- 卖出,如有多仓,优先平仓,优先平今,如有余量,再开空 - `xtconstant.FUTURE_CLOSE_LONG_TODAY_HISTORY_THEN_OPEN_SHORT`
|
|
- 卖出,如有多仓,优先平仓,优先平昨,如有余量,再开空 - `xtconstant.FUTURE_CLOSE_LONG_HISTORY_TODAY_THEN_OPEN_SHORT`
|
|
- 买入,如有空仓,优先平仓,优先平今,如有余量,再开多 - `xtconstant.FUTURE_CLOSE_SHORT_TODAY_HISTORY_THEN_OPEN_LONG`
|
|
- 买入,如有空仓,优先平仓,优先平昨,如有余量,再开多 - `xtconstant.FUTURE_CLOSE_SHORT_HISTORY_TODAY_THEN_OPEN_LONG`
|
|
- 买入,不优先平仓 - `xtconstant.FUTURE_OPEN`
|
|
- 卖出,不优先平仓 - `xtconstant.FUTURE_CLOSE`
|
|
- 期货 - 跨商品套利
|
|
- 开仓 - `xtconstant.FUTURE_ARBITRAGE_OPEN`
|
|
- 平, 优先平昨 - `xtconstant.FUTURE_ARBITRAGE_CLOSE_HISTORY_FIRST`
|
|
- 平, 优先平今 - `xtconstant.FUTURE_ARBITRAGE_CLOSE_TODAY_FIRST`
|
|
- 期货展期
|
|
- 看多, 优先平昨 - `xtconstant.FUTURE_RENEW_LONG_CLOSE_HISTORY_FIRST`
|
|
- 看多,优先平今 - `xtconstant.FUTURE_RENEW_LONG_CLOSE_TODAY_FIRST`
|
|
- 看空,优先平昨 - `xtconstant.FUTURE_RENEW_SHORT_CLOSE_HISTORY_FIRST`
|
|
- 看空,优先平今 - `xtconstant.FUTURE_RENEW_SHORT_CLOSE_TODAY_FIRST`
|
|
- 股票期权
|
|
- 买入开仓,以下用于个股期权交易业务 - `xtconstant.STOCK_OPTION_BUY_OPEN`
|
|
- 卖出平仓 - `xtconstant.STOCK_OPTION_SELL_CLOSE`
|
|
- 卖出开仓 - `xtconstant.STOCK_OPTION_SELL_OPEN`
|
|
- 买入平仓 - `xtconstant.STOCK_OPTION_BUY_CLOSE`
|
|
- 备兑开仓 - `xtconstant.STOCK_OPTION_COVERED_OPEN`
|
|
- 备兑平仓 - `xtconstant.STOCK_OPTION_COVERED_CLOSE`
|
|
- 认购行权 - `xtconstant.STOCK_OPTION_CALL_EXERCISE`
|
|
- 认沽行权 - `xtconstant.STOCK_OPTION_PUT_EXERCISE`
|
|
- 证券锁定 - `xtconstant.STOCK_OPTION_SECU_LOCK`
|
|
- 证券解锁 - `xtconstant.STOCK_OPTION_SECU_UNLOCK`
|
|
- 期货期权
|
|
- 期货期权行权 - `xtconstant.OPTION_FUTURE_OPTION_EXERCISE`
|
|
- ETF申赎
|
|
- 申购 - `xtconstant.ETF_PURCHASE `
|
|
- 赎回 - `xtconstant.ETF_REDEMPTION `
|
|
|
|
### 报价类型(price\_type)
|
|
|
|
提示
|
|
|
|
1. 市价类型只在实盘环境中生效,模拟环境不支持市价方式报单
|
|
|
|
- 最新价 - `xtconstant.LATEST_PRICE`
|
|
- 指定价 - `xtconstant.FIX_PRICE`
|
|
- 郑商所 期货
|
|
- 市价最优价 - `xtconstant.MARKET_BEST`
|
|
- 大商所 期货
|
|
- 市价即成剩撤 - `xtconstant.MARKET_CANCEL`
|
|
- 市价全额成交或撤 - `xtconstant.MARKET_CANCEL_ALL`
|
|
- 中金所 期货
|
|
- 市价最优一档即成剩撤 - `xtconstant.MARKET_CANCEL_1`
|
|
- 市价最优五档即成剩撤 - `xtconstant.MARKET_CANCEL_5`
|
|
- 市价最优一档即成剩转 - `xtconstant.MARKET_CONVERT_1`
|
|
- 市价最优五档即成剩转 - `xtconstant.MARKET_CONVERT_5`
|
|
- 上交所/北交所 股票
|
|
- 最优五档即时成交剩余撤销 - `xtconstant.MARKET_SH_CONVERT_5_CANCEL`
|
|
- 最优五档即时成交剩转限价 - `xtconstant.MARKET_SH_CONVERT_5_LIMIT`
|
|
- 对手方最优价格委托 - `xtconstant.MARKET_PEER_PRICE_FIRST`
|
|
- 本方最优价格委托 - `xtconstant.MARKET_MINE_PRICE_FIRST`
|
|
- 深交所 股票 期权
|
|
- 对手方最优价格委托 - `xtconstant.MARKET_PEER_PRICE_FIRST`
|
|
- 本方最优价格委托 - `xtconstant.MARKET_MINE_PRICE_FIRST`
|
|
- 即时成交剩余撤销委托 - `xtconstant.MARKET_SZ_INSTBUSI_RESTCANCEL`
|
|
- 最优五档即时成交剩余撤销 - `xtconstant.MARKET_SZ_CONVERT_5_CANCEL`
|
|
- 全额成交或撤销委托 - `xtconstant.MARKET_SZ_FULL_OR_CANCEL`
|
|
|
|
### 委托状态(order\_status)
|
|
|
|
| 枚举变量名 | 值 | 含义 |
|
|
| --- | --- | --- |
|
|
| xtconstant.ORDER\_UNREPORTED | 48 | 未报 |
|
|
| xtconstant.ORDER\_WAIT\_REPORTING | 49 | 待报 |
|
|
| xtconstant.ORDER\_REPORTED | 50 | 已报 |
|
|
| xtconstant.ORDER\_REPORTED\_CANCEL | 51 | 已报待撤 |
|
|
| xtconstant.ORDER\_PARTSUCC\_CANCEL | 52 | 部成待撤 |
|
|
| xtconstant.ORDER\_PART\_CANCEL | 53 | 部撤(已经有一部分成交,剩下的已经撤单) |
|
|
| xtconstant.ORDER\_CANCELED | 54 | 已撤 |
|
|
| xtconstant.ORDER\_PART\_SUCC | 55 | 部成(已经有一部分成交,剩下的待成交) |
|
|
| xtconstant.ORDER\_SUCCEEDED | 56 | 已成 |
|
|
| xtconstant.ORDER\_JUNK | 57 | 废单 |
|
|
| xtconstant.ORDER\_UNKNOWN | 255 | 未知 |
|
|
|
|
### 账号状态(account\_status)
|
|
|
|
| 枚举变量名 | 值 | 含义 |
|
|
| --- | --- | --- |
|
|
| xtconstant.ACCOUNT\_STATUS\_INVALID | \-1 | 无效 |
|
|
| xtconstant.ACCOUNT\_STATUS\_OK | 0 | 正常 |
|
|
| xtconstant.ACCOUNT\_STATUS\_WAITING\_LOGIN | 1 | 连接中 |
|
|
| xtconstant.ACCOUNT\_STATUSING | 2 | 登陆中 |
|
|
| xtconstant.ACCOUNT\_STATUS\_FAIL | 3 | 失败 |
|
|
| xtconstant.ACCOUNT\_STATUS\_INITING | 4 | 初始化中 |
|
|
| xtconstant.ACCOUNT\_STATUS\_CORRECTING | 5 | 数据刷新校正中 |
|
|
| xtconstant.ACCOUNT\_STATUS\_CLOSED | 6 | 收盘后 |
|
|
| xtconstant.ACCOUNT\_STATUS\_ASSIS\_FAIL | 7 | 穿透副链接断开 |
|
|
| xtconstant.ACCOUNT\_STATUS\_DISABLEBYSYS | 8 | 系统停用(总线使用-密码错误超限) |
|
|
| xtconstant.ACCOUNT\_STATUS\_DISABLEBYUSER | 9 | 用户停用(总线使用) |
|
|
|
|
### 划拨方向(transfer\_direction)
|
|
|
|
| 枚举变量名 | 值 | 含义 |
|
|
| --- | --- | --- |
|
|
| xtconstant.FUNDS\_TRANSFER\_NORMAL\_TO\_SPEED | 510 | 资金划拨-普通柜台到极速柜台 |
|
|
| xtconstant.FUNDS\_TRANSFER\_SPEED\_TO\_NORMAL | 511 | 资金划拨-极速柜台到普通柜台 |
|
|
| xtconstant.NODE\_FUNDS\_TRANSFER\_SH\_TO\_SZ | 512 | 节点资金划拨-上海节点到深圳节点 |
|
|
| xtconstant.NODE\_FUNDS\_TRANSFER\_SZ\_TO\_SH | 513 | 节点资金划拨-深圳节点到上海节点 |
|
|
|
|
### 多空方向(direction)
|
|
|
|
| 枚举变量名 | 值 | 含义 |
|
|
| --- | --- | --- |
|
|
| xtconstant.DIRECTION\_FLAG\_LONG | 48 | 多 |
|
|
| xtconstant.DIRECTION\_FLAG\_SHORT | 49 | 空 |
|
|
|
|
### 交易操作(offset\_flag)
|
|
|
|
| 枚举变量名 | 值 | 含义 |
|
|
| --- | --- | --- |
|
|
| xtconstant.OFFSET\_FLAG\_OPEN | 48 | 买入,开仓 |
|
|
| xtconstant.OFFSET\_FLAG\_CLOSE | 49 | 卖出,平仓 |
|
|
| xtconstant.OFFSET\_FLAG\_FORCECLOSE | 50 | 强平 |
|
|
| xtconstant.OFFSET\_FLAG\_CLOSETODAY | 51 | 平今 |
|
|
| xtconstant.OFFSET\_FLAG\_ClOSEYESTERDAY | 52 | 平昨 |
|
|
| xtconstant.OFFSET\_FLAG\_FORCEOFF | 53 | 强减 |
|
|
| xtconstant.OFFSET\_FLAG\_LOCALFORCECLOSE | 54 | 本地强平 |
|
|
|
|
## XtQuant数据结构说明
|
|
|
|
### 资产XtAsset
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| cash | float | 可用金额 |
|
|
| frozen\_cash | float | 冻结金额 |
|
|
| market\_value | float | 持仓市值 |
|
|
| total\_asset | float | 总资产 |
|
|
|
|
### 委托XtOrder
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| stock\_code | str | 证券代码,例如"600000.SH" |
|
|
| order\_id | int | 订单编号 |
|
|
| order\_sysid | str | 柜台合同编号 |
|
|
| order\_time | int | 报单时间 |
|
|
| order\_type | int | 委托类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A7%94%E6%89%98%E7%B1%BB%E5%9E%8B-order-type) |
|
|
| order\_volume | int | 委托数量 |
|
|
| price\_type | int | 报价类型,该字段在返回时为柜台返回类型,不等价于下单传入的price\_type,枚举值不一样功能一样,参见 [数据字典](https://dict.thinktrader.net/innerApi/enum_constants.html#enum-ebrokerpricetype-%E4%BB%B7%E6%A0%BC%E7%B1%BB%E5%9E%8B) |
|
|
| price | float | 委托价格 |
|
|
| traded\_volume | int | 成交数量 |
|
|
| traded\_price | float | 成交均价 |
|
|
| order\_status | int | 委托状态,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A7%94%E6%89%98%E7%8A%B6%E6%80%81-order-status) |
|
|
| status\_msg | str | 委托状态描述,如废单原因 |
|
|
| strategy\_name | str | 策略名称 |
|
|
| order\_remark | str | 委托备注,最大 24 个英文字符 |
|
|
| direction | int | 多空方向,股票不适用;参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A4%9A%E7%A9%BA%E6%96%B9%E5%90%91-direction) |
|
|
| offset\_flag | int | 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等;参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E4%BA%A4%E6%98%93%E6%93%8D%E4%BD%9C-offset-flag) |
|
|
|
|
### 成交XtTrade
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| stock\_code | str | 证券代码 |
|
|
| order\_type | int | 委托类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A7%94%E6%89%98%E7%B1%BB%E5%9E%8B-order-type) |
|
|
| traded\_id | str | 成交编号 |
|
|
| traded\_time | int | 成交时间 |
|
|
| traded\_price | float | 成交均价 |
|
|
| traded\_volume | int | 成交数量 |
|
|
| traded\_amount | float | 成交金额 |
|
|
| order\_id | int | 订单编号 |
|
|
| order\_sysid | str | 柜台合同编号 |
|
|
| strategy\_name | str | 策略名称 |
|
|
| order\_remark | str | 委托备注,最大 24 个英文字符( |
|
|
| direction | int | 多空方向,股票不适用;参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A4%9A%E7%A9%BA%E6%96%B9%E5%90%91-direction) |
|
|
| offset\_flag | int | 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等;参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E4%BA%A4%E6%98%93%E6%93%8D%E4%BD%9C-offset-flag) |
|
|
|
|
### 持仓XtPosition
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| stock\_code | str | 证券代码 |
|
|
| volume | int | 持仓数量 |
|
|
| can\_use\_volume | int | 可用数量 |
|
|
| open\_price | float | 开仓价 |
|
|
| market\_value | float | 市值 |
|
|
| frozen\_volume | int | 冻结数量 |
|
|
| on\_road\_volume | int | 在途股份 |
|
|
| yesterday\_volume | int | 昨夜拥股 |
|
|
| avg\_price | float | 成本价 |
|
|
| direction | int | 多空方向,股票不适用;参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A4%9A%E7%A9%BA%E6%96%B9%E5%90%91-direction) |
|
|
|
|
### 期货持仓统计XtPositionStatistics
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_id | string | 账户 |
|
|
| exchange\_id | string | 市场代码 |
|
|
| exchange\_name | string | 市场名称 |
|
|
| product\_id | string | 品种代码 |
|
|
| instrument\_id | string | 合约代码 |
|
|
| instrument\_name | string | 合约名称 |
|
|
| direction | int | 多空方向,股票不适用;参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A4%9A%E7%A9%BA%E6%96%B9%E5%90%91-direction) |
|
|
| hedge\_flag | int | 投保类型;参见 [投保类型](https://dict.thinktrader.net/innerApi/enum_constants.html#enum-ehedge-flag-type) |
|
|
| position | int | 持仓数量 |
|
|
| yesterday\_position | int | 昨仓数量 |
|
|
| today\_position | int | 今仓数量 |
|
|
| can\_close\_vol | int | 可平数量 |
|
|
| position\_cost | float | 持仓成本 |
|
|
| avg\_price | float | 持仓均价 |
|
|
| position\_profit | float | 持仓盈亏 |
|
|
| float\_profit | float | 浮动盈亏 |
|
|
| open\_price | float | 开仓均价 |
|
|
| open\_cost | float | 开仓成本 |
|
|
| used\_margin | float | 已使用保证金 |
|
|
| used\_commission | float | 已使用的手续费 |
|
|
| frozen\_margin | float | 冻结保证金 |
|
|
| frozen\_commission | float | 冻结手续费 |
|
|
| instrument\_value | float | 市值,合约价值 |
|
|
| open\_times | int | 开仓次数 |
|
|
| open\_volume | int | 总开仓量 中间平仓不减 |
|
|
| cancel\_times | int | 撤单次数 |
|
|
| last\_price | float | 最新价 |
|
|
| rise\_ratio | float | 当日涨幅 |
|
|
| product\_name | string | 产品名称 |
|
|
| royalty | float | 权利金市值 |
|
|
| expire\_date | string | 到期日 |
|
|
| assest\_weight | float | 资产占比 |
|
|
| increase\_by\_settlement | float | 当日涨幅(结) |
|
|
| margin\_ratio | float | 保证金占比 |
|
|
| float\_profit\_divide\_by\_used\_margin | float | 浮盈比例(保证金) |
|
|
| float\_profit\_divide\_by\_balance | float | 浮盈比例(动态权益) |
|
|
| today\_profit\_loss | float | 当日盈亏(结) |
|
|
| yesterday\_init\_position | int | 昨日持仓 |
|
|
| frozen\_royalty | float | 冻结权利金 |
|
|
| today\_close\_profit\_loss | float | 当日盈亏(收) |
|
|
| close\_profit | float | 平仓盈亏 |
|
|
| ft\_product\_name | string | 品种名称 |
|
|
|
|
### 异步下单委托反馈XtOrderResponse
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| order\_id | int | 订单编号 |
|
|
| strategy\_name | str | 策略名称 |
|
|
| order\_remark | str | 委托备注 |
|
|
| seq | int | 异步下单的请求序号 |
|
|
|
|
### 异步撤单委托反馈XtCancelOrderResponse
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| order\_id | int | 订单编号 |
|
|
| order\_sysid | str | 柜台委托编号 |
|
|
| cancel\_result | int | 撤单结果 |
|
|
| seq | int | 异步撤单的请求序号 |
|
|
|
|
### 下单失败错误XtOrderError
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| order\_id | int | 订单编号 |
|
|
| error\_id | int | 下单失败错误码 |
|
|
| error\_msg | str | 下单失败具体信息 |
|
|
| strategy\_name | str | 策略名称 |
|
|
| order\_remark | str | 委托备注 |
|
|
|
|
### 撤单失败错误XtCancelError
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| order\_id | int | 订单编号 |
|
|
| market | int | 交易市场 0:上海 1:深圳 |
|
|
| order\_sysid | str | 柜台委托编号 |
|
|
| error\_id | int | 下单失败错误码 |
|
|
| error\_msg | str | 下单失败具体信息 |
|
|
|
|
### 信用账号资产XtCreditDetail
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| m\_nStatus | int | 账号状态 |
|
|
| m\_nUpdateTime | int | 更新时间 |
|
|
| m\_nCalcConfig | int | 计算参数 |
|
|
| m\_dFrozenCash | float | 冻结金额 |
|
|
| m\_dBalance | float | 总资产 |
|
|
| m\_dAvailable | float | 可用金额 |
|
|
| m\_dPositionProfit | float | 持仓盈亏 |
|
|
| m\_dMarketValue | float | 总市值 |
|
|
| m\_dFetchBalance | float | 可取金额 |
|
|
| m\_dStockValue | float | 股票市值 |
|
|
| m\_dFundValue | float | 基金市值 |
|
|
| m\_dTotalDebt | float | 总负债 |
|
|
| m\_dEnableBailBalance | float | 可用保证金 |
|
|
| m\_dPerAssurescaleValue | float | 维持担保比例 |
|
|
| m\_dAssureAsset | float | 净资产 |
|
|
| m\_dFinDebt | float | 融资负债 |
|
|
| m\_dFinDealAvl | float | 融资本金 |
|
|
| m\_dFinFee | float | 融资息费 |
|
|
| m\_dSloDebt | float | 融券负债 |
|
|
| m\_dSloMarketValue | float | 融券市值 |
|
|
| m\_dSloFee | float | 融券息费 |
|
|
| m\_dOtherFare | float | 其它费用 |
|
|
| m\_dFinMaxQuota | float | 融资授信额度 |
|
|
| m\_dFinEnableQuota | float | 融资可用额度 |
|
|
| m\_dFinUsedQuota | float | 融资冻结额度 |
|
|
| m\_dSloMaxQuota | float | 融券授信额度 |
|
|
| m\_dSloEnableQuota | float | 融券可用额度 |
|
|
| m\_dSloUsedQuota | float | 融券冻结额度 |
|
|
| m\_dSloSellBalance | float | 融券卖出资金 |
|
|
| m\_dUsedSloSellBalance | float | 已用融券卖出资金 |
|
|
| m\_dSurplusSloSellBalance | float | 剩余融券卖出资金 |
|
|
|
|
### 负债合约StkCompacts
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| compact\_type | int | 合约类型 |
|
|
| cashgroup\_prop | int | 头寸来源 |
|
|
| exchange\_id | int | 证券市场 |
|
|
| open\_date | int | 开仓日期 |
|
|
| business\_vol | int | 合约证券数量 |
|
|
| real\_compact\_vol | int | 未还合约数量 |
|
|
| ret\_end\_date | int | 到期日 |
|
|
| business\_balance | float | 合约金额 |
|
|
| businessFare | float | 合约息费 |
|
|
| real\_compact\_balance | float | 未还合约金额 |
|
|
| real\_compact\_fare | float | 未还合约息费 |
|
|
| repaid\_fare | float | 已还息费 |
|
|
| repaid\_balance | float | 已还金额 |
|
|
| instrument\_id | str | 证券代码 |
|
|
| compact\_id | str | 合约编号 |
|
|
| position\_str | str | 定位串 |
|
|
|
|
### 融资融券标的CreditSubjects
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| slo\_status | int | 融券状态 |
|
|
| fin\_status | int | 融资状态 |
|
|
| exchange\_id | int | 证券市场 |
|
|
| slo\_ratio | float | 融券保证金比例 |
|
|
| fin\_ratio | float | 融资保证金比例 |
|
|
| instrument\_id | str | 证券代码 |
|
|
|
|
### 可融券数据CreditSloCode
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| cashgroup\_prop | int | 头寸来源 |
|
|
| exchange\_id | int | 证券市场 |
|
|
| enable\_amount | int | 融券可融数量 |
|
|
| instrument\_id | str | 证券代码 |
|
|
|
|
### 标的担保品CreditAssure
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| assure\_status | int | 是否可做担保 |
|
|
| exchange\_id | int | 证券市场 |
|
|
| assure\_ratio | float | 担保品折算比例 |
|
|
| instrument\_id | str | 证券代码 |
|
|
|
|
### 账号状态XtAccountStatus
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| status | int | 账号状态,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%8A%B6%E6%80%81-account-status) |
|
|
|
|
### 账号信息XtAccountInfo
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| account\_type | int | 账号类型,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B-account-type) |
|
|
| account\_id | str | 资金账号 |
|
|
| broker\_type | int | 同 account\_type |
|
|
| platform\_id | int | 平台号 |
|
|
| account\_classification | int | 账号分类 |
|
|
| login\_status | int | 账号状态,参见 [数据字典](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%8A%B6%E6%80%81-account-status) |
|
|
|
|
### 约券相关异步接口的反馈XtSmtAppointmentResponse
|
|
|
|
| 属性 | 类型 | 注释 |
|
|
| --- | --- | --- |
|
|
| seq | int | 异步请求序号 |
|
|
| success | bool | 申请是否成功 |
|
|
| msg | str | 反馈信息 |
|
|
| apply\_id | str | 若申请成功返回资券申请编号,否则返回-1 |
|
|
|
|
## XtQuant API说明
|
|
|
|
### 系统设置接口
|
|
|
|
#### 创建API实例
|
|
|
|
```python
|
|
XtQuantTrader(path, session_id)
|
|
```
|
|
- 释义
|
|
- 创建XtQuant API的实例
|
|
- 参数
|
|
- path - str MiniQMT客户端userdata\_mini的完整路径
|
|
- session\_id - int 与MiniQMT通信的会话ID,不同的会话要保证不重
|
|
- 返回
|
|
- XtQuant API实例对象
|
|
- 备注
|
|
- 后续对XtQuant API的操作都需要该实例对象
|
|
- 通常情况下只需要创建一个XtQuant API实例
|
|
- 示例
|
|
```python
|
|
path = 'D:\\迅投极速交易终端 睿智融科版\\userdata_mini'
|
|
# session_id为会话编号,策略使用方对于不同的Python策略需要使用不同的会话编号
|
|
session_id = 123456
|
|
#后续的所有示例将使用该实例对象
|
|
xt_trader = XtQuantTrader(path, session_id)
|
|
```
|
|
|
|
#### 注册回调类
|
|
|
|
```python
|
|
register_callback(callback)
|
|
```
|
|
- 释义
|
|
- 将回调类实例对象注册到API实例中,用以消息回调和主推
|
|
- 参数
|
|
- callback - XtQuantTraderCallback 回调类实例对象
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
|
|
#### 准备API环境
|
|
|
|
```
|
|
start()
|
|
```
|
|
- 释义
|
|
- 启动交易线程,准备交易所需的环境
|
|
- 参数
|
|
- 无
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
```python
|
|
# 启动交易线程
|
|
#xt_trader为XtQuant API实例对象
|
|
xt_trader.start()
|
|
```
|
|
|
|
#### 创建连接
|
|
|
|
```python
|
|
connect()
|
|
```
|
|
- 释义
|
|
- 连接MiniQMT
|
|
- 参数
|
|
- 无
|
|
- 返回
|
|
- 连接结果信息,连接成功返回0,失败返回非0
|
|
- 备注
|
|
- 该连接为一次性连接,断开连接后不会重连,需要再次主动调用
|
|
- 示例
|
|
```python
|
|
# 建立交易连接,返回0表示连接成功
|
|
#xt_trader为XtQuant API实例对象
|
|
connect_result = xt_trader.connect()
|
|
print(connect_result)
|
|
```
|
|
|
|
#### 停止运行
|
|
|
|
```python
|
|
stop()
|
|
```
|
|
- 释义
|
|
- 停止API接口
|
|
- 参数
|
|
- 无
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
```python
|
|
#xt_trader为XtQuant API实例对象
|
|
xt_trader.stop()
|
|
```
|
|
|
|
#### 阻塞当前线程进入等待状态
|
|
|
|
```python
|
|
run_forever()
|
|
```
|
|
- 释义
|
|
- 阻塞当前线程,进入等待状态,直到stop函数被调用结束阻塞
|
|
- 参数
|
|
- 无
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
```python
|
|
#xt_trader为XtQuant API实例对象
|
|
xt_trader.run_forever()
|
|
```
|
|
|
|
#### 开启主动请求接口的专用线程
|
|
|
|
```python
|
|
set_relaxed_response_order_enabled(enabled)
|
|
```
|
|
- 释义
|
|
- 控制主动请求接口的返回是否从额外的专用线程返回,以获得宽松的数据时序
|
|
- 参数
|
|
- enabled - bool 是否开启,默认为False关闭
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 如果开启,在on\_stock\_order等推送回调中调用同步请求不会卡住,但查询和推送的数据在时序上会变得不确定
|
|
- ```
|
|
timeline t1 t2 t3 t4
|
|
callback push1 push2 push3 resp4
|
|
do query4 ------------------^
|
|
```
|
|
- 例如:分别在t1 t2 t3时刻到达三条委托数据,在on\_push1中调用同步委托查询接口query\_orders()
|
|
- 未开启宽松时序时,查询返回resp4会在t4时刻排队到push3完成之后处理,这使得同步等待结果的查询不能返回而卡住执行
|
|
- 开启宽松时序时,查询返回的resp4由专用线程返回,程序正常执行,但此时查到的resp4是push3之后的状态,也就是说resp4中的委托要比push2 push3这两个前一时刻推送的数据新,但在更早的t1时刻就进入了处理
|
|
- 使用中请根据策略实际情况来开启,通常情况下,推荐在on\_stock\_order等推送回调中使用查询接口的异步版本,如 `query_stock_orders_async`
|
|
|
|
### 操作接口
|
|
|
|
#### 订阅账号信息
|
|
|
|
```python
|
|
subscribe(account)
|
|
```
|
|
- 释义
|
|
- 订阅账号信息,包括资金账号、委托信息、成交信息、持仓信息
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 订阅结果信息,订阅成功返回0,订阅失败返回-1
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
- 订阅资金账号1000000365
|
|
|
|
#### 反订阅账号信息
|
|
|
|
```python
|
|
unsubscribe(account)
|
|
```
|
|
- 释义
|
|
- 反订阅账号信息
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 反订阅结果信息,订阅成功返回0,订阅失败返回-1
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
- 订阅资金账号1000000365
|
|
|
|
#### 股票同步报单
|
|
|
|
```python
|
|
order_stock(account, stock_code, order_type, order_volume, price_type, price, strategy_name, order_remark)
|
|
```
|
|
- 释义
|
|
- 对股票进行下单操作
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- stock\_code - str 证券代码,如'600000.SH'
|
|
- order\_type - int 委托类型
|
|
- order\_volume - int 委托数量,股票以'股'为单位,债券以'张'为单位
|
|
- price\_type - int 报价类型
|
|
- price - float 委托价格
|
|
- strategy\_name - str 策略名称
|
|
- order\_remark - str 委托备注
|
|
- 返回
|
|
- 系统生成的订单编号,成功委托后的订单编号为大于0的正整数,如果为-1表示委托失败
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
- 股票资金账号1000000365对浦发银行买入1000股,使用限价价格10.5元, 委托备注为'order\_test'
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
#xt_trader为XtQuant API实例对象
|
|
order_id = xt_trader.order_stock(account, '600000.SH', xtconstant.STOCK_BUY, 1000, xtconstant.FIX_PRICE, 10.5, 'strategy1', 'order_test')
|
|
```
|
|
|
|
#### 股票异步报单
|
|
|
|
```python
|
|
order_stock_async(account, stock_code, order_type, order_volume, price_type, price, strategy_name, order_remark)
|
|
```
|
|
- 释义
|
|
- 对股票进行异步下单操作,异步下单接口如果正常返回了下单请求序号seq,会收到on\_order\_stock\_async\_response的委托反馈
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- stock\_code - str 证券代码, 如'600000.SH'
|
|
- order\_type - int 委托类型
|
|
- order\_volume - int 委托数量,股票以'股'为单位,债券以'张'为单位
|
|
- price\_type - int 报价类型
|
|
- price - float 委托价格
|
|
- strategy\_name - str 策略名称
|
|
- order\_remark - str 委托备注
|
|
- 返回
|
|
- 返回下单请求序号seq,成功委托后的下单请求序号为大于0的正整数,如果为-1表示委托失败
|
|
- 备注
|
|
- 如果失败,则通过下单失败主推接口返回下单失败信息
|
|
- 示例
|
|
- 股票资金账号1000000365对浦发银行买入1000股,使用限价价格10.5元,委托备注为'order\_test'
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
#xt_trader为XtQuant API实例对象
|
|
seq = xt_trader.order_stock_async(account, '600000.SH', xtconstant.STOCK_BUY, 1000, xtconstant.FIX_PRICE, 10.5, 'strategy1', 'order_test')
|
|
```
|
|
|
|
#### 股票同步撤单
|
|
|
|
```python
|
|
cancel_order_stock(account, order_id)
|
|
```
|
|
- 释义
|
|
- 根据订单编号对委托进行撤单操作
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- order\_id - int 同步下单接口返回的订单编号,对于期货来说,是order结构中的order\_sysid字段
|
|
- 返回
|
|
- 返回是否成功发出撤单指令,0: 成功, -1: 表示撤单失败
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
- 股票资金账号1000000365对订单编号为order\_id的委托进行撤单
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
order_id = 100
|
|
#xt_trader为XtQuant API实例对象
|
|
cancel_result = xt_trader.cancel_order_stock(account, order_id)
|
|
```
|
|
|
|
#### 股票同步撤单
|
|
|
|
```python
|
|
cancel_order_stock_sysid(account, market, order_sysid)
|
|
```
|
|
- 释义
|
|
- 根据券商柜台返回的合同编号对委托进行撤单操作
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- market - int 交易市场
|
|
- order\_sysid - str 券商柜台的合同编号
|
|
- 返回
|
|
- 返回是否成功发出撤单指令,0: 成功, -1: 表示撤单失败
|
|
- 备注
|
|
- 无
|
|
- 示例
|
|
- 股票资金账号1000000365对柜台合同编号为order\_sysid的上交所委托进行撤单
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
market = xtconstant.SH_MARKET
|
|
order_sysid = "100"
|
|
#xt_trader为XtQuant API实例对象
|
|
cancel_result = xt_trader.cancel_order_stock_sysid(account, market, order_sysid)
|
|
```
|
|
|
|
#### 股票异步撤单
|
|
|
|
```python
|
|
cancel_order_stock_async(account, order_id)
|
|
```
|
|
- 释义
|
|
- 根据订单编号对委托进行异步撤单操作
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- order\_id - int 下单接口返回的订单编号,对于期货来说,是order结构中的order\_sysid
|
|
- 返回
|
|
- 返回撤单请求序号, 成功委托后的撤单请求序号为大于0的正整数, 如果为-1表示委托失败
|
|
- 备注
|
|
- 如果失败,则通过撤单失败主推接口返回撤单失败信息
|
|
- 示例
|
|
- 股票资金账号1000000365对订单编号为order\_id的委托进行异步撤单
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
order_id = 100
|
|
#xt_trader为XtQuant API实例对象
|
|
cancel_result = xt_trader.cancel_order_stock_async(account, order_id)
|
|
```
|
|
|
|
#### 股票异步撤单
|
|
|
|
```python
|
|
cancel_order_stock_sysid_async(account, market, order_sysid)
|
|
```
|
|
- 释义
|
|
- 根据券商柜台返回的合同编号对委托进行异步撤单操作
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- market - int 交易市场
|
|
- order\_sysid - str 券商柜台的合同编号
|
|
- 返回
|
|
- 返回撤单请求序号, 成功委托后的撤单请求序号为大于0的正整数, 如果为-1表示委托失败
|
|
- 备注
|
|
- 如果失败,则通过撤单失败主推接口返回撤单失败信息
|
|
- 示例
|
|
- 股票资金账号1000000365对柜台合同编号为order\_sysid的上交所委托进行异步撤单
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
market = xtconstant.SH_MARKET
|
|
order_sysid = "100"
|
|
#xt_trader为XtQuant API实例对象
|
|
cancel_result = xt_trader.cancel_order_stock_sysid_async(account, market, order_sysid)
|
|
```
|
|
|
|
#### 资金划拨
|
|
|
|
```python
|
|
fund_transfer(account, transfer_direction, price)
|
|
```
|
|
- 释义
|
|
- 资金划拨
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- transfer\_direction - int 划拨方向,见数据字典划拨方向(transfer\_direction)字段说明
|
|
- price - float 划拨金额
|
|
- 返回
|
|
- (success, msg)
|
|
- success - bool 划拨操作是否成功
|
|
- msg - str 反馈信息
|
|
|
|
#### 外部交易数据录入
|
|
|
|
```python
|
|
sync_transaction_from_external(operation, data_type, account, deal_list)
|
|
```
|
|
- 释义
|
|
- 通用数据导出
|
|
- 参数
|
|
- operation - str 操作类型,有"UPDATE","REPLACE","ADD","DELETE"
|
|
- data\_type - str 数据类型,有"DEAL"
|
|
- account - StockAccount 资金账号
|
|
- deal\_list - list 成交列表,每一项是Deal成交对象的参数字典,键名参考官网数据字典,大小写保持一致
|
|
- 返回
|
|
- result - dict 结果反馈信息
|
|
- 示例
|
|
```python
|
|
deal_list = [
|
|
{'m_strExchangeID':'SF', 'm_strInstrumentID':'ag2407'
|
|
, 'm_strTradeID':'123456', 'm_strOrderSysID':'1234566'
|
|
, 'm_dPrice':7600, 'm_nVolume':1
|
|
, 'm_strTradeDate': '20240627'
|
|
}
|
|
]
|
|
resp = xt_trader.sync_transaction_from_external('ADD', 'DEAL', acc, deal_list)
|
|
print(resp)
|
|
#成功输出示例:{'msg': 'sync transaction from external success'}
|
|
#失败输出示例:{'error': {'msg': '[0-0: invalid operation type: ADDD], '}}
|
|
```
|
|
|
|
### 股票查询接口
|
|
|
|
#### 资产查询
|
|
|
|
```python
|
|
query_stock_asset(account)
|
|
```
|
|
- 释义
|
|
- 查询资金账号对应的资产
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该账号对应的资产对象 [XtAsset](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B5%84%E4%BA%A7xtasset) 或者None
|
|
- 备注
|
|
- 返回None表示查询失败
|
|
- 示例
|
|
- 查询股票资金账号1000000365对应的资产数据
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
#xt_trader为XtQuant API实例对象
|
|
asset = xt_trader.query_stock_asset(account)
|
|
```
|
|
|
|
#### 委托查询
|
|
|
|
```python
|
|
query_stock_orders(account, cancelable_only = False)
|
|
```
|
|
- 释义
|
|
- 查询资金账号对应的当日所有委托
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- cancelable\_only - bool 仅查询可撤委托
|
|
- 返回
|
|
- 该账号对应的当日所有委托对象 [XtOrder](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A7%94%E6%89%98xtorder) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败或者当日委托列表为空
|
|
- 示例
|
|
- 查询股票资金账号1000000365对应的当日所有委托
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
#xt_trader为XtQuant API实例对象
|
|
orders = xt_trader.query_stock_orders(account, False)
|
|
```
|
|
|
|
#### 成交查询
|
|
|
|
```python
|
|
query_stock_trades(account)
|
|
```
|
|
- 释义
|
|
- 查询资金账号对应的当日所有成交
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该账号对应的当日所有成交对象 [XtTrade](http://dict.thinktrader.net/nativeApi/xttrader.html#%E6%88%90%E4%BA%A4xttrade) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败或者当日成交列表为空
|
|
- 示例
|
|
- 查询股票资金账号1000000365对应的当日所有成交
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
#xt_trader为XtQuant API实例对象
|
|
trades = xt_trader.query_stock_trades(account)
|
|
```
|
|
|
|
#### 持仓查询
|
|
|
|
```python
|
|
query_stock_positions(account)
|
|
```
|
|
- 释义
|
|
- 查询资金账号对应的持仓
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该账号对应的最新持仓对象 [XtPosition](http://dict.thinktrader.net/nativeApi/xttrader.html#%E6%8C%81%E4%BB%93xtposition) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败或者当日持仓列表为空
|
|
- 示例
|
|
- 查询股票资金账号1000000365对应的最新持仓
|
|
```python
|
|
account = StockAccount('1000000365')
|
|
#xt_trader为XtQuant API实例对象
|
|
positions = xt_trader.query_stock_positions(account)
|
|
```
|
|
|
|
#### 期货持仓统计查询
|
|
|
|
```python
|
|
query_position_statistics(account)
|
|
```
|
|
- 释义
|
|
- 查询期货账号的持仓统计
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该账号对应的最新持仓对象 [XtPositionStatistics](http://dict.thinktrader.net/nativeApi/xttrader.html#%E6%9C%9F%E8%B4%A7%E6%8C%81%E4%BB%93%E7%BB%9F%E8%AE%A1xtpositionstatistics) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败或者当日持仓列表为空
|
|
- 示例
|
|
- 查询期货资金账号1000000365对应的最新持仓
|
|
```python
|
|
account = StockAccount('1000000365', 'FUTURE')
|
|
#xt_trader为XtQuant API实例对象
|
|
positions = xt_trader.query_position_statistics(account)
|
|
```
|
|
|
|
### 信用查询接口
|
|
|
|
#### 信用资产查询
|
|
|
|
```python
|
|
query_credit_detail(account)
|
|
```
|
|
- 释义
|
|
- 查询信用资金账号对应的资产
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该信用账户对应的资产对象 [XtCreditDetail](http://dict.thinktrader.net/nativeApi/xttrader.html#%E4%BF%A1%E7%94%A8%E8%B4%A6%E5%8F%B7%E8%B5%84%E4%BA%A7xtcreditdetail) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败
|
|
- 通常情况下一个资金账号只有一个详细信息数据
|
|
- 示例
|
|
- 查询信用资金账号1208970161对应的资产信息
|
|
```python
|
|
account = StockAccount('1208970161', 'CREDIT')
|
|
#xt_trader为XtQuant API实例对象
|
|
datas = xt_trader.query_credit_detail(account)
|
|
```
|
|
|
|
#### 负债合约查询
|
|
|
|
```python
|
|
query_stk_compacts(account)
|
|
```
|
|
- 释义
|
|
- 查询资金账号对应的负债合约
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该账户对应的负债合约对象 [StkCompacts](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%9F%E5%80%BA%E5%90%88%E7%BA%A6stkcompacts) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败或者负债合约列表为空
|
|
- 示例
|
|
- 查询信用资金账号1208970161对应的负债合约
|
|
```python
|
|
account = StockAccount('1208970161', 'CREDIT')
|
|
#xt_trader为XtQuant API实例对象
|
|
datas = xt_trader.query_stk_compacts(account)
|
|
```
|
|
|
|
#### 融资融券标的查询
|
|
|
|
```python
|
|
query_credit_subjects(account)
|
|
```
|
|
- 释义
|
|
- 查询资金账号对应的融资融券标的
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该账户对应的融资融券标的对象 [CreditSubjects](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%9E%8D%E8%B5%84%E8%9E%8D%E5%88%B8%E6%A0%87%E7%9A%84creditsubjects) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败或者融资融券标的列表为空
|
|
- 示例
|
|
- 查询信用资金账号1208970161对应的融资融券标的
|
|
```python
|
|
account = StockAccount('1208970161', 'CREDIT')
|
|
#xt_trader为XtQuant API实例对象
|
|
datas = xt_trader.query_credit_subjects(account)
|
|
```
|
|
|
|
#### 可融券数据查询
|
|
|
|
```python
|
|
query_credit_slo_code(account)
|
|
```
|
|
- 释义
|
|
- 查询资金账号对应的可融券数据
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该账户对应的可融券数据对象 [CreditSloCode](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%8F%AF%E8%9E%8D%E5%88%B8%E6%95%B0%E6%8D%AEcreditslocode) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败或者可融券数据列表为空
|
|
- 示例
|
|
- 查询信用资金账号1208970161对应的可融券数据
|
|
```python
|
|
account = StockAccount('1208970161', 'CREDIT')
|
|
#xt_trader为XtQuant API实例对象
|
|
datas = xt_trader.query_credit_slo_code(account)
|
|
```
|
|
|
|
#### 标的担保品查询
|
|
|
|
```python
|
|
query_credit_assure(account)
|
|
```
|
|
- 释义
|
|
- 查询资金账号对应的标的担保品
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- 该账户对应的标的担保品对象 [CreditAssure](http://dict.thinktrader.net/nativeApi/xttrader.html#%E6%A0%87%E7%9A%84%E6%8B%85%E4%BF%9D%E5%93%81creditassure) 组成的list或者None
|
|
- 备注
|
|
- None表示查询失败或者标的担保品列表为空
|
|
- 示例
|
|
- 查询信用资金账号1208970161对应的标的担保品
|
|
```python
|
|
account = StockAccount('1208970161', 'CREDIT')
|
|
#xt_trader为XtQuant API实例对象
|
|
datas = xt_trader.query_credit_assure(account)
|
|
```
|
|
|
|
### 其他查询接口
|
|
|
|
#### 新股申购额度查询
|
|
|
|
```python
|
|
query_new_purchase_limit(account)
|
|
```
|
|
- 释义
|
|
- 查询新股申购额度
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- dict 新股申购额度数据集
|
|
- { type1: number1, type2: number2,... }
|
|
- type - str 品种类型
|
|
- `KCB` - 科创板, `SH` - 上海, `SZ` - 深圳
|
|
- number - int 可申购股数
|
|
- 备注
|
|
- 数据仅代表股票申购额度,债券的申购额度固定10000张
|
|
|
|
#### 当日新股信息查询
|
|
|
|
```python
|
|
query_ipo_data()
|
|
```
|
|
- 释义
|
|
- 查询当日新股新债信息
|
|
- 参数
|
|
- 无
|
|
- 返回
|
|
- dict 新股新债信息数据集
|
|
- { stock1: info1, stock2: info2,... }
|
|
- stock - str 品种代码,例如 '301208.SZ'
|
|
- info - dict 新股信息
|
|
- name - str 品种名称
|
|
- type - str 品种类型
|
|
- `STOCK` - 股票, `BOND` - 债券
|
|
- minPurchaseNum / maxPurchaseNum - int 最小 / 最大申购额度
|
|
- 单位为股(股票)/ 张(债券)
|
|
- purchaseDate - str 申购日期
|
|
- issuePrice - float 发行价
|
|
- 返回值示例
|
|
```python
|
|
{'754810.SH': {'name': '丰山发债', 'type': 'BOND', 'maxPurchaseNum': 10000, 'minPurchaseNum': 10, 'purchaseDate': '20220627', 'issuePrice': 100.0}, '301208.SZ': {'name': '中亦科技', 'type': 'STOCK', 'maxPurchaseNum': 16500, 'minPurchaseNum': 500, 'purchaseDate': '20220627', 'issuePrice': 46.06}}
|
|
```
|
|
- 备注
|
|
- 无
|
|
|
|
#### 账号信息查询
|
|
|
|
```python
|
|
query_account_infos()
|
|
```
|
|
- 释义
|
|
- 查询所有资金账号
|
|
- 参数
|
|
- 无
|
|
- 返回
|
|
- list 账号信息列表
|
|
- \[ XtAccountInfo \]
|
|
- 备注
|
|
- 无
|
|
|
|
#### 账号状态查询
|
|
|
|
```python
|
|
query_account_status()
|
|
```
|
|
- 释义
|
|
- 查询所有账号状态
|
|
- 参数
|
|
- 无
|
|
- 返回
|
|
- list 账号状态列表
|
|
- \[ XtAccountStatus \]
|
|
- 备注
|
|
- 无
|
|
|
|
#### 普通柜台资金查询
|
|
|
|
```python
|
|
query_com_fund(account)
|
|
```
|
|
- 释义
|
|
- 划拨业务查询普通柜台的资金
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- result - dict 资金信息,包含以下字段
|
|
- success - bool
|
|
- erro - str
|
|
- currentBalance - double 当前余额
|
|
- enableBalance - double 可用余额
|
|
- fetchBalance - double 可取金额
|
|
- interest - double 待入账利息
|
|
- assetBalance - double 总资产
|
|
- fetchCash - double 可取现金
|
|
- marketValue - double 市值
|
|
- debt - double 负债
|
|
|
|
#### 普通柜台持仓查询
|
|
|
|
```python
|
|
query_com_position(account)
|
|
```
|
|
- 释义
|
|
- 划拨业务查询普通柜台的持仓
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- result - list 持仓信息列表\[position1, position2,...\]
|
|
- position - dict 持仓信息,包含以下字段
|
|
- success - bool
|
|
- error - str
|
|
- stockAccount - str 股东号
|
|
- exchangeType - str 交易市场
|
|
- stockCode - str 证券代码
|
|
- stockName - str 证券名称
|
|
- totalAmt - float 总量
|
|
- enableAmount - float 可用量
|
|
- lastPrice - float 最新价
|
|
- costPrice - float 成本价
|
|
- income - float 盈亏
|
|
- incomeRate - float 盈亏比例
|
|
- marketValue - float 市值
|
|
- costBalance - float 成本总额
|
|
- bsOnTheWayVol - int 买卖在途量
|
|
- prEnableVol - int 申赎可用量
|
|
|
|
#### 通用数据导出
|
|
|
|
```python
|
|
export_data(account, result_path, data_type, start_time = None, end_time = None, user_param = {})
|
|
```
|
|
- 释义
|
|
- 通用数据导出
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- result\_path - str 导出路径,包含文件名及.csv后缀,如'C:\\Users\\Desktop\\test\\deal.csv'
|
|
- data\_type - str 数据类型,如'deal'
|
|
- start\_time - str 开始时间(可缺省)
|
|
- end\_time - str 结束时间(可缺省)
|
|
- user\_param - dict 用户参数(可缺省)
|
|
- 返回
|
|
- result - dict 结果反馈信息
|
|
- 示例
|
|
```python
|
|
resp = xt_trader.export_data(acc, 'C:\\Users\\Desktop\\test\\deal.csv', 'deal')
|
|
print(resp)
|
|
#成功输出示例:{'msg': 'export success'}
|
|
#失败输出示例:{'error': {'errorMsg': 'can not find account info, accountID:2000449 accountType:2'}}
|
|
```
|
|
|
|
#### 通用数据查询
|
|
|
|
```python
|
|
query_data(account, result_path, data_type, start_time = None, end_time = None, user_param = {})
|
|
```
|
|
- 释义
|
|
- 通用数据查询,利用export\_data接口导出数据后再读取其中的数据内容,读取完毕后删除导出的文件
|
|
- 参数
|
|
同export\_data
|
|
- 返回
|
|
- result - dict 数据信息
|
|
- 示例
|
|
```python
|
|
data = xt_trader.query_data(acc, 'C:\\Users\\Desktop\\test\\deal.csv', 'deal')
|
|
print(data)
|
|
#成功输出示例:
|
|
# account_id account_Type stock_code order_type ...
|
|
#0 2003695 2 688488.SH 23 ...
|
|
#1 2003695 2 000096.SZ 23 ...
|
|
#失败输出示例:{'error': {'errorMsg': 'can not find account info, accountID:2000449 accountType:2'}}
|
|
```
|
|
|
|
### 约券相关接口
|
|
|
|
#### 券源行情查询
|
|
|
|
```python
|
|
smt_query_quoter(account)
|
|
```
|
|
- 释义
|
|
- 券源行情查询
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- result - list 券源信息列表\[quoter1, quoter2,...\]
|
|
- quoter - dict 券源信息,包含以下字段
|
|
- success - bool
|
|
- error - str
|
|
- finType - str 金融品种
|
|
- stockType - str 证券类型
|
|
- date - int 期限天数
|
|
- code - str 证券代码
|
|
- codeName - str 证券代码名称
|
|
- exchangeType - str 市场
|
|
- fsmpOccupedRate - float 资券占用利率
|
|
- fineRate - float 罚息利率
|
|
- fsmpreendRate - float 资券提前归还利率
|
|
- usedRate - float 资券使用利率
|
|
- unUusedRate - float 资券占用未使用利率
|
|
- initDate - int 交易日期
|
|
- endDate - int 到期日期
|
|
- enableSloAmountT0 - float T+0可融券数量
|
|
- enableSloAmountT3 - float T+3可融券数量
|
|
- srcGroupId - str 来源组编号
|
|
- applyMode - str 资券申请方式,"1":库存券,"2":专项券
|
|
- lowDate - int 最低期限天数
|
|
|
|
#### 库存券约券申请
|
|
|
|
```python
|
|
smt_negotiate_order_async(self, account, src_group_id, order_code, date, amount, apply_rate, dict_param={})
|
|
```
|
|
- 释义
|
|
- 库存券约券申请的异步接口,异步接口如果正常返回了请求序号seq,会收到on\_smt\_appointment\_async\_response的反馈
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- src\_group\_id - str 来源组编号
|
|
- order\_code - str 证券代码,如'600000.SH'
|
|
- date - int 期限天数
|
|
- amount - int 委托数量
|
|
- apply\_rate - float 资券申请利率
|
|
注:目前有如下参数通过一个可缺省的字典传递,键名与参数名称相同
|
|
- dict\_param - dict 可缺省的字典参数
|
|
- subFareRate - float 提前归还利率
|
|
- fineRate - float 罚息利率
|
|
- 返回
|
|
- 返回请求序号seq,成功发起申请后的请求序号为大于0的正整数,如果为-1表示发起申请失败
|
|
- 示例
|
|
```python
|
|
account = StockAccount('1000008', 'CREDIT')
|
|
dict_param = {'subFareRate':0.1, 'fineRate':0.1}
|
|
#xt_trader为XtQuant API实例对象
|
|
seq = xt_trader.smt_negotiate_order_async(account, '', '000001.SZ', 7, 100, 0.2, dict_param)
|
|
```
|
|
|
|
#### 约券合约查询
|
|
|
|
```python
|
|
smt_query_compact(account)
|
|
```
|
|
- 释义
|
|
- 约券合约查询
|
|
- 参数
|
|
- account - StockAccount 资金账号
|
|
- 返回
|
|
- result - list 约券合约信息列表\[compact1, compact2,...\]
|
|
- compact - dict 券源信息,包含以下字段
|
|
- success - bool
|
|
- error - str
|
|
- createDate - int 创建日期
|
|
- cashcompactId - str 头寸合约编号
|
|
- oriCashcompactId - str 原头寸合约编号
|
|
- applyId - str 资券申请编号
|
|
- srcGroupId - str 来源组编号
|
|
- comGroupId - str 资券组合编号
|
|
- finType - str 金融品种
|
|
- exchangeType - str 市场
|
|
- code - str 证券代码
|
|
- codeName - str 证券代码名称
|
|
- date - int 期限天数
|
|
- beginCompacAmount - float 期初合约数量
|
|
- beginCompacBalance - float 期初合约金额
|
|
- compacAmount - float 合约数量
|
|
- compacBalance - float 合约金额
|
|
- returnAmount - float 返还数量
|
|
- returnBalance - float 返还金额
|
|
- realBuyAmount - float 回报买入数量
|
|
- fsmpOccupedRate - float 资券占用利率
|
|
- compactInterest - float 合约利息金额
|
|
- compactFineInterest - float 合约罚息金额
|
|
- repaidInterest - float 已还利息
|
|
- repaidFineInterest - float 归还罚息
|
|
- fineRate - float 罚息利率
|
|
- preendRate - float 资券提前归还利率
|
|
- compactType - str 资券合约类型
|
|
- postponeTimes - int 展期次数
|
|
- compactStatus - str 资券合约状态,"0":未归还,"1":部分归还,"2":提前了结,"3":到期了结,"4":逾期了结,"5":逾期,"9":已作废
|
|
- lastInterestDate - int 上次结息日期
|
|
- interestEndDate - int 记息结束日期
|
|
- validDate - int 有效日期
|
|
- dateClear - int 清算日期
|
|
- usedAmount - float 已使用数量
|
|
- usedBalance - float 使用金额
|
|
- usedRate - float 资券使用利率
|
|
- unUusedRate - float 资券占用未使用利率
|
|
- srcGroupName - str 来源组名称
|
|
- repaidDate - int 归还日期
|
|
- preOccupedInterest - float 当日实际应收利息
|
|
- compactInterestx - float 合约总利息
|
|
- enPostponeAmount - float 可展期数量
|
|
- postponeStatus - str 合约展期状态,"0":未审核,"1":审核通过,"2":已撤销,"3":审核不通过
|
|
- applyMode - str 资券申请方式,"1":库存券,"2":专项券
|
|
|
|
### 回调类
|
|
|
|
```python
|
|
class MyXtQuantTraderCallback(XtQuantTraderCallback):
|
|
def on_disconnected(self):
|
|
"""
|
|
连接状态回调
|
|
:return:
|
|
"""
|
|
print("connection lost")
|
|
def on_account_status(self, status):
|
|
"""
|
|
账号状态信息推送
|
|
:param response: XtAccountStatus 对象
|
|
:return:
|
|
"""
|
|
print("on_account_status")
|
|
print(status.account_id, status.account_type, status.status)
|
|
def on_stock_order(self, order):
|
|
"""
|
|
委托信息推送
|
|
:param order: XtOrder对象
|
|
:return:
|
|
"""
|
|
print("on order callback:")
|
|
print(order.stock_code, order.order_status, order.order_sysid)
|
|
def on_stock_trade(self, trade):
|
|
"""
|
|
成交信息推送
|
|
:param trade: XtTrade对象
|
|
:return:
|
|
"""
|
|
print("on trade callback")
|
|
print(trade.account_id, trade.stock_code, trade.order_id)
|
|
def on_order_error(self, order_error):
|
|
"""
|
|
下单失败信息推送
|
|
:param order_error:XtOrderError 对象
|
|
:return:
|
|
"""
|
|
print("on order_error callback")
|
|
print(order_error.order_id, order_error.error_id, order_error.error_msg)
|
|
def on_cancel_error(self, cancel_error):
|
|
"""
|
|
撤单失败信息推送
|
|
:param cancel_error: XtCancelError 对象
|
|
:return:
|
|
"""
|
|
print("on cancel_error callback")
|
|
print(cancel_error.order_id, cancel_error.error_id, cancel_error.error_msg)
|
|
def on_order_stock_async_response(self, response):
|
|
"""
|
|
异步下单回报推送
|
|
:param response: XtOrderResponse 对象
|
|
:return:
|
|
"""
|
|
print("on_order_stock_async_response")
|
|
print(response.account_id, response.order_id, response.seq)
|
|
def on_smt_appointment_async_response(self, response):
|
|
"""
|
|
:param response: XtAppointmentResponse 对象
|
|
:return:
|
|
"""
|
|
print("on_smt_appointment_async_response")
|
|
print(response.account_id, response.order_sysid, response.error_id, response.error_msg, response.seq)
|
|
```
|
|
|
|
#### 连接状态回调
|
|
|
|
```python
|
|
on_disconnected()
|
|
```
|
|
- 释义
|
|
- 失去连接时推送信息
|
|
- 参数
|
|
- 无
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
|
|
#### 账号状态信息推送
|
|
|
|
```python
|
|
on_account_status(data)
|
|
```
|
|
- 释义
|
|
- 账号状态信息变动推送
|
|
- 参数
|
|
- data - [XtAccountStatus](http://dict.thinktrader.net/nativeApi/xttrader.html#%E8%B4%A6%E5%8F%B7%E7%8A%B6%E6%80%81xtaccountstatus) 账号状态信息
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
|
|
#### 委托信息推送
|
|
|
|
```python
|
|
on_stock_order(data)
|
|
```
|
|
- 释义
|
|
- 委托信息变动推送,例如已成交数量,委托状态变化等
|
|
- 参数
|
|
- data - [XtOrder](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%A7%94%E6%89%98xtorder) 委托信息
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
|
|
#### 成交信息推送
|
|
|
|
```python
|
|
on_stock_trade(data)
|
|
```
|
|
- 释义
|
|
- 成交信息变动推送
|
|
- 参数
|
|
- data - [XtTrade](http://dict.thinktrader.net/nativeApi/xttrader.html#%E6%88%90%E4%BA%A4xttrade) 成交信息
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
|
|
#### 下单失败信息推送
|
|
|
|
```python
|
|
on_order_error(data)
|
|
```
|
|
- 释义
|
|
- 下单失败信息推送
|
|
- 参数
|
|
- data - [XtOrderError](http://dict.thinktrader.net/nativeApi/xttrader.html#%E4%B8%8B%E5%8D%95%E5%A4%B1%E8%B4%A5%E9%94%99%E8%AF%AFxtordererror) 下单失败信息
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
|
|
#### 撤单失败信息推送
|
|
|
|
```python
|
|
on_cancel_error(data)
|
|
```
|
|
- 释义
|
|
- 撤单失败信息的推送
|
|
- 参数
|
|
- data - [XtCancelError](http://dict.thinktrader.net/nativeApi/xttrader.html#%E6%92%A4%E5%8D%95%E5%A4%B1%E8%B4%A5%E9%94%99%E8%AF%AFxtcancelerror) 撤单失败信息
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
|
|
#### 异步下单回报推送
|
|
|
|
```python
|
|
on_order_stock_async_response(data)
|
|
```
|
|
- 释义
|
|
- 异步下单回报推送
|
|
- 参数
|
|
- data - [XtOrderResponse](http://dict.thinktrader.net/nativeApi/xttrader.html#%E5%BC%82%E6%AD%A5%E4%B8%8B%E5%8D%95%E5%A7%94%E6%89%98%E5%8F%8D%E9%A6%88xtorderresponse) 异步下单委托反馈
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无
|
|
|
|
#### 约券相关异步接口的回报推送
|
|
|
|
```python
|
|
on_smt_appointment_async_response(data)
|
|
```
|
|
- 释义
|
|
- 异步约券相关接口回报推送
|
|
- 参数
|
|
- data - [XtSmtAppointmentResponse](http://dict.thinktrader.net/nativeApi/xttrader.html#%E7%BA%A6%E5%88%B8%E7%9B%B8%E5%85%B3%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%8F%8D%E9%A6%88xtsmtappointmentresponse) 约券相关异步接口的反馈
|
|
- 返回
|
|
- 无
|
|
- 备注
|
|
- 无 |