// 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格式传,对持仓无效,拉历史数据必须填
*/