// ============================================================ // exchanges/types.ts — WebSocket 事件数据类型 // ============================================================ /** 由 WebSocket 推送的单根 K 线数据 */ export interface KlineWsData { /** 交易所标识 */ exchange: string; /** 交易对,如 BTCUSDT */ symbol: string; /** K 线周期,如 1m / 1h / 1d */ interval: string; /** K 线开盘时间(Unix 毫秒时间戳) */ time: number; /** 开盘价 */ open: number; /** 最高价 */ high: number; /** 最低价 */ low: number; /** 收盘价 */ close: number; /** 成交量(基准币种) */ volume: number; } /** ExchangeWs 构造参数 */ export interface ExchangeWsConfig { /** 交易所 ID,ccxt 支持的所有交易所标识 */ exchangeId: string; /** 要订阅的交易对列表,如 ['BTCUSDT', 'ETHUSDT'] */ symbols: string[]; /** K 线周期,默认 '1m' */ interval?: string; /** 传递给 ccxt.pro 交易所实例的额外选项(如 agent、apiKey 等) */ ccxtOptions?: Record; } /** ExchangeWs 连接状态 */ export type WsConnectionState = | "idle" // 尚未启动 | "connecting" // 正在连接 WebSocket | "connected" // 已连接,正在接收数据 | "disconnected" // 已断开 | "error"; // 错误状态