在實際開發中,我們經常需要從多個股票市場中獲取行情數據,尤其是在構建交易所、量化交易系統或跨市場套利策略時,對接實時、多市場的行情接口幾乎是剛需。然而,市面上大部分的行情服務產品只支持單一市場,比如只提供 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
}
]