Java SDK REST API 和 WebSocket 實時推送接口 金融數據API文檔 SDK & 開發工具 iTick 官方 Java SDK,提供基礎、股票、指數、期貨、基金、外匯、加密貨幣數據的 REST API 查詢和 WebSocket 實時數據訂閱功能。

Java SDK 文檔

Java 語言版本的 iTick API SDK,提供基礎、股票、指數、期貨、基金、外匯、加密貨幣數據的 REST API 查詢和 WebSocket 實時數據訂閱功能。

功能特性

  • 支持 REST API 查詢基礎、股票、指數、期貨、基金、外匯、加密貨幣數據
  • 支持 WebSocket 實時數據訂閱
  • 自動重連機制
  • 心跳保持連接
  • 回調式事件處理

安裝

Maven

在您的 pom.xml 中添加以下依賴:

<dependency>
    <groupId>io.itick</groupId>
    <artifactId>sdk</artifactId>
    <version>0.1.1</version>
</dependency>

Gradle

在您的 build.gradle 中添加以下依賴:

implementation 'io.itick:sdk:0.1.1'

從源碼構建

cd java
mvn clean install

快速開始

初始化客戶端

import io.itick.sdk.Client;

public class Example {
    public static void main(String[] args) {
        String token = "your_api_token";
        Client client = new Client(token);
    }
}

REST API 使用

外匯數據查詢

// 獲取外匯實時成交
var tick = client.getForexTick("GB", "EURUSD");
System.out.println(tick);

// 獲取外匯實時報價
var quote = client.getForexQuote("GB", "EURUSD");
System.out.println(quote);

// 獲取外匯實時盤口
var depth = client.getForexDepth("GB", "EURUSD");
System.out.println(depth);

// 獲取外匯歷史K線
var kline = client.getForexKline("GB", "EURUSD", 2, 10, null);
for (var k : kline) {
    System.out.println(k);
}

股票數據查詢

// 獲取股票實時成交
var tick = client.getStockTick("US", "AAPL");
System.out.println(tick);

// 獲取股票實時報價
var quote = client.getStockQuote("US", "AAPL");
System.out.println(quote);

// 獲取股票實時盤口
var depth = client.getStockDepth("US", "AAPL");
System.out.println(depth);

// 獲取股票歷史K線
var kline = client.getStockKline("US", "AAPL", 2, 10, null);
for (var k : kline) {
    System.out.println(k);
}

加密貨幣數據查詢

// 獲取加密貨幣實時成交
var tick = client.getCryptoTick("BA", "BTCUSDT");
System.out.println(tick);

// 獲取加密貨幣實時報價
var quote = client.getCryptoQuote("BA", "BTCUSDT");
System.out.println(quote);

// 獲取加密貨幣實時盤口
var depth = client.getCryptoDepth("BA", "BTCUSDT");
System.out.println(depth);

// 獲取加密貨幣歷史K線
var kline = client.getCryptoKline("BA", "BTCUSDT", 2, 10, null);
for (var k : kline) {
    System.out.println(k);
}

WebSocket 使用

SDK 提供了增強的 WebSocket 功能,包括自動重連和心跳保持,用戶無需手動管理連接狀態。

設置回調函數

// 設置消息處理器
client.setMessageHandler(message -> {
    System.out.println("Received WebSocket message: " + message);
});

// 設置錯誤處理器
client.setErrorHandler(error -> {
    System.err.println("WebSocket error: " + error.getMessage());
});

// 設置打開處理器
client.setOpenHandler(() -> {
    System.out.println("WebSocket connected");
});

// 設置關閉處理器
client.setCloseHandler(() -> {
    System.out.println("WebSocket closed");
});

連接和訂閱

``java // 連接外匯 WebSocket client.connectForexWebSocket();

// 發送訂閱消息 client.sendWebSocketMessage("{"action": "subscribe", "codes": "EURUSD"}");

// 等待接收消息 Thread.sleep(5000);

// 檢查連接狀態 System.out.println("WebSocket connected: " + client.isWebSocketConnected());

// 關閉 WebSocket client.closeWebSocket();


#### 其他 WebSocket 連接

``java
// 連接股票 WebSocket
client.connectStockWebSocket();

// 連接加密貨幣 WebSocket
client.connectCryptoWebSocket();

API 接口列表

基礎 (Basics)

方法說明
getSymbolList獲取符號列表
getSymbolHolidays獲取節假日信息

股票 (Stock)

方法說明
getStockInfo獲取股票信息
getStockIPO獲取股票IPO信息
getStockSplit獲取股票分拆信息
getStockTick獲取股票實時成交
getStockQuote獲取股票實時報價
getStockDepth獲取股票實時盤口
getStockKline獲取股票歷史K線
getStockTicks獲取股票批量實時成交
getStockQuotes獲取股票批量實時報價
getStockDepths獲取股票批量實時盤口
getStockKlines獲取股票批量歷史K線
connectStockWebSocket連接股票 WebSocket

