Source: typedef.js

// Common
/**
 * 协议返回值
 *
    RetType 定义协议请求返回值
    请求失败情况,除网络超时外,其它具体原因参见各协议定义的retMsg字段

    RetType_Succeed = 0; //成功
    RetType_Failed = -1; //失败
    RetType_TimeOut = -100; //超时
    RetType_Unknown = -400; //未知结果
 * @typedef {number} RetType
 */
/**
 * 请求包标识,包的唯一标识,用于回放攻击的识别和保护
 *
    PacketID 用于唯一标识一次请求
    serailNO 由请求方自定义填入包头,为防回放攻击要求自增,否则新的请求将被忽略
 * @typedef {object} PacketID
 * @property {number} connID 当前TCP连接的连接ID,一条连接的唯一标识,InitConnect协议会返回
 * @property {number} serialNo 包头中的包自增序列号
 */
// Qot_Common
/**
 * 行情市场
 *
    QotMarket定义一支证券所属的行情市场分类
    QotMarket_HK_Future 港股期货,目前仅支持 999010(恒指当月期货)、999011(恒指下月期货)
    QotMarket_US_Option 美股期权,牛牛客户端可以查看行情,API 后续支持

    QotMarket_Unknown = 0; //未知市场
    QotMarket_HK_Security = 1; //港股
    QotMarket_HK_Future = 2; //港期货(目前是恒指的当月、下月期货行情)
    QotMarket_US_Security = 11; //美股
    QotMarket_US_Option = 12; //美期权,暂时不支持期权
    QotMarket_CNSH_Security = 21; //沪股
    QotMarket_CNSZ_Security = 22; //深股
 *
 * @typedef {number} QotMarket
 */
/**
 * 股票类型
 *
    SecurityType_Unknown = 0; //未知
    SecurityType_Bond = 1; //债券
    SecurityType_Bwrt = 2; //一揽子权证
    SecurityType_Eqty = 3; //正股
    SecurityType_Trust = 4; //信托,基金
    SecurityType_Warrant = 5; //涡轮
    SecurityType_Index = 6; //指数
    SecurityType_Plate = 7; //板块
    SecurityType_Drvt = 8; //期权
    SecurityType_PlateSet = 9; //板块集
 * @typedef {number} SecurityType
 */
/**
 * 板块集合的类型
 *
    Qot_GetPlateSet 请求参数类型

    PlateSetType_All = 0; //所有板块
    PlateSetType_Industry = 1; //行业板块
    PlateSetType_Region = 2; //地域板块,港美股市场的地域分类数据暂为空
    PlateSetType_Concept = 3; //概念板块
 * @typedef {number} PlateSetType
 */
/**
 * 窝轮子类型
 *
    WarrantType_Unknown = 0; //未知
    WarrantType_Buy = 1; //认购
    WarrantType_Sell = 2; //认沽
    WarrantType_Bull = 3; //牛
    WarrantType_Bear = 4; //熊
 * @typedef {number} WarrantType
 */
/**
 * 行情市场状态
 *
    QotMarketState_None = 0; // 无交易,美股未开盘
    QotMarketState_Auction = 1; // 竞价
    QotMarketState_WaitingOpen = 2; // 早盘前等待开盘
    QotMarketState_Morning = 3; // 早盘
    QotMarketState_Rest = 4; // 午间休市
    QotMarketState_Afternoon = 5; // 午盘
    QotMarketState_Closed = 6; // 收盘
    QotMarketState_PreMarketBegin = 8; // 盘前
    QotMarketState_PreMarketEnd = 9; // 盘前结束
    QotMarketState_AfterHoursBegin = 10; // 盘后
    QotMarketState_AfterHoursEnd = 11; // 盘后结束
    QotMarketState_NightOpen = 13; // 夜市开盘
    QotMarketState_NightEnd = 14; // 夜市收盘
    QotMarketState_FutureDayOpen = 15; // 期指日市开盘
    QotMarketState_FutureDayBreak = 16; // 期指日市休市
    QotMarketState_FutureDayClose = 17; // 期指日市收盘
    QotMarketState_FutureDayWaitForOpen = 18; // 期指日市等待开盘
    QotMarketState_HkCas = 19; // 盘后竞价,港股市场增加CAS机制对应的市场状态
 * @typedef {number} QotMarketState
 */
/**
 * 复权类型
 *
    RehabType_None = 0; //不复权
    RehabType_Forward = 1; //前复权
    RehabType_Backward = 2; //后复权
 * @typedef {number} RehabType
 */
