|
|
|
|
|
# 智能期货期权分析系统 - 开发文档
|
|
|
|
|
|
|
|
|
|
|
|
## 环境要求
|
|
|
|
|
|
|
|
|
|
|
|
- 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;
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### KLineData(K线数据)
|
|
|
|
|
|
|
|
|
|
|
|
```typescript
|
|
|
|
|
|
interface KLineData {
|
|
|
|
|
|
time: string; // 时间
|
|
|
|
|
|
open: number; // 开盘价
|
|
|
|
|
|
high: number; // 最高价
|
|
|
|
|
|
low: number; // 最低价
|
|
|
|
|
|
close: number; // 收盘价
|
|
|
|
|
|
volume: number; // 成交量
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### MACDData(MACD数据)
|
|
|
|
|
|
|
|
|
|
|
|
```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 处理大量计算
|