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.

220 lines
4.2 KiB

# 智能期货期权分析系统 - 开发文档
## 环境要求
- Node.js 20+
- npm 10+
- 现代浏览器Chrome/Firefox/Safari/Edge
## 本地开发
### 1. 安装依赖
```bash
cd /mnt/okcomputer/output/app
npm install
```
### 2. 启动开发服务器
```bash
npm run dev
```
### 3. 构建生产版本
```bash
npm run build
```
## 核心组件详解
### KLineChart 组件
**文件**: `src/components/KLineChart.tsx`
**功能**: 绘制K线图、成交量、MACD指标
**Props**:
```typescript
interface KLineChartProps {
klineData: KLineData[]; // K线数据
macdData: MACDData[]; // MACD数据
resistance: number[]; // 压力位
support: number[]; // 支撑位
height?: number; // 图表高度
}
```
**实现要点**:
- 使用 ECharts 绘制三图联动K线+成交量+MACD
- 支持鼠标悬停十字光标
- 压力位/支撑位水平线标注
- 移动平均线计算与绘制
### MarketOverview 组件
**文件**: `src/components/MarketOverview.tsx`
**功能**: 展示市场核心指标卡片
**特性**:
- 数字滚动动画
- 迷你趋势图
- 涨跌颜色区分
### HotEvents 组件
**文件**: `src/components/HotEvents.tsx`
**功能**: 热点事件列表与智能分析
**特性**:
- 事件列表与详情面板联动
- 影响等级星级显示
- 利多/利空/中性标签
### ProductCard 组件
**文件**: `src/components/ProductCard.tsx`
**功能**: 品种卡片展示
**特性**:
- 多周期趋势标签
- 成功率进度条
- 关键点位显示
- 交易建议标签
### ProductDetail 组件
**文件**: `src/components/ProductDetail.tsx`
**功能**: 品种详细分析页面
**特性**:
- 周期切换5/15/30/60分钟
- K线图展示
- 技术指标汇总
- 交易建议
- 多周期一致性分析
## 数据类型定义
### FuturesProduct期货品种
```typescript
interface FuturesProduct {
id: string;
name: string; // 品种名称
code: string; // 品种代码
category: string; // 分类
price: number; // 当前价格
change: number; // 涨跌额
changePercent: number; // 涨跌幅
trendScore: number; // 趋势评分
successRate: number; // 成功率
cycles: { // 各周期趋势
m5: TrendDirection;
m15: TrendDirection;
m30: TrendDirection;
m60: TrendDirection;
};
keyLevels: { // 关键点位
resistance: number[];
support: number[];
};
recommendation: 'long' | 'short' | 'wait';
recommendationReason: string;
}
```
### KLineDataK线数据
```typescript
interface KLineData {
time: string; // 时间
open: number; // 开盘价
high: number; // 最高价
low: number; // 最低价
close: number; // 收盘价
volume: number; // 成交量
}
```
### MACDDataMACD数据
```typescript
interface MACDData {
time: string;
dif: number;
dea: number;
macd: number; // 柱状图值
}
```
## 模拟数据生成
### K线数据生成
```typescript
function generateKLineData(basePrice: number, count: number = 100): KLineData[]
```
**算法**:
1. 基于基础价格生成随机波动
2. 波动幅度为基础价格的0.8%
3. 生成高开低收四价
### MACD数据生成
```typescript
function generateMACDData(klineData: KLineData[]): MACDData[]
```
**算法**:
1. 计算EMA12和EMA26
2. DIF = EMA12 - EMA26
3. DEA = EMA(DIF, 9)
4. MACD = (DIF - DEA) × 2
## 样式规范
### 颜色系统
```css
/* 主色调 */
--bg-primary: #09090b; /* 背景色 */
--color-primary: #7dd75a; /* 主色(绿) */
--color-secondary: #0d5d1b; /* 次色(深绿) */
--color-accent: #e6e6e6; /* 强调色 */
/* 功能色 */
--color-up: #7dd75a; /* 上涨/利多 */
--color-down: #ef4444; /* 下跌/利空 */
--color-neutral: #a1a1aa; /* 中性 */
--color-warning: #f59e0b; /* 警告 */
```
### 字体规范
- 主字体: Inter, sans-serif
- 数字字体: JetBrains Mono, monospace
- 正文: 16px
- 标题: 20-40px
- 小字: 14px
## 性能优化
### 已实现
1. **组件懒加载**: 图表组件按需加载
2. **动画优化**: CSS动画优先减少JS计算
3. **数据缓存**: 模拟数据本地缓存
### 建议优化
1. 虚拟滚动(长列表)
2. 图表数据分页加载
3. Web Worker 处理大量计算