文件
quantKonwledge/wiki/tradehk/系统架构总览.md
Manus Quant Agent baf10a9e91 feat: 新增 tradehk 专属 Wiki 文档体系(10个文档)
- 系统架构总览:技术栈、目录结构、数据流向
- 指标引擎详解:16个指标完整原理与参数(含源码行号)
- 信号评分引擎:多指标共振评分机制、动态阈值、案例分析
- 大周期偏向判定:assessBigTimeframeBias 完整说明
- EWO转换检测机制:evaluateEwoTurnForUser 逐步流程
- 飞书通知格式规范:三类通知完整格式模板
- 类型系统参考:所有 TypeScript 类型完整文档
- 数据库与存储:MySQL 表结构、缓存机制、维护指南
- 部署运维指南:Docker Compose、Nginx、飞书配置
- 开发历史与TODO:功能状态表、优先级路线图
- 优化建议汇总:9项优化建议含源码位置和预期效果
2026-03-05 23:14:31 -05:00

4.7 KiB
原始文件 Blame 文件历史

tradehk 系统架构总览

返回:tradehk 文档中心

技术栈

层次 技术 说明
前端框架 React + TypeScript + Vite 单页应用,实时更新
UI 组件 TailwindCSS + shadcn/ui 深色专业交易终端风格
图表库 lightweight-charts TradingView 同款 K 线图库
后端框架 Node.js + tRPC 类型安全的 API 层
数据库 MySQLDrizzle ORM 信号持久化、用户配置
实时数据 Binance WebSocket + REST API K 线、行情、账户数据
通知推送 飞书 WebhookLark EWO 转换通知、信号通知
部署 Docker Compose + Nginx Node.js + MySQL + 反向代理
字体 JetBrains Mono + Inter 数字等宽字体 + 界面字体

目录结构

tradehk/
├── client/                     # 前端代码
│   └── src/
│       ├── lib/
│       │   ├── indicators.ts   # ★ 核心:所有技术指标计算 + 信号引擎
│       │   ├── types.ts        # ★ 核心:所有 TypeScript 类型定义
│       │   ├── binanceApi.ts   # Binance API 封装(前端)
│       │   ├── tradeService.ts # 交易服务(下单、持仓管理)
│       │   └── store.ts        # 全局状态管理
│       ├── components/         # UI 组件
│       └── pages/              # 页面Home、Login、NotFound
├── server/
│   ├── _core/
│   │   ├── marketEngine.ts     # ★ 核心市场引擎轮询、信号、EWO通知
│   │   ├── marketData.ts       # Binance API 封装(服务端)
│   │   ├── notification.ts     # 通知服务基础层
│   │   ├── lark.ts             # 飞书 Webhook 推送
│   │   └── dataApi.ts          # 数据 API 路由
│   ├── db.ts                   # 数据库操作层
│   └── storage.ts              # 存储抽象层
├── shared/
│   └── types.ts                # 共享类型(数据库 schema 导出)
├── drizzle/
│   ├── schema.ts               # ★ 数据库表结构定义
│   └── *.sql                   # 迁移文件
├── deploy/
│   ├── deploy.sh               # 一键部署脚本
│   ├── nginx.conf              # Nginx 反向代理配置
│   └── mysql/my.cnf            # MySQL 配置
└── docker-compose.yml          # 生产环境容器编排

数据流向

1. 实时行情流(前端)

Binance WebSocket
    ↓ 订阅 K 线流kline_10m 等)
useMarketData Hook
    ↓ 更新 K 线缓存最新300根
K 线图组件lightweight-charts
    ↓ 同步渲染
指标子图EWO / MACD / AO / RSI 等)

2. 信号检测流(服务端)

setInterval每30秒,可配置 MARKET_ENGINE_POLL_MS
    ↓
buildUserRuntimeConfigs()  ← 从 MySQL 读取用户配置和监控列表
    ↓
refreshCacheForPairs()     ← 从 Binance REST API 拉取最新220根K线
    ↓
evaluateSignalsForUser()   ← 调用 generateSignal() 计算信号
    ↓
hasSignalRecord()          ← 去重检查(同币同方向同时间戳)
    ↓
saveSignal()               ← 持久化到 MySQL signals 表
    ↓
maybePushSignalLark()      ← 频控后推送飞书通知

3. EWO 转换检测流(服务端)

每次引擎轮询
    ↓
evaluateEwoTurnForUser()
    ↓
取最后两根已收线K线的 EWO 值
    ↓
比较颜色red/green是否发生变化
    ↓
计算上一阶段持续时间和K线根数
    ↓
consumeSharedEwoTurnDedupeSlot()  ← 去重(同币同方向同时间戳只推一次)
    ↓
pushLarkWebhookMessage()          ← 推送飞书通知

关键配置参数

参数 默认值 说明
MARKET_ENGINE_POLL_MS 30000 引擎轮询间隔毫秒,最小10秒
MARKET_SUMMARY_INTERVAL_HOURS 4 定期汇总推送间隔(小时)
CACHE_CANDLE_LIMIT 300 每对缓存K线数量上限
DEFAULT_SYMBOL_INTERVAL 10m 默认K线周期
signalLarkThrottleMinutes 10 信号推送频控(分钟)

设计风格

tradehk 采用精英深色仪表盘风格Elite Dark Dashboard

  • 主背景#0A0E17(深海蓝黑)
  • 主色调#F0B90BBinance 黄金)
  • 涨势色#0ECB81(清新绿)
  • 跌势色#F6465D(警示红)
  • 数字字体JetBrains Mono等宽,确保对齐
  • 界面字体Inter清晰易读

相关文档