XtQuant.Xttrade 交易模块 | 迅投知识库 迅投知识库 首页 API API 投研新手教程 QMT新手教程 内置Python XtQuant文档 VBA 数据字典 数据字典 快速开始 股票数据 行业概念数据 指数数据 期货数据 期权数据 场内基金数据 债券数据 常见问题 场景化示例 迅投因子 数据浏览器 策略迁移 策略迁移 聚宽策略 客服QQ: 810315303 联系方式: 18309226715 视频教程 视频教程 投研端教程 迅投学堂 在新窗口打开 投研平台 在新窗口打开 迅投社区 在新窗口打开 迅投官网 在新窗口打开 注册 登录 智能助手加载中... 首页 API API 投研新手教程 QMT新手教程 内置Python XtQuant文档 VBA 数据字典 数据字典 快速开始 股票数据 行业概念数据 指数数据 期货数据 期权数据 场内基金数据 债券数据 常见问题 场景化示例 迅投因子 数据浏览器 策略迁移 策略迁移 聚宽策略 客服QQ: 810315303 联系方式: 18309226715 视频教程 视频教程 投研端教程 迅投学堂 在新窗口打开 投研平台 在新窗口打开 迅投社区 在新窗口打开 迅投官网 在新窗口打开 xtquant文档 快速开始 XtQuant.XtData 行情模块 XtQuant.Xttrade 交易模块 版本信息 快速入门 创建策略 XtQuant运行逻辑 XtQuant数据字典 交易市场(market) 账号类型(account_type) 委托类型(order_type) 报价类型(price_type) 委托状态(order_status) 账号状态(account_status) 划拨方向(transfer_direction) 多空方向(direction) 交易操作(offset_flag) XtQuant数据结构说明 资产XtAsset 委托XtOrder 成交XtTrade 持仓XtPosition 期货持仓统计XtPositionStatistics 异步下单委托反馈XtOrderResponse 异步撤单委托反馈XtCancelOrderResponse 下单失败错误XtOrderError 撤单失败错误XtCancelError 信用账号资产XtCreditDetail 负债合约StkCompacts 融资融券标的CreditSubjects 融券状态说明 可融券数据CreditSloCode 标的担保品CreditAssure 账号状态XtAccountStatus 账号信息XtAccountInfo 约券相关异步接口的反馈XtSmtAppointmentResponse XtQuant API说明 系统设置接口 创建API实例 注册回调类 准备API环境 创建连接 停止运行 阻塞当前线程进入等待状态 开启主动请求接口的专用线程 操作接口 订阅账号信息 反订阅账号信息 股票同步报单 股票异步报单 股票同步撤单 股票同步撤单 股票异步撤单 股票异步撤单 资金划拨 外部交易数据录入 股票查询接口 资产查询 委托查询 成交查询 持仓查询 期货持仓统计查询 信用查询接口 信用资产查询 负债合约查询 融资融券标的查询 可融券数据查询 标的担保品查询 其他查询接口 新股申购额度查询 当日新股信息查询 账号信息查询 账号状态查询 普通柜台资金查询 普通柜台持仓查询 通用数据导出 通用数据查询 约券相关接口 券源行情查询 库存券约券申请 约券合约查询 回调类 连接状态回调 账号状态信息推送 委托信息推送 成交信息推送 下单失败信息推送 撤单失败信息推送 异步下单回报推送 约券相关异步接口的回报推送 完整实例 常见问题 xtquant版本下载 # 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 # 快速入门 # 创建策略 #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) 提示 市价类型只在实盘环境中生效,模拟环境不支持市价方式报单 最新价 - 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 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 cash float 可用金额 frozen_cash float 冻结金额 market_value float 持仓市值 total_asset float 总资产 # 委托XtOrder 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 stock_code str 证券代码,例如"600000.SH" order_id int 订单编号 order_sysid str 柜台合同编号 order_time int 报单时间 order_type int 委托类型,参见 数据字典 在新窗口打开 order_volume int 委托数量 price_type int 报价类型,该字段在返回时为柜台返回类型,不等价于下单传入的price_type,枚举值不一样功能一样,参见 数据字典 在新窗口打开 price float 委托价格 traded_volume int 成交数量 traded_price float 成交均价 order_status int 委托状态,参见 数据字典 在新窗口打开 status_msg str 委托状态描述,如废单原因 strategy_name str 策略名称 order_remark str 委托备注,最大 24 个英文字符 direction int 多空方向,股票不适用;参见 数据字典 在新窗口打开 offset_flag int 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等;参见 数据字典 在新窗口打开 # 成交XtTrade 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 stock_code str 证券代码 order_type int 委托类型,参见 数据字典 在新窗口打开 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 多空方向,股票不适用;参见 数据字典 在新窗口打开 offset_flag int 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等;参见 数据字典 在新窗口打开 # 持仓XtPosition 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 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 多空方向,股票不适用;参见 数据字典 在新窗口打开 # 期货持仓统计XtPositionStatistics 属性 类型 注释 account_id string 账户 exchange_id string 市场代码 exchange_name string 市场名称 product_id string 品种代码 instrument_id string 合约代码 instrument_name string 合约名称 direction int 多空方向,股票不适用;参见 数据字典 在新窗口打开 hedge_flag int 投保类型;参见 投保类型 在新窗口打开 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 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 order_id int 订单编号 strategy_name str 策略名称 order_remark str 委托备注 seq int 异步下单的请求序号 # 异步撤单委托反馈XtCancelOrderResponse 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 order_id int 订单编号 order_sysid str 柜台委托编号 cancel_result int 撤单结果(0 成功,-1 失败) seq int 异步撤单的请求序号 # 下单失败错误XtOrderError 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 order_id int 订单编号 error_id int 下单失败错误码 error_msg str 下单失败具体信息 strategy_name str 策略名称 order_remark str 委托备注 # 撤单失败错误XtCancelError 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 order_id int 订单编号 market int 交易市场 0:上海 1:深圳 order_sysid str 柜台委托编号 error_id int 下单失败错误码 error_msg str 下单失败具体信息 # 信用账号资产XtCreditDetail 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 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 账号类型,参见 数据字典 在新窗口打开 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 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 slo_status int 融券状态(参见下一条融券状态说明) fin_status int 融资状态 exchange_id int 证券市场 slo_ratio float 融券保证金比例 fin_ratio float 融资保证金比例 instrument_id str 证券代码 # 融券状态说明 返回值 状态 48 正常 49 暂停 50 作废 # 可融券数据CreditSloCode 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 cashgroup_prop int 头寸来源 exchange_id int 证券市场 enable_amount int 融券可融数量 instrument_id str 证券代码 # 标的担保品CreditAssure 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 assure_status int 是否可做担保 exchange_id int 证券市场 assure_ratio float 担保品折算比例 instrument_id str 证券代码 # 账号状态XtAccountStatus 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 status int 账号状态,参见 数据字典 在新窗口打开 # 账号信息XtAccountInfo 属性 类型 注释 account_type int 账号类型,参见 数据字典 在新窗口打开 account_id str 资金账号 broker_type int 同 account_type platform_id int 平台号 account_classification int 账号分类 login_status int 账号状态,参见 数据字典 在新窗口打开 # 约券相关异步接口的反馈XtSmtAppointmentResponse 属性 类型 注释 seq int 异步请求序号 success bool 申请是否成功 msg str 反馈信息 apply_id str 若申请成功返回资券申请编号,否则返回-1 # XtQuant API说明 # 系统设置接口 # 创建API实例 XtQuantTrader(path, session_id) 释义 创建XtQuant API的实例 参数 path - str MiniQMT客户端userdata_mini的完整路径 session_id - int 与MiniQMT通信的会话ID,不同的会话要保证不重 返回 XtQuant API实例对象 备注 后续对XtQuant API的操作都需要该实例对象 通常情况下只需要创建一个XtQuant API实例 示例 path = ' D: \\ 迅投极速交易终端 睿智融科版 \\ userdata_mini ' # session_id为会话编号,策略使用方对于不同的Python策略需要使用不同的会话编号 session_id = 123456 #后续的所有示例将使用该实例对象 xt_trader = XtQuantTrader(path, session_id) # 注册回调类 register_callback(callback) 释义 将回调类实例对象注册到API实例中,用以消息回调和主推 参数 callback - XtQuantTraderCallback 回调类实例对象 返回 无 备注 无 示例 # 创建交易回调类对象,并声明接收回调 class MyXtQuantTraderCallback ( XtQuantTraderCallback ): ... pass callback = MyXtQuantTraderCallback () # xt_trader为XtQuant API实例对象 xt_trader . register_callback ( callback ) # 准备API环境 start() 释义 启动交易线程,准备交易所需的环境 参数 无 返回 无 备注 无 示例 # 启动交易线程 #xt_trader为XtQuant API实例对象 xt_trader.start() # 创建连接 connect() 释义 连接MiniQMT 参数 无 返回 连接结果信息,连接成功返回0,失败返回非0 备注 该连接为一次性连接,断开连接后不会重连,需要再次主动调用 示例 # 建立交易连接,返回0表示连接成功 #xt_trader为XtQuant API实例对象 connect_result = xt_trader.connect() print (connect_result) # 停止运行 stop() 释义 停止API接口 参数 无 返回 无 备注 无 示例 #xt_trader为XtQuant API实例对象 xt_trader.stop() # 阻塞当前线程进入等待状态 run_forever() 释义 阻塞当前线程,进入等待状态,直到stop函数被调用结束阻塞 参数 无 返回 无 备注 无 示例 #xt_trader为XtQuant API实例对象 xt_trader.run_forever() # 开启主动请求接口的专用线程 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 # 操作接口 # 订阅账号信息 subscribe(account) 释义 订阅账号信息,包括资金账号、委托信息、成交信息、持仓信息 参数 account - StockAccount 资金账号 返回 订阅结果信息,订阅成功返回0,订阅失败返回-1 备注 无 示例 订阅资金账号1000000365 account = StockAccount( ' 1000000365 ' ) #xt_trader为XtQuant API实例对象 subscribe_result = xt_trader.subscribe(account) # 反订阅账号信息 unsubscribe(account) 释义 反订阅账号信息 参数 account - StockAccount 资金账号 返回 反订阅结果信息,订阅成功返回0,订阅失败返回-1 备注 无 示例 订阅资金账号1000000365 account = StockAccount( ' 1000000365 ' ) #xt_trader为XtQuant API实例对象 unsubscribe_result = xt_trader.unsubscribe(account) # 股票同步报单 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' 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 ' ) # 股票异步报单 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' 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 ' ) # 股票同步撤单 cancel_order_stock(account, order_id) 释义 根据订单编号对委托进行撤单操作 参数 account - StockAccount 资金账号 order_id - int 同步下单接口返回的订单编号,对于期货来说,是order结构中的order_sysid字段 返回 返回是否成功发出撤单指令,0: 成功, -1: 表示撤单失败 备注 无 示例 股票资金账号1000000365对订单编号为order_id的委托进行撤单 account = StockAccount( ' 1000000365 ' ) order_id = 100 #xt_trader为XtQuant API实例对象 cancel_result = xt_trader.cancel_order_stock(account, order_id) # 股票同步撤单 cancel_order_stock_sysid(account, market, order_sysid) 释义 根据券商柜台返回的合同编号对委托进行撤单操作 参数 account - StockAccount 资金账号 market - int 交易市场 order_sysid - str 券商柜台的合同编号 返回 返回是否成功发出撤单指令,0: 成功, -1: 表示撤单失败 备注 无 示例 股票资金账号1000000365对柜台合同编号为order_sysid的上交所委托进行撤单 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) # 股票异步撤单 cancel_order_stock_async(account, order_id) 释义 根据订单编号对委托进行异步撤单操作 参数 account - StockAccount 资金账号 order_id - int 下单接口返回的订单编号,对于期货来说,是order结构中的order_sysid 返回 返回撤单请求序号, 成功委托后的撤单请求序号为大于0的正整数, 如果为-1表示委托失败 备注 如果失败,则通过撤单失败主推接口返回撤单失败信息 示例 股票资金账号1000000365对订单编号为order_id的委托进行异步撤单 account = StockAccount( ' 1000000365 ' ) order_id = 100 #xt_trader为XtQuant API实例对象 cancel_result = xt_trader.cancel_order_stock_async(account, order_id) # 股票异步撤单 cancel_order_stock_sysid_async(account, market, order_sysid) 释义 根据券商柜台返回的合同编号对委托进行异步撤单操作 参数 account - StockAccount 资金账号 market - int 交易市场 order_sysid - str 券商柜台的合同编号 返回 返回撤单请求序号, 成功委托后的撤单请求序号为大于0的正整数, 如果为-1表示委托失败 备注 如果失败,则通过撤单失败主推接口返回撤单失败信息 示例 股票资金账号1000000365对柜台合同编号为order_sysid的上交所委托进行异步撤单 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) # 资金划拨 fund_transfer(account, transfer_direction, price) 释义 资金划拨 参数 account - StockAccount 资金账号 transfer_direction - int 划拨方向,见数据字典划拨方向(transfer_direction)字段说明 price - float 划拨金额 返回 (success, msg) success - bool 划拨操作是否成功 msg - str 反馈信息 # 外部交易数据录入 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 结果反馈信息 示例 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], '}} # 股票查询接口 # 资产查询 query_stock_asset(account) 释义 查询资金账号对应的资产 参数 account - StockAccount 资金账号 返回 该账号对应的资产对象 XtAsset 在新窗口打开 或者None 备注 返回None表示查询失败 示例 查询股票资金账号1000000365对应的资产数据 account = StockAccount( ' 1000000365 ' ) #xt_trader为XtQuant API实例对象 asset = xt_trader.query_stock_asset(account) # 委托查询 query_stock_orders(account, cancelable_only = False ) 释义 查询资金账号对应的当日所有委托 参数 account - StockAccount 资金账号 cancelable_only - bool 仅查询可撤委托 返回 该账号对应的当日所有委托对象 XtOrder 在新窗口打开 组成的list或者None 备注 None表示查询失败或者当日委托列表为空 示例 查询股票资金账号1000000365对应的当日所有委托 account = StockAccount( ' 1000000365 ' ) #xt_trader为XtQuant API实例对象 orders = xt_trader.query_stock_orders(account, False ) # 成交查询 query_stock_trades(account) 释义 查询资金账号对应的当日所有成交 参数 account - StockAccount 资金账号 返回 该账号对应的当日所有成交对象 XtTrade 在新窗口打开 组成的list或者None 备注 None表示查询失败或者当日成交列表为空 示例 查询股票资金账号1000000365对应的当日所有成交 account = StockAccount( ' 1000000365 ' ) #xt_trader为XtQuant API实例对象 trades = xt_trader.query_stock_trades(account) # 持仓查询 query_stock_positions(account) 释义 查询资金账号对应的持仓 参数 account - StockAccount 资金账号 返回 该账号对应的最新持仓对象 XtPosition 在新窗口打开 组成的list或者None 备注 None表示查询失败或者当日持仓列表为空 示例 查询股票资金账号1000000365对应的最新持仓 account = StockAccount( ' 1000000365 ' ) #xt_trader为XtQuant API实例对象 positions = xt_trader.query_stock_positions(account) # 期货持仓统计查询 query_position_statistics(account) 释义 查询期货账号的持仓统计 参数 account - StockAccount 资金账号 返回 该账号对应的最新持仓对象 XtPositionStatistics 在新窗口打开 组成的list或者None 备注 None表示查询失败或者当日持仓列表为空 示例 查询期货资金账号1000000365对应的最新持仓 account = StockAccount( ' 1000000365 ' , ' FUTURE ' ) #xt_trader为XtQuant API实例对象 positions = xt_trader.query_position_statistics(account) # 信用查询接口 # 信用资产查询 query_credit_detail(account) 释义 查询信用资金账号对应的资产 参数 account - StockAccount 资金账号 返回 该信用账户对应的资产对象 XtCreditDetail 在新窗口打开 组成的list或者None 备注 None表示查询失败 通常情况下一个资金账号只有一个详细信息数据 示例 查询信用资金账号1208970161对应的资产信息 account = StockAccount( ' 1208970161 ' , ' CREDIT ' ) #xt_trader为XtQuant API实例对象 datas = xt_trader.query_credit_detail(account) # 负债合约查询 query_stk_compacts(account) 释义 查询资金账号对应的负债合约 参数 account - StockAccount 资金账号 返回 该账户对应的负债合约对象 StkCompacts 在新窗口打开 组成的list或者None 备注 None表示查询失败或者负债合约列表为空 示例 查询信用资金账号1208970161对应的负债合约 account = StockAccount( ' 1208970161 ' , ' CREDIT ' ) #xt_trader为XtQuant API实例对象 datas = xt_trader.query_stk_compacts(account) # 融资融券标的查询 query_credit_subjects(account) 释义 查询资金账号对应的融资融券标的 参数 account - StockAccount 资金账号 返回 该账户对应的融资融券标的对象 CreditSubjects 在新窗口打开 组成的list或者None 备注 None表示查询失败或者融资融券标的列表为空 示例 查询信用资金账号1208970161对应的融资融券标的 account = StockAccount( ' 1208970161 ' , ' CREDIT ' ) #xt_trader为XtQuant API实例对象 datas = xt_trader.query_credit_subjects(account) # 可融券数据查询 query_credit_slo_code(account) 释义 查询资金账号对应的可融券数据 参数 account - StockAccount 资金账号 返回 该账户对应的可融券数据对象 CreditSloCode 在新窗口打开 组成的list或者None 备注 None表示查询失败或者可融券数据列表为空 示例 查询信用资金账号1208970161对应的可融券数据 account = StockAccount( ' 1208970161 ' , ' CREDIT ' ) #xt_trader为XtQuant API实例对象 datas = xt_trader.query_credit_slo_code(account) # 标的担保品查询 query_credit_assure(account) 释义 查询资金账号对应的标的担保品 参数 account - StockAccount 资金账号 返回 该账户对应的标的担保品对象 CreditAssure 在新窗口打开 组成的list或者None 备注 None表示查询失败或者标的担保品列表为空 示例 查询信用资金账号1208970161对应的标的担保品 account = StockAccount( ' 1208970161 ' , ' CREDIT ' ) #xt_trader为XtQuant API实例对象 datas = xt_trader.query_credit_assure(account) # 其他查询接口 # 新股申购额度查询 query_new_purchase_limit(account) 释义 查询新股申购额度 参数 account - StockAccount 资金账号 返回 dict 新股申购额度数据集 { type1: number1, type2: number2, ... } type - str 品种类型 KCB - 科创板, SH - 上海, SZ - 深圳 number - int 可申购股数 备注 数据仅代表股票申购额度,债券的申购额度固定10000张 # 当日新股信息查询 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 发行价 返回值示例 { ' 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 }} 备注 无 # 账号信息查询 query_account_infos() 释义 查询所有资金账号 参数 无 返回 list 账号信息列表 [ XtAccountInfo ] 备注 无 # 账号状态查询 query_account_status() 释义 查询所有账号状态 参数 无 返回 list 账号状态列表 [ XtAccountStatus ] 备注 无 # 普通柜台资金查询 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 负债 # 普通柜台持仓查询 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 申赎可用量 # 通用数据导出 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 结果反馈信息 示例 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'}} # 通用数据查询 query_data(account, result_path, data_type, start_time = None , end_time = None , user_param = {}) 释义 通用数据查询,利用export_data接口导出数据后再读取其中的数据内容,读取完毕后删除导出的文件 参数 同export_data 返回 result - dict 数据信息 示例 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'}} # 约券相关接口 # 券源行情查询 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 最低期限天数 # 库存券约券申请 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表示发起申请失败 示例 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) # 约券合约查询 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":专项券 # 回调类 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) # 连接状态回调 on_disconnected() 释义 失去连接时推送信息 参数 无 返回 无 备注 无 # 账号状态信息推送 on_account_status(data) 释义 账号状态信息变动推送 参数 data - XtAccountStatus 在新窗口打开 账号状态信息 返回 无 备注 无 # 委托信息推送 on_stock_order(data) 释义 委托信息变动推送,例如已成交数量,委托状态变化等 参数 data - XtOrder 在新窗口打开 委托信息 返回 无 备注 无 # 成交信息推送 on_stock_trade(data) 释义 成交信息变动推送 参数 data - XtTrade 在新窗口打开 成交信息 返回 无 备注 无 # 下单失败信息推送 on_order_error(data) 释义 下单失败信息推送 参数 data - XtOrderError 在新窗口打开 下单失败信息 返回 无 备注 无 # 撤单失败信息推送 on_cancel_error(data) 释义 撤单失败信息的推送 参数 data - XtCancelError 在新窗口打开 撤单失败信息 返回 无 备注 无 # 异步下单回报推送 on_order_stock_async_response(data) 释义 异步下单回报推送 参数 data - XtOrderResponse 在新窗口打开 异步下单委托反馈 返回 无 备注 无 # 约券相关异步接口的回报推送 on_smt_appointment_async_response(data) 释义 异步约券相关接口回报推送 参数 data - XtSmtAppointmentResponse 在新窗口打开 约券相关异步接口的反馈 返回 无 备注 无 上次更新: 邀请注册送VIP优惠券 分享下方的内容给好友、QQ群、微信群,好友注册您即可获得VIP优惠券 玩转qmt,上迅投qmt知识库 登录后获取 XtQuant.XtData 行情模块 完整实例