/** * 股票代码工具 —— 不同数据源需要不同的代码格式 * * 各数据源代码约定: * - 腾讯: sh600519 / sz000001 / sz399001(深沪前缀 + 6 位代码,或 sz+指数代码) * - 新浪: sh600519 / sz000001 / sh000001(同腾讯但指数不同前缀) * - 东财: secid=1.600519(沪 1.+代码,深 0.+代码)/ 0. / 1. / 116. * * 输入统一接收:6 位纯代码 + 可选市场标识(沪/深/京)。 * - "600519" → 默认沪市 * - "000001" → 默认深市 * - "300750" → 默认深市(创业板) * - "688981" → 默认沪市(科创板) * - "8xxxxx" → 默认北交所 * - "BJ836473" / "836473" → 北交所 * - "sh600519" / "sz000001" → 显式带前缀,直接透传 * - "1.600519" / "0.000001" → 东财 secid 形态 * - "600519.SH" / "000001.SZ" → 行业标准后缀 * * 简单规则: * - 6xxxxx, 9xxxxx → 沪市(sh) * - 0xxxxx, 3xxxxx → 深市(sz) * - 4xxxxx, 8xxxxx → 北交所(bj) * - 5xxxxx → 沪基金 / ETF(沪) */ import { ValidationError } from "@renxqoo/agent-data-cli"; export type Market = "sh" | "sz" | "bj"; export interface SymbolParts { /** 6 位纯代码,如 '600519' */ code: string; /** 市场 */ market: Market; /** 腾讯/新浪前缀形态:sh600519 / sz000001 */ tencent: string; /** 东财 secid 形态:1.600519 / 0.000001 / 0.836473 */ secid: string; } /** * 解析用户输入的代码 → 标准化 SymbolParts * 抛 InvalidSymbolError 当格式无法识别时。 */ export declare function parseSymbol(input: string): SymbolParts; /** 把多个代码拼成东财 clist 用的 fs 参数(全市场股票列表) */ export declare function eastmoneyFs(market: Market): string; /** * 股票代码格式错误。 * * 继承 ValidationError(框架的 errs 体系),category=validation / exit code=2。 * 保留具名类是为了向后兼容(test 里 toThrow(InvalidSymbolError))+ 语义清晰。 */ export declare class InvalidSymbolError extends ValidationError { constructor(message: string); } //# sourceMappingURL=symbol.d.ts.map