指數 (Indices)

方法說明
getIndicesTick獲取指數實時成交
getIndicesQuote獲取指數實時報價
getIndicesDepth獲取指數實時盤口
getIndicesKline獲取指數歷史K線
getIndicesTicks獲取指數批量實時成交
getIndicesQuotes獲取指數批量實時報價
getIndicesDepths獲取指數批量實時盤口
getIndicesKlines獲取指數批量歷史K線
connectIndicesWebSocket連接指數 WebSocket

期貨 (Futures)

方法說明
getFutureTick獲取期貨實時成交
getFutureQuote獲取期貨實時報價
getFutureDepth獲取期貨實時盤口
getFutureKline獲取期貨歷史K線
getFutureTicks獲取期貨批量實時成交
getFutureQuotes獲取期貨批量實時報價
getFutureDepths獲取期貨批量實時盤口
getFutureKlines獲取期貨批量歷史K線
connectFutureWebSocket連接期貨 WebSocket

基金 (Funds)

方法說明
getFundTick獲取基金實時成交
getFundQuote獲取基金實時報價
getFundDepth獲取基金實時盤口
getFundKline獲取基金歷史K線
getFundTicks獲取基金批量實時成交
getFundQuotes獲取基金批量實時報價
getFundDepths獲取基金批量實時盤口
getFundKlines獲取基金批量歷史K線
connectFundWebSocket連接基金 WebSocket

外匯 (Forex)

方法說明
getForexTick獲取外匯實時成交
getForexQuote獲取外匯實時報價
getForexDepth獲取外匯實時盤口
getForexKline獲取外匯歷史K線
getForexTicks獲取外匯批量實時成交
getForexQuotes獲取外匯批量實時報價
getForexDepths獲取外匯批量實時盤口
getForexKlines獲取外匯批量歷史K線
connectForexWebSocket連接外匯 WebSocket

加密貨幣 (Crypto)

方法說明
getCryptoTick獲取加密貨幣實時成交
getCryptoQuote獲取加密貨幣實時報價
getCryptoDepth獲取加密貨幣實時盤口
getCryptoKline獲取加密貨幣歷史K線
getCryptoTicks獲取加密貨幣批量實時成交
getCryptoQuotes獲取加密貨幣批量實時報價
getCryptoDepths獲取加密貨幣批量實時盤口
getCryptoKlines獲取加密貨幣批量歷史K線
connectCryptoWebSocket連接加密貨幣 WebSocket

WebSocket 功能說明

自動重連

SDK 內置自動重連機制,當網絡異常或連接斷開時,會自動嘗試重新連接:

  • 重連間隔:5 秒
  • 最大重連次數:10 次
  • 重連成功後自動恢復訂閱

心跳保持

SDK 自動維護 WebSocket 連接的心跳:

  • 心跳間隔:30 秒
  • 自動發送 ping 消息保持連接活躍

連接狀態檢查

``java // 檢查 WebSocket 是否連接 boolean connected = client.isWebSocketConnected();


## 完整示例

``java
import io.itick.sdk.Client;

public class Main {
    public static void main(String[] args) {
        try {
            // 初始化客戶端
            String token = "your_api_token";
            Client client = new Client(token);

            // 設置 WebSocket 消息處理器
            client.setMessageHandler(message -> {
                System.out.println("Received WebSocket message: " + message);
            });

            // 設置 WebSocket 錯誤處理器
            client.setErrorHandler(error -> {
                System.err.println("WebSocket error: " + error.getMessage());
            });

            // 測試 REST API
            System.out.println("Testing forex tick...");
            var tick = client.getForexTick("GB", "EURUSD");
            System.out.println(tick);

            // 測試 WebSocket
            System.out.println("\nTesting WebSocket...");
            client.connectForexWebSocket();

            // 發送訂閱消息
            client.sendWebSocketMessage("{\"action\": \"subscribe\", \"codes\": [\"EURUSD\"]}");

            // 等待接收消息
            Thread.sleep(5000);

            // 檢查連接狀態
            System.out.println("WebSocket connected: " + client.isWebSocketConnected());

            // 關閉 WebSocket
            client.closeWebSocket();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

系統要求

  • Java 11 或更高版本
  • Maven 3.6 或更高版本(用於構建)

依賴項

  • OkHttp 4.10.0 - HTTP 客戶端
  • Java-WebSocket 1.5.3 - WebSocket 客戶端
  • Gson 2.10.1 - JSON 解析
  1. Python SDK

    iTick 官方 Python SDK,提供基礎、股票、指數、期貨、基金、外匯、加密貨幣數據的 REST API 查詢和 WebSocket 實時數據訂閱功能。

  2. Go SDK

    iTick 官方 Go SDK,提供基礎、股票、指數、期貨、基金、外匯、加密貨幣數據的 REST API 查詢和 WebSocket 實時數據訂閱功能。