動態

詳情 返回 返回

用一個API接口批量查詢A股、港股、美股的K線數據 - 動態 詳情

在實際開發中,我們經常需要從多個股票市場中獲取行情數據,尤其是在構建交易所、量化交易系統或跨市場套利策略時,對接實時、多市場的行情接口幾乎是剛需。然而,市面上大部分的行情服務產品只支持單一市場,比如只提供 A 股或美股數據;即便支持多個市場,也往往需要分別調用不同的接口,增加了開發成本和維護複雜度。

特別是對於K線數據的實時獲取需求,不少接口要麼延遲大、要麼授權複雜、價格昂貴,真正能夠同時支持 A 股、港股和美股,並能批量返回多隻股票的實時K線數據的接口,可以説是少之又少。

在本文中,我們將使用Infoway的API接口,通過一次請求即可批量獲取三大市場(A股、港股、美股)的K線行情。這種接口特別適合用於:

  • 構建支持多市場的交易終端或交易所
  • 搭建量化交易系統(如 CTA、擇時、套利等)
  • 實時監控跨市場價格波動與機會

批量獲取K線

我們可以在一個HTTP請求中查詢A股、港股、和美股的K線:

package org.example.ws;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
 
public class HttpExample {
    public static void main(String[] args) {
        try {
            // 定義請求URL,包含A股、港股、美股代碼
            String apiUrl = "https://data.infoway.io/stock/batch_kline/1/10/000001.SZ%2C0700.HK%2CAMZN.US";
            URL url = new URL(apiUrl);
 
            // 創建HTTP連接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
 
            // 設置請求方法為GET
            connection.setRequestMethod("GET");
 
            // 設置請求頭
            connection.setRequestProperty("User-Agent", "Mozilla/5.0");
            connection.setRequestProperty("Accept", "application/json");
 
            // 先在官網 https://infoway.io 申請免費API Key
            connection.setRequestProperty("apiKey", "yourApikey");
 
            // 獲取響應碼
            int responseCode = connection.getResponseCode();
            System.out.println("HTTP code: " + responseCode);
 
            // 讀取響應內容
            BufferedReader reader;
            if (responseCode == HttpURLConnection.HTTP_OK) {
                reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            } else {
                reader = new BufferedReader(new InputStreamReader(connection.getErrorStream()));
            }
 
            String line;
            StringBuilder response = new StringBuilder();
 
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
 
            reader.close();
 
            // 打印響應內容
            System.out.println("message: " + response);
 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

返回示例

[
    {
        "s": "000001.SZ",        // 平安銀行 A股
        "o": "11.23",
        "h": "11.28",
        "l": "11.22",
        "c": "11.25",
        "pca": "0.02",
        "pfr": "0.18%",
        "v": "258400",
        "vw": "11.2458",
        "t": 1747550648097,
        "ty": 1
    },
    {
        "s": "0700.HK",          // 騰訊控股 港股
        "o": "385.50",
        "h": "386.90",
        "l": "383.20",
        "c": "384.10",
        "pca": "-1.40",
        "pfr": "-0.36%",
        "v": "923400",
        "vw": "384.93",
        "t": 1747550648097,
        "ty": 1
    },
    {
        "s": "AMZN.US",          // 亞馬遜 美股
        "o": "185.10",
        "h": "186.75",
        "l": "183.60",
        "c": "185.90",
        "pca": "0.80",
        "pfr": "0.43%",
        "v": "456200",
        "vw": "185.42",
        "t": 1747550648097,
        "ty": 1
    }
]
user avatar pulsgarney 頭像 ayuan01 頭像 jilodream 頭像 gushiio 頭像 ligaai 頭像 dalideshoushudao 頭像 deephub 頭像 immerse 頭像 shouke 頭像 zbooksea 頭像 infodator 頭像 god23bin 頭像
點贊 51 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.