通用



抢占行情设备访问权

对应的请求类:TigerHttpRequest(MethodName.GRAB_QUOTE_PERMISSION)

说明

当同一账号在多台设备同时使用时,行情数据仅在主设备上返回。若需在其他设备上查看行情,需抢占行情设备访问权,将当前设备设为主设备;若不切换设备,则无需进行此操作。

启动时默认抢占一次行情设备访问权。如需配置启动时不执行该操作,可在获取 TigerHttpClient 实例前配置 isAutoGrabPermission = false

ClientConfig.DEFAULT_CONFIG.isAutoGrabPermission = false;
TigerHttpClient client = TigerHttpClient.getInstance().clientConfig(ClientConfig.DEFAULT_CONFIG);

参数

返回

字段名称类型说明
namestring权限名称,具体权限取值参见下方说明
expireAtlong过期时间,时间戳格式,如为-1,表示无限制

name 字段对应的权限名称枚举值说明:

name 字段取值说明
usQuoteBasic美股 L1 行情权限
usStockQuoteLv2Totalview美股 L2 行情权限
hkStockQuoteLv2大陆地区用户赠送的港股 L2 权限
hkStockQuoteLv2Global非大陆地区用户购买的港股 L2 权限
usOptionQuote美股期权 L1 行情权限
CBOEFuturesQuoteLv2芝加哥期权交易所 L2 权限
HKEXFuturesQuoteLv2香港期货交易所 L2 权限
SGXFuturesQuoteLv2新加坡交易所 L2 权限
OSEFuturesQuoteLv2大阪交易所 L2 权限

示例

TigerHttpRequest request = new TigerHttpRequest(MethodName.GRAB_QUOTE_PERMISSION);
String bizContent = AccountParamBuilder.instance()
        .buildJson();
request.setBizContent(bizContent);
TigerHttpResponse response = client.execute(request);

返回示例

{
  "code": 0,
  "message": "success",
  "timestamp": 1525938835697,
  "data": [
    {
      "name": "usQuoteBasic",
      "expireAt": 1621931026000
    }
  ]
}

请求频率

基础限流为 10 次/分钟



获取行情权限列表

对应的请求类:TigerHttpRequest(MethodName.GET_QUOTE_PERMISSION)

说明

查询当前所拥有的行情权限。

如果当前请求设备不持有行情设备访问权,接口返回空列表。

参数

返回

字段名称类型说明
namestring权限名称
expireAtlong过期时间,时间戳格式,如为 -1,表示无限制

示例

TigerHttpRequest request = new TigerHttpRequest(MethodName.GET_QUOTE_PERMISSION);
String bizContent = AccountParamBuilder.instance()
        .buildJson();
request.setBizContent(bizContent);
TigerHttpResponse response = client.execute(request);

返回示例

{
  "code": 0,
  "message": "success",
  "timestamp": 1651734899995,
  "data": [
    {
      "name": "usStockQuote",
      "expireAt": 1698767999000
    },
    {
      "name": "usStockQuoteLv2Arca",
      "expireAt": 1698767999000
    },
    {
      "name": "usStockQuoteLv2Totalview",
      "expireAt": 1698767999000
    },
    {
      "name": "hkStockQuoteLv2",
      "expireAt": 1698767999000
    },
    {
      "name": "usOptionQuote",
      "expireAt": 1698767999000
    },
    {
      "name": "hkStockQuoteLv2",
      "expireAt": -1
    }
  ]
}

请求频率

基础限流为 10 次/分钟


刷新 token

对应的请求类:UserTokenRefreshRequest

说明

只有香港牌照 TBHK 需要使用 Token(用户牌照可以登录开发者信息页面查看)

刷新 Token 接口,只有本地 Token 有效才能刷新成功,如果 Token 已失效,需要到开发者信息注册页面刷新 Token 后导出到本地文件tiger_openapi_token.properties后使用。
刷新成功后会同时更新本地tiger_openapi_token.properties文件,并更新内存中 ClientConfig 的 Token 值,可配置自动刷新周期的天数(refreshTokenIntervalDays)和具体时间(refreshTokenTime)。如需自行刷新 Token,请配置ClientConfig.DEFAULT_CONFIG.isAutoRefreshToken = false,并自行刷新 Token。
Token 有效期为 15 天,SDK 默认不刷新。

参数

无,每次请求 SDK 会把 Token 自动添加到 Http 请求头部Authorization中,服务端会对 Token 进行校验。

返回

字段名称类型说明
tigerIdstringtigerId
licensestring牌照信息
tokenstringtoken 字符串
createTimelong创建时间
expiredTimelong过期时间

示例

    UserTokenRefreshRequest request = new UserTokenRefreshRequest();
    UserTokenResponse response = TigerHttpClient.getInstance().execute(request);
    if (response.isSuccess()) {
      System.out.println(JSONObject.toJSONString(response));
      List<RefreshTokenCallback> callbackList = TokenManager.getInstance().getCallbackList();
      for (RefreshTokenCallback callback : callbackList) {
        try {
          System.out.println(callback.getClass() + " tokenChange() is called");
          callback.tokenChange(ClientConfig.DEFAULT_CONFIG,
              ClientConfig.DEFAULT_CONFIG.token,
              response.getUserToken());
        } catch (Throwable th) {
          th.printStackTrace();
        }
      }
    } else {
      System.out.println("response error:" + response.getMessage());
    }

返回示例

{
    "code":0,
    "data":{
        "createTime":1676547570673,
        "expiredTime":1677152370673,
        "license":"TBHK",
        "tigerId":"YOUR_TIGER_ID",
        "token":"MTY3NjU0NzU3MDY3MywxNjc3MTUyMzcwNjczCJ/FLxjALbWg0cVW3R4bHg=="
    },
    "message":"success",
    "sign":"Yufg4/bYSeuvZz3b+7MsSAde+lgUCNJskle1zbOSxta66b9h0LjfZAmHNpx1tz4HnPK1AGfS9cdNaC964ts7Uakvr/kKzFEN3y5CfB8UgRsPKSR75z1GwSFq5v6gc/1hEAdrFdcHTmRbHhT362E5GYEuvvlfwIEX60/GYveSHIo=",
    "success":true,
    "timestamp":1676547570681
}

请求频率

基础限流为 10 次/分钟



获取历史行情额度

对应的请求类:KlineQuotaRequest

说明

根据用户等级统计用户已使用和剩余可订阅的 symbol 个数(同一股票的不同期权只占用一个 symbol,其他规则可参考历史行情限制&订阅限制

参数

参数类型是否必填描述
with_detailsboolNo是否返回已请求的 symbol 详情,默认不返回

返回

com.tigerbrokers.stock.openapi.client.https.response.quote.KlineQuotaResponsesource

返回数据可通过KlineQuotaResponse.getQuotaItems()方法访问,返回QuotaItem对象列表,其中com.tigerbrokers.stock.openapi.client.https.domain.quote.item.QuotaItem 属性如下:

字段类型说明
usedint已使用标的数量
remainint剩余可用标的数量
methodString额度分类:kline(股票 K 线)、future_kline(期货 K 线)、option_kline(期权 K 线)
detailsList<String>已使用的标的代码列表;仅在 with_details=true 时填充
symbolDetailsList<SymbolDetail>已使用的标的及其最后请求时间;仅在 with_details=true 时填充

SymbolDetail类型:

字段类型说明
codestring股票代码
lastRequestTimestampstring最后一次请求的 Unix 毫秒时间戳,以字符串表示

示例

KlineQuotaRequest request = KlineQuotaRequest.newRequest(Boolean.TRUE);

TigerHttpClient client = TigerHttpClient.getInstance().clientConfig(
      ClientConfig.DEFAULT_CONFIG);
KlineQuotaResponse response = client.execute(request);
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSON(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
  "code": 0,
  "message": "success",
  "timestamp": 1750851389623,
  "sign": "myCpSB+GFgzlgOMnyIyD6yXib0m5LjKvRq+gT3sARfX4Z6AgNib/s0mpVniQs+H85yP1GlLHmAE/pCCKPNvGKyITynUiPWAIippg/o3Z4W//KlA868LaukA0Y+3fmqB4pnDQgoMH4zdcKEGgYS6X6bTPDCPTWCDAk43rXGJW94g=",
  "quotaItems": [
    {
      "remain": 200,
      "used": 0,
      "method": "kline",
      "details": [],
      "symbolDetails": []
    },
    {
      "remain": 20,
      "used": 0,
      "method": "future_kline",
      "details": [],
      "symbolDetails": []
    },
    {
      "remain": 197,
      "used": 3,
      "method": "option_kline",
      "details": [
        "TCH.HK",
        "ALB.HK",
        "LNI.HK"
      ],
      "symbolDetails": [
        {
          "code": "TCH.HK",
          "lastRequestTimestamp": "1750851341848"
        },
        {
          "code": "ALB.HK",
          "lastRequestTimestamp": "1750851341848"
        },
        {
          "code": "LNI.HK",
          "lastRequestTimestamp": "1750851341848"
        }
      ]
    }
  ],
  "success": true
}

请求频率

基础限流为 10 次/分钟


Did this page help you?