/**
 * K线类型,枚举值兼容旧协议定义,新类型季K,年K,3分K暂时没有支持历史K线
 *
    KLType_Unknown = 0; //未知
    KLType_1Min = 1; //1分K
    KLType_Day = 2; //日K
    KLType_Week = 3; //周K
    KLType_Month = 4; //月K
    KLType_Year = 5; //年K
    KLType_5Min = 6; //5分K
    KLType_15Min = 7; //15分K
    KLType_30Min = 8; //30分K
    KLType_60Min = 9; //60分K
    KLType_3Min = 10; //3分K
    KLType_Quarter = 11; //季K
 * @typedef {number} KLType
 */
/**
 * 指定返回K线结构体特定某几项数据,KLFields枚举值或组合,如果未指定返回全部字段
 *
    KLFields_None = 0; //
    KLFields_High = 1; //最高价
    KLFields_Open = 2; //开盘价
    KLFields_Low = 4; //最低价
    KLFields_Close = 8; //收盘价
    KLFields_LastClose = 16; //昨收价
    KLFields_Volume = 32; //成交量
    KLFields_Turnover = 64; //成交额
    KLFields_TurnoverRate = 128; //换手率
    KLFields_PE = 256; //市盈率
    KLFields_ChangeRate = 512; //涨跌幅
 * @typedef {number} KLFields
 */
/**
 * 行情定阅类型,订阅类型,枚举值兼容旧协议定义
 *
    SubType_None = 0;
    SubType_Basic = 1; //基础报价
    SubType_OrderBook = 2; //摆盘
    SubType_Ticker = 4; //逐笔
    SubType_RT = 5; //分时
    SubType_KL_Day = 6; //日K
    SubType_KL_5Min = 7; //5分K
    SubType_KL_15Min = 8; //15分K
    SubType_KL_30Min = 9; //30分K
    SubType_KL_60Min = 10; //60分K
    SubType_KL_1Min = 11; //1分K
    SubType_KL_Week = 12; //周K
    SubType_KL_Month = 13; //月K
    SubType_Broker = 14; //经纪队列
    SubType_KL_Qurater = 15; //季K
    SubType_KL_Year = 16; //年K
    SubType_KL_3Min = 17; //3分K
 * @typedef {number} SubType
 */
/**
 * 逐笔方向
 *
    TickerDirection_Unknown = 0; //未知
    TickerDirection_Bid = 1; //外盘
    TickerDirection_Ask = 2; //内盘
    TickerDirection_Neutral = 3; //中性盘
 * @typedef {number} TickerDirection
 */
/**
 * 股票,两个字段确定一支股票
 * @typedef {object} Security
 * @property {QotMarket} market QotMarket,股票市场
 * @property {string} code 股票代码
 */
/**
 * K线数据点
 * @typedef {object} KLine
 * @property {string} time 时间戳字符串
 * @property {boolean} isBlank 是否是空内容的点,若为ture则只有时间信息
 * @property {number} [highPrice] 最高价
 * @property {number} [openPrice] 开盘价
 * @property {number} [lowPrice] 最低价
 * @property {number} [closePrice] 收盘价
 * @property {number} [lastClosePrice] 昨收价
 * @property {number} [volume] 成交量
 * @property {number} [turnover] 成交额
 * @property {number} [turnoverRate] 换手率
 * @property {number} [pe] 市盈率
 * @property {number} [changeRate] 涨跌幅
 */
/**
 * 基础报价
 * @typedef {object} BasicQot
 * @property {security} security 股票
 * @property {boolean} isSuspended 是否停牌
 * @property {string} listTime 上市日期字符串
 * @property {number} priceSpread 价差
 * @property {string} updateTime 更新时间字符串
 * @property {number} highPrice 最高价
 * @property {number} openPrice 开盘价
 * @property {number} lowPrice 最低价
 * @property {number} curPrice 最新价
 * @property {number} lastClosePrice 昨收价
 * @property {number} volume 成交量
 * @property {number} turnover 成交额
 * @property {number} turnoverRate 换手率
 * @property {number} amplitude 振幅
 */
/**
 * 分时数据点
 * @typedef {object} TimeShare
 * @property {string} time 时间字符串
 * @property {number} minute 距离0点过了多少分钟
 * @property {boolean} isBlank 是否是空内容的点,若为ture则只有时间信息
 * @property {number} [price] 当前价
 * @property {number} [lastClosePrice] 昨收价
 * @property {number} [avgPrice] 均价
 * @property {number} [volume] 成交量
 * @property {number} [turnover] 成交额
 */
