通用

大约 6 分钟

抢占行情权限

对应的请求类: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字段取值说明
hkStockQuoteLv2港股Lv2权限,大陆IP赠送免费的港股API行情,无法单独购买,大陆地区用户免费赠送
hkStockQuoteLv2Global港股Lv2权限,提供实时报价数据,10档买卖盘口,逐笔成交明细以及经纪队列,非大陆用户需购买
usQuoteBasic美股Lv1行情,购买API行情后,可以在API中获取交易所上市证券(包括美股正股和 ETF,不包括美股期货和美股期权)在内的Lv1实时行情信息
usStockQuoteLv2Totalview美股Lv2行情,购买API行情后,可以在API中获取交易所上市证券(包括美股正股和 ETF,不包括美股期货和美股期权)在内的行情信息
usOptionQuote美股期权Lv1,数据基于OPRA,展示基于16家交易所报价的最新价和最优买卖一档数据
CMEFuturesQuoteLv2芝加哥商品交易所Lv2权限,购买芝加哥商品交易所Lv2行情数据后,您可以通过API获取在CME交易的期货的实时市场数据。CME交易的期货品类包含纳斯达克、标普500指数期货以及汇率期货等。
CBOTFuturesQuoteLv2芝加哥期货交易所Lv2权限,购买芝加哥期货交易所Lv2行情数据后,您可以通过API获取在CBOT交易的期货的实时市场数据,CBOT交易的期货品类包含道琼斯指数期货、农产品和利率期货等。
CBOEFuturesQuoteLv2芝加哥期权交易所Lv2权限,购买后可通过API获取在芝加哥期权交易所交易的期货的L2实时行情数据
NYMEXFuturesQuoteLv2纽约商业交易所Lv2权限,购买纽约商业交易所Lv2行情数据后,您可以通过API获取在NYMEX交易的期货的实时市场数据。NYMEX交易的期货品类包含美原油、天然气等能源期货。
COMEXFuturesQuoteLv2纽约商品交易所Lv2权限,购买纽约商品交易所Lv2行情数据后,您可以通过API获取在COMEX交易的期货的实时市场数据。COMEX交易的期货品类包含黄金、白银等金属期货等。
HKEXFuturesQuoteLv2香港交易所Lv2权限,香港期货交易所Lv2行情权限包含香港期货L2与香港期权L2行情数据(大陆用户可免费获取期权L2行情,无需单独购买)
SGXFuturesQuoteLv2新加坡交易所Lv2权限,购买后可通过API获取在新加坡期货交易所交易的期货的L2行情数据
OSEFuturesQuoteLv2大阪交易所Lv2权限,购买后可通过API获取在日本大阪期货交易所交易的期货的L2实时行情数据
EUREXFuturesQuoteLv2欧洲交易所Lv2权限,购买后可通过API获取在欧洲交易所交易的期货的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后使用。

token有效期为15天,sdk默认行为:每5天刷新一次token,刷新成功后会同时更新本地tiger_openapi_token.properties文件,并更新内存中ClientConfig的token值,可配置自动刷新周期的天数(refreshTokenIntervalDays)和具体时间(refreshTokenTime)。如需自行刷新token,请配置ClientConfig.DEFAULT_CONFIG.isAutoRefreshToken = false,并自行刷新token

参数

无,每次请求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.KlineQuotaResponsesourceopen in new window

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

字段类型说明
usedint已使用数量
remainint剩余数量
methodStringapi接口(kline:股票K线; future_kline:期货K线; option_kline:期权K线; history_timeline:股票历史分时
detailsList<String>已使用的标的列表

示例

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

KlineQuotaResponse response = client.execute(
        KlineQuotaRequest.newRequest(Boolean.TRUE));
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSON(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
    "code":0,
    "data":[
        {
            "details":[
                "AAPL",
                "CCEP"
            ],
            "method":"kline",
            "remain":1998,
            "used":2
        },
        {
            "details":[
                "XC2307",
                "ES2306",
                "JPY2306"
            ],
            "method":"future_kline",
            "remain":197,
            "used":3
        },
        {
            "details":[
                "AAPL"
            ],
            "method":"option_kline",
            "remain":1999,
            "used":1
        },
        {
            "details":[],
            "method":"history_timeline",
            "remain":2000,
            "used":0
        }
    ],
    "message":"success",
    "sign":"aVVcc9ULHPQpDDUR4c7jKlB+TM49aJtyjpbKXiZhaSwbGzIKLtl+1UEQKjZjWMOOMIHsD5GId5Yod3cidPYvP0pH2HH72m6q3pyQdFl5r3cnSZ82SS1zwgPQaPP4NvMsgoeh98/iRm69S/1LUKsToIivF3ztkaepj/g0n0IT2lA=",
    "success":true,
    "timestamp":1687320236018
}
上次编辑于: