德国股票交易所 数据源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 (德国电信)
posted @ 2025-12-04 15:32  CryptoRzz  阅读(6)  评论(0)    收藏  举报