/**
 * 证券基本静态信息
 * @typedef {object} SecurityStaticBasic
 * @property {security} security 股票
 * @property {number} id 股票ID
 * @property {number} lotSize 每手数量
 * @property {SecurityType} secType Qot_Common.SecurityType,股票类型
 * @property {string} name 股票名字
 * @property {string} listTime 上市时间字符串
 */
/**
 * 窝轮额外股票静态信息
 * @typedef {object} WarrantStaticExData
 * @property {WarrantType} type Qot_Common.WarrantType,涡轮类型
 * @property {Security} owner 所属正股
 */
/**
 * 证券静态信息
 * @typedef {object} SecurityStaticInfo
 * @property {SecurityStaticBasic} basic 基本股票静态信息
 * @property {WarrantStaticExData} [warrantExData] 窝轮额外股票静态信息
 */
/**
 * 买卖经纪摆盘
 * @typedef {object} Broker
 * @property {number} id 经纪ID
 * @property {string} name 经纪名称
 * @property {number} pos 经纪档位
 */
/**
 * 逐笔成交
 * @typedef {object} Ticker
 * @property {string} time 时间字符串
 * @property {number} sequence 唯一标识
 * @property {TickerDirection} dir TickerDirection, 买卖方向
 * @property {number} price 价格
 * @property {number} volume 成交量
 * @property {number} turnover 成交额
 * @property {number} [recvTime] 收到推送数据的本地时间戳,用于定位延迟
 */
/**
 * 买卖十档摆盘
 * @typedef {object} OrderBook
 * @property {number} price 委托价格
 * @property {number} volume 委托数量
 * @property {number} orederCount 委托订单个数
 */
/**
 * 单个定阅类型信息
 * @typedef {object} SubInfo
 * @property {SubType} subType Qot_Common.SubType,订阅类型
 * @property {Security[]} securityList 订阅该类型行情的股票
 */
/**
 * 单条连接定阅信息
 *
    一条连接重复定阅其它连接已经订阅过的,不会额外消耗订阅额度
 * @typedef ConnSubInfo
 * @property {SubInfo[]} subInfoList 该连接订阅信息
 * @property {number} usedQuota 该连接已经使用的订阅额度
 * @property {boolean} isOwnConnData 用于区分是否是自己连接的数据
 */
// Trd_Common
/**
 * 交易环境
 *
    TrdEnv_Simulate = 0; //仿真环境(模拟环境)
    TrdEnv_Real = 1; //真实环境
 * @typedef {number} TrdEnv
 */
/**
 * 交易市场,是大的市场,不是具体品种
 *
    TrdMarket_Unknown = 0; //未知市场
    TrdMarket_HK = 1; //香港市场
    TrdMarket_US = 2; //美国市场
    TrdMarket_CN = 3; //大陆市场
    TrdMarket_HKCC = 4; //香港A股通市场
 * @typedef {number} TrdMarket
 */
/**
 * 交易方向,客户端下单只传Buy或Sell即可,SellShort是服务器返回有此方向,BuyBack目前不存在,但也不排除服务器会传
 *
    TrdSide_Unknown = 0; //未知方向
    TrdSide_Buy = 1; //买入
    TrdSide_Sell = 2; //卖出
    TrdSide_SellShort = 3; //卖空
    TrdSide_BuyBack = 4; //买回
 * @typedef {number} TrdSide
 */
/**
 * 订单类型
 *
    OrderType_Unknown = 0; //未知类型
    OrderType_Normal = 1; //普通订单(港股的增强限价单、A股的限价委托、美股的限价单)
    OrderType_Market = 2; //市价订单(目前仅美股)
    OrderType_AbsoluteLimit = 5; //绝对限价订单(目前仅港股),只有价格完全匹配才成交,比如你下价格为5元的买单,卖单价格必须也要是5元才能成交,低于5元也不能成交。卖出同理
    OrderType_Auction = 6; //竞价订单(目前仅港股),A股的早盘竞价订单类型不变还是OrderType_Normal
    OrderType_AuctionLimit = 7; //竞价限价订单(目前仅港股)
    OrderType_SpecialLimit = 8; //特别限价订单(目前仅港股),成交规则同OrderType_AbsoluteLimit,且如果当前没有对手可成交,不能立即成交,交易所自动撤销订单
 * @typedef {number} OrderType
 */
