一个基于 React + Ant Design + ECharts 的现代化量化交易管理平台。
- 仪表盘 - 实时查看账户总资产、收益率、策略运行状态等核心指标
- 行情监控 - 实时行情数据展示,支持K线图、成交量等多维度分析
- 策略管理 - 创建、启停、监控多个交易策略,支持策略收益对比
- 交易记录 - 查看历史交易记录,统计分析盈亏情况
- 现代化技术栈 - React 18 + Vite 构建,开发体验极佳
- 丰富的图表 - 集成 ECharts 实现专业的金融图表展示
- 企业级UI - 使用 Ant Design 5.x 组件库,界面美观易用
- 响应式设计 - 支持多种屏幕尺寸,移动端友好
- 模块化架构 - 清晰的目录结构,易于维护和扩展
- 前端框架: React 18.2
- 构建工具: Vite 5.0
- UI组件库: Ant Design 5.12
- 图表库: ECharts 5.4 + echarts-for-react
- 路由: React Router 6.20
- HTTP客户端: Axios 1.6
- 日期处理: Day.js 1.11
quant_trade_web/
├── public/ # 静态资源
├── src/
│ ├── assets/ # 图片、字体等资源文件
│ ├── components/ # 公共组件
│ │ └── MainLayout.jsx # 主布局组件
│ ├── pages/ # 页面组件
│ │ ├── Dashboard.jsx # 仪表盘
│ │ ├── MarketMonitor.jsx # 行情监控
│ │ ├── StrategyManage.jsx # 策略管理
│ │ └── TradeHistory.jsx # 交易记录
│ ├── services/ # API服务
│ │ └── api.js # API接口定义
│ ├── utils/ # 工具函数
│ │ ├── constants.js # 常量配置
│ │ └── format.js # 格式化函数
│ ├── styles/ # 样式文件
│ │ └── global.css # 全局样式
│ ├── App.jsx # 根组件
│ └── main.jsx # 入口文件
├── index.html # HTML模板
├── vite.config.js # Vite配置
└── package.json # 项目配置
- Node.js >= 16.0.0
- npm >= 8.0.0
cd quant_trade_web
npm installnpm run dev访问 http://localhost:3000 查看应用
npm run build构建产物将输出到 dist 目录
npm run preview- 展示账户总资产、今日收益、累计收益率、胜率等核心指标
- 累计收益曲线图
- 资产分布饼图
- 策略运行状态进度条
- 当前持仓列表
- 实时报价表格,支持排序筛选
- 完整的K线图展示,包含成交量
- 支持缩放、拖拽等交互操作
- 股票搜索和板块筛选功能
- 策略列表展示,包含收益率、胜率、最大回撤等指标
- 策略启停控制
- 新增策略功能(支持多种策略类型)
- 策略详情查看
- 策略收益对比图表
- 交易记录列表,支持按时间、策略、方向筛选
- 今日交易统计(交易次数、成交额、盈亏、胜率)
- 每日盈亏柱状图
- 交易次数分布饼图
后端API需要实现以下接口(代理到 http://localhost:8000):
GET /dashboard- 获取仪表盘数据GET /account/info- 获取账户信息GET /positions- 获取持仓列表
GET /market/realtime- 获取实时行情GET /market/kline/:symbol- 获取K线数据GET /market/search- 搜索股票
GET /strategies- 获取策略列表POST /strategies- 创建策略PUT /strategies/:id- 更新策略DELETE /strategies/:id- 删除策略POST /strategies/:id/start- 启动策略POST /strategies/:id/stop- 停止策略GET /strategies/:id- 获取策略详情
GET /trades- 获取交易记录GET /trades/statistics- 获取交易统计POST /trades/order- 手动下单
在 vite.config.js 中配置了开发环境的API代理:
server: {
proxy: {
'/api': {
target: 'http://localhost:8000',
changeOrigin: true,
},
},
}配置了 @ 作为 src 目录的别名:
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
}使用示例:
import api from '@/services/api'
import { formatCurrency } from '@/utils/format'- 在
src/pages/创建新的页面组件 - 在
src/App.jsx中添加路由配置 - 在
src/components/MainLayout.jsx的菜单配置中添加导航项
在 src/services/api.js 中按模块添加接口定义:
export const newModuleAPI = {
getList: () => api.get('/new-module'),
create: (data) => api.post('/new-module', data),
}src/utils/format.js 提供了常用的格式化函数:
formatCurrency- 货币格式化formatPercent- 百分比格式化formatLargeNumber- 大数字格式化(万、亿)formatDateTime- 日期时间格式化getChangeColor- 获取涨跌颜色
- 数据mock: 当前使用的是模拟数据,实际使用需要对接真实的后端API
- 认证: 已在axios拦截器中预留了token处理逻辑,需根据实际情况调整
- WebSocket: 实时行情建议使用WebSocket连接,可参考
constants.js中的消息类型定义 - 错误处理: 已配置全局错误拦截,根据需要可以自定义错误处理逻辑
- 接入真实的行情数据API
- 实现WebSocket实时推送
- 添加用户认证和权限管理
- 增加更多技术指标图表(MACD、KDJ等)
- 实现策略回测功能
- 添加风险控制模块
- 移动端适配优化
- 增加单元测试
MIT