# 账户交易开放 API

# 版本记录

版本 修订日期 修订说明
1.0 2022/02/14

# 1 概述

# 1.1 参数说明

# 请求参数格式定义

请求参数以 json 的形式封装到 body 里面提交

参数名称 类型 说明 必填
src String 请求来源, PC 版调用 src=PC,APP 调用为空(默认 APP),WEB 调用 src=WEB(后续可扩展)。src=QTGY(量化)
Params CommonParams 具体业务的参数
  • CommonParams
参数名称 类型 说明 必填
sessionId String User session 唯一标识
业务参数 A
业务参数 B

# 返回数据定义

返回数据同样以 json 形式封装,属性有:

参数名称 类型 说明 必填
Code Int 状态码,0=成功,其他表示异常
message String 状态描述
result Object 数据内容,各个接口的数据封装在 data 属性里面返回给客户端

# 1.2 鉴权

# 1.3 错误代码定义

错误代码 说明
0 成功,其他状态码表示失败
-1 客户端可直接显示 message
-9998 恒生交易系统异地登录,需要重新调用“交易解锁”

# 2 账号相关

# 2.1 登录

  • 同其他登录接口

  • 接口地址 /userApi/userLogin

  • 请求参数

参数名称 类型 说明 必填
certType String 填固定值:7
certCode String 客户交易账号
pwd String 密码,在 https 安全链接下传明文
  • 请求示例
{
    "src": "QTGY",
    "params": {
        "certType": 7,
        "certCode": "1000002106",
        "pwd": "xxxx"
    }
}
1
2
3
4
5
6
7
8
  • 返回参数
参数名称 类型 说明 必填
sessionId String 会话追踪 token

# 2.2 获取二重认证验证码

  • 接口地址:/userApi/fetchCaptcha

  • 请求参数

参数名称 类型 说明 必填
sessionId String 用户登录之后生成的会话 id
  • 返回参数
参数名称 类型 说明 必填
code Int 0 表明是调用成功,其他值是异常信息
message String 请求接口异常信息
eventId Int 获取验证码事件 id
  • 请求示例
{
    "src": "QTGY",
	"params": {
		"sessionId": "4957a8a41f9d4952b68d2d7a6a57793f41995"
	}
}

1
2
3
4
5
6
7

返回示例

{
    "code": 0,
    "message": null,
    "updateMsg": null,
    "id": null,
    "result": {
        "eventId": 19628
    }
}
1
2
3
4
5
6
7
8
9

# 2.3 验证二重认证验证码

  • 接口地址:/userApi/smsVerify

  • 请求参数

参数名称 类型 说明 必填
sessionId String 用户登录之后生成的会话 id
eventId Int 获取验证码事件 id
authCode String 用户手机收到的验证码
  • 返回参数
参数名称 类型 说明 必填
code Int 0 表明是调用成功,其他值是异常信息
message String 请求接口异常信息
validateCode String 1:二重认证成功
  • 请求示例
{
    "src": "QTGY",
  "params": {
    "sessionId": "0e80926a05b8403e922e5ac1a1d76910130434",
    "eventId": 35895,
    "authCode": "2833"
  }
}
1
2
3
4
5
6
7
8
  • 返回示例
{
    "code": 0,
    "message": null,
    "updateMsg": null,
    "id": null,
   "result": {
        "validateCode": "1"
    }
}
1
2
3
4
5
6
7
8
9

# 2.4 交易解锁

登录恒生系统,返回用户相关资金账号。

服务端将用户交易密码加密后保存,同时返回用于解密的字符串 tradeKey,之后若接口需要交易密码,客户端传入该 tradeKey 即可。

  • 接口地址:/tradeApi/prepare

  • 请求参数

参数名称 类型 说明 必填
sessionId String 登录会话
clientNo String 交易账号
password String 交易密码
  • 返回参数
参数名称 类型 说明 必填
fundAccList String[] 资金账号列表
tradeKey String 对应用户交易密码,之后若接口需要交易密码,客户端传入该 tradeKey 即可。
  • 请求示例
{
  "src": "QTGY",
  "params": {
    "sessionId": "0e80926a05b8403e922e5ac1a1d76910130434",
    "clientNo": "1000002106",
    "password": "xxx"
  },
}
1
2
3
4
5
6
7
8
  • 返回示例
{
    "code": 0,
    "message": null,
    "updateMsg": null,
    "id": null,
    "result": {
        "fundAccList": [
            "100001862"
        ],
        "tradeKey": "CMYZ7UI9V93sWpX3IwZLHw=="
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

# 3 持仓查询

# 3.1 查询客户持仓

  • 请求地址:/tradeApi/getStockInfo

  • 请求参数

参数名称 类型 说明 必填
sessionId String 用户登录之后生成的会话 id
tradeAccount Int 交易账号
fundAccount String 现金账号
tradeKey String 交易密码解密串
  • 返回数据
参数名称 类型 说明 必填
assetId String 资产 ID(如 00700.HK)
stkName Int 股票名称
currentAmount double 当前数量
costPrice double 成本价
enableAmount double 可卖数量
marketValue double 市值
lastPrice double 最新价
moneyType double 币种类别
profit double 盈亏
profitPct double 盈亏百分比(如涨 2%则 profitPct=0.02)
  • 请求示例
{
  "src": "QTGY",
  "params": {
    "sessionId": "d542fc63a4074c71b6f0e571d229938a128783",
    "tradeAccount": "1000002106",
    "fundAccount": "100001862",
    "tradeKey": "xxx"
  }
}
1
2
3
4
5
6
7
8
9
  • 返回示例
{
	"code": 0,
	"message": "调用成功",
	"result": [
		{
			"assetId": "01628.HK",
			"costPrice": 2.54,
			"currency": "HKD",
			"currentAmount": 1000000.0,
			"enableAmount": 1000000.0,
			"incomeBalance": 0.0,
			"keepCostPrice": 2.54,
			"lastPrice": 2.54,
			"marketValue": 2540000.0,
			"profit": 810000.0,
			"profitPct": 0.31889763779527566,
			"stkName": "禹洲地产"
		}
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 4 交易下单

# 4.1 买入

  • 接口地址:/tradeApi/buy

  • 请求参数

参数名称 类型 说明 必填
fundAccount String 资金账号
tradeKey String 交易密码解密串
assetId String 资产 ID
amount Int 买入数量
price Double 买入价格
orderType OrderType 订单类型,如竞价单,限价单等(香港市场必填)
  • 返回参数
参数名称 类型 说明 必填
orderNo Int 订单号(委托编号)

# 4.2 卖出

  • 接口地址:/tradeApi/sell

  • 请求参数

参数名称 类型 说明 必填
fundAccount String 资金账号
tradeKey String 交易密码解密串
opStation String 设备标识
assetId String 资产 ID
amount Int 买入数量
price Double 买入价格
orderType OrderType 订单类型,如竞价单,限价单等(香港市场必填)
  • 返回参数
参数名称 类型 说明 必填
orderNo Int 订单号(委托编号)

# 4.3 订单修改

  • 接口地址:/tradeApi/modify

  • 请求参数

参数名称 类型 说明 必填
fundAccount String 资金账号
tradeKey String 交易密码解密串
opStation String 设备标识
orderNo String 订单号
assetId String 资产 ID
amount Int 买入数量
price Double 买入价格
orderType OrderType 订单类型,如竞价单,限价单等(香港市场必填)
  • 返回参数

# 4.4 订单撤销

  • 接口地址:/tradeApi/cancel

  • 请求参数

参数名称 类型 说明 必填
fundAccount String 资金账号
tradeKey String 交易密码解密串
orderNo String 订单号
assetId String 资产 ID
amount Int 买入数量
price Double 买入价格
orderType OrderType 订单类型,如竞价单,限价单等(香港市场必填)
  • 返回参数

# 4.5 查询可买数量

  • 接口地址:/tradeApi/getBuyAmount

  • 请求参数

参数名称 类型 说明 必填
fundAccount String 资金账号
tradeKey String 交易密码解密串
assetId String 资产 ID
price Double 买入价格
  • 返回参数
参数名称 类型 说明 必填
enableAmount Int 可买数量,单位:股

# 4.6.查询可卖出数量

  • 接口地址: /tradeApi/getSellAmount

  • 请求参数

参数名称 类型 说明 必填
fundAccount String 资金账号
tradeKey String 交易密码解密串
assetId String 资产 ID
  • 返回参数
参数名称 类型 说明 必填
enableAmount Int 可卖数量,单位:股

# 5. 查询委托

# 5.1 当日委托

  • 接口地址:/tradeApi/queryTodayOrder

  • 请求参数

参数名称 类型 说明 必填
fundAccount String 资金账号
tradeKey String 交易密码解密串
  • 返回参数
参数名称 类型 说明 必填
orderNo String 订单号
assetId String 资产 ID
stkName String 股票名称
orderAction OrderAction 买卖方向
orderType OrderType 订单类型,竞价单,限价单等
orderStatus String 状态
amount Double 订单数量
price Double 订单价格
dealAmount Double 成交数量
dealPrice Double 成交价格
dealBalance Double 成交金额
time String 时间,HH:mm:ss
cancelable Boolean 是否可撤
modifiable Boolean 是否可修改
  • 请求示例
{
  "src": "QTGY",
  "params": {
    "sessionId": "d542fc63a4074c71b6f0e571d229938a128783",
    "tradeAccount": "1000002106",
    "fundAccount": "100001862",
    "tradeKey": "CMYZ7UI9V93sWpX3IwZLHw=="
  }
}
1
2
3
4
5
6
7
8
9
  • 返回示例
{
	"code": 0,
	"message": "调用成功",
	"result": [
		{
			"orderType": "ELO",
			"amount": 1000.0,
			"orderNo": "9",
			"cancelable": false,
			"dealAmount": 1000.0,
			"orderStatus": "8",
			"dealPrice": 3.34,
			"dealBalance": 3340.0,
			"orderAction": "1",
            "stkName": "禹洲地产",
			"assetId": "01628.HK",
			"price": 3.34,
			"time": "14:12:51",
			"modifiable": false
		}
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 6. 数据字典

# 6.1 OrderStatus 订单状态

状态码 说明
0 No Register(未报)
1 Wait to Register(待报)
2 Host Registered(已报)
3 Wait for Cancel(已报待撤)
4 Wait for Cancel [ Partially Matched ] (部成待撤)
5 Partially Cancelled(部撤)
6 Cancelled(已撤)
7 Partially Filled(部成)
8 Filled(已成)
9 Host Reject(废单)
G 预埋单已撤

# 6.2 OrderAction 买卖方向

状态码 说明
1 买入
2 卖出

# 6.3 OrderType 订单类型

状态码 说明
AO 竞价盘
ALO 竞价限价盘
LO 限价盘
ELO 增强限价盘
SLO 特别限价盘