You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

376 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# AI期货分析系统前端设计方案
## 1. 设计概述
### 1.1 设计目标
- 打造专业、直观的期货分析系统界面
- 提供流畅的用户交互体验
- 实现多维度数据可视化
- 确保全设备响应式适配
### 1.2 技术栈
- **前端框架**React + Ant Design
- **状态管理**Redux Toolkit
- **数据可视化**ECharts + D3.js
- **K线图表**TradingView Lightweight Charts
- **样式方案**Ant Design 默认主题 + 自定义样式
- **构建工具**Vite
### 1.3 设计风格
- **主色调**#1890ffAnt Design 蓝色)
- **辅助色**#52c41a上涨绿、#ff4d4f下跌红、#faad14中性黄
- **背景色**#f0f2f5浅色背景
- **文字色**#262626主文字、#8c8c8c次要文字
- **卡片样式**轻微阴影圆角4px
- **图标风格**Ant Design 图标库
## 2. 页面结构与布局
### 2.1 整体布局
- **顶部导航栏**:系统标题、用户信息、全局搜索、主题切换
- **左侧菜单**:功能模块导航,支持折叠
- **主内容区**:根据选择的功能模块显示相应内容
- **右侧信息栏**:市场热点、风险预警(可折叠)
### 2.2 响应式适配
- **桌面端**≥1200px完整三栏布局
- **平板端**768px-1199px左侧菜单折叠右侧信息栏可收起
- **移动端**<768px):顶部导航栏简化,左侧菜单转为抽屉式,右侧信息栏隐藏
## 3. 页面设计详情
### 3.1 Dashboard主页
#### 布局结构
- **页面头部**:欢迎信息、市场概览、快速操作按钮
- **品种概览区**:网格布局的品种卡片,支持分页和筛选
- **市场热点区**:热力图展示各品种表现
- **风险预警区**:重要风险提示列表
- **AI研判区**AI对市场的整体判断和预测
#### 交互设计
- **品种卡片**:点击进入详情页,悬停显示更多信息
- **筛选功能**:按品种类型、涨跌幅、胜率等筛选
- **排序功能**:支持多种排序方式
- **刷新机制**:自动定时刷新(默认30秒),支持手动刷新
- **布局切换**:支持卡片网格和列表视图切换
#### 数据展示
- **品种卡片**:显示品种名称、代码、当前价格、涨跌幅、胜率、ATRADX、多周期趋势判断
- **热力图**:颜色深浅表示涨跌幅大小
- **风险预警**:按严重程度排序,红色表示高风险
### 3.2 详情分析页
#### 布局结构
- **页面头部**:品种信息、代码、当前价格、涨跌幅
- **K线图表区**:专业K线图,支持多周期切换
- **技术指标区**:可切换显示不同技术指标
- **AI研判区**AI对该品种的详细分析和预测
- **交易建议区**:入场价、止损价、目标价建议
- **风险评估区**:风险等级、波动率分析
#### 交互设计
- **K线周期切换**5分钟、30分钟、1小时、1天、1周等
- **指标叠加**:可在K线上叠加MAMACD等指标
- **图表缩放**:鼠标滚轮缩放,拖拽平移
- **数据对比**:支持与其他品种或指数对比
- **历史回测**:显示AI策略的历史表现
#### 数据展示
- **K线图**:专业蜡烛图,支持成交量柱状图
- **技术指标**MAMACDKDJRSI、布林带等
- **多周期趋势**5MIN30MIN1HOUR1DAY的趋势判断
- **AI预测**:趋势预测图、胜率评估、预期收益
### 3.3 风控管理页
#### 布局结构
- **页面头部**:风控概览、风险等级
- **止损策略区**:止损设置表单,支持多种止损策略
- **仓位管理区**:资金分配、仓位计算器
- **换月预警区**:即将到期合约提醒
- **风险监控区**:实时风险指标监控
#### 交互设计
- **止损策略选择**:下拉选择不同止损策略,自动计算止损点位
- **仓位计算器**:输入资金、风险偏好,自动计算建议仓位
- **换月提醒**:点击查看详细换月策略
- **风险阈值设置**:可调整各项风险指标的预警阈值
#### 数据展示
- **止损点位**:动态计算的止损价格
- **仓位建议**:基于风险偏好的建议仓位比例
- **换月日历**:合约到期日倒计时
- **风险指标**:风险价值、最大回撤、夏普比率等
### 3.4 配置管理页
#### 布局结构
- **页面头部**:配置管理标题
- **数据源配置区**:数据源列表、优先级设置
- **AI模型配置区**:模型选择、参数调优
- **系统配置区**:分析周期、预警阈值等设置
- **用户偏好区**:界面偏好、通知设置
#### 交互设计
- **数据源切换**:开关控制数据源启用/禁用
- **模型参数调整**:滑块或输入框调整参数
- **配置保存**:实时保存或手动保存
- **配置重置**:恢复默认配置
#### 数据展示
- **数据源状态**:在线/离线状态,响应时间
- **模型性能**:不同模型的准确率、响应时间对比
- **系统参数**:当前配置值,默认值参考
## 4. 核心组件设计
### 4.1 导航组件
- **顶部导航栏**:系统标题、全局搜索、用户头像、消息通知、主题切换
- **左侧菜单**:折叠/展开功能,当前选中状态高亮,支持多级菜单
### 4.2 数据可视化组件
- **K线图表组件**:支持多周期切换,技术指标叠加,图表缩放
- **热力图组件**:多品种涨跌幅对比,颜色渐变表示强度
- **趋势分析组件**AI预测趋势线,置信区间显示
- **技术指标组件**:可切换不同技术指标,支持参数调整
### 4.3 功能组件
- **品种卡片组件**:显示品种关键信息,支持点击进入详情
- **风险预警组件**:风险等级标识,详细信息展开
- **止损计算器组件**:根据策略计算止损点位
- **仓位计算器组件**:基于风险偏好计算建议仓位
- **数据源配置组件**:数据源管理,状态监控
- **AI模型配置组件**:模型选择,参数调优界面
### 4.4 通用组件
- **搜索组件**:支持模糊搜索,历史记录
- **筛选组件**:多条件组合筛选
- **分页组件**:数据分页显示,支持每页条数调整
- **加载组件**:数据加载动画,骨架屏
- **通知组件**:系统消息,预警通知
## 5. 交互流程设计
### 5.1 主要用户流程
#### 流程1查看市场概览
1. 用户登录系统 进入Dashboard主页
2. 浏览品种概览卡片 查看市场热点热力图
3. 查看风险预警 了解AI整体研判
4. 可通过筛选/排序找到感兴趣的品种
#### 流程2深入分析单个品种
1. Dashboard点击品种卡片 进入详情分析页
2. 查看K线图表 切换不同周期
3. 叠加技术指标 分析多周期趋势
4. 查看AI研判结果 参考交易建议
5. 评估风险等级 制定交易策略
#### 流程3设置风控参数
1. 从左侧菜单进入风控管理页
2. 设置止损策略 调整止损参数
3. 使用仓位计算器 确定资金分配
4. 查看换月预警 提前规划换月
5. 监控风险指标 确保风险可控
#### 流程4配置系统参数
1. 从左侧菜单进入配置管理页
2. 管理数据源 设置优先级
3. 选择AI模型 调整模型参数
4. 设置系统参数 调整预警阈值
5. 保存配置 应用新设置
### 5.2 微交互设计
- **按钮反馈**:点击时有轻微的缩放效果,悬停时有背景色变化
- **卡片悬停**:轻微上浮效果,阴影加深
- **数据更新**:数字变化时有平滑过渡动画
- **图表加载**:渐进式动画,提升视觉体验
- **通知提醒**:弹出动画,吸引用户注意
- **表单验证**:实时验证,错误提示动画
## 6. 响应式设计
### 6.1 桌面端≥1200px
- 完整三栏布局,左侧菜单展开
- 丰富的数据展示,多列布局
- 支持复杂的交互操作
### 6.2 平板端768px-1199px
- 左侧菜单默认折叠,hover展开
- 右侧信息栏可收起,通过按钮展开
- 卡片布局改为2
- 部分复杂图表简化显示
### 6.3 移动端(<768px
- 左侧菜单转为抽屉式,通过顶部按钮打开
- 右侧信息栏隐藏,重要信息整合到主内容区
- 卡片布局改为单列
- K线图表简化,仅显示核心信息
- 表单元素适配触摸操作,增大点击区域
## 7. 性能优化
### 7.1 前端性能优化
- **代码分割**:使用React.lazySuspense实现组件懒加载
- **状态管理**:合理使用Redux,避免不必要的重渲染
- **数据缓存**:缓存频繁访问的数据,减少重复请求
- **图表优化**:大数据量图表使用虚拟滚动,按需渲染
- **图片优化**:使用适当尺寸的图片,支持WebP格式
### 7.2 交互体验优化
- **骨架屏**:数据加载时显示骨架屏,提升感知性能
- **防抖节流**:对搜索、滚动等操作进行防抖节流处理
- **预加载**:预测用户可能访问的内容,提前加载
- **离线支持**:关键功能支持离线访问
- **错误处理**:友好的错误提示,避免白屏
## 8. 开发实现指南
### 8.1 项目结构
```
/src
/components # 通用组件
/layout # 布局组件
/charts # 图表组件
/forms # 表单组件
/common # 通用UI组件
/pages # 页面组件
/dashboard # 主页
/detail # 详情分析页
/risk-control # 风控管理页
/config # 配置管理页
/services # API服务
/store # Redux状态管理
/utils # 工具函数
/constants # 常量定义
/hooks # 自定义Hooks
App.jsx # 应用根组件
main.jsx # 应用入口
```
### 8.2 关键技术实现
- **K线图表**:使用TradingView Lightweight Charts实现专业K线图
- **数据可视化**:使用ECharts实现热力图、趋势分析等图表
- **响应式布局**:使用Ant DesignLayout组件结合媒体查询
- **状态管理**:使用Redux Toolkit管理全局状态
- **API调用**:使用Axios实现API请求,支持拦截器
- **模拟数据**:在src/utils/mockData.js中定义模拟数据
### 8.3 开发规范
- **代码风格**:使用ESLintPrettier保持代码风格一致
- **命名规范**:组件名使用大驼峰,变量名使用小驼峰
- **注释规范**:关键组件和函数添加JSDoc注释
- **提交规范**:使用Git Commitizen保持提交信息规范
## 9. 测试计划
### 9.1 功能测试
- **页面导航**:测试所有页面之间的导航是否正常
- **数据展示**:测试各种数据的展示是否正确
- **交互功能**:测试所有交互元素是否正常响应
- **表单提交**:测试表单验证和提交功能
### 9.2 性能测试
- **页面加载速度**:测试各页面的加载时间
- **交互响应速度**:测试用户操作的响应时间
- **大数据量处理**:测试处理大量数据时的性能
### 9.3 兼容性测试
- **浏览器兼容性**:测试主流浏览器(ChromeFirefoxSafariEdge
- **设备兼容性**:测试不同尺寸的设备
### 9.4 可用性测试
- **用户体验**:评估界面的易用性和直观性
- **错误处理**:测试系统对错误操作的处理
- **帮助信息**:测试系统的帮助和提示信息
## 10. 模拟数据
### 10.1 期货品种列表
```javascript
const futuresList = [
// 金属类
{ code: 'AU', name: '金', type: '金属' },
{ code: 'AG', name: '银', type: '金属' },
{ code: 'CU', name: '铜', type: '金属' },
{ code: 'NI', name: '镍', type: '金属' },
{ code: 'SN', name: '锡', type: '金属' },
{ code: 'AL', name: '铝', type: '金属' },
{ code: 'ZN', name: '锌', type: '金属' },
// 建材类
{ code: 'FG', name: '玻璃', type: '建材' },
{ code: 'SJS', name: '烧碱', type: '建材' },
{ code: 'SCA', name: '纯碱', type: '建材' },
{ code: 'JM', name: '焦煤', type: '建材' },
{ code: 'RB', name: '螺纹钢', type: '建材' },
{ code: 'ALO', name: '氧化铝', type: '建材' },
// 能源化工类
{ code: 'MA', name: '甲醇', type: '能源化工' },
{ code: 'PVC', name: 'PVC', type: '能源化工' },
{ code: 'FU', name: '燃油', type: '能源化工' },
{ code: 'SC', name: '原油', type: '能源化工' },
{ code: 'L', name: '橡胶', type: '能源化工' },
{ code: 'NR', name: '20号胶', type: '能源化工' },
{ code: 'BU', name: '沥青', type: '能源化工' },
{ code: 'LU', name: '低硫燃油', type: '能源化工' },
// 农产品类
{ code: 'P', name: '棕榈油', type: '农产品' },
// 新能源类
{ code: 'LC', name: '碳酸锂', type: '新能源' },
{ code: 'SI', name: '工业硅', type: '新能源' },
{ code: 'PGS', name: '多晶硅', type: '新能源' },
// 金融类
{ code: 'IC', name: '中证500', type: '金融' },
{ code: 'IM', name: '中证1000', type: '金融' },
{ code: 'IH', name: '上证50', type: '金融' }
];
```
### 10.2 品种数据结构
```javascript
const futureData = {
code: 'MA',
name: '甲醇',
fullName: '甲醇-MA605',
currentPrice: 2188.00,
changePercent: -2.35,
atr: 2.35,
adx: 19,
adxStatus: '无趋势/震荡',
winRate: 56,
trends: {
'5MIN': { direction: '看空', status: '空头趋势', rsi: 24 },
'30MIN': { direction: '看空', status: '空头趋势', rsi: 19 },
'1HOUR': { direction: '看空', status: '空头趋势', rsi: 17 },
'1DAY': { direction: '看空', status: '空头趋势', rsi: 30 }
},
indicators: {
macd: '死叉向下',
rsi: '34(中性)',
bollinger: '触及下轨',
kdj: '死叉向下'
},
tradingAdvice: {
entry: 2188,
stopLoss: 2166,
target: 2210
},
riskLevel: '中等',
volatility: '高'
};
```
## 11. 结论
本设计方案提供了AI期货分析系统的完整前端设计,包括页面布局、交互流程、响应式设计和技术实现指南。方案基于React + Ant Design技术栈,采用浅色简洁的设计风格,确保专业、直观的用户体验。
设计方案充分考虑了期货分析系统的专业性要求,提供了K线图表、技术指标、热力图等专业数据可视化功能,同时确保了系统的易用性和可扩展性。
通过本设计方案,开发团队可以快速实现一个功能完整、体验良好的AI期货分析系统前端,为期货投资者提供专业的决策辅助工具。