Files
trade/data/exchanges/types.ts
T
Rekey e91cad79e6 feat(data): 实现配置表 CRUD 与 Schema 初始化拆分
- 新增 data/db/ 数据库访问层:pool 管理、类型定义、Zod 校验、参数化 SQL 查询
- 新增 data/db/config-crud.ts:MonitoredSymbolsRepo / ExchangeConfigRepo / AppConfigRepo 三个 CRUD 服务类
- 新增 data/config.ts:中心化配置模块,零依赖 .env 解析 + Zod 校验
- 新增 data/schema/:klines.sql + config.sql 参考 DDL
- 新增 data/exchanges/:交易所类型定义与 Binance WebSocket 封装
- 新增 data/run/:交易所连接启动入口
- 重构 data/init-db/:001_init.sql 仅保留 TimescaleDB + klines,配置表拆分至 002_config.sql
- 更新 docker-compose.yml:挂载 init-db 初始化脚本
2026-06-07 20:46:35 +08:00

46 lines
1.3 KiB
TypeScript

// ============================================================
// 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<string, unknown>;
}
/** ExchangeWs 连接状态 */
export type WsConnectionState =
| "idle" // 尚未启动
| "connecting" // 正在连接 WebSocket
| "connected" // 已连接,正在接收数据
| "disconnected" // 已断开
| "error"; // 错误状态