/** * 东方财富数据源 * * 域名分两类,可用性差异极大(实测): * * 🟢 datacenter-web.eastmoney.com —— 境内外都通,JSON,最稳定 * 财务/龙虎榜/分红/两融/解禁/大宗/北向/股东/公告 全在这。这是东财的主价值。 * 约定:必须带 columns=ALL,filter 里的引号需 URL 编码。 * * 🟢 searchapi.eastmoney.com —— 搜索,境内外都通(需固定 token) * * 🟡 push2.eastmoney.com / push2his.eastmoney.com / 82.push2 —— **境外/受限网络不通**(HTTP 000) * 实时行情快照/列表/板块/资金流/分笔/K线 在这。 * 这些接口只在境内 IP 可用。本工具把它们作为"境内增强源"保留, * 优先级最低(境外自动 fallback 到腾讯/新浪;境内可作为数据更全的补充源)。 * 调用方需 try/catch 容错,不能作为唯一源依赖。 * * 主要 API: * - 财务(主要): datacenter-web/api/data/v1/get?reportName=RPT_F10_FINANCE_MAINFINADATA * - 业绩预告: datacenter-web/api/data/v1/get?reportName=RPT_LICO_FN_CPD * - 公告: np-anotice-stock.eastmoney.com/api/security/ann?stock_list=600519&page_size=20 * - 搜索: searchapi/api/suggest/get?input=&type=14 * - 实时快照[🟡]: push2/api/qt/stock/get?secid=1.600519&fields=f43,... * - K 线[🟡]: push2his/api/qt/stock/kline/get?...&klt=101&fqt=1 * - 列表/板块[🟡]: push2/api/qt/clist/get?...&fs=m:0+t:6,m:0+t:80&pn=1&pz=20&fid=f3 * - 资金流[🟡]: push2/api/qt/stock/fflow/daykline/get?secid=1.600519 * - 分笔[🟡]: push2/api/qt/stock/details/get?secid=... * * 字段编号(f*)含义由全市场共用,文档不公开但社区已稳定。常用: * f43=当前价, f44=最高, f45=最低, f46=今开, f47=成交量(手), * f48=成交额, f50=量比, f57=代码, f58=名称, f60=昨收, * f162=市盈率ttm, f167=市净率, f168=换手率, f169=涨跌额, * f170=涨跌幅%, f171=振幅%, f117=总市值, f85=流通市值, * f191=成交量(手,精确), f192=板块代码(板块相关时), * f173=ROE, f183=市净率(板块), f184=涨速 */ import { type SymbolParts } from "../utils/symbol.js"; /** * 实时行情快照(单只)[🟡 境内增强源] * * 走 push2 域 —— 境外/受限网络会 HTTP 000 超时。 * 行情主源是腾讯(services/quote.ts),本函数仅作为境内增强 fallback; * 调用方必须 try/catch,境外会失败并自动回落到下一个源。 * * 注意:批量时 secid 用逗号分隔,返回 data 结构变为 diff 数组(非对象)。 */ export declare function fetchEastmoneyQuote(symbol: SymbolParts): Promise; /** * 批量实时行情(单次最多约 100 只) */ export declare function fetchEastmoneyQuotes(symbols: SymbolParts[]): Promise<(EastmoneyRawQuote | null)[]>; /** * K 线参数 [🟡 境内增强源] * 走 push2his 域 —— 境外/受限网络会 HTTP 000 超时。 * K线主源是腾讯(services/kline.ts),本函数仅作为境内增强 fallback。 * * klt: 1=1分, 5=5分, 15=15分, 30=30分, 60=60分, 101=日, 102=周, 103=月 * fqt: 0=不复权, 1=前复权, 2=后复权 */ export interface EastmoneyKlineParams { period: "m1" | "m5" | "m15" | "m30" | "m60" | "day" | "week" | "month"; adjust?: "none" | "qfq" | "hfq"; limit?: number; start?: string; end?: string; } export interface EastmoneyKlineRow { date: string; open: number; close: number; high: number; low: number; volume: number; amount: number; amplitude: number; changePercent: number; change: number; turnoverRate: number; } export declare function fetchEastmoneyKline(symbol: SymbolParts, params: EastmoneyKlineParams): Promise; export type ListMarket = "sh" | "sz" | "bj" | "all"; export type ListSort = "changePercent" | "change" | "amount" | "volume" | "code" | "name"; /** * 股票列表(全市场 / 单市场 / 板块)[🟡 境内增强源] * * 走 push2/clist 域 —— 境外/受限网络会 HTTP 000 超时。 * 列表主源是新浪(fetchSinaStockList),本函数仅作为境内增强 fallback * (东财列表字段更全:f100 年初至今涨跌幅 / f23 涨速 等,新浪没有)。 * * @param market 'sh' | 'sz' | 'bj' | 'all' * @param page 1-based 页码 * @param size 单页条数(默认 100,东财单次最大约 1000) * @param sort 排序字段 * @param desc 是否降序(默认 true) */ export declare function fetchEastmoneyStockList(opts?: { market?: ListMarket; page?: number; size?: number; sort?: ListSort; desc?: boolean; }): Promise<{ total: number; items: EastmoneyStockListItem[]; }>; /** 板块列表(行业 / 概念 / 地域)[🟡 境内增强源] */ export type SectorKind = "industry" | "concept" | "area"; export declare function fetchEastmoneySectorList(opts?: { kind?: SectorKind; page?: number; size?: number; sort?: ListSort; desc?: boolean; }): Promise<{ total: number; items: EastmoneyStockListItem[]; }>; /** 板块内成分股(传入板块代码 BKxxxx)[🟡 境内增强源] */ export declare function fetchSectorConstituents(sectorCode: string, opts?: { page?: number; size?: number; }): Promise<{ total: number; items: EastmoneyStockListItem[]; }>; export interface EastmoneySearchItem { /** 6 位代码(沪A / 深A / 京A 等) */ Code: string; Name: string; PinYin?: string; /** 'AStock' = A 股 / 'HKStock' / 'USStock' 等 */ Classify: string; /** '沪A' / '深A' / '京A' 等 */ SecurityTypeName: string; /** '1.600519' 这种东财 secid 形态 */ QuoteID: string; /** 内部代码 */ InnerCode?: string; } export declare function searchEastmoney(keyword: string): Promise; export interface EastmoneyFinancialRow { /** 报告期 YYYY-MM-DD */ reportDate: string; /** 报告类型:一季报 / 半年报 / 三季报 / 年报 */ reportType: string; /** 营业总收入(元) */ totalRevenue: number; /** 归属母公司净利润(元) */ netProfit: number; /** 基本每股收益 */ eps: number; /** 净资产收益率(%) */ roe: number; /** 营收同比(%) */ revenueYoY: number; /** 净利润同比(%) */ profitYoY: number; /** 销售毛利率(%) */ grossMargin: number; /** 每股净资产 */ bps: number; /** 资产负债率(%) */ debtRatio: number; } /** * 主要财务指标(连续季度 / 年度) * reportName: RPT_F10_FINANCE_MAINFINADATA */ export declare function fetchFinancialMain(code: string, limit?: number): Promise; /** * 业绩预告 */ export declare function fetchFinancialForecast(code: string, limit?: number): Promise; export interface EastmoneyFundFlowRow { date: string; /**主力净流入(元)*/ mainNet: number; /**小单净流入(元)*/ smallNet: number; /**中单净流入(元)*/ mediumNet: number; /**大单净流入(元)*/ bigNet: number; /**超大单净流入(元)*/ superNet: number; /**主力净流入占比(%)*/ mainNetRatio: number; } /** * 个股资金流(主力/大单/中单/小单)[🟡 push2 独占,境内增强源] * * 实测:东财 datacenter 无资金流 reportName(全部"报表配置不存在"), * 资金流数据只在 push2 体系里。境外/受限网络下此接口 HTTP 000 超时, * 调用方需 try/catch —— 失败时 services/financial.ts 会返回明确错误, * 不静默返回空数组(避免 agent 误判"今天无数据")。 */ export declare function fetchFundFlow(symbol: SymbolParts, opts?: { limit?: number; }): Promise; export interface EastmoneyTickRow { time: string; price: number; volume: number; /** 方向: 1 = 买入 / 2 = 卖出 / 4 = 竞价 */ direction: 1 | 2 | 4; amount: number; } /** 分笔成交(tick)[🟡 境内增强源] —— 走 push2 域,境外不通。调用方 try/catch 容错。 */ export declare function fetchTicks(symbol: SymbolParts, opts?: { limit?: number; }): Promise; export interface EastmoneyAnnouncementItem { artCode: string; title: string; noticeDate: string; columns: { code: string; name: string; }[]; sourceType: string; } export declare function fetchAnnouncements(code: string, opts?: { page?: number; size?: number; type?: string; }): Promise; export interface EastmoneyProfile { code: string; name: string; /** 行业 */ industry?: string; /** 总股本(股) */ totalShares?: number; /** 流通股本(股) */ circulateShares?: number; /** 总市值(元) */ totalMarketCap?: number; /** 流通市值(元) */ circulateMarketCap?: number; /** 上市日期 YYYY-MM-DD */ listDate?: string; /** 每股净资产 */ bps?: number; /** 实际控制人 */ controller?: string; /** 注册资本 */ registeredCapital?: number; } /** * 公司基本信息(从 F10 财报主接口取) * * 注:东财没有"单一 profile 接口",这里复用 RPT_F10_FINANCE_MAINFINADATA 的部分字段。 * 后续可扩展专门的 F10 接口。 */ export declare function fetchCompanyProfile(code: string): Promise; export interface EastmoneyRawQuote { /** f43 */ f43?: number; /** f44 最高 */ f44?: number; /** f45 最低 */ f45?: number; /** f46 今开 */ f46?: number; /** f47 成交量(手) */ f47?: number; /** f48 成交额 */ f48?: number; /** f49 委比 */ f49?: number; /** f50 量比 */ f50?: number; /** f51 涨停价 */ f51?: number; /** f52 跌停价 */ f52?: number; /** f55 涨速 */ f55?: number; /** f57 代码 */ f57: string; /** f58 名称 */ f58: string; /** f60 昨收 */ f60?: number; /** f62 主力净额 */ f62?: number; /** f71 中单净额 */ f71?: number; /** f72 大单净额 */ f72?: number; /** f73 小单净额 */ f73?: number; /** f84 总股本 */ f84?: number; /** f85 流通市值 */ f85?: number; /** f86 时间戳 */ f86?: number; /** f107 市场类型 */ f107?: number; /** f117 总市值 */ f117?: number; /** f161 内盘 */ f161?: number; /** f162 动市盈率 */ f162?: number; /** f167 市净率 */ f167?: number; /** f168 换手率(%) */ f168?: number; /** f169 涨跌额 */ f169?: number; /** f170 涨跌幅(%) */ f170?: number; /** f171 振幅(%) */ f171?: number; /** f173 ROE(%) */ f173?: number; /** f183 市净率 */ f183?: number; /** f191 成交量(手,精确) */ f191?: number; /** f192 板块代码 */ f192?: string; /** f292 */ f292?: number; } export interface EastmoneyStockListItem { /** 类型 f1 */ f1?: number; /** 当前价 f2 */ f2?: number; /** 涨跌幅 f3 */ f3?: number; /** 涨跌额 f4 */ f4?: number; /** 成交量 f5 */ f5?: number; /** 成交额 f6 */ f6?: number; /** 振幅 f7 */ f7?: number; /** 换手率 f8 */ f8?: number; /** 市盈率 f9 */ f9?: number; /** 量比 f10 */ f10?: number; /** 代码 f12 */ f12: string; /** 板块代码 f13 */ f13?: number; /** 名称 f14 */ f14: string; /** 最高 f15 */ f15?: number; /** 最低 f16 */ f16?: number; /** 今开 f17 */ f17?: number; /** 昨收 f18 */ f18?: number; /** 流通市值 f20 */ f20?: number; /** 总市值 f21 */ f21?: number; /** 市净率 f22 */ f22?: number; /** 涨速 f23 */ f23?: number; /** 5分钟涨跌 f24 */ f24?: number; /** 60日涨跌幅 f25 */ f25?: number; /** 年初至今涨跌幅 f100 */ f100?: number; /** 行业 f104(板块列表才有) */ f104?: string; } export interface EastmoneyDragonTigerRow { /** 交易日期 YYYY-MM-DD */ tradeDate: string; code: string; name: string; /** 收盘价 */ closePrice: number; /** 涨跌幅 % */ changeRate: number; /** 换手率 % */ turnoverRate: number; /** 上榜原因 */ explain: string; /** 龙虎榜买入额(元) */ buyAmt: number; /** 龙虎榜卖出额(元) */ sellAmt: number; /** 龙虎榜净额(元) */ netAmt: number; /** 买入席位数 */ buySeatCount: number; /** 卖出席位数 */ sellSeatCount: number; } export declare function fetchDragonTiger(opts?: { date?: string; code?: string; pageSize?: number; }): Promise; export interface EastmoneyNorthboundRow { /** MUTUAL_TYPE: 001=沪股通 / 003=深股通 / 002=港股通 */ mutualType: string; tradeDate: string; /** 成交额(元) */ dealAmt: number; /** 净买入额(元;东财部分返回 null) */ netDealAmt: number | null; /** 持股总市值(元) */ holdMarketCap: number; /** 领涨股代码 */ leadStockCode: string; leadStockName: string; /** 领涨股涨跌幅 % */ leadStockChange: number; } export declare function fetchNorthbound(opts?: { type?: "001" | "003" | "all"; pageSize?: number; }): Promise; export interface EastmoneyDividendRow { /** 公告日期 YYYY-MM-DD */ noticeDate: string; /** 报告期 YYYY-MM-DD */ reportDate: string; /** 实施方案,如"10转1.00派6.00元" */ implPlan: string; /** 送股(每 10 股) */ bonusRatio: number; /** 转增(每 10 股) */ transferRatio: number; /** 派息税前(每 10 股,元) */ pretaxDividend: number; /** 除权除息日 */ exDividendDate: string; /** 股权登记日 */ equityRecordDate: string; /** 进度 */ progress: string; } export declare function fetchDividend(code: string, pageSize?: number): Promise; export interface EastmoneyHolderRow { /** 截止日期 YYYY-MM-DD */ endDate: string; /** 股东名称 */ holderName: string; /** 持股数(股) */ holdNum: number; /** 持股比例 % */ holdRatio: number; /** 持股变动(股) */ holdChange: number; /** 变动比例 % */ changeRatio: number; /** 是否机构 */ isOrg: boolean; /** 排名 */ rank: number; } export declare function fetchHolders(code: string, pageSize?: number): Promise; export interface EastmoneyHolderCountRow { /** 截止日期 YYYY-MM-DD */ endDate: string; /** 股东总数 */ holderTotalNum: number; /** 较上期变化 % */ totalNumRatio: number; /** 户均流通股 */ avgFreeShares: number; /** 户均持股金额(元) */ avgHoldAmt: number; /** 筹码集中度 */ holdFocus: string; } export declare function fetchHolderCount(code: string, pageSize?: number): Promise; export interface EastmoneyMarginRow { /** 日期 YYYY-MM-DD */ date: string; /** 融资余额(元) */ rzye: number; /** 融券余额(元) */ rqye: number; /** 融资融券余额(元) */ rzrqye: number; /** 融资买入额(元) */ rzmre: number; /** 融资偿还额(元) */ rzjme: number; /** 融券卖出量(股) */ rqmcl: number; /** 收盘价 */ closePrice: number; /** 涨跌幅 % */ changeRate: number; } export declare function fetchMargin(code: string, pageSize?: number): Promise; export interface EastmoneyBalanceSheetRow { /** 报告期 YYYY-MM-DD */ reportDate: string; /** 货币资金 */ monetaryFunds: number; /** 应收账款 */ accountsReceivable: number; /** 存货 */ inventory: number; /** 流动资产合计 */ totalCurrentAssets: number; /** 非流动资产合计 */ totalNonCurrentAssets: number; /** 资产总计 */ totalAssets: number; /** 流动负债合计 */ totalCurrentLiabilities: number; /** 非流动负债合计 */ totalNonCurrentLiabilities: number; /** 负债合计 */ totalLiabilities: number; /** 股东权益合计 */ totalShareholdersEquity: number; } export declare function fetchBalanceSheet(code: string, pageSize?: number): Promise; export interface EastmoneyIncomeRow { reportDate: string; /** 营业总收入 */ totalRevenue: number; /** 营业收入 */ operatingRevenue: number; /** 营业成本 */ operatingCost: number; /** 销售费用 */ sellingExpense: number; /** 管理费用 */ managingExpense: number; /** 财务费用 */ financialExpense: number; /** 营业利润 */ operatingProfit: number; /** 利润总额 */ totalProfit: number; /** 净利润 */ netProfit: number; /** 归母净利润 */ parentNetProfit: number; } export declare function fetchIncome(code: string, pageSize?: number): Promise; export interface EastmoneyCashFlowRow { reportDate: string; /** 经营活动现金流净额 */ operatingCashFlow: number; /** 投资活动现金流净额 */ investingCashFlow: number; /** 筹资活动现金流净额 */ financingCashFlow: number; /** 现金及等价物净增加额 */ netCashIncrease: number; /** 期末现金及等价物余额 */ cashBalance: number; } export declare function fetchCashFlow(code: string, pageSize?: number): Promise; //# sourceMappingURL=eastmoney.d.ts.map