动态

详情 返回 返回

用一個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.