Skip to content

Commit dd5376d

Browse files
committed
refactor: 重构图表系统,全面迁移至 Lightweight Charts
- 移除 ECharts 相关代码,替换为 TradingView Lightweight Charts 实现 - 更新相关组件和 Hooks,确保图表功能正常 - 新增 K 线图表重构计划文档,详细描述迁移过程与目标 - 优化代码结构,提升可维护性与性能
1 parent ab35c1b commit dd5376d

58 files changed

Lines changed: 8605 additions & 7674 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Cargo.lock
1717
.idea/
1818
*.swp
1919
*.swo
20+
.cursorrules
2021

2122
# OS
2223
.DS_Store

README.md

Lines changed: 27 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
# 🦀 RustQuantLab
44

5-
**高性能 Web 永续合约模拟交易终端 · Rust/Wasm + React + ECharts**
5+
**高性能 Web 永续合约模拟交易终端 · Rust/Wasm + React + TradingView**
66

77
[![Rust](https://img.shields.io/badge/Rust-2021-orange?logo=rust)](https://www.rust-lang.org/)
88
[![WebAssembly](https://img.shields.io/badge/WebAssembly-Enabled-654FF0?logo=webassembly)](https://webassembly.org/)
99
[![React](https://img.shields.io/badge/React-18-61DAFB?logo=react)](https://react.dev/)
10+
[![TradingView](https://img.shields.io/badge/Lightweight_Charts-5-2962FF?logo=tradingview)](https://www.tradingview.com/lightweight-charts/)
1011
[![Tailwind CSS](https://img.shields.io/badge/Tailwind-v4-38BDF8?logo=tailwindcss)](https://tailwindcss.com/)
11-
[![ECharts](https://img.shields.io/badge/ECharts-6-AA344D?logo=apacheecharts)](https://echarts.apache.org/)
1212
[![Vite](https://img.shields.io/badge/Vite-5-646CFF?logo=vite)](https://vitejs.dev/)
1313
[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](./LICENSE)
14+
[![DeepWiki](https://img.shields.io/badge/DeepWiki-Duri686%2FRustQuantLab-blue?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTQgMTloMTYiLz48cGF0aCBkPSJNNCAxNWg4Ii8+PHBhdGggZD0iTTQgMTFoNiIvPjxwYXRoIGQ9Ik0xMiAxMWw0LTYgNCA2Ii8+PHBhdGggZD0iTTE0IDExaDQiLz48L3N2Zz4=)](https://deepwiki.com/Duri686/RustQuantLab)
1415

1516
*基于 Rust/WebAssembly 的本地永续合约模拟引擎,提供零延迟交易体验与专业级交易终端 UI。*
1617

@@ -56,7 +57,7 @@ flowchart LR
5657
end
5758
5859
subgraph UI["🖥️ UI 组件"]
59-
H[KLineChart<br/>ECharts 渲染]
60+
H[LightweightChart<br/>TradingView 渲染]
6061
I[TradeForm<br/>开仓/挂单]
6162
J[PositionCard<br/>实时盈亏]
6263
K[OrderBook<br/>深度盘口]
@@ -95,7 +96,7 @@ flowchart LR
9596
| **3. 市场引擎** | `MarketEngine` (Rust) | K线聚合、技术指标、订单簿 |
9697
| **4. 交易引擎** | `TradingEngine` (Rust) | 仓位、盈亏、限价单、风控 |
9798
| **5. 操作封装** | `useTradingActions` | 开仓/平仓/挂单/撤单 API |
98-
| **6. 渲染** | React + ECharts | 60FPS K线图、交易 UI |
99+
| **6. 渲染** | React + TradingView | 60FPS K线图、交易 UI |
99100

100101
---
101102

@@ -120,8 +121,7 @@ flowchart LR
120121
| **TypeScript** | 5.6 | 类型安全开发 |
121122
| **Vite** | 5.4 | 新一代构建工具 |
122123
| **Tailwind CSS** | 4.0 | 原子化 CSS 框架 |
123-
| **ECharts** | 6.0 | 专业图表库 |
124-
| **echarts-for-react** | 3.0 | ECharts React 封装 |
124+
| **Lightweight Charts** | 5.1 | TradingView 专业 K 线图表 |
125125
| **Lucide React** | 0.562 | 现代图标库 |
126126
| **vite-plugin-wasm** | 3.3 | Wasm 集成插件 |
127127

@@ -180,70 +180,29 @@ npm run dev
180180

181181
```
182182
RustQuantLab/
183-
├── core/ # 🦀 Rust/Wasm 核心
184-
│ ├── src/
185-
│ │ ├── lib.rs # Wasm 导出 API
186-
│ │ ├── engine/ # 引擎模块
187-
│ │ │ ├── market_engine/ # 市场数据引擎
188-
│ │ │ │ ├── mod.rs # MarketEngine 主体
189-
│ │ │ │ ├── market_data.rs # 行情处理
190-
│ │ │ │ ├── risk_control.rs# 风控检查
191-
│ │ │ │ └── trade_executor.rs # 交易执行
192-
│ │ │ ├── trading/ # 交易逻辑
193-
│ │ │ │ ├── open_position.rs # 开仓
194-
│ │ │ │ ├── close_position.rs # 平仓
195-
│ │ │ │ ├── limit_order.rs # 限价单
196-
│ │ │ │ └── risk_monitor.rs # 风控监控
197-
│ │ │ ├── data/ # 数据结构
198-
│ │ │ │ ├── candles.rs # K线聚合
199-
│ │ │ │ └── tick_data.rs # Tick 处理
200-
│ │ │ └── types.rs # 引擎类型定义
201-
│ │ ├── trading/ # 交易领域模型
202-
│ │ │ ├── position.rs # 仓位模型
203-
│ │ │ ├── orders.rs # 订单模型
204-
│ │ │ ├── balance.rs # 余额管理
205-
│ │ │ └── manager.rs # 交易管理器
206-
│ │ ├── indicators.rs # 技术指标 (SMA/EMA/MACD/RSI/BOLL)
207-
│ │ ├── models.rs # 通用数据模型
208-
│ │ └── risk.rs # 风控算法
209-
│ ├── Cargo.toml
210-
│ └── pkg/ # Wasm 编译输出
211-
├── src/ # ⚛️ React 前端
212-
│ ├── components/
213-
│ │ ├── Dashboard/
214-
│ │ │ ├── Chart/ # K线图表
215-
│ │ │ │ ├── index.tsx # 图表容器
216-
│ │ │ │ ├── chartModules/ # ECharts 配置模块
217-
│ │ │ │ └── ChartToolbar.tsx # 工具栏
218-
│ │ │ ├── Trade/ # 交易组件
219-
│ │ │ │ ├── TradeForm.tsx # 开仓表单
220-
│ │ │ │ └── PositionCard.tsx # 仓位卡片
221-
│ │ │ ├── OrderBook.tsx # 订单簿
222-
│ │ │ └── StatsPanel.tsx # 统计面板
223-
│ │ ├── Layout/ # 布局组件
224-
│ │ └── Toast/ # 通知系统
183+
├── core/ # 🦀 Rust/Wasm 核心引擎
184+
│ └── src/
185+
│ ├── lib.rs # Wasm 导出 API
186+
│ ├── engine/ # 引擎模块
187+
│ │ ├── market_engine/ # MarketEngine (K线/指标/订单簿)
188+
│ │ ├── trading/ # 交易逻辑 (开仓/平仓/限价单/风控)
189+
│ │ └── data/ # K线聚合、Tick 处理
190+
│ ├── trading/ # 交易领域模型 (仓位/订单/余额)
191+
│ ├── indicators/ # 技术指标 (SMA/EMA/MACD/RSI/BOLL)
192+
│ └── risk/ # 风控算法 (强平/保证金)
193+
├── src/ # ⚛️ React 前端
194+
│ ├── components/Dashboard/
195+
│ │ ├── Chart/ # TradingView Lightweight Charts
196+
│ │ │ └── LightweightChart/ # 多窗格图表系统
197+
│ │ ├── Trade/ # 交易组件 (表单/仓位卡片)
198+
│ │ └── OrderBook.tsx # 订单簿
225199
│ ├── hooks/
226-
│ │ ├── useWasmEngine.ts # 🎯 统一 Wasm 引擎入口
227-
│ │ ├── useCandleData.ts # K线数据适配
228-
│ │ ├── useMockMarket.ts # Mock 行情 Hook
229-
│ │ ├── tradingEngine/ # 交易引擎 Hooks
230-
│ │ │ ├── useTradingActions.ts # 交易操作封装
231-
│ │ │ └── wasmSingleton.ts # Wasm 单例管理
232-
│ │ ├── tradingState/ # 交易状态
233-
│ │ │ ├── eventHandler.ts # 事件处理
234-
│ │ │ └── types.ts # 状态类型
235-
│ │ └── candle/ # K线工具
236-
│ │ ├── candleUtils.ts # K线计算
237-
│ │ └── useIndicatorHistory.ts # 指标历史
238-
│ ├── types/ # TypeScript 类型
239-
│ │ ├── index.ts # 通用类型
240-
│ │ ├── trading.ts # 交易类型
241-
│ │ └── wasm.ts # Wasm 接口类型
200+
│ │ ├── useWasmEngine.ts # 🎯 统一 Wasm 引擎入口
201+
│ │ ├── tradingEngine/ # 交易操作封装
202+
│ │ └── candle/ # K线数据处理
242203
│ ├── workers/
243-
│ │ └── mockWorker.ts # 行情模拟 Worker
244-
│ └── App.tsx # 根组件
245-
├── ARCHITECTURE.md
246-
├── vite.config.ts
204+
│ │ └── mockWorker.ts # Random Walk 行情模拟
205+
│ └── App.tsx
247206
└── package.json
248207
```
249208

0 commit comments

Comments
 (0)