在全球資產配置日益流行的今天,印度股市(NSE/BSE)因其高增長潛力成為了開發者和量化團隊關注的焦點。然而,尋找穩定、易用且覆蓋全面的印度市場數據源往往是一個痛點。
本文將演示如何利用 StockTV API 快速接入印度股票市場數據,涵蓋從獲取股票列表、指數行情到繪製 K 線圖的全流程。
為什麼選擇這個方案?
根據 API 文檔,該接口具有以下特點:
- 覆蓋全面:支持 NSE(印度國家證券交易所)和 BSE(孟買證券交易所)。
- 數據豐富:包含實時報價、歷史 K 線、指數(如 Nifty 50)、IPO 日曆及漲跌幅榜。
- 開發友好:採用標準的 RESTful JSON 格式,且提供 WebSocket 實時推送。
準備工作
在開始之前,你需要獲取一個 API key。所有請求都需要在 URL 參數中帶上 key=你的密鑰。
- API 基礎地址:
https://api.stocktv.top - 印度市場 Country ID:
14
第一步:獲取市場概覽與股票列表
要獲取數據,首先需要知道股票在系統中的唯一標識符(pid 或 id)。我們需要調用市場列表接口,並指定 countryId=14(代表印度)。
接口地址:
GET /stock/stocks?countryId=14&pageSize=10&page=1&key=YOUR_KEY
返回數據示例:
{
"code": 200,
"data": {
"records": [
{
"id": 946725, // 重要:這是 PID,後續查K線要用
"name": "Inventure Growth Securities",
"symbol": "IGSL",
"exchangeId": 46, // 46 代表 NSE
"last": 2.46, // 最新價
"chgPct": -20.13, // 漲跌幅
"countryNameTranslated": "India"
}
]
}
}
注:你可以通過 exchangeId 區分 NSE (46) 和 BSE (74)。
第二步:獲取主要指數 (Nifty 50)
印度市場的風向標是 Nifty 50 和 Sensex。我們可以通過指數接口獲取實時行情。
接口地址:
GET /stock/indices?countryId=14&flag=IN&key=YOUR_KEY
代碼示例 (JavaScript/Node.js):
const API_KEY = 'YOUR_API_KEY';
async function getIndianIndices() {
const url = `https://api.stocktv.top/stock/indices?countryId=14&flag=IN&key=${API_KEY}`;
try {
const response = await fetch(url);
const result = await response.json();
// 查找 Nifty 50
const nifty = result.data.find(item => item.name === "Nifty 50");
console.log(`Nifty 50 最新點位: ${nifty.last}, 漲跌: ${nifty.chgPct}%`);
} catch (error) {
console.error("獲取指數失敗", error);
}
}
第三步:獲取 K 線數據 (繪製圖表)
這是開發交易面板或看盤軟件最核心的部分。接口支持多種時間週期,格式採用 ISO 8601 標準(如 PT1M 代表 1分鐘,P1D 代表 1天)。
接口地址:
GET /stock/kline?pid={股票ID}&interval={週期}&key=YOUR_KEY
參數説明:
pid: 第一步中獲取的id。interval:PT1M(1分),PT15M(15分),PT1H(1小時),P1D(日線) 等。
實戰:獲取 Reliance Industries 的日線數據
async function getKlineData(pid) {
// P1D 代表日線數據
const url = `https://api.stocktv.top/stock/kline?pid=${pid}&interval=P1D&key=${API_KEY}`;
const response = await fetch(url);
const json = await response.json();
// 轉換數據格式以適配前端圖表庫(如 ECharts 或 KlineCharts)
const chartData = json.data.map(item => ({
timestamp: item.time, // 時間戳
open: item.open, // 開盤
high: item.high, // 最高
low: item.low, // 最低
close: item.close, // 收盤
volume: item.volume // 成交量
}));
return chartData;
}
進階功能:IPO 日曆與漲跌榜
除了基礎行情,API 還提供了一些特色數據,非常適合做市場熱點分析。
- IPO 新股日曆:
查詢印度即將上市或已上市的股票。
GET /stock/getIpo?countryId=14&type=1&key=YOUR_KEY(type=1表示未上市) - 漲跌幅排行榜:
快速發現市場中波動最大的股票。
GET /stock/updownList?countryId=14&type=1&key=YOUR_KEY(type=1漲幅榜,2跌幅榜)
總結
通過 StockTV 的 API,我們可以非常便捷地構建一個印度股市行情看板。其核心邏輯總結如下:
- 鎖定 Country ID = 14。
- 通過 列表接口 獲取 PID。
- 通過 K 線接口 獲取歷史數據用於繪圖。
- 利用 IPO 和排行榜接口 豐富應用內容。
如果你正在開發全球化的金融應用,這套接口能夠極大降低對接印度市場的門檻。