# 智能盯盘 - 持仓管理功能说明

## 🎯 功能概述

智能盯盘现已支持**持仓管理功能**，您可以在添加监控任务时：
- ✅ 标记是否已持仓该股票
- ✅ 填入持仓成本和数量
- ✅ 实时查看持仓盈亏
- ✅ AI决策时考虑持仓情况

这对于已经持有股票并希望智能监控的用户非常实用！

---

## 🆕 新增功能

### 1. 添加任务时设置持仓信息

在"添加新监控任务"表单中，新增了持仓信息输入：

**📊 持仓信息区域：**
- **已持仓该股票** - 勾选表示您已持有该股票
- **持仓成本(元)** - 填入买入时的成本价格
- **持仓数量(股)** - 填入当前持有的股票数量

**示例：**
```
任务名称: 茅台盯盘
股票代码: 600519
检查间隔: 300秒

📊 持仓信息:
☑ 已持仓该股票
持仓成本: 1650.50元
持仓数量: 200股
```

### 2. 任务列表显示盈亏

任务列表现在会实时显示持仓盈亏：

**显示内容：**
- 📊 持仓信息（数量和成本）
- 💰 实时盈亏金额和百分比
- 颜色标识：
  - 🟢 绿色 - 盈利
  - 🔴 红色 - 亏损
  - ⚪ 灰色 - 持平

**示例显示：**
```
任务名称: 茅台盯盘
600519 - 间隔300秒
✅ 已启用
🤖 自动交易
📊 持仓: 200股 @ 1650.50元

▶️ 运行中
💰 +5,240.00元 (+15.86%)
```

### 3. AI决策考虑持仓情况

当您设置了持仓信息后，AI决策会：

**针对已持仓股票：**
- ✅ 显示当前盈亏状态
- ✅ 建议止盈/止损时机
- ✅ 评估是否加仓机会
- ✅ 考虑持仓天数（T+1规则）

**AI决策示例：**
```
[POSITION] 当前持仓（600519） ⭐ 重要
═══════════════════════════════════════
持仓数量: 200股
成本价: ¥1650.50
当前价: ¥1676.70
持仓市值: ¥335,340.00
浮动盈亏: ¥5,240.00 (+1.59%)

⚠️ T+1限制: 该股票可以卖出（不受T+1限制）

💡 决策建议：
- 如果盈利且技术指标转弱 → 建议止盈卖出
- 如果亏损超过止损线（通常-5%）→ 建议止损卖出
- 如果技术指标强势且未到止盈位 → 建议继续持有
- 如果盈利且看好后市 → 可考虑加仓（但注意仓位控制）
```

---

## 📊 使用场景

### 场景1: 已持仓股票监控

**适用情况：**
- 您已经买入某只股票
- 希望AI帮您监控卖出时机
- 需要实时了解盈亏情况

**操作步骤：**
1. 点击"添加新监控任务"
2. 填写股票代码
3. ☑ 勾选"已持仓该股票"
4. 填入持仓成本和数量
5. 可开启"自动交易"（AI建议卖出时自动执行）
6. 点击"添加任务"

**结果：**
- ✅ 任务列表实时显示盈亏
- ✅ AI决策会考虑您的持仓成本
- ✅ 触发卖出信号时及时通知
- ✅ 自动交易可自动止盈/止损

### 场景2: 未持仓股票监控

**适用情况：**
- 您还没买入该股票
- 希望AI帮您监控买入时机

**操作步骤：**
1. 点击"添加新监控任务"
2. 填写股票代码
3. ❌ 不勾选"已持仓该股票"
4. 设置仓位百分比（新建仓位时使用）
5. 可开启"自动交易"
6. 点击"添加任务"

**结果：**
- ✅ AI决策会寻找买入机会
- ✅ 触发买入信号时及时通知
- ✅ 自动交易可自动建仓

### 场景3: 分批建仓/加仓

**适用情况：**
- 已有一部分持仓
- 希望在合适时机加仓

**操作步骤：**
1. 设置已持仓信息（当前持仓）
2. 保持"仓位百分比"设置（加仓时使用）
3. 开启自动交易
4. AI会评估：
   - 如果技术强势 → 建议加仓
   - 如果技术转弱 → 建议减仓

---

## 🔍 功能详解

### 持仓成本的作用

**在AI决策中：**
1. **计算盈亏** - 当前价 vs 成本价
2. **止损判断** - 是否达到止损线（如-5%）
3. **止盈判断** - 是否达到止盈线（如+10%）
4. **加仓评估** - 是否适合补仓或加仓

**示例分析：**
```
持仓成本: ¥50.00
当前价格: ¥47.50
盈亏: -5.00% (达到止损线)

AI决策: SELL (止损卖出)
理由: 亏损已达到-5%止损线，技术指标转弱，
     建议止损以避免更大亏损
```

### 持仓数量的作用

**在AI决策中：**
1. **仓位计算** - 当前持仓占比
2. **风险评估** - 是否过度集中
3. **加仓空间** - 还能加多少仓位

**示例分析：**
```
账户总资产: ¥100,000
持仓市值: ¥30,000 (30%)
仓位状态: 适中

AI决策: 可以考虑小幅加仓
理由: 仓位未超过30%警戒线，技术面强势，
     可适当增加仓位
```

---

## 💡 最佳实践

### 1. 准确填写持仓信息

**重要提示：**
- ✅ 填写真实的成本价（不是当前价）
- ✅ 填写实际持有数量
- ❌ 不要虚高或虚低填写

**为什么：**
- 准确的持仓信息 → 准确的盈亏计算
- 准确的盈亏 → 更合理的AI决策
- 合理的决策 → 更好的交易结果

### 2. 及时更新持仓

**需要更新的情况：**
- ✅ 手动买入/卖出后
- ✅ 自动交易执行后
- ✅ 分批建仓/减仓后

**如何更新：**
1. 删除旧任务
2. 添加新任务（填写新的持仓信息）
3. 或手动编辑数据库（高级用户）

### 3. 合理设置自动交易

**建议：**
- 🟢 **已持仓** + 自动交易 = 自动止盈/止损
- 🟡 **未持仓** + 自动交易 = 谨慎使用
- 🔴 新手建议先不开启自动交易

**原因：**
- 已持仓：主要是卖出决策，相对安全
- 未持仓：涉及买入决策，需要更谨慎
- 新手：先观察AI决策准确性

### 4. 设置合理止损止盈

**默认建议：**
- 止损线：-5%（可根据风险承受能力调整）
- 止盈线：+10%（可根据预期收益调整）

**调整建议：**
- 高风险股票：止损-3%，止盈+8%
- 稳健股票：止损-7%，止盈+15%
- 根据实际情况灵活调整

---

## 📈 实际案例

### 案例1: 止盈卖出

**背景：**
```
股票: 600519 贵州茅台
持仓成本: ¥1,650.00
持仓数量: 100股
当前价格: ¥1,815.00
浮动盈亏: +10.00% (+¥16,500)
```

**AI决策：**
```
决策: SELL (止盈卖出)
信心度: 85%

理由:
- 盈利已达10%止盈线
- MACD出现死叉信号
- RSI(6)=78 进入超买区
- 成交量明显萎缩

建议: 止盈卖出，落袋为安
```

### 案例2: 止损卖出

**背景：**
```
股票: 000001 平安银行
持仓成本: ¥12.50
持仓数量: 1000股
当前价格: ¥11.88
浮动盈亏: -4.96% (-¥620)
```

**AI决策：**
```
决策: SELL (止损卖出)
信心度: 90%

理由:
- 亏损接近-5%止损线
- 技术面全面转弱
- MA5下穿MA20死叉
- 主力资金持续流出

建议: 及时止损，避免更大亏损
```

### 案例3: 持有观望

**背景：**
```
股票: 300750 宁德时代
持仓成本: ¥180.00
持仓数量: 200股
当前价格: ¥183.50
浮动盈亏: +1.94% (+¥700)
```

**AI决策：**
```
决策: HOLD (继续持有)
信心度: 75%

理由:
- 盈利未达止盈线
- 技术面保持强势
- MACD金叉持续
- 主力资金持续流入
- 量价配合良好

建议: 继续持有，等待更大收益
```

---

## ⚙️ 技术实现

### 数据库结构

新增字段到 `monitor_tasks` 表：

```sql
has_position INTEGER DEFAULT 0      -- 是否已持仓
position_cost REAL DEFAULT 0        -- 持仓成本
position_quantity INTEGER DEFAULT 0  -- 持仓数量
position_date TEXT                  -- 建仓日期
```

### AI决策逻辑

```python
def analyze_stock_and_decide(
    stock_code: str,
    market_data: Dict,
    account_info: Dict,
    has_position: bool = False,
    position_cost: float = 0,
    position_quantity: int = 0
) -> Dict:
    # 计算实时盈亏
    current_price = market_data['current_price']
    profit_loss = (current_price - position_cost) * position_quantity
    profit_loss_pct = (profit_loss / (position_cost * position_quantity)) * 100
    
    # 构建包含持仓信息的Prompt
    prompt = build_prompt_with_position(
        stock_code, market_data, account_info,
        has_position, position_cost, position_quantity,
        profit_loss, profit_loss_pct
    )
    
    # 调用DeepSeek AI
    decision = call_deepseek_api(prompt)
    
    return decision
```

---

## 🔧 故障排查

### 问题1: 盈亏显示不准确

**可能原因：**
- 持仓成本填写错误
- 持仓数量填写错误
- 获取实时价格失败

**解决方案：**
1. 检查持仓信息是否正确
2. 重新创建监控任务
3. 查看日志确认数据获取情况

### 问题2: AI决策未考虑持仓

**可能原因：**
- 持仓信息未勾选
- 持仓数量为0
- 持仓成本为0

**解决方案：**
1. 确认勾选"已持仓该股票"
2. 确认填写了正确的成本和数量
3. 查看日志确认参数传递

### 问题3: 任务列表不显示盈亏

**可能原因：**
- 数据获取失败
- 网络问题
- 数据源不可用

**解决方案：**
1. 刷新页面重试
2. 检查网络连接
3. 查看终端日志

---

## 📚 相关文档

- [智能盯盘快速测试](./智能盯盘快速测试.md)
- [智能盯盘配置说明](./智能盯盘配置说明.md)
- [智能盯盘数据源降级说明](./智能盯盘数据源降级说明.md)
- [智能盯盘集成说明](./智能盯盘集成说明.md)

---

## ✅ 总结

持仓管理功能的优势：

1. **✅ 精准决策** - AI考虑您的实际持仓情况
2. **✅ 实时盈亏** - 一目了然的盈亏显示
3. **✅ 止盈止损** - 自动触发止盈止损信号
4. **✅ 风险控制** - 基于持仓的仓位管理
5. **✅ 便捷管理** - 集中管理所有持仓监控

**开始使用：** 立即添加您的持仓股票，让AI为您智能盯盘！

---

**更新时间：** 2025-10-25  
**版本：** v1.0

