/** * A 股板块(交易场所)识别与过滤 —— 纯函数、零依赖。 * * 用途:不同板块的**涨跌停幅度**、交易规则、波动特征差异极大, * 混在一个票池里回测会系统性算错涨跌停判断。 * * 板块与代码前缀(2026 年现状): * - 上交所主板:600 / 601 / 603 / 605 → 涨跌停 ±10% * - 深交所主板:000 / 001 / 002 / 003 → 涨跌停 ±10% * (002 原中小板,2021 年并入主板;003 亦为主板) * - 创业板:300 / 301 → 涨跌停 ±20%(2020-08 起) * - 科创板:688 / 689 → 涨跌停 ±20% * - 北交所:4xx / 8xx → 涨跌停 ±30% * * ⚠️ 常见错误:把创业板当主板用 10% 判断涨停,会把 +10% 误判为涨停 * (实际还能再涨 10%),或把 +20% 的真实涨停漏判。本模块的存在就是为了避免这种错误。 */ /** 板块类型。 */ export type MarketBoard = 'sh-main' | 'sz-main' | 'chinext' | 'star' | 'bse' | 'unknown'; /** 从带前缀或纯数字的代码判定板块。 */ export declare function marketBoard(symbol: string): MarketBoard; /** 是否为主板(用户只交易这类)。 */ export declare function isMainBoard(symbol: string): boolean; /** * 涨跌停幅度(小数)。 * * @param symbol 股票代码(带不带 sh/sz 前缀均可) * @param isSt 是否 ST 股(ST 主板为 ±5%);默认 false * @returns 涨停幅度,如 0.1 表示 +10% */ export declare function priceLimitPct(symbol: string, isSt?: boolean): number; /** 板块统计。 */ export interface BoardBreakdown { total: number; 'sh-main': number; 'sz-main': number; chinext: number; star: number; bse: number; unknown: number; /** 主板占比 */ mainShare: number; } /** 统计一组代码的板块分布。 */ export declare function boardBreakdown(symbols: readonly string[]): BoardBreakdown; /** * 按板块过滤票池。 * * @param symbols 原始代码列表 * @param boards 保留的板块(默认仅主板) * @returns 过滤后的代码列表 */ export declare function filterByBoard(symbols: readonly string[], boards?: readonly MarketBoard[]): string[];