金融数据连接器 v2.0(Data Bridge)
使用内置 dataBridgePull() 函数获取金融数据,无需手写 XHR。
获取综合财务数据
var resp = dataBridgePull("yahoo-finance", "stock_info", { ticker: "AAPL" });
if (!resp || !resp.ok) return "获取数据失败: " + (resp ? resp.error : "网络错误");
var d = resp.data;
// d.summary — 公司概况
// d.keyStats — 估值指标
// d.incomeStatements — 历年损益表
// d.balanceSheets — 历年资产负债表
// d.cashFlows — 历年现金流量表
获取历史价格
var resp = dataBridgePull("yahoo-finance", "stock_price", {
ticker: "AAPL",
range: "1y",
interval: "1d"
});
if (!resp || !resp.ok) return "获取价格数据失败";
var prices = resp.data.prices; // [{date, open, high, low, close, volume}, ...]
数据字段参考
| 路径 |
字段 |
说明 |
d.summary |
shortName, sector, industry, currency, currentPrice, totalRevenue, grossProfit, netIncome, operatingCashflow, freeCashflow, totalCash, totalDebt, grossMargins, operatingMargins, profitMargins, ebitdaMargins, revenueGrowth, earningsGrowth, debtToEquity, returnOnEquity, returnOnAssets, fullTimeEmployees |
最新汇总 |
d.keyStats |
beta, trailingPE, forwardPE, priceToBook, enterpriseValue, enterpriseToRevenue, enterpriseToEbitda, pegRatio, sharesOutstanding, bookValue, dividendYield, marketCap |
估值指标 |
d.incomeStatements[i] |
endDate, totalRevenue, costOfRevenue, grossProfit, operatingIncome, netIncome, ebit, ebitda, interestExpense, taxProvision, researchDevelopment, sellingGeneralAdministrative |
损益表 |
d.balanceSheets[i] |
endDate, totalAssets, totalCurrentAssets, totalLiabilitiesNetMinorityInterest, totalCurrentLiabilities, stockholdersEquity, cashAndCashEquivalents, longTermDebt, totalDebt, netDebt, propertyPlantEquipment, inventory, receivables, minorityInterest |
资产负债 |
d.cashFlows[i] |
endDate, operatingCashFlow, capitalExpenditure, freeCashFlow, depreciationAndAmortization, changeInWorkingCapital |
现金流 |
Ticker 格式
| 市场 |
格式 |
示例 |
| 美股 |
直接代码 |
AAPL, MSFT, TSLA |
| 港股 |
代码.HK |
0700.HK, 9988.HK |
| A股(沪) |
代码.SS |
601899.SS, 600519.SS |
| A股(深) |
代码.SZ |
000858.SZ, 002594.SZ |
单位转换(配合建模)
Yahoo Finance 返回原始单位(如元),建模统一使用 millions:
function _n(v) { return (typeof v === "number" && isNaN(v)) ? 0 : (v == null ? 0 : v); }
function toM(v) { return _n(v) / 1000000; }
ws.Range("B3").Value2 = toM(d.incomeStatements[0].totalRevenue);
重要规则
- 使用
dataBridgePull:不要手写 XHR,直接调用 dataBridgePull("yahoo-finance", "stock_info", { ticker: "..." })
- 检查
resp.ok:数据获取可能失败,必须检查
- 单位统一到 millions:原始数据 ÷ 1,000,000,用
toM() 函数
- 数据安全访问:
d.incomeStatements && d.incomeStatements.length > 0 ? d.incomeStatements[0].totalRevenue : 0
- 字段名全部 camelCase
- A 股注意后缀:上海 .SS,深圳 .SZ
1---2name: financial-data3description: 金融数据连接器 — 通过 Data Bridge 获取实时股票、财务报表、估值比率等结构化数据4---56## 金融数据连接器 v2.0(Data Bridge)78使用内置 `dataBridgePull()` 函数获取金融数据,**无需手写 XHR**。910### 获取综合财务数据1112```javascript13var resp = dataBridgePull("yahoo-finance", "stock_info", { ticker: "AAPL" });14if (!resp || !resp.ok) return "获取数据失败: " + (resp ? resp.error : "网络错误");15var d = resp.data;1617// d.summary — 公司概况18// d.keyStats — 估值指标19// d.incomeStatements — 历年损益表20// d.balanceSheets — 历年资产负债表21// d.cashFlows — 历年现金流量表22```2324### 获取历史价格2526```javascript27var resp = dataBridgePull("yahoo-finance", "stock_price", {28 ticker: "AAPL",29 range: "1y",30 interval: "1d"31});32if (!resp || !resp.ok) return "获取价格数据失败";33var prices = resp.data.prices; // [{date, open, high, low, close, volume}, ...]34```3536### 数据字段参考3738| 路径 | 字段 | 说明 |39|------|------|------|40| `d.summary` | shortName, sector, industry, currency, currentPrice, totalRevenue, grossProfit, netIncome, operatingCashflow, freeCashflow, totalCash, totalDebt, grossMargins, operatingMargins, profitMargins, ebitdaMargins, revenueGrowth, earningsGrowth, debtToEquity, returnOnEquity, returnOnAssets, fullTimeEmployees | 最新汇总 |41| `d.keyStats` | beta, trailingPE, forwardPE, priceToBook, enterpriseValue, enterpriseToRevenue, enterpriseToEbitda, pegRatio, sharesOutstanding, bookValue, dividendYield, marketCap | 估值指标 |42| `d.incomeStatements[i]` | endDate, totalRevenue, costOfRevenue, grossProfit, operatingIncome, netIncome, ebit, ebitda, interestExpense, taxProvision, researchDevelopment, sellingGeneralAdministrative | 损益表 |43| `d.balanceSheets[i]` | endDate, totalAssets, totalCurrentAssets, totalLiabilitiesNetMinorityInterest, totalCurrentLiabilities, stockholdersEquity, cashAndCashEquivalents, longTermDebt, totalDebt, netDebt, propertyPlantEquipment, inventory, receivables, minorityInterest | 资产负债 |44| `d.cashFlows[i]` | endDate, operatingCashFlow, capitalExpenditure, freeCashFlow, depreciationAndAmortization, changeInWorkingCapital | 现金流 |4546### Ticker 格式4748| 市场 | 格式 | 示例 |49|------|------|------|50| 美股 | 直接代码 | AAPL, MSFT, TSLA |51| 港股 | 代码.HK | 0700.HK, 9988.HK |52| A股(沪) | 代码.SS | 601899.SS, 600519.SS |53| A股(深) | 代码.SZ | 000858.SZ, 002594.SZ |5455### 单位转换(配合建模)5657Yahoo Finance 返回原始单位(如元),建模统一使用 millions:5859```javascript60function _n(v) { return (typeof v === "number" && isNaN(v)) ? 0 : (v == null ? 0 : v); }61function toM(v) { return _n(v) / 1000000; }6263ws.Range("B3").Value2 = toM(d.incomeStatements[0].totalRevenue);64```6566### 重要规则6768- **使用 `dataBridgePull`**:不要手写 XHR,直接调用 `dataBridgePull("yahoo-finance", "stock_info", { ticker: "..." })`69- **检查 `resp.ok`**:数据获取可能失败,必须检查70- **单位统一到 millions**:原始数据 ÷ 1,000,000,用 `toM()` 函数71- **数据安全访问**:`d.incomeStatements && d.incomeStatements.length > 0 ? d.incomeStatements[0].totalRevenue : 0`72- **字段名全部 camelCase**73- **A 股注意后缀**:上海 .SS,深圳 .SZ