通用

抢占行情权限

对应的请求类: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行情权限
CMEFuturesQuoteLv2芝加哥商品交易所L2权限
CBOTFuturesQuoteLv2芝加哥期货交易所L2权限
COMEXFuturesQuoteLv2纽约商品交易所L2权限
NYMEXFuturesQuoteLv2纽约商业交易所L2权限
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
    }
  ]
}

获取行情权限列表

对应的请求类: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
    }
  ]
}

刷新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":"20150001",
        "token":"MTY3NjU0NzU3MDY3MywxNjc3MTUyMzcwNjczCJ/FLxjALbWg0cVW3R4bHg=="
    },
    "message":"success",
    "sign":"Yufg4/bYSeuvZz3b+7MsSAde+lgUCNJskle1zbOSxta66b9h0LjfZAmHNpx1tz4HnPK1AGfS9cdNaC964ts7Uakvr/kKzFEN3y5CfB8UgRsPKSR75z1GwSFq5v6gc/1hEAdrFdcHTmRbHhT362E5GYEuvvlfwIEX60/GYveSHIo=",
    "success":true,
    "timestamp":1676547570681
}

获取历史行情额度

对应的请求类: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剩余数量
methodStringapi 接口名(kline:股票K线; future_kline:期货K线; option_kline:期权K线;)
symbolDetailsList<SymbolDetail>已使用的标的列表,包括每个标的的最后拉取时间

SymbolDetail类型:

字段类型说明
codestring股票代码
lastRequestTimestampstring最后一次拉取的时间字符串

示例

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",
      "symbolDetails": []
    },
    {
      "remain": 20,
      "used": 0,
      "method": "future_kline",
      "symbolDetails": []
    },
    {
      "remain": 197,
      "used": 3,
      "method": "option_kline",
      "symbolDetails": [
        {
          "code": "TCH.HK",
          "lastRequestTimestamp": "1750851341848"
        },
        {
          "code": "ALB.HK",
          "lastRequestTimestamp": "1750851341848"
        },
        {
          "code": "LNI.HK",
          "lastRequestTimestamp": "1750851341848"
        }
      ]
    }
  ],
  "success": true
}