Skip to main content

AztQuant Server Python Client

Project description

1 安装SDK

  1. 版本说明

    • 在安装SDK之前,请确认已经正确安装3.7.0及以上版本Python环境,下载地址www.python.org,推荐参考Python3安装教程
    • 当前SDK版本:1.0.2
  2. 安装指令

    以Windows为例,打开可调用Python3的命令行终端,键入以下命令安装或更新SDK:

    pip install AztClient  # 安装指令
    pip install --upgrade AztClient # 更新指令
    
    # MacOS和Linux环境下可能需要使用"pip3"代替"pip"进行安装
    
  3. 指定安装源

    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官方源
      # 反之则会显示当前正在使用的镜像源
      
  4. 手动安装

    若无法通过pip命令安装最新版本SDK,也可以直接从开源地址中下载安装

    SDK开源地址:https://gitee.com/Qujamlee/azt-client

    • 方法1 - 直接拷贝源文件(需要安装git工具,推荐参考Git安装教程

      git clone https://gitee.com/Qujamlee/azt-client.git
      cd azt-client
      # 拷贝AztClient到需要使用的目录即可
      
    • 方法2 - 安装发行版(发行版下载

      # 首先要下载发行版(比如其名称为AztClient-1.0.0-py3-none-any.whl)
      # 下载完成后在发行版文件目录中打开终端,输入:
      pip install ./AztClient-1.0.0-py3-none-any.whl  # 安装
      

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时表示不设置
  • 提示

    1. 该方法建议在Api的Start方法前调用
    2. 如果logger=None,则默认使用Root日志对象
    3. 如果Root对象被禁用,则无法使用Api的日志记录功能,除非指定logger

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 连接超时时间(单位:秒),若超时后仍未成功连接服务,则返回可raiseerror;若未设置超时时间,则Start函数将会阻塞直至连接成功
    reconnect int None 重连次数,None或0表示断线不自动重连,-1表示无限重连;重连一定次数后仍未连接成功,返回可raise的错误
    reconnect_ivl float None 重连间隔时间,单位:秒
  • 返回

    如果初始化成功,返回None;如果初始化失败,返回可raiseerror

  • 提示

    • 用户只有在实现了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_idstrategy_check_code查询,也可以填写accountpasswd来查询
    • 查询账户信息不需要先登录

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参数,则查询指定交易所相关的成交信息
    • 只填写marketcode参数,则查询指定标的代码相关的成交信息
    • 只填写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)
    
  • 提示

    • 查询持仓信息必须先登录
    • 填写marketcode参数时,查询指定标的相关的持仓信息
    • 不填写以上参数时,查询当前登录账户所有的持仓信息

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)
    
  • 提示

    • 查询历史持仓信息必须先登录
    • 填写marketcode参数时,查询指定标的相关的持仓信息
    • 不填写以上参数时,查询当前登录账户所有的持仓信息

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)
    
  • 提示

    • 查询历史委托订单信息必须先登录
    • 填写marketcode参数时,查询指定标的相关的历史委托订单信息
    • 填写start_timeend_time时,查询指定时间段内的历史委托订单信息,与marketcode参数兼容
    • 不填写以上参数时,默认查询当前登录账户所有的历史委托订单信息

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)
    
  • 提示

    • 查询历史成交信息必须先登录
    • 填写marketcode参数时,查询指定标的相关的历史成交信息
    • 填写start_timeend_time时,查询指定时间段内的历史成交信息,与marketcode参数兼容
    • 不填写以上参数时,默认查询当前登录账户所有的历史成交信息

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参数,则为查询整个交易所的标的信息
    • 填写marketcode参数时,查询指定标的信息

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 连接超时时间(单位:秒),若超时后仍未成功连接服务,则返回可raiseerror;若未设置超时时间,则Start函数将会阻塞直至连接成功
    reconnect int None 重连次数,None或0表示断线不自动重连,-1表示无限重连;重连一定次数后仍未连接成功,返回可raise的错误
    reconnect_ivl float None 重连间隔时间,单位:秒
  • 返回

    如果初始化成功,返回None;如果初始化失败,返回可raiseerror

  • 提示

    • 用户需要自行实现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 连接超时时间(单位:秒),若超时后仍未成功连接服务,则返回可raiseerror;若未设置超时时间,则Start函数将会阻塞直至连接成功
    reconnect int None 重连次数,None或0表示断线不自动重连,-1表示无限重连;重连一定次数后仍未连接成功,返回可raise的错误
    reconnect_ivl float None 重连间隔时间,单位:秒
  • 返回

    如果初始化成功,返回None;如果初始化失败,返回可raiseerror

  • 提示

    • 参数spi既可以填入AztHisQuoteSpi类,也可以填入AztHisQuoteSpi()类实例

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中的函数,但用户须知:

  1. Spi专为异步模式设计

    当Api设置sync=False时,用户必须继承实现Spi中相应的响应函数,否则无法接收服务端返回的消息和数据

  2. 同步模式同样可用

    当Api设置同步模式(即当sync=True)时,响应结果在直接通过Api函数返回的同时也会通过已实现的Spi函数返回。因此如果用户在使用同步模式时同时实现了相应的Spi函数,响应消息会返回两次

  3. 自动引用Api

    Spi实例对象都会自动引用所属的Api对象,用户可以通过Spi的api属性来访问Api对象

  4. 处理Api错误

    用户可以通过实现Spi中的onError函数接收Api在运行过程中的所有错误,如连接中断错误等,用户也可以在连接中断后再次调用Start函数尝试重新连接服务端

  5. 自动重连成功回报

    如果用户在调用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

AztClient-1.0.4.tar.gz (170.5 kB view hashes)

Uploaded Source

Built Distribution

AztClient-1.0.4-py3-none-any.whl (162.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page