/**
 * 订单状态
 *
    OrderStatus_Unsubmitted = 0; //未提交
    OrderStatus_Unknown = -1; //未知状态
    OrderStatus_WaitingSubmit = 1; //等待提交
    OrderStatus_Submitting = 2; //提交中
    OrderStatus_SubmitFailed = 3; //提交失败,下单失败
    OrderStatus_TimeOut = 4; //处理超时,结果未知
    OrderStatus_Submitted = 5; //已提交,等待成交
    OrderStatus_Filled_Part = 10; //部分成交
    OrderStatus_Filled_All = 11; //全部已成
    OrderStatus_Cancelling_Part = 12; //正在撤单_部分(部分已成交,正在撤销剩余部分)
    OrderStatus_Cancelling_All = 13; //正在撤单_全部
    OrderStatus_Cancelled_Part = 14; //部分成交,剩余部分已撤单
    OrderStatus_Cancelled_All = 15; //全部已撤单,无成交
    OrderStatus_Failed = 21; //下单失败,服务拒绝
    OrderStatus_Disabled = 22; //已失效
    OrderStatus_Deleted = 23; //已删除,无成交的订单才能删除
 * @typedef {number} OrderStatus
 */
/**
 * 持仓方向类型
 *
    PositionSide_Long = 0; //多仓,默认情况是多仓
    PositionSide_Unknown = -1; //未知方向
    PositionSide_Short = 1; //空仓
 * @typedef {number} PositionSide
 */
/**
 * 修改订单的操作类型,港股支持全部操作,美股目前仅支持ModifyOrderOp_Normal和ModifyOrderOp_Cancel
 *
    ModifyOrderOp_Unknown = 0; //未知操作
    ModifyOrderOp_Normal = 1; //修改订单的价格、数量等,即以前的改单
    ModifyOrderOp_Cancel = 2; //撤单
    ModifyOrderOp_Disable = 3; //失效
    ModifyOrderOp_Enable = 4; //生效
    ModifyOrderOp_Delete = 5; //删除
 * @typedef {number} ModifyOrderOp
 */
/**
 * 需要再次确认订单的原因枚举
 *
    ReconfirmOrderReason_Unknown = 0; //未知原因
    ReconfirmOrderReason_QtyTooLarge = 1; //订单数量太大,确认继续下单并否拆分成多个小订单
    ReconfirmOrderReason_PriceAbnormal = 2; //价格异常,偏离当前价太大,确认继续下单
 * @typedef {number} ReconfirmOrderReason
 */
/**
 * 交易协议公共参数头
 * @typedef {object} TrdHeader
 * @property {TrdEnv} trdEnv 交易环境, 参见TrdEnv的枚举定义
 * @property {number} accID 业务账号, 业务账号与交易环境、市场权限需要匹配,否则会返回错误
 * @property {TrdMarket} trdMarket 交易市场, 参见TrdMarket的枚举定义
 */
/**
 * 交易业务账户结构
 * @typedef {object} TrdAcc
 * @property {TrdEnv} trdEnv 交易环境, 参见TrdEnv的枚举定义
 * @property {number} accID 业务账号, 业务账号与交易环境、市场权限需要匹配,否则会返回错误
 * @property {TrdMarket} trdMarketAuthList 业务账户支持的交易市场权限,即此账户能交易那些市场, 可拥有多个交易市场权限,目前仅单个,取值参见TrdMarket的枚举定义
 */
/**
 * 账户资金结构
 * @typedef {object} Funds
 * @property {number} power 购买力,3位精度(A股2位),下同
 * @property {number} totalAssets 资产净值
 * @property {number} cash 现金
 * @property {number} marketVal 证券市值
 * @property {number} frozenCash 冻结金额
 * @property {number} debtCash 欠款金额
 * @property {number} avlWithdrawalCash 可提金额
 */
/**
 * 账户持仓结构
 * @typedef {object} Position
 * @property {number} positionID 持仓ID,一条持仓的唯一标识
 * @property {PositionSide} positionSide 持仓方向,参见PositionSide的枚举定义
 * @property {string} code 代码
 * @property {string} name 名称
 * @property {number} qty 持有数量,2位精度,期权单位是"张",下同
 * @property {number} canSellQty 可卖数量
 * @property {number} price 市价,3位精度(A股2位)
 * @property {number} [costPrice] 成本价,无精度限制,如果没传,代表此时此值无效
 * @property {number} val 市值,3位精度(A股2位)
 * @property {number} plVal 盈亏金额,3位精度(A股2位)
 * @property {number} [plRatio] 盈亏比例,无精度限制,如果没传,代表此时此值无效
 * @property {number} [td_plVal] 今日盈亏金额,3位精度(A股2位),下同
 * @property {number} [td_trdVal] 今日交易额
 * @property {number} [td_buyVal] 今日买入总额
 * @property {number} [td_buyQty] 今日买入总量
 * @property {number} [td_sellVal] 今日卖出总额
 * @property {number} [td_sellQty] 今日卖出总量
 */
/**
 * 订单结构
 * @typedef {object} Order
 * @property {TrdSide} trdSide 交易方向, 参见TrdSide的枚举定义
 * @property {OrderType} orderType 订单类型, 参见OrderType的枚举定义
 * @property {OrderStatus} orderStatus 订单状态, 参见OrderStatus的枚举定义
 * @property {number} orderID 订单号
 * @property {string} orderIDEx 扩展订单号
 * @property {string} code 代码
 * @property {string} name 名称
 * @property {number} qty 订单数量,2位精度,期权单位是"张"
 * @property {number} [price] 订单价格,3位精度(A股2位)
 * @property {string} createTime 创建时间,严格按YYYY-MM-DD HH:MM:SS或YYYY-MM-DD HH:MM:SS.MS格式传
 * @property {string} updateTime 最后更新时间,严格按YYYY-MM-DD HH:MM:SS或YYYY-MM-DD HH:MM:SS.MS格式传
 * @property {number} [fillQty] 成交数量,2位精度,期权单位是"张"
 * @property {number} [fillAvgPrice] 成交均价,无精度限制
 * @property {string} [lastErrMsg] 最后的错误描述,如果有错误,会有此描述最后一次错误的原因,无错误为空
 */
/**
 * 成交结构
 * @typedef {object} OrderFill
 * @property {number} trdSide 交易方向, 参见TrdSide的枚举定义
 * @property {number} fillID 成交号
 * @property {string} fillIDEx 扩展成交号
 * @property {number} [orderID] 订单号
 * @property {string} [orderIDEx] 扩展订单号
 * @property {string} code 代码
 * @property {string} name 名称
 * @property {number} qty 订单数量,2位精度,期权单位是"张"
 * @property {number} price 订单价格,3位精度(A股2位)
 * @property {string} createTime 创建时间(成交时间),严格按YYYY-MM-DD HH:MM:SS或YYYY-MM-DD HH:MM:SS.MS格式传
 * @property {number} [counterBrokerID] 对手经纪号,港股有效
 * @property {string} [counterBrokerName] 对手经纪名称,港股有效
 */
/**
 * 最大交易数量
 * @description 因目前服务器实现的问题,卖空需要先卖掉持仓才能再卖空,是分开两步卖的,买回来同样是逆向两步;而看多的买是可以现金加融资一起一步买的,请注意这个差异
 * @typedef {object} MaxTrdQtys
 * @property {number} maxCashBuy 不使用融资,仅自己的现金最大可买整手股数
 * @property {number} [maxCashAndMarginBuy] 使用融资,自己的现金 + 融资资金总共的最大可买整手股数
 * @property {number} maxPositionSell 不使用融券(卖空),仅自己的持仓最大可卖整手股数
 * @property {number} [maxSellShort] 使用融券(卖空),最大可卖空整手股数,不包括多仓
 * @property {number} [maxBuyBack] 卖空后,需要买回的最大整手股数。因为卖空后,必须先买回已卖空的股数,还掉股票,才能再继续买多。
 */
/**
 * 过滤条件,条件组合是"与"不是"或",用于获取订单、成交、持仓等时二次过滤
 * @typedef {object} TrdFilterConditions
 * @property {string[]} codeList 代码过滤,只返回包含这些代码的数据,没传不过滤
 * @property {number[]} idList ID主键过滤,只返回包含这些ID的数据,没传不过滤,订单是orderID、成交是fillID、持仓是positionID
 * @property {string} [beginTime] 开始时间,严格按YYYY-MM-DD HH:MM:SS或YYYY-MM-DD HH:MM:SS.MS格式传,对持仓无效,拉历史数据必须填
 * @property {string} [endTime] 结束时间,严格按YYYY-MM-DD HH:MM:SS或YYYY-MM-DD HH:MM:SS.MS格式传,对持仓无效,拉历史数据必须填
 */