AztClient


NameAztClient JSON
Version 1.0.3 PyPI version JSON
download
home_page
SummaryAztQuant Server Python Client
upload_time2023-03-24 06:36:46
maintainer
docs_urlNone
author
requires_python>=3.7
licenseGNU Lesser General Public License (LGPL) Copyright (c) 2022 Qujamlee from www.aztquant.com This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
keywords azt aztve aztquant quant
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 1 安装SDK

1. **版本说明**

   > - 在安装SDK之前,请确认已经正确安装**3.7.0**及以上版本Python环境,下载地址[www.python.org](https://www.python.org/ftp/python/),推荐参考[Python3安装教程](https://www.runoob.com/python3/python3-install.html)
   > - 当前SDK版本:**`1.0.2`**

2. **安装指令**

   > 以Windows为例,打开可调用Python3的命令行终端,键入以下命令安装或更新SDK:
   >
   > ```bash
   > pip install AztClient  # 安装指令
   > pip install --upgrade AztClient # 更新指令
   > 
   > # MacOS和Linux环境下可能需要使用"pip3"代替"pip"进行安装
   > ```

3. **指定安装源**

   > SDK所有的更新都会提交到[PyPI](https://pypi.org/)(Python官方源),项目地址:[AztClient · PyPI](https://pypi.org/project/AztClient/)
   >
   > 若使用[http://mirrors.aliyun.com/pypi/simple/](http://mirrors.aliyun.com/pypi/simple/) 等国内镜像源时,可能会延迟收到最新版本,因此建议使用官方源下载和更新SDK:
   >
   > ```bash
   > # 只有在默认使用国内镜像源时才需要指定pypi镜像源
   > pip install AztClient -i https://pypi.org/simple
   > pip install --upgrade AztClient -i https://pypi.org/simple
   > ```
   >
   > - 如何判断是否默认使用国内镜像源
   >
   >   ```bash
   >   pip config list
   >   # 如果命令执行后没有出现任何内容则说明默认使用pypi官方源
   >   # 反之则会显示当前正在使用的镜像源
   >   ```

4. **手动安装**

   > 若无法通过`pip`命令安装最新版本SDK,也可以直接从开源地址中下载安装
   >
   > SDK开源地址:[https://gitee.com/Qujamlee/azt-client](https://gitee.com/Qujamlee/azt-client)
   >
   > - 方法1 - 直接拷贝源文件(需要安装`git`工具,推荐参考[Git安装教程](https://www.runoob.com/git/git-install-setup.html))
   >
   >   ```bash
   >   git clone https://gitee.com/Qujamlee/azt-client.git
   >   cd azt-client
   >   # 拷贝AztClient到需要使用的目录即可
   >   ```
   >
   > - 方法2 - 安装发行版([发行版下载](https://gitee.com/Qujamlee/azt-client/releases/download/v1.0.0/AztClient-1.0.0-py3-none-any.whl))
   >
   >   ```bash
   >   # 首先要下载发行版(比如其名称为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 - 账户状态码
```python
KAccStatus_Unknown    = 0  # 未知状态
KAccStatus_Normal     = 1  # 正常
KAccStatus_WrittenOff = 2  # 已注销
KAccStatus_Disable    = 3  # 已禁用
```
### 2.4.2 EAdjust - 复权方式

```python
KAdjust_NONE  =  0  # 不复权
KAdjust_PREV  =  1  # 前复权
KAdjust_POST  =  2  # 后复权
```

### 2.4.3 EBusinessType - 业务类型

```python
KBusinessType_Unknown  =  0  # 未知类型
KBusinessType_NORMAL   =  1  # 普通交易
```
### 2.4.4 ECxRejReasonType - 撤单拒绝原因类型
```python
  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 - 入金错误返回码
```python
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 - 成交回报类型
```python
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 - 财务数据类型

```python
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 - 历史行情服务错误码

```python
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 - 登录成功情况返回码

```python
KLoginReCode_Unknown       = 0  # 未知错误
KLoginReCode_LoginSucc     = 1  # 登录成功
KLoginReCode_UnknownAcc    = 2  # 未知账号 或 密码错误
KLoginReCode_AccUnNormal   = 3  # 非正常状态的账号(已注销/已禁用)
```
### 2.4.10 EMarketDataType - 行情类型

```python
KMarketDataType_Unknown  =  0  # 未知
KMarketDataType_Actual   =  1  # 现货
KMarketDataType_SOption  =  2  # 现货期权
KMarketDataType_Future   =  3  # 期货|期货期权
```

### 2.4.11 ESecurityType - 标的类型

```python
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 - 委托拒绝原因

```python
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 - 买卖方向
```python
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 - 委托状态
```python
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 - 委托类型
```python
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 - 行情订阅成败返回码

```python
KQuoteRetCode_Unknown   =  0  # 未知
KQuoteRetCode_Sucess    =  1  # 订阅/取消订阅成功
KQuoteRetCode_HasError  =  2  # 订阅/取消订阅出错
```

### 2.4.17 EPeriod - 历史数据周期

```python
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 - 开平方向

```python
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 - 注册完成情况返回码
```python
KRegisterRet_Unknown         = 0  # 未知错误
KRegisterRet_Success         = 1  # 注册成功
KRegisterRet_ReRegister      = 2  # 重复注册
KRegisterRet_InvalidStrategy = 3  # 无效或非法 strategy_id
```

### 2.4.20 ESecurityType - 标的类型

```python
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日志

- 函数签名

  > ```python
  > 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日志                                             |

- 示例

  > ```python
  > 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对象

- 函数签名

  > ```python
  > 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时,若日志已存在,则删除已存在日志对象,生成新的日志对象 |

- 示例

  > ```python
  > 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函数重新重新连接服务端。

- **函数签名**

  >  ```python
  >  def Stop(self)
  >  ```

### 3.3.3 Join - 加入Api

用于阻塞程序运行,直至超时或Api停止。该函数仅在Api成功`Start`之后、`Stop`之前有效,效果与`time.sleep`函数相当。

- **函数签名**

  >  ```python
  >  def Join(self, wait: float=None)
  >  ```

- **参数**

  > | 参数 | 类型  | 默认值 | 说明                                       |
  > | ---- | ----- | ------ | ------------------------------------------ |
  > | wait | float | None   | 阻塞等待时间,`None`表示一直阻塞,单位:秒 |

- 提示

  > - 由于客户端将会启动子线程用于接收服务器异步响应信息,当用户通过注册Spi接收消息时,如果主线程过早退出,客户端将无法正确接收响应信息,因此需要用户维持程序的运行。当用户没有其他途径维持程序的运行时,则可以考虑调用该函数。

### 3.3.4 SetLogger - 设置Api日志对象

每个Api都内置了日志记录功能,并且默认使用Root日志,当然用户也可以设置指定的日志对象

- 函数签名

  > ```python
  > 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日志对象进行记录

- 记录测试日志

  > ```python
  > def debug(self, *msgs)
  > ```

- 记录普通日志

  > ```python
  > def info(self, *msgs)
  > ```

- 记录警告日志

  > ```python
  > def warning(self, *msgs)
  > ```

- 记录错误日志

  > ```python
  > def error(self, *msgs)
  > ```

- 记录严重错误日志

  > ```python
  > def critical(self, *msgs)
  > ```

### 3.3.6 Api状态函数

Api中还有一些函数可供用户使用,以判断当前Api的状态

- 是否已停止

  > ```python
  > def isStopped(self):
  > ```

- 是否已登录

  > ```python
  > def isLogined(self):
  > ```

- 是否为初次登录

  > ```python
  > def isFirstLogined(self):
  > ```
  >
  > - 在首次调用`Start`函数前,`isFirstLogined`返回`True`,之后都是`False`
  
  

------



# 4 AztTradeApi - 模拟柜台Api

## 4.1 Start - 启动函数

- **函数签名**

  >  ```python
  > def Start(self, ip: str, port: int, spi=None, timeout: float = None, reconnect: int = None, reconnect_ivl: float = None)
  > ```

- **参数**

  > | 参数          | 类型        | 默认值   | 说明                                                         |
  > | ------------- | ----------- | -------- | ------------------------------------------------------------ |
  > | ip            | str         | 无,必填 | 模拟柜台服务地址,由[aztquant.com](https://www.aztquant.com)提供 |
  > | port          | int         | 无,必填 | 模拟柜台服务端口,由[aztquant.com](https://www.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 - 登录

- **函数签名**

  > ```python
  > def Login(self, account: str, passwd: str, timeout: float = None):
  > ```

- **参数**

  > | 参数    | 类型  | 默认值   | 说明                                         |
  > | ------- | ----- | -------- | -------------------------------------------- |
  > | account | str   | 无,必填 | 账户ID                                       |
  > | passwd  | str   | 无,必填 | 账户密码                                     |
  > | timeout | float | None     | 同步模式时超时时间,超时返回`None`,单位:秒 |
  
- **返回**

  > 返回`TradeLoginAck`信息;若超时无响应则返回`None`
  
- **示例**

  > ```python
  > 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 - 退出登录

- **函数签名**

  > ```python
  > def Logout(self)
  > ```

- **提示**

  > - 只有在登录之后才需要退出登录,在尚未登录时调用效果与Stop函数相同
  > - 程序正常终止时,若账户已登录但尚未退出登录,程序会自动退出登录



## 4.4 QueryAccountInfo - 查询账户信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询账户资产信息

- **函数签名**

  > ```python
  > def QueryAsset(self, sync: bool = False, timeout: int = None)
  > ```

- **参数**

  > | 参数    | 类型 | 默认值 | 说明                                         |
  > | ------- | ---- | ------ | -------------------------------------------- |
  > | sync    | bool | False  | 是否直接返回结果(启用同步模式)             |
  > | timeout | int  | None   | 同步模式时超时时间,超时返回`None`,单位:秒 |

- **返回**

  > - 当`sync=True`且在超时前得到响应时,返回`AccMargin`信息,其余情况返回`None`

- **示例**

  > ```python
  > 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 - 查询账户历史资产信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询历史入金信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询委托订单信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询成交信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询持仓信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询历史持仓信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询历史委托信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询历史成交信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询标的信息

- **函数签名**

  > ```python
  > def QuerySecurityInfo(self, market, code: str = None, timeout: float = None)
  > ```

- **参数**

  > | 参数    | 类型  | 默认值   | 说明                                         |
  > | ------- | ----- | -------- | -------------------------------------------- |
  > | market  | str   | 无,必填 | 交易所代码                                   |
  > | code    | str   | None     | 标的代码                                     |
  > | timeout | float | None     | 同步模式时超时时间,超时返回`None`,单位:秒 |

- **返回**

  > - 在超时前得到响应时,返回`SecurityInfoRsp`信息,其余情况返回`None`

- **示例**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 买入委托

- **函数签名**

  > ```python
  > 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`实例
  
- **示例**

  > ```python
  > 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 - 卖出委托

- **函数签名**

  > ```python
  > 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`实例

- **示例**

  > ```python
  > 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 - 撤单委托

- **函数签名**

  > ```python
  > def Cancel(self, order_id: str)
  > ```

- **参数**

  > | 参数     | 类型 | 默认值   | 说明                                                     |
  > | -------- | ---- | -------- | -------------------------------------------------------- |
  > | order_id | str  | 无,必填 | 需要撤销的委托订单编号,见`PlaceOrder`中的`order_id`属性 |

- **返回**

  > 调用函数后返回生成的撤单委托请求,为`CancelOrder`实例

- **示例**

  > ```python
  > 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 - 启动函数

- **函数签名**

  > ```python
  > def Start(self, ip: str, port: int, spi=None, timeout=None reconnect: int = None, reconnect_ivl: float = None)
  > ```

- **参数**

  > | 参数          | 类型        | 默认值   | 说明                                                         |
  > | ------------- | ----------- | -------- | ------------------------------------------------------------ |
  > | ip            | str         | 无,必填 | 行情服务地址,由[aztquant.com](https://www.aztquant.com)提供 |
  > | port          | int         | 无,必填 | 行情服务端口,由[aztquant.com](https://www.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 - 登录

- **函数签名**

  > ```python
  > def Login(self, account: str, passwd: str, timeout: float = None):
  > ```

- **参数**

  > | 参数    | 类型  | 默认值   | 说明                                         |
  > | ------- | ----- | -------- | -------------------------------------------- |
  > | account | str   | 无,必填 | 账户ID                                       |
  > | passwd  | str   | 无,必填 | 账户密码                                     |
  > | timeout | float | None     | 同步模式时超时时间,超时返回`None`,单位:秒 |

- **返回**

  > 返回`LoginAck`信息;若超时无响应则返回`None`

- **示例**

  > ```python
  > 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 - 退出登录

- **函数签名**

  > ```python
  > def Logout(self)
  > ```

- **提示**

  > - 只有在登录之后才需要退出登录,在尚未登录时调用效果与Stop函数相同
  > - 程序正常终止时,若账户已登录但尚未退出登录,程序会自动退出登录



## 5.4 Subscribe - 订阅实时行情

- **函数签名**

  > ```python
  > 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`
  
- **示例**

  > ```python
  > 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 - 取消订阅实时行情

- **函数签名**

  > ```python
  > 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`
  
- **示例**

  > ```python
  > 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 - 查询实时行情

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 查询标的信息

- **函数签名**

  > ```python
  > 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`

- **示例**

  > ```python
  > 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 - 启动函数

- **函数签名**

  >  ```python
  >  def Start(self, ip: str, port: int, spi=None, timeout=None reconnect: int = None, reconnect_ivl: float = None)
  >  ```

- **参数**

  > | 参数          | 类型           | 默认值   | 说明                                                         |
  > | ------------- | -------------- | -------- | ------------------------------------------------------------ |
  > | ip            | str            | 无,必填 | 历史行情服务地址,由[aztquant.com](https://www.aztquant.com)提供 |
  > | port          | int            | 无,必填 | 历史行情服务端口,由[aztquant.com](https://www.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()`类实例



## 6.2  Login - 登录

- **函数签名**

  > ```python
  > def Login(self, account: str, passwd: str, timeout: float = None):
  > ```

- **参数**

  > | 参数    | 类型  | 默认值   | 说明                                         |
  > | ------- | ----- | -------- | -------------------------------------------- |
  > | account | str   | 无,必填 | 账户ID                                       |
  > | passwd  | str   | 无,必填 | 账户密码                                     |
  > | timeout | float | None     | 同步模式时超时时间,超时返回`None`,单位:秒 |

- **返回**

  > 返回`HisQuoteLoginRsp`信息;若超时无响应则返回`None`

- **示例**

  > ```python
  > 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 - 退出登录

- **函数签名**

  > ```python
  > def Logout(self)
  > ```

- **提示**

  > - 只有在登录之后才需要也才能退出登录



## 6.4 GetTradingCalendar - 查询交易日历

- 函数签名

  > ```python
  > 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`
  
- 示例

  > ```python
  > 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 - 查询下一个交易日

- 函数签名

  > ```python
  > 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`

- 示例

  > ```python
  > 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行情

- 函数签名

  > ```python
  > 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`

- 示例

  > ```python
  > 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行情

- 函数签名

  > ```python
  > 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`

- 示例

  > ```python
  > 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 - 查询基本面历史数据

- 函数签名

  > ```python
  > 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`

- 示例

  > ```python
  > 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

```python
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

```python
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

```python
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               | 营运资金                                      | 元   |


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "AztClient",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "Qujamlee <qujamlee@126.com>",
    "keywords": "azt,aztve,aztquant,quant",
    "author": "",
    "author_email": "Qujamlee <qujamlee@126.com>",
    "download_url": "https://files.pythonhosted.org/packages/21/42/96bbe8a9a3dcdc99fd41a30337f8a5178c43d2a734cdb36802b3924a29d0/AztClient-1.0.3.tar.gz",
    "platform": null,
    "description": "# 1 \u5b89\u88c5SDK\r\n\r\n1. **\u7248\u672c\u8bf4\u660e**\r\n\r\n   > - \u5728\u5b89\u88c5SDK\u4e4b\u524d\uff0c\u8bf7\u786e\u8ba4\u5df2\u7ecf\u6b63\u786e\u5b89\u88c5**3.7.0**\u53ca\u4ee5\u4e0a\u7248\u672cPython\u73af\u5883\uff0c\u4e0b\u8f7d\u5730\u5740[www.python.org](https://www.python.org/ftp/python/)\uff0c\u63a8\u8350\u53c2\u8003[Python3\u5b89\u88c5\u6559\u7a0b](https://www.runoob.com/python3/python3-install.html)\r\n   > - \u5f53\u524dSDK\u7248\u672c\uff1a**`1.0.2`**\r\n\r\n2. **\u5b89\u88c5\u6307\u4ee4**\r\n\r\n   > \u4ee5Windows\u4e3a\u4f8b\uff0c\u6253\u5f00\u53ef\u8c03\u7528Python3\u7684\u547d\u4ee4\u884c\u7ec8\u7aef\uff0c\u952e\u5165\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\u6216\u66f4\u65b0SDK\uff1a\r\n   >\r\n   > ```bash\r\n   > pip install AztClient  # \u5b89\u88c5\u6307\u4ee4\r\n   > pip install --upgrade AztClient # \u66f4\u65b0\u6307\u4ee4\r\n   > \r\n   > # MacOS\u548cLinux\u73af\u5883\u4e0b\u53ef\u80fd\u9700\u8981\u4f7f\u7528\"pip3\"\u4ee3\u66ff\"pip\"\u8fdb\u884c\u5b89\u88c5\r\n   > ```\r\n\r\n3. **\u6307\u5b9a\u5b89\u88c5\u6e90**\r\n\r\n   > SDK\u6240\u6709\u7684\u66f4\u65b0\u90fd\u4f1a\u63d0\u4ea4\u5230[PyPI](https://pypi.org/)\uff08Python\u5b98\u65b9\u6e90\uff09\uff0c\u9879\u76ee\u5730\u5740\uff1a[AztClient \u00b7 PyPI](https://pypi.org/project/AztClient/)\r\n   >\r\n   > \u82e5\u4f7f\u7528[http://mirrors.aliyun.com/pypi/simple/](http://mirrors.aliyun.com/pypi/simple/) \u7b49\u56fd\u5185\u955c\u50cf\u6e90\u65f6\uff0c\u53ef\u80fd\u4f1a\u5ef6\u8fdf\u6536\u5230\u6700\u65b0\u7248\u672c\uff0c\u56e0\u6b64\u5efa\u8bae\u4f7f\u7528\u5b98\u65b9\u6e90\u4e0b\u8f7d\u548c\u66f4\u65b0SDK\uff1a\r\n   >\r\n   > ```bash\r\n   > # \u53ea\u6709\u5728\u9ed8\u8ba4\u4f7f\u7528\u56fd\u5185\u955c\u50cf\u6e90\u65f6\u624d\u9700\u8981\u6307\u5b9apypi\u955c\u50cf\u6e90\r\n   > pip install AztClient -i https://pypi.org/simple\r\n   > pip install --upgrade AztClient -i https://pypi.org/simple\r\n   > ```\r\n   >\r\n   > - \u5982\u4f55\u5224\u65ad\u662f\u5426\u9ed8\u8ba4\u4f7f\u7528\u56fd\u5185\u955c\u50cf\u6e90\r\n   >\r\n   >   ```bash\r\n   >   pip config list\r\n   >   # \u5982\u679c\u547d\u4ee4\u6267\u884c\u540e\u6ca1\u6709\u51fa\u73b0\u4efb\u4f55\u5185\u5bb9\u5219\u8bf4\u660e\u9ed8\u8ba4\u4f7f\u7528pypi\u5b98\u65b9\u6e90\r\n   >   # \u53cd\u4e4b\u5219\u4f1a\u663e\u793a\u5f53\u524d\u6b63\u5728\u4f7f\u7528\u7684\u955c\u50cf\u6e90\r\n   >   ```\r\n\r\n4. **\u624b\u52a8\u5b89\u88c5**\r\n\r\n   > \u82e5\u65e0\u6cd5\u901a\u8fc7`pip`\u547d\u4ee4\u5b89\u88c5\u6700\u65b0\u7248\u672cSDK\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u4ece\u5f00\u6e90\u5730\u5740\u4e2d\u4e0b\u8f7d\u5b89\u88c5\r\n   >\r\n   > SDK\u5f00\u6e90\u5730\u5740\uff1a[https://gitee.com/Qujamlee/azt-client](https://gitee.com/Qujamlee/azt-client)\r\n   >\r\n   > - \u65b9\u6cd51 - \u76f4\u63a5\u62f7\u8d1d\u6e90\u6587\u4ef6\uff08\u9700\u8981\u5b89\u88c5`git`\u5de5\u5177\uff0c\u63a8\u8350\u53c2\u8003[Git\u5b89\u88c5\u6559\u7a0b](https://www.runoob.com/git/git-install-setup.html)\uff09\r\n   >\r\n   >   ```bash\r\n   >   git clone https://gitee.com/Qujamlee/azt-client.git\r\n   >   cd azt-client\r\n   >   # \u62f7\u8d1dAztClient\u5230\u9700\u8981\u4f7f\u7528\u7684\u76ee\u5f55\u5373\u53ef\r\n   >   ```\r\n   >\r\n   > - \u65b9\u6cd52 - \u5b89\u88c5\u53d1\u884c\u7248\uff08[\u53d1\u884c\u7248\u4e0b\u8f7d](https://gitee.com/Qujamlee/azt-client/releases/download/v1.0.0/AztClient-1.0.0-py3-none-any.whl)\uff09\r\n   >\r\n   >   ```bash\r\n   >   # \u9996\u5148\u8981\u4e0b\u8f7d\u53d1\u884c\u7248\uff08\u6bd4\u5982\u5176\u540d\u79f0\u4e3aAztClient-1.0.0-py3-none-any.whl\uff09\r\n   >   # \u4e0b\u8f7d\u5b8c\u6210\u540e\u5728\u53d1\u884c\u7248\u6587\u4ef6\u76ee\u5f55\u4e2d\u6253\u5f00\u7ec8\u7aef\uff0c\u8f93\u5165\uff1a\r\n   >   pip install ./AztClient-1.0.0-py3-none-any.whl  # \u5b89\u88c5\r\n   >   ```\r\n\r\n\r\n\r\n---\r\n\r\n\r\n\r\n# 2 \u6570\u636e\u7ed3\u6784\r\n\r\n## 2.1 TradeSpi\u54cd\u5e94\u6570\u636e\u7c7b\r\n\r\n### 2.1.1 AccDepositAck - \u8d26\u6237\u5165\u91d1\u54cd\u5e94\r\n\r\n| \u5c5e\u6027       | \u7c7b\u578b            | \u8bf4\u660e                                                        |\r\n| ---------- | --------------- | ----------------------------------------------------------- |\r\n| acc_margin | AccMargin       | \u8d26\u6237\u8d44\u4ea7\u4fe1\u606f                                                |\r\n| error_code | EDepositRetCode | \u5165\u91d1\u9519\u8bef\u8fd4\u56de\u7801\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EDepositRetCode` |\r\n\r\n### 2.1.2 AccMargin - \u8d26\u6237\u8d44\u4ea7\u4fe1\u606f\r\n\r\n| \u5c5e\u6027                   | \u7c7b\u578b  | \u8bf4\u660e         |\r\n| ---------------------- | ----- | ------------ |\r\n| account                | str   | \u8d26\u6237ID       |\r\n| total_amount           | float | \u8d26\u6237\u603b\u8d44\u91d1   |\r\n| available_amount       | float | \u8d26\u6237\u53ef\u7528\u8d44\u91d1 |\r\n| deposit                | float | \u8d26\u6237\u5165\u91d1\u603b\u989d |\r\n| open_balance           | float | \u671f\u521d\u7ed3\u5b58     |\r\n| trade_frozen_margin    | float | \u4ea4\u6613\u51bb\u7ed3\u91d1\u989d |\r\n| position_market_amount | float | \u6301\u4ed3\u5e02\u503c     |\r\n| total_buy_amount       | float | \u4e70\u5165\u603b\u91d1\u989d   |\r\n| total_buy_fee          | float | \u4e70\u5165\u603b\u624b\u7eed\u8d39 |\r\n| total_sell_amount      | float | \u5356\u51fa\u603b\u91d1\u989d   |\r\n| total_sell_fee         | float | \u5356\u51fa\u603b\u624b\u7eed\u8d39 |\r\n\r\n### 2.1.3 CancelOrder - \u64a4\u5355\u4fe1\u606f\r\n\r\n| \u5c5e\u6027         | \u7c7b\u578b              | \u8bf4\u660e                           |\r\n| ------------ | ----------------- | ------------------------------ |\r\n| client_ref   | str               | \u672c\u5730\u8ba2\u5355\u7f16\u53f7\uff0c\u7531\u5ba2\u6237\u7aef\u81ea\u52a8\u751f\u6210 |\r\n| sender_user  | str               | \u8d26\u6237\u6807\u8bc6\uff0c\u7531\u7cfb\u7edf\u81ea\u52a8\u751f\u6210       |\r\n| account      | str               | \u8d26\u6237ID                         |\r\n| org_order_id | str               | \u9700\u8981\u64a4\u9500\u7684\u59d4\u6258\u8ba2\u5355\u7f16\u53f7         |\r\n| send_time    | datetime.datetime | \u53d1\u9001\u65f6\u95f4\uff0c\u7531\u7cfb\u7edf\u81ea\u52a8\u751f\u6210       |\r\n\r\n### 2.1.4 CancelOrderReject - \u64a4\u5355\u62d2\u7edd\u56de\u62a5\u4fe1\u606f\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b              | \u8bf4\u660e                                                       |\r\n| ------------- | ----------------- | ---------------------------------------------------------- |\r\n| client_ref    | str               | \u672c\u5730\u8ba2\u5355\u7f16\u53f7\uff0c\u7531\u5ba2\u6237\u7aef\u81ea\u52a8\u751f\u6210                             |\r\n| org_order_id  | str               | \u64a4\u5355\u4ea4\u6613\u5e73\u53f0\u59d4\u6258\u8ba2\u5355\u7f16\u53f7                                   |\r\n| reject_reason | ECxRejReasonType  | \u64a4\u5355\u62d2\u7edd\u539f\u56e0\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`ECxRejReasonType` |\r\n| report_time   | datetime.datetime | \u56de\u62a5\u65f6\u95f4\uff0c\u7531\u7cfb\u7edf\u81ea\u52a8\u751f\u6210                                   |\r\n\r\n### 2.1.5 HisDeposit - \u5386\u53f2\u5165\u91d1\u4fe1\u606f\r\n\r\n| \u5c5e\u6027            | \u7c7b\u578b              | \u8bf4\u660e                               |\r\n| --------------- | ----------------- | ---------------------------------- |\r\n| settlement_date | datetime.datetime | \u7ed3\u7b97\u65e5\u671f                           |\r\n| account         | str               | \u8d26\u6237ID                             |\r\n| client_ref      | str               | \u672c\u5730\u5165\u91d1\u8bf7\u6c42\u7f16\u53f7\uff0c\u7531\u5ba2\u6237\u7aef\u81ea\u52a8\u751f\u6210 |\r\n| deposit         | float             | \u5165\u91d1\u91d1\u989d                           |\r\n\r\n### 2.1.6 OrdReport - \u59d4\u6258\u56de\u62a5\u4fe1\u606f\r\n\r\n| \u5c5e\u6027        | \u7c7b\u578b         | \u8bf4\u660e             |\r\n| ----------- | ------------ | ---------------- |\r\n| place_order | PlaceOrder   | \u59d4\u6258\u8ba2\u5355\u4fe1\u606f     |\r\n| status_msg  | OrdStatusMsg | \u59d4\u6258\u8ba2\u5355\u72b6\u6001\u4fe1\u606f |\r\n\r\n### 2.1.7 OrdStatusMsg - \u59d4\u6258\u8ba2\u5355\u72b6\u6001\u4fe1\u606f\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b               | \u8bf4\u660e                                                     |\r\n| ------------- | ------------------ | -------------------------------------------------------- |\r\n| order_status  | EOrderStatus       | \u59d4\u6258\u8ba2\u5355\u6267\u884c\u72b6\u6001\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u89c1\u679a\u4e3e\u5e38\u91cf`EOrderStatus` |\r\n| traded_qty    | int                | \u8ba2\u5355\u4ea4\u6613\u6570\u91cf\uff0c\u4ee5\u80a1\u7b49\u57fa\u7840\u5355\u4f4d\u4e3a\u5355\u4f4d                       |\r\n| traded_amount | float              | \u8ba2\u5355\u4ea4\u6613\u91d1\u989d                                             |\r\n| total_fee     | float              | \u8ba2\u5355\u4ea4\u6613\u624b\u7eed\u8d39                                           |\r\n| frozen_margin | float              | \u8ba2\u5355\u5bf9\u8d26\u6237\u51bb\u7ed3\u91d1\u989d                                       |\r\n| frozen_price  | float              | \u8ba2\u5355\u5bf9\u8d26\u6237\u51bb\u7ed3\u4ef7\u683c                                       |\r\n| reject_reason | EOrderRejectReason | \u62d2\u5355\u539f\u56e0\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EOrderRejectReason` |\r\n| report_time   | datetime.datetime  | \u56de\u62a5\u65f6\u95f4\uff0c\u7531\u7cfb\u7edf\u81ea\u52a8\u751f\u6210                                 |\r\n\r\n### 2.1.8 PlaceOrder - \u59d4\u6258\u8ba2\u5355\u4fe1\u606f\r\n\r\n| \u5c5e\u6027             | \u7c7b\u578b              | \u8bf4\u660e                                                         |\r\n| ---------------- | ----------------- | ------------------------------------------------------------ |\r\n| client_ref       | str               | \u672c\u5730\u8ba2\u5355\u7f16\u53f7\uff0c\u7531\u5ba2\u6237\u7aef\u81ea\u52a8\u751f\u6210                               |\r\n| sender_user      | str               | \u8d26\u6237\u6807\u8bc6\uff0c\u7531\u7cfb\u7edf\u81ea\u52a8\u751f\u6210                                     |\r\n| account          | str               | \u8d26\u6237ID                                                       |\r\n| market           | str               | \u4ea4\u6613\u6240\u4ee3\u7801                                                   |\r\n| code             | str               | \u6807\u7684\u4ee3\u7801                                                     |\r\n| order_type       | EOrderType        | \u59d4\u6258\u7c7b\u578b\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EOrderType`             |\r\n| business_type    | EBusinessType     | \u4e1a\u52a1\u7c7b\u578b\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EBusinessType`          |\r\n| order_side       | EOrderSide        | \u4e70\u5165\u5356\u51fa\u59d4\u6258\u65b9\u5411\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EOrderSide`     |\r\n| effect           | EPositionEffect   | \u5f00\u4ed3\u5e73\u4ed3\u59d4\u6258\u65b9\u5411\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EPositionEffect` |\r\n| order_price      | float             | \u59d4\u6258\u4ef7\u683c\uff0c\u9002\u7528\u4e8e\u9650\u4ef7\u5355                                       |\r\n| order_qty        | int               | \u59d4\u6258\u6570\u91cf                                                     |\r\n| order_id         | str               | \u8ba2\u5355\u7f16\u53f7\uff0c\u7531\u670d\u52a1\u7aef\u81ea\u52a8\u751f\u6210                                   |\r\n| discretion_price | float             | \u5e02\u4ef7\u59d4\u6258\u8f6c\u9650\u4ef7\u59d4\u6258\u65f6\u91c7\u7528\u7684\u9650\u4ef7                               |\r\n| send_time        | datetime.datetime | \u53d1\u9001\u65f6\u95f4\uff0c\u7531\u7cfb\u7edf\u81ea\u52a8\u751f\u6210                                     |\r\n\r\n### 2.1.9 QryHisAccAck - \u5386\u53f2\u8d44\u4ea7\u4fe1\u606f\u67e5\u8be2\r\n\r\n| \u5c5e\u6027        | \u7c7b\u578b            | \u8bf4\u660e                 |\r\n| ----------- | --------------- | -------------------- |\r\n| acc_margins | list[AccMargin] | \u8d26\u6237\u5386\u53f2\u8d44\u4ea7\u4fe1\u606f\u5217\u8868 |\r\n\r\n### 2.1.10 QryHisDepositAck - \u5386\u53f2\u5165\u91d1\u4fe1\u606f\u67e5\u8be2\r\n\r\n| \u5c5e\u6027         | \u7c7b\u578b             | \u8bf4\u660e                 |\r\n| ------------ | ---------------- | -------------------- |\r\n| his_deposits | list[HisDeposit] | \u8d26\u6237\u5386\u53f2\u5165\u91d1\u4fe1\u606f\u5217\u8868 |\r\n\r\n### 2.1.11 QueryOrdersAck - \u59d4\u6258\u67e5\u8be2\u54cd\u5e94\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b            | \u8bf4\u660e             |\r\n| ------------- | --------------- | ---------------- |\r\n| order_reports | list[OrdReport] | \u59d4\u6258\u56de\u62a5\u4fe1\u606f\u5217\u8868 |\r\n\r\n### 2.1.12 QueryPositionsAck - \u6301\u4ed3\u67e5\u8be2\u54cd\u5e94\r\n\r\n| \u5c5e\u6027      | \u7c7b\u578b                | \u8bf4\u660e         |\r\n| --------- | ------------------- | ------------ |\r\n| positions | list[StockPosition] | \u6301\u4ed3\u4fe1\u606f\u5217\u8868 |\r\n\r\n### 2.1.13 QueryTradesAck - \u4ea4\u6613\u660e\u7ec6\u67e5\u8be2\u54cd\u5e94\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b              | \u8bf4\u660e             |\r\n| ------------- | ----------------- | ---------------- |\r\n| trade_reports | list[TradeReport] | \u6210\u4ea4\u56de\u62a5\u4fe1\u606f\u5217\u8868 |\r\n\r\n### 2.1.14 StockPosition - \u6301\u4ed3\u4fe1\u606f\r\n\r\n| \u5c5e\u6027              | \u7c7b\u578b  | \u8bf4\u660e             |\r\n| ----------------- | ----- | ---------------- |\r\n| account           | str   | \u8d26\u6237ID           |\r\n| market            | str   | \u4ea4\u6613\u6240\u4ee3\u7801       |\r\n| code              | str   | \u6807\u7684             |\r\n| total_qty         | int   | \u6301\u6709\u603b\u6570\u91cf       |\r\n| today_qty         | int   | \u4eca\u65e5\u65b0\u589e\u6301\u6709\u6570\u91cf |\r\n| open_avg_price    | float | \u6210\u672c\u4ef7\u683c         |\r\n| surplus_close_qty | int   | \u53ef\u5e73\u4ed3\u6570\u91cf       |\r\n| frozen_qty        | int   | \u51bb\u7ed3\u6570\u91cf         |\r\n\r\n### 2.1.15 TradeLoginAck - \u6a21\u62df\u67dc\u53f0\u767b\u5f55\u54cd\u5e94\r\n\r\n| \u5c5e\u6027       | \u7c7b\u578b           | \u8bf4\u660e                                                         |\r\n| ---------- | -------------- | ------------------------------------------------------------ |\r\n| login_info | TradeLoginInfo | \u767b\u5f55\u4fe1\u606f                                                     |\r\n| ret_code   | ELoginRetCode  | \u767b\u5f55\u6210\u529f\u60c5\u51b5\u8fd4\u56de\u7801\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`ELoginRetCode` |\r\n\r\n### 2.1.16 TradeLoginInfo - \u6a21\u62df\u67dc\u53f0\u767b\u5f55\u4fe1\u606f\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b              | \u8bf4\u660e         |\r\n| ------------- | ----------------- | ------------ |\r\n| account       | str               | \u8d26\u6237ID       |\r\n| trading_day   | str               | \u5f53\u524d\u4ea4\u6613\u65e5   |\r\n| exchange_name | str               | \u4ea4\u6613\u6240\u540d\u79f0   |\r\n| exchange_time | datetime.datetime | \u5f53\u524d\u4ea4\u6613\u65f6\u95f4 |\r\n\r\n### 2.1.17 TradeReport - \u6210\u4ea4\u56de\u62a5\u4fe1\u606f\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b              | \u8bf4\u660e                                                |\r\n| ------------- | ----------------- | --------------------------------------------------- |\r\n| order_id      | str               | \u5bf9\u5e94\u7684\u59d4\u6258\u8ba2\u5355\u7f16\u53f7                                  |\r\n| client_ref    | str               | \u5bf9\u5e94\u7684\u672c\u5730\u8ba2\u5355\u7f16\u53f7                                  |\r\n| account       | str               | \u8d26\u6237ID                                              |\r\n| market        | str               | \u4ea4\u6613\u6240\u4ee3\u7801                                          |\r\n| code          | str               | \u6807\u7684                                                |\r\n| traded_id     | str               | \u6210\u4ea4\u7f16\u53f7                                            |\r\n| traded_index  | int               | \u5bf9\u5e94\u59d4\u6258\u7684\u6210\u4ea4\u5e8f\u53f7\uff0c\u4ece0\u9012\u589e                         |\r\n| exec_type     | EExecType         | \u6210\u4ea4\u56de\u62a5\u7c7b\u578b\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EExecType` |\r\n| traded_qty    | int               | \u6210\u4ea4\u6570\u91cf                                            |\r\n| traded_price  | float             | \u6210\u4ea4\u4ef7\u683c                                            |\r\n| fee           | float             | \u6210\u4ea4\u8d39\u7528                                            |\r\n| transact_time | datetime.datetime | \u6267\u884c\u62a5\u9001\u65f6\u95f4                                        |\r\n\r\n### 2.1.18 TradeRegisterInfo - \u6a21\u62df\u67dc\u53f0\u8d26\u6237\u4fe1\u606f\r\n\r\n| \u5c5e\u6027        | \u7c7b\u578b         | \u8bf4\u660e                                                 |\r\n| ----------- | ------------ | ---------------------------------------------------- |\r\n| strategy_id | str          | \u7b56\u7565ID                                               |\r\n| account     | str          | \u8d26\u6237ID                                               |\r\n| passwd      | str          | \u8d26\u6237\u5bc6\u7801                                             |\r\n| acc_status  | ERegisterRet | \u8d26\u6237\u72b6\u6001\u7801\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`ERegisterRet` |\r\n\r\n\r\n\r\n## 2.2 QuoteSpi\u54cd\u5e94\u6570\u636e\u7c7b\r\n\r\n### 2.2.1 QuoteBaseMsg - \u57fa\u672c\u884c\u60c5\u6570\u636e\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b              | \u8bf4\u660e                                                |\r\n| ------------- | ----------------- | --------------------------------------------------- |\r\n| market        | str               | \u6807\u7684\u6240\u5c5e\u4ea4\u6613\u6240                                      |\r\n| code          | str               | \u5408\u7ea6/\u6807\u7684\u4ee3\u7801                                       |\r\n| security_type | ESecurityType     | \u5408\u7ea6\u7c7b\u578b\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`ESecurityType` |\r\n| open          | float             | \u5f00\u76d8\u4ef7                                              |\r\n| high          | float             | \u6700\u9ad8\u4ef7                                              |\r\n| low           | float             | \u6700\u4f4e\u4ef7                                              |\r\n| last          | float             | \u6700\u65b0\u4ef7                                              |\r\n| pre_close     | float             | \u6628\u6536\u76d8\u4ef7                                            |\r\n| close         | float             | \u4eca\u6536\u76d8\u4ef7                                            |\r\n| upper_limit   | float             | \u6da8\u505c\u4ef7                                              |\r\n| lower_limit   | float             | \u8dcc\u505c\u4ef7                                              |\r\n| total_amount  | float             | \u603b\u6210\u4ea4\u91d1\u989d\uff08\u5355\u4f4d\u5143\uff0c\u4e0e\u4ea4\u6613\u6240\u4e00\u81f4\uff09                  |\r\n| total_volume  | float             | \u603b\u6210\u4ea4\u91cf  \uff08\u5355\u4f4d\u80a1\uff0c\u4e0e\u4ea4\u6613\u6240\u4e00\u81f4\uff09                  |\r\n| avg_price     | float             | \u5f53\u65e5\u5747\u4ef7                                            |\r\n| bid_price     | dict[int,float]   | \u7533\u4e70\u4ef7\u961f\u5217\uff08\u4e94\u6863\uff09\uff0ckey\u4e3a0-4\uff0c\u5bf9\u5e94\u7b2c1\u81f35\u6863          |\r\n| ask_price     | dict[int,float]   | \u7533\u5356\u4ef7\u961f\u5217\uff08\u4e94\u6863\uff09\uff0ckey\u4e3a0-4\uff0c\u5bf9\u5e94\u7b2c1\u81f35\u6863          |\r\n| bid_volume    | dict[int,int]     | \u7533\u4e70\u91cf\u961f\u5217\uff08\u4e94\u6863\uff09\uff0ckey\u4e3a0-4\uff0c\u5bf9\u5e94\u7b2c1\u81f35\u6863          |\r\n| ask_volume    | dict[int,int]     | \u7533\u5356\u91cf\u961f\u5217\uff08\u4e94\u6863\uff09\uff0ckey\u4e3a0-4\uff0c\u5bf9\u5e94\u7b2c1\u81f35\u6863          |\r\n| data_time     | datetime.datetime | \u65f6\u95f4                                                |\r\n\r\n### 2.2.2 QuoteMsg - \u5b9e\u65f6\u884c\u60c5\u6570\u636e\r\n\r\n| \u5c5e\u6027             | \u7c7b\u578b            | \u8bf4\u660e                                                  |\r\n| ---------------- | --------------- | ----------------------------------------------------- |\r\n| data_type        | EMarketDataType | \u884c\u60c5\u7c7b\u578b\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EMarketDataType` |\r\n| quote_base_msg   | QuoteBaseMsg    | \u57fa\u672c\u4fe1\u606f                                              |\r\n| stock_extra_data | Any             | \u989d\u5916\u4fe1\u606f\uff0c\u5177\u4f53\u7c7b\u578b\u7531`data_type`\u51b3\u5b9a                   |\r\n\r\n### 2.2.3 QuoteRegisterAck - \u8ba2\u9605/\u53d6\u6d88\u6210\u8d25\u56de\u62a5\r\n\r\n| \u5c5e\u6027         | \u7c7b\u578b          | \u8bf4\u660e                                                         |\r\n| ------------ | ------------- | ------------------------------------------------------------ |\r\n| market_codes | str           | \u8ba2\u9605/\u53d6\u6d88\u8ba2\u9605\u6807\u7684                                            |\r\n| ret_code     | EQuoteRetCode | \u8ba2\u9605/\u53d6\u6d88\u8ba2\u9605\u6210\u529f/\u5931\u8d25\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EQuoteRetCode` |\r\n\r\n### 2.2.4 QuoteStockExtra - \u80a1\u7968\u884c\u60c5\u989d\u5916\u4fe1\u606f\r\n\r\n| \u5c5e\u6027                   | \u7c7b\u578b  | \u8bf4\u660e                     |\r\n| ---------------------- | ----- | ------------------------ |\r\n| total_bid_qty          | int   | \u59d4\u6258\u4e70\u5165\u603b\u91cf             |\r\n| total_ask_qty          | int   | \u59d4\u6258\u5356\u51fa\u603b\u91cf             |\r\n| ma_bid_price           | float | \u52a0\u6743\u5e73\u5747\u59d4\u4e70\u4ef7\u683c         |\r\n| ma_ask_price           | float | \u52a0\u6743\u5e73\u5747\u59d4\u5356\u4ef7\u683c         |\r\n| ma_bond_bid_price      | float | \u503a\u5238\u52a0\u6743\u5e73\u5747\u59d4\u4e70\u4ef7\u683c     |\r\n| ma_bond_ask_price      | float | \u503a\u5238\u52a0\u6743\u5e73\u5747\u59d4\u5356\u4ef7\u683c     |\r\n| yield_to_maturity      | float | \u503a\u5238\u5230\u671f\u6536\u76ca\u7387           |\r\n| iopv                   | float | \u57fa\u91d1\u5b9e\u65f6\u53c2\u8003\u51c0\u503c         |\r\n| etf_buy_count          | int   | ETF\u7533\u8d2d\u7b14\u6570              |\r\n| etf_sell_count         | int   | ETF\u8d4e\u56de\u7b14\u6570              |\r\n| etf_buy_qty            | int   | ETF\u7533\u8d2d\u6570\u91cf              |\r\n| etf_buy_money          | float | ETF\u7533\u8d2d\u91d1\u989d              |\r\n| etf_sell_qty           | int   | ETF\u8d4e\u56de\u6570\u91cf              |\r\n| etf_sell_money         | float | ETF\u8d4e\u56de\u91d1\u989d              |\r\n| total_warrant_exec_qty | int   | \u6743\u8bc1\u6267\u884c\u7684\u603b\u6570\u91cf         |\r\n| warrant_lower_price    | float | \u6743\u8bc1\u8dcc\u505c\u4ef7\u683c             |\r\n| warrant_upper_price    | float | \u6743\u8bc1\u6da8\u505c\u4ef7\u683c             |\r\n| cancel_buy_count       | int   | \u4e70\u5165\u64a4\u5355\u7b14\u6570             |\r\n| cancel_sell_count      | int   | \u5356\u51fa\u64a4\u5355\u7b14\u6570             |\r\n| cancel_buy_qty         | int   | \u4e70\u5165\u64a4\u5355\u6570\u91cf             |\r\n| cancel_sell_qty        | int   | \u5356\u51fa\u64a4\u5355\u6570\u91cf             |\r\n| cancel_buy_money       | float | \u4e70\u5165\u64a4\u5355\u91d1\u989d             |\r\n| cancel_sell_money      | float | \u5356\u51fa\u64a4\u5355\u91d1\u989d             |\r\n| total_buy_count        | int   | \u4e70\u5165\u603b\u7b14\u6570               |\r\n| total_sell_count       | int   | \u5356\u51fa\u603b\u7b14\u6570               |\r\n| duration_after_buy     | int   | \u4e70\u5165\u59d4\u6258\u6210\u4ea4\u6700\u5927\u7b49\u5f85\u65f6\u95f4 |\r\n| duration_after_sell    | int   | \u5356\u51fa\u59d4\u6258\u6210\u4ea4\u6700\u5927\u7b49\u5f85\u65f6\u95f4 |\r\n| num_bid_orders         | int   | \u4e70\u65b9\u59d4\u6258\u4ef7\u4f4d\u6570           |\r\n| num_ask_orders         | int   | \u5356\u65b9\u59d4\u6258\u4ef7\u4f4d\u6570           |\r\n| pre_iopv               | float | \u57fa\u91d1\u4e0a\u65e5\u53c2\u8003\u51c0\u503c         |\r\n\r\n### 2.2.5 SecurityInfoRsp - \u6807\u7684\u4fe1\u606f\r\n\r\n| \u5c5e\u6027                 | \u7c7b\u578b                     | \u8bf4\u660e         |\r\n| -------------------- | ------------------------ | ------------ |\r\n| security_static_info | list[SecurityStaticInfo] | \u6807\u7684\u4fe1\u606f\u5217\u8868 |\r\n\r\n### 2.2.6 SecurityStaticInfo - \u6807\u7684\u4fe1\u606f\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b          | \u8bf4\u660e                                                |\r\n| ------------- | ------------- | --------------------------------------------------- |\r\n| market        | str           | \u4ea4\u6613\u6240\u4ee3\u7801                                          |\r\n| code          | str           | \u6807\u7684                                                |\r\n| security_name | str           | \u6807\u7684\u540d\u79f0                                            |\r\n| security_type | ESecurityType | \u6807\u7684\u7c7b\u578b\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`ESecurityType` |\r\n| price_tick    | float         | \u6807\u7684\u4ef7\u683c\u53d8\u5316\u5355\u4f4d                                    |\r\n| buy_qty_unit  | int           | \u6807\u7684\u4e70\u5165\u57fa\u672c\u5355\u4f4d                                    |\r\n| sell_qty_unit | int           | \u6807\u7684\u5356\u51fa\u57fa\u672c\u5355\u4f4d                                    |\r\n\r\n\r\n\r\n## 2.3 HisQuoteSpi\u54cd\u5e94\u6570\u636e\u7c7b\r\n\r\n### 2.3.1 Calendar - \u4ea4\u6613\u65e5\u5386\r\n\r\n| \u5c5e\u6027     | \u7c7b\u578b                    | \u8bf4\u660e         |\r\n| -------- | ----------------------- | ------------ |\r\n| market   | str                     | \u4ea4\u6613\u6240       |\r\n| calendar | list[datetime.datetime] | \u65e5\u5386\u65f6\u95f4\u5217\u8868 |\r\n\r\n### 2.3.2 FundamentalsDatas - \u57fa\u672c\u9762\u6570\u636e\r\n\r\n| \u5c5e\u6027              | \u7c7b\u578b              | \u8bf4\u660e                                                         |\r\n| ----------------- | ----------------- | ------------------------------------------------------------ |\r\n| fundamentals_type | EFundamentalsType | \u57fa\u672c\u9762\u6570\u636e\u7c7b\u578b\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EFundamentalsType` |\r\n| market            | str               | \u4ea4\u6613\u6240\u4ee3\u7801                                                   |\r\n| code              | str               | \u6807\u7684\u4ee3\u7801                                                     |\r\n| datas             | pd.DataFrame      | \u6570\u636e\u8868\u683c                                                     |\r\n\r\n### 2.3.3 HisQuoteBar - \u5386\u53f2Bar\u884c\u60c5\u4fe1\u606f\r\n\r\n| \u5c5e\u6027          | \u7c7b\u578b              | \u8bf4\u660e                                        |\r\n| ------------- | ----------------- | ------------------------------------------- |\r\n| bob           | datetime.datetime | \u8d77\u59cb\u65f6\u95f4                                    |\r\n| eob           | datetime.datetime | \u7ed3\u675f\u65f6\u95f4                                    |\r\n| market        | str               | \u4ea4\u6613\u6240\u4ee3\u7801                                  |\r\n| code          | str               | \u6807\u7684\u4ee3\u7801                                    |\r\n| period        | EPeriod           | \u884c\u60c5\u7c92\u5ea6\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u89c1\u679a\u4e3e\u5e38\u91cf`EPeriod` |\r\n| open          | float             | \u5f00\u76d8\u4ef7/\u8d77\u59cb\u4ef7                               |\r\n| close         | float             | \u6536\u76d8\u4ef7/\u7ed3\u5c3e\u4ef7                               |\r\n| high          | float             | \u6700\u9ad8\u4ef7                                      |\r\n| low           | float             | \u6700\u4f4e\u4ef7                                      |\r\n| settle        | float             | \u7ed3\u7b97\u4ef7                                      |\r\n| total_amount  | float             | \u603b\u4ea4\u6613\u91d1\u989d                                  |\r\n| total_volume  | int               | \u603b\u4ea4\u6613\u91cf                                    |\r\n| total_positon | int               | \u603b\u6301\u4ed3\u91cf                                    |\r\n\r\n### 2.3.4 HisQuoteBarsMsg - \u5386\u53f2Bar\u884c\u60c5\u4fe1\u606f\r\n\r\n| \u5c5e\u6027           | \u7c7b\u578b              | \u8bf4\u660e            |\r\n| -------------- | ----------------- | --------------- |\r\n| his_quote_bars | list[HisQuoteBar] | \u5386\u53f2Bar\u884c\u60c5\u5217\u8868 |\r\n\r\n### 2.3.5 HisQuoteLoginRsp - \u5386\u53f2\u670d\u52a1\u767b\u5f55\u54cd\u5e94\r\n\r\n| \u5c5e\u6027       | \u7c7b\u578b             | \u8bf4\u660e                                                     |\r\n| ---------- | ---------------- | -------------------------------------------------------- |\r\n| error_code | EHisQuoteErrCode | \u767b\u5f55\u9519\u8bef\u7801\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EHisQuoteErrCode` |\r\n| error_msg  | str              | \u767b\u5f55\u9519\u8bef\u6d88\u606f                                             |\r\n\r\n### 2.3.6 HisQuoteTicksMsg - \u5386\u53f2Tick\u884c\u60c5\u4fe1\u606f\r\n\r\n| \u5c5e\u6027            | \u7c7b\u578b                | \u8bf4\u660e             |\r\n| --------------- | ------------------- | ---------------- |\r\n| his_quote_ticks | list[QuoteStockMsg] | \u5386\u53f2Tick\u884c\u60c5\u5217\u8868 |\r\n\r\n\r\n\r\n### 2.3.7 TradingCalendar - \u4ea4\u6613\u65e5\u5386\u4fe1\u606f\r\n\r\n| \u5c5e\u6027      | \u7c7b\u578b           | \u8bf4\u660e         |\r\n| --------- | -------------- | ------------ |\r\n| calendars | list[Calendar] | \u4ea4\u6613\u65e5\u5386\u4fe1\u606f |\r\n\r\n### 2.3.8 TradingDate - \u4ea4\u6613\u65e5\r\n\r\n| \u5c5e\u6027         | \u7c7b\u578b              | \u8bf4\u660e   |\r\n| ------------ | ----------------- | ------ |\r\n| market       | str               | \u4ea4\u6613\u6240 |\r\n| trading_date | datetime.datetime | \u4ea4\u6613\u65e5 |\r\n\r\n\r\n\r\n## 2.4 \u679a\u4e3e\u5e38\u91cf\u7c7b\r\n\r\n### 2.4.1 EAccStatus - \u8d26\u6237\u72b6\u6001\u7801\r\n```python\r\nKAccStatus_Unknown    = 0  # \u672a\u77e5\u72b6\u6001\r\nKAccStatus_Normal     = 1  # \u6b63\u5e38\r\nKAccStatus_WrittenOff = 2  # \u5df2\u6ce8\u9500\r\nKAccStatus_Disable    = 3  # \u5df2\u7981\u7528\r\n```\r\n### 2.4.2 EAdjust - \u590d\u6743\u65b9\u5f0f\r\n\r\n```python\r\nKAdjust_NONE  =  0  # \u4e0d\u590d\u6743\r\nKAdjust_PREV  =  1  # \u524d\u590d\u6743\r\nKAdjust_POST  =  2  # \u540e\u590d\u6743\r\n```\r\n\r\n### 2.4.3 EBusinessType - \u4e1a\u52a1\u7c7b\u578b\r\n\r\n```python\r\nKBusinessType_Unknown  =  0  # \u672a\u77e5\u7c7b\u578b\r\nKBusinessType_NORMAL   =  1  # \u666e\u901a\u4ea4\u6613\r\n```\r\n### 2.4.4 ECxRejReasonType - \u64a4\u5355\u62d2\u7edd\u539f\u56e0\u7c7b\u578b\r\n```python\r\n  KCxRejReasonType_TooLateCancel   =  0  # \u64a4\u5355\u592a\u665a\uff08Too late to cancel\uff09\r\n  KCxRejReasonType_UnknowOrder     =  1  # \u672a\u77e5\u8ba2\u5355\uff08Unknown order\uff09\r\n  KCxRejReasonType_Broker          =  2  # \u81ea\u9009\u539f\u56e0\uff08Broker / Exchange Option\uff09\r\n  KCxRejReasonType_PendingCancel   =  3  # \u6b63\u5728\u64a4\u6d88\uff08Order already in Pending Cancel or Pending Replace status\uff09\r\n  KCxRejReasonType_Duplicate       =  6  # \u6536\u5230\u91cd\u590d\u5355\uff08Duplicate ClOrdID received\uff09\r\n  KCxRejReasonType_Other           = 99  # \u5176\u4ed6\uff08other\uff09\r\n```\r\n### 2.4.5 EDepositRetCode - \u5165\u91d1\u9519\u8bef\u8fd4\u56de\u7801\r\n```python\r\nKDepositReCode_Unknown        = 0  # \u672a\u77e5\u9519\u8bef\r\nKDepositReCode_NoError        = 1  # \u65e0\u9519\u8bef\r\nKDepositReCode_NoEnoughCash   = 2  # \u8d44\u91d1\u4e0d\u8db3\r\nKDepositReCode_CapitalOverrun = 3  # \u8d44\u91d1\u8d85\u96509*10^17(added 20170410)\r\nKDepositReCode_IllegalAccount = 4  # \u975e\u6cd5\u4ea4\u6613\u8d26\u53f7(added 20170518)\r\nKDepositReCode_IllegalPara    = 5  # \u8bf7\u6c42\u53c2\u6570\u9519\u8bef(amount==0, type is unknow)\r\n```\r\n### 2.4.6 EExecType - \u6210\u4ea4\u56de\u62a5\u7c7b\u578b\r\n```python\r\nKExecType_Unknown        =  0  # \u672a\u77e5\u7c7b\u578b\r\nKExecType_New            =  1  # \u5df2\u62a5\r\nKExecType_DoneForDay     =  3  # \u5f53\u65e5\u5df2\u5b8c\u6210\r\nKExecType_Canceled       =  4  # \u5df2\u64a4\u9500\r\nKExecType_Replaced       =  5  # \u5df2\u4fee\u6539\r\nKExecType_PendingCancel  =  6  # \u5f85\u64a4\u9500\r\nKExecType_Stopped        =  7  # \u5df2\u505c\u6b62(\u5df2\u7ec8\u6b62)\r\nKExecType_Rejected       =  8  # \u5df2\u62d2\u7edd\r\nKExecType_Suspended      =  9  # \u6302\u8d77(\u5df2\u5ef6\u7f13)\r\nKExecType_PendingNew     = 65  #  'A' \u5f85\u62a5\r\nKExecType_Calculated     = 66  #  'B' \u5df2\u8ba1\u7b97\r\nKExecType_Expired        = 67  #  'C' \u8fc7\u671f\r\nKExecType_Restated       = 68  #  'D' \u91cd\u7f6e(\u4e3b\u52a8\u53d1\u9001)\r\nKExecType_PendingReplace = 69  #  'E' \u5f85\u4fee\u6539\r\nKExecType_Trade          = 70  #  'F' \u6210\u4ea4\u6216\u90e8\u5206\u6210\u4ea4\r\nKExecType_TradeCorrect   = 71  #  'G' \u6210\u4ea4\u66f4\u6b63\r\nKExecType_TradeCancel    = 72  #  'H' \u6210\u4ea4\u64a4\u9500\r\nKExecType_OrderStatus    = 73  #  'I' \u59d4\u6258\u72b6\u6001\r\n```\r\n### 2.4.7 EFundamentalsType - \u8d22\u52a1\u6570\u636e\u7c7b\u578b\r\n\r\n```python\r\nKFundamentalsType_Unknown            =  0  #\r\nKFundamentalsType_TradingDerivative  =  1  # \u80a1\u7968\u4ea4\u6613\u884d\u751f\r\nKFundamentalsType_BalanceSheet       =  2  # \u8d44\u4ea7\u8d1f\u503a\r\nKFundamentalsType_Cashflow           =  3  # \u73b0\u91d1\u6d41\u91cf\r\nKFundamentalsType_Income             =  4  # \u5229\u6da6\u8868\r\nKFundamentalsType_Prim               =  5  # \u4e3b\u8981\u8d22\u52a1\u6307\u6807\r\nKFundamentalsType_Deriv              =  6  # \u884d\u751f\u8d22\u52a1\u6307\u6807\r\n```\r\n\r\n### 2.4.8 EHisQuoteErrCode - \u5386\u53f2\u884c\u60c5\u670d\u52a1\u9519\u8bef\u7801\r\n\r\n```python\r\nKHisQuoteErrCode_Unknown                =  0       # \u672a\u77e5\r\nKHisQuoteErrCode_LoginSucc              =  1       # \u767b\u5f55\u6210\u529f\r\nKHisQuoteErrCode_SystemError            =  201100  # \u7cfb\u7edf\u9519\u8bef\r\nKHisQuoteErrCode_ReqTypeUnknown         =  201101  # \u672a\u77e5\u8bf7\u6c42\u7c7b\u578b\r\nKHisQuoteErrCode_DoNotLogin             =  201102  # \u6ca1\u6709\u767b\u5f55\r\nKHisQuoteErrCode_NotTradeDay            =  201103  # \u975e\u4ea4\u6613\u65e5\r\nKHisQuoteErrCode_NotTradeTime           =  201104  # \u975e\u4ea4\u6613\u65f6\u95f4\r\nKHisQuoteErrCode_StaffNotExist          =  201111  # \u673a\u6784\u5458\u5de5\u4e0d\u5b58\u5728\r\nKHisQuoteErrCode_ErrStaffLoginPasswd    =  201112  # \u673a\u6784\u5458\u5de5\u767b\u5f55\u5bc6\u7801\u9519\u8bef\r\nKHisQuoteErrCode_ErrStaffLoginSkey      =  201113  # \u673a\u6784\u5458\u5de5skey\u6821\u9a8c\u5931\u8d25\r\nKHisQuoteErrCode_StaffLogOutFailed      =  201114  # \u673a\u6784\u5458\u5de5\u767b\u51fa\u5931\u8d25\r\nKHisQuoteErrCode_NoPrivilegeAdmin       =  201115  # \u673a\u6784\u5458\u5de5\u6ca1\u6709\u5bf9\u5e94\u7684\u7ba1\u7406\u6743\u9650\r\nKHisQuoteErrCode_StaffAccountForbidden  =  201116  # \u673a\u6784\u5458\u5de5\u5e10\u6237\u88ab\u7981\u7528\r\n```\r\n\r\n### 2.4.9 ELoginRetCode - \u767b\u5f55\u6210\u529f\u60c5\u51b5\u8fd4\u56de\u7801\r\n\r\n```python\r\nKLoginReCode_Unknown       = 0  # \u672a\u77e5\u9519\u8bef\r\nKLoginReCode_LoginSucc     = 1  # \u767b\u5f55\u6210\u529f\r\nKLoginReCode_UnknownAcc    = 2  # \u672a\u77e5\u8d26\u53f7 \u6216 \u5bc6\u7801\u9519\u8bef\r\nKLoginReCode_AccUnNormal   = 3  # \u975e\u6b63\u5e38\u72b6\u6001\u7684\u8d26\u53f7(\u5df2\u6ce8\u9500/\u5df2\u7981\u7528)\r\n```\r\n### 2.4.10 EMarketDataType - \u884c\u60c5\u7c7b\u578b\r\n\r\n```python\r\nKMarketDataType_Unknown  =  0  # \u672a\u77e5\r\nKMarketDataType_Actual   =  1  # \u73b0\u8d27\r\nKMarketDataType_SOption  =  2  # \u73b0\u8d27\u671f\u6743\r\nKMarketDataType_Future   =  3  # \u671f\u8d27|\u671f\u8d27\u671f\u6743\r\n```\r\n\r\n### 2.4.11 ESecurityType - \u6807\u7684\u7c7b\u578b\r\n\r\n```python\r\nKSecurityType_Unknown       =  0  # \u672a\u77e5\r\nKSecurityType_Stock         =  1  # \u666e\u901a\u80a1\u7968\r\nKSecurityType_Option        =  2  # \u671f\u6743(\u80a1\u7968)\r\nKSecurityType_Fund          =  3  # \u57fa\u91d1\r\nKSecurityType_Index         =  4  # \u6307\u6570(\u80a1\u7968)\r\nKSecurityType_Bond          =  5  # \u503a\u5238\r\nKSecurityType_Future        =  6  # \u671f\u8d27\r\nKSecurityType_FutureOption  =  7  # \u671f\u6743(\u671f\u8d27)\r\nKSecurityType_IndexFuture   =  8  # \u6307\u6570(\u671f\u8d27)\r\n```\r\n\r\n### 2.4.12 EOrderRejectReason - \u59d4\u6258\u62d2\u7edd\u539f\u56e0\r\n\r\n```python\r\nKOrderRejectReason_NoError             =   0   # \u65e0\u9519\u8bef\r\nKOrdRejReason_UnknownSymbol            =   1   # \u8bc1\u5238\u4ee3\u7801\u975e\u6cd5\uff08Unknown symbol\uff09\r\nKOrdRejReason_ExchangeClosed           =   2   # \u4ea4\u6613\u5173\u95ed\uff08Exchange closed\uff09\r\nKOrdRejReason_OrdExceedsLimit          =   3   # \u8ba2\u5355\u8d85\u8fc7\u9650\u4ef7\uff08Order exceeds limit\uff09\r\nKOrdRejReason_TooLateEnter             =   4   # \u8ba2\u5355\u592a\u8fdf\uff08Too late to enter\uff09\r\nKOrdRejReason_UnknowOrd                =   5   # \u672a\u77e5\u8ba2\u5355\uff08Unknown Order\uff09\r\nKOrdRejReason_DuplicateOrd             =   6   # \u91cd\u590d\u8ba2\u5355\uff08 Duplicate Order (e.g. dupe ClOrdID)\uff09\r\nKOrdRejReason_StaleOrd                 =   8   # \u5931\u6548\u8ba2\u5355\uff08Stale Order\uff09\r\nKOrdRejReason_InvalidAcc               =  10   # \u65e0\u6548\u8d26\u6237\uff08Invalid Investor ID\uff09\r\nKOrdRejReason_UnsupportedOrdChara      =  11   # \u4e0d\u652f\u6301\u7684\u8ba2\u5355\u7279\u5f81\uff08Unsupported order characteristic\uff09\r\nKOrdRejReason_IncorrectQty             =  13   # \u6570\u91cf\u9519\u8bef\uff08Incorrect quantity\uff09\r\nKOrdRejReason_UnknownAcc               =  15   # \u672a\u77e5\u8d26\u53f7\uff08Unknown account(s)\uff09\r\nKOrdRejReason_NotEnoughPosition        =  16   # \u6301\u4ed3\u4e0d\u8db3\r\nKOrdRejReason_SecuritiesTrading        =  102  # \u8bc1\u5238\u505c\u724c(\u83b7\u53d6\u884c\u60c5\u5931\u8d25)\r\nKOrdRejReason_QtyNonMultipleBuyUnit    =  103  # \u4e70\u8ba2\u5355\u6570\u91cf\u4e0d\u662fSJSXX.XXBLDW \u7684\u6574\u6570\u500d\uff1b\u6216\r\nKOrdRejReason_PriceNonMultipleTick     =  106  # \u59d4\u6258\u4ef7\u683c\u4e0d\u662fSJSXX.XXJGDW \u7684\u6574\u6570\u500d\r\nKOrdRejReason_IllegalEntrustedBusiness =  108  # \u975e\u6cd5\u7684\u59d4\u6258\u4e1a\u52a1\r\nKOrdRejReason_LackDeposit              =  117  # \u53c2\u4e0e\u8005\u4e1a\u52a1\u5355\u5143\u8d44\u91d1\u53ef\u7528\u91cf\u4e0d\u8db3\r\nKOrdRejReason_PriceError               =  125  # \u4ef7\u683c\u9519\u8bef\r\nKOrdRejReason_InvalidBusinessCategory  =  148  # \u65e0\u6548\u4e1a\u52a1\u7c7b\u522b(order_type)\r\nKOrdRejReason_NonTradingTime           =  204  # \u975e\u4ea4\u6613\u65f6\u95f4\uff08This stock is not in tradinghours\uff09\r\nKOrdRejReason_PriceZero                =  219  # \u7533\u62a5\u4ef7\u4e0d\u80fd\u4e3a\u96f6\uff08Price may not be 0 fora limit order\uff09\r\n```\r\n### 2.4.13 EOrderSide - \u4e70\u5356\u65b9\u5411\r\n```python\r\nKOrderDirection_Unknown         =  0  # \u672a\u77e5\u65b9\u5411\r\nKOrderDirection_Buy             = 49  # \u4e70\u5165\r\nKOrderDirection_Sell            = 50  # \u5356\u51fa\r\nKOrderDirection_Call            = 68  # \u8ba4\u8d2d\r\nKOrderDirection_Callable        = 69  # \u8d4e\u56de\r\nKOrderDirection_FinancingToBuy  = 70  # \u878d\u8d44\u4e70\u5165\r\nKOrderDirection_FinancingToSell = 71  # \u878d\u8d44\u5356\u51fa\r\n```\r\n### 2.4.14 EOrderStatus - \u59d4\u6258\u72b6\u6001\r\n```python\r\nKOrderStatus_Unknown            =  0  # \u672a\u77e5\u72b6\u6001\r\nKOrderStatus_New                =  1  # \u5df2\u62a5\r\nKOrderStatus_PartiallyFilled    =  2  # \u90e8\u6210\r\nKOrderStatus_Filled             =  3  # \u5df2\u6210\r\nKOrderStatus_DoneForDay         =  4  # \u5f53\u65e5\u5df2\u5b8c\u6210\r\nKOrderStatus_Canceled           =  5  # \u5df2\u64a4\r\nKOrderStatus_PendingCancel      =  6  # \u5f85\u64a4\r\nKOrderStatus_Stopped            =  7  # \u505c\u6b62\r\nKOrderStatus_Rejected           =  8  # \u62d2\u7edd\r\nKOrderStatus_Suspended          =  9  # \u6302\u8d77\r\nKOrderStatus_PendingNew         = 65  # 'A'\u5f85\u62a5\r\nKOrderStatus_Calculated         = 66  # 'B'\u8ba1\u7b97\r\nKOrderStatus_Expired            = 67  # 'C'\u5df2\u8fc7\u671f\r\nKOrderStatus_AcceptedForBidding = 68  # 'D'\u63a5\u53d7\u7ade\u4ef7\r\nKOrderStatus_PendingReplace     = 69  # 'E'\u5f85\u4fee\u6539\r\n```\r\n### 2.4.15 EOrderType - \u59d4\u6258\u7c7b\u578b\r\n```python\r\nKOrderType_Unknown               =  0  # \u672a\u77e5\u7c7b\u578b\r\nKOrderType_Market                =  1  # \u5e02\u4ef7\u59d4\u6258\r\nKOrderType_Limit                 =  2  # \u9650\u4ef7\u59d4\u6258\r\nKOrderType_Stop                  =  4  # \u6b62\u635f\u59d4\u6258\r\nKOrderType_Best_5_Then_Cancel    =  7  # \u5e02\u4ef7\u6700\u4f18\u4e94\u6863\u5269\u4f59\u64a4\u9500\r\nKOrderType_Best_5_Then_Limit     =  8  # \u5e02\u4ef7\u6700\u4f18\u4e94\u6863\u5269\u4f59\u8f6c\u9650\u4ef7\r\nKOrderType_Immediately_Or_Cancel =  9  # \u5e02\u4ef7\u5373\u65f6\u6210\u4ea4\u5269\u4f59\u64a4\u9500\r\nKOrderType_All_Or_Cancel         = 10  # \u5e02\u4ef7\u5373\u65f6\u5168\u90e8\u6210\u4ea4\u6216\u64a4\u9500\r\nKOrderType_Market_Then_Limit     = 75  # \u5e02\u4ef7\u5269\u4f59\u8f6c\u9650\u4ef7\r\nKOrderType_Best_Of_Party         = 85  # \u672c\u65b9\u6700\u4f18\u4ef7\u683c\r\nKOrderType_Best_Of_Conterparty   = 86  # \u5bf9\u65b9\u6700\u4f18\u4ef7\u683c\r\n```\r\n### 2.4.16 EQuoteRetCode - \u884c\u60c5\u8ba2\u9605\u6210\u8d25\u8fd4\u56de\u7801\r\n\r\n```python\r\nKQuoteRetCode_Unknown   =  0  # \u672a\u77e5\r\nKQuoteRetCode_Sucess    =  1  # \u8ba2\u9605/\u53d6\u6d88\u8ba2\u9605\u6210\u529f\r\nKQuoteRetCode_HasError  =  2  # \u8ba2\u9605/\u53d6\u6d88\u8ba2\u9605\u51fa\u9519\r\n```\r\n\r\n### 2.4.17 EPeriod - \u5386\u53f2\u6570\u636e\u5468\u671f\r\n\r\n```python\r\nKPeriod_Unknown       =  0  # \u672a\u77e5\r\nKPeriod_ONE_MIN       =  1  # \u4e00\u5206\u949f\r\nKPeriod_FIVE_MIN      =  2  # \u4e94\u5206\u949f\r\nKPeriod_FIFTEEN_NMIN  =  3  # \u5341\u4e94\u5206\u949f\r\nKPeriod_HALF_HOUR     =  4  # \u534a\u5c0f\u65f6\r\nKPeriod_ONE_HOUR      =  5  # \u4e00\u5c0f\u65f6\r\nKPeriod_DAILY         =  6  # \u4e00\u5929\r\n```\r\n\r\n### 2.4.18 EPositionEffect - \u5f00\u5e73\u65b9\u5411\r\n\r\n```python\r\nKPositionEffect_Unknown         =  0  # \u672a\u77e5\u65b9\u5411\r\nKPositionEffect_Open            = 48  # '0';\u5f00\u4ed3\r\nKPositionEffect_Close           = 49  # '1';\u5e73\u4ed3\r\nKPositionEffect_ForceClose      = 50  # '2';\u5f3a\u5e73\r\nKPositionEffect_CloseToday      = 51  # '3';\u5e73\u4eca\r\nKPositionEffect_CloseYesterday  = 52  # '4';\u5e73\u6628\r\n```\r\n### 2.4.19 ERegisterRet - \u6ce8\u518c\u5b8c\u6210\u60c5\u51b5\u8fd4\u56de\u7801\r\n```python\r\nKRegisterRet_Unknown         = 0  # \u672a\u77e5\u9519\u8bef\r\nKRegisterRet_Success         = 1  # \u6ce8\u518c\u6210\u529f\r\nKRegisterRet_ReRegister      = 2  # \u91cd\u590d\u6ce8\u518c\r\nKRegisterRet_InvalidStrategy = 3  # \u65e0\u6548\u6216\u975e\u6cd5 strategy_id\r\n```\r\n\r\n### 2.4.20 ESecurityType - \u6807\u7684\u7c7b\u578b\r\n\r\n```python\r\nKSecurityType_Unknown       =  0  # \u672a\u77e5\r\nKSecurityType_Stock         =  1  # \u666e\u901a\u80a1\u7968\r\nKSecurityType_Option        =  2  # \u671f\u6743(\u80a1\u7968)\r\nKSecurityType_Fund          =  3  # \u57fa\u91d1\r\nKSecurityType_Index         =  4  # \u6307\u6570(\u80a1\u7968)\r\nKSecurityType_Bond          =  5  # \u503a\u5238\r\nKSecurityType_Future        =  6  # \u671f\u8d27\r\nKSecurityType_FutureOption  =  7  # \u671f\u6743(\u671f\u8d27)\r\nKSecurityType_IndexFuture   =  8  # \u6307\u6570(\u671f\u8d27)\r\n```\r\n\r\n\r\n\r\n---\r\n\r\n\r\n\r\n# 3 \u4f7f\u7528\u987b\u77e5\r\n\r\n## 3.1 \u65e5\u5fd7\u8bb0\u5f55\u529f\u80fd\r\n\r\nSDK\u57fa\u4e8elogging\u6a21\u5757\u5b9e\u73b0\u4e86\u5168\u5c40\u65e5\u5fd7\u8bb0\u5f55\u529f\u80fd\u3002\r\n\r\n### 3.1.1 set_root_logger - \u8bbe\u7f6e\u5168\u5c40Root\u65e5\u5fd7\r\n\r\n- \u51fd\u6570\u7b7e\u540d\r\n\r\n  > ```python\r\n  > 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)  # \u8bbe\u7f6e\u5168\u5c40Root\u65e5\u5fd7\r\n  > \r\n  > def debug(*msgs)  # \u8bb0\u5f55\u6d4b\u8bd5\u4fe1\u606f\r\n  > def log(*msgs)  # \u8bb0\u5f55\u6b63\u5e38\u4fe1\u606f\r\n  > def warning(*msgs)  # \u8bb0\u5f55\u8b66\u544a\u4fe1\u606f\r\n  > def error(*msgs)  # \u8bb0\u5f55\u9519\u8bef\u4fe1\u606f\r\n  > def critical(*msgs) # \u8bb0\u5f55\u4e25\u91cd\u9519\u8bef\u4fe1\u606f\r\n  > ```\r\n\r\n- \u53c2\u6570\r\n\r\n  > | \u53c2\u6570           | \u7c7b\u578b | \u9ed8\u8ba4\u503c           | \u8bf4\u660e                                                         |\r\n  > | -------------- | ---- | ---------------- | ------------------------------------------------------------ |\r\n  > | name           | str  | None             | Root\u65e5\u5fd7\u540d\u79f0\uff0c\u9ed8\u8ba4\u4e3a`\"Root\"`                                 |\r\n  > | filename       | str  | None             | \u65e5\u5fd7\u8f93\u51fa\u5b58\u50a8\u6587\u4ef6\u8def\u5f84\uff0c\u82e5\u672a\u8bbe\u7f6e\u5219\u76f4\u63a5\u6253\u5370\u8f93\u51fa\u65e5\u5fd7             |\r\n  > | level          | int  | ac.INFO          | \u65e5\u5fd7\u8bb0\u5f55\u7b49\u7ea7\uff0c\u9ed8\u8ba4\u8bb0\u5f55`INFO`\u7ea7\u522b\u53ca\u4ee5\u4e0a\u65e5\u5fd7\uff0c\u4f4e\u4e8e`INFO`\u7ea7\u522b\u7684\u65e5\u5fd7\u4f1a\u88ab\u5ffd\u7565\u3002\u53ef\u9009\u65e5\u5fd7\u7ea7\u522b\u6709\uff08\u65e5\u5fd7\u7ea7\u522b\u4ece\u5c0f\u5230\u5927\uff09\uff1a`NOTSET`, `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` |\r\n  > | level_name     | dict | ac.LEVEL_NAME_CN | \u65e5\u5fd7\u7ea7\u522b\u540d\u79f0\uff0c\u9ed8\u8ba4\u663e\u793a\u65e5\u5fd7\u7684\u4e2d\u6587\u540d\u3002\u53ef\u9009\u503c\u6709\uff1a`LEVEL_NAME_CN`\uff08\u4e2d\u6587\uff09\u3001`LEVEL_NAME_EN`\uff08\u82f1\u6587\uff09\u3001`None`\uff08\u4e0d\u663e\u793a\u65e5\u5fd7\u7ea7\u522b\u540d\u79f0\uff09\u6216`\u81ea\u5b9a\u4e49dict`\uff08\u5982`{NOTSET: \"\u7f3a\u7701\", DEBUG: \"\u6d4b\u8bd5\", INFO: \"\u65e5\u5fd7\", WARNING: \"\u8b66\u544a\", ERROR: \"\u9519\u8bef\", CRITICAL: \"\u81f4\u547d\", }`\uff09 |\r\n  > | fmt            | str  | None             | \u65e5\u5fd7\u8f93\u51fa\u683c\u5f0f\uff0c\u5177\u4f53\u683c\u5f0f\u53c2\u89c1`logging`\u5e93                        |\r\n  > | datefmt        | str  | None             | \u65f6\u95f4\u8f93\u51fa\u683c\u5f0f\uff0c\u4ec5\u5f53\u65e5\u5fd7\u8f93\u51fa\u683c\u5f0f\u4e2d\u9700\u8981\u8f93\u51fa\u65f6\u95f4\u65f6\u751f\u6548\uff0c\u5177\u4f53\u683c\u5f0f\u53c2\u89c1`logging`\u5e93 |\r\n  > | msec           | int  | MILLSECOND       | \u5fae\u79d2\u4fdd\u7559\u90e8\u5206\uff0c\u4ec5\u5f53`datefmt`\u751f\u6548\u65f6\u6709\u6548\uff0c\u9ed8\u8ba4\u4fdd\u7559\u81f3\u6beb\u79d2\u3002\u53ef\u9009\u503c\u6709\uff1a`NOMICROSECOND`\uff08\u4e0d\u4fdd\u7559\u5fae\u79d2\u90e8\u5206\uff09\uff0c`MICROSECOND`\uff08\u4fdd\u7559\u81f3\u5fae\u79d2\uff09\uff0c`MILLSECOND`\uff08\u4fdd\u7559\u81f3\u6beb\u79d2\uff09 |\r\n  > | log_colors     | dict | None             | \u65e5\u5fd7\u8f93\u51fa\u989c\u8272\u3002\u9ed8\u8ba4\u4f7f\u7528\u989c\u8272\u65b9\u6848\u4e3a\uff1a`{'DEBUG': 'green', 'INFO': 'white',  'WARNING': 'yellow', 'ERROR': 'red', 'CRITICAL': 'bold_red'}`\uff0c\u5177\u4f53\u53c2\u89c1`colorlog`\u5e93 |\r\n  > | hint_left      | str  | '['              | \u6a21\u5757\u63d0\u793a\u7b26\u5de6\u90e8\u5206                                             |\r\n  > | hint_right     | str  | ']'              | \u6a21\u5757\u63d0\u793a\u7b26\u53f3\u90e8\u5206                                             |\r\n  > | hint_separator | str  | ' '              | \u6a21\u5757\u95f4\u5206\u5272\u7b26                                                 |\r\n  > | farewell       | bool | True             | \u662f\u5426\u5728\u9000\u51fa\u7a0b\u5e8f\u65f6\u8f93\u51fa\u544a\u522b\u8bed                                   |\r\n  > | farewell_text  | str  | None             | \u9000\u51fa\u7a0b\u5e8f\u65f6\u8f93\u51fa\u7684\u544a\u522b\u8bed\uff0c\u4ec5\u5f53`farewell=True`\u65f6\u751f\u6548\uff0c`farewell_text=None`\u65f6\u8868\u793a\u4f7f\u7528\u9ed8\u8ba4\u544a\u522b\u8bed |\r\n  > | disable        | bool | False            | \u662f\u5426\u7981\u7528Root\u65e5\u5fd7                                             |\r\n\r\n- \u793a\u4f8b\r\n\r\n  > ```python\r\n  > import AztClient as ac\r\n  > \r\n  > ac.set_root_logger(level=ac.DEBUG, level_name=ac.LEVEL_NAME_CN)\r\n  > ac.debug(\"hello debug\")\r\n  > ac.info(\"hello info\")\r\n  > ac.warning(\"hello warning\")\r\n  > ac.error(\"hello error\")\r\n  > ac.critical(\"hello critical\")\r\n  > \r\n  > ac.set_root_logger(name=\"NewRoot\", level=ac.WARNING, level_name=ac.LEVEL_NAME_EN)\r\n  > ac.debug(\"hello debug\")\r\n  > ac.info(\"hello info\")\r\n  > ac.warning(\"hello warning\")\r\n  > ac.error(\"hello error\")\r\n  > ac.critical(\"hello critical\")\r\n  > \r\n  > new_level_name = {\r\n  >     ac.DEBUG: \"new\u6d4b\u8bd5\",\r\n  >     ac.INFO: \"new\u65e5\u5fd7\",\r\n  >     ac.WARNING: \"new\u8b66\u544a\",\r\n  >     ac.ERROR: \"new\u9519\u8bef\",\r\n  >     ac.CRITICAL: \"new\u81f4\u547d\",\r\n  > }\r\n  > ac.set_root_logger(name=None, level_name=new_level_name, farewell_text=\"bye bye~\")\r\n  > ac.info(\"hello info\")\r\n  > ac.warning(\"hello warning\")\r\n  > ac.error(\"hello error\")\r\n  > ac.critical(\"hello critical\")\r\n  > ```\r\n\r\n### 3.1.2 get_logger - \u83b7\u53d6logger\u5bf9\u8c61\r\n\r\n- \u51fd\u6570\u7b7e\u540d\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- \u53c2\u6570\r\n\r\n  > | \u53c2\u6570           | \u7c7b\u578b | \u9ed8\u8ba4\u503c           | \u8bf4\u660e                                                         |\r\n  > | -------------- | ---- | ---------------- | ------------------------------------------------------------ |\r\n  > | name           | str  | None             | \u65e5\u5fd7\u540d\u79f0\uff0c\u9ed8\u8ba4\u83b7\u53d6\u5168\u5c40Root\u65e5\u5fd7\u5bf9\u8c61\uff1b\u5982\u679c\u65e5\u5fd7\u4e0d\u5b58\u5728\u5219\u81ea\u52a8\u65b0\u5efa\u4e00\u4e2a\u65e5\u5fd7\u5bf9\u8c61\uff0c\u82e5\u5b58\u5728\u5219\u76f4\u63a5\u83b7\u53d6\u5df2\u521b\u5efa\u65e5\u5fd7\u5bf9\u8c61 |\r\n  > | filename       | str  | None             | \u65e5\u5fd7\u8f93\u51fa\u5b58\u50a8\u6587\u4ef6\u8def\u5f84\uff0c\u82e5\u672a\u8bbe\u7f6e\u5219\u76f4\u63a5\u6253\u5370\u8f93\u51fa\u65e5\u5fd7             |\r\n  > | level          | int  | ac.INFO          | \u65e5\u5fd7\u8bb0\u5f55\u7b49\u7ea7\uff0c\u9ed8\u8ba4\u8bb0\u5f55`INFO`\u7ea7\u522b\u53ca\u4ee5\u4e0a\u65e5\u5fd7\uff0c\u4f4e\u4e8e`INFO`\u7ea7\u522b\u7684\u65e5\u5fd7\u4f1a\u88ab\u5ffd\u7565\u3002\u53ef\u9009\u65e5\u5fd7\u7ea7\u522b\u6709\uff08\u65e5\u5fd7\u7ea7\u522b\u4ece\u5c0f\u5230\u5927\uff09\uff1a`NOTSET`, `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` |\r\n  > | level_name     | dict | ac.LEVEL_NAME_CN | \u65e5\u5fd7\u7ea7\u522b\u540d\u79f0\uff0c\u9ed8\u8ba4\u663e\u793a\u65e5\u5fd7\u7684\u4e2d\u6587\u540d\u3002\u53ef\u9009\u503c\u6709\uff1a`LEVEL_NAME_CN`\uff08\u4e2d\u6587\uff09\u3001`LEVEL_NAME_EN`\uff08\u82f1\u6587\uff09\u3001`None`\uff08\u4e0d\u663e\u793a\u65e5\u5fd7\u7ea7\u522b\u540d\u79f0\uff09\u6216`\u81ea\u5b9a\u4e49dict`\uff08\u5982`{NOTSET: \"\u7f3a\u7701\", DEBUG: \"\u6d4b\u8bd5\", INFO: \"\u65e5\u5fd7\", WARNING: \"\u8b66\u544a\", ERROR: \"\u9519\u8bef\", CRITICAL: \"\u81f4\u547d\", }`\uff09 |\r\n  > | fmt            | str  | None             | \u65e5\u5fd7\u8f93\u51fa\u683c\u5f0f\uff0c\u5177\u4f53\u683c\u5f0f\u53c2\u89c1`logging`\u5e93                        |\r\n  > | datefmt        | str  | None             | \u65f6\u95f4\u8f93\u51fa\u683c\u5f0f\uff0c\u4ec5\u5f53\u65e5\u5fd7\u8f93\u51fa\u683c\u5f0f\u4e2d\u9700\u8981\u8f93\u51fa\u65f6\u95f4\u65f6\u751f\u6548\uff0c\u5177\u4f53\u683c\u5f0f\u53c2\u89c1`logging`\u5e93 |\r\n  > | msec           | int  | MILLSECOND       | \u5fae\u79d2\u4fdd\u7559\u90e8\u5206\uff0c\u4ec5\u5f53`datefmt`\u751f\u6548\u65f6\u6709\u6548\uff0c\u9ed8\u8ba4\u4fdd\u7559\u81f3\u6beb\u79d2\u3002\u53ef\u9009\u503c\u6709\uff1a`NOMICROSECOND`\uff08\u4e0d\u4fdd\u7559\u5fae\u79d2\u90e8\u5206\uff09\uff0c`MICROSECOND`\uff08\u4fdd\u7559\u81f3\u5fae\u79d2\uff09\uff0c`MILLSECOND`\uff08\u4fdd\u7559\u81f3\u6beb\u79d2\uff09 |\r\n  > | log_colors     | dict | None             | \u65e5\u5fd7\u8f93\u51fa\u989c\u8272\u3002\u9ed8\u8ba4\u4f7f\u7528\u989c\u8272\u65b9\u6848\u4e3a\uff1a`{'DEBUG': 'green', 'INFO': 'white',  'WARNING': 'yellow', 'ERROR': 'red', 'CRITICAL': 'bold_red'}`\uff0c\u5177\u4f53\u53c2\u89c1`colorlog`\u5e93 |\r\n  > | hint_left      | str  | '['              | \u6a21\u5757\u63d0\u793a\u7b26\u5de6\u90e8\u5206                                             |\r\n  > | hint_right     | str  | ']'              | \u6a21\u5757\u63d0\u793a\u7b26\u53f3\u90e8\u5206                                             |\r\n  > | hint_separator | str  | ' '              | \u6a21\u5757\u95f4\u5206\u5272\u7b26                                                 |\r\n  > | new            | bool | False            | \u662f\u5426\u521b\u5efa\u4e00\u4e2a\u65b0\u7684logger\u3002\u5f53new=False\u65f6\uff0c\u82e5\u65e5\u5fd7\u540d\u79f0\u5df2\u5b58\u5728\uff0c\u5219\u76f4\u63a5\u83b7\u53d6\u5df2\u5b58\u5728\u65e5\u5fd7\uff0c\u5176\u4ed6\u53c2\u6570\u5373\u4f7f\u53d1\u751f\u4fee\u6539\u4e5f\u4e0d\u4f1a\u751f\u6548\uff1b\u5f53new=True\u65f6\uff0c\u82e5\u65e5\u5fd7\u5df2\u5b58\u5728\uff0c\u5219\u5220\u9664\u5df2\u5b58\u5728\u65e5\u5fd7\u5bf9\u8c61\uff0c\u751f\u6210\u65b0\u7684\u65e5\u5fd7\u5bf9\u8c61 |\r\n\r\n- \u793a\u4f8b\r\n\r\n  > ```python\r\n  > import AztClient as ac\r\n  > \r\n  > logger = ac.get_logger(name=\"test\", level=ac.DEBUG, level_name=ac.LEVEL_NAME_CN)\r\n  > logger.debug(\"hello debug\")\r\n  > logger.info(\"hello info\")\r\n  > logger.warning(\"hello warning\")\r\n  > logger.error(\"hello error\")\r\n  > logger.critical(\"hello critical\")\r\n  > \r\n  > logger = ac.get_logger(name=\"test\", level=ac.WARNING, level_name=ac.LEVEL_NAME_EN)  # \u4fee\u6539\u4e00\u4e0b\u53c2\u6570\uff0c\u4f46\u4e0d\u4f1a\u751f\u6548\r\n  > logger.debug(\"hello debug\")\r\n  > logger.info(\"hello info\")\r\n  > logger.warning(\"hello warning\")\r\n  > logger.error(\"hello error\")\r\n  > logger.critical(\"hello critical\")\r\n  > \r\n  > logger = ac.get_logger(name=\"test\", level=ac.WARNING, level_name=ac.LEVEL_NAME_EN, new=True)  # \u8986\u76d6\u539f\u6765\u7684logger\uff0c\u4fee\u6539\u53c2\u6570\u53ef\u4ee5\u751f\u6548\r\n  > logger.debug(\"hello debug\")\r\n  > logger.info(\"hello info\")\r\n  > logger.warning(\"hello warning\")\r\n  > logger.error(\"hello error\")\r\n  > logger.critical(\"hello critical\")\r\n  > ```\r\n\r\n\r\n\r\n## 3.2 \u6982\u5ff5 - \u540c\u6b65\u5f02\u6b65\u6a21\u5f0f\r\n\r\n### 3.2.1 \u5b9a\u4e49\r\n\r\n**\u540c\u6b65\u6a21\u5f0f**\uff1a\u5ba2\u6237\u7aef\u5411\u670d\u52a1\u7aef\u53d1\u9001\u8bf7\u6c42\u540e\uff0c\u963b\u585e\u7b49\u5f85\u8bf7\u6c42\u7684\u54cd\u5e94\r\n\r\n**\u5f02\u6b65\u6a21\u5f0f**\uff1a\u5ba2\u6237\u7aef\u5411\u670d\u52a1\u5668\u53d1\u9001\u8bf7\u6c42\u540e\uff0c\u4e0d\u963b\u585e\u7b49\u5f85\uff0c\u5ba2\u6237\u7aef\u53ef\u4ee5\u9a6c\u4e0a\u5904\u7406\u5176\u4ed6\u4efb\u52a1\uff1b\u670d\u52a1\u7aef\u5bf9\u5ba2\u6237\u7aef\u7684\u8bf7\u6c42\u5c06\u901a\u8fc7\u8c03\u7528\u6307\u5b9a\u7684spi\u51fd\u6570\u54cd\u5e94\uff08\u6545\u4ea6\u53ef\u79f0**\u56de\u8c03\u6a21\u5f0f**\uff09\r\n\r\n### 3.2.2 \u5e94\u7528\r\n\r\n- \u51e1\u662f\u63a5\u53d7**`sync`**\u53c2\u6570\u7684\u63a5\u53e3\uff0c\u90fd\u540c\u65f6\u652f\u6301\u540c\u6b65\u6a21\u5f0f\u548c\u5f02\u6b65\u6a21\u5f0f\u3002\r\n\r\n  > - \u5f53`sync=True`\u65f6\uff0c\u63a5\u53e3\u4f1a\u963b\u585e\uff0c\u76f4\u81f3\u8d85\u65f6\u6216\u6536\u5230\u54cd\u5e94\u6d88\u606f\u65f6\uff0c\u8fd4\u56de\u54cd\u5e94\u6d88\u606f\uff1b\u82e5\u7528\u6237\u540c\u65f6\u5b9e\u73b0\u4e86\u63a5\u53e3\u7684spi\uff0c\u6d88\u606f\u4e5f\u4f1a\u518d\u901a\u8fc7\u8c03\u7528spi\u51fd\u6570\u8fd4\u56de\r\n  > - \u5f53`sync=False`\u65f6\uff0c\u63a5\u53e3\u51fd\u6570\u4f1a\u76f4\u63a5\u9000\u51fa\uff0c\u5982\u679c\u6709\u54cd\u5e94\u6d88\u606f\uff0c\u5219\u6d88\u606f\u4f1a\u901a\u8fc7\u8c03\u7528\u5df2\u5b9e\u73b0\u7684spi\u51fd\u6570\u8fd4\u56de\r\n\r\n- \u82e5\u4e0d\u63a5\u53d7sync\u53c2\u6570\uff0c\u5219\u9700\u8981\u67e5\u770b\u662f\u5426\u5b58\u5728\u5bf9\u5e94\u7684spi\u51fd\u6570\r\n\r\n  > - \u82e5\u5b58\u5728\u53ef\u5b9e\u73b0\u7684spi\u51fd\u6570\uff0c\u5219\u8868\u660e\u9ed8\u8ba4\u4f7f\u7528\u5f02\u6b65\u6a21\u5f0f\r\n  >\r\n  > - \u82e5\u4e0d\u5b58\u5728\uff0c\u5219\u9700\u8981\u89c2\u5bdf\u662f\u5426\u63a5\u53d7timeout\u53c2\u6570\r\n  >\r\n  >   > - \u82e5\u63a5\u53d7timeout\u53c2\u6570\uff0c\u8868\u660e\u9ed8\u8ba4\u4f7f\u7528\u540c\u6b65\u6a21\u5f0f\r\n  >   > - \u82e5\u4e0d\u63a5\u53d7timeout\u53c2\u6570\uff0c\u8868\u660e\u8be5\u63a5\u53e3\u4e0d\u4f1a\u83b7\u5f97\u670d\u52a1\u7aef\u7684\u54cd\u5e94\r\n\r\n\r\n\r\n## 3.3 Api\u57fa\u672c\u65b9\u6cd5\r\n\r\n\u6240\u6709Api\u90fd\u6709\u4e00\u4e2a\u5171\u540c\u7684\u57fa\u7c7b\uff0c\u56e0\u6b64\u90fd\u4f1a\u6709\u76f8\u540c\u7684\u57fa\u672c\u65b9\u6cd5\uff0c\u5176\u8c03\u7528\u903b\u8f91\u4e0e\u529f\u80fd\u90fd\u76f8\u540c\u3002\r\n\r\n### 3.3.1 Start - \u542f\u52a8Api\r\n\r\n\u7528\u4e8e\u521d\u59cb\u5316Api\u5b9e\u4f8b\u5bf9\u8c61\u3001\u8fde\u63a5\u670d\u52a1\u7aef\u3001\u6ce8\u518c\u56de\u8c03Spi\uff08\u7528\u4e8e\u5f02\u6b65\u63a5\u6536\u670d\u52a1\u5668\u7684\u54cd\u5e94\u6d88\u606f\uff09\u7b49\uff0c\u5728\u4f7f\u7528Api\u7684\u5404\u79cd\u63a5\u53e3\u524d\u5fc5\u987b\u5148\u8c03\u7528\u8be5\u51fd\u6570\u3002\r\n\r\n\u4e0d\u540cApi\u7684`Start`\u51fd\u6570\u63a5\u53d7\u7684\u53c2\u6570\u53ef\u80fd\u4e0d\u540c\uff0c\u56e0\u6b64\u5e94\u53c2\u7167\u6307\u5b9aApi\u7684\u6587\u6863\u8bf4\u660e\u8fdb\u884c\u4f7f\u7528\u3002\r\n\r\n### 3.3.2 Stop - \u505c\u6b62Api\r\n\r\n\u7528\u4e8e\u4e3b\u52a8\u65ad\u5f00\u4e0e\u670d\u52a1\u7aef\u7684\u8fde\u63a5\uff0c\u505c\u6b62Api\uff1b\u540c\u65f6\u5982\u679c\u6ca1\u6709\u9519\u8bef\uff0c\u8be5\u51fd\u6570\u7684\u8c03\u7528\u4e0d\u4f1a\u7ec8\u6b62\u7a0b\u5e8f\uff0c\u7528\u6237\u8fd8\u53ef\u4ee5\u4f7f\u7528Start\u51fd\u6570\u91cd\u65b0\u91cd\u65b0\u8fde\u63a5\u670d\u52a1\u7aef\u3002\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  >  ```python\r\n  >  def Stop(self)\r\n  >  ```\r\n\r\n### 3.3.3 Join - \u52a0\u5165Api\r\n\r\n\u7528\u4e8e\u963b\u585e\u7a0b\u5e8f\u8fd0\u884c\uff0c\u76f4\u81f3\u8d85\u65f6\u6216Api\u505c\u6b62\u3002\u8be5\u51fd\u6570\u4ec5\u5728Api\u6210\u529f`Start`\u4e4b\u540e\u3001`Stop`\u4e4b\u524d\u6709\u6548\uff0c\u6548\u679c\u4e0e`time.sleep`\u51fd\u6570\u76f8\u5f53\u3002\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  >  ```python\r\n  >  def Join(self, wait: float=None)\r\n  >  ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570 | \u7c7b\u578b  | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                       |\r\n  > | ---- | ----- | ------ | ------------------------------------------ |\r\n  > | wait | float | None   | \u963b\u585e\u7b49\u5f85\u65f6\u95f4\uff0c`None`\u8868\u793a\u4e00\u76f4\u963b\u585e\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- \u63d0\u793a\r\n\r\n  > - \u7531\u4e8e\u5ba2\u6237\u7aef\u5c06\u4f1a\u542f\u52a8\u5b50\u7ebf\u7a0b\u7528\u4e8e\u63a5\u6536\u670d\u52a1\u5668\u5f02\u6b65\u54cd\u5e94\u4fe1\u606f\uff0c\u5f53\u7528\u6237\u901a\u8fc7\u6ce8\u518cSpi\u63a5\u6536\u6d88\u606f\u65f6\uff0c\u5982\u679c\u4e3b\u7ebf\u7a0b\u8fc7\u65e9\u9000\u51fa\uff0c\u5ba2\u6237\u7aef\u5c06\u65e0\u6cd5\u6b63\u786e\u63a5\u6536\u54cd\u5e94\u4fe1\u606f\uff0c\u56e0\u6b64\u9700\u8981\u7528\u6237\u7ef4\u6301\u7a0b\u5e8f\u7684\u8fd0\u884c\u3002\u5f53\u7528\u6237\u6ca1\u6709\u5176\u4ed6\u9014\u5f84\u7ef4\u6301\u7a0b\u5e8f\u7684\u8fd0\u884c\u65f6\uff0c\u5219\u53ef\u4ee5\u8003\u8651\u8c03\u7528\u8be5\u51fd\u6570\u3002\r\n\r\n### 3.3.4 SetLogger - \u8bbe\u7f6eApi\u65e5\u5fd7\u5bf9\u8c61\r\n\r\n\u6bcf\u4e2aApi\u90fd\u5185\u7f6e\u4e86\u65e5\u5fd7\u8bb0\u5f55\u529f\u80fd\uff0c\u5e76\u4e14\u9ed8\u8ba4\u4f7f\u7528Root\u65e5\u5fd7\uff0c\u5f53\u7136\u7528\u6237\u4e5f\u53ef\u4ee5\u8bbe\u7f6e\u6307\u5b9a\u7684\u65e5\u5fd7\u5bf9\u8c61\r\n\r\n- \u51fd\u6570\u7b7e\u540d\r\n\r\n  > ```python\r\n  > def SetLogger(self, logger=None, title=None)\r\n  > ```\r\n\r\n- \u53c2\u6570\r\n\r\n  > | \u53c2\u6570   | \u7c7b\u578b        | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                                         |\r\n  > | ------ | ----------- | ------ | ------------------------------------------------------------ |\r\n  > | logger | QujamLogger | None   | \u5fc5\u987b\u662f\u901a\u8fc7`ac.get_logger`\u65b9\u6cd5\u83b7\u53d6\u7684\u65e5\u5fd7\u5bf9\u8c61\uff0c\u9ed8\u8ba4\u4f7f\u7528\u5168\u5c40`Root`\u65e5\u5fd7\u5bf9\u8c61 |\r\n  > | title  | str         | None   | \u5728\u6d88\u606f\u524d\u9762\u65b0\u589e\u4e00\u4e2a\u6a21\u5757\uff0c\u5982\u547d\u540d\u4e3a`\"Trade\"`\uff0c\u8868\u660e\u5f53\u524d\u6d88\u606f\u7531`AztTradeApi`\u53d1\u51fa\uff1b\u5f53`title=None`\u65f6\u8868\u793a\u4e0d\u8bbe\u7f6e |\r\n\r\n- \u63d0\u793a\r\n\r\n  > 1. \u8be5\u65b9\u6cd5\u5efa\u8bae\u5728Api\u7684`Start`\u65b9\u6cd5\u524d\u8c03\u7528\r\n  > 2. \u5982\u679c`logger=None`\uff0c\u5219\u9ed8\u8ba4\u4f7f\u7528Root\u65e5\u5fd7\u5bf9\u8c61\r\n  > 3. \u5982\u679cRoot\u5bf9\u8c61\u88ab\u7981\u7528\uff0c\u5219\u65e0\u6cd5\u4f7f\u7528Api\u7684\u65e5\u5fd7\u8bb0\u5f55\u529f\u80fd\uff0c\u9664\u975e\u6307\u5b9a`logger`\r\n\r\n### 3.3.5 \u65e5\u5fd7\u8bb0\u5f55\u51fd\u6570\r\n\r\nApi\u4e2d\u5185\u7f6e\u4e86\u65e5\u5fd7\u8bb0\u5f55\u65b9\u6cd5\uff0c\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528\u8fd9\u4e9b\u65b9\u6cd5\u8bb0\u5f55\u65e5\u5fd7\uff0c\u9ed8\u8ba4\u4f7f\u7528\u5168\u5c40Root\u65e5\u5fd7\u5bf9\u8c61\u8fdb\u884c\u8bb0\u5f55\r\n\r\n- \u8bb0\u5f55\u6d4b\u8bd5\u65e5\u5fd7\r\n\r\n  > ```python\r\n  > def debug(self, *msgs)\r\n  > ```\r\n\r\n- \u8bb0\u5f55\u666e\u901a\u65e5\u5fd7\r\n\r\n  > ```python\r\n  > def info(self, *msgs)\r\n  > ```\r\n\r\n- \u8bb0\u5f55\u8b66\u544a\u65e5\u5fd7\r\n\r\n  > ```python\r\n  > def warning(self, *msgs)\r\n  > ```\r\n\r\n- \u8bb0\u5f55\u9519\u8bef\u65e5\u5fd7\r\n\r\n  > ```python\r\n  > def error(self, *msgs)\r\n  > ```\r\n\r\n- \u8bb0\u5f55\u4e25\u91cd\u9519\u8bef\u65e5\u5fd7\r\n\r\n  > ```python\r\n  > def critical(self, *msgs)\r\n  > ```\r\n\r\n### 3.3.6 Api\u72b6\u6001\u51fd\u6570\r\n\r\nApi\u4e2d\u8fd8\u6709\u4e00\u4e9b\u51fd\u6570\u53ef\u4f9b\u7528\u6237\u4f7f\u7528\uff0c\u4ee5\u5224\u65ad\u5f53\u524dApi\u7684\u72b6\u6001\r\n\r\n- \u662f\u5426\u5df2\u505c\u6b62\r\n\r\n  > ```python\r\n  > def isStopped(self):\r\n  > ```\r\n\r\n- \u662f\u5426\u5df2\u767b\u5f55\r\n\r\n  > ```python\r\n  > def isLogined(self):\r\n  > ```\r\n\r\n- \u662f\u5426\u4e3a\u521d\u6b21\u767b\u5f55\r\n\r\n  > ```python\r\n  > def isFirstLogined(self):\r\n  > ```\r\n  >\r\n  > - \u5728\u9996\u6b21\u8c03\u7528`Start`\u51fd\u6570\u524d\uff0c`isFirstLogined`\u8fd4\u56de`True`\uff0c\u4e4b\u540e\u90fd\u662f`False`\r\n  \r\n  \r\n\r\n------\r\n\r\n\r\n\r\n# 4 AztTradeApi - \u6a21\u62df\u67dc\u53f0Api\r\n\r\n## 4.1 Start - \u542f\u52a8\u51fd\u6570\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  >  ```python\r\n  > def Start(self, ip: str, port: int, spi=None, timeout: float = None, reconnect: int = None, reconnect_ivl: float = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570          | \u7c7b\u578b        | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                         |\r\n  > | ------------- | ----------- | -------- | ------------------------------------------------------------ |\r\n  > | ip            | str         | \u65e0\uff0c\u5fc5\u586b | \u6a21\u62df\u67dc\u53f0\u670d\u52a1\u5730\u5740\uff0c\u7531[aztquant.com](https://www.aztquant.com)\u63d0\u4f9b |\r\n  > | port          | int         | \u65e0\uff0c\u5fc5\u586b | \u6a21\u62df\u67dc\u53f0\u670d\u52a1\u7aef\u53e3\uff0c\u7531[aztquant.com](https://www.aztquant.com)\u63d0\u4f9b |\r\n  > | spi           | AztTradeSpi | None     | \u56de\u8c03Spi\u7c7b\u6216\u5b9e\u4f8b\uff0c\u7528\u4e8e\u5f02\u6b65\u63a5\u6536\u670d\u52a1\u5668\u7684\u54cd\u5e94\u6d88\u606f                |\r\n  > | timeout       | int         | None     | \u8fde\u63a5\u8d85\u65f6\u65f6\u95f4(\u5355\u4f4d\uff1a\u79d2)\uff0c\u82e5\u8d85\u65f6\u540e\u4ecd\u672a\u6210\u529f\u8fde\u63a5\u670d\u52a1\uff0c\u5219\u8fd4\u56de\u53ef`raise`\u7684`error`\uff1b\u82e5\u672a\u8bbe\u7f6e\u8d85\u65f6\u65f6\u95f4\uff0c\u5219`Start`\u51fd\u6570\u5c06\u4f1a\u963b\u585e\u76f4\u81f3\u8fde\u63a5\u6210\u529f |\r\n  > | reconnect     | int         | None     | \u91cd\u8fde\u6b21\u6570\uff0cNone\u62160\u8868\u793a\u65ad\u7ebf\u4e0d\u81ea\u52a8\u91cd\u8fde\uff0c-1\u8868\u793a\u65e0\u9650\u91cd\u8fde\uff1b\u91cd\u8fde\u4e00\u5b9a\u6b21\u6570\u540e\u4ecd\u672a\u8fde\u63a5\u6210\u529f\uff0c\u8fd4\u56de\u53efraise\u7684\u9519\u8bef |\r\n  > | reconnect_ivl | float       | None     | \u91cd\u8fde\u95f4\u9694\u65f6\u95f4\uff0c\u5355\u4f4d\uff1a\u79d2                                       |\r\n  \r\n- **\u8fd4\u56de**\r\n\r\n  > \u5982\u679c\u521d\u59cb\u5316\u6210\u529f\uff0c\u8fd4\u56de`None`\uff1b\u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u8fd4\u56de\u53ef`raise`\u7684`error`\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u7528\u6237\u53ea\u6709\u5728\u5b9e\u73b0\u4e86`AztTradeSpi`\u56de\u8c03\u7c7b\u65f6\u624d\u9700\u8981\u8bbe\u7f6espi\u53c2\u6570\uff0c\u53cd\u4e4b\u5219\u4e0d\u9700\u8981\u5173\u6ce8\r\n  > - \u53c2\u6570spi\u65e2\u53ef\u4ee5\u586b\u5165`AztTradeSpi`\u7c7b\uff0c\u4e5f\u53ef\u4ee5\u586b\u5165`AztTradeSpi()`\u7c7b\u5b9e\u4f8b\r\n\r\n\r\n\r\n## 4.2 Login - \u767b\u5f55\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Login(self, account: str, passwd: str, timeout: float = None):\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b  | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                         |\r\n  > | ------- | ----- | -------- | -------------------------------------------- |\r\n  > | account | str   | \u65e0\uff0c\u5fc5\u586b | \u8d26\u6237ID                                       |\r\n  > | passwd  | str   | \u65e0\uff0c\u5fc5\u586b | \u8d26\u6237\u5bc6\u7801                                     |\r\n  > | timeout | float | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n  \r\n- **\u8fd4\u56de**\r\n\r\n  > \u8fd4\u56de`TradeLoginAck`\u4fe1\u606f\uff1b\u82e5\u8d85\u65f6\u65e0\u54cd\u5e94\u5219\u8fd4\u56de`None`\r\n  \r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # \u83b7\u53d6\u8d26\u6237ID\u548c\u5bc6\u7801\u5e76\u586b\u5165 ------------------------------------------------------\r\n  > account = \"xxxx\"  # \u8d26\u6237ID\r\n  > passwd = \"xxxx\"  # \u8d26\u6237\u5bc6\u7801\r\n  > \r\n  > # \u521d\u59cb\u5316Api -------------------------------------------------------------------\r\n  > myapi = ac.AztTradeApi()  # \u5b9e\u4f8b\u5316Api\r\n  > start_error = myapi.Start(ip=\"127.0.0.1\", port=1234)  # \u521d\u59cb\u5316Api\r\n  > if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >        raise start_error\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5.0)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > ac.info(\"\u767b\u5f55\u7ed3\u679c\uff1a\", ret_login)\r\n  > ```\r\n\r\n\r\n\r\n## 4.3 Logout - \u9000\u51fa\u767b\u5f55\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Logout(self)\r\n  > ```\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u53ea\u6709\u5728\u767b\u5f55\u4e4b\u540e\u624d\u9700\u8981\u9000\u51fa\u767b\u5f55\uff0c\u5728\u5c1a\u672a\u767b\u5f55\u65f6\u8c03\u7528\u6548\u679c\u4e0eStop\u51fd\u6570\u76f8\u540c\r\n  > - \u7a0b\u5e8f\u6b63\u5e38\u7ec8\u6b62\u65f6\uff0c\u82e5\u8d26\u6237\u5df2\u767b\u5f55\u4f46\u5c1a\u672a\u9000\u51fa\u767b\u5f55\uff0c\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u9000\u51fa\u767b\u5f55\r\n\r\n\r\n\r\n## 4.4 QueryAccountInfo - \u67e5\u8be2\u8d26\u6237\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def QueryAccountInfo(self, strategy_id: str = None, strategy_check_code: str = None, account: str = None, passwd: str = None, sync: bool = False, timeout: int = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570                | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                         |\r\n  > | ------------------- | ---- | ------ | -------------------------------------------- |\r\n  > | strategy_id         | str  | None   | \u7b56\u7565ID                                       |\r\n  > | strategy_check_code | str  | None   | \u7b56\u7565\u6821\u9a8c\u7801                                   |\r\n  > | account             | str  | None   | \u8d26\u6237ID                                       |\r\n  > | passwd              | str  | None   | \u8d26\u6237\u5bc6\u7801                                     |\r\n  > | sync                | bool | False  | \u662f\u5426\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c\uff08\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff09             |\r\n  > | timeout             | int  | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`TradeRegisterInfo`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # \u83b7\u53d6\u7b56\u7565ID\u548c\u7b56\u7565\u6821\u9a8c\u7801\u5e76\u586b\u5165 ------------------------------------------------\r\n  > strategy_id = \"xxxx\"  # \u7b56\u7565ID\r\n  > strategy_check_code = \"xxxx\"  # \u7b56\u7565\u6821\u9a8c\u7801\r\n  > \r\n  > # \u521d\u59cb\u5316Api -------------------------------------------------------------------\r\n  > myapi = ac.AztTradeApi()  # \u5b9e\u4f8b\u5316Api\r\n  > start_error = myapi.Start(ip=\"127.0.0.1\", port=1234)  # \u521d\u59cb\u5316Api\r\n  > if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >        raise start_error\r\n  > \r\n  > # \u67e5\u8be2\u8d26\u6237,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c -----------------------------------------------------\r\n  > ret_userinfo = myapi.QueryAccountInfo(strategy_id, strategy_check_code, sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u8d26\u6237\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_userinfo)\r\n  > ```\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u7528\u6237\u65e2\u53ef\u4ee5\u586b\u5199`strategy_id`\u548c`strategy_check_code`\u67e5\u8be2\uff0c\u4e5f\u53ef\u4ee5\u586b\u5199`account`\u548c`passwd`\u6765\u67e5\u8be2\r\n  > - \u67e5\u8be2\u8d26\u6237\u4fe1\u606f\u4e0d\u9700\u8981\u5148\u767b\u5f55\r\n\r\n\r\n\r\n##  4.5 QueryAsset - \u67e5\u8be2\u8d26\u6237\u8d44\u4ea7\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def QueryAsset(self, sync: bool = False, timeout: int = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                         |\r\n  > | ------- | ---- | ------ | -------------------------------------------- |\r\n  > | sync    | bool | False  | \u662f\u5426\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c\uff08\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff09             |\r\n  > | timeout | int  | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`AccMargin`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u8d26\u6237\u8d44\u4ea7\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c ---------------------------------------------\r\n  >    ret_asset = myapi.QueryAsset(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u8d26\u6237\u8d44\u4ea7\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_asset)\r\n  > ```\r\n  \r\n- **\u63d0\u793a**\r\n\r\n  > - \u67e5\u8be2\u8d26\u6237\u8d44\u4ea7\u4fe1\u606f\u5fc5\u987b\u5148\u767b\u5f55\r\n\r\n\r\n\r\n## 4.6 QueryHistoryAsset - \u67e5\u8be2\u8d26\u6237\u5386\u53f2\u8d44\u4ea7\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def QueryHistoryAsset(self, date: datetime.datetime = None, sync: bool = False, timeout: int = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b              | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                                     |\r\n  > | ------- | ----------------- | ------ | -------------------------------------------------------- |\r\n  > | date    | datetime.datetime | None   | \u6307\u5b9a\u67e5\u8be2\u7684\u5386\u53f2\u65e5\u671f\uff0c\u82e5\u65e0\u6307\u5b9a\u5219\u67e5\u8be2\u8d26\u6237\u6240\u6709\u7684\u5386\u53f2\u8d44\u4ea7\u4fe1\u606f |\r\n  > | sync    | bool              | False  | \u662f\u5426\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c\uff08\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff09                         |\r\n  > | timeout | int               | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2             |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QryHisAccAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u8d26\u6237\u5386\u53f2\u8d44\u4ea7\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c -----------------------------------------\r\n  >    ret_asset = myapi.QueryHistoryAsset(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u8d26\u6237\u5386\u53f2\u8d44\u4ea7\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_asset)\r\n  > ```\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > \u67e5\u8be2\u8d26\u6237\u5386\u53f2\u8d44\u4ea7\u4fe1\u606f\u5fc5\u987b\u5148\u767b\u5f55\r\n\r\n\r\n\r\n## 4.7 QueryHistoryDeposit - \u67e5\u8be2\u5386\u53f2\u5165\u91d1\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def QueryHistoryDeposit(self, date: datetime.datetime = None, sync: bool = False, timeout: int = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b              | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                                     |\r\n  > | ------- | ----------------- | ------ | -------------------------------------------------------- |\r\n  > | date    | datetime.datetime | None   | \u6307\u5b9a\u67e5\u8be2\u7684\u5386\u53f2\u65e5\u671f\uff0c\u82e5\u65e0\u6307\u5b9a\u5219\u67e5\u8be2\u8d26\u6237\u6240\u6709\u7684\u5386\u53f2\u5165\u91d1\u4fe1\u606f |\r\n  > | sync    | bool              | False  | \u662f\u5426\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c\uff08\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff09                         |\r\n  > | timeout | int               | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2             |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QryHisDepositAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u8d26\u6237\u5386\u53f2\u5165\u91d1\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c -----------------------------------------\r\n  >    ret_deposit = myapi.QueryHistoryDeposit(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u8d26\u6237\u5386\u53f2\u5165\u91d1\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_deposit)\r\n  > ```\r\n  \r\n- **\u63d0\u793a**\r\n\r\n  > \u67e5\u8be2\u8d26\u6237\u5386\u53f2\u5165\u91d1\u4fe1\u606f\u5fc5\u987b\u5148\u767b\u5f55\r\n\r\n\r\n\r\n## 4.8 QueryOrders - \u67e5\u8be2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570       | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                         |\r\n  > | ---------- | ---- | ------ | -------------------------------------------- |\r\n  > | market     | str  | None   | \u4ea4\u6613\u6240\u4ee3\u7801                                   |\r\n  > | code       | str  | None   | \u6807\u7684\u4ee3\u7801                                     |\r\n  > | client_ref | str  | None   | \u8ba2\u5355\u7f16\u53f7\uff08\u5ba2\u6237\u7aef\u751f\u6210\uff09                       |\r\n  > | order_id   | str  | None   | \u8ba2\u5355\u7f16\u53f7\uff08\u670d\u52a1\u7aef\u751f\u6210\uff09                       |\r\n  > | unfinished | bool | False  | \u662f\u5426\u53ea\u67e5\u8be2\u672a\u7ed3\u59d4\u6258                           |\r\n  > | sync       | bool | False  | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                             |\r\n  > | timeout    | int  | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QueryOrdersAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c --------------------------------------------\r\n  > ret_orders = myapi.QueryOrders(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u59d4\u6258\u8ba2\u5355\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_orders)\r\n  > ```\r\n\r\n\r\n\r\n## 4.9 QueryTrades - \u67e5\u8be2\u6210\u4ea4\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > QueryTrades(self, market: str = None, code: str = None, order_id: str = None, trade_id: str = None, sync: bool = False, timeout: int = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570     | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                         |\r\n  > | -------- | ---- | ------ | -------------------------------------------- |\r\n  > | market   | str  | None   | \u4ea4\u6613\u6240\u4ee3\u7801                                   |\r\n  > | code     | str  | None   | \u6807\u7684\u4ee3\u7801                                     |\r\n  > | order_id | str  | None   | \u8ba2\u5355\u7f16\u53f7                                     |\r\n  > | trade_id | str  | None   | \u6210\u4ea4\u7f16\u53f7                                     |\r\n  > | sync     | bool | False  | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                             |\r\n  > | timeout  | int  | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QueryTradesAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u6210\u4ea4\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c -------------------------------------------------\r\n  >    ret_trades = myapi.QueryTrades(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u6210\u4ea4\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_trades)\r\n  > ```\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u67e5\u8be2\u6210\u4ea4\u4fe1\u606f\u5fc5\u987b\u5148\u767b\u5f55\r\n  > - \u53ea\u586b\u5199`market`\u53c2\u6570\uff0c\u5219\u67e5\u8be2\u6307\u5b9a\u4ea4\u6613\u6240\u76f8\u5173\u7684\u6210\u4ea4\u4fe1\u606f\r\n  > - \u53ea\u586b\u5199`market`\u548c`code`\u53c2\u6570\uff0c\u5219\u67e5\u8be2\u6307\u5b9a\u6807\u7684\u4ee3\u7801\u76f8\u5173\u7684\u6210\u4ea4\u4fe1\u606f\r\n  > - \u53ea\u586b\u5199`order_id`\u53c2\u6570\uff0c\u5219\u67e5\u8be2\u6307\u5b9a\u59d4\u6258\u8ba2\u5355\u7684\u6210\u4ea4\u4fe1\u606f\uff0c\u6b64\u65f6\u4e0d\u9700\u8981\u586b\u5199\u5176\u4ed6\u53c2\u6570\r\n  > - \u53ea\u586b\u5199`trade_id`\u53c2\u6570\uff0c\u5219\u67e5\u8be2\u6307\u5b9a\u6210\u4ea4\u7f16\u53f7\u7684\u6210\u4ea4\u4fe1\u606f\uff0c\u6b64\u65f6\u4e0d\u9700\u8981\u586b\u5199\u5176\u4ed6\u53c2\u6570\r\n  > - \u4e0d\u586b\u5199\u4ee5\u4e0a\u53c2\u6570\u65f6\uff0c\u5219\u9ed8\u8ba4\u67e5\u8be2\u5f53\u524d\u767b\u5f55\u8d26\u6237\u5f53\u65e5\u6240\u6709\u7684\u6210\u4ea4\u4fe1\u606f\r\n\r\n\r\n\r\n## 4.10 QueryPositions - \u67e5\u8be2\u6301\u4ed3\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def QueryPositions(self, market: str = None, code: str = None, sync: bool = False, timeout: int = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                         |\r\n  > | ------- | ---- | ------ | -------------------------------------------- |\r\n  > | market  | str  | None   | \u4ea4\u6613\u6240\u4ee3\u7801                                   |\r\n  > | code    | str  | None   | \u6807\u7684\u4ee3\u7801                                     |\r\n  > | sync    | bool | False  | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                             |\r\n  > | timeout | int  | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\uff0c\u8fd4\u56de`QueryPositionsAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u6301\u4ed3\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c -------------------------------------------------\r\n  >    ret_positions = myapi.QueryPositions(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u6301\u4ed3\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_positions)\r\n  > ```\r\n  \r\n- **\u63d0\u793a**\r\n\r\n  > - \u67e5\u8be2\u6301\u4ed3\u4fe1\u606f\u5fc5\u987b\u5148\u767b\u5f55\r\n  > - \u586b\u5199`market`\u548c`code`\u53c2\u6570\u65f6\uff0c\u67e5\u8be2\u6307\u5b9a\u6807\u7684\u76f8\u5173\u7684\u6301\u4ed3\u4fe1\u606f\r\n  > - \u4e0d\u586b\u5199\u4ee5\u4e0a\u53c2\u6570\u65f6\uff0c\u67e5\u8be2\u5f53\u524d\u767b\u5f55\u8d26\u6237\u6240\u6709\u7684\u6301\u4ed3\u4fe1\u606f\r\n\r\n## 4.10.1 QueryPositions - \u67e5\u8be2\u5386\u53f2\u6301\u4ed3\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570      | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u8bf4\u660e                        |\r\n  > | ------- | ---- |---------------------------| -------------------------------------------- |\r\n  > | market  | str  | None   | \u4ea4\u6613\u6240\u4ee3\u7801                     |\r\n  > | code    | str  | None   | \u6807\u7684\u4ee3\u7801                      |\r\n  > | start_time | datetime  | None   | \u5f00\u59cb\u65f6\u95f4                      |\r\n  > | end_time    | datetime  | None   | \u7ed3\u675f\u4ee3\u7801                      |\r\n  > | sync    | bool | False  | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                  |\r\n  > | timeout | int  | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\uff0c\u8fd4\u56de`QueryHisPositionsAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u6301\u4ed3\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c -------------------------------------------------\r\n  >    ret_positions = myapi.QueryPositions(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u6301\u4ed3\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_positions)\r\n  > ```\r\n  \r\n- **\u63d0\u793a**\r\n\r\n  > - \u67e5\u8be2\u5386\u53f2\u6301\u4ed3\u4fe1\u606f\u5fc5\u987b\u5148\u767b\u5f55\r\n  > - \u586b\u5199`market`\u548c`code`\u53c2\u6570\u65f6\uff0c\u67e5\u8be2\u6307\u5b9a\u6807\u7684\u76f8\u5173\u7684\u6301\u4ed3\u4fe1\u606f\r\n  > - \u4e0d\u586b\u5199\u4ee5\u4e0a\u53c2\u6570\u65f6\uff0c\u67e5\u8be2\u5f53\u524d\u767b\u5f55\u8d26\u6237\u6240\u6709\u7684\u6301\u4ed3\u4fe1\u606f\r\n\r\n\r\n\r\n## 4.11 QueryHistoryOrders - \u67e5\u8be2\u5386\u53f2\u59d4\u6258\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570       | \u7c7b\u578b              | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                         |\r\n  > | ---------- | ----------------- | ------ | -------------------------------------------- |\r\n  > | market     | str               | None   | \u4ea4\u6613\u6240\u4ee3\u7801                                   |\r\n  > | code       | str               | None   | \u6807\u7684\u4ee3\u7801                                     |\r\n  > | start_time | datetime.datetime | None   | \u67e5\u8be2\u8d77\u59cb\u65f6\u95f4                                 |\r\n  > | end_time   | datetime.datetime | None   | \u67e5\u8be2\u7ed3\u675f\u65f6\u95f4                                 |\r\n  > | sync       | bool              | False  | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                             |\r\n  > | timeout    | int               | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QueryOrdersAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u5386\u53f2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c -----------------------------------------\r\n  >    ret_historyorders = myapi.QueryHistoryOrders(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u5386\u53f2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_historyorders)\r\n  > ```\r\n  \r\n- **\u63d0\u793a**\r\n\r\n  > - \u67e5\u8be2\u5386\u53f2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f\u5fc5\u987b\u5148\u767b\u5f55\r\n  > - \u586b\u5199`market`\u548c`code`\u53c2\u6570\u65f6\uff0c\u67e5\u8be2\u6307\u5b9a\u6807\u7684\u76f8\u5173\u7684\u5386\u53f2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f\r\n  > - \u586b\u5199`start_time`\u548c`end_time`\u65f6\uff0c\u67e5\u8be2\u6307\u5b9a\u65f6\u95f4\u6bb5\u5185\u7684\u5386\u53f2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f\uff0c\u4e0e`market`\u548c`code`\u53c2\u6570\u517c\u5bb9\r\n  > - \u4e0d\u586b\u5199\u4ee5\u4e0a\u53c2\u6570\u65f6\uff0c\u9ed8\u8ba4\u67e5\u8be2\u5f53\u524d\u767b\u5f55\u8d26\u6237\u6240\u6709\u7684\u5386\u53f2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f\r\n\r\n\r\n\r\n## 4.12 QueryHistoryTrades - \u67e5\u8be2\u5386\u53f2\u6210\u4ea4\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570       | \u7c7b\u578b              | \u9ed8\u8ba4\u503c | \u8bf4\u660e                                         |\r\n  > | ---------- | ----------------- | ------ | -------------------------------------------- |\r\n  > | market     | str               | None   | \u4ea4\u6613\u6240\u4ee3\u7801                                   |\r\n  > | code       | str               | None   | \u6807\u7684\u4ee3\u7801                                     |\r\n  > | start_time | datetime.datetime | None   | \u67e5\u8be2\u8d77\u59cb\u65f6\u95f4                                 |\r\n  > | end_time   | datetime.datetime | None   | \u67e5\u8be2\u7ed3\u675f\u65f6\u95f4                                 |\r\n  > | sync       | bool              | False  | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                             |\r\n  > | timeout    | int               | None   | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QueryTradesAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u5386\u53f2\u6210\u4ea4\u4fe1\u606f,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c ---------------------------------------------\r\n  >    ret_historytrades = myapi.QueryHistoryTrades(sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u5386\u53f2\u6210\u4ea4\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c\uff1a\", ret_historytrades)\r\n  > ```\r\n  \r\n- **\u63d0\u793a**\r\n\r\n  > - \u67e5\u8be2\u5386\u53f2\u6210\u4ea4\u4fe1\u606f\u5fc5\u987b\u5148\u767b\u5f55\r\n  > - \u586b\u5199`market`\u548c`code`\u53c2\u6570\u65f6\uff0c\u67e5\u8be2\u6307\u5b9a\u6807\u7684\u76f8\u5173\u7684\u5386\u53f2\u6210\u4ea4\u4fe1\u606f\r\n  > - \u586b\u5199`start_time`\u548c`end_time`\u65f6\uff0c\u67e5\u8be2\u6307\u5b9a\u65f6\u95f4\u6bb5\u5185\u7684\u5386\u53f2\u6210\u4ea4\u4fe1\u606f\uff0c\u4e0e`market`\u548c`code`\u53c2\u6570\u517c\u5bb9\r\n  > - \u4e0d\u586b\u5199\u4ee5\u4e0a\u53c2\u6570\u65f6\uff0c\u9ed8\u8ba4\u67e5\u8be2\u5f53\u524d\u767b\u5f55\u8d26\u6237\u6240\u6709\u7684\u5386\u53f2\u6210\u4ea4\u4fe1\u606f\r\n\r\n\r\n\r\n## 4.13 QuerySecurityInfo - \u67e5\u8be2\u6807\u7684\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def QuerySecurityInfo(self, market, code: str = None, timeout: float = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b  | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                         |\r\n  > | ------- | ----- | -------- | -------------------------------------------- |\r\n  > | market  | str   | \u65e0\uff0c\u5fc5\u586b | \u4ea4\u6613\u6240\u4ee3\u7801                                   |\r\n  > | code    | str   | None     | \u6807\u7684\u4ee3\u7801                                     |\r\n  > | timeout | float | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`SecurityInfoRsp`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # \u83b7\u53d6\u8d26\u6237ID\u548c\u5bc6\u7801\u5e76\u586b\u5165 ------------------------------------------------------\r\n  > account = \"xxxx\"  # \u8d26\u6237ID\r\n  > passwd = \"xxxx\"  # \u8d26\u6237\u5bc6\u7801\r\n  > \r\n  > # \u521d\u59cb\u5316Api -------------------------------------------------------------------\r\n  > myapi = ac.AztTradeApi()  # \u5b9e\u4f8b\u5316Api\r\n  > start_error = myapi.Start(ip=\"127.0.0.1\", port=1234)  # \u521d\u59cb\u5316Api\r\n  > if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >     raise start_error\r\n  > \r\n  > # \u67e5\u8be2\u6307\u5b9a\u6807\u7684\u4fe1\u606f,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ------------------------------------------------\r\n  > ret_query_security_info = myapi.QuerySecurityInfo(timeout=5, market=\"SZSE\", code=\"000001\")\r\n  > ac.info(\"\u6807\u7684\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c:\", ret_query_security_info)\r\n  > ```\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u5982\u679c\u53ea\u586b\u5199`market`\u53c2\u6570\uff0c\u5219\u4e3a\u67e5\u8be2\u6574\u4e2a\u4ea4\u6613\u6240\u7684\u6807\u7684\u4fe1\u606f\r\n  > - \u586b\u5199`market`\u548c`code`\u53c2\u6570\u65f6\uff0c\u67e5\u8be2\u6307\u5b9a\u6807\u7684\u4fe1\u606f\r\n\r\n## 4.14 DepositAsset - \u8d26\u6237\u5165\u91d1\r\n\r\n\u6bcf\u4e2a\u6a21\u62df\u67dc\u53f0\u8d26\u6237\u5728\u521a\u521b\u5efa\u65f6\u90fd\u4f1a\u6709\u4e24\u4ebf\u603b\u8d44\u91d1\uff0c\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u5982\u679c\u8d44\u91d1\u4e0d\u8db3\uff0c\u7528\u6237\u4e5f\u53ef\u4ee5\u81ea\u884c\u901a\u8fc7\u5165\u91d1\u7684\u65b9\u5f0f\u8ffd\u52a0\u603b\u8d44\u91d1\uff1b\u4f46\u8981\u6ce8\u610f\u5165\u91d1\u524d\u5fc5\u987b\u5148\u767b\u5f55\u3002\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```\r\n  > def DepositAsset(self, amount: float, sync: bool = False, timeout: int = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b  | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                               |\r\n  > | ------- | ----- | -------- | ---------------------------------- |\r\n  > | amount  | float | \u65e0\uff0c\u5fc5\u586b | \u5165\u91d1\u603b\u989d                           |\r\n  > | sync    | bool  | False    | \u662f\u5426\u963b\u585e\u7b49\u5f85\u54cd\u5e94                   |\r\n  > | timeout | int   | None     | \u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`AccDepositAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # 3 \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5.0)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # 4 \u8d26\u6237\u5165\u91d120w,\u5e76\u76f4\u63a5\u8fd4\u56de\u7ed3\u679c --------------------------------------------------\r\n  > ret_accdeposit = myapi.DepositAsset(amount=200_000, sync=True, timeout=5.0)  # \u8bbe\u7f6e5\u79d2\u8d85\u65f6\r\n  > ac.info(\"\u5165\u91d1\u7ed3\u679c\uff1a\", ret_accdeposit)\r\n  > ```\r\n\r\n\r\n\r\n## 4.15 Buy - \u4e70\u5165\u59d4\u6258\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570             | \u7c7b\u578b  | \u9ed8\u8ba4\u503c               | \u8bf4\u660e                                                    |\r\n  > | ---------------- | ----- | -------------------- | ------------------------------------------------------- |\r\n  > | market           | str   | \u65e0\uff0c\u5fc5\u586b             | \u4ea4\u6613\u6240\u4ee3\u7801                                              |\r\n  > | code             | str   | \u65e0\uff0c\u5fc5\u586b             | \u6807\u7684\u4ee3\u7801                                                |\r\n  > | order_qty        | int   | 100                  | \u59d4\u6258\u6570\u91cf\uff0c\u5355\u4f4d\uff1a\u80a1\uff08\u4ee5\u80a1\u7968\u4e3a\u4f8b\uff09                        |\r\n  > | order_type       | int   | KOrderType_Market    | \u59d4\u6258\u7c7b\u578b\uff0c\u9ed8\u8ba4\u5e02\u4ef7\u59d4\u6258\uff0c\u5177\u4f53\u53d6\u503c\u4e0e\u542b\u4e49\u53c2\u89c1`EOrderType`  |\r\n  > | effect           | int   | KPositionEffect_Open | \u591a\u7a7a\u65b9\u5411\uff0c\u9ed8\u8ba4\u591a\u5934\uff0c\u5177\u4f53\u53d6\u503c\u4e0e\u542b\u4e49\u53c2\u89c1`EPositionEffect` |\r\n  > | order_price      | float | None                 | \u59d4\u6258\u9650\u4ef7\uff0c\u9002\u7528\u4e8e\u9650\u4ef7\u59d4\u6258\uff0c\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570                  |\r\n  > | discretion_price | float | None                 | \u5e02\u4ef7\u8f6c\u9650\u4ef7\u540e\u59d4\u6258\u9650\u4ef7\uff0c\u9002\u7528\u4e8e\u5e02\u8f6c\u9650\u59d4\u6258\uff0c\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570    |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u8c03\u7528\u51fd\u6570\u540e\u8fd4\u56de\u751f\u6210\u7684\u59d4\u6258\u8ba2\u5355\uff0c\u4e3a`PlaceOrder`\u5b9e\u4f8b\r\n  \r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # 1 \u83b7\u53d6\u8d26\u6237ID\u548c\u5bc6\u7801\u5e76\u586b\u5165 -----------------------------------------------------\r\n  > account = \"xxxx\"  # \u8d26\u6237ID\r\n  > passwd = \"xxxx\"  # \u8d26\u6237\u5bc6\u7801\r\n  > \r\n  > # 2 \u5b9e\u73b0\u56de\u8c03Spi ----------------------------------------------------------------\r\n  > class MySpi(ac.AztTradeSpi):\r\n  >        # \u59d4\u6258\u6267\u884c\u56de\u62a5\u4fe1\u606f\u56de\u8c03\r\n  >        def onOrderReport(self, msg):\r\n  >            ac.info(\"\u6536\u5230\u59d4\u6258\u6267\u884c\u56de\u62a5\u4fe1\u606f\uff1a\", msg)\r\n  >        # \u6210\u4ea4\u56de\u62a5\u4fe1\u606f\u56de\u8c03\r\n  >        def onTradeReport(self, msg):\r\n  >            ac.info(\"\u6536\u5230\u6210\u4ea4\u56de\u62a5\u4fe1\u606f\uff1a\", msg)\r\n  >    \r\n  >    # 3 \u521d\u59cb\u5316Api ------------------------------------------------------------------\r\n  >    myapi = ac.AztTradeApi()  # \u5b9e\u4f8b\u5316Api\r\n  >    # \u521d\u59cb\u5316Api\uff0c\u6ce8\u518cSpi\r\n  >    start_error = myapi.Start(ip=\"127.0.0.1\", port=1234, spi=MySpi)\r\n  >    if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >        raise start_error\r\n  > \r\n  > # 4 \u767b\u5f55\u8d26\u6237 -------------------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if not ret_login:\r\n  >        raise Exception(\"\u767b\u5f55\u5931\u8d25\uff01\")\r\n  >    myapi.Join(1)  # \u963b\u585e1\u79d2\r\n  >     # \u4e70\u51651\u624bSHSE.600259\r\n  > order = myapi.Buy(market=\"SHSE\", code=\"600259\", order_qty=100)\r\n  > # order\u4e3aPlaceOrder\u5b9e\u4f8b\r\n  > \r\n  >    # 5 \u963b\u585e\u4e3b\u7ebf\u7a0b\u7b49\u5f85\u7ed3\u679c\u8fd4\u56de -----------------------------------------------------\r\n  > myapi.Join()\r\n  > ```\r\n  \r\n- **\u63d0\u793a**\r\n\r\n  > - \u4e70\u5165\u59d4\u6258\u524d\u5fc5\u987b\u5148\u767b\u5f55\r\n  > - \u670d\u52a1\u5668\u5bf9\u59d4\u6258\u8ba2\u5355\u7684\u5904\u7406\u65f6\u95f4\u65e0\u6cd5\u4fdd\u8bc1\uff0c\u56e0\u6b64\u65e0\u6cd5\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff0c\u53ea\u80fd\u91c7\u7528\u5f02\u6b65\u6a21\u5f0f\uff1b\u56e0\u6b64\u7528\u6237\u5fc5\u987b\u5b9e\u73b0\u76f8\u5173\u7684\u56de\u8c03\u51fd\u6570\u624d\u80fd\u6536\u53d6\u5230\u59d4\u6258\u8ba2\u5355\u76f8\u5173\u7684\u6267\u884c\u6d88\u606f\u548c\u6210\u4ea4\u6d88\u606f\r\n\r\n\r\n\r\n## 4.16 Sell - \u5356\u51fa\u59d4\u6258\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570             | \u7c7b\u578b  | \u9ed8\u8ba4\u503c                | \u8bf4\u660e                                                    |\r\n  > | ---------------- | ----- | --------------------- | ------------------------------------------------------- |\r\n  > | market           | str   | \u65e0\uff0c\u5fc5\u586b              | \u4ea4\u6613\u6240\u4ee3\u7801                                              |\r\n  > | code             | str   | \u65e0\uff0c\u5fc5\u586b              | \u6807\u7684\u4ee3\u7801                                                |\r\n  > | order_qty        | int   | 100                   | \u59d4\u6258\u6570\u91cf\uff0c\u5355\u4f4d\uff1a\u80a1\uff08\u4ee5\u80a1\u7968\u4e3a\u4f8b\uff09                        |\r\n  > | order_type       | int   | KOrderType_Market     | \u59d4\u6258\u7c7b\u578b\uff0c\u9ed8\u8ba4\u5e02\u4ef7\u59d4\u6258\uff0c\u5177\u4f53\u53d6\u503c\u4e0e\u542b\u4e49\u53c2\u89c1`EOrderType`  |\r\n  > | effect           | int   | KPositionEffect_Close | \u591a\u7a7a\u65b9\u5411\uff0c\u9ed8\u8ba4\u7a7a\u5934\uff0c\u5177\u4f53\u53d6\u503c\u4e0e\u542b\u4e49\u53c2\u89c1`EPositionEffect` |\r\n  > | order_price      | float | None                  | \u59d4\u6258\u9650\u4ef7\uff0c\u9002\u7528\u4e8e\u9650\u4ef7\u59d4\u6258\uff0c\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570                  |\r\n  > | discretion_price | float | None                  | \u5e02\u4ef7\u8f6c\u9650\u4ef7\u540e\u59d4\u6258\u9650\u4ef7\uff0c\u9002\u7528\u4e8e\u5e02\u8f6c\u9650\u59d4\u6258\uff0c\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570    |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u8c03\u7528\u51fd\u6570\u540e\u8fd4\u56de\u751f\u6210\u7684\u59d4\u6258\u8ba2\u5355\uff0c\u4e3a`PlaceOrder`\u5b9e\u4f8b\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # 1 \u83b7\u53d6\u8d26\u6237ID\u548c\u5bc6\u7801\u5e76\u586b\u5165 -----------------------------------------------------\r\n  > account = \"xxxx\"  # \u8d26\u6237ID\r\n  > passwd = \"xxxx\"  # \u8d26\u6237\u5bc6\u7801\r\n  > \r\n  > # 2 \u5b9e\u73b0\u56de\u8c03Spi ----------------------------------------------------------------\r\n  > class MySpi(ac.AztTradeSpi):\r\n  >        # \u59d4\u6258\u6267\u884c\u56de\u62a5\u4fe1\u606f\u56de\u8c03\r\n  >        def onOrderReport(self, msg):\r\n  >            ac.info(\"\u6536\u5230\u59d4\u6258\u6267\u884c\u56de\u62a5\u4fe1\u606f\uff1a\", msg)\r\n  >    \r\n  >        # \u6210\u4ea4\u56de\u62a5\u4fe1\u606f\u56de\u8c03\r\n  >        def onTradeReport(self, msg):\r\n  >         ac.info(\"\u6536\u5230\u6210\u4ea4\u56de\u62a5\u4fe1\u606f\uff1a\", msg)\r\n  >    \r\n  >    # 3 \u521d\u59cb\u5316Api ------------------------------------------------------------------\r\n  >    myapi = ac.AztTradeApi()  # \u5b9e\u4f8b\u5316Api\r\n  > # \u521d\u59cb\u5316Api\uff0c\u6ce8\u518cSpi\r\n  >    start_error = myapi.Start(ip=\"127.0.0.1\", port=1234, spi=MySpi)\r\n  >    if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >        raise start_error\r\n  > \r\n  > # 4 \u767b\u5f55\u8d26\u6237 -------------------------------------------------------------------\r\n  > if not myapi.Login(account, passwd, timeout=5):\r\n  >        raise Exception(\"\u767b\u5f55\u5931\u8d25\uff01\")\r\n  > myapi.Join(1)  # \u963b\u585e1\u79d2\r\n  > # \u5356\u51fa1\u624bSHSE.600259\r\n  >    order = myapi.Sell(market=\"SHSE\", code=\"600259\", order_qty=100)\r\n  > # order\u4e3aPlaceOrder\u5b9e\u4f8b\r\n  > \r\n  > # 5 \u963b\u585e\u4e3b\u7ebf\u7a0b\u7b49\u5f85\u7ed3\u679c\u8fd4\u56de -----------------------------------------------------\r\n  > myapi.Join()\r\n  >    ```\r\n  \r\n- **\u63d0\u793a**\r\n\r\n  > - \u5356\u51fa\u59d4\u6258\u524d\u5fc5\u987b\u5148\u767b\u5f55\r\n  > - \u670d\u52a1\u5668\u5bf9\u59d4\u6258\u8ba2\u5355\u7684\u5904\u7406\u65f6\u95f4\u65e0\u6cd5\u4fdd\u8bc1\uff0c\u56e0\u6b64\u65e0\u6cd5\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff0c\u53ea\u80fd\u91c7\u7528\u5f02\u6b65\u6a21\u5f0f\uff1b\u56e0\u6b64\u7528\u6237\u5fc5\u987b\u5b9e\u73b0\u76f8\u5173\u7684\u56de\u8c03\u51fd\u6570\u624d\u80fd\u6536\u53d6\u5230\u59d4\u6258\u8ba2\u5355\u76f8\u5173\u7684\u6267\u884c\u6d88\u606f\u548c\u6210\u4ea4\u6d88\u606f\r\n\r\n\r\n\r\n## 4.17 Cancel - \u64a4\u5355\u59d4\u6258\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Cancel(self, order_id: str)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570     | \u7c7b\u578b | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                     |\r\n  > | -------- | ---- | -------- | -------------------------------------------------------- |\r\n  > | order_id | str  | \u65e0\uff0c\u5fc5\u586b | \u9700\u8981\u64a4\u9500\u7684\u59d4\u6258\u8ba2\u5355\u7f16\u53f7\uff0c\u89c1`PlaceOrder`\u4e2d\u7684`order_id`\u5c5e\u6027 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u8c03\u7528\u51fd\u6570\u540e\u8fd4\u56de\u751f\u6210\u7684\u64a4\u5355\u59d4\u6258\u8bf7\u6c42\uff0c\u4e3a`CancelOrder`\u5b9e\u4f8b\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # 1 \u83b7\u53d6\u8d26\u6237ID\u548c\u5bc6\u7801\u5e76\u586b\u5165 ------------------------------------------------------\r\n  > account = \"xxxx\"  # \u8d26\u6237ID\r\n  > passwd = \"xxxx\"  # \u8d26\u6237\u5bc6\u7801\r\n  > \r\n  > # 2 \u5b9e\u73b0\u56de\u8c03Spi ----------------------------------------------------------------\r\n  > class MySpi(ac.AztTradeSpi):\r\n  >        # 2.2 \u5b9e\u73b0\u59d4\u6258\u6267\u884c\u56de\u62a5\u4fe1\u606f\u56de\u8c03\r\n  >        def onOrderReport(self, msg):\r\n  >            ac.info(\"\u6536\u5230\u59d4\u6258\u6267\u884c\u56de\u62a5\u4fe1\u606f\uff1a\", msg)\r\n  >     \r\n  >        def onCancelOrderReject(self, msg):\r\n  >            ac.info(\"\u64a4\u5355\u5931\u8d25\uff1a\", msg)\r\n  > \r\n  > # 3 \u521d\u59cb\u5316Api ------------------------------------------------------------------\r\n  > myapi = ac.AztTradeApi()  # \u5b9e\u4f8b\u5316Api\r\n  > # \u521d\u59cb\u5316Api\uff0c\u6ce8\u518cSpi\r\n  > start_error = myapi.Start(ip=\"127.0.0.1\", port=1234, spi=MySpi)\r\n  > if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >        raise start_error\r\n  > \r\n  > # 4 \u767b\u5f55\u8d26\u6237 -------------------------------------------------------------------\r\n  > if not myapi.Login(account, passwd, timeout=5):\r\n  >        raise Exception(\"\u767b\u5f55\u5931\u8d25\uff01\")\r\n  >    \r\n  > # 5 \u53d6\u6d88\u8ba2\u5355 -------------------------------------------------------------------\r\n  > order_id = \"xxxx\"  # PlaceOrder\u4e2d\u7684order_id\u5c5e\u6027\r\n  > cancel_req = myapi.Cancel(order_id) # cancel_req\u4e3aCancelOrder\u5b9e\u4f8b\r\n  > \r\n  >     # 6 \u963b\u585e\u4e3b\u7ebf\u7a0b\u7b49\u5f85\u7ed3\u679c\u8fd4\u56de -----------------------------------------------------\r\n  > myapi.Join()\r\n  > ```\r\n  \r\n  \r\n\r\n------\r\n\r\n\r\n\r\n# 5 AztQuoteApi - \u5b9e\u65f6\u884c\u60c5\u670d\u52a1Api\r\n\r\n## 5.1 Start - \u542f\u52a8\u51fd\u6570\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Start(self, ip: str, port: int, spi=None, timeout=None reconnect: int = None, reconnect_ivl: float = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570          | \u7c7b\u578b        | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                         |\r\n  > | ------------- | ----------- | -------- | ------------------------------------------------------------ |\r\n  > | ip            | str         | \u65e0\uff0c\u5fc5\u586b | \u884c\u60c5\u670d\u52a1\u5730\u5740\uff0c\u7531[aztquant.com](https://www.aztquant.com)\u63d0\u4f9b |\r\n  > | port          | int         | \u65e0\uff0c\u5fc5\u586b | \u884c\u60c5\u670d\u52a1\u7aef\u53e3\uff0c\u7531[aztquant.com](https://www.aztquant.com)\u63d0\u4f9b |\r\n  > | spi           | AztQuoteSpi | None     | \u56de\u8c03Spi\u7c7b\u6216\u5b9e\u4f8b\uff0c\u7528\u4e8e\u5f02\u6b65\u63a5\u6536\u670d\u52a1\u5668\u7684\u54cd\u5e94\u6d88\u606f                |\r\n  > | timeout       | float       | None     | \u8fde\u63a5\u8d85\u65f6\u65f6\u95f4(\u5355\u4f4d\uff1a\u79d2)\uff0c\u82e5\u8d85\u65f6\u540e\u4ecd\u672a\u6210\u529f\u8fde\u63a5\u670d\u52a1\uff0c\u5219\u8fd4\u56de\u53ef`raise`\u7684`error`\uff1b\u82e5\u672a\u8bbe\u7f6e\u8d85\u65f6\u65f6\u95f4\uff0c\u5219`Start`\u51fd\u6570\u5c06\u4f1a\u963b\u585e\u76f4\u81f3\u8fde\u63a5\u6210\u529f |\r\n  > | reconnect     | int         | None     | \u91cd\u8fde\u6b21\u6570\uff0cNone\u62160\u8868\u793a\u65ad\u7ebf\u4e0d\u81ea\u52a8\u91cd\u8fde\uff0c-1\u8868\u793a\u65e0\u9650\u91cd\u8fde\uff1b\u91cd\u8fde\u4e00\u5b9a\u6b21\u6570\u540e\u4ecd\u672a\u8fde\u63a5\u6210\u529f\uff0c\u8fd4\u56de\u53efraise\u7684\u9519\u8bef |\r\n  > | reconnect_ivl | float       | None     | \u91cd\u8fde\u95f4\u9694\u65f6\u95f4\uff0c\u5355\u4f4d\uff1a\u79d2                                       |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u5982\u679c\u521d\u59cb\u5316\u6210\u529f\uff0c\u8fd4\u56de`None`\uff1b\u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u8fd4\u56de\u53ef`raise`\u7684`error`\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u7528\u6237\u9700\u8981\u81ea\u884c\u5b9e\u73b0`AztQuoteSpi`\u56de\u8c03\u7c7b\u65f6\u624d\u9700\u8981\u8bbe\u7f6espi\u53c2\u6570\uff0c\u53cd\u4e4b\u5219\u4e0d\u9700\u8981\u5173\u6ce8\r\n  > - \u53c2\u6570spi\u65e2\u53ef\u4ee5\u586b\u5165`AztQuoteSpi`\u7c7b\uff0c\u4e5f\u53ef\u4ee5\u586b\u5165`AztQuoteSpi()`\u7c7b\u5b9e\u4f8b\r\n\r\n\r\n\r\n## 5.2 Login - \u767b\u5f55\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Login(self, account: str, passwd: str, timeout: float = None):\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b  | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                         |\r\n  > | ------- | ----- | -------- | -------------------------------------------- |\r\n  > | account | str   | \u65e0\uff0c\u5fc5\u586b | \u8d26\u6237ID                                       |\r\n  > | passwd  | str   | \u65e0\uff0c\u5fc5\u586b | \u8d26\u6237\u5bc6\u7801                                     |\r\n  > | timeout | float | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u8fd4\u56de`LoginAck`\u4fe1\u606f\uff1b\u82e5\u8d85\u65f6\u65e0\u54cd\u5e94\u5219\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # \u83b7\u53d6\u8d26\u6237ID\u548c\u5bc6\u7801\u5e76\u586b\u5165 ------------------------------------------------------\r\n  > account = \"xxxx\"  # \u8d26\u6237ID\r\n  > passwd = \"xxxx\"  # \u8d26\u6237\u5bc6\u7801\r\n  > \r\n  > # \u521d\u59cb\u5316Api -------------------------------------------------------------------\r\n  > myapi = ac.AztQuoteApi()  # \u5b9e\u4f8b\u5316Api\r\n  > start_error = myapi.Start(ip=\"127.0.0.1\", port=1234)  # \u521d\u59cb\u5316Api\r\n  > if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >     raise start_error\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5.0)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >     raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > ac.info(\"\u767b\u5f55\u7ed3\u679c\uff1a\", ret_login)\r\n  > ```\r\n\r\n\r\n\r\n## 5.3 Logout - \u9000\u51fa\u767b\u5f55\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Logout(self)\r\n  > ```\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u53ea\u6709\u5728\u767b\u5f55\u4e4b\u540e\u624d\u9700\u8981\u9000\u51fa\u767b\u5f55\uff0c\u5728\u5c1a\u672a\u767b\u5f55\u65f6\u8c03\u7528\u6548\u679c\u4e0eStop\u51fd\u6570\u76f8\u540c\r\n  > - \u7a0b\u5e8f\u6b63\u5e38\u7ec8\u6b62\u65f6\uff0c\u82e5\u8d26\u6237\u5df2\u767b\u5f55\u4f46\u5c1a\u672a\u9000\u51fa\u767b\u5f55\uff0c\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u9000\u51fa\u767b\u5f55\r\n\r\n\r\n\r\n## 5.4 Subscribe - \u8ba2\u9605\u5b9e\u65f6\u884c\u60c5\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Subscribe(self, codes, sync=False, timeout=None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b           | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                         |\r\n  > | ------- | -------------- | -------- | ------------------------------------------------------------ |\r\n  > | codes   | str\u6216list[str] | \u65e0\uff0c\u5fc5\u586b | \u8ba2\u9605\u6807\u7684\uff0c\u6807\u7684\u683c\u5f0f\u4e3a`Market.Code`(\u5982`SHSE.600000`)\uff1b\u5982\u679c\u9700\u8981\u8ba2\u9605\u591a\u4e2a\u6807\u7684\uff0c\u65e2\u53ef\u4ee5\u4f7f\u7528\u5217\u8868\u5f62\u5f0f(\u5982`[\"SHSE.600000\",\"SZSE.000001\"]`)\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u82f1\u6587\u9017\u53f7`,`\u62fc\u63a5(\u5982`\"SHSE.600000,SZSE.000001\"`) |\r\n  > | sync    | bool           | False    | \u662f\u5426\u76f4\u63a5\u8fd4\u56de\u8ba2\u9605\u6210\u8d25\u60c5\u51b5\uff08\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff09                     |\r\n  > | timeout | float          | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2                 |\r\n  \r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QuoteRegisterAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n  \r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # \u5b9e\u73b0\u56de\u8c03Spi ----------------------------------------------------------------\r\n  > class MySpi(ac.AztQuoteSpi):\r\n  >     def onSubscribe(self, msg):\r\n  >         self.api.info(\"\u6536\u5230\u8ba2\u9605\u56de\u62a5(spi):\", msg)\r\n  >     def onQuoteData(self, msg):\r\n  >         self.api.info(\"\u6536\u5230\u884c\u60c5\u63a8\u9001:\", msg)\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >     raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u8ba2\u9605\u6807\u7684,\u8ba2\u9605\u6210\u8d25\u901a\u8fc7spi\u8fd4\u56de\uff08\u5f02\u6b65\u6a21\u5f0f\uff09 -----------------------------------\r\n  > myapi.Subscribe([\"SHSE.600000\", \"SHSE.600123\"])\r\n  > # \u6216\u8005\u540c\u6b65\u6a21\u5f0f(\u8bbe\u7f6e5\u79d2\u8d85\u65f6)\r\n  > ret_sub = myapi.Subscribe(\"SHSE.600130,SHSE.600004\", sync=True, timeout=5.0)\r\n  >     if not ret_sub:\r\n  >         raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  >     myapi.info(\"\u6536\u5230\u8ba2\u9605\u56de\u62a5\uff1a\", ret_sub)\r\n  > \r\n  > # 5 \u963b\u585e\u4e3b\u7ebf\u7a0b\u7b49\u5f85\u7ed3\u679c\u8fd4\u56de ------------------------------------------------------\r\n  > myapi.Join()\r\n  > ```\r\n  \r\n\r\n\r\n## 5.5 Unsubscribe - \u53d6\u6d88\u8ba2\u9605\u5b9e\u65f6\u884c\u60c5\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Unsubscribe(self, codes, sync=False, timeout=None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b           | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                         |\r\n  > | ------- | -------------- | -------- | ------------------------------------------------------------ |\r\n  > | codes   | str\u6216list[str] | \u65e0\uff0c\u5fc5\u586b | \u53d6\u6d88\u8ba2\u9605\u6807\u7684\uff0c\u6807\u7684\u683c\u5f0f\u4e3a`Market.Code`(\u5982`SHSE.600000`)\uff1b\u5982\u679c\u9700\u8981\u53d6\u6d88\u8ba2\u9605\u591a\u4e2a\u6807\u7684\uff0c\u65e2\u53ef\u4ee5\u4f7f\u7528\u5217\u8868\u5f62\u5f0f(\u5982`[\"SHSE.600000\",\"SZSE.000001\"]`)\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u82f1\u6587\u9017\u53f7`,`\u62fc\u63a5(\u5982`\"SHSE.600000,SZSE.000001\"`) |\r\n  > | sync    | bool           | False    | \u662f\u5426\u76f4\u63a5\u8fd4\u56de\u53d6\u6d88\u8ba2\u9605\u6210\u8d25\u60c5\u51b5\uff08\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff09                 |\r\n  > | timeout | float          | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2                 |\r\n  \r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QuoteRegisterAck`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n  \r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # \u5b9e\u73b0\u56de\u8c03Spi ----------------------------------------------------------------\r\n  > class MySpi(ac.AztQuoteSpi):\r\n  >        def onUnsubscribe(self, msg):\r\n  >            self.api.info(\"\u6536\u5230\u53d6\u6d88\u8ba2\u9605\u56de\u62a5(spi):\", msg)\r\n  >        def onQuoteData(self, msg):\r\n  >            self.api.info(\"\u6536\u5230\u884c\u60c5\u63a8\u9001:\", msg)\r\n  >    \r\n  >    ......\r\n  >    \r\n  >    # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  >         ret_login = myapi.Login(account, passwd, timeout=5)\r\n  >    if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  >    \r\n  >    # \u8ba2\u9605\u6807\u7684,\u76f4\u63a5\u8fd4\u56de\u8ba2\u9605\u6210\u8d25\u60c5\u51b5\uff08\u540c\u6b65\u6a21\u5f0f\uff09 ----------------------------------\r\n  >    ret_sub = myapi.Subscribe(\"SHSE.600130,SHSE.600004\", sync=True, timeout=5.0)\r\n  >        if not ret_sub:\r\n  >                     raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  >        myapi.info(\"\u6536\u5230\u8ba2\u9605\u56de\u62a5\uff1a\", ret_sub)\r\n  >        \r\n  >    # \u572830\u79d2\u540e\u53d6\u6d88\u8ba2\u9605 -----------------------------------------------------------\r\n  > \tmyapi.Join(30)\r\n  >    myapi.Unsubscribe(\"SHSE.600130\")\r\n  >    \r\n  >    # \u963b\u585e\u4e3b\u7ebf\u7a0b30\u79d2\u540e\u505c\u6b62\u7a0b\u5e8f ---------------------------------------------------\r\n  >     myapi.Join(30)\r\n  > myapi.Stop()\r\n  > ```\r\n  \r\n  \r\n\r\n## 5.6 QueryQuote - \u67e5\u8be2\u5b9e\u65f6\u884c\u60c5\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def QueryQuote(self, codes, sync=False, timeout=None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b           | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                         |\r\n  > | ------- | -------------- | -------- | ------------------------------------------------------------ |\r\n  > | codes   | str\u6216list[str] | \u65e0\uff0c\u5fc5\u586b | \u67e5\u8be2\u6807\u7684\uff0c\u6807\u7684\u683c\u5f0f\u4e3a`Market.Code`(\u5982`SHSE.600000`)\uff1b\u5982\u679c\u9700\u8981\u53d6\u6d88\u8ba2\u9605\u591a\u4e2a\u6807\u7684\uff0c\u65e2\u53ef\u4ee5\u4f7f\u7528\u5217\u8868\u5f62\u5f0f(\u5982`[\"SHSE.600000\",\"SZSE.000001\"]`)\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u82f1\u6587\u9017\u53f7`,`\u62fc\u63a5(\u5982`\"SHSE.600000,SZSE.000001\"`) |\r\n  > | sync    | bool           | False    | \u662f\u5426\u76f4\u63a5\u8fd4\u56de\u67e5\u8be2\u5230\u7684\u5b9e\u65f6\u884c\u60c5\uff08\u542f\u7528\u540c\u6b65\u6a21\u5f0f\uff09                 |\r\n  > | timeout | float          | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2                 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`QuoteMsg`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # \u5b9e\u73b0\u56de\u8c03Spi ----------------------------------------------------------------\r\n  > class MySpi(ac.AztQuoteSpi):\r\n  >     # \u5b9e\u73b0\u5f02\u6b65\u6a21\u5f0f\uff0c\u540c\u6b65\u6a21\u5f0f\u4e0b\u4e5f\u4f1a\u89e6\u53d1spi\u56de\u8c03\r\n  >     def onQueryQuote(self, msg):\r\n  >         self.api.info(\"\u6536\u5230\u884c\u60c5\u67e5\u8be2\u56de\u62a5(spi):\", msg)\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >     raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u6807\u7684,\u76f4\u63a5\u8fd4\u56de\u67e5\u8be2\u7684\u5b9e\u65f6\u884c\u60c5\uff08\u540c\u6b65\u6a21\u5f0f\uff09 ----------------------------------\r\n  > ret_query = myapi.QueryQuote(\"SHSE.600000,SHSE.600004,SHSE.600129,SHSE.600159\", sync=True, timeout=5)\r\n  > if not ret_query:\r\n  >     raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > myapi.info(\"\u6536\u5230\u884c\u60c5\u67e5\u8be2\u56de\u62a5:\", ret_query)\r\n  > ```\r\n\r\n  \r\n\r\n## 5.7 QuerySecurityInfo - \u67e5\u8be2\u6807\u7684\u4fe1\u606f\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def QuerySecurityInfo(self, codes, timeout: float = None)\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b           | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                         |\r\n  > | ------- | -------------- | -------- | ------------------------------------------------------------ |\r\n  > | codes   | str\u6216list[str] | \u65e0\uff0c\u5fc5\u586b | \u67e5\u8be2\u6807\u7684\uff0c\u6807\u7684\u683c\u5f0f\u4e3a`Market.Code`(\u5982`SHSE.600000`)\uff1b\u5982\u679c\u9700\u8981\u53d6\u6d88\u8ba2\u9605\u591a\u4e2a\u6807\u7684\uff0c\u65e2\u53ef\u4ee5\u4f7f\u7528\u5217\u8868\u5f62\u5f0f(\u5982`[\"SHSE.600000\",\"SZSE.000001\"]`)\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u82f1\u6587\u9017\u53f7`,`\u62fc\u63a5(\u5982`\"SHSE.600000,SZSE.000001\"`) |\r\n  > | timeout | float          | None     | \u67e5\u8be2\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2                       |\r\n  \r\n- **\u8fd4\u56de**\r\n\r\n  > - \u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`SecurityInfoRsp`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # \u83b7\u53d6\u8d26\u6237ID\u548c\u5bc6\u7801\u5e76\u586b\u5165 ------------------------------------------------------\r\n  > account = \"xxxx\"  # \u8d26\u6237ID\r\n  > passwd = \"xxxx\"  # \u8d26\u6237\u5bc6\u7801\r\n  > \r\n  > # \u521d\u59cb\u5316Api -------------------------------------------------------------------\r\n  > myapi = ac.AztQuoteApi()  # \u5b9e\u4f8b\u5316Api\r\n  > start_error = myapi.Start(ip=\"127.0.0.1\", port=1234)  # \u521d\u59cb\u5316Api\r\n  > if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >     raise start_error\r\n  > \r\n  > # \u67e5\u8be2\u6307\u5b9a\u6807\u7684\u4fe1\u606f,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ------------------------------------------------\r\n  > ret_query_security_info = myapi.QuerySecurityInfo(code=\"000001\", timeout=5.0)\r\n  > ac.info(\"\u6807\u7684\u4fe1\u606f\u67e5\u8be2\u7ed3\u679c:\", ret_query_security_info)\r\n  > ```\r\n\r\n\r\n\r\n------\r\n\r\n\r\n\r\n# 6 AztHisQuoteApi - \u5386\u53f2\u884c\u60c5\u670d\u52a1Api\r\n\r\n## 6.1 Start - \u542f\u52a8\u51fd\u6570\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  >  ```python\r\n  >  def Start(self, ip: str, port: int, spi=None, timeout=None reconnect: int = None, reconnect_ivl: float = None)\r\n  >  ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570          | \u7c7b\u578b           | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                         |\r\n  > | ------------- | -------------- | -------- | ------------------------------------------------------------ |\r\n  > | ip            | str            | \u65e0\uff0c\u5fc5\u586b | \u5386\u53f2\u884c\u60c5\u670d\u52a1\u5730\u5740\uff0c\u7531[aztquant.com](https://www.aztquant.com)\u63d0\u4f9b |\r\n  > | port          | int            | \u65e0\uff0c\u5fc5\u586b | \u5386\u53f2\u884c\u60c5\u670d\u52a1\u7aef\u53e3\uff0c\u7531[aztquant.com](https://www.aztquant.com)\u63d0\u4f9b |\r\n  > | spi           | AztHisQuoteSpi | None     | \u56de\u8c03Spi\u7c7b\u6216\u5b9e\u4f8b\uff0c\u7528\u4e8e\u5f02\u6b65\u63a5\u6536\u670d\u52a1\u5668\u7684\u54cd\u5e94\u6d88\u606f                |\r\n  > | timeout       | int            | None     | \u8fde\u63a5\u8d85\u65f6\u65f6\u95f4(\u5355\u4f4d\uff1a\u79d2)\uff0c\u82e5\u8d85\u65f6\u540e\u4ecd\u672a\u6210\u529f\u8fde\u63a5\u670d\u52a1\uff0c\u5219\u8fd4\u56de\u53ef`raise`\u7684`error`\uff1b\u82e5\u672a\u8bbe\u7f6e\u8d85\u65f6\u65f6\u95f4\uff0c\u5219`Start`\u51fd\u6570\u5c06\u4f1a\u963b\u585e\u76f4\u81f3\u8fde\u63a5\u6210\u529f |\r\n  > | reconnect     | int            | None     | \u91cd\u8fde\u6b21\u6570\uff0cNone\u62160\u8868\u793a\u65ad\u7ebf\u4e0d\u81ea\u52a8\u91cd\u8fde\uff0c-1\u8868\u793a\u65e0\u9650\u91cd\u8fde\uff1b\u91cd\u8fde\u4e00\u5b9a\u6b21\u6570\u540e\u4ecd\u672a\u8fde\u63a5\u6210\u529f\uff0c\u8fd4\u56de\u53efraise\u7684\u9519\u8bef |\r\n  > | reconnect_ivl | float          | None     | \u91cd\u8fde\u95f4\u9694\u65f6\u95f4\uff0c\u5355\u4f4d\uff1a\u79d2                                       |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u5982\u679c\u521d\u59cb\u5316\u6210\u529f\uff0c\u8fd4\u56de`None`\uff1b\u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u8fd4\u56de\u53ef`raise`\u7684`error`\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u53c2\u6570spi\u65e2\u53ef\u4ee5\u586b\u5165`AztHisQuoteSpi`\u7c7b\uff0c\u4e5f\u53ef\u4ee5\u586b\u5165`AztHisQuoteSpi()`\u7c7b\u5b9e\u4f8b\r\n\r\n\r\n\r\n## 6.2  Login - \u767b\u5f55\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Login(self, account: str, passwd: str, timeout: float = None):\r\n  > ```\r\n\r\n- **\u53c2\u6570**\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b  | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                         |\r\n  > | ------- | ----- | -------- | -------------------------------------------- |\r\n  > | account | str   | \u65e0\uff0c\u5fc5\u586b | \u8d26\u6237ID                                       |\r\n  > | passwd  | str   | \u65e0\uff0c\u5fc5\u586b | \u8d26\u6237\u5bc6\u7801                                     |\r\n  > | timeout | float | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u8fd4\u56de`HisQuoteLoginRsp`\u4fe1\u606f\uff1b\u82e5\u8d85\u65f6\u65e0\u54cd\u5e94\u5219\u8fd4\u56de`None`\r\n\r\n- **\u793a\u4f8b**\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > # 1 \u83b7\u53d6\u8d26\u6237ID\u548c\u5bc6\u7801\u5e76\u586b\u5165 ------------------------------------------------------\r\n  > account = \"xxxx\"  # \u8d26\u6237ID\r\n  > passwd = \"xxxx\"  # \u8d26\u6237\u5bc6\u7801\r\n  > \r\n  > # 2 \u521d\u59cb\u5316Api -------------------------------------------------------------------\r\n  > myapi = ac.AztHisQuoteApi()  # \u5b9e\u4f8b\u5316Api\r\n  > start_error = myapi.Start(ip=\"127.0.0.1\", port=1234)  # \u521d\u59cb\u5316Api\r\n  > if start_error:  # \u5982\u679c\u521d\u59cb\u5316\u5931\u8d25\uff0c\u62a5\u9519\r\n  >        raise start_error\r\n  > \r\n  > # 3 \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >        raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > myapi.info(\"\u767b\u5f55\u7ed3\u679c\uff1a\", ret_login)\r\n  > ```\r\n\r\n\r\n\r\n## 6.3 Logout - \u9000\u51fa\u767b\u5f55\r\n\r\n- **\u51fd\u6570\u7b7e\u540d**\r\n\r\n  > ```python\r\n  > def Logout(self)\r\n  > ```\r\n\r\n- **\u63d0\u793a**\r\n\r\n  > - \u53ea\u6709\u5728\u767b\u5f55\u4e4b\u540e\u624d\u9700\u8981\u4e5f\u624d\u80fd\u9000\u51fa\u767b\u5f55\r\n\r\n\r\n\r\n## 6.4 GetTradingCalendar - \u67e5\u8be2\u4ea4\u6613\u65e5\u5386\r\n\r\n- \u51fd\u6570\u7b7e\u540d\r\n\r\n  > ```python\r\n  > def GetTradingCalendar(self, market: str, year: int = None, sync: bool = False, timeout: float = None)\r\n  > ```\r\n\r\n- \u53c2\u6570\r\n\r\n  > | \u53c2\u6570    | \u7c7b\u578b  | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                         |\r\n  > | ------- | ----- | -------- | -------------------------------------------- |\r\n  > | market  | str   | \u65e0\uff0c\u5fc5\u586b | \u5e02\u573a\u4ee3\u7801                                     |\r\n  > | year    | int   | None     | \u5e74\u4efd                                         |\r\n  > | sync    | bool  | False    | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                             |\r\n  > | timeout | float | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`TradingCalendar`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n  \r\n- \u793a\u4f8b\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u4ea4\u6613\u65e5\u5386,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ----------------------------------------------------\r\n  > ret_trading_calendar = myapi.GetTradingCalendar(\"SHSE\", sync=True, timeout=5)\r\n  > if ret_trading_calendar is None: # \u5982\u679c\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > myapi.info(\"\u67e5\u8be2\u56de\u590d\uff1a\", ret_trading_calendar)\r\n  > ```\r\n  >\r\n  \r\n  \r\n\r\n## 6.5 GetNextTradingDate - \u67e5\u8be2\u4e0b\u4e00\u4e2a\u4ea4\u6613\u65e5\r\n\r\n- \u51fd\u6570\u7b7e\u540d\r\n\r\n  > ```python\r\n  > def GetNextTradingDate(self, market: str, trading_date: datetime.datetime, direction: bool = True, sync: bool = False, timeout: float = None)\r\n  > ```\r\n\r\n- \u53c2\u6570\r\n\r\n  > | \u53c2\u6570         | \u7c7b\u578b              | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                      |\r\n  > | ------------ | ----------------- | -------- | --------------------------------------------------------- |\r\n  > | market       | str               | \u65e0\uff0c\u5fc5\u586b | \u5e02\u573a\u4ee3\u7801                                                  |\r\n  > | trading_date | datetime.datetime | \u65e0\uff0c\u5fc5\u586b | \u5f53\u524d\u4ea4\u6613\u65e5\u5386                                              |\r\n  > | direction    | bool              | True     | \u65b9\u5411\uff0c`True`\u4e3a\u67e5\u8be2\u4e0b\u4e00\u4e2a\u4ea4\u6613\u65e5\uff0c`False`\u4e3a\u67e5\u8be2\u4e0a\u4e00\u4e2a\u4ea4\u6613\u65e5 |\r\n  > | sync         | bool              | False    | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                                          |\r\n  > | timeout      | float             | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2              |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`TradingDate`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- \u793a\u4f8b\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u4e0b\u4e2a\u4ea4\u6613\u65e5,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ----------------------------------------------------\r\n  > ret_trading_date = myapi.GetNextTradingDate(\"SHSE\", datetime.datetime(2022, 9, 18), sync=True, timeout=5)\r\n  > \r\n  > if ret_trading_date is None: # \u5982\u679c\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > myapi.info(\"\u67e5\u8be2\u56de\u590d\uff1a\", ret_trading_date)\r\n  > ```\r\n\r\n\r\n\r\n## 6.6 QueryHisTicks - \u67e5\u8be2\u5386\u53f2Tick\u884c\u60c5\r\n\r\n- \u51fd\u6570\u7b7e\u540d\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- \u53c2\u6570\r\n\r\n  > | \u53c2\u6570        | \u7c7b\u578b              | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                         |\r\n  > | ----------- | ----------------- | -------- | -------------------------------------------- |\r\n  > | market      | str               | \u65e0\uff0c\u5fc5\u586b | \u4ea4\u6613\u6240\u4ee3\u7801                                   |\r\n  > | code        | str               | \u65e0\uff0c\u5fc5\u586b | \u6807\u7684\u4ee3\u7801                                     |\r\n  > | start_time  | datetime.datetime | \u65e0\uff0c\u5fc5\u586b | \u5f00\u59cb\u65f6\u95f4                                     |\r\n  > | end_time    | datetime.datetime | \u65e0\uff0c\u5fc5\u586b | \u7ed3\u675f\u65f6\u95f4                                     |\r\n  > | num         | int               | None     | \u67e5\u8be2\u9650\u5236\u6570\u91cf\uff0c\u53d6\u503c\u8303\u56f4`(0,24000)`            |\r\n  > | adjust      | int               | None     | \u590d\u6743\u65b9\u5f0f\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1`EAdjust`        |\r\n  > | adjust_time | datetime.datetime | None     | \u590d\u6743\u57fa\u70b9\u65f6\u95f4\uff0c\u9ed8\u8ba4\u5f53\u524d\u65f6\u95f4                   |\r\n  > | sync        | bool              | False    | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                             |\r\n  > | timeout     | float             | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2 |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`HisQuoteTicksMsg`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- \u793a\u4f8b\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2Tick\u884c\u60c5,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ----------------------------------------------------\r\n  >    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)\r\n  > \r\n  > if ret_ticks is None: # \u5982\u679c\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > myapi.info(\"\u67e5\u8be2\u56de\u590d\uff1a\", ret_ticks)\r\n  > ```\r\n\r\n\r\n\r\n## 6.7 QueryHisBars - \u67e5\u8be2\u5386\u53f2Bar\u884c\u60c5\r\n\r\n- \u51fd\u6570\u7b7e\u540d\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- \u53c2\u6570\r\n\r\n  > | \u53c2\u6570        | \u7c7b\u578b              | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                          |\r\n  > | ----------- | ----------------- | -------- | --------------------------------------------- |\r\n  > | market      | str               | \u65e0\uff0c\u5fc5\u586b | \u4ea4\u6613\u6240\u4ee3\u7801                                    |\r\n  > | code        | str               | \u65e0\uff0c\u5fc5\u586b | \u6807\u7684\u4ee3\u7801                                      |\r\n  > | period      | int               | \u65e0\uff0c\u5fc5\u586b | \u884c\u60c5\u7c92\u5ea6\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EPeriod` |\r\n  > | start_time  | datetime.datetime | \u65e0\uff0c\u5fc5\u586b | \u5f00\u59cb\u65f6\u95f4                                      |\r\n  > | end_time    | datetime.datetime | \u65e0\uff0c\u5fc5\u586b | \u7ed3\u675f\u65f6\u95f4                                      |\r\n  > | num         | int               | None     | \u67e5\u8be2\u9650\u5236\u6570\u91cf\uff0c\u53d6\u503c\u8303\u56f4`(0,24000)`             |\r\n  > | adjust      | int               | None     | \u590d\u6743\u65b9\u5f0f\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1`EAdjust`         |\r\n  > | adjust_time | datetime.datetime | None     | \u590d\u6743\u57fa\u70b9\u65f6\u95f4\uff0c\u9ed8\u8ba4\u5f53\u524d\u65f6\u95f4                    |\r\n  > | sync        | bool              | False    | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                              |\r\n  > | timeout     | float             | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2  |\r\n\r\n- **\u8fd4\u56de**\r\n\r\n  > \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`HisQuoteBarsMsg`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- \u793a\u4f8b\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2Bar\u884c\u60c5,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ----------------------------------------------------\r\n  >    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)\r\n  > \r\n  > if ret_bars is None: # \u5982\u679c\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > myapi.info(\"\u67e5\u8be2\u56de\u590d\uff1a\", ret_bars)\r\n  > ```\r\n\r\n\r\n\r\n## 6.8 QueryFundamentalData - \u67e5\u8be2\u57fa\u672c\u9762\u5386\u53f2\u6570\u636e\r\n\r\n- \u51fd\u6570\u7b7e\u540d\r\n\r\n  > ```python\r\n  > 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)\r\n  > ```\r\n\r\n- \u53c2\u6570\r\n\r\n  > | \u53c2\u6570              | \u7c7b\u578b              | \u9ed8\u8ba4\u503c   | \u8bf4\u660e                                                         |\r\n  > | ----------------- | ----------------- | -------- | ------------------------------------------------------------ |\r\n  > | fundamentals_type | int               | \u65e0\uff0c\u5fc5\u586b | \u57fa\u672c\u9762\u6570\u636e\u7c7b\u578b\uff0c\u5177\u4f53\u542b\u4e49\u4e0e\u53d6\u503c\u53c2\u89c1\u679a\u4e3e\u5e38\u91cf`EFundamentalsType` |\r\n  > | market            | str               | \u65e0\uff0c\u5fc5\u586b | \u4ea4\u6613\u6240\u4ee3\u7801                                                   |\r\n  > | code              | str               | \u65e0\uff0c\u5fc5\u586b | \u6807\u7684\u4ee3\u7801                                                     |\r\n  > | start_date        | datetime.datetime | None     | \u5f00\u59cb\u65f6\u95f4                                                     |\r\n  > | end_date          | datetime.datetime | None     | \u7ed3\u675f\u65f6\u95f4                                                     |\r\n  > | fileds            | list[str]\u6216str    | None     | \u67e5\u8be2\u5b57\u6bb5\u5217\u8868\uff0c\u7c7b\u578b\u4e3a\u5217\u8868\uff0c\u6216\u4e3a\u4ee5`\",\"`\u5206\u9694\u7684\u5b57\u7b26\u4e32\u3002\u9ed8\u8ba4\u67e5\u8be2\u6240\u6709\u5b57\u6bb5\uff0c\u53ef\u67e5\u8be2\u5b57\u6bb5\u53c2\u89c1`\u9644\u5f552` |\r\n  > | sync              | bool              | False    | \u662f\u5426\u5f00\u542f\u540c\u6b65\u6a21\u5f0f                                             |\r\n  > | timeout           | float             | None     | \u540c\u6b65\u6a21\u5f0f\u65f6\u8d85\u65f6\u65f6\u95f4\uff0c\u8d85\u65f6\u8fd4\u56de`None`\uff0c\u5355\u4f4d\uff1a\u79d2                 |\r\n\r\n- \u8fd4\u56de\r\n\r\n  > \u5f53`sync=True`\u4e14\u5728\u8d85\u65f6\u524d\u5f97\u5230\u54cd\u5e94\u65f6\uff0c\u8fd4\u56de`FundamentalsDatas`\u4fe1\u606f\uff0c\u5176\u4f59\u60c5\u51b5\u8fd4\u56de`None`\r\n\r\n- \u793a\u4f8b\r\n\r\n  > ```python\r\n  > import AztClient as ac  # \u5bfc\u5165\u5ba2\u6237\u7aef\u5e93\r\n  > \r\n  > ......\r\n  > \r\n  > # \u767b\u5f55Api,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 ---------------------------------------------------------\r\n  > ret_login = myapi.Login(account, passwd, timeout=5)\r\n  > if ret_login is None: # \u5982\u679c\u767b\u9646\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > # \u67e5\u8be2\u57fa\u672c\u9762\u6570\u636e,\u8bbe\u7f6e5\u79d2\u8d85\u65f6 --------------------------------------------------\r\n  >     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))\r\n  > \r\n  > if ret_fundamentals is None: # \u5982\u679c\u5931\u8d25,\u76f4\u63a5\u62a5\u9519\u7ec8\u6b62\u7a0b\u5e8f\r\n  >      raise Exception(\"\u670d\u52a1\u5668\u672a\u54cd\u5e94\uff01\")\r\n  > \r\n  > myapi.info(\"\u67e5\u8be2\u56de\u590d\uff1a\", ret_fundamentals)\r\n  > ```\r\n\r\n\r\n\r\n------\r\n\r\n\r\n\r\n# 7 \u9644\u5f55\r\n\r\n## 7.1 \u9644\u5f551 - Spi\u4ecb\u7ecd\r\n\r\n### 7.1.1 Spi\u4f7f\u7528\u8bf4\u660e\r\n\r\n\u7528\u6237\u53ef\u4ee5\u6839\u636e\u9700\u8981\u6709\u9009\u62e9\u5730\u5b9e\u73b0Spi\u4e2d\u7684\u51fd\u6570\uff0c\u4f46\u7528\u6237\u987b\u77e5\uff1a\r\n\r\n1. Spi\u4e13\u4e3a\u5f02\u6b65\u6a21\u5f0f\u8bbe\u8ba1\r\n\r\n   > \u5f53Api\u8bbe\u7f6e`sync=False`\u65f6\uff0c\u7528\u6237\u5fc5\u987b\u7ee7\u627f\u5b9e\u73b0Spi\u4e2d\u76f8\u5e94\u7684\u54cd\u5e94\u51fd\u6570\uff0c\u5426\u5219\u65e0\u6cd5\u63a5\u6536\u670d\u52a1\u7aef\u8fd4\u56de\u7684\u6d88\u606f\u548c\u6570\u636e\r\n\r\n2. \u540c\u6b65\u6a21\u5f0f\u540c\u6837\u53ef\u7528\r\n\r\n   > \u5f53Api\u8bbe\u7f6e\u540c\u6b65\u6a21\u5f0f\uff08\u5373\u5f53`sync=True`\uff09\u65f6\uff0c\u54cd\u5e94\u7ed3\u679c\u5728\u76f4\u63a5\u901a\u8fc7Api\u51fd\u6570\u8fd4\u56de\u7684\u540c\u65f6\u4e5f\u4f1a\u901a\u8fc7\u5df2\u5b9e\u73b0\u7684Spi\u51fd\u6570\u8fd4\u56de\u3002\u56e0\u6b64\u5982\u679c\u7528\u6237\u5728\u4f7f\u7528\u540c\u6b65\u6a21\u5f0f\u65f6\u540c\u65f6\u5b9e\u73b0\u4e86\u76f8\u5e94\u7684Spi\u51fd\u6570\uff0c\u54cd\u5e94\u6d88\u606f\u4f1a\u8fd4\u56de\u4e24\u6b21\r\n\r\n3. \u81ea\u52a8\u5f15\u7528Api\r\n\r\n   > Spi\u5b9e\u4f8b\u5bf9\u8c61\u90fd\u4f1a\u81ea\u52a8\u5f15\u7528\u6240\u5c5e\u7684Api\u5bf9\u8c61\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7Spi\u7684`api`\u5c5e\u6027\u6765\u8bbf\u95eeApi\u5bf9\u8c61\r\n\r\n4. \u5904\u7406Api\u9519\u8bef\r\n\r\n   > \u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u5b9e\u73b0Spi\u4e2d\u7684`onError`\u51fd\u6570\u63a5\u6536Api\u5728\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u7684\u6240\u6709\u9519\u8bef\uff0c\u5982\u8fde\u63a5\u4e2d\u65ad\u9519\u8bef\u7b49\uff0c\u7528\u6237\u4e5f\u53ef\u4ee5\u5728\u8fde\u63a5\u4e2d\u65ad\u540e\u518d\u6b21\u8c03\u7528`Start`\u51fd\u6570\u5c1d\u8bd5\u91cd\u65b0\u8fde\u63a5\u670d\u52a1\u7aef\r\n\r\n5. \u81ea\u52a8\u91cd\u8fde\u6210\u529f\u56de\u62a5\r\n\r\n   > \u5982\u679c\u7528\u6237\u5728\u8c03\u7528`Start`\u51fd\u6570\u65f6\u8bbe\u7f6e\u4e86\u81ea\u52a8\u91cd\u8fde\uff0c\u5f53\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u7aef\u8fde\u63a5\u4e2d\u65ad\u4f46\u81ea\u52a8\u91cd\u8fde\u6210\u529f\u540e\uff08\u82e5\u7528\u6237\u5df2\u767b\u5f55\uff0c\u5219\u540c\u65f6\u81ea\u52a8\u91cd\u65b0\u767b\u5f55\uff09\uff0cSpi\u7684onReconnected\u51fd\u6570\u4f1a\u88ab\u8c03\u7528\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u6b64\u51fd\u6570\u4e2d\u91cd\u65b0\u6267\u884c\u4e00\u4e9b\u5982\u884c\u60c5\u8ba2\u9605\u7b49\u9700\u8981\u670d\u52a1\u7aef\u5f02\u6b65\u8fd4\u56de\u6d88\u606f\u7684\u64cd\u4f5c\r\n\r\n### 7.1.2 AztTradeSpi\r\n\r\n```python\r\nclass AztTradeSpi:\r\n    # \u8d26\u6237\u5165\u91d1\u56de\u62a5\uff0cmsg\u4e3aAccDepositAck\u5b9e\u4f8b\r\n    def onDepositAsset(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u8d26\u6237\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aTradeRegisterInfo\u5b9e\u4f8b\r\n    def onQueryAccountInfo(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u8d26\u6237\u8d44\u4ea7\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aAccMargin\u5b9e\u4f8b\r\n    def onQueryAsset(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u59d4\u6258\u8ba2\u5355\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aQueryOrdersAck\u5b9e\u4f8b\r\n    def onQueryOrders(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u6210\u4ea4\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aQueryTradesAck\u5b9e\u4f8b\r\n    def onQueryTrades(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u6301\u4ed3\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aQueryPositionsAck\u5b9e\u4f8b\r\n    def onQueryPositions(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u5386\u53f2\u59d4\u6258\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aQueryOrdersAck\u5b9e\u4f8b\r\n    def onQueryHistoryOrders(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u5386\u53f2\u6210\u4ea4\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aQueryTradesAck\u5b9e\u4f8b\r\n    def onQueryHistoryTrades(self, msg):\r\n        pass\r\n\r\n    # \u59d4\u6258\u6267\u884c\u56de\u62a5\uff0cmsg\u4e3aOrdReport\u5b9e\u4f8b\r\n    def onOrderReport(self, msg):\r\n        pass\r\n\r\n    # \u59d4\u6258\u6210\u4ea4\u56de\u62a5\uff0cmsg\u4e3aTradeReport\u5b9e\u4f8b\r\n    def onTradeReport(self, msg):\r\n        pass\r\n\r\n    # \u64a4\u5355\u5931\u8d25\u56de\u62a5\uff0cmsg\u4e3aCancelOrderReject\u5b9e\u4f8b\r\n    def onCancelOrderReject(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u8d26\u6237\u5386\u53f2\u8d44\u4ea7\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aQryHisAccAck\u5b9e\u4f8b\r\n    def onQueryHistoryAsset(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u5386\u53f2\u5165\u91d1\u4fe1\u606f\u56de\u62a5\uff0cmsg\u4e3aQryHisDepositAck\u5b9e\u4f8b\r\n    def onQueryHistoryDeposit(self, msg):\r\n        pass\r\n    \r\n    # \u8fde\u63a5\u4e2d\u65ad\u56de\u62a5\uff0c\u4e00\u65e6\u88ab\u8c03\u7528\uff0c\u5219\u8bf4\u660e\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u7aef\u7684\u8fde\u63a5\u4e2d\u65ad\u4e86\r\n    def onError(self, err):\r\n        pass\r\n    \r\n    # \u65ad\u7ebf\u81ea\u52a8\u91cd\u8fde\u6210\u529f\r\n    def onReconnected(self):\r\n        pass\r\n```\r\n\r\n### 7.1.3 AztQuoteSpi\r\n\r\n```python\r\nclass AztQuoteSpi:\r\n    # \u8ba2\u9605\u884c\u60c5\u56de\u62a5\uff0cmsg\u4e3aQuoteRegisterRsp\u5b9e\u4f8b\r\n    def onSubscribe(self, msg):\r\n        pass\r\n\r\n    # \u53d6\u6d88\u8ba2\u9605\u884c\u60c5\u56de\u62a5\uff0cmsg\u4e3aQuoteRegisterRsp\u5b9e\u4f8b\r\n    def onUnsubscribe(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u884c\u60c5\u56de\u62a5\uff0cmsg\u4e3aQuoteMsg\u5b9e\u4f8b\r\n    def onQueryQuote(self, msg):\r\n        pass\r\n\r\n    # \u884c\u60c5\u63a8\u9001\uff0cmsg\u4e3aQuoteMsg\u5b9e\u4f8b\r\n    def onQuoteData(self, msg):\r\n        pass\r\n\r\n    # \u9519\u8bef\u56de\u62a5\uff0cerr\u4e3a\u53efrasie\u7684Exception\u9519\u8bef\r\n    def onError(self, err):\r\n        pass\r\n    \r\n    # \u65ad\u7ebf\u81ea\u52a8\u91cd\u8fde\u6210\u529f\r\n    def onReconnected(self):\r\n        pass\r\n```\r\n\r\n### 7.1.4 AztHisQuoteSpi\r\n\r\n```python\r\nclass AztHisQuoteSpi:\r\n    # \u67e5\u8be2Tick\u884c\u60c5\u56de\u62a5,msg\u4e3aHisQuoteTicksMsg\u5b9e\u4f8b\r\n    def onQueryHisTicks(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2Bar\u884c\u60c5\u56de\u62a5,msg\u4e3aHisQuoteBarsMsg\u5b9e\u4f8b\r\n    def onQueryHisBars(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u4ea4\u6613\u65e5\u5386\u56de\u62a5,msg\u4e3aTradingCalendar\u5b9e\u4f8b\r\n    def onGetTradingCalendar(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u4e0b\u4e2a\u4ea4\u6613\u65e5\u56de\u62a5,msg\u4e3aTradingDate\u5b9e\u4f8b\r\n    def onGetNextTradingDate(self, msg):\r\n        pass\r\n\r\n    # \u67e5\u8be2\u57fa\u672c\u9762\u6570\u636e\u56de\u62a5,msg\u4e3aFundamentalsDatas\u5b9e\u4f8b\r\n    def onGetFundamentals(self, msg):\r\n        pass\r\n    \r\n    # \u8fde\u63a5\u4e2d\u65ad\u56de\u62a5,err\u4e3a\u53efraise\u7684Exception\u9519\u8bef\r\n    def onError(self, err):\r\n        pass\r\n    \r\n    # \u65ad\u7ebf\u81ea\u52a8\u91cd\u8fde\u6210\u529f\r\n    def onReconnected(self):\r\n        pass\r\n```\r\n\r\n\r\n\r\n## 7.2 \u9644\u5f552 - \u57fa\u672c\u9762\u6570\u636e\u53c2\u8003\u5b57\u6bb5\r\n\r\n### 7.2.1 \u80a1\u7968\u4ea4\u6613\u884d\u751f\u8868\r\n\r\n- \u679a\u4e3e\u7c7b\u578b\uff1a`KFundamentalsType_TradingDerivative`\r\n\r\n- \u5b57\u6bb5\r\n\r\n  > | \u5b57\u6bb5         | \u610f\u4e49                            | \u5355\u4f4d |\r\n  > | ------------ | ------------------------------- | ---- |\r\n  > | dy           | \u80a1\u606f\u7387(\u6eda\u52a812\u6708-\u6309\u8bc1\u76d1\u4f1a\u53e3\u5f84)   | %    |\r\n  > | ev           | \u4f01\u4e1a\u4ef7\u503cEV(=\u80a1\u6743\u4ef7\u503c\uff0b\u503a\u6743\u4ef7\u503c) | \u5143   |\r\n  > | evebitda     | \u4f01\u4e1a\u4ef7\u503c\uff0f\u7a0e\u606f\u6298\u65e7\u644a\u9500\u524d\u5229\u6da6    | \u500d   |\r\n  > | evps         | \u6bcf\u80a1\u4f01\u4e1a\u4ef7\u503c                    | \u5143   |\r\n  > | flow_share   | \u6d41\u901a\u80a1\u672c                        | \u80a1   |\r\n  > | lydy         | \u80a1\u606f\u7387(\u6eda\u52a812\u6708-\u8d22\u6c47\u53e3\u5f84)       | %    |\r\n  > | negotiablemv | \u6d41\u901a\u5e02\u503c                        | \u5143   |\r\n  > | pb           | \u5e02\u51c0\u7387(PB)                      | \u500d   |\r\n  > | pclfy        | \u5e02\u73b0\u7387LFY                       | \u500d   |\r\n  > | pcttm        | \u5e02\u73b0\u7387TTM                       | \u500d   |\r\n  > | pelfy        | \u5e02\u76c8\u7387LFY                       | \u500d   |\r\n  > | pelfynpaaei  | \u5e02\u76c8\u7387LFY\u6263\u9664\u975e\u7ecf\u5e38\u6027\u635f\u76ca       | \u500d   |\r\n  > | pemrq        | \u5e02\u76c8\u7387MRQ                       | \u500d   |\r\n  > | pemrqnpaaei  | \u5e02\u76c8\u7387MRQ\u6263\u9664\u975e\u7ecf\u5e38\u6027\u635f\u76ca       | \u500d   |\r\n  > | pettm        | \u5e02\u76c8\u7387TTM                       | \u500d   |\r\n  > | pettmnpaaei  | \u5e02\u76c8\u7387TTM\u6263\u9664\u975e\u7ecf\u5e38\u6027\u635f\u76ca       | \u500d   |\r\n  > | pslfy        | \u5e02\u9500\u7387LFY                       | \u500d   |\r\n  > | psmrq        | \u5e02\u9500\u7387MRQ                       | \u500d   |\r\n  > | psttm        | \u5e02\u9500\u7387TTM                       | \u500d   |\r\n  > | tclose       | \u6536\u76d8\u4ef7                          | \u5143   |\r\n  > | total_share  | \u603b\u80a1\u672c                          | \u80a1   |\r\n  > | totmktcap    | \u603b\u5e02\u503c                          | \u5143   |\r\n  > | turnrate     | \u5f53\u65e5\u6362\u624b\u7387                      | %    |\r\n\r\n### 7.2.2 \u8d44\u4ea7\u8d1f\u503a\u8868\r\n\r\n- \u679a\u4e3e\u7c7b\u578b\uff1a`KFundamentalsType_BalanceSheet`\r\n\r\n- \u5b57\u6bb5\r\n\r\n  > | \u5b57\u6bb5                   | \u610f\u4e49                             | \u5355\u4f4d |\r\n  > | ---------------------- | -------------------------------- | ---- |\r\n  > | accheldfors            | \u5212\u5206\u4e3a\u6301\u6709\u5f85\u552e\u7684\u8d44\u4ea7             | \u5143   |\r\n  > | accopaya               | \u5e94\u4ed8\u8d26\u6b3e                         | \u5143   |\r\n  > | accorece               | \u5e94\u6536\u8d26\u6b3e                         | \u5143   |\r\n  > | accrexpe               | \u9884\u63d0\u8d39\u7528                         | \u5143   |\r\n  > | accudepr               | \u7d2f\u8ba1\u6298\u65e7                         | \u5143   |\r\n  > | actitradsecu           | \u4ee3\u7406\u4e70\u5356\u8bc1\u5238\u6b3e                   | \u5143   |\r\n  > | actiundesecu           | \u4ee3\u7406\u627f\u9500\u8bc1\u5238\u6b3e                   | \u5143   |\r\n  > | advapaym               | \u9884\u6536\u6b3e\u9879                         | \u5143   |\r\n  > | avaisellasse           | \u53ef\u4f9b\u51fa\u552e\u91d1\u878d\u8d44\u4ea7                 | \u5143   |\r\n  > | bdspaya                | \u5e94\u4ed8\u503a\u5238                         | \u5143   |\r\n  > | bdspayaperbond         | \u5e94\u4ed8\u503a\u5238:\u6c38\u7eed\u503a                  | \u5143   |\r\n  > | bdspayaprest           | \u5e94\u4ed8\u503a\u5238:\u4f18\u5148\u80a1                  | \u5143   |\r\n  > | capisurp               | \u8d44\u672c\u516c\u79ef                         | \u5143   |\r\n  > | cenbankborr            | \u5411\u4e2d\u592e\u94f6\u884c\u501f\u6b3e                   | \u5143   |\r\n  > | comasse                | \u516c\u76ca\u6027\u751f\u7269\u8d44\u4ea7                   | \u5143   |\r\n  > | consprog               | \u5728\u5efa\u5de5\u7a0b                         | \u5143   |\r\n  > | copepoun               | \u5e94\u4ed8\u624b\u7eed\u8d39\u53ca\u4f63\u91d1                 | \u5143   |\r\n  > | copewithreinrece       | \u5e94\u4ed8\u5206\u4fdd\u8d26\u6b3e                     | \u5143   |\r\n  > | copeworkersal          | \u5e94\u4ed8\u804c\u5de5\u85aa\u916c                     | \u5143   |\r\n  > | curfds                 | \u8d27\u5e01\u8d44\u91d1                         | \u5143   |\r\n  > | curtrandiff            | \u5916\u5e01\u62a5\u8868\u6298\u7b97\u5dee\u989d                 | \u5143   |\r\n  > | defeincotaxliab        | \u9012\u5ef6\u6240\u5f97\u7a0e\u8d1f\u503a                   | \u5143   |\r\n  > | defereve               | \u4e00\u5e74\u5185\u7684\u9012\u5ef6\u6536\u76ca                 | \u5143   |\r\n  > | defetaxasset           | \u9012\u5ef6\u6240\u5f97\u7a0e\u8d44\u4ea7                   | \u5143   |\r\n  > | deposit                | \u5438\u6536\u5b58\u6b3e\u53ca\u540c\u4e1a\u5b58\u653e               | \u5143   |\r\n  > | derifinaasset          | \u884d\u751f\u91d1\u878d\u8d44\u4ea7                     | \u5143   |\r\n  > | deriliab               | \u884d\u751f\u91d1\u878d\u8d1f\u503a                     | \u5143   |\r\n  > | deveexpe               | \u5f00\u53d1\u652f\u51fa                         | \u5143   |\r\n  > | dividrece              | \u5e94\u6536\u80a1\u5229                         | \u5143   |\r\n  > | divipaya               | \u5e94\u4ed8\u80a1\u5229                         | \u5143   |\r\n  > | dometicksett           | \u56fd\u5185\u7968\u8bc1\u7ed3\u7b97                     | \u5143   |\r\n  > | duenoncliab            | \u4e00\u5e74\u5185\u5230\u671f\u7684\u975e\u6d41\u52a8\u8d1f\u503a           | \u5143   |\r\n  > | engimate               | \u5de5\u7a0b\u7269\u8d44                         | \u5143   |\r\n  > | equiinve               | \u957f\u671f\u80a1\u6743\u6295\u8d44                     | \u5143   |\r\n  > | expecurrliab           | \u9884\u8ba1\u6d41\u52a8\u8d1f\u503a                     | \u5143   |\r\n  > | expenoncliab           | \u9884\u8ba1\u975e\u6d41\u52a8\u8d1f\u503a                   | \u5143   |\r\n  > | expinoncurrasset       | \u4e00\u5e74\u5185\u5230\u671f\u7684\u975e\u6d41\u52a8\u8d44\u4ea7           | \u5143   |\r\n  > | expotaxrebarece        | \u5e94\u6536\u51fa\u53e3\u9000\u7a0e                     | \u5143   |\r\n  > | fdsborr                | \u62c6\u5165\u8d44\u91d1                         | \u5143   |\r\n  > | fixedasseclea          | \u56fa\u5b9a\u8d44\u4ea7\u6e05\u7406                     | \u5143   |\r\n  > | fixedasseimmo          | \u56fa\u5b9a\u8d44\u4ea7\u539f\u503c                     | \u5143   |\r\n  > | fixedasseimpa          | \u56fa\u5b9a\u8d44\u4ea7\u51cf\u503c\u51c6\u5907                 | \u5143   |\r\n  > | fixedassenet           | \u56fa\u5b9a\u8d44\u4ea7\u51c0\u989d                     | \u5143   |\r\n  > | fixedassenetw          | \u56fa\u5b9a\u8d44\u4ea7\u51c0\u503c                     | \u5143   |\r\n  > | generiskrese           | \u4e00\u822c\u98ce\u9669\u51c6\u5907                     | \u5143   |\r\n  > | goodwill               | \u5546\u8a89                             | \u5143   |\r\n  > | holdinvedue            | \u6301\u6709\u81f3\u5230\u671f\u6295\u8d44                   | \u5143   |\r\n  > | hydrasset              | \u6cb9\u6c14\u8d44\u4ea7                         | \u5143   |\r\n  > | insucontrese           | \u4fdd\u9669\u5408\u540c\u51c6\u5907\u91d1                   | \u5143   |\r\n  > | intaasset              | \u65e0\u5f62\u8d44\u4ea7                         | \u5143   |\r\n  > | intelpay               | \u5185\u90e8\u5e94\u4ed8\u6b3e                       | \u5143   |\r\n  > | intelrece              | \u5185\u90e8\u5e94\u6536\u6b3e                       | \u5143   |\r\n  > | intepaya               | \u5e94\u4ed8\u5229\u606f                         | \u5143   |\r\n  > | interece               | \u5e94\u6536\u5229\u606f                         | \u5143   |\r\n  > | inteticksett           | \u56fd\u9645\u7968\u8bc1\u7ed3\u7b97                     | \u5143   |\r\n  > | inve                   | \u5b58\u8d27                             | \u5143   |\r\n  > | inveprop               | \u6295\u8d44\u6027\u623f\u5730\u4ea7                     | \u5143   |\r\n  > | lcopeworkersal         | \u957f\u671f\u5e94\u4ed8\u804c\u5de5\u85aa\u916c                 | \u5143   |\r\n  > | lendandloan            | \u53d1\u653e\u8d37\u6b3e\u53ca\u57ab\u6b3e                   | \u5143   |\r\n  > | liabheldfors           | \u5212\u5206\u4e3a\u6301\u6709\u5f85\u552e\u7684\u8d1f\u503a             | \u5143   |\r\n  > | logprepexpe            | \u957f\u671f\u5f85\u644a\u8d39\u7528                     | \u5143   |\r\n  > | longborr               | \u957f\u671f\u501f\u6b3e                         | \u5143   |\r\n  > | longdefeinco           | \u957f\u671f\u9012\u5ef6\u6536\u76ca                     | \u5143   |\r\n  > | longpaya               | \u957f\u671f\u5e94\u4ed8\u6b3e                       | \u5143   |\r\n  > | longrece               | \u957f\u671f\u5e94\u6536\u6b3e                       | \u5143   |\r\n  > | margrece               | \u5e94\u6536\u4fdd\u8bc1\u91d1                       | \u5143   |\r\n  > | margrequ               | \u5e94\u4ed8\u4fdd\u8bc1\u91d1                       | \u5143   |\r\n  > | minysharrigh           | \u5c11\u6570\u80a1\u4e1c\u6743\u76ca                     | \u5143   |\r\n  > | notespaya              | \u5e94\u4ed8\u7968\u636e                         | \u5143   |\r\n  > | notesrece              | \u5e94\u6536\u7968\u636e                         | \u5143   |\r\n  > | ocl                    | \u5176\u4ed6\u7efc\u5408\u6536\u76ca                     | \u5143   |\r\n  > | othequin               | \u5176\u4ed6\u6743\u76ca\u5de5\u5177                     | \u5143   |\r\n  > | othercurrasse          | \u5176\u4ed6\u6d41\u52a8\u8d44\u4ea7                     | \u5143   |\r\n  > | othercurreliabi        | \u5176\u4ed6\u6d41\u52a8\u8d1f\u503a                     | \u5143   |\r\n  > | otherfeepaya           | \u5176\u4ed6\u5e94\u4ea4\u6b3e                       | \u5143   |\r\n  > | otherlonginve          | \u5176\u4ed6\u957f\u671f\u6295\u8d44                     | \u5143   |\r\n  > | othernoncasse          | \u5176\u4ed6\u975e\u6d41\u52a8\u8d44\u4ea7                   | \u5143   |\r\n  > | othernoncliabi         | \u5176\u4ed6\u975e\u6d41\u52a8\u8d1f\u503a                   | \u5143   |\r\n  > | otherpay               | \u5176\u4ed6\u5e94\u4ed8\u6b3e                       | \u5143   |\r\n  > | otherrece              | \u5176\u4ed6\u5e94\u6536\u6b3e                       | \u5143   |\r\n  > | paidincapi             | \u5b9e\u6536\u8d44\u672c(\u6216\u80a1\u672c)                 | \u5143   |\r\n  > | paresharrigh           | \u5f52\u5c5e\u4e8e\u6bcd\u516c\u53f8\u80a1\u4e1c\u6743\u76ca\u5408\u8ba1         | \u5143   |\r\n  > | perbond                | \u6c38\u7eed\u503a                           | \u5143   |\r\n  > | plac                   | \u62c6\u51fa\u8d44\u91d1                         | \u5143   |\r\n  > | premrece               | \u5e94\u6536\u4fdd\u8d39                         | \u5143   |\r\n  > | prep                   | \u9884\u4ed8\u6b3e\u9879                         | \u5143   |\r\n  > | prepexpe               | \u5f85\u644a\u8d39\u7528                         | \u5143   |\r\n  > | prest                  | \u4f18\u5148\u80a1                           | \u5143   |\r\n  > | prodasse               | \u751f\u4ea7\u6027\u751f\u7269\u8d44\u4ea7                   | \u5143   |\r\n  > | purcresaasset          | \u4e70\u5165\u8fd4\u552e\u91d1\u878d\u8d44\u4ea7                 | \u5143   |\r\n  > | reincontrese           | \u5e94\u6536\u5206\u4fdd\u5408\u540c\u51c6\u5907\u91d1               | \u5143   |\r\n  > | reinrece               | \u5e94\u6536\u5206\u4fdd\u8d26\u6b3e                     | \u5143   |\r\n  > | rese                   | \u76c8\u4f59\u516c\u79ef                         | \u5143   |\r\n  > | righaggr               | \u6240\u6709\u8005\u6743\u76ca(\u6216\u80a1\u4e1c\u6743\u76ca)\u5408\u8ba1       | \u5143   |\r\n  > | sellrepasse            | \u5356\u51fa\u56de\u8d2d\u91d1\u878d\u8d44\u4ea7\u6b3e               | \u5143   |\r\n  > | settresedepo           | \u7ed3\u7b97\u5907\u4ed8\u91d1                       | \u5143   |\r\n  > | sformatcurrasse        | \u7279\u6b8a\u683c\u5f0f_\u6d41\u52a8\u8d44\u4ea7                | \u5143   |\r\n  > | sformatcurreliabi      | \u7279\u6b8a\u683c\u5f0f_\u6d41\u52a8\u8d1f\u503a                | \u5143   |\r\n  > | sformatnoncasse        | \u7279\u6b8a\u683c\u5f0f_\u975e\u6d41\u52a8\u8d44\u4ea7              | \u5143   |\r\n  > | sformatnoncliab        | \u7279\u6b8a\u683c\u5f0f_\u957f\u671f\u8d1f\u503a                | \u5143   |\r\n  > | sformatparesharrigh    | \u7279\u6b8a\u683c\u5f0f_\u5f52\u5c5e\u6bcd\u516c\u53f8\u80a1\u4e1c\u6743\u76ca      | \u5143   |\r\n  > | sformatrighaggr        | \u7279\u6b8a\u683c\u5f0f_\u542b\u5c11\u6570\u80a1\u6743\u80a1\u4e1c\u6743\u76ca      | \u5143   |\r\n  > | sformattotasset        | \u7279\u6b8a\u683c\u5f0f_\u603b\u8d44\u4ea7                  | \u5143   |\r\n  > | sformattotliab         | \u7279\u6b8a\u683c\u5f0f_\u8d1f\u503a\u5408\u8ba1                | \u5143   |\r\n  > | sformattotliabsharequi | \u7279\u6b8a\u683c\u5f0f_\u8d1f\u503a\u53ca\u6743\u76ca              | \u5143   |\r\n  > | shorttermbdspaya       | \u5e94\u4ed8\u77ed\u671f\u503a\u5238                     | \u5143   |\r\n  > | shorttermborr          | \u77ed\u671f\u501f\u6b3e                         | \u5143   |\r\n  > | smergercurrasse        | \u7279\u6b8a\u5f52\u5e76_\u6d41\u52a8\u8d44\u4ea7                | \u5143   |\r\n  > | smergercurreliabi      | \u7279\u6b8a\u5f52\u5e76_\u6d41\u52a8\u8d1f\u503a                | \u5143   |\r\n  > | smergernoncasse        | \u7279\u6b8a\u5f52\u5e76_\u975e\u6d41\u52a8\u8d44\u4ea7              | \u5143   |\r\n  > | smergernoncliab        | \u7279\u6b8a\u5f52\u5e76_\u957f\u671f\u8d1f\u503a                | \u5143   |\r\n  > | smergerparesharrigh    | \u7279\u6b8a\u5f52\u5e76_\u5f52\u5c5e\u6bcd\u516c\u53f8\u80a1\u4e1c\u6743\u76ca      | \u5143   |\r\n  > | smergerrighaggr        | \u7279\u6b8a\u5f52\u5e76_\u542b\u5c11\u6570\u80a1\u6743\u80a1\u4e1c\u6743\u76ca      | \u5143   |\r\n  > | smergertotasset        | \u7279\u6b8a\u5f52\u5e76_\u603b\u8d44\u4ea7                  | \u5143   |\r\n  > | smergertotliab         | \u7279\u6b8a\u5f52\u5e76_\u8d1f\u503a\u5408\u8ba1                | \u5143   |\r\n  > | smergertotliabsharequi | \u7279\u6b8a\u5f52\u5e76_\u8d1f\u503a\u53ca\u6743\u76ca              | \u5143   |\r\n  > | specpaya               | \u4e13\u9879\u5e94\u4ed8\u6b3e                       | \u5143   |\r\n  > | specrese               | \u4e13\u9879\u50a8\u5907                         | \u5143   |\r\n  > | subsrece               | \u5e94\u6536\u8865\u8d34\u6b3e                       | \u5143   |\r\n  > | sunevenassetliabeuqi   | \u7279\u6b8a\u4e0d\u5e73_\u8d44\u4ea7\u4e0e\u8d1f\u503a\u6743\u76ca          | \u5143   |\r\n  > | sunevencurrasse        | \u7279\u6b8a\u4e0d\u5e73_\u6d41\u52a8\u8d44\u4ea7                | \u5143   |\r\n  > | sunevencurreliabi      | \u7279\u6b8a\u4e0d\u5e73_\u6d41\u52a8\u8d1f\u503a                | \u5143   |\r\n  > | sunevennoncasse        | \u7279\u6b8a\u4e0d\u5e73_\u975e\u6d41\u52a8\u8d44\u4ea7              | \u5143   |\r\n  > | sunevennoncliab        | \u7279\u6b8a\u4e0d\u5e73_\u957f\u671f\u8d1f\u503a                | \u5143   |\r\n  > | sunevenparesharrigh    | \u7279\u6b8a\u4e0d\u5e73_\u5f52\u5c5e\u6bcd\u516c\u53f8\u80a1\u4e1c\u6743\u76ca      | \u5143   |\r\n  > | sunevenrighaggr        | \u7279\u6b8a\u4e0d\u5e73_\u542b\u5c11\u6570\u80a1\u6743\u80a1\u4e1c\u6743\u76ca      | \u5143   |\r\n  > | suneventotasset        | \u7279\u6b8a\u4e0d\u5e73_\u603b\u8d44\u4ea7                  | \u5143   |\r\n  > | suneventotliab         | \u7279\u6b8a\u4e0d\u5e73_\u8d1f\u503a\u5408\u8ba1                | \u5143   |\r\n  > | suneventotliabsharequi | \u7279\u6b8a\u4e0d\u5e73_\u8d1f\u503a\u53ca\u6743\u76ca              | \u5143   |\r\n  > | taxespaya              | \u5e94\u4ea4\u7a0e\u8d39                         | \u5143   |\r\n  > | topaycashdivi          | \u62df\u5206\u914d\u73b0\u91d1\u80a1\u5229                   | \u5143   |\r\n  > | totalcurrliab          | \u6d41\u52a8\u8d1f\u503a\u5408\u8ba1                     | \u5143   |\r\n  > | totalnoncassets        | \u975e\u6d41\u52a8\u8d44\u4ea7\u5408\u8ba1                   | \u5143   |\r\n  > | totalnoncliab          | \u975e\u6d41\u52a8\u8d1f\u503a\u5408\u8ba1                   | \u5143   |\r\n  > | totasset               | \u8d44\u4ea7\u603b\u8ba1                         | \u5143   |\r\n  > | totcurrasset           | \u6d41\u52a8\u8d44\u4ea7\u5408\u8ba1                     | \u5143   |\r\n  > | totliab                | \u8d1f\u503a\u5408\u8ba1                         | \u5143   |\r\n  > | totliabsharequi        | \u8d1f\u503a\u548c\u6240\u6709\u8005\u6743\u76ca(\u6216\u80a1\u4e1c\u6743\u76ca)\u603b\u8ba1 | \u5143   |\r\n  > | tradfinasset           | \u4ea4\u6613\u6027\u91d1\u878d\u8d44\u4ea7                   | \u5143   |\r\n  > | tradfinliab            | \u4ea4\u6613\u6027\u91d1\u878d\u8d1f\u503a                   | \u5143   |\r\n  > | tradshartrad           | \u80a1\u6743\u5206\u7f6e\u6d41\u901a\u6743                   | \u5143   |\r\n  > | treastk                | \u51cf:\u5e93\u5b58\u80a1                        | \u5143   |\r\n  > | undiprof               | \u672a\u5206\u914d\u5229\u6da6                       | \u5143   |\r\n  > | unreinveloss           | \u672a\u786e\u5b9a\u7684\u6295\u8d44\u635f\u5931                 | \u5143   |\r\n  > | unseg                  | \u5f85\u5904\u7406\u6d41\u52a8\u8d44\u4ea7\u635f\u76ca               | \u5143   |\r\n  > | warliabrese            | \u62c5\u4fdd\u8d23\u4efb\u8d54\u507f\u51c6\u5907\u91d1               | \u5143   |\r\n\r\n### 7.2.3 \u73b0\u91d1\u6d41\u91cf\u8868\r\n\r\n- \u679a\u4e3e\u7c7b\u578b\uff1a`KFundamentalsType_Cashflow`\r\n\r\n- \u5b57\u6bb5\r\n\r\n  > | \u5b57\u6bb5                  | \u610f\u4e49                                                | \u5355\u4f4d |\r\n  > | --------------------- | --------------------------------------------------- | ---- |\r\n  > | accrexpeincr          | \u9884\u63d0\u8d39\u7528\u7684\u589e\u52a0                                      | \u5143   |\r\n  > | acquassetcash         | \u8d2d\u5efa\u56fa\u5b9a\u8d44\u4ea7,\u65e0\u5f62\u8d44\u4ea7\u548c\u5176\u4ed6\u957f\u671f\u8d44\u4ea7\u6240\u652f\u4ed8\u7684\u73b0\u91d1     | \u5143   |\r\n  > | assedepr              | \u56fa\u5b9a\u8d44\u4ea7\u6298\u65e7,\u6cb9\u6c14\u8d44\u4ea7\u6298\u8017,\u751f\u4ea7\u6027\u7269\u8d44\u6298\u65e7            | \u5143   |\r\n  > | asseimpa              | \u8d44\u4ea7\u51cf\u503c\u51c6\u5907                                        | \u5143   |\r\n  > | bankloannetincr       | \u5411\u4e2d\u592e\u94f6\u884c\u501f\u6b3e\u51c0\u589e\u52a0\u989d                              | \u5143   |\r\n  > | bizcashinfl           | \u7ecf\u8425\u6d3b\u52a8\u73b0\u91d1\u6d41\u5165\u5c0f\u8ba1                                | \u5143   |\r\n  > | bizcashoutf           | \u7ecf\u8425\u6d3b\u52a8\u73b0\u91d1\u6d41\u51fa\u5c0f\u8ba1                                | \u5143   |\r\n  > | biznetcflow           | \u7ecf\u8425\u6d3b\u52a8\u4ea7\u751f\u73b0\u91d1\u6d41\u91cf\u51c0\u989d                            | \u5143   |\r\n  > | cashfinalbala         | \u73b0\u91d1\u7684\u671f\u672b\u4f59\u989d                                      | \u5143   |\r\n  > | cashneti              | \u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u7684\u51c0\u589e\u52a0\u989d                          | \u5143   |\r\n  > | cashnetr              | \u4e94,\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u51c0\u589e\u52a0\u989d                         | \u5143   |\r\n  > | cashopenbala          | \u73b0\u91d1\u7684\u671f\u521d\u4f59\u989d                                      | \u5143   |\r\n  > | charintecash          | \u6536\u53d6\u5229\u606f,\u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u7684\u73b0\u91d1                         | \u5143   |\r\n  > | chgexchgchgs          | \u56db,\u6c47\u7387\u53d8\u52a8\u5bf9\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u7684\u5f71\u54cd                 | \u5143   |\r\n  > | debtintocapi          | \u503a\u52a1\u8f6c\u4e3a\u8d44\u672c                                        | \u5143   |\r\n  > | debtpaycash           | \u507f\u8fd8\u503a\u52a1\u652f\u4ed8\u7684\u73b0\u91d1                                  | \u5143   |\r\n  > | defeincoincr          | \u9012\u5ef6\u6536\u76ca\u589e\u52a0(\u51cf:\u51cf\u5c11)                               | \u5143   |\r\n  > | defetaxassetdecr      | \u9012\u5ef6\u6240\u5f97\u7a0e\u8d44\u4ea7\u51cf\u5c11                                  | \u5143   |\r\n  > | defetaxliabincr       | \u9012\u5ef6\u6240\u5f97\u7a0e\u8d1f\u503a\u589e\u52a0                                  | \u5143   |\r\n  > | deponetr              | \u5ba2\u6237\u5b58\u6b3e\u548c\u540c\u4e1a\u5b58\u653e\u6b3e\u9879\u51c0\u589e\u52a0\u989d                      | \u5143   |\r\n  > | dispfixedassetloss    | \u5904\u7f6e\u56fa\u5b9a\u8d44\u4ea7,\u65e0\u5f62\u8d44\u4ea7\u548c\u5176\u4ed6\u957f\u671f\u8d44\u4ea7\u7684\u635f\u5931           | \u5143   |\r\n  > | disptradnetincr       | \u5904\u7f6e\u4ea4\u6613\u6027\u91d1\u878d\u8d44\u4ea7\u51c0\u589e\u52a0\u989d                          | \u5143   |\r\n  > | diviprofpaycash       | \u5206\u914d\u80a1\u5229,\u5229\u6da6\u6216\u507f\u4ed8\u5229\u606f\u6240\u652f\u4ed8\u7684\u73b0\u91d1                 | \u5143   |\r\n  > | equfinalbala          | \u73b0\u91d1\u7b49\u4ef7\u7269\u7684\u671f\u672b\u4f59\u989d                                | \u5143   |\r\n  > | equopenbala           | \u73b0\u91d1\u7b49\u4ef7\u7269\u7684\u671f\u521d\u4f59\u989d                                | \u5143   |\r\n  > | estidebts             | \u9884\u8ba1\u8d1f\u503a                                            | \u5143   |\r\n  > | expiconvbd            | \u4e00\u5e74\u5185\u5230\u671f\u7684\u53ef\u8f6c\u6362\u516c\u53f8\u503a\u5238                          | \u5143   |\r\n  > | fdsborrnetr           | \u62c6\u5165\u8d44\u91d1\u51c0\u589e\u52a0\u989d                                    | \u5143   |\r\n  > | finalcashbala         | \u516d,\u671f\u672b\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u4f59\u989d                         | \u5143   |\r\n  > | fincashinfl           | \u7b79\u8d44\u6d3b\u52a8\u73b0\u91d1\u6d41\u5165\u5c0f\u8ba1                                | \u5143   |\r\n  > | fincashoutf           | \u7b79\u8d44\u6d3b\u52a8\u73b0\u91d1\u6d41\u51fa\u5c0f\u8ba1                                | \u5143   |\r\n  > | finexpe               | \u8d22\u52a1\u8d39\u7528                                            | \u5143   |\r\n  > | finfixedasset         | \u878d\u8d44\u79df\u5165\u56fa\u5b9a\u8d44\u4ea7                                    | \u5143   |\r\n  > | fininstnetr           | \u5411\u5176\u4ed6\u91d1\u878d\u673a\u6784\u62c6\u5165\u8d44\u91d1\u51c0\u589e\u52a0\u989d                      | \u5143   |\r\n  > | finnetcflow           | \u4e09,\u7b79\u8d44\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d                       | \u5143   |\r\n  > | finrelacash           | \u652f\u4ed8\u5176\u4ed6\u4e0e\u7b79\u8d44\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1                        | \u5143   |\r\n  > | fixedassescraloss     | \u56fa\u5b9a\u8d44\u4ea7\u62a5\u5e9f\u635f\u5931                                    | \u5143   |\r\n  > | fixedassetnetc        | \u5904\u7f6e\u56fa\u5b9a\u8d44\u4ea7,\u65e0\u5f62\u8d44\u4ea7\u548c\u5176\u4ed6\u957f\u671f\u8d44\u4ea7\u6240\u6536\u56de\u7684\u73b0\u91d1\u51c0\u989d | \u5143   |\r\n  > | incrcashpled          | \u589e\u52a0\u8d28\u62bc\u548c\u5b9a\u671f\u5b58\u6b3e\u6240\u652f\u4ed8\u7684\u73b0\u91d1                      | \u5143   |\r\n  > | inicashbala           | \u671f\u521d\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u4f59\u989d                            | \u5143   |\r\n  > | insnetc               | \u6536\u5230\u518d\u4fdd\u9669\u4e1a\u52a1\u73b0\u91d1\u51c0\u989d                              | \u5143   |\r\n  > | inspremcash           | \u6536\u5230\u539f\u4fdd\u9669\u5408\u540c\u4fdd\u8d39\u53d6\u5f97\u7684\u73b0\u91d1                        | \u5143   |\r\n  > | intaasseamor          | \u65e0\u5f62\u8d44\u4ea7\u644a\u9500                                        | \u5143   |\r\n  > | invcashinfl           | \u6295\u8d44\u6d3b\u52a8\u73b0\u91d1\u6d41\u5165\u5c0f\u8ba1                                | \u5143   |\r\n  > | invcashoutf           | \u6295\u8d44\u6d3b\u52a8\u73b0\u91d1\u6d41\u51fa\u5c0f\u8ba1                                | \u5143   |\r\n  > | inveloss              | \u6295\u8d44\u635f\u5931                                            | \u5143   |\r\n  > | inveredu              | \u5b58\u8d27\u7684\u51cf\u5c11                                          | \u5143   |\r\n  > | inveretugetcash       | \u53d6\u5f97\u6295\u8d44\u6536\u76ca\u6536\u5230\u7684\u73b0\u91d1                              | \u5143   |\r\n  > | invnetcashflow        | \u4e8c,\u6295\u8d44\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d                       | \u5143   |\r\n  > | invpayc               | \u6295\u8d44\u6240\u652f\u4ed8\u7684\u73b0\u91d1                                    | \u5143   |\r\n  > | invrececash           | \u5438\u6536\u6295\u8d44\u6536\u5230\u7684\u73b0\u91d1                                  | \u5143   |\r\n  > | issbdrececash         | \u53d1\u884c\u503a\u5238\u6536\u5230\u7684\u73b0\u91d1                                  | \u5143   |\r\n  > | labopayc              | \u8d2d\u4e70\u5546\u54c1,\u63a5\u53d7\u52b3\u52a1\u652f\u4ed8\u7684\u73b0\u91d1                         | \u5143   |\r\n  > | laborgetcash          | \u9500\u552e\u5546\u54c1,\u63d0\u4f9b\u52b3\u52a1\u6536\u5230\u7684\u73b0\u91d1                         | \u5143   |\r\n  > | loannetr              | \u8d28\u62bc\u8d37\u6b3e\u51c0\u589e\u52a0\u989d                                    | \u5143   |\r\n  > | loansnetr             | \u5ba2\u6237\u8d37\u6b3e\u53ca\u57ab\u6b3e\u51c0\u589e\u52a0\u989d                              | \u5143   |\r\n  > | longdefeexpenamor     | \u957f\u671f\u5f85\u644a\u8d39\u7528\u644a\u9500                                    | \u5143   |\r\n  > | mananetr              | \u4e00,\u7ecf\u8425\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d                       | \u5143   |\r\n  > | minysharrigh          | \u5c11\u6570\u80a1\u4e1c\u6743\u76ca                                        | \u5143   |\r\n  > | netprofit             | \u51c0\u5229\u6da6                                              | \u5143   |\r\n  > | other                 | \u5176\u4ed6                                                | \u5143   |\r\n  > | payacticash           | \u652f\u4ed8\u7684\u5176\u4ed6\u4e0e\u7ecf\u8425\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1                      | \u5143   |\r\n  > | payaincr              | \u7ecf\u8425\u6027\u5e94\u4ed8\u9879\u76ee\u7684\u589e\u52a0                                | \u5143   |\r\n  > | paycompgold           | \u652f\u4ed8\u539f\u4fdd\u9669\u5408\u540c\u8d54\u4ed8\u6b3e\u9879\u7684\u73b0\u91d1                        | \u5143   |\r\n  > | paydivicash           | \u652f\u4ed8\u4fdd\u5355\u7ea2\u5229\u7684\u73b0\u91d1                                  | \u5143   |\r\n  > | payintecash           | \u652f\u4ed8\u5229\u606f,\u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u7684\u73b0\u91d1                         | \u5143   |\r\n  > | payinvecash           | \u652f\u4ed8\u7684\u5176\u4ed6\u4e0e\u6295\u8d44\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1                      | \u5143   |\r\n  > | paytax                | \u652f\u4ed8\u7684\u5404\u9879\u7a0e\u8d39                                      | \u5143   |\r\n  > | payworkcash           | \u652f\u4ed8\u7ed9\u804c\u5de5\u4ee5\u53ca\u4e3a\u804c\u5de5\u652f\u4ed8\u7684\u73b0\u91d1                      | \u5143   |\r\n  > | prepexpedecr          | \u5f85\u644a\u8d39\u7528\u7684\u51cf\u5c11                                      | \u5143   |\r\n  > | realestadep           | \u6295\u8d44\u6027\u623f\u5730\u4ea7\u6298\u65e7,\u644a\u9500                               | \u5143   |\r\n  > | recefincash           | \u6536\u5230\u5176\u4ed6\u4e0e\u7b79\u8d44\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1                        | \u5143   |\r\n  > | recefromloan          | \u53d6\u5f97\u501f\u6b3e\u6536\u5230\u7684\u73b0\u91d1                                  | \u5143   |\r\n  > | receinvcash           | \u6536\u5230\u7684\u5176\u4ed6\u4e0e\u6295\u8d44\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1                      | \u5143   |\r\n  > | receotherbizcash      | \u6536\u5230\u7684\u5176\u4ed6\u4e0e\u7ecf\u8425\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1                      | \u5143   |\r\n  > | receredu              | \u7ecf\u8425\u6027\u5e94\u6536\u9879\u76ee\u7684\u51cf\u5c11                                | \u5143   |\r\n  > | reducashpled          | \u51cf\u5c11\u8d28\u62bc\u548c\u5b9a\u671f\u5b58\u6b3e\u6240\u6536\u5230\u7684\u73b0\u91d1                      | \u5143   |\r\n  > | repnetincr            | \u56de\u8d2d\u4e1a\u52a1\u8d44\u91d1\u51c0\u589e\u52a0\u989d                                | \u5143   |\r\n  > | savinetr              | \u4fdd\u6237\u50a8\u91d1\u53ca\u6295\u8d44\u6b3e\u51c0\u589e\u52a0\u989d                            | \u5143   |\r\n  > | sformatbizcashinfl    | \u7279\u6b8a\u683c\u5f0f_\u7ecf\u8425\u6d41\u5165                                   | \u5143   |\r\n  > | sformatbizcashoutf    | \u7279\u6b8a\u683c\u5f0f_\u7ecf\u8425\u6d41\u51fa                                   | \u5143   |\r\n  > | sformatbiznetcflow    | \u7279\u6b8a\u683c\u5f0f_\u7ecf\u8425\u51c0\u989d\u9644\u8868                               | \u5143   |\r\n  > | sformatcashneti       | \u7279\u6b8a\u683c\u5f0f_\u73b0\u91d1\u51c0\u989d\u9644\u8868                               | \u5143   |\r\n  > | sformatcashnetr       | \u7279\u6b8a\u683c\u5f0f_\u73b0\u91d1\u51c0\u989d                                   | \u5143   |\r\n  > | sformatfinalcashbala  | \u7279\u6b8a\u683c\u5f0f_\u73b0\u91d1\u671f\u672b                                   | \u5143   |\r\n  > | sformatfincashinfl    | \u7279\u6b8a\u683c\u5f0f_\u7b79\u8d44\u6d41\u5165                                   | \u5143   |\r\n  > | sformatfincashoutf    | \u7279\u6b8a\u683c\u5f0f_\u7b79\u8d44\u6d41\u51fa                                   | \u5143   |\r\n  > | sformatinvcashinfl    | \u7279\u6b8a\u683c\u5f0f_\u6295\u8d44\u6d41\u5165                                   | \u5143   |\r\n  > | sformatinvcashoutf    | \u7279\u6b8a\u683c\u5f0f_\u6295\u8d44\u6d41\u51fa                                   | \u5143   |\r\n  > | sformatmananetr       | \u7279\u6b8a\u683c\u5f0f_\u7ecf\u8425\u51c0\u989d                                   | \u5143   |\r\n  > | smergerbizcashinfl    | \u7279\u6b8a\u5f52\u5e76_\u7ecf\u8425\u6d41\u5165                                   | \u5143   |\r\n  > | smergerbizcashoutf    | \u7279\u6b8a\u5f52\u5e76_\u7ecf\u8425\u6d41\u51fa                                   | \u5143   |\r\n  > | smergerbiznetcflow    | \u7279\u6b8a\u5f52\u5e76_\u7ecf\u8425\u51c0\u989d\u9644\u8868                               | \u5143   |\r\n  > | smergercashneti       | \u7279\u6b8a\u5f52\u5e76_\u73b0\u91d1\u51c0\u989d\u9644\u8868                               | \u5143   |\r\n  > | smergercashnetr       | \u7279\u6b8a\u5f52\u5e76_\u73b0\u91d1\u51c0\u989d                                   | \u5143   |\r\n  > | smergerfinalcashbala  | \u7279\u6b8a\u5f52\u5e76_\u73b0\u91d1\u671f\u672b                                   | \u5143   |\r\n  > | smergerfincashinfl    | \u7279\u6b8a\u5f52\u5e76_\u7b79\u8d44\u6d41\u5165                                   | \u5143   |\r\n  > | smergerfincashoutf    | \u7279\u6b8a\u5f52\u5e76_\u7b79\u8d44\u6d41\u51fa                                   | \u5143   |\r\n  > | smergerfinnetcflow    | \u7279\u6b8a\u5f52\u5e76_\u7b79\u8d44\u51c0\u989d                                   | \u5143   |\r\n  > | smergerinvcashinfl    | \u7279\u6b8a\u5f52\u5e76_\u6295\u8d44\u6d41\u5165                                   | \u5143   |\r\n  > | smergerinvcashoutf    | \u7279\u6b8a\u5f52\u5e76_\u6295\u8d44\u6d41\u51fa                                   | \u5143   |\r\n  > | smergerinvnetcashflow | \u7279\u6b8a\u5f52\u5e76_\u6295\u8d44\u51c0\u989d                                   | \u5143   |\r\n  > | smergermananetr       | \u7279\u6b8a\u5f52\u5e76_\u7ecf\u8425\u51c0\u989d                                   | \u5143   |\r\n  > | subsnetc              | \u5904\u7f6e\u5b50\u516c\u53f8\u53ca\u5176\u4ed6\u8425\u4e1a\u5355\u4f4d\u6536\u5230\u7684\u73b0\u91d1\u51c0\u989d              | \u5143   |\r\n  > | subspaydivid          | \u5176\u4e2d:\u5b50\u516c\u53f8\u652f\u4ed8\u7ed9\u5c11\u6570\u80a1\u4e1c\u7684\u80a1\u5229,\u5229\u6da6                | \u5143   |\r\n  > | subspaynetcash        | \u53d6\u5f97\u5b50\u516c\u53f8\u53ca\u5176\u4ed6\u8425\u4e1a\u5355\u4f4d\u652f\u4ed8\u7684\u73b0\u91d1\u51c0\u989d              | \u5143   |\r\n  > | subsrececash          | \u5176\u4e2d:\u5b50\u516c\u53f8\u5438\u6536\u5c11\u6570\u80a1\u4e1c\u6295\u8d44\u6536\u5230\u7684\u73b0\u91d1               | \u5143   |\r\n  > | sunevenbizcashinfl    | \u7279\u6b8a\u4e0d\u5e73_\u7ecf\u8425\u6d41\u5165                                   | \u5143   |\r\n  > | sunevenbizcashoutf    | \u7279\u6b8a\u4e0d\u5e73_\u7ecf\u8425\u6d41\u51fa                                   | \u5143   |\r\n  > | sunevenbiznetcflow    | \u7279\u6b8a\u4e0d\u5e73_\u7ecf\u8425\u51c0\u989d\u9644\u8868                               | \u5143   |\r\n  > | sunevencashneti       | \u7279\u6b8a\u4e0d\u5e73_\u73b0\u91d1\u51c0\u989d\u9644\u8868                               | \u5143   |\r\n  > | sunevencashnetims     | \u7279\u6b8a\u4e0d\u5e73_\u73b0\u91d1\u51c0\u989d\u4e3b\u9644\u8868                             | \u5143   |\r\n  > | sunevencashnetr       | \u7279\u6b8a\u4e0d\u5e73_\u73b0\u91d1\u51c0\u989d                                   | \u5143   |\r\n  > | sunevenfinalcashbala  | \u7279\u6b8a\u4e0d\u5e73_\u73b0\u91d1\u671f\u672b                                   | \u5143   |\r\n  > | sunevenfincashinfl    | \u7279\u6b8a\u4e0d\u5e73_\u7b79\u8d44\u6d41\u5165                                   | \u5143   |\r\n  > | sunevenfincashoutf    | \u7279\u6b8a\u4e0d\u5e73_\u7b79\u8d44\u6d41\u51fa                                   | \u5143   |\r\n  > | sunevenfinnetcflow    | \u7279\u6b8a\u4e0d\u5e73_\u7b79\u8d44\u51c0\u989d                                   | \u5143   |\r\n  > | suneveninvcashinfl    | \u7279\u6b8a\u4e0d\u5e73_\u6295\u8d44\u6d41\u5165                                   | \u5143   |\r\n  > | suneveninvcashoutf    | \u7279\u6b8a\u4e0d\u5e73_\u6295\u8d44\u6d41\u51fa                                   | \u5143   |\r\n  > | suneveninvnetcashflow | \u7279\u6b8a\u4e0d\u5e73_\u6295\u8d44\u51c0\u989d                                   | \u5143   |\r\n  > | sunevenmananetr       | \u7279\u6b8a\u4e0d\u5e73_\u7ecf\u8425\u51c0\u989d                                   | \u5143   |\r\n  > | sunevenmananetrms     | \u7279\u6b8a\u4e0d\u5e73_\u7ecf\u8425\u51c0\u989d\u4e3b\u9644\u8868                             | \u5143   |\r\n  > | taxrefd               | \u6536\u5230\u7684\u7a0e\u8d39\u8fd4\u8fd8                                      | \u5143   |\r\n  > | tradepaymnetr         | \u5b58\u653e\u4e2d\u592e\u94f6\u884c\u548c\u540c\u4e1a\u6b3e\u9879\u51c0\u589e\u52a0\u989d                      | \u5143   |\r\n  > | unfiparachg           | \u5df2\u7ed3\u7b97\u5c1a\u672a\u5b8c\u5de5\u6b3e\u7684\u589e\u52a0(\u51cf:\u51cf\u5c11)                     | \u5143   |\r\n  > | unreinveloss          | \u672a\u786e\u8ba4\u7684\u6295\u8d44\u635f\u5931                                    | \u5143   |\r\n  > | unseparachg           | \u5df2\u5b8c\u5de5\u5c1a\u672a\u7ed3\u7b97\u6b3e\u7684\u51cf\u5c11(\u51cf:\u589e\u52a0)                     | \u5143   |\r\n  > | valuechgloss          | \u516c\u5141\u4ef7\u503c\u53d8\u52a8\u635f\u5931                                    | \u5143   |\r\n  > | withinvgetcash        | \u6536\u56de\u6295\u8d44\u6240\u6536\u5230\u7684\u73b0\u91d1                                | \u5143   |\r\n\r\n### 7.2.4 \u5229\u6da6\u8868\r\n\r\n- \u679a\u4e3e\u7c7b\u578b\uff1a`KFundamentalsType_Income`\r\n\r\n- \u5b57\u6bb5\r\n\r\n  > | \u5b57\u6bb5                     | \u610f\u4e49                                         | \u5355\u4f4d |\r\n  > | ------------------------ | -------------------------------------------- | ---- |\r\n  > | asseimpaloss             | \u8d44\u4ea7\u51cf\u503c\u635f\u5931                                 | \u5143   |\r\n  > | assoinveprof             | \u5176\u4e2d:\u5bf9\u8054\u8425\u4f01\u4e1a\u548c\u5408\u8425\u4f01\u4e1a\u7684\u6295\u8d44\u6536\u76ca          | \u5143   |\r\n  > | avaidistprof             | \u53ef\u4f9b\u5206\u914d\u7684\u5229\u6da6                               | \u5143   |\r\n  > | avaidistshareprof        | \u53ef\u4f9b\u80a1\u4e1c\u5206\u914d\u7684\u5229\u6da6                           | \u5143   |\r\n  > | basiceps                 | \u57fa\u672c\u6bcf\u80a1\u6536\u76ca                                 | \u5143   |\r\n  > | bizcost                  | \u8425\u4e1a\u6210\u672c                                     | \u5143   |\r\n  > | bizinco                  | \u8425\u4e1a\u6536\u5165                                     | \u5143   |\r\n  > | biztax                   | \u8425\u4e1a\u7a0e\u91d1\u53ca\u9644\u52a0                               | \u5143   |\r\n  > | biztotcost               | \u8425\u4e1a\u603b\u6210\u672c                                   | \u5143   |\r\n  > | biztotinco               | \u8425\u4e1a\u603b\u6536\u5165                                   | \u5143   |\r\n  > | cinaforsfv               | \u53ef\u4f9b\u51fa\u552e\u91d1\u878d\u8d44\u4ea7\u516c\u5141\u4ef7\u503c\u53d8\u52a8\u635f\u76ca             | \u5143   |\r\n  > | cinalibofrbp             | \u91cd\u65b0\u8ba1\u91cf\u8bbe\u5b9a\u53d7\u76ca\u8ba1\u5212\u51c0\u8d1f\u503a\u6216\u51c0\u8d44\u4ea7\u7684\u53d8\u52a8     | \u5143   |\r\n  > | comdivpaybable           | \u5e94\u4ed8\u666e\u901a\u80a1\u80a1\u5229                               | \u5143   |\r\n  > | compincoamt              | \u7efc\u5408\u6536\u76ca\u603b\u989d                                 | \u5143   |\r\n  > | compnetexpe              | \u8d54\u4ed8\u652f\u51fa\u51c0\u989d                                 | \u5143   |\r\n  > | contress                 | \u63d0\u53d6\u4fdd\u9669\u5408\u540c\u51c6\u5907\u91d1\u51c0\u989d                       | \u5143   |\r\n  > | cpltohinco               | \u4ee5\u540e\u5c06\u91cd\u5206\u7c7b\u8fdb\u635f\u76ca\u7684\u5176\u4ed6\u7efc\u5408\u6536\u76ca             | \u5143   |\r\n  > | custinco                 | \u6258\u7ba1\u6536\u76ca                                     | \u5143   |\r\n  > | deveexpe                 | \u7814\u53d1\u8d39\u7528                                     | \u5143   |\r\n  > | dilutedeps               | \u7a00\u91ca\u6bcf\u80a1\u6536\u76ca                                 | \u5143   |\r\n  > | earlyundiprof            | \u5e74\u521d\u672a\u5206\u914d\u5229\u6da6                               | \u5143   |\r\n  > | earnprem                 | \u5df2\u8d5a\u4fdd\u8d39                                     | \u5143   |\r\n  > | epocfhgl                 | \u73b0\u91d1\u6d41\u91cf\u5957\u671f\u635f\u76ca\u7684\u6709\u6548\u90e8\u5206                   | \u5143   |\r\n  > | equmcpothinco            | \u6743\u76ca\u6cd5\u4e0b\u5728\u88ab\u6295\u8d44\u5355\u4f4d\u4e0d\u80fd\u91cd\u5206\u7c7b\u8fdb\u635f\u76ca\u7684\u5176\u4ed6\u7efc | \u5143   |\r\n  > | euqmicolothinco          | \u6743\u76ca\u6cd5\u4e0b\u5728\u88ab\u6295\u8d44\u5355\u4f4d\u4ee5\u540e\u5c06\u91cd\u5206\u7c7b\u8fdb\u635f\u76ca\u7684\u5176\u4ed6 | \u5143   |\r\n  > | exchggain                | \u6c47\u5151\u6536\u76ca                                     | \u5143   |\r\n  > | extrarbirese             | \u63d0\u53d6\u4efb\u610f\u76c8\u4f59\u516c\u79ef                             | \u5143   |\r\n  > | extstafffund             | \u63d0\u53d6\u804c\u5de5\u5956\u798f\u57fa\u91d1                             | \u5143   |\r\n  > | finexpe                  | \u8d22\u52a1\u8d39\u7528                                     | \u5143   |\r\n  > | futuloss                 | \u671f\u8d27\u635f\u76ca                                     | \u5143   |\r\n  > | htmccinaforsfv           | \u6301\u6709\u81f3\u5230\u671f\u6295\u8d44\u91cd\u5206\u7c7b\u4e3a\u53ef\u4f9b\u51fa\u552e\u91d1\u878d\u8d44\u4ea7\u635f\u76ca   | \u5143   |\r\n  > | incotaxexpe              | \u6240\u5f97\u7a0e\u8d39\u7528                                   | \u5143   |\r\n  > | inteexpe                 | \u5229\u606f\u652f\u51fa                                     | \u5143   |\r\n  > | inteinco                 | \u5229\u606f\u6536\u5165                                     | \u5143   |\r\n  > | inveinco                 | \u6295\u8d44\u6536\u76ca                                     | \u5143   |\r\n  > | legalsurp                | \u63d0\u53d6\u6cd5\u5b9a\u76c8\u4f59\u516c\u79ef                             | \u5143   |\r\n  > | mainbizcost              | \u4e3b\u8425\u4e1a\u52a1\u6210\u672c                                 | \u5143   |\r\n  > | mainbizinco              | \u4e3b\u8425\u4e1a\u52a1\u6536\u5165                                 | \u5143   |\r\n  > | manaexpe                 | \u7ba1\u7406\u8d39\u7528                                     | \u5143   |\r\n  > | mergeformnetprof         | \u88ab\u5408\u5e76\u65b9\u5728\u5408\u5e76\u524d\u5b9e\u73b0\u51c0\u5229\u6da6                   | \u5143   |\r\n  > | minysharinco             | \u5f52\u5c5e\u4e8e\u5c11\u6570\u80a1\u4e1c\u7684\u5176\u4ed6\u7efc\u5408\u6536\u76ca                 | \u5143   |\r\n  > | minysharincoamt          | \u5f52\u5c5e\u4e8e\u5c11\u6570\u80a1\u4e1c\u7684\u7efc\u5408\u6536\u76ca\u603b\u989d                 | \u5143   |\r\n  > | minysharrigh             | \u5c11\u6570\u80a1\u4e1c\u635f\u76ca                                 | \u5143   |\r\n  > | ncpothinco               | \u4ee5\u540e\u4e0d\u80fd\u91cd\u5206\u7c7b\u8fdb\u635f\u76ca\u7684\u5176\u4ed6\u7efc\u5408\u6536\u76ca           | \u5143   |\r\n  > | netprofit                | \u51c0\u5229\u6da6                                       | \u5143   |\r\n  > | noncassetsdisi           | \u975e\u6d41\u52a8\u8d44\u4ea7\u5904\u7f6e\u5229\u5f97                           | \u5143   |\r\n  > | noncassetsdisl           | \u975e\u6d41\u52a8\u8d44\u4ea7\u5904\u7f6e\u635f\u5931                           | \u5143   |\r\n  > | nonoexpe                 | \u8425\u4e1a\u5916\u652f\u51fa                                   | \u5143   |\r\n  > | nonoreve                 | \u8425\u4e1a\u5916\u6536\u5165                                   | \u5143   |\r\n  > | otherbizcost             | \u5176\u4ed6\u4e1a\u52a1\u6210\u672c                                 | \u5143   |\r\n  > | otherbizinco             | \u5176\u4ed6\u4e1a\u52a1\u6536\u5165                                 | \u5143   |\r\n  > | otherbizprof             | \u5176\u4ed6\u4e1a\u52a1\u5229\u6da6                                 | \u5143   |\r\n  > | othercompinco            | \u5176\u4ed6\u7efc\u5408\u6536\u76ca                                 | \u5143   |\r\n  > | otherreasadju            | \u5176\u4ed6\u56e0\u7d20\u8c03\u6574                                 | \u5143   |\r\n  > | parecompinco             | \u5f52\u5c5e\u4e8e\u6bcd\u516c\u53f8\u6240\u6709\u8005\u7684\u5176\u4ed6\u7efc\u5408\u6536\u76ca             | \u5143   |\r\n  > | parecompincoamt          | \u5f52\u5c5e\u4e8e\u6bcd\u516c\u53f8\u6240\u6709\u8005\u7684\u7efc\u5408\u6536\u76ca\u603b\u989d             | \u5143   |\r\n  > | parenetp                 | \u5f52\u5c5e\u4e8e\u6bcd\u516c\u53f8\u6240\u6709\u8005\u7684\u51c0\u5229\u6da6                   | \u5143   |\r\n  > | perprofit                | \u8425\u4e1a\u5229\u6da6                                     | \u5143   |\r\n  > | pextccapifd              | \u63d0\u53d6\u8d44\u672c\u516c\u79ef\u91d1                               | \u5143   |\r\n  > | pextcdevefd              | \u63d0\u53d6\u4f01\u4e1a\u53d1\u5c55\u57fa\u91d1                             | \u5143   |\r\n  > | polidiviexpe             | \u4fdd\u5355\u7ea2\u5229\u652f\u51fa                                 | \u5143   |\r\n  > | pounexpe                 | \u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u652f\u51fa                             | \u5143   |\r\n  > | pouninco                 | \u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u6536\u5165                             | \u5143   |\r\n  > | pprofretuinve            | \u5229\u6da6\u5f52\u8fd8\u6295\u8d44                                 | \u5143   |\r\n  > | prefstockdivi            | \u5e94\u4ed8\u4f18\u5148\u80a1\u80a1\u5229                               | \u5143   |\r\n  > | psuppflowcapi            | \u8865\u5145\u6d41\u52a8\u8d44\u672c                                 | \u5143   |\r\n  > | realsale                 | \u623f\u5730\u4ea7\u9500\u552e\u6536\u5165                               | \u5143   |\r\n  > | realsalecost             | \u623f\u5730\u4ea7\u9500\u552e\u6210\u672c                               | \u5143   |\r\n  > | reinexpe                 | \u5206\u4fdd\u8d39\u7528                                     | \u5143   |\r\n  > | rundisprobyrregcap       | \u51cf\u5c11\u6ce8\u518c\u8d44\u672c\u51cf\u5c11\u7684\u672a\u5206\u914d\u5229\u6da6                 | \u5143   |\r\n  > | salesexpe                | \u9500\u552e\u8d39\u7528                                     | \u5143   |\r\n  > | sformatavaidistprof      | \u7279\u6b8a\u683c\u5f0f_\u53ef\u5206\u914d\u5229\u6da6                          | \u5143   |\r\n  > | sformatavaidistshareprof | \u7279\u6b8a\u683c\u5f0f_\u53ef\u4f9b\u80a1\u4e1c\u5206\u914d\u5229\u6da6                    | \u5143   |\r\n  > | sformatbiztotcost        | \u7279\u6b8a\u683c\u5f0f_\u8425\u4e1a\u603b\u6210\u672c                          | \u5143   |\r\n  > | sformatbiztotinco        | \u7279\u6b8a\u683c\u5f0f_\u8425\u4e1a\u603b\u6536\u5165                          | \u5143   |\r\n  > | sformatnetprofit         | \u7279\u6b8a\u683c\u5f0f_\u7a0e\u540e\u51c0\u5229\u6da6                          | \u5143   |\r\n  > | sformatnetprofitsub      | \u7279\u6b8a\u683c\u5f0f_\u51c0\u5229\u6da6\u5b50\u9879                          | \u5143   |\r\n  > | sformatperprofit         | \u7279\u6b8a\u683c\u5f0f_\u8425\u4e1a\u5229\u6da6                            | \u5143   |\r\n  > | sformattotprofit         | \u7279\u6b8a\u683c\u5f0f_\u5229\u6da6\u603b\u989d                            | \u5143   |\r\n  > | sformatundiprof          | \u7279\u6b8a\u683c\u5f0f_\u672a\u5206\u914d\u5229\u6da6                          | \u5143   |\r\n  > | smergeravaidistprof      | \u7279\u6b8a\u5f52\u5e76_\u53ef\u5206\u914d\u5229\u6da6                          | \u5143   |\r\n  > | smergeravaidistshareprof | \u7279\u6b8a\u5f52\u5e76_\u53ef\u4f9b\u80a1\u4e1c\u5206\u914d\u5229\u6da6                    | \u5143   |\r\n  > | smergerbiztotcost        | \u7279\u6b8a\u5f52\u5e76_\u8425\u4e1a\u603b\u6210\u672c                          | \u5143   |\r\n  > | smergerbiztotinco        | \u7279\u6b8a\u5f52\u5e76_\u8425\u4e1a\u603b\u6536\u5165                          | \u5143   |\r\n  > | smergercompincoamtsub    | \u7279\u6b8a\u5f52\u5e76_\u7efc\u5408\u6536\u76ca\u603b\u989d\u5b50\u9879                    | \u5143   |\r\n  > | smergernetprofit         | \u7279\u6b8a\u5f52\u5e76_\u7a0e\u540e\u51c0\u5229\u6da6                          | \u5143   |\r\n  > | smergernetprofitsub      | \u7279\u6b8a\u5f52\u5e76_\u51c0\u5229\u6da6\u5b50\u9879                          | \u5143   |\r\n  > | smergerperprofit         | \u7279\u6b8a\u5f52\u5e76_\u8425\u4e1a\u5229\u6da6                            | \u5143   |\r\n  > | smergertotprofit         | \u7279\u6b8a\u5f52\u5e76_\u5229\u6da6\u603b\u989d                            | \u5143   |\r\n  > | smergerundiprof          | \u7279\u6b8a\u5f52\u5e76_\u672a\u5206\u914d\u5229\u6da6                          | \u5143   |\r\n  > | statextrundi             | \u63d0\u53d6\u6cd5\u5b9a\u516c\u76ca\u91d1                               | \u5143   |\r\n  > | subsidyincome            | \u8865\u8d34\u6536\u5165                                     | \u5143   |\r\n  > | sunevenavaidistprof      | \u7279\u6b8a\u4e0d\u5e73_\u53ef\u5206\u914d\u5229\u6da6                          | \u5143   |\r\n  > | sunevenavaidistshareprof | \u7279\u6b8a\u4e0d\u5e73_\u53ef\u4f9b\u80a1\u4e1c\u5206\u914d\u5229\u6da6                    | \u5143   |\r\n  > | sunevenbiztotcost        | \u7279\u6b8a\u4e0d\u5e73_\u8425\u4e1a\u603b\u6210\u672c                          | \u5143   |\r\n  > | sunevenbiztotinco        | \u7279\u6b8a\u4e0d\u5e73_\u8425\u4e1a\u603b\u6536\u5165                          | \u5143   |\r\n  > | sunevencompincoamt       | \u7279\u6b8a\u4e0d\u5e73_\u7efc\u5408\u6536\u76ca\u603b\u989d                        | \u5143   |\r\n  > | sunevencompincoamtsub    | \u7279\u6b8a\u4e0d\u5e73_\u7efc\u5408\u6536\u76ca\u603b\u989d\u5b50\u9879                    | \u5143   |\r\n  > | sunevennetprofit         | \u7279\u6b8a\u4e0d\u5e73_\u7a0e\u540e\u51c0\u5229\u6da6                          | \u5143   |\r\n  > | sunevennetprofitsub      | \u7279\u6b8a\u4e0d\u5e73_\u51c0\u5229\u6da6\u5b50\u9879                          | \u5143   |\r\n  > | sunevenothcompincoamt    | \u7279\u6b8a\u4e0d\u5e73_\u5176\u4ed6\u7efc\u5408\u6536\u76ca                        | \u5143   |\r\n  > | sunevenperprofit         | \u7279\u6b8a\u4e0d\u5e73_\u8425\u4e1a\u5229\u6da6                            | \u5143   |\r\n  > | suneventotprofit         | \u7279\u6b8a\u4e0d\u5e73_\u5229\u6da6\u603b\u989d                            | \u5143   |\r\n  > | sunevenundiprof          | \u7279\u6b8a\u4e0d\u5e73_\u672a\u5206\u914d\u5229\u6da6                          | \u5143   |\r\n  > | surrgold                 | \u9000\u4fdd\u91d1                                       | \u5143   |\r\n  > | tdiffforcur              | \u5916\u5e01\u8d22\u52a1\u62a5\u8868\u6298\u7b97\u5dee\u989d                         | \u5143   |\r\n  > | totprofit                | \u5229\u6da6\u603b\u989d                                     | \u5143   |\r\n  > | trustloss                | \u63d0\u53d6\u50a8\u5907\u57fa\u91d1                                 | \u5143   |\r\n  > | turncapsdivi             | \u8f6c\u4f5c\u8d44\u672c\u80a1\u672c\u7684\u666e\u901a\u80a1\u80a1\u5229                     | \u5143   |\r\n  > | undiprof                 | \u672a\u5206\u914d\u5229\u6da6                                   | \u5143   |\r\n  > | unreinveloss             | \u672a\u786e\u8ba4\u6295\u8d44\u635f\u5931                               | \u5143   |\r\n  > | valuechgloss             | \u516c\u5141\u4ef7\u503c\u53d8\u52a8\u6536\u76ca                             | \u5143   |\r\n  > | othercpltohinco          | \u5176\u4ed6                                         | \u5143   |\r\n\r\n### 7.2.5 \u4e3b\u8981\u8d22\u52a1\u6307\u6807\r\n\r\n- \u679a\u4e3e\u7c7b\u578b\uff1a`KFundamentalsType_Prim`\r\n\r\n- \u5b57\u6bb5\r\n\r\n  > | \u5b57\u6bb5              | \u610f\u4e49                             | \u5355\u4f4d |\r\n  > | ----------------- | -------------------------------- | ---- |\r\n  > | ebit              | ebit                             | \u5143   |\r\n  > | ebitda            | ebitda                           | \u5143   |\r\n  > | ebitdascover      | ebitda\u5229\u606f\u4fdd\u969c\u500d\u6570               | \u500d   |\r\n  > | ebitscover        | ebit\u5229\u606f\u4fdd\u969c\u500d\u6570                 | \u500d   |\r\n  > | epsbasic          | (\u4e00)\u57fa\u672c\u6bcf\u80a1\u6536\u76ca                 | \u5143   |\r\n  > | epsbasicepscut    | \u6263\u9664\u975e\u7ecf\u5e38\u6027\u635f\u76ca\u540e\u7684\u57fa\u672c\u6bcf\u80a1\u6536\u76ca | \u5143   |\r\n  > | epsdiluted        | \u6bcf\u80a1\u6536\u76ca_\u644a\u8584                    | \u5143   |\r\n  > | epsdilutedcut     | \u6bcf\u80a1\u6536\u76ca_\u6263\u9664\u644a\u8584                | \u5143   |\r\n  > | epsfulldiluted    | (\u4e8c)\u7a00\u91ca\u6bcf\u80a1\u6536\u76ca                 | \u5143   |\r\n  > | epsfulldilutedcut | \u6263\u9664\u975e\u7ecf\u5e38\u6027\u635f\u76ca\u540e\u7684\u7a00\u91ca\u6bcf\u80a1\u6536\u76ca | \u5143   |\r\n  > | epsweighted       | \u6bcf\u80a1\u6536\u76ca_\u52a0\u6743                    | \u5143   |\r\n  > | epsweightedcut    | \u6bcf\u80a1\u6536\u76ca_\u6263\u9664\u52a0\u6743                | \u5143   |\r\n  > | npcut             | \u6263\u9664\u975e\u7ecf\u5e38\u6027\u635f\u76ca\u7684\u51c0\u5229\u6da6         | \u5143   |\r\n  > | opncfps           | \u6bcf\u80a1\u7ecf\u8425\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d   | \u5143   |\r\n  > | roediluted        | \u51c0\u8d44\u4ea7\u6536\u76ca\u7387_\u644a\u8584                | %    |\r\n  > | roedilutedcut     | \u51c0\u8d44\u4ea7\u6536\u76ca\u7387_\u6263\u9664\u644a\u8584            | %    |\r\n  > | roeweighted       | \u51c0\u8d44\u4ea7\u6536\u76ca\u7387_\u52a0\u6743                | %    |\r\n  > | roeweightedcut    | \u51c0\u8d44\u4ea7\u6536\u76ca\u7387_\u6263\u9664\u52a0\u6743            | %    |\r\n\r\n### 7.2.6 \u884d\u751f\u8d22\u52a1\u6307\u6807\r\n\r\n- \u679a\u4e3e\u7c7b\u578b\uff1a`KFundamentalsType_Deriv`\r\n\r\n- \u5b57\u6bb5\r\n\r\n  > | \u5b57\u6bb5                  | \u610f\u4e49                                          | \u5355\u4f4d |\r\n  > | --------------------- | --------------------------------------------- | ---- |\r\n  > | accdeprt              | \u7d2f\u8ba1\u6298\u65e7\u7387                                    | %    |\r\n  > | accpayrt              | \u5e94\u4ed8\u8d26\u6b3e\u5468\u8f6c\u7387                                | \u6b21   |\r\n  > | accpaytdays           | \u5e94\u4ed8\u8d26\u6b3e\u5468\u8f6c\u5929\u6570                              | \u5929   |\r\n  > | accrecgturndays       | \u5e94\u6536\u8d26\u6b3e\u5468\u8f6c\u5929\u6570                              | \u5929   |\r\n  > | accrecgturnrt         | \u5e94\u6536\u8d26\u6b3e\u5468\u8f6c\u7387                                | \u6b21   |\r\n  > | assliabrt             | \u8d44\u4ea7\u8d1f\u503a\u7387                                    | %    |\r\n  > | capextodepandamor     | \u8d44\u672c\u6027\u652f\u51fa/\u6298\u65e7\u4e0e\u644a\u9500                         | \u500d   |\r\n  > | capimortconms         | \u8d44\u672c\u56fa\u5b9a\u5316\u6bd4\u7387(\u542b\u5c11\u6570\u80a1\u6743\u7684\u51c0\u8d44\u4ea7)            | %    |\r\n  > | capprort              | \u8d44\u672c\u91d1\u5229\u6da6\u7387                                  | %    |\r\n  > | cashconvcycle         | \u73b0\u91d1\u5468\u671f                                      | \u5929   |\r\n  > | cashopindex           | \u73b0\u91d1\u8fd0\u8425\u6307\u6570                                  | \u500d   |\r\n  > | cashrt                | \u73b0\u91d1\u6bd4\u7387                                      | %    |\r\n  > | compdeprt             | \u7efc\u5408\u6298\u65e7\u7387                                    | %    |\r\n  > | consvatquickrt        | \u4fdd\u5b88\u901f\u52a8\u6bd4\u7387                                  | %    |\r\n  > | crps                  | \u6bcf\u80a1\u8d44\u672c\u516c\u79ef\u91d1                                | \u5143   |\r\n  > | curassturndays        | \u6d41\u52a8\u8d44\u4ea7\u5468\u8f6c\u5929\u6570                              | \u5929   |\r\n  > | curassturnrt          | \u6d41\u52a8\u8d44\u4ea7\u5468\u8f6c\u7387                                | \u6b21   |\r\n  > | curliabtoltmliabrt    | \u8d1f\u503a\u7ed3\u6784\u6bd4\u7387                                  | %    |\r\n  > | currentrt             | \u6d41\u52a8\u6bd4\u7387                                      | \u500d   |\r\n  > | dps                   | \u6bcf\u80a1\u666e\u901a\u80a1\u80a1\u5229                                | \u5143   |\r\n  > | ebit                  | \u606f\u7a0e\u524d\u5229\u6da6                                    | \u5143   |\r\n  > | ebitda                | \u606f\u7a0e\u6298\u65e7\u644a\u9500\u524d\u5229\u6da6                            | \u5143   |\r\n  > | ebitdamargin          | \u606f\u7a0e\u6298\u65e7\u644a\u9500\u524d\u5229\u6da6\u7387                          | %    |\r\n  > | ebitdaps              | \u6bcf\u80a1\u606f\u7a0e\u6298\u65e7\u644a\u9500\u524d\u5229\u6da6_\u671f\u672b\u80a1\u6570               | \u5143   |\r\n  > | ebitdascover          | ebitda\u5229\u606f\u4fdd\u969c\u500d\u6570                            | \u500d   |\r\n  > | ebitdatotdebt         | \u606f\u7a0e\u6298\u65e7\u644a\u9500\u524d\u5229\u6da6/\u8d1f\u503a\u5408\u8ba1                   | \u500d   |\r\n  > | ebitmargin            | \u606f\u7a0e\u524d\u5229\u6da6\u7387                                  | %    |\r\n  > | ebitps                | \u6bcf\u80a1\u606f\u7a0e\u524d\u5229\u6da6                                | \u5143   |\r\n  > | ebitscover            | \u5df2\u83b7\u5229\u606f\u500d\u6570                                  | \u500d   |\r\n  > | ebittotopi            | \u606f\u7a0e\u524d\u5229\u6da6/\u8425\u4e1a\u603b\u6536\u5165                         | \u500d   |\r\n  > | em                    | \u6743\u76ca\u4e58\u6570                                      | \u500d   |\r\n  > | emconms               | \u6743\u76ca\u4e58\u6570(\u542b\u5c11\u6570\u80a1\u6743\u7684\u51c0\u8d44\u4ea7)                  | \u500d   |\r\n  > | epsdiluted            | \u644a\u8584\u6bcf\u80a1\u6536\u76ca_\u671f\u672b\u80a1\u6570                         | \u5143   |\r\n  > | epsdilutedcut         | \u644a\u8584\u6bcf\u80a1\u6536\u76ca\u671f\u672b\u80a1\u6570\u6263\u9664\u975e\u7ecf\u5e38\u635f\u76ca            | \u5143   |\r\n  > | epsdilutednewp        | \u644a\u8584\u6bcf\u80a1\u6536\u76ca_\u6700\u65b0\u80a1\u6570                         | \u5143   |\r\n  > | epsdilutedop          | \u644a\u8584\u6bcf\u80a1\u6536\u76ca(\u8425\u4e1a\u5229\u6da6)                        | \u5143   |\r\n  > | equconms              | \u542b\u5c11\u6570\u80a1\u6743\u7684\u51c0\u8d44\u4ea7                            | \u5143   |\r\n  > | equrt                 | \u4ea7\u6743\u6bd4\u7387                                      | %    |\r\n  > | equtofa               | \u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u8d44\u4ea7/\u56fa\u5b9a\u8d44\u4ea7                   | \u500d   |\r\n  > | equtoic               | \u5f52\u5c5e\u6bcd\u516c\u53f8\u51c0\u7684\u8d44\u4ea7/\u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u6295\u5165\u8d44\u672c       | \u500d   |\r\n  > | equtoicconms          | \u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u8d44\u4ea7/\u542b\u5c11\u6570\u80a1\u6743\u7684\u6295\u5165\u8d44\u672c       | \u500d   |\r\n  > | equtotdebt            | \u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u8d44\u4ea7/\u603b\u503a\u52a1                     | \u500d   |\r\n  > | equtotliab            | \u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u8d44\u4ea7/\u8d1f\u503a\u5408\u8ba1                   | \u500d   |\r\n  > | equturnrt             | \u80a1\u4e1c\u6743\u76ca\u5468\u8f6c\u7387                                | \u6b21   |\r\n  > | equturnrtconms        | \u80a1\u4e1c\u6743\u76ca\u5468\u8f6c\u7387(\u542b\u5c11\u6570\u80a1\u6743\u6743\u76ca)                | \u6b21   |\r\n  > | faproportion          | \u56fa\u5b9a\u8d44\u4ea7\u6bd4\u91cd                                  | %    |\r\n  > | faprort               | \u56fa\u5b9a\u8d44\u4ea7\u5229\u6da6\u7387                                | %    |\r\n  > | faturndays            | \u56fa\u5b9a\u8d44\u4ea7\u5468\u8f6c\u5929\u6570                              | \u5929   |\r\n  > | faturnrt              | \u56fa\u5b9a\u8d44\u4ea7\u5468\u8f6c\u7387                                | \u6b21   |\r\n  > | fcfe                  | \u80a1\u4e1c\u81ea\u7531\u73b0\u91d1\u6d41\u91cf                              | \u5143   |\r\n  > | fcfeps                | \u6bcf\u80a1\u80a1\u4e1c\u81ea\u7531\u73b0\u91d1\u6d41\u91cf                          | \u5143   |\r\n  > | fcff                  | \u4f01\u4e1a\u81ea\u7531\u73b0\u91d1\u6d41\u91cf                              | \u5143   |\r\n  > | fcffps                | \u6bcf\u80a1\u4f01\u4e1a\u81ea\u7531\u73b0\u91d1\u6d41\u91cf                          | \u5143   |\r\n  > | finlexprt             | \u8d22\u52a1\u8d39\u7528\u7387                                    | %    |\r\n  > | incotaxtotp           | \u6240\u5f97\u7a0e/\u5229\u6da6\u603b\u989d                               | \u500d   |\r\n  > | intcashrevrt          | \u6295\u8d44\u6536\u76ca\u6536\u73b0\u7387                                | %    |\r\n  > | intexpconcapint       | \u5229\u606f\u652f\u51fa_\u5305\u542b\u8d44\u672c\u5316\u5229\u606f                       | \u5143   |\r\n  > | intexpcutcapint       | \u5229\u606f\u652f\u51fa_\u6263\u9664\u8d44\u672c\u5316\u5229\u606f                       | \u5143   |\r\n  > | invtocurassrt         | \u5b58\u8d27\u8d44\u4ea7\u6784\u6210\u7387                                | %    |\r\n  > | invturndays           | \u5b58\u8d27\u5468\u8f6c\u5929\u6570                                  | \u5929   |\r\n  > | invturnrt             | \u5b58\u8d27\u5468\u8f6c\u7387                                    | \u6b21   |\r\n  > | liqdvaluert           | \u6e05\u7b97\u4ef7\u503c\u6bd4\u73871                                 | %    |\r\n  > | loanlossrestotloanrt  | \u8d37\u6b3e\u635f\u5931\u51c6\u5907\u91d1/\u8d37\u6b3e\u603b\u989d                       | %    |\r\n  > | ltmassrt              | \u957f\u671f\u8d44\u4ea7\u9002\u5408\u7387                                | %    |\r\n  > | ltmdebt               | \u957f\u671f\u503a\u52a1                                      | \u5143   |\r\n  > | ltmdebttoworkcap      | \u957f\u671f\u503a\u52a1/\u8425\u8fd0\u8d44\u91d1                             | \u500d   |\r\n  > | ltmliabtoequ          | \u957f\u671f\u8d1f\u503a/\u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u8d44\u4ea7                   | \u500d   |\r\n  > | ltmliabtoopcap        | \u957f\u671f\u8d1f\u503a\u4e0e\u8425\u8fd0\u8d44\u672c\u6bd4\u7387                        | %    |\r\n  > | ltmliabtota           | \u957f\u671f\u8d1f\u503a/\u603b\u8d44\u4ea7                               | \u500d   |\r\n  > | ltmliabtotaconms      | \u8d44\u672c\u5316\u6bd4\u7387_\u542b\u5c11\u6570\u80a1\u6743\u7684\u51c0\u8d44\u4ea7                 | %    |\r\n  > | mgtexprt              | \u7ba1\u7406\u8d39\u7528\u7387                                    | %    |\r\n  > | naps                  | \u644a\u8584\u6bcf\u80a1\u51c0\u8d44\u4ea7_\u671f\u672b\u80a1\u6570                       | \u5143   |\r\n  > | napsadj               | \u8c03\u6574\u540e\u6bcf\u80a1\u51c0\u8d44\u4ea7_\u671f\u672b\u80a1\u6570                     | \u5143   |\r\n  > | napsnewp              | \u6bcf\u80a1\u51c0\u8d44\u4ea7_\u6700\u65b0\u80a1\u6570                           | \u5143   |\r\n  > | ncfps                 | \u6bcf\u80a1\u73b0\u91d1\u6d41\u91cf\u51c0\u989d                              | \u5143   |\r\n  > | ndebt                 | \u51c0\u503a\u52a1                                        | \u5143   |\r\n  > | ndebttoequ            | \u51c0\u503a\u52a1/\u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u8d44\u4ea7                     | \u500d   |\r\n  > | nfart                 | \u56fa\u5b9a\u8d44\u4ea7\u51c0\u503c\u7387                                | %    |\r\n  > | nitocurass            | \u6d41\u52a8\u8d44\u4ea7\u5229\u6da6\u7387                                | %    |\r\n  > | nnonopitotp           | \u8425\u4e1a\u5916\u6536\u652f\u51c0\u989d/\u5229\u6da6\u603b\u989d                       | \u500d   |\r\n  > | nonintcurliabs        | \u65e0\u606f\u6d41\u52a8\u8d1f\u503a                                  | \u5143   |\r\n  > | nonintnoncurliab      | \u65e0\u606f\u975e\u6d41\u52a8\u8d1f\u503a                                | \u5143   |\r\n  > | nopcapturnrt          | \u51c0\u8425\u8fd0\u8d44\u672c\u5468\u8f6c\u7387                              | \u6b21   |\r\n  > | nopi                  | \u7ecf\u8425\u6d3b\u52a8\u51c0\u6536\u76ca                                | \u5143   |\r\n  > | npconmstoavgta        | \u603b\u8d44\u4ea7\u51c0\u5229\u7387_\u5e73\u5747(\u542b\u5c11\u6570\u80a1\u4e1c\u635f\u76ca\u7684\u51c0\u5229\u6da6)     | %    |\r\n  > | npconmstotp           | \u542b\u5c11\u6570\u80a1\u4e1c\u635f\u76ca\u7684\u51c0\u5229\u6da6/\u5229\u6da6\u603b\u989d               | \u500d   |\r\n  > | npcut                 | \u6263\u9664\u975e\u7ecf\u5e38\u6027\u635f\u76ca\u540e\u7684\u51c0\u5229\u6da6                    | \u5143   |\r\n  > | npcuttonp             | \u6263\u9664\u975e\u7ecf\u5e38\u6027\u635f\u76ca\u540e\u7684\u51c0\u5229\u6da6/\u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u5229\u6da6 | \u500d   |\r\n  > | npgrt                 | \u5f52\u5c5e\u6bcd\u516c\u53f8\u51c0\u5229\u6da6\u589e\u957f\u7387                        | %    |\r\n  > | nptoavgta             | \u603b\u8d44\u4ea7\u51c0\u5229\u7387_\u5e73\u5747                             | %    |\r\n  > | nptonoconms           | \u5f52\u5c5e\u6bcd\u516c\u53f8\u80a1\u4e1c\u7684\u51c0\u5229\u6da6/\u542b\u5c11\u6570\u80a1\u4e1c\u635f\u76ca\u7684\u51c0\u5229\u6da6 | \u500d   |\r\n  > | nptotp                | \u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u5229\u6da6/\u5229\u6da6\u603b\u989d                   | \u500d   |\r\n  > | ntanga                | \u6709\u5f62\u8d44\u4ea7\u51c0\u503c                                  | \u5143   |\r\n  > | ntangasstondebt       | \u6709\u5f62\u8d44\u4ea7\u51c0\u503c/\u51c0\u503a\u52a1                           | \u500d   |\r\n  > | ntangasstotdebt       | \u6709\u5f62\u8d44\u4ea7\u51c0\u503c/\u603b\u503a\u52a1                           | \u500d   |\r\n  > | ntangasstotliab       | \u6709\u5f62\u8d44\u4ea7\u51c0\u503c/\u8d1f\u503a\u5408\u8ba1                         | \u500d   |\r\n  > | nvalchgit             | \u4ef7\u503c\u53d8\u52a8\u51c0\u6536\u76ca                                | \u5143   |\r\n  > | nvalchgitotp          | \u4ef7\u503c\u53d8\u52a8\u51c0\u6536\u76ca/\u5229\u6da6\u603b\u989d                       | \u500d   |\r\n  > | opancftoopni          | \u7ecf\u8425\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d/\u7ecf\u8425\u6d3b\u52a8\u51c0\u6536\u76ca     | \u500d   |\r\n  > | opanitotp             | \u7ecf\u8425\u6d3b\u52a8\u51c0\u6536\u76ca/\u5229\u6da6\u603b\u989d                       | %    |\r\n  > | opcaptotart           | \u8425\u8fd0\u8d44\u672c\u5bf9\u603b\u8d44\u4ea7\u6bd4\u7387                          | %    |\r\n  > | opcycle               | \u8425\u4e1a\u5468\u671f                                      | \u5929   |\r\n  > | opexprt               | \u8425\u4e1a\u8d39\u7528\u7387                                    | %    |\r\n  > | opgpmargin            | \u8425\u4e1a\u6bdb\u5229\u6da6                                    | \u5143   |\r\n  > | opicftoticf           | \u7ecf\u8425\u6d3b\u52a8\u73b0\u91d1\u6d41\u5165\u5360\u73b0\u91d1\u6d41\u5165\u603b\u91cf\u6bd4\u7387            | %    |\r\n  > | opncfps               | \u6bcf\u80a1\u7ecf\u8425\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d                | \u5143   |\r\n  > | opncfshtinvetoshtdebt | (\u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1\uff0b\u77ed\u671f\u6295\u8d44)/\u77ed\u671f\u503a\u52a1           | \u500d   |\r\n  > | opncftocapex          | \u7ecf\u8425\u6027\u73b0\u91d1\u6d41\u91cf\u5bf9\u8d44\u672c\u6027\u652f\u51fa\u6bd4\u7387                | %    |\r\n  > | opncftodepandamor     | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u6298\u65e7\u4e0e\u644a\u9500                     | \u500d   |\r\n  > | opncftointexp         | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u5229\u606f\u652f\u51fa                       | \u500d   |\r\n  > | opncftoltmliab        | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u957f\u671f\u8d1f\u503a                       | \u500d   |\r\n  > | opncftondabt          | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u51c0\u503a\u52a1                         | \u500d   |\r\n  > | opncftonp             | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u51c0\u5229\u6da6             | \u500d   |\r\n  > | opncftonpconms        | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u542b\u5c11\u6570\u80a1\u4e1c\u635f\u76ca\u7684\u51c0\u5229\u6da6         | \u500d   |\r\n  > | opncftooppro          | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u8425\u4e1a\u5229\u6da6                       | \u500d   |\r\n  > | opncftoopti           | \u7ecf\u8425\u6027\u73b0\u91d1\u51c0\u6d41\u91cf/\u8425\u4e1a\u603b\u6536\u5165                   | \u500d   |\r\n  > | opncftoshtdebt        | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u77ed\u671f\u503a\u52a1                       | \u500d   |\r\n  > | opncftosi             | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u9500\u552e\u6536\u5165                       | \u500d   |\r\n  > | opncftota             | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u603b\u8d44\u4ea7                         | \u500d   |\r\n  > | opncftotdebt          | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u603b\u503a\u52a1                         | \u500d   |\r\n  > | opncftotliab          | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u603b\u8d1f\u503a                         | \u500d   |\r\n  > | opncftotncf           | \u7ecf\u8425\u6d3b\u52a8\u51c0\u73b0\u91d1/\u603b\u51c0\u73b0\u91d1\u6d41\u91cf                   | \u500d   |\r\n  > | opprort               | \u8425\u4e1a\u5229\u6da6\u7387                                    | %    |\r\n  > | opprototcrt           | \u6210\u672c\u8d39\u7528\u8425\u4e1a\u5229\u6da6\u7387                            | %    |\r\n  > | opptotp               | \u8425\u4e1a\u5229\u6da6/\u5229\u6da6\u603b\u989d                             | \u500d   |\r\n  > | oprevps               | \u6bcf\u80a1\u8425\u4e1a\u6536\u5165                                  | \u5143   |\r\n  > | oprevtocurass         | \u6d41\u52a8\u8d44\u4ea7\u8425\u4e1a\u5229\u6da6\u7387                            | %    |\r\n  > | prototcrt             | \u6210\u672c\u8d39\u7528\u5229\u6da6\u7387                                | %    |\r\n  > | quickrt               | \u901f\u52a8\u6bd4\u7387                                      | \u500d   |\r\n  > | reps                  | \u6bcf\u80a1\u7559\u5b58\u6536\u76ca                                  | \u5143   |\r\n  > | roa                   | \u603b\u8d44\u4ea7\u62a5\u916c\u7387                                  | %    |\r\n  > | roaaannual            | \u5e74\u5316\u603b\u8d44\u4ea7\u51c0\u5229\u7387                              | %    |\r\n  > | roaannual             | \u5e74\u5316\u603b\u8d44\u4ea7\u62a5\u916c\u7387                              | %    |\r\n  > | roeannual             | \u5e74\u5316\u51c0\u8d44\u4ea7\u6536\u76ca\u7387                              | %    |\r\n  > | roeavg                | \u51c0\u8d44\u4ea7\u6536\u76ca\u7387_\u5e73\u5747                             | %    |\r\n  > | roeavgcut             | \u51c0\u8d44\u4ea7\u6536\u76ca\u7387_\u5e73\u5747(\u6263\u9664\u975e\u7ecf\u5e38\u635f\u76ca)             | %    |\r\n  > | roebyminnpornpcut     | \u51c0\u8d44\u4ea7\u6536\u76ca\u7387\u6263\u9664\u524d\u540e\u51c0\u5229\u6da6\u5b70\u4f4e\u5f52\u5c5e\u6bcd\u516c\u53f8      | %    |\r\n  > | roediluted            | \u644a\u8584\u51c0\u8d44\u4ea7\u6536\u76ca\u7387                              | %    |\r\n  > | roedilutedcut         | \u644a\u8584\u51c0\u8d44\u4ea7\u6536\u76ca\u7387_\u6263\u9664\u975e\u7ecf\u5e38\u635f\u76ca               | %    |\r\n  > | roic                  | \u6295\u5165\u8d44\u672c\u56de\u62a5\u7387                                | %    |\r\n  > | rota                  | \u603b\u8d44\u672c\u56de\u62a5\u7387                                  | %    |\r\n  > | scashrevtoopirt       | \u9500\u552e\u5546\u54c1\u63d0\u4f9b\u52b3\u52a1\u6536\u5230\u7684\u73b0\u91d1/\u8425\u4e1a\u6536\u5165           | \u500d   |\r\n  > | scostrt               | \u9500\u552e\u6210\u672c\u7387                                    | %    |\r\n  > | sgpmargin             | \u9500\u552e\u6bdb\u5229\u7387                                    | %    |\r\n  > | shtdebt               | \u77ed\u671f\u503a\u52a1                                      | \u5143   |\r\n  > | shtliabtotliabrt      | \u77ed\u671f\u8d1f\u503a/\u8d1f\u503a\u603b\u989d                             | \u500d   |\r\n  > | snpmarginconms        | \u9500\u552e\u51c0\u5229\u7387(\u542b\u5c11\u6570\u80a1\u6743\u6743\u76ca)                    | %    |\r\n  > | srps                  | \u6bcf\u80a1\u76c8\u4f59\u516c\u79ef\u91d1                                | \u5143   |\r\n  > | taavg                 | \u5e73\u5747\u8d44\u4ea7\u603b\u989d                                  | \u5143   |\r\n  > | tagrt                 | \u8425\u4e1a\u603b\u6536\u5165\u589e\u957f\u7387                              | %    |\r\n  > | tangasstota           | \u6709\u5f62\u8d44\u4ea7/\u603b\u8d44\u4ea7                               | \u500d   |\r\n  > | taturndays            | \u603b\u8d44\u4ea7\u5468\u8f6c\u5929\u6570                                | \u5929   |\r\n  > | taturnrt              | \u603b\u8d44\u4ea7\u5468\u8f6c\u7387                                  | %    |\r\n  > | tc                    | \u6210\u672c\u8d39\u7528\u603b\u989d                                  | \u5143   |\r\n  > | tcap                  | \u603b\u8d44\u672c                                        | \u5143   |\r\n  > | tcexprt               | \u6210\u672c\u8d39\u7528\u7387                                    | %    |\r\n  > | tdebt                 | \u603b\u503a\u52a1                                        | \u5143   |\r\n  > | tdebttofart           | \u6709\u5f62\u51c0\u503c\u503a\u52a1\u7387                                | %    |\r\n  > | tdebttoic             | \u603b\u503a\u52a1/\u5f52\u5c5e\u6bcd\u516c\u53f8\u7684\u6295\u5165\u8d44\u672c                   | \u500d   |\r\n  > | tdebttoicconms        | \u603b\u503a\u52a1/\u542b\u5c11\u6570\u80a1\u6743\u7684\u6295\u5165\u8d44\u672c                   | \u500d   |\r\n  > | tdtoebitda            | \u603b\u503a\u52a1/ebitda                                 | \u500d   |\r\n  > | toprevps              | \u6bcf\u80a1\u8425\u4e1a\u603b\u6536\u5165                                | \u5143   |\r\n  > | totic                 | \u6295\u5165\u8d44\u672c                                      | \u5143   |\r\n  > | tptoebit              | \u5229\u6da6\u603b\u989d/\u606f\u7a0e\u524d\u5229\u6da6                           | \u500d   |\r\n  > | triexp                | \u4e09\u9879\u8d39\u7528                                      | \u5143   |\r\n  > | triexprt              | \u4e09\u9879\u8d39\u7528\u6bd4\u91cd                                  | %    |\r\n  > | triexptotopi          | \u4e09\u9879\u8d39\u7528\u5360\u8425\u4e1a\u603b\u6536\u5165\u6bd4\u7387                      | %    |\r\n  > | upps                  | \u6bcf\u80a1\u672a\u5206\u914d\u5229\u6da6                                | \u5143   |\r\n  > | workcap               | \u8425\u8fd0\u8d44\u91d1                                      | \u5143   |\r\n\r\n",
    "bugtrack_url": null,
    "license": "GNU Lesser General Public License (LGPL)  Copyright (c) 2022 Qujamlee from www.aztquant.com  This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.  You should have received a copy of the GNU Lesser General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.",
    "summary": "AztQuant Server Python Client",
    "version": "1.0.3",
    "split_keywords": [
        "azt",
        "aztve",
        "aztquant",
        "quant"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "90e8c2a709610cda94fa264ac5a033f08cfa65e504cc3bc347d70cd3939e8b8a",
                "md5": "96927033c172ce2b32568b4a938604fd",
                "sha256": "8ec40a5b5404f000a4a2a2bc14485c1f22f2e8a6541c986f34bc11be34fed2f4"
            },
            "downloads": -1,
            "filename": "AztClient-1.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "96927033c172ce2b32568b4a938604fd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 162160,
            "upload_time": "2023-03-24T06:36:42",
            "upload_time_iso_8601": "2023-03-24T06:36:42.816227Z",
            "url": "https://files.pythonhosted.org/packages/90/e8/c2a709610cda94fa264ac5a033f08cfa65e504cc3bc347d70cd3939e8b8a/AztClient-1.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "214296bbe8a9a3dcdc99fd41a30337f8a5178c43d2a734cdb36802b3924a29d0",
                "md5": "20b6cc3fe104f4b696deee947ccaf4b3",
                "sha256": "5d905c472451601ff61ccb371102a1fa7054dc319903827bcc95275f2f53c324"
            },
            "downloads": -1,
            "filename": "AztClient-1.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "20b6cc3fe104f4b696deee947ccaf4b3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 170462,
            "upload_time": "2023-03-24T06:36:46",
            "upload_time_iso_8601": "2023-03-24T06:36:46.736505Z",
            "url": "https://files.pythonhosted.org/packages/21/42/96bbe8a9a3dcdc99fd41a30337f8a5178c43d2a734cdb36802b3924a29d0/AztClient-1.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-24 06:36:46",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "aztclient"
}
        
Elapsed time: 0.07096s