AztQuant Server Python Client
Project description
1 安装SDK
-
版本说明
- 在安装SDK之前,请确认已经正确安装3.7.0及以上版本Python环境,下载地址www.python.org,推荐参考Python3安装教程
- 当前SDK版本:
1.0.2
-
安装指令
以Windows为例,打开可调用Python3的命令行终端,键入以下命令安装或更新SDK:
pip install AztClient # 安装指令 pip install --upgrade AztClient # 更新指令 # MacOS和Linux环境下可能需要使用"pip3"代替"pip"进行安装
-
指定安装源
SDK所有的更新都会提交到PyPI(Python官方源),项目地址:AztClient · PyPI
若使用http://mirrors.aliyun.com/pypi/simple/ 等国内镜像源时,可能会延迟收到最新版本,因此建议使用官方源下载和更新SDK:
# 只有在默认使用国内镜像源时才需要指定pypi镜像源 pip install AztClient -i https://pypi.org/simple pip install --upgrade AztClient -i https://pypi.org/simple
-
如何判断是否默认使用国内镜像源
pip config list # 如果命令执行后没有出现任何内容则说明默认使用pypi官方源 # 反之则会显示当前正在使用的镜像源
-
-
手动安装
若无法通过
pip
命令安装最新版本SDK,也可以直接从开源地址中下载安装
2 数据结构
2.1 TradeSpi响应数据类
2.1.1 AccDepositAck - 账户入金响应
属性 | 类型 | 说明 |
---|---|---|
acc_margin | AccMargin | 账户资产信息 |
error_code | EDepositRetCode | 入金错误返回码,具体含义与取值参见枚举常量EDepositRetCode |
2.1.2 AccMargin - 账户资产信息
属性 | 类型 | 说明 |
---|---|---|
account | str | 账户ID |
total_amount | float | 账户总资金 |
available_amount | float | 账户可用资金 |
deposit | float | 账户入金总额 |
open_balance | float | 期初结存 |
trade_frozen_margin | float | 交易冻结金额 |
position_market_amount | float | 持仓市值 |
total_buy_amount | float | 买入总金额 |
total_buy_fee | float | 买入总手续费 |
total_sell_amount | float | 卖出总金额 |
total_sell_fee | float | 卖出总手续费 |
2.1.3 CancelOrder - 撤单信息
属性 | 类型 | 说明 |
---|---|---|
client_ref | str | 本地订单编号,由客户端自动生成 |
sender_user | str | 账户标识,由系统自动生成 |
account | str | 账户ID |
org_order_id | str | 需要撤销的委托订单编号 |
send_time | datetime.datetime | 发送时间,由系统自动生成 |
2.1.4 CancelOrderReject - 撤单拒绝回报信息
属性 | 类型 | 说明 |
---|---|---|
client_ref | str | 本地订单编号,由客户端自动生成 |
org_order_id | str | 撤单交易平台委托订单编号 |
reject_reason | ECxRejReasonType | 撤单拒绝原因,具体含义与取值参见枚举常量ECxRejReasonType |
report_time | datetime.datetime | 回报时间,由系统自动生成 |
2.1.5 HisDeposit - 历史入金信息
属性 | 类型 | 说明 |
---|---|---|
settlement_date | datetime.datetime | 结算日期 |
account | str | 账户ID |
client_ref | str | 本地入金请求编号,由客户端自动生成 |
deposit | float | 入金金额 |
2.1.6 OrdReport - 委托回报信息
属性 | 类型 | 说明 |
---|---|---|
place_order | PlaceOrder | 委托订单信息 |
status_msg | OrdStatusMsg | 委托订单状态信息 |
2.1.7 OrdStatusMsg - 委托订单状态信息
属性 | 类型 | 说明 |
---|---|---|
order_status | EOrderStatus | 委托订单执行状态,具体含义与取值见枚举常量EOrderStatus |
traded_qty | int | 订单交易数量,以股等基础单位为单位 |
traded_amount | float | 订单交易金额 |
total_fee | float | 订单交易手续费 |
frozen_margin | float | 订单对账户冻结金额 |
frozen_price | float | 订单对账户冻结价格 |
reject_reason | EOrderRejectReason | 拒单原因,具体含义与取值参见枚举常量EOrderRejectReason |
report_time | datetime.datetime | 回报时间,由系统自动生成 |
2.1.8 PlaceOrder - 委托订单信息
属性 | 类型 | 说明 |
---|---|---|
client_ref | str | 本地订单编号,由客户端自动生成 |
sender_user | str | 账户标识,由系统自动生成 |
account | str | 账户ID |
market | str | 交易所代码 |
code | str | 标的代码 |
order_type | EOrderType | 委托类型,具体含义与取值参见枚举常量EOrderType |
business_type | EBusinessType | 业务类型,具体含义与取值参见枚举常量EBusinessType |
order_side | EOrderSide | 买入卖出委托方向,具体含义与取值参见枚举常量EOrderSide |
effect | EPositionEffect | 开仓平仓委托方向,具体含义与取值参见枚举常量EPositionEffect |
order_price | float | 委托价格,适用于限价单 |
order_qty | int | 委托数量 |
order_id | str | 订单编号,由服务端自动生成 |
discretion_price | float | 市价委托转限价委托时采用的限价 |
send_time | datetime.datetime | 发送时间,由系统自动生成 |
2.1.9 QryHisAccAck - 历史资产信息查询
属性 | 类型 | 说明 |
---|---|---|
acc_margins | list[AccMargin] | 账户历史资产信息列表 |
2.1.10 QryHisDepositAck - 历史入金信息查询
属性 | 类型 | 说明 |
---|---|---|
his_deposits | list[HisDeposit] | 账户历史入金信息列表 |
2.1.11 QueryOrdersAck - 委托查询响应
属性 | 类型 | 说明 |
---|---|---|
order_reports | list[OrdReport] | 委托回报信息列表 |
2.1.12 QueryPositionsAck - 持仓查询响应
属性 | 类型 | 说明 |
---|---|---|
positions | list[StockPosition] | 持仓信息列表 |
2.1.13 QueryTradesAck - 交易明细查询响应
属性 | 类型 | 说明 |
---|---|---|
trade_reports | list[TradeReport] | 成交回报信息列表 |
2.1.14 StockPosition - 持仓信息
属性 | 类型 | 说明 |
---|---|---|
account | str | 账户ID |
market | str | 交易所代码 |
code | str | 标的 |
total_qty | int | 持有总数量 |
today_qty | int | 今日新增持有数量 |
open_avg_price | float | 成本价格 |
surplus_close_qty | int | 可平仓数量 |
frozen_qty | int | 冻结数量 |
2.1.15 TradeLoginAck - 模拟柜台登录响应
属性 | 类型 | 说明 |
---|---|---|
login_info | TradeLoginInfo | 登录信息 |
ret_code | ELoginRetCode | 登录成功情况返回码,具体含义与取值参见枚举常量ELoginRetCode |
2.1.16 TradeLoginInfo - 模拟柜台登录信息
属性 | 类型 | 说明 |
---|---|---|
account | str | 账户ID |
trading_day | str | 当前交易日 |
exchange_name | str | 交易所名称 |
exchange_time | datetime.datetime | 当前交易时间 |
2.1.17 TradeReport - 成交回报信息
属性 | 类型 | 说明 |
---|---|---|
order_id | str | 对应的委托订单编号 |
client_ref | str | 对应的本地订单编号 |
account | str | 账户ID |
market | str | 交易所代码 |
code | str | 标的 |
traded_id | str | 成交编号 |
traded_index | int | 对应委托的成交序号,从0递增 |
exec_type | EExecType | 成交回报类型,具体含义与取值参见枚举常量EExecType |
traded_qty | int | 成交数量 |
traded_price | float | 成交价格 |
fee | float | 成交费用 |
transact_time | datetime.datetime | 执行报送时间 |
2.1.18 TradeRegisterInfo - 模拟柜台账户信息
属性 | 类型 | 说明 |
---|---|---|
strategy_id | str | 策略ID |
account | str | 账户ID |
passwd | str | 账户密码 |
acc_status | ERegisterRet | 账户状态码,具体含义与取值参见枚举常量ERegisterRet |
2.2 QuoteSpi响应数据类
2.2.1 QuoteBaseMsg - 基本行情数据
属性 | 类型 | 说明 |
---|---|---|
market | str | 标的所属交易所 |
code | str | 合约/标的代码 |
security_type | ESecurityType | 合约类型,具体含义与取值参见枚举常量ESecurityType |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
last | float | 最新价 |
pre_close | float | 昨收盘价 |
close | float | 今收盘价 |
upper_limit | float | 涨停价 |
lower_limit | float | 跌停价 |
total_amount | float | 总成交金额(单位元,与交易所一致) |
total_volume | float | 总成交量 (单位股,与交易所一致) |
avg_price | float | 当日均价 |
bid_price | dict[int,float] | 申买价队列(五档),key为0-4,对应第1至5档 |
ask_price | dict[int,float] | 申卖价队列(五档),key为0-4,对应第1至5档 |
bid_volume | dict[int,int] | 申买量队列(五档),key为0-4,对应第1至5档 |
ask_volume | dict[int,int] | 申卖量队列(五档),key为0-4,对应第1至5档 |
data_time | datetime.datetime | 时间 |
2.2.2 QuoteMsg - 实时行情数据
属性 | 类型 | 说明 |
---|---|---|
data_type | EMarketDataType | 行情类型,具体含义与取值参见枚举常量EMarketDataType |
quote_base_msg | QuoteBaseMsg | 基本信息 |
stock_extra_data | Any | 额外信息,具体类型由data_type 决定 |
2.2.3 QuoteRegisterAck - 订阅/取消成败回报
属性 | 类型 | 说明 |
---|---|---|
market_codes | str | 订阅/取消订阅标的 |
ret_code | EQuoteRetCode | 订阅/取消订阅成功/失败,具体含义与取值参见枚举常量EQuoteRetCode |
2.2.4 QuoteStockExtra - 股票行情额外信息
属性 | 类型 | 说明 |
---|---|---|
total_bid_qty | int | 委托买入总量 |
total_ask_qty | int | 委托卖出总量 |
ma_bid_price | float | 加权平均委买价格 |
ma_ask_price | float | 加权平均委卖价格 |
ma_bond_bid_price | float | 债券加权平均委买价格 |
ma_bond_ask_price | float | 债券加权平均委卖价格 |
yield_to_maturity | float | 债券到期收益率 |
iopv | float | 基金实时参考净值 |
etf_buy_count | int | ETF申购笔数 |
etf_sell_count | int | ETF赎回笔数 |
etf_buy_qty | int | ETF申购数量 |
etf_buy_money | float | ETF申购金额 |
etf_sell_qty | int | ETF赎回数量 |
etf_sell_money | float | ETF赎回金额 |
total_warrant_exec_qty | int | 权证执行的总数量 |
warrant_lower_price | float | 权证跌停价格 |
warrant_upper_price | float | 权证涨停价格 |
cancel_buy_count | int | 买入撤单笔数 |
cancel_sell_count | int | 卖出撤单笔数 |
cancel_buy_qty | int | 买入撤单数量 |
cancel_sell_qty | int | 卖出撤单数量 |
cancel_buy_money | float | 买入撤单金额 |
cancel_sell_money | float | 卖出撤单金额 |
total_buy_count | int | 买入总笔数 |
total_sell_count | int | 卖出总笔数 |
duration_after_buy | int | 买入委托成交最大等待时间 |
duration_after_sell | int | 卖出委托成交最大等待时间 |
num_bid_orders | int | 买方委托价位数 |
num_ask_orders | int | 卖方委托价位数 |
pre_iopv | float | 基金上日参考净值 |
2.2.5 SecurityInfoRsp - 标的信息
属性 | 类型 | 说明 |
---|---|---|
security_static_info | list[SecurityStaticInfo] | 标的信息列表 |
2.2.6 SecurityStaticInfo - 标的信息
属性 | 类型 | 说明 |
---|---|---|
market | str | 交易所代码 |
code | str | 标的 |
security_name | str | 标的名称 |
security_type | ESecurityType | 标的类型,具体含义与取值参见枚举常量ESecurityType |
price_tick | float | 标的价格变化单位 |
buy_qty_unit | int | 标的买入基本单位 |
sell_qty_unit | int | 标的卖出基本单位 |
2.3 HisQuoteSpi响应数据类
2.3.1 Calendar - 交易日历
属性 | 类型 | 说明 |
---|---|---|
market | str | 交易所 |
calendar | list[datetime.datetime] | 日历时间列表 |
2.3.2 FundamentalsDatas - 基本面数据
属性 | 类型 | 说明 |
---|---|---|
fundamentals_type | EFundamentalsType | 基本面数据类型,具体含义与取值参见枚举常量EFundamentalsType |
market | str | 交易所代码 |
code | str | 标的代码 |
datas | pd.DataFrame | 数据表格 |
2.3.3 HisQuoteBar - 历史Bar行情信息
属性 | 类型 | 说明 |
---|---|---|
bob | datetime.datetime | 起始时间 |
eob | datetime.datetime | 结束时间 |
market | str | 交易所代码 |
code | str | 标的代码 |
period | EPeriod | 行情粒度,具体含义与取值见枚举常量EPeriod |
open | float | 开盘价/起始价 |
close | float | 收盘价/结尾价 |
high | float | 最高价 |
low | float | 最低价 |
settle | float | 结算价 |
total_amount | float | 总交易金额 |
total_volume | int | 总交易量 |
total_positon | int | 总持仓量 |
2.3.4 HisQuoteBarsMsg - 历史Bar行情信息
属性 | 类型 | 说明 |
---|---|---|
his_quote_bars | list[HisQuoteBar] | 历史Bar行情列表 |
2.3.5 HisQuoteLoginRsp - 历史服务登录响应
属性 | 类型 | 说明 |
---|---|---|
error_code | EHisQuoteErrCode | 登录错误码,具体含义与取值参见枚举常量EHisQuoteErrCode |
error_msg | str | 登录错误消息 |
2.3.6 HisQuoteTicksMsg - 历史Tick行情信息
属性 | 类型 | 说明 |
---|---|---|
his_quote_ticks | list[QuoteStockMsg] | 历史Tick行情列表 |
2.3.7 TradingCalendar - 交易日历信息
属性 | 类型 | 说明 |
---|---|---|
calendars | list[Calendar] | 交易日历信息 |
2.3.8 TradingDate - 交易日
属性 | 类型 | 说明 |
---|---|---|
market | str | 交易所 |
trading_date | datetime.datetime | 交易日 |
2.4 枚举常量类
2.4.1 EAccStatus - 账户状态码
KAccStatus_Unknown = 0 # 未知状态
KAccStatus_Normal = 1 # 正常
KAccStatus_WrittenOff = 2 # 已注销
KAccStatus_Disable = 3 # 已禁用
2.4.2 EAdjust - 复权方式
KAdjust_NONE = 0 # 不复权
KAdjust_PREV = 1 # 前复权
KAdjust_POST = 2 # 后复权
2.4.3 EBusinessType - 业务类型
KBusinessType_Unknown = 0 # 未知类型
KBusinessType_NORMAL = 1 # 普通交易
2.4.4 ECxRejReasonType - 撤单拒绝原因类型
KCxRejReasonType_TooLateCancel = 0 # 撤单太晚(Too late to cancel)
KCxRejReasonType_UnknowOrder = 1 # 未知订单(Unknown order)
KCxRejReasonType_Broker = 2 # 自选原因(Broker / Exchange Option)
KCxRejReasonType_PendingCancel = 3 # 正在撤消(Order already in Pending Cancel or Pending Replace status)
KCxRejReasonType_Duplicate = 6 # 收到重复单(Duplicate ClOrdID received)
KCxRejReasonType_Other = 99 # 其他(other)
2.4.5 EDepositRetCode - 入金错误返回码
KDepositReCode_Unknown = 0 # 未知错误
KDepositReCode_NoError = 1 # 无错误
KDepositReCode_NoEnoughCash = 2 # 资金不足
KDepositReCode_CapitalOverrun = 3 # 资金超限9*10^17(added 20170410)
KDepositReCode_IllegalAccount = 4 # 非法交易账号(added 20170518)
KDepositReCode_IllegalPara = 5 # 请求参数错误(amount==0, type is unknow)
2.4.6 EExecType - 成交回报类型
KExecType_Unknown = 0 # 未知类型
KExecType_New = 1 # 已报
KExecType_DoneForDay = 3 # 当日已完成
KExecType_Canceled = 4 # 已撤销
KExecType_Replaced = 5 # 已修改
KExecType_PendingCancel = 6 # 待撤销
KExecType_Stopped = 7 # 已停止(已终止)
KExecType_Rejected = 8 # 已拒绝
KExecType_Suspended = 9 # 挂起(已延缓)
KExecType_PendingNew = 65 # 'A' 待报
KExecType_Calculated = 66 # 'B' 已计算
KExecType_Expired = 67 # 'C' 过期
KExecType_Restated = 68 # 'D' 重置(主动发送)
KExecType_PendingReplace = 69 # 'E' 待修改
KExecType_Trade = 70 # 'F' 成交或部分成交
KExecType_TradeCorrect = 71 # 'G' 成交更正
KExecType_TradeCancel = 72 # 'H' 成交撤销
KExecType_OrderStatus = 73 # 'I' 委托状态
2.4.7 EFundamentalsType - 财务数据类型
KFundamentalsType_Unknown = 0 #
KFundamentalsType_TradingDerivative = 1 # 股票交易衍生
KFundamentalsType_BalanceSheet = 2 # 资产负债
KFundamentalsType_Cashflow = 3 # 现金流量
KFundamentalsType_Income = 4 # 利润表
KFundamentalsType_Prim = 5 # 主要财务指标
KFundamentalsType_Deriv = 6 # 衍生财务指标
2.4.8 EHisQuoteErrCode - 历史行情服务错误码
KHisQuoteErrCode_Unknown = 0 # 未知
KHisQuoteErrCode_LoginSucc = 1 # 登录成功
KHisQuoteErrCode_SystemError = 201100 # 系统错误
KHisQuoteErrCode_ReqTypeUnknown = 201101 # 未知请求类型
KHisQuoteErrCode_DoNotLogin = 201102 # 没有登录
KHisQuoteErrCode_NotTradeDay = 201103 # 非交易日
KHisQuoteErrCode_NotTradeTime = 201104 # 非交易时间
KHisQuoteErrCode_StaffNotExist = 201111 # 机构员工不存在
KHisQuoteErrCode_ErrStaffLoginPasswd = 201112 # 机构员工登录密码错误
KHisQuoteErrCode_ErrStaffLoginSkey = 201113 # 机构员工skey校验失败
KHisQuoteErrCode_StaffLogOutFailed = 201114 # 机构员工登出失败
KHisQuoteErrCode_NoPrivilegeAdmin = 201115 # 机构员工没有对应的管理权限
KHisQuoteErrCode_StaffAccountForbidden = 201116 # 机构员工帐户被禁用
2.4.9 ELoginRetCode - 登录成功情况返回码
KLoginReCode_Unknown = 0 # 未知错误
KLoginReCode_LoginSucc = 1 # 登录成功
KLoginReCode_UnknownAcc = 2 # 未知账号 或 密码错误
KLoginReCode_AccUnNormal = 3 # 非正常状态的账号(已注销/已禁用)
2.4.10 EMarketDataType - 行情类型
KMarketDataType_Unknown = 0 # 未知
KMarketDataType_Actual = 1 # 现货
KMarketDataType_SOption = 2 # 现货期权
KMarketDataType_Future = 3 # 期货|期货期权
2.4.11 ESecurityType - 标的类型
KSecurityType_Unknown = 0 # 未知
KSecurityType_Stock = 1 # 普通股票
KSecurityType_Option = 2 # 期权(股票)
KSecurityType_Fund = 3 # 基金
KSecurityType_Index = 4 # 指数(股票)
KSecurityType_Bond = 5 # 债券
KSecurityType_Future = 6 # 期货
KSecurityType_FutureOption = 7 # 期权(期货)
KSecurityType_IndexFuture = 8 # 指数(期货)
2.4.12 EOrderRejectReason - 委托拒绝原因
KOrderRejectReason_NoError = 0 # 无错误
KOrdRejReason_UnknownSymbol = 1 # 证券代码非法(Unknown symbol)
KOrdRejReason_ExchangeClosed = 2 # 交易关闭(Exchange closed)
KOrdRejReason_OrdExceedsLimit = 3 # 订单超过限价(Order exceeds limit)
KOrdRejReason_TooLateEnter = 4 # 订单太迟(Too late to enter)
KOrdRejReason_UnknowOrd = 5 # 未知订单(Unknown Order)
KOrdRejReason_DuplicateOrd = 6 # 重复订单( Duplicate Order (e.g. dupe ClOrdID))
KOrdRejReason_StaleOrd = 8 # 失效订单(Stale Order)
KOrdRejReason_InvalidAcc = 10 # 无效账户(Invalid Investor ID)
KOrdRejReason_UnsupportedOrdChara = 11 # 不支持的订单特征(Unsupported order characteristic)
KOrdRejReason_IncorrectQty = 13 # 数量错误(Incorrect quantity)
KOrdRejReason_UnknownAcc = 15 # 未知账号(Unknown account(s))
KOrdRejReason_NotEnoughPosition = 16 # 持仓不足
KOrdRejReason_SecuritiesTrading = 102 # 证券停牌(获取行情失败)
KOrdRejReason_QtyNonMultipleBuyUnit = 103 # 买订单数量不是SJSXX.XXBLDW 的整数倍;或
KOrdRejReason_PriceNonMultipleTick = 106 # 委托价格不是SJSXX.XXJGDW 的整数倍
KOrdRejReason_IllegalEntrustedBusiness = 108 # 非法的委托业务
KOrdRejReason_LackDeposit = 117 # 参与者业务单元资金可用量不足
KOrdRejReason_PriceError = 125 # 价格错误
KOrdRejReason_InvalidBusinessCategory = 148 # 无效业务类别(order_type)
KOrdRejReason_NonTradingTime = 204 # 非交易时间(This stock is not in tradinghours)
KOrdRejReason_PriceZero = 219 # 申报价不能为零(Price may not be 0 fora limit order)
2.4.13 EOrderSide - 买卖方向
KOrderDirection_Unknown = 0 # 未知方向
KOrderDirection_Buy = 49 # 买入
KOrderDirection_Sell = 50 # 卖出
KOrderDirection_Call = 68 # 认购
KOrderDirection_Callable = 69 # 赎回
KOrderDirection_FinancingToBuy = 70 # 融资买入
KOrderDirection_FinancingToSell = 71 # 融资卖出
2.4.14 EOrderStatus - 委托状态
KOrderStatus_Unknown = 0 # 未知状态
KOrderStatus_New = 1 # 已报
KOrderStatus_PartiallyFilled = 2 # 部成
KOrderStatus_Filled = 3 # 已成
KOrderStatus_DoneForDay = 4 # 当日已完成
KOrderStatus_Canceled = 5 # 已撤
KOrderStatus_PendingCancel = 6 # 待撤
KOrderStatus_Stopped = 7 # 停止
KOrderStatus_Rejected = 8 # 拒绝
KOrderStatus_Suspended = 9 # 挂起
KOrderStatus_PendingNew = 65 # 'A'待报
KOrderStatus_Calculated = 66 # 'B'计算
KOrderStatus_Expired = 67 # 'C'已过期
KOrderStatus_AcceptedForBidding = 68 # 'D'接受竞价
KOrderStatus_PendingReplace = 69 # 'E'待修改
2.4.15 EOrderType - 委托类型
KOrderType_Unknown = 0 # 未知类型
KOrderType_Market = 1 # 市价委托
KOrderType_Limit = 2 # 限价委托
KOrderType_Stop = 4 # 止损委托
KOrderType_Best_5_Then_Cancel = 7 # 市价最优五档剩余撤销
KOrderType_Best_5_Then_Limit = 8 # 市价最优五档剩余转限价
KOrderType_Immediately_Or_Cancel = 9 # 市价即时成交剩余撤销
KOrderType_All_Or_Cancel = 10 # 市价即时全部成交或撤销
KOrderType_Market_Then_Limit = 75 # 市价剩余转限价
KOrderType_Best_Of_Party = 85 # 本方最优价格
KOrderType_Best_Of_Conterparty = 86 # 对方最优价格
2.4.16 EQuoteRetCode - 行情订阅成败返回码
KQuoteRetCode_Unknown = 0 # 未知
KQuoteRetCode_Sucess = 1 # 订阅/取消订阅成功
KQuoteRetCode_HasError = 2 # 订阅/取消订阅出错
2.4.17 EPeriod - 历史数据周期
KPeriod_Unknown = 0 # 未知
KPeriod_ONE_MIN = 1 # 一分钟
KPeriod_FIVE_MIN = 2 # 五分钟
KPeriod_FIFTEEN_NMIN = 3 # 十五分钟
KPeriod_HALF_HOUR = 4 # 半小时
KPeriod_ONE_HOUR = 5 # 一小时
KPeriod_DAILY = 6 # 一天
2.4.18 EPositionEffect - 开平方向
KPositionEffect_Unknown = 0 # 未知方向
KPositionEffect_Open = 48 # '0';开仓
KPositionEffect_Close = 49 # '1';平仓
KPositionEffect_ForceClose = 50 # '2';强平
KPositionEffect_CloseToday = 51 # '3';平今
KPositionEffect_CloseYesterday = 52 # '4';平昨
2.4.19 ERegisterRet - 注册完成情况返回码
KRegisterRet_Unknown = 0 # 未知错误
KRegisterRet_Success = 1 # 注册成功
KRegisterRet_ReRegister = 2 # 重复注册
KRegisterRet_InvalidStrategy = 3 # 无效或非法 strategy_id
2.4.20 ESecurityType - 标的类型
KSecurityType_Unknown = 0 # 未知
KSecurityType_Stock = 1 # 普通股票
KSecurityType_Option = 2 # 期权(股票)
KSecurityType_Fund = 3 # 基金
KSecurityType_Index = 4 # 指数(股票)
KSecurityType_Bond = 5 # 债券
KSecurityType_Future = 6 # 期货
KSecurityType_FutureOption = 7 # 期权(期货)
KSecurityType_IndexFuture = 8 # 指数(期货)
3 使用须知
3.1 日志记录功能
SDK基于logging模块实现了全局日志记录功能。
3.1.1 set_root_logger - 设置全局Root日志
-
函数签名
def set_root_logger(name=None, filename=None, level=AztClient.INFO, level_name=AztClient.LEVEL_NAME_CN, fmt=None, datefmt=None, msec=ac.MILLSECOND, log_colors=None, hint_left='[', hint_right=']', hint_separator=' ', farewell=True, farewell_text=None, disable=False) # 设置全局Root日志 def debug(*msgs) # 记录测试信息 def log(*msgs) # 记录正常信息 def warning(*msgs) # 记录警告信息 def error(*msgs) # 记录错误信息 def critical(*msgs) # 记录严重错误信息
-
参数
参数 类型 默认值 说明 name str None Root日志名称,默认为 "Root"
filename str None 日志输出存储文件路径,若未设置则直接打印输出日志 level int ac.INFO 日志记录等级,默认记录 INFO
级别及以上日志,低于INFO
级别的日志会被忽略。可选日志级别有(日志级别从小到大):NOTSET
,DEBUG
,INFO
,WARNING
,ERROR
,CRITICAL
level_name dict ac.LEVEL_NAME_CN 日志级别名称,默认显示日志的中文名。可选值有: LEVEL_NAME_CN
(中文)、LEVEL_NAME_EN
(英文)、None
(不显示日志级别名称)或自定义dict
(如{NOTSET: "缺省", DEBUG: "测试", INFO: "日志", WARNING: "警告", ERROR: "错误", CRITICAL: "致命", }
)fmt str None 日志输出格式,具体格式参见 logging
库datefmt str None 时间输出格式,仅当日志输出格式中需要输出时间时生效,具体格式参见 logging
库msec int MILLSECOND 微秒保留部分,仅当 datefmt
生效时有效,默认保留至毫秒。可选值有:NOMICROSECOND
(不保留微秒部分),MICROSECOND
(保留至微秒),MILLSECOND
(保留至毫秒)log_colors dict None 日志输出颜色。默认使用颜色方案为: {'DEBUG': 'green', 'INFO': 'white', 'WARNING': 'yellow', 'ERROR': 'red', 'CRITICAL': 'bold_red'}
,具体参见colorlog
库hint_left str '[' 模块提示符左部分 hint_right str ']' 模块提示符右部分 hint_separator str ' ' 模块间分割符 farewell bool True 是否在退出程序时输出告别语 farewell_text str None 退出程序时输出的告别语,仅当 farewell=True
时生效,farewell_text=None
时表示使用默认告别语disable bool False 是否禁用Root日志 -
示例
import AztClient as ac ac.set_root_logger(level=ac.DEBUG, level_name=ac.LEVEL_NAME_CN) ac.debug("hello debug") ac.info("hello info") ac.warning("hello warning") ac.error("hello error") ac.critical("hello critical") ac.set_root_logger(name="NewRoot", level=ac.WARNING, level_name=ac.LEVEL_NAME_EN) ac.debug("hello debug") ac.info("hello info") ac.warning("hello warning") ac.error("hello error") ac.critical("hello critical") new_level_name = { ac.DEBUG: "new测试", ac.INFO: "new日志", ac.WARNING: "new警告", ac.ERROR: "new错误", ac.CRITICAL: "new致命", } ac.set_root_logger(name=None, level_name=new_level_name, farewell_text="bye bye~") ac.info("hello info") ac.warning("hello warning") ac.error("hello error") ac.critical("hello critical")
3.1.2 get_logger - 获取logger对象
-
函数签名
def get_logger(name=None, filename=None, level=INFO, level_name=LEVEL_NAME_CN, fmt=None, datefmt=None, msec=MILLSECOND, log_colors=None, hint_left='[', hint_right=']', hint_separator=' ', new=False)
-
参数
参数 类型 默认值 说明 name str None 日志名称,默认获取全局Root日志对象;如果日志不存在则自动新建一个日志对象,若存在则直接获取已创建日志对象 filename str None 日志输出存储文件路径,若未设置则直接打印输出日志 level int ac.INFO 日志记录等级,默认记录 INFO
级别及以上日志,低于INFO
级别的日志会被忽略。可选日志级别有(日志级别从小到大):NOTSET
,DEBUG
,INFO
,WARNING
,ERROR
,CRITICAL
level_name dict ac.LEVEL_NAME_CN 日志级别名称,默认显示日志的中文名。可选值有: LEVEL_NAME_CN
(中文)、LEVEL_NAME_EN
(英文)、None
(不显示日志级别名称)或自定义dict
(如{NOTSET: "缺省", DEBUG: "测试", INFO: "日志", WARNING: "警告", ERROR: "错误", CRITICAL: "致命", }
)fmt str None 日志输出格式,具体格式参见 logging
库datefmt str None 时间输出格式,仅当日志输出格式中需要输出时间时生效,具体格式参见 logging
库msec int MILLSECOND 微秒保留部分,仅当 datefmt
生效时有效,默认保留至毫秒。可选值有:NOMICROSECOND
(不保留微秒部分),MICROSECOND
(保留至微秒),MILLSECOND
(保留至毫秒)log_colors dict None 日志输出颜色。默认使用颜色方案为: {'DEBUG': 'green', 'INFO': 'white', 'WARNING': 'yellow', 'ERROR': 'red', 'CRITICAL': 'bold_red'}
,具体参见colorlog
库hint_left str '[' 模块提示符左部分 hint_right str ']' 模块提示符右部分 hint_separator str ' ' 模块间分割符 new bool False 是否创建一个新的logger。当new=False时,若日志名称已存在,则直接获取已存在日志,其他参数即使发生修改也不会生效;当new=True时,若日志已存在,则删除已存在日志对象,生成新的日志对象 -
示例
import AztClient as ac logger = ac.get_logger(name="test", level=ac.DEBUG, level_name=ac.LEVEL_NAME_CN) logger.debug("hello debug") logger.info("hello info") logger.warning("hello warning") logger.error("hello error") logger.critical("hello critical") logger = ac.get_logger(name="test", level=ac.WARNING, level_name=ac.LEVEL_NAME_EN) # 修改一下参数,但不会生效 logger.debug("hello debug") logger.info("hello info") logger.warning("hello warning") logger.error("hello error") logger.critical("hello critical") logger = ac.get_logger(name="test", level=ac.WARNING, level_name=ac.LEVEL_NAME_EN, new=True) # 覆盖原来的logger,修改参数可以生效 logger.debug("hello debug") logger.info("hello info") logger.warning("hello warning") logger.error("hello error") logger.critical("hello critical")
3.2 概念 - 同步异步模式
3.2.1 定义
同步模式:客户端向服务端发送请求后,阻塞等待请求的响应
异步模式:客户端向服务器发送请求后,不阻塞等待,客户端可以马上处理其他任务;服务端对客户端的请求将通过调用指定的spi函数响应(故亦可称回调模式)
3.2.2 应用
-
凡是接受**
sync
**参数的接口,都同时支持同步模式和异步模式。- 当
sync=True
时,接口会阻塞,直至超时或收到响应消息时,返回响应消息;若用户同时实现了接口的spi,消息也会再通过调用spi函数返回 - 当
sync=False
时,接口函数会直接退出,如果有响应消息,则消息会通过调用已实现的spi函数返回
- 当
-
若不接受sync参数,则需要查看是否存在对应的spi函数
-
若存在可实现的spi函数,则表明默认使用异步模式
-
若不存在,则需要观察是否接受timeout参数
- 若接受timeout参数,表明默认使用同步模式
- 若不接受timeout参数,表明该接口不会获得服务端的响应
-
3.3 Api基本方法
所有Api都有一个共同的基类,因此都会有相同的基本方法,其调用逻辑与功能都相同。
3.3.1 Start - 启动Api
用于初始化Api实例对象、连接服务端、注册回调Spi(用于异步接收服务器的响应消息)等,在使用Api的各种接口前必须先调用该函数。
不同Api的Start
函数接受的参数可能不同,因此应参照指定Api的文档说明进行使用。
3.3.2 Stop - 停止Api
用于主动断开与服务端的连接,停止Api;同时如果没有错误,该函数的调用不会终止程序,用户还可以使用Start函数重新重新连接服务端。
-
函数签名
def Stop(self)
3.3.3 Join - 加入Api
用于阻塞程序运行,直至超时或Api停止。该函数仅在Api成功Start
之后、Stop
之前有效,效果与time.sleep
函数相当。
-
函数签名
def Join(self, wait: float=None)
-
参数
参数 类型 默认值 说明 wait float None 阻塞等待时间, None
表示一直阻塞,单位:秒 -
提示
- 由于客户端将会启动子线程用于接收服务器异步响应信息,当用户通过注册Spi接收消息时,如果主线程过早退出,客户端将无法正确接收响应信息,因此需要用户维持程序的运行。当用户没有其他途径维持程序的运行时,则可以考虑调用该函数。
3.3.4 SetLogger - 设置Api日志对象
每个Api都内置了日志记录功能,并且默认使用Root日志,当然用户也可以设置指定的日志对象
-
函数签名
def SetLogger(self, logger=None, title=None)
-
参数
参数 类型 默认值 说明 logger QujamLogger None 必须是通过 ac.get_logger
方法获取的日志对象,默认使用全局Root
日志对象title str None 在消息前面新增一个模块,如命名为 "Trade"
,表明当前消息由AztTradeApi
发出;当title=None
时表示不设置 -
提示
- 该方法建议在Api的
Start
方法前调用 - 如果
logger=None
,则默认使用Root日志对象 - 如果Root对象被禁用,则无法使用Api的日志记录功能,除非指定
logger
- 该方法建议在Api的
3.3.5 日志记录函数
Api中内置了日志记录方法,用户可以直接调用这些方法记录日志,默认使用全局Root日志对象进行记录
-
记录测试日志
def debug(self, *msgs)
-
记录普通日志
def info(self, *msgs)
-
记录警告日志
def warning(self, *msgs)
-
记录错误日志
def error(self, *msgs)
-
记录严重错误日志
def critical(self, *msgs)
3.3.6 Api状态函数
Api中还有一些函数可供用户使用,以判断当前Api的状态
-
是否已停止
def isStopped(self):
-
是否已登录
def isLogined(self):
-
是否为初次登录
def isFirstLogined(self):
- 在首次调用
Start
函数前,isFirstLogined
返回True
,之后都是False
- 在首次调用
4 AztTradeApi - 模拟柜台Api
4.1 Start - 启动函数
-
函数签名
def Start(self, ip: str, port: int, spi=None, timeout: float = None, reconnect: int = None, reconnect_ivl: float = None)
-
参数
参数 类型 默认值 说明 ip str 无,必填 模拟柜台服务地址,由aztquant.com提供 port int 无,必填 模拟柜台服务端口,由aztquant.com提供 spi AztTradeSpi None 回调Spi类或实例,用于异步接收服务器的响应消息 timeout int None 连接超时时间(单位:秒),若超时后仍未成功连接服务,则返回可 raise
的error
;若未设置超时时间,则Start
函数将会阻塞直至连接成功reconnect int None 重连次数,None或0表示断线不自动重连,-1表示无限重连;重连一定次数后仍未连接成功,返回可raise的错误 reconnect_ivl float None 重连间隔时间,单位:秒 -
返回
如果初始化成功,返回
None
;如果初始化失败,返回可raise
的error
-
提示
- 用户只有在实现了
AztTradeSpi
回调类时才需要设置spi参数,反之则不需要关注 - 参数spi既可以填入
AztTradeSpi
类,也可以填入AztTradeSpi()
类实例
- 用户只有在实现了
4.2 Login - 登录
-
函数签名
def Login(self, account: str, passwd: str, timeout: float = None):
-
参数
参数 类型 默认值 说明 account str 无,必填 账户ID passwd str 无,必填 账户密码 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
返回
TradeLoginAck
信息;若超时无响应则返回None
-
示例
import AztClient as ac # 导入客户端库 # 获取账户ID和密码并填入 ------------------------------------------------------ account = "xxxx" # 账户ID passwd = "xxxx" # 账户密码 # 初始化Api ------------------------------------------------------------------- myapi = ac.AztTradeApi() # 实例化Api start_error = myapi.Start(ip="127.0.0.1", port=1234) # 初始化Api if start_error: # 如果初始化失败,报错 raise start_error # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5.0) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") ac.info("登录结果:", ret_login)
4.3 Logout - 退出登录
-
函数签名
def Logout(self)
-
提示
- 只有在登录之后才需要退出登录,在尚未登录时调用效果与Stop函数相同
- 程序正常终止时,若账户已登录但尚未退出登录,程序会自动退出登录
4.4 QueryAccountInfo - 查询账户信息
-
函数签名
def QueryAccountInfo(self, strategy_id: str = None, strategy_check_code: str = None, account: str = None, passwd: str = None, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 strategy_id str None 策略ID strategy_check_code str None 策略校验码 account str None 账户ID passwd str None 账户密码 sync bool False 是否直接返回结果(启用同步模式) timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回TradeRegisterInfo
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 # 获取策略ID和策略校验码并填入 ------------------------------------------------ strategy_id = "xxxx" # 策略ID strategy_check_code = "xxxx" # 策略校验码 # 初始化Api ------------------------------------------------------------------- myapi = ac.AztTradeApi() # 实例化Api start_error = myapi.Start(ip="127.0.0.1", port=1234) # 初始化Api if start_error: # 如果初始化失败,报错 raise start_error # 查询账户,并直接返回结果 ----------------------------------------------------- ret_userinfo = myapi.QueryAccountInfo(strategy_id, strategy_check_code, sync=True, timeout=5.0) # 设置5秒超时 ac.info("账户查询结果:", ret_userinfo)
-
提示
- 用户既可以填写
strategy_id
和strategy_check_code
查询,也可以填写account
和passwd
来查询 - 查询账户信息不需要先登录
- 用户既可以填写
4.5 QueryAsset - 查询账户资产信息
-
函数签名
def QueryAsset(self, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 sync bool False 是否直接返回结果(启用同步模式) timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回AccMargin
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询账户资产信息,并直接返回结果 --------------------------------------------- ret_asset = myapi.QueryAsset(sync=True, timeout=5.0) # 设置5秒超时 ac.info("账户资产信息查询结果:", ret_asset)
-
提示
- 查询账户资产信息必须先登录
4.6 QueryHistoryAsset - 查询账户历史资产信息
-
函数签名
def QueryHistoryAsset(self, date: datetime.datetime = None, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 date datetime.datetime None 指定查询的历史日期,若无指定则查询账户所有的历史资产信息 sync bool False 是否直接返回结果(启用同步模式) timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QryHisAccAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询账户历史资产信息,并直接返回结果 ----------------------------------------- ret_asset = myapi.QueryHistoryAsset(sync=True, timeout=5.0) # 设置5秒超时 ac.info("账户历史资产信息查询结果:", ret_asset)
-
提示
查询账户历史资产信息必须先登录
4.7 QueryHistoryDeposit - 查询历史入金信息
-
函数签名
def QueryHistoryDeposit(self, date: datetime.datetime = None, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 date datetime.datetime None 指定查询的历史日期,若无指定则查询账户所有的历史入金信息 sync bool False 是否直接返回结果(启用同步模式) timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QryHisDepositAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询账户历史入金信息,并直接返回结果 ----------------------------------------- ret_deposit = myapi.QueryHistoryDeposit(sync=True, timeout=5.0) # 设置5秒超时 ac.info("账户历史入金信息查询结果:", ret_deposit)
-
提示
查询账户历史入金信息必须先登录
4.8 QueryOrders - 查询委托订单信息
-
函数签名
def QueryOrders(self, market: str = None, code: str = None, client_ref: str = None, order_id: str = None, unfinished: bool = False, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 market str None 交易所代码 code str None 标的代码 client_ref str None 订单编号(客户端生成) order_id str None 订单编号(服务端生成) unfinished bool False 是否只查询未结委托 sync bool False 是否开启同步模式 timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QueryOrdersAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询委托订单信息,并直接返回结果 -------------------------------------------- ret_orders = myapi.QueryOrders(sync=True, timeout=5.0) # 设置5秒超时 ac.info("委托订单信息查询结果:", ret_orders)
4.9 QueryTrades - 查询成交信息
-
函数签名
QueryTrades(self, market: str = None, code: str = None, order_id: str = None, trade_id: str = None, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 market str None 交易所代码 code str None 标的代码 order_id str None 订单编号 trade_id str None 成交编号 sync bool False 是否开启同步模式 timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QueryTradesAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询成交信息,并直接返回结果 ------------------------------------------------- ret_trades = myapi.QueryTrades(sync=True, timeout=5.0) # 设置5秒超时 ac.info("成交信息查询结果:", ret_trades)
-
提示
- 查询成交信息必须先登录
- 只填写
market
参数,则查询指定交易所相关的成交信息 - 只填写
market
和code
参数,则查询指定标的代码相关的成交信息 - 只填写
order_id
参数,则查询指定委托订单的成交信息,此时不需要填写其他参数 - 只填写
trade_id
参数,则查询指定成交编号的成交信息,此时不需要填写其他参数 - 不填写以上参数时,则默认查询当前登录账户当日所有的成交信息
4.10 QueryPositions - 查询持仓信息
-
函数签名
def QueryPositions(self, market: str = None, code: str = None, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 market str None 交易所代码 code str None 标的代码 sync bool False 是否开启同步模式 timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应,返回QueryPositionsAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询持仓信息,并直接返回结果 ------------------------------------------------- ret_positions = myapi.QueryPositions(sync=True, timeout=5.0) # 设置5秒超时 ac.info("持仓信息查询结果:", ret_positions)
-
提示
- 查询持仓信息必须先登录
- 填写
market
和code
参数时,查询指定标的相关的持仓信息 - 不填写以上参数时,查询当前登录账户所有的持仓信息
4.10.1 QueryPositions - 查询历史持仓信息
-
函数签名
def QueryHisPositions(self, market: str = None, code: str = None,start_time: datetime.datetime = None, end_time: datetime.datetime = None, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 market str None 交易所代码 code str None 标的代码 start_time datetime None 开始时间 end_time datetime None 结束代码 sync bool False 是否开启同步模式 timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应,返回QueryHisPositionsAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询持仓信息,并直接返回结果 ------------------------------------------------- ret_positions = myapi.QueryPositions(sync=True, timeout=5.0) # 设置5秒超时 ac.info("持仓信息查询结果:", ret_positions)
-
提示
- 查询历史持仓信息必须先登录
- 填写
market
和code
参数时,查询指定标的相关的持仓信息 - 不填写以上参数时,查询当前登录账户所有的持仓信息
4.11 QueryHistoryOrders - 查询历史委托信息
-
函数签名
def QueryHistoryOrders(self, market: str = None, code: str = None, start_time: datetime.datetime = None, end_time: datetime.datetime = None, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 market str None 交易所代码 code str None 标的代码 start_time datetime.datetime None 查询起始时间 end_time datetime.datetime None 查询结束时间 sync bool False 是否开启同步模式 timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QueryOrdersAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询历史委托订单信息,并直接返回结果 ----------------------------------------- ret_historyorders = myapi.QueryHistoryOrders(sync=True, timeout=5.0) # 设置5秒超时 ac.info("历史委托订单信息查询结果:", ret_historyorders)
-
提示
- 查询历史委托订单信息必须先登录
- 填写
market
和code
参数时,查询指定标的相关的历史委托订单信息 - 填写
start_time
和end_time
时,查询指定时间段内的历史委托订单信息,与market
和code
参数兼容 - 不填写以上参数时,默认查询当前登录账户所有的历史委托订单信息
4.12 QueryHistoryTrades - 查询历史成交信息
-
函数签名
def QueryHistoryTrades(self, market: str = None, code: str = None, start_time: datetime.datetime = None, end_time: datetime.datetime = None, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 market str None 交易所代码 code str None 标的代码 start_time datetime.datetime None 查询起始时间 end_time datetime.datetime None 查询结束时间 sync bool False 是否开启同步模式 timeout int None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QueryTradesAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询历史成交信息,并直接返回结果 --------------------------------------------- ret_historytrades = myapi.QueryHistoryTrades(sync=True, timeout=5.0) # 设置5秒超时 ac.info("历史成交信息查询结果:", ret_historytrades)
-
提示
- 查询历史成交信息必须先登录
- 填写
market
和code
参数时,查询指定标的相关的历史成交信息 - 填写
start_time
和end_time
时,查询指定时间段内的历史成交信息,与market
和code
参数兼容 - 不填写以上参数时,默认查询当前登录账户所有的历史成交信息
4.13 QuerySecurityInfo - 查询标的信息
-
函数签名
def QuerySecurityInfo(self, market, code: str = None, timeout: float = None)
-
参数
参数 类型 默认值 说明 market str 无,必填 交易所代码 code str None 标的代码 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 在超时前得到响应时,返回
SecurityInfoRsp
信息,其余情况返回None
- 在超时前得到响应时,返回
-
示例
import AztClient as ac # 导入客户端库 # 获取账户ID和密码并填入 ------------------------------------------------------ account = "xxxx" # 账户ID passwd = "xxxx" # 账户密码 # 初始化Api ------------------------------------------------------------------- myapi = ac.AztTradeApi() # 实例化Api start_error = myapi.Start(ip="127.0.0.1", port=1234) # 初始化Api if start_error: # 如果初始化失败,报错 raise start_error # 查询指定标的信息,设置5秒超时 ------------------------------------------------ ret_query_security_info = myapi.QuerySecurityInfo(timeout=5, market="SZSE", code="000001") ac.info("标的信息查询结果:", ret_query_security_info)
-
提示
- 如果只填写
market
参数,则为查询整个交易所的标的信息 - 填写
market
和code
参数时,查询指定标的信息
- 如果只填写
4.14 DepositAsset - 账户入金
每个模拟柜台账户在刚创建时都会有两亿总资金,在使用过程中如果资金不足,用户也可以自行通过入金的方式追加总资金;但要注意入金前必须先登录。
-
函数签名
def DepositAsset(self, amount: float, sync: bool = False, timeout: int = None)
-
参数
参数 类型 默认值 说明 amount float 无,必填 入金总额 sync bool False 是否阻塞等待响应 timeout int None 超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回AccDepositAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 ...... # 3 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5.0) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 4 账户入金20w,并直接返回结果 -------------------------------------------------- ret_accdeposit = myapi.DepositAsset(amount=200_000, sync=True, timeout=5.0) # 设置5秒超时 ac.info("入金结果:", ret_accdeposit)
4.15 Buy - 买入委托
-
函数签名
def Buy(self, market: str, code: str, order_qty: int = 100, order_type: int = KOrderType_Market, effect: int = KPositionEffect_Open, order_price: float = None, discretion_price: float = None)
-
参数
参数 类型 默认值 说明 market str 无,必填 交易所代码 code str 无,必填 标的代码 order_qty int 100 委托数量,单位:股(以股票为例) order_type int KOrderType_Market 委托类型,默认市价委托,具体取值与含义参见 EOrderType
effect int KPositionEffect_Open 多空方向,默认多头,具体取值与含义参见 EPositionEffect
order_price float None 委托限价,适用于限价委托,保留两位小数 discretion_price float None 市价转限价后委托限价,适用于市转限委托,保留两位小数 -
返回
调用函数后返回生成的委托订单,为
PlaceOrder
实例 -
示例
import AztClient as ac # 导入客户端库 # 1 获取账户ID和密码并填入 ----------------------------------------------------- account = "xxxx" # 账户ID passwd = "xxxx" # 账户密码 # 2 实现回调Spi ---------------------------------------------------------------- class MySpi(ac.AztTradeSpi): # 委托执行回报信息回调 def onOrderReport(self, msg): ac.info("收到委托执行回报信息:", msg) # 成交回报信息回调 def onTradeReport(self, msg): ac.info("收到成交回报信息:", msg) # 3 初始化Api ------------------------------------------------------------------ myapi = ac.AztTradeApi() # 实例化Api # 初始化Api,注册Spi start_error = myapi.Start(ip="127.0.0.1", port=1234, spi=MySpi) if start_error: # 如果初始化失败,报错 raise start_error # 4 登录账户 ------------------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if not ret_login: raise Exception("登录失败!") myapi.Join(1) # 阻塞1秒 # 买入1手SHSE.600259 order = myapi.Buy(market="SHSE", code="600259", order_qty=100) # order为PlaceOrder实例 # 5 阻塞主线程等待结果返回 ----------------------------------------------------- myapi.Join()
-
提示
- 买入委托前必须先登录
- 服务器对委托订单的处理时间无法保证,因此无法启用同步模式,只能采用异步模式;因此用户必须实现相关的回调函数才能收取到委托订单相关的执行消息和成交消息
4.16 Sell - 卖出委托
-
函数签名
def Sell(self, market: str, code: str, order_qty: int = 100, order_type: int = KOrderType_Market, effect: int = KPositionEffect_Close, order_price: float = None, discretion_price: float = None)
-
参数
参数 类型 默认值 说明 market str 无,必填 交易所代码 code str 无,必填 标的代码 order_qty int 100 委托数量,单位:股(以股票为例) order_type int KOrderType_Market 委托类型,默认市价委托,具体取值与含义参见 EOrderType
effect int KPositionEffect_Close 多空方向,默认空头,具体取值与含义参见 EPositionEffect
order_price float None 委托限价,适用于限价委托,保留两位小数 discretion_price float None 市价转限价后委托限价,适用于市转限委托,保留两位小数 -
返回
调用函数后返回生成的委托订单,为
PlaceOrder
实例 -
示例
import AztClient as ac # 导入客户端库 # 1 获取账户ID和密码并填入 ----------------------------------------------------- account = "xxxx" # 账户ID passwd = "xxxx" # 账户密码 # 2 实现回调Spi ---------------------------------------------------------------- class MySpi(ac.AztTradeSpi): # 委托执行回报信息回调 def onOrderReport(self, msg): ac.info("收到委托执行回报信息:", msg) # 成交回报信息回调 def onTradeReport(self, msg): ac.info("收到成交回报信息:", msg) # 3 初始化Api ------------------------------------------------------------------ myapi = ac.AztTradeApi() # 实例化Api # 初始化Api,注册Spi start_error = myapi.Start(ip="127.0.0.1", port=1234, spi=MySpi) if start_error: # 如果初始化失败,报错 raise start_error # 4 登录账户 ------------------------------------------------------------------- if not myapi.Login(account, passwd, timeout=5): raise Exception("登录失败!") myapi.Join(1) # 阻塞1秒 # 卖出1手SHSE.600259 order = myapi.Sell(market="SHSE", code="600259", order_qty=100) # order为PlaceOrder实例 # 5 阻塞主线程等待结果返回 ----------------------------------------------------- myapi.Join()
-
提示
- 卖出委托前必须先登录
- 服务器对委托订单的处理时间无法保证,因此无法启用同步模式,只能采用异步模式;因此用户必须实现相关的回调函数才能收取到委托订单相关的执行消息和成交消息
4.17 Cancel - 撤单委托
-
函数签名
def Cancel(self, order_id: str)
-
参数
参数 类型 默认值 说明 order_id str 无,必填 需要撤销的委托订单编号,见 PlaceOrder
中的order_id
属性 -
返回
调用函数后返回生成的撤单委托请求,为
CancelOrder
实例 -
示例
import AztClient as ac # 导入客户端库 # 1 获取账户ID和密码并填入 ------------------------------------------------------ account = "xxxx" # 账户ID passwd = "xxxx" # 账户密码 # 2 实现回调Spi ---------------------------------------------------------------- class MySpi(ac.AztTradeSpi): # 2.2 实现委托执行回报信息回调 def onOrderReport(self, msg): ac.info("收到委托执行回报信息:", msg) def onCancelOrderReject(self, msg): ac.info("撤单失败:", msg) # 3 初始化Api ------------------------------------------------------------------ myapi = ac.AztTradeApi() # 实例化Api # 初始化Api,注册Spi start_error = myapi.Start(ip="127.0.0.1", port=1234, spi=MySpi) if start_error: # 如果初始化失败,报错 raise start_error # 4 登录账户 ------------------------------------------------------------------- if not myapi.Login(account, passwd, timeout=5): raise Exception("登录失败!") # 5 取消订单 ------------------------------------------------------------------- order_id = "xxxx" # PlaceOrder中的order_id属性 cancel_req = myapi.Cancel(order_id) # cancel_req为CancelOrder实例 # 6 阻塞主线程等待结果返回 ----------------------------------------------------- myapi.Join()
5 AztQuoteApi - 实时行情服务Api
5.1 Start - 启动函数
-
函数签名
def Start(self, ip: str, port: int, spi=None, timeout=None reconnect: int = None, reconnect_ivl: float = None)
-
参数
参数 类型 默认值 说明 ip str 无,必填 行情服务地址,由aztquant.com提供 port int 无,必填 行情服务端口,由aztquant.com提供 spi AztQuoteSpi None 回调Spi类或实例,用于异步接收服务器的响应消息 timeout float None 连接超时时间(单位:秒),若超时后仍未成功连接服务,则返回可 raise
的error
;若未设置超时时间,则Start
函数将会阻塞直至连接成功reconnect int None 重连次数,None或0表示断线不自动重连,-1表示无限重连;重连一定次数后仍未连接成功,返回可raise的错误 reconnect_ivl float None 重连间隔时间,单位:秒 -
返回
如果初始化成功,返回
None
;如果初始化失败,返回可raise
的error
-
提示
- 用户需要自行实现
AztQuoteSpi
回调类时才需要设置spi参数,反之则不需要关注 - 参数spi既可以填入
AztQuoteSpi
类,也可以填入AztQuoteSpi()
类实例
- 用户需要自行实现
5.2 Login - 登录
-
函数签名
def Login(self, account: str, passwd: str, timeout: float = None):
-
参数
参数 类型 默认值 说明 account str 无,必填 账户ID passwd str 无,必填 账户密码 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
返回
LoginAck
信息;若超时无响应则返回None
-
示例
import AztClient as ac # 导入客户端库 # 获取账户ID和密码并填入 ------------------------------------------------------ account = "xxxx" # 账户ID passwd = "xxxx" # 账户密码 # 初始化Api ------------------------------------------------------------------- myapi = ac.AztQuoteApi() # 实例化Api start_error = myapi.Start(ip="127.0.0.1", port=1234) # 初始化Api if start_error: # 如果初始化失败,报错 raise start_error # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5.0) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") ac.info("登录结果:", ret_login)
5.3 Logout - 退出登录
-
函数签名
def Logout(self)
-
提示
- 只有在登录之后才需要退出登录,在尚未登录时调用效果与Stop函数相同
- 程序正常终止时,若账户已登录但尚未退出登录,程序会自动退出登录
5.4 Subscribe - 订阅实时行情
-
函数签名
def Subscribe(self, codes, sync=False, timeout=None)
-
参数
参数 类型 默认值 说明 codes str或list[str] 无,必填 订阅标的,标的格式为 Market.Code
(如SHSE.600000
);如果需要订阅多个标的,既可以使用列表形式(如["SHSE.600000","SZSE.000001"]
),也可以使用英文逗号,
拼接(如"SHSE.600000,SZSE.000001"
)sync bool False 是否直接返回订阅成败情况(启用同步模式) timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QuoteRegisterAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 # 实现回调Spi ---------------------------------------------------------------- class MySpi(ac.AztQuoteSpi): def onSubscribe(self, msg): self.api.info("收到订阅回报(spi):", msg) def onQuoteData(self, msg): self.api.info("收到行情推送:", msg) ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 订阅标的,订阅成败通过spi返回(异步模式) ----------------------------------- myapi.Subscribe(["SHSE.600000", "SHSE.600123"]) # 或者同步模式(设置5秒超时) ret_sub = myapi.Subscribe("SHSE.600130,SHSE.600004", sync=True, timeout=5.0) if not ret_sub: raise Exception("服务器未响应!") myapi.info("收到订阅回报:", ret_sub) # 5 阻塞主线程等待结果返回 ------------------------------------------------------ myapi.Join()
5.5 Unsubscribe - 取消订阅实时行情
-
函数签名
def Unsubscribe(self, codes, sync=False, timeout=None)
-
参数
参数 类型 默认值 说明 codes str或list[str] 无,必填 取消订阅标的,标的格式为 Market.Code
(如SHSE.600000
);如果需要取消订阅多个标的,既可以使用列表形式(如["SHSE.600000","SZSE.000001"]
),也可以使用英文逗号,
拼接(如"SHSE.600000,SZSE.000001"
)sync bool False 是否直接返回取消订阅成败情况(启用同步模式) timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QuoteRegisterAck
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 # 实现回调Spi ---------------------------------------------------------------- class MySpi(ac.AztQuoteSpi): def onUnsubscribe(self, msg): self.api.info("收到取消订阅回报(spi):", msg) def onQuoteData(self, msg): self.api.info("收到行情推送:", msg) ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 订阅标的,直接返回订阅成败情况(同步模式) ---------------------------------- ret_sub = myapi.Subscribe("SHSE.600130,SHSE.600004", sync=True, timeout=5.0) if not ret_sub: raise Exception("服务器未响应!") myapi.info("收到订阅回报:", ret_sub) # 在30秒后取消订阅 ----------------------------------------------------------- myapi.Join(30) myapi.Unsubscribe("SHSE.600130") # 阻塞主线程30秒后停止程序 --------------------------------------------------- myapi.Join(30) myapi.Stop()
5.6 QueryQuote - 查询实时行情
-
函数签名
def QueryQuote(self, codes, sync=False, timeout=None)
-
参数
参数 类型 默认值 说明 codes str或list[str] 无,必填 查询标的,标的格式为 Market.Code
(如SHSE.600000
);如果需要取消订阅多个标的,既可以使用列表形式(如["SHSE.600000","SZSE.000001"]
),也可以使用英文逗号,
拼接(如"SHSE.600000,SZSE.000001"
)sync bool False 是否直接返回查询到的实时行情(启用同步模式) timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
- 当
sync=True
且在超时前得到响应时,返回QuoteMsg
信息,其余情况返回None
- 当
-
示例
import AztClient as ac # 导入客户端库 # 实现回调Spi ---------------------------------------------------------------- class MySpi(ac.AztQuoteSpi): # 实现异步模式,同步模式下也会触发spi回调 def onQueryQuote(self, msg): self.api.info("收到行情查询回报(spi):", msg) ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询标的,直接返回查询的实时行情(同步模式) ---------------------------------- ret_query = myapi.QueryQuote("SHSE.600000,SHSE.600004,SHSE.600129,SHSE.600159", sync=True, timeout=5) if not ret_query: raise Exception("服务器未响应!") myapi.info("收到行情查询回报:", ret_query)
5.7 QuerySecurityInfo - 查询标的信息
-
函数签名
def QuerySecurityInfo(self, codes, timeout: float = None)
-
参数
参数 类型 默认值 说明 codes str或list[str] 无,必填 查询标的,标的格式为 Market.Code
(如SHSE.600000
);如果需要取消订阅多个标的,既可以使用列表形式(如["SHSE.600000","SZSE.000001"]
),也可以使用英文逗号,
拼接(如"SHSE.600000,SZSE.000001"
)timeout float None 查询超时时间,超时返回 None
,单位:秒 -
返回
- 在超时前得到响应时,返回
SecurityInfoRsp
信息,其余情况返回None
- 在超时前得到响应时,返回
-
示例
import AztClient as ac # 导入客户端库 # 获取账户ID和密码并填入 ------------------------------------------------------ account = "xxxx" # 账户ID passwd = "xxxx" # 账户密码 # 初始化Api ------------------------------------------------------------------- myapi = ac.AztQuoteApi() # 实例化Api start_error = myapi.Start(ip="127.0.0.1", port=1234) # 初始化Api if start_error: # 如果初始化失败,报错 raise start_error # 查询指定标的信息,设置5秒超时 ------------------------------------------------ ret_query_security_info = myapi.QuerySecurityInfo(code="000001", timeout=5.0) ac.info("标的信息查询结果:", ret_query_security_info)
6 AztHisQuoteApi - 历史行情服务Api
6.1 Start - 启动函数
-
函数签名
def Start(self, ip: str, port: int, spi=None, timeout=None reconnect: int = None, reconnect_ivl: float = None)
-
参数
参数 类型 默认值 说明 ip str 无,必填 历史行情服务地址,由aztquant.com提供 port int 无,必填 历史行情服务端口,由aztquant.com提供 spi AztHisQuoteSpi None 回调Spi类或实例,用于异步接收服务器的响应消息 timeout int None 连接超时时间(单位:秒),若超时后仍未成功连接服务,则返回可 raise
的error
;若未设置超时时间,则Start
函数将会阻塞直至连接成功reconnect int None 重连次数,None或0表示断线不自动重连,-1表示无限重连;重连一定次数后仍未连接成功,返回可raise的错误 reconnect_ivl float None 重连间隔时间,单位:秒 -
返回
如果初始化成功,返回
None
;如果初始化失败,返回可raise
的error
-
提示
- 参数spi既可以填入
AztHisQuoteSpi
类,也可以填入AztHisQuoteSpi()
类实例
- 参数spi既可以填入
6.2 Login - 登录
-
函数签名
def Login(self, account: str, passwd: str, timeout: float = None):
-
参数
参数 类型 默认值 说明 account str 无,必填 账户ID passwd str 无,必填 账户密码 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
返回
HisQuoteLoginRsp
信息;若超时无响应则返回None
-
示例
import AztClient as ac # 导入客户端库 # 1 获取账户ID和密码并填入 ------------------------------------------------------ account = "xxxx" # 账户ID passwd = "xxxx" # 账户密码 # 2 初始化Api ------------------------------------------------------------------- myapi = ac.AztHisQuoteApi() # 实例化Api start_error = myapi.Start(ip="127.0.0.1", port=1234) # 初始化Api if start_error: # 如果初始化失败,报错 raise start_error # 3 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") myapi.info("登录结果:", ret_login)
6.3 Logout - 退出登录
-
函数签名
def Logout(self)
-
提示
- 只有在登录之后才需要也才能退出登录
6.4 GetTradingCalendar - 查询交易日历
-
函数签名
def GetTradingCalendar(self, market: str, year: int = None, sync: bool = False, timeout: float = None)
-
参数
参数 类型 默认值 说明 market str 无,必填 市场代码 year int None 年份 sync bool False 是否开启同步模式 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
当
sync=True
且在超时前得到响应时,返回TradingCalendar
信息,其余情况返回None
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询交易日历,设置5秒超时 ---------------------------------------------------- ret_trading_calendar = myapi.GetTradingCalendar("SHSE", sync=True, timeout=5) if ret_trading_calendar is None: # 如果失败,直接报错终止程序 raise Exception("服务器未响应!") myapi.info("查询回复:", ret_trading_calendar)
6.5 GetNextTradingDate - 查询下一个交易日
-
函数签名
def GetNextTradingDate(self, market: str, trading_date: datetime.datetime, direction: bool = True, sync: bool = False, timeout: float = None)
-
参数
参数 类型 默认值 说明 market str 无,必填 市场代码 trading_date datetime.datetime 无,必填 当前交易日历 direction bool True 方向, True
为查询下一个交易日,False
为查询上一个交易日sync bool False 是否开启同步模式 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
当
sync=True
且在超时前得到响应时,返回TradingDate
信息,其余情况返回None
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询下个交易日,设置5秒超时 ---------------------------------------------------- ret_trading_date = myapi.GetNextTradingDate("SHSE", datetime.datetime(2022, 9, 18), sync=True, timeout=5) if ret_trading_date is None: # 如果失败,直接报错终止程序 raise Exception("服务器未响应!") myapi.info("查询回复:", ret_trading_date)
6.6 QueryHisTicks - 查询历史Tick行情
-
函数签名
QueryHisTicks(self, market: str, code: str, start_time: datetime.datetime, end_time: datetime.datetime, num: int = None, adjust: int = None, adjust_time: datetime.datetime = None, sync: bool = False, timeout: float = None)
-
参数
参数 类型 默认值 说明 market str 无,必填 交易所代码 code str 无,必填 标的代码 start_time datetime.datetime 无,必填 开始时间 end_time datetime.datetime 无,必填 结束时间 num int None 查询限制数量,取值范围 (0,24000)
adjust int None 复权方式,具体含义与取值参见 EAdjust
adjust_time datetime.datetime None 复权基点时间,默认当前时间 sync bool False 是否开启同步模式 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
当
sync=True
且在超时前得到响应时,返回HisQuoteTicksMsg
信息,其余情况返回None
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询Tick行情,设置5秒超时 ---------------------------------------------------- ret_ticks = myapi.QueryHisTicks("SHSE", "600000", start_time=datetime.datetime(2022, 9, 20, 9, 30, 0), end_time=datetime.datetime(2022, 9, 20, 9, 30, 0), sync=True, timeout=5) if ret_ticks is None: # 如果失败,直接报错终止程序 raise Exception("服务器未响应!") myapi.info("查询回复:", ret_ticks)
6.7 QueryHisBars - 查询历史Bar行情
-
函数签名
QueryHisBars(self, market: str, code: str, period: int, start_time: datetime.datetime, end_time: datetime.datetime, num: int = None, adjust: int = None, adjust_time: datetime.datetime = None, sync: bool = False, timeout: float = None)
-
参数
参数 类型 默认值 说明 market str 无,必填 交易所代码 code str 无,必填 标的代码 period int 无,必填 行情粒度,具体含义与取值参见枚举常量 EPeriod
start_time datetime.datetime 无,必填 开始时间 end_time datetime.datetime 无,必填 结束时间 num int None 查询限制数量,取值范围 (0,24000)
adjust int None 复权方式,具体含义与取值参见 EAdjust
adjust_time datetime.datetime None 复权基点时间,默认当前时间 sync bool False 是否开启同步模式 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
当
sync=True
且在超时前得到响应时,返回HisQuoteBarsMsg
信息,其余情况返回None
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询Bar行情,设置5秒超时 ---------------------------------------------------- ret_bars = myapi.QueryHisBars("SHSE", "600000", ac.KPeriod_DAILY, start_time=datetime.datetime(2022, 1, 1), end_time=datetime.datetime(2022, 9, 20), sync=True, timeout=5) if ret_bars is None: # 如果失败,直接报错终止程序 raise Exception("服务器未响应!") myapi.info("查询回复:", ret_bars)
6.8 QueryFundamentalData - 查询基本面历史数据
-
函数签名
def GetFundamentals(self, fundamentals_type: int, market: str, code: str, start_date: datetime.datetime = None, end_date: datetime.datetime = None, fileds: str = None, sync: bool = False, timeout: float = None)
-
参数
参数 类型 默认值 说明 fundamentals_type int 无,必填 基本面数据类型,具体含义与取值参见枚举常量 EFundamentalsType
market str 无,必填 交易所代码 code str 无,必填 标的代码 start_date datetime.datetime None 开始时间 end_date datetime.datetime None 结束时间 fileds list[str]或str None 查询字段列表,类型为列表,或为以 ","
分隔的字符串。默认查询所有字段,可查询字段参见附录2
sync bool False 是否开启同步模式 timeout float None 同步模式时超时时间,超时返回 None
,单位:秒 -
返回
当
sync=True
且在超时前得到响应时,返回FundamentalsDatas
信息,其余情况返回None
-
示例
import AztClient as ac # 导入客户端库 ...... # 登录Api,设置5秒超时 --------------------------------------------------------- ret_login = myapi.Login(account, passwd, timeout=5) if ret_login is None: # 如果登陆失败,直接报错终止程序 raise Exception("服务器未响应!") # 查询基本面数据,设置5秒超时 -------------------------------------------------- ret_fundamentals = myapi.GetFundamentals(ac.KFundamentalsType_TradingDerivative, "SHSE", "600000", sync=True, timeout=5, start_date=datetime.datetime(2016, 1, 1), end_date=datetime.datetime(2022, 11, 8)) if ret_fundamentals is None: # 如果失败,直接报错终止程序 raise Exception("服务器未响应!") myapi.info("查询回复:", ret_fundamentals)
7 附录
7.1 附录1 - Spi介绍
7.1.1 Spi使用说明
用户可以根据需要有选择地实现Spi中的函数,但用户须知:
-
Spi专为异步模式设计
当Api设置
sync=False
时,用户必须继承实现Spi中相应的响应函数,否则无法接收服务端返回的消息和数据 -
同步模式同样可用
当Api设置同步模式(即当
sync=True
)时,响应结果在直接通过Api函数返回的同时也会通过已实现的Spi函数返回。因此如果用户在使用同步模式时同时实现了相应的Spi函数,响应消息会返回两次 -
自动引用Api
Spi实例对象都会自动引用所属的Api对象,用户可以通过Spi的
api
属性来访问Api对象 -
处理Api错误
用户可以通过实现Spi中的
onError
函数接收Api在运行过程中的所有错误,如连接中断错误等,用户也可以在连接中断后再次调用Start
函数尝试重新连接服务端 -
自动重连成功回报
如果用户在调用
Start
函数时设置了自动重连,当客户端与服务端连接中断但自动重连成功后(若用户已登录,则同时自动重新登录),Spi的onReconnected函数会被调用,用户可以在此函数中重新执行一些如行情订阅等需要服务端异步返回消息的操作
7.1.2 AztTradeSpi
class AztTradeSpi:
# 账户入金回报,msg为AccDepositAck实例
def onDepositAsset(self, msg):
pass
# 查询账户信息回报,msg为TradeRegisterInfo实例
def onQueryAccountInfo(self, msg):
pass
# 查询账户资产信息回报,msg为AccMargin实例
def onQueryAsset(self, msg):
pass
# 查询委托订单信息回报,msg为QueryOrdersAck实例
def onQueryOrders(self, msg):
pass
# 查询成交信息回报,msg为QueryTradesAck实例
def onQueryTrades(self, msg):
pass
# 查询持仓信息回报,msg为QueryPositionsAck实例
def onQueryPositions(self, msg):
pass
# 查询历史委托信息回报,msg为QueryOrdersAck实例
def onQueryHistoryOrders(self, msg):
pass
# 查询历史成交信息回报,msg为QueryTradesAck实例
def onQueryHistoryTrades(self, msg):
pass
# 委托执行回报,msg为OrdReport实例
def onOrderReport(self, msg):
pass
# 委托成交回报,msg为TradeReport实例
def onTradeReport(self, msg):
pass
# 撤单失败回报,msg为CancelOrderReject实例
def onCancelOrderReject(self, msg):
pass
# 查询账户历史资产信息回报,msg为QryHisAccAck实例
def onQueryHistoryAsset(self, msg):
pass
# 查询历史入金信息回报,msg为QryHisDepositAck实例
def onQueryHistoryDeposit(self, msg):
pass
# 连接中断回报,一旦被调用,则说明客户端与服务端的连接中断了
def onError(self, err):
pass
# 断线自动重连成功
def onReconnected(self):
pass
7.1.3 AztQuoteSpi
class AztQuoteSpi:
# 订阅行情回报,msg为QuoteRegisterRsp实例
def onSubscribe(self, msg):
pass
# 取消订阅行情回报,msg为QuoteRegisterRsp实例
def onUnsubscribe(self, msg):
pass
# 查询行情回报,msg为QuoteMsg实例
def onQueryQuote(self, msg):
pass
# 行情推送,msg为QuoteMsg实例
def onQuoteData(self, msg):
pass
# 错误回报,err为可rasie的Exception错误
def onError(self, err):
pass
# 断线自动重连成功
def onReconnected(self):
pass
7.1.4 AztHisQuoteSpi
class AztHisQuoteSpi:
# 查询Tick行情回报,msg为HisQuoteTicksMsg实例
def onQueryHisTicks(self, msg):
pass
# 查询Bar行情回报,msg为HisQuoteBarsMsg实例
def onQueryHisBars(self, msg):
pass
# 查询交易日历回报,msg为TradingCalendar实例
def onGetTradingCalendar(self, msg):
pass
# 查询下个交易日回报,msg为TradingDate实例
def onGetNextTradingDate(self, msg):
pass
# 查询基本面数据回报,msg为FundamentalsDatas实例
def onGetFundamentals(self, msg):
pass
# 连接中断回报,err为可raise的Exception错误
def onError(self, err):
pass
# 断线自动重连成功
def onReconnected(self):
pass
7.2 附录2 - 基本面数据参考字段
7.2.1 股票交易衍生表
-
枚举类型:
KFundamentalsType_TradingDerivative
-
字段
字段 意义 单位 dy 股息率(滚动12月-按证监会口径) % ev 企业价值EV(=股权价值+债权价值) 元 evebitda 企业价值/税息折旧摊销前利润 倍 evps 每股企业价值 元 flow_share 流通股本 股 lydy 股息率(滚动12月-财汇口径) % negotiablemv 流通市值 元 pb 市净率(PB) 倍 pclfy 市现率LFY 倍 pcttm 市现率TTM 倍 pelfy 市盈率LFY 倍 pelfynpaaei 市盈率LFY扣除非经常性损益 倍 pemrq 市盈率MRQ 倍 pemrqnpaaei 市盈率MRQ扣除非经常性损益 倍 pettm 市盈率TTM 倍 pettmnpaaei 市盈率TTM扣除非经常性损益 倍 pslfy 市销率LFY 倍 psmrq 市销率MRQ 倍 psttm 市销率TTM 倍 tclose 收盘价 元 total_share 总股本 股 totmktcap 总市值 元 turnrate 当日换手率 %
7.2.2 资产负债表
-
枚举类型:
KFundamentalsType_BalanceSheet
-
字段
字段 意义 单位 accheldfors 划分为持有待售的资产 元 accopaya 应付账款 元 accorece 应收账款 元 accrexpe 预提费用 元 accudepr 累计折旧 元 actitradsecu 代理买卖证券款 元 actiundesecu 代理承销证券款 元 advapaym 预收款项 元 avaisellasse 可供出售金融资产 元 bdspaya 应付债券 元 bdspayaperbond 应付债券:永续债 元 bdspayaprest 应付债券:优先股 元 capisurp 资本公积 元 cenbankborr 向中央银行借款 元 comasse 公益性生物资产 元 consprog 在建工程 元 copepoun 应付手续费及佣金 元 copewithreinrece 应付分保账款 元 copeworkersal 应付职工薪酬 元 curfds 货币资金 元 curtrandiff 外币报表折算差额 元 defeincotaxliab 递延所得税负债 元 defereve 一年内的递延收益 元 defetaxasset 递延所得税资产 元 deposit 吸收存款及同业存放 元 derifinaasset 衍生金融资产 元 deriliab 衍生金融负债 元 deveexpe 开发支出 元 dividrece 应收股利 元 divipaya 应付股利 元 dometicksett 国内票证结算 元 duenoncliab 一年内到期的非流动负债 元 engimate 工程物资 元 equiinve 长期股权投资 元 expecurrliab 预计流动负债 元 expenoncliab 预计非流动负债 元 expinoncurrasset 一年内到期的非流动资产 元 expotaxrebarece 应收出口退税 元 fdsborr 拆入资金 元 fixedasseclea 固定资产清理 元 fixedasseimmo 固定资产原值 元 fixedasseimpa 固定资产减值准备 元 fixedassenet 固定资产净额 元 fixedassenetw 固定资产净值 元 generiskrese 一般风险准备 元 goodwill 商誉 元 holdinvedue 持有至到期投资 元 hydrasset 油气资产 元 insucontrese 保险合同准备金 元 intaasset 无形资产 元 intelpay 内部应付款 元 intelrece 内部应收款 元 intepaya 应付利息 元 interece 应收利息 元 inteticksett 国际票证结算 元 inve 存货 元 inveprop 投资性房地产 元 lcopeworkersal 长期应付职工薪酬 元 lendandloan 发放贷款及垫款 元 liabheldfors 划分为持有待售的负债 元 logprepexpe 长期待摊费用 元 longborr 长期借款 元 longdefeinco 长期递延收益 元 longpaya 长期应付款 元 longrece 长期应收款 元 margrece 应收保证金 元 margrequ 应付保证金 元 minysharrigh 少数股东权益 元 notespaya 应付票据 元 notesrece 应收票据 元 ocl 其他综合收益 元 othequin 其他权益工具 元 othercurrasse 其他流动资产 元 othercurreliabi 其他流动负债 元 otherfeepaya 其他应交款 元 otherlonginve 其他长期投资 元 othernoncasse 其他非流动资产 元 othernoncliabi 其他非流动负债 元 otherpay 其他应付款 元 otherrece 其他应收款 元 paidincapi 实收资本(或股本) 元 paresharrigh 归属于母公司股东权益合计 元 perbond 永续债 元 plac 拆出资金 元 premrece 应收保费 元 prep 预付款项 元 prepexpe 待摊费用 元 prest 优先股 元 prodasse 生产性生物资产 元 purcresaasset 买入返售金融资产 元 reincontrese 应收分保合同准备金 元 reinrece 应收分保账款 元 rese 盈余公积 元 righaggr 所有者权益(或股东权益)合计 元 sellrepasse 卖出回购金融资产款 元 settresedepo 结算备付金 元 sformatcurrasse 特殊格式_流动资产 元 sformatcurreliabi 特殊格式_流动负债 元 sformatnoncasse 特殊格式_非流动资产 元 sformatnoncliab 特殊格式_长期负债 元 sformatparesharrigh 特殊格式_归属母公司股东权益 元 sformatrighaggr 特殊格式_含少数股权股东权益 元 sformattotasset 特殊格式_总资产 元 sformattotliab 特殊格式_负债合计 元 sformattotliabsharequi 特殊格式_负债及权益 元 shorttermbdspaya 应付短期债券 元 shorttermborr 短期借款 元 smergercurrasse 特殊归并_流动资产 元 smergercurreliabi 特殊归并_流动负债 元 smergernoncasse 特殊归并_非流动资产 元 smergernoncliab 特殊归并_长期负债 元 smergerparesharrigh 特殊归并_归属母公司股东权益 元 smergerrighaggr 特殊归并_含少数股权股东权益 元 smergertotasset 特殊归并_总资产 元 smergertotliab 特殊归并_负债合计 元 smergertotliabsharequi 特殊归并_负债及权益 元 specpaya 专项应付款 元 specrese 专项储备 元 subsrece 应收补贴款 元 sunevenassetliabeuqi 特殊不平_资产与负债权益 元 sunevencurrasse 特殊不平_流动资产 元 sunevencurreliabi 特殊不平_流动负债 元 sunevennoncasse 特殊不平_非流动资产 元 sunevennoncliab 特殊不平_长期负债 元 sunevenparesharrigh 特殊不平_归属母公司股东权益 元 sunevenrighaggr 特殊不平_含少数股权股东权益 元 suneventotasset 特殊不平_总资产 元 suneventotliab 特殊不平_负债合计 元 suneventotliabsharequi 特殊不平_负债及权益 元 taxespaya 应交税费 元 topaycashdivi 拟分配现金股利 元 totalcurrliab 流动负债合计 元 totalnoncassets 非流动资产合计 元 totalnoncliab 非流动负债合计 元 totasset 资产总计 元 totcurrasset 流动资产合计 元 totliab 负债合计 元 totliabsharequi 负债和所有者权益(或股东权益)总计 元 tradfinasset 交易性金融资产 元 tradfinliab 交易性金融负债 元 tradshartrad 股权分置流通权 元 treastk 减:库存股 元 undiprof 未分配利润 元 unreinveloss 未确定的投资损失 元 unseg 待处理流动资产损益 元 warliabrese 担保责任赔偿准备金 元
7.2.3 现金流量表
-
枚举类型:
KFundamentalsType_Cashflow
-
字段
字段 意义 单位 accrexpeincr 预提费用的增加 元 acquassetcash 购建固定资产,无形资产和其他长期资产所支付的现金 元 assedepr 固定资产折旧,油气资产折耗,生产性物资折旧 元 asseimpa 资产减值准备 元 bankloannetincr 向中央银行借款净增加额 元 bizcashinfl 经营活动现金流入小计 元 bizcashoutf 经营活动现金流出小计 元 biznetcflow 经营活动产生现金流量净额 元 cashfinalbala 现金的期末余额 元 cashneti 现金及现金等价物的净增加额 元 cashnetr 五,现金及现金等价物净增加额 元 cashopenbala 现金的期初余额 元 charintecash 收取利息,手续费及佣金的现金 元 chgexchgchgs 四,汇率变动对现金及现金等价物的影响 元 debtintocapi 债务转为资本 元 debtpaycash 偿还债务支付的现金 元 defeincoincr 递延收益增加(减:减少) 元 defetaxassetdecr 递延所得税资产减少 元 defetaxliabincr 递延所得税负债增加 元 deponetr 客户存款和同业存放款项净增加额 元 dispfixedassetloss 处置固定资产,无形资产和其他长期资产的损失 元 disptradnetincr 处置交易性金融资产净增加额 元 diviprofpaycash 分配股利,利润或偿付利息所支付的现金 元 equfinalbala 现金等价物的期末余额 元 equopenbala 现金等价物的期初余额 元 estidebts 预计负债 元 expiconvbd 一年内到期的可转换公司债券 元 fdsborrnetr 拆入资金净增加额 元 finalcashbala 六,期末现金及现金等价物余额 元 fincashinfl 筹资活动现金流入小计 元 fincashoutf 筹资活动现金流出小计 元 finexpe 财务费用 元 finfixedasset 融资租入固定资产 元 fininstnetr 向其他金融机构拆入资金净增加额 元 finnetcflow 三,筹资活动产生的现金流量净额 元 finrelacash 支付其他与筹资活动有关的现金 元 fixedassescraloss 固定资产报废损失 元 fixedassetnetc 处置固定资产,无形资产和其他长期资产所收回的现金净额 元 incrcashpled 增加质押和定期存款所支付的现金 元 inicashbala 期初现金及现金等价物余额 元 insnetc 收到再保险业务现金净额 元 inspremcash 收到原保险合同保费取得的现金 元 intaasseamor 无形资产摊销 元 invcashinfl 投资活动现金流入小计 元 invcashoutf 投资活动现金流出小计 元 inveloss 投资损失 元 inveredu 存货的减少 元 inveretugetcash 取得投资收益收到的现金 元 invnetcashflow 二,投资活动产生的现金流量净额 元 invpayc 投资所支付的现金 元 invrececash 吸收投资收到的现金 元 issbdrececash 发行债券收到的现金 元 labopayc 购买商品,接受劳务支付的现金 元 laborgetcash 销售商品,提供劳务收到的现金 元 loannetr 质押贷款净增加额 元 loansnetr 客户贷款及垫款净增加额 元 longdefeexpenamor 长期待摊费用摊销 元 mananetr 一,经营活动产生的现金流量净额 元 minysharrigh 少数股东权益 元 netprofit 净利润 元 other 其他 元 payacticash 支付的其他与经营活动有关的现金 元 payaincr 经营性应付项目的增加 元 paycompgold 支付原保险合同赔付款项的现金 元 paydivicash 支付保单红利的现金 元 payintecash 支付利息,手续费及佣金的现金 元 payinvecash 支付的其他与投资活动有关的现金 元 paytax 支付的各项税费 元 payworkcash 支付给职工以及为职工支付的现金 元 prepexpedecr 待摊费用的减少 元 realestadep 投资性房地产折旧,摊销 元 recefincash 收到其他与筹资活动有关的现金 元 recefromloan 取得借款收到的现金 元 receinvcash 收到的其他与投资活动有关的现金 元 receotherbizcash 收到的其他与经营活动有关的现金 元 receredu 经营性应收项目的减少 元 reducashpled 减少质押和定期存款所收到的现金 元 repnetincr 回购业务资金净增加额 元 savinetr 保户储金及投资款净增加额 元 sformatbizcashinfl 特殊格式_经营流入 元 sformatbizcashoutf 特殊格式_经营流出 元 sformatbiznetcflow 特殊格式_经营净额附表 元 sformatcashneti 特殊格式_现金净额附表 元 sformatcashnetr 特殊格式_现金净额 元 sformatfinalcashbala 特殊格式_现金期末 元 sformatfincashinfl 特殊格式_筹资流入 元 sformatfincashoutf 特殊格式_筹资流出 元 sformatinvcashinfl 特殊格式_投资流入 元 sformatinvcashoutf 特殊格式_投资流出 元 sformatmananetr 特殊格式_经营净额 元 smergerbizcashinfl 特殊归并_经营流入 元 smergerbizcashoutf 特殊归并_经营流出 元 smergerbiznetcflow 特殊归并_经营净额附表 元 smergercashneti 特殊归并_现金净额附表 元 smergercashnetr 特殊归并_现金净额 元 smergerfinalcashbala 特殊归并_现金期末 元 smergerfincashinfl 特殊归并_筹资流入 元 smergerfincashoutf 特殊归并_筹资流出 元 smergerfinnetcflow 特殊归并_筹资净额 元 smergerinvcashinfl 特殊归并_投资流入 元 smergerinvcashoutf 特殊归并_投资流出 元 smergerinvnetcashflow 特殊归并_投资净额 元 smergermananetr 特殊归并_经营净额 元 subsnetc 处置子公司及其他营业单位收到的现金净额 元 subspaydivid 其中:子公司支付给少数股东的股利,利润 元 subspaynetcash 取得子公司及其他营业单位支付的现金净额 元 subsrececash 其中:子公司吸收少数股东投资收到的现金 元 sunevenbizcashinfl 特殊不平_经营流入 元 sunevenbizcashoutf 特殊不平_经营流出 元 sunevenbiznetcflow 特殊不平_经营净额附表 元 sunevencashneti 特殊不平_现金净额附表 元 sunevencashnetims 特殊不平_现金净额主附表 元 sunevencashnetr 特殊不平_现金净额 元 sunevenfinalcashbala 特殊不平_现金期末 元 sunevenfincashinfl 特殊不平_筹资流入 元 sunevenfincashoutf 特殊不平_筹资流出 元 sunevenfinnetcflow 特殊不平_筹资净额 元 suneveninvcashinfl 特殊不平_投资流入 元 suneveninvcashoutf 特殊不平_投资流出 元 suneveninvnetcashflow 特殊不平_投资净额 元 sunevenmananetr 特殊不平_经营净额 元 sunevenmananetrms 特殊不平_经营净额主附表 元 taxrefd 收到的税费返还 元 tradepaymnetr 存放中央银行和同业款项净增加额 元 unfiparachg 已结算尚未完工款的增加(减:减少) 元 unreinveloss 未确认的投资损失 元 unseparachg 已完工尚未结算款的减少(减:增加) 元 valuechgloss 公允价值变动损失 元 withinvgetcash 收回投资所收到的现金 元
7.2.4 利润表
-
枚举类型:
KFundamentalsType_Income
-
字段
字段 意义 单位 asseimpaloss 资产减值损失 元 assoinveprof 其中:对联营企业和合营企业的投资收益 元 avaidistprof 可供分配的利润 元 avaidistshareprof 可供股东分配的利润 元 basiceps 基本每股收益 元 bizcost 营业成本 元 bizinco 营业收入 元 biztax 营业税金及附加 元 biztotcost 营业总成本 元 biztotinco 营业总收入 元 cinaforsfv 可供出售金融资产公允价值变动损益 元 cinalibofrbp 重新计量设定受益计划净负债或净资产的变动 元 comdivpaybable 应付普通股股利 元 compincoamt 综合收益总额 元 compnetexpe 赔付支出净额 元 contress 提取保险合同准备金净额 元 cpltohinco 以后将重分类进损益的其他综合收益 元 custinco 托管收益 元 deveexpe 研发费用 元 dilutedeps 稀释每股收益 元 earlyundiprof 年初未分配利润 元 earnprem 已赚保费 元 epocfhgl 现金流量套期损益的有效部分 元 equmcpothinco 权益法下在被投资单位不能重分类进损益的其他综 元 euqmicolothinco 权益法下在被投资单位以后将重分类进损益的其他 元 exchggain 汇兑收益 元 extrarbirese 提取任意盈余公积 元 extstafffund 提取职工奖福基金 元 finexpe 财务费用 元 futuloss 期货损益 元 htmccinaforsfv 持有至到期投资重分类为可供出售金融资产损益 元 incotaxexpe 所得税费用 元 inteexpe 利息支出 元 inteinco 利息收入 元 inveinco 投资收益 元 legalsurp 提取法定盈余公积 元 mainbizcost 主营业务成本 元 mainbizinco 主营业务收入 元 manaexpe 管理费用 元 mergeformnetprof 被合并方在合并前实现净利润 元 minysharinco 归属于少数股东的其他综合收益 元 minysharincoamt 归属于少数股东的综合收益总额 元 minysharrigh 少数股东损益 元 ncpothinco 以后不能重分类进损益的其他综合收益 元 netprofit 净利润 元 noncassetsdisi 非流动资产处置利得 元 noncassetsdisl 非流动资产处置损失 元 nonoexpe 营业外支出 元 nonoreve 营业外收入 元 otherbizcost 其他业务成本 元 otherbizinco 其他业务收入 元 otherbizprof 其他业务利润 元 othercompinco 其他综合收益 元 otherreasadju 其他因素调整 元 parecompinco 归属于母公司所有者的其他综合收益 元 parecompincoamt 归属于母公司所有者的综合收益总额 元 parenetp 归属于母公司所有者的净利润 元 perprofit 营业利润 元 pextccapifd 提取资本公积金 元 pextcdevefd 提取企业发展基金 元 polidiviexpe 保单红利支出 元 pounexpe 手续费及佣金支出 元 pouninco 手续费及佣金收入 元 pprofretuinve 利润归还投资 元 prefstockdivi 应付优先股股利 元 psuppflowcapi 补充流动资本 元 realsale 房地产销售收入 元 realsalecost 房地产销售成本 元 reinexpe 分保费用 元 rundisprobyrregcap 减少注册资本减少的未分配利润 元 salesexpe 销售费用 元 sformatavaidistprof 特殊格式_可分配利润 元 sformatavaidistshareprof 特殊格式_可供股东分配利润 元 sformatbiztotcost 特殊格式_营业总成本 元 sformatbiztotinco 特殊格式_营业总收入 元 sformatnetprofit 特殊格式_税后净利润 元 sformatnetprofitsub 特殊格式_净利润子项 元 sformatperprofit 特殊格式_营业利润 元 sformattotprofit 特殊格式_利润总额 元 sformatundiprof 特殊格式_未分配利润 元 smergeravaidistprof 特殊归并_可分配利润 元 smergeravaidistshareprof 特殊归并_可供股东分配利润 元 smergerbiztotcost 特殊归并_营业总成本 元 smergerbiztotinco 特殊归并_营业总收入 元 smergercompincoamtsub 特殊归并_综合收益总额子项 元 smergernetprofit 特殊归并_税后净利润 元 smergernetprofitsub 特殊归并_净利润子项 元 smergerperprofit 特殊归并_营业利润 元 smergertotprofit 特殊归并_利润总额 元 smergerundiprof 特殊归并_未分配利润 元 statextrundi 提取法定公益金 元 subsidyincome 补贴收入 元 sunevenavaidistprof 特殊不平_可分配利润 元 sunevenavaidistshareprof 特殊不平_可供股东分配利润 元 sunevenbiztotcost 特殊不平_营业总成本 元 sunevenbiztotinco 特殊不平_营业总收入 元 sunevencompincoamt 特殊不平_综合收益总额 元 sunevencompincoamtsub 特殊不平_综合收益总额子项 元 sunevennetprofit 特殊不平_税后净利润 元 sunevennetprofitsub 特殊不平_净利润子项 元 sunevenothcompincoamt 特殊不平_其他综合收益 元 sunevenperprofit 特殊不平_营业利润 元 suneventotprofit 特殊不平_利润总额 元 sunevenundiprof 特殊不平_未分配利润 元 surrgold 退保金 元 tdiffforcur 外币财务报表折算差额 元 totprofit 利润总额 元 trustloss 提取储备基金 元 turncapsdivi 转作资本股本的普通股股利 元 undiprof 未分配利润 元 unreinveloss 未确认投资损失 元 valuechgloss 公允价值变动收益 元 othercpltohinco 其他 元
7.2.5 主要财务指标
-
枚举类型:
KFundamentalsType_Prim
-
字段
字段 意义 单位 ebit ebit 元 ebitda ebitda 元 ebitdascover ebitda利息保障倍数 倍 ebitscover ebit利息保障倍数 倍 epsbasic (一)基本每股收益 元 epsbasicepscut 扣除非经常性损益后的基本每股收益 元 epsdiluted 每股收益_摊薄 元 epsdilutedcut 每股收益_扣除摊薄 元 epsfulldiluted (二)稀释每股收益 元 epsfulldilutedcut 扣除非经常性损益后的稀释每股收益 元 epsweighted 每股收益_加权 元 epsweightedcut 每股收益_扣除加权 元 npcut 扣除非经常性损益的净利润 元 opncfps 每股经营活动产生的现金流量净额 元 roediluted 净资产收益率_摊薄 % roedilutedcut 净资产收益率_扣除摊薄 % roeweighted 净资产收益率_加权 % roeweightedcut 净资产收益率_扣除加权 %
7.2.6 衍生财务指标
-
枚举类型:
KFundamentalsType_Deriv
-
字段
字段 意义 单位 accdeprt 累计折旧率 % accpayrt 应付账款周转率 次 accpaytdays 应付账款周转天数 天 accrecgturndays 应收账款周转天数 天 accrecgturnrt 应收账款周转率 次 assliabrt 资产负债率 % capextodepandamor 资本性支出/折旧与摊销 倍 capimortconms 资本固定化比率(含少数股权的净资产) % capprort 资本金利润率 % cashconvcycle 现金周期 天 cashopindex 现金运营指数 倍 cashrt 现金比率 % compdeprt 综合折旧率 % consvatquickrt 保守速动比率 % crps 每股资本公积金 元 curassturndays 流动资产周转天数 天 curassturnrt 流动资产周转率 次 curliabtoltmliabrt 负债结构比率 % currentrt 流动比率 倍 dps 每股普通股股利 元 ebit 息税前利润 元 ebitda 息税折旧摊销前利润 元 ebitdamargin 息税折旧摊销前利润率 % ebitdaps 每股息税折旧摊销前利润_期末股数 元 ebitdascover ebitda利息保障倍数 倍 ebitdatotdebt 息税折旧摊销前利润/负债合计 倍 ebitmargin 息税前利润率 % ebitps 每股息税前利润 元 ebitscover 已获利息倍数 倍 ebittotopi 息税前利润/营业总收入 倍 em 权益乘数 倍 emconms 权益乘数(含少数股权的净资产) 倍 epsdiluted 摊薄每股收益_期末股数 元 epsdilutedcut 摊薄每股收益期末股数扣除非经常损益 元 epsdilutednewp 摊薄每股收益_最新股数 元 epsdilutedop 摊薄每股收益(营业利润) 元 equconms 含少数股权的净资产 元 equrt 产权比率 % equtofa 归属母公司的净资产/固定资产 倍 equtoic 归属母公司净的资产/归属母公司的投入资本 倍 equtoicconms 归属母公司的净资产/含少数股权的投入资本 倍 equtotdebt 归属母公司的净资产/总债务 倍 equtotliab 归属母公司的净资产/负债合计 倍 equturnrt 股东权益周转率 次 equturnrtconms 股东权益周转率(含少数股权权益) 次 faproportion 固定资产比重 % faprort 固定资产利润率 % faturndays 固定资产周转天数 天 faturnrt 固定资产周转率 次 fcfe 股东自由现金流量 元 fcfeps 每股股东自由现金流量 元 fcff 企业自由现金流量 元 fcffps 每股企业自由现金流量 元 finlexprt 财务费用率 % incotaxtotp 所得税/利润总额 倍 intcashrevrt 投资收益收现率 % intexpconcapint 利息支出_包含资本化利息 元 intexpcutcapint 利息支出_扣除资本化利息 元 invtocurassrt 存货资产构成率 % invturndays 存货周转天数 天 invturnrt 存货周转率 次 liqdvaluert 清算价值比率1 % loanlossrestotloanrt 贷款损失准备金/贷款总额 % ltmassrt 长期资产适合率 % ltmdebt 长期债务 元 ltmdebttoworkcap 长期债务/营运资金 倍 ltmliabtoequ 长期负债/归属母公司的净资产 倍 ltmliabtoopcap 长期负债与营运资本比率 % ltmliabtota 长期负债/总资产 倍 ltmliabtotaconms 资本化比率_含少数股权的净资产 % mgtexprt 管理费用率 % naps 摊薄每股净资产_期末股数 元 napsadj 调整后每股净资产_期末股数 元 napsnewp 每股净资产_最新股数 元 ncfps 每股现金流量净额 元 ndebt 净债务 元 ndebttoequ 净债务/归属母公司的净资产 倍 nfart 固定资产净值率 % nitocurass 流动资产利润率 % nnonopitotp 营业外收支净额/利润总额 倍 nonintcurliabs 无息流动负债 元 nonintnoncurliab 无息非流动负债 元 nopcapturnrt 净营运资本周转率 次 nopi 经营活动净收益 元 npconmstoavgta 总资产净利率_平均(含少数股东损益的净利润) % npconmstotp 含少数股东损益的净利润/利润总额 倍 npcut 扣除非经常性损益后的净利润 元 npcuttonp 扣除非经常性损益后的净利润/归属母公司的净利润 倍 npgrt 归属母公司净利润增长率 % nptoavgta 总资产净利率_平均 % nptonoconms 归属母公司股东的净利润/含少数股东损益的净利润 倍 nptotp 归属母公司的净利润/利润总额 倍 ntanga 有形资产净值 元 ntangasstondebt 有形资产净值/净债务 倍 ntangasstotdebt 有形资产净值/总债务 倍 ntangasstotliab 有形资产净值/负债合计 倍 nvalchgit 价值变动净收益 元 nvalchgitotp 价值变动净收益/利润总额 倍 opancftoopni 经营活动产生的现金流量净额/经营活动净收益 倍 opanitotp 经营活动净收益/利润总额 % opcaptotart 营运资本对总资产比率 % opcycle 营业周期 天 opexprt 营业费用率 % opgpmargin 营业毛利润 元 opicftoticf 经营活动现金流入占现金流入总量比率 % opncfps 每股经营活动产生的现金流量净额 元 opncfshtinvetoshtdebt (经营活动净现金+短期投资)/短期债务 倍 opncftocapex 经营性现金流量对资本性支出比率 % opncftodepandamor 经营活动净现金/折旧与摊销 倍 opncftointexp 经营活动净现金/利息支出 倍 opncftoltmliab 经营活动净现金/长期负债 倍 opncftondabt 经营活动净现金/净债务 倍 opncftonp 经营活动净现金/归属母公司的净利润 倍 opncftonpconms 经营活动净现金/含少数股东损益的净利润 倍 opncftooppro 经营活动净现金/营业利润 倍 opncftoopti 经营性现金净流量/营业总收入 倍 opncftoshtdebt 经营活动净现金/短期债务 倍 opncftosi 经营活动净现金/销售收入 倍 opncftota 经营活动净现金/总资产 倍 opncftotdebt 经营活动净现金/总债务 倍 opncftotliab 经营活动净现金/总负债 倍 opncftotncf 经营活动净现金/总净现金流量 倍 opprort 营业利润率 % opprototcrt 成本费用营业利润率 % opptotp 营业利润/利润总额 倍 oprevps 每股营业收入 元 oprevtocurass 流动资产营业利润率 % prototcrt 成本费用利润率 % quickrt 速动比率 倍 reps 每股留存收益 元 roa 总资产报酬率 % roaaannual 年化总资产净利率 % roaannual 年化总资产报酬率 % roeannual 年化净资产收益率 % roeavg 净资产收益率_平均 % roeavgcut 净资产收益率_平均(扣除非经常损益) % roebyminnpornpcut 净资产收益率扣除前后净利润孰低归属母公司 % roediluted 摊薄净资产收益率 % roedilutedcut 摊薄净资产收益率_扣除非经常损益 % roic 投入资本回报率 % rota 总资本回报率 % scashrevtoopirt 销售商品提供劳务收到的现金/营业收入 倍 scostrt 销售成本率 % sgpmargin 销售毛利率 % shtdebt 短期债务 元 shtliabtotliabrt 短期负债/负债总额 倍 snpmarginconms 销售净利率(含少数股权权益) % srps 每股盈余公积金 元 taavg 平均资产总额 元 tagrt 营业总收入增长率 % tangasstota 有形资产/总资产 倍 taturndays 总资产周转天数 天 taturnrt 总资产周转率 % tc 成本费用总额 元 tcap 总资本 元 tcexprt 成本费用率 % tdebt 总债务 元 tdebttofart 有形净值债务率 % tdebttoic 总债务/归属母公司的投入资本 倍 tdebttoicconms 总债务/含少数股权的投入资本 倍 tdtoebitda 总债务/ebitda 倍 toprevps 每股营业总收入 元 totic 投入资本 元 tptoebit 利润总额/息税前利润 倍 triexp 三项费用 元 triexprt 三项费用比重 % triexptotopi 三项费用占营业总收入比率 % upps 每股未分配利润 元 workcap 营运资金 元
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for AztClient-1.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42865000a4d56af6e08a2c570f03fbc028e40a9b23e68334a12e5d8cc5e838fb |
|
MD5 | 11fcf7de380a9b3e91e43c3670d320d1 |
|
BLAKE2b-256 | 7fef9d7cf8d2373c17fc11e2346fd34e792d7005e253c0b06b8477fcb6a27185 |