博客 / 詳情

返回

德國股票交易所 數據源API對接 法蘭克福證券交易所 (FWB/Xetra)

1. 基礎配置

  • 接口域名: https://api.stocktv.top
  • 德國 Country ID: 17
  • 主要交易所: 法蘭克福證券交易所 (FWB/Xetra)
  • 認證方式: URL 參數 key=您的API密鑰

2. 核心接口流程

對接德國股票的核心邏輯與其它國家一致:先查列表獲取 PID -\> 再查 K 線或實時行情

第一步:獲取德國股票列表

查詢德國市場的股票代碼、名稱及系統 PID。

  • 接口: /stock/stocks
  • 方法: GET
  • 參數:

    • countryId: 17 (必填)
    • pageSize: 20 (建議設置)
    • page: 1
  • 請求示例:

    GET https://api.stocktv.top/stock/stocks?countryId=17&pageSize=20&page=1&key=YOUR_KEY
  • 響應關鍵字段:

    • id: PID (後續獲取K線必須使用此ID)
    • symbol: 股票代碼 (如 "BMW", "VOW3", "SIE")
    • name: 公司名稱 (如 "BMW AG", "Volkswagen")
    • last: 最新價格 (歐元 EUR)

第二步:獲取德國指數 (DAX 40)

獲取德國最重要的 DAX 指數行情。

  • 接口: /stock/indices
  • 方法: GET
  • 參數: countryId=17
  • 請求示例:

    GET https://api.stocktv.top/stock/indices?countryId=17&key=YOUR_KEY
  • 常見指數:

    • DAX: 德國主要藍籌股指數
    • MDAX: 中盤股指數
    • TecDAX: 科技股指數

第三步:獲取 K 線數據

使用第一步獲取的 id (PID) 查詢歷史數據。

  • 接口: /stock/kline
  • 方法: GET
  • 參數:

    • pid: 股票ID (例如 BMW 的 PID)
    • interval: 週期 (P1D=日線, PT1H=1小時, PT5M=5分鐘)
  • 請求示例:

    GET https://api.stocktv.top/stock/kline?pid=12345&interval=P1D&key=YOUR_KEY

3. 代碼示例 (JavaScript/Node.js)

以下代碼展示瞭如何獲取德國股票列表,並自動提取第一隻股票的 PID 來查詢 K 線數據。

// 配置區
const API_KEY = 'YOUR_API_KEY'; // 請替換您的 Key
const BASE_URL = 'https://api.stocktv.top';
const GERMANY_ID = 17; // 德國市場 ID

/**
 * 1. 獲取德國股票列表
 */
async function getGermanMarket() {
    const url = `${BASE_URL}/stock/stocks?countryId=${GERMANY_ID}&pageSize=10&page=1&key=${API_KEY}`;
    
    try {
        console.log(`正在獲取德國股票列表 (ID:${GERMANY_ID})...`);
        const response = await fetch(url);
        const result = await response.json();

        if (result.code === 200) {
            const stocks = result.data.records;
            console.log(`獲取成功,共 ${result.data.total} 條數據。前 3 條如下:`);
            
            // 打印前3條供參考
            stocks.slice(0, 3).forEach(stock => {
                console.log(`- [${stock.symbol}] ${stock.name} | PID: ${stock.id} | Price: €${stock.last}`);
            });

            // 如果有數據,演示如何獲取第一隻股票的 K 線
            if (stocks.length > 0) {
                const targetPid = stocks[0].id;
                const targetName = stocks[0].name;
                await getKlineData(targetPid, targetName);
            }
        } else {
            console.error('獲取列表失敗:', result.message);
        }
    } catch (error) {
        console.error('網絡請求錯誤:', error);
    }
}

/**
 * 2. 獲取單隻股票 K 線數據
 */
async function getKlineData(pid, name) {
    // 請求日線數據 (P1D)
    const url = `${BASE_URL}/stock/kline?pid=${pid}&interval=P1D&key=${API_KEY}`;
    
    try {
        console.log(`\n正在獲取 [${name}] (PID:${pid}) 的日線數據...`);
        const response = await fetch(url);
        const result = await response.json();

        if (result.code === 200 && result.data) {
            const klineData = result.data;
            console.log(`成功獲取 ${klineData.length} 條 K 線數據。最新一條:`);
            const latest = klineData[klineData.length - 1];
            console.log(`時間: ${new Date(latest.time).toLocaleDateString()}`);
            console.log(`收盤價: ${latest.close}`);
            console.log(`成交量: ${latest.volume}`);
        } else {
            console.log('該股票暫無 K 線數據');
        }
    } catch (error) {
        console.error('K線請求錯誤:', error);
    }
}

// 執行主函數
getGermanMarket();

4. 注意事項

  1. 貨幣單位: 德國市場返回的價格單位通常為 歐元 (EUR)
  2. 交易時間: 德國法蘭克福交易所的交易時間通常為中歐時間 (CET) 09:00 - 17:30。在獲取實時 WebSocket 數據時請留意該時段。
  3. 主要公司代碼示例:

    • SAP: SAP SE
    • SIE: Siemens AG (西門子)
    • ALV: Allianz SE (安聯)
    • DTE: Deutsche Telekom (德國電信)
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.