投资信号与持仓关系
更新于 2026年03月13日
# 投资信号与持仓关系说明
## 概述
AgomSAAF 是一个**决策辅助系统**,不是自动交易系统。系统负责分析宏观环境并给出投资建议,用户根据建议**手动执行交易**。
## 核心概念
### 投资信号 (InvestmentSignal)
**投资信号是系统根据宏观分析生成的交易建议。**
- **生成时机**:当 Regime 判定、宏观指标变化等条件满足时
- **信号内容**:
- `asset_code` - 建议交易的资产代码
- `direction` - 建议方向(Long 做多 / Short 做空)
- `logic_desc` - 信号逻辑说明
- `invalidation_logic` - 证伪条件(什么情况下信号失效)
- **信号状态**:
- `pending` - 待审核
- `approved` - 已采纳(用户认可该建议)
- `rejected` - 已拒绝(用户不认可)
- **示例信号**:
```
PMI 连续回升,经济复苏 → 建议买入沪深300 (000300.SH)
证伪条件:PMI 跌破 50 且连续 2 月低于前值
```
### 持仓 (Position)
**持仓是用户实际持有并手动录入的资产记录。**
- **记录内容**:
- `asset_code` - 资产代码
- `shares` - 持仓数量
- `avg_cost` - 平均成本价
- `current_price` - 当前市价
- `market_value` - 市值 = shares × current_price
- **来源追踪**:
- `source = 'manual'` - 手动录入(与信号无关)
- `source = 'signal'` - 从信号创建(关联 signal_id)
- `source = 'backtest'` - 从回测创建
- **状态**:
- `is_closed = False` - 持仓中
- `is_closed = True` - 已平仓
## 信号 → 持仓 的流程
### 当前系统流程(手动交易模式)
```
┌─────────────────────────────────────────────────────────────────────┐
│ 宏观环境分析 │
│ Regime 判定 → PMI/CPI 数据 → 增长/通胀动量 → 当前象限 │
└─────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 生成投资建议 │
│ 系统根据宏观环境生成投资信号(如:建议买入沪深300) │
└─────────────────────────────────────────────────────────────────────┘
│
┌─────────────┴─────────────┐
▼ ▼
┌───────────────┐ ┌───────────────┐
│ 用户采纳建议 │ │ 用户拒绝建议 │
│ approved │ │ rejected │
└───────────────┘ └───────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 用户手动执行交易 │
│ 用户在券商 APP/软件中实际买入资产 │
└─────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 录入持仓到系统 │
│ 用户在系统中手动记录持仓信息(数量、成本价等) │
│ 可选择关联到对应信号(source = signal, source_id = 信号ID) │
└─────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 系统持续监控 │
│ • 更新持仓市值(需要行情接口) │
│ • 监控证伪条件(信号失效时提示平仓) │
│ • 分析持仓与当前 Regime 的匹配度 │
└─────────────────────────────────────────────────────────────────────┘
```
## 关键区别
| 维度 | 投资信号 | 持仓 |
|------|---------|------|
| **性质** | 建议/计划 | 实际持有 |
| **生成方** | 系统自动分析 | 用户手动录入 |
| **时效性** | 执行前存在 | 执行后产生 |
| **变更** | 状态可变(pending→approved/rejected) | 数量可增减,可平仓 |
| **证伪** | 有证伪条件,失效后提示 | 监控对应信号的证伪条件 |
## 证伪逻辑
当信号的 `invalidation_logic` 被触发时:
1. **系统检测**:定时任务检查活跃信号的证伪条件
2. **状态更新**:信号状态变为 `invalidated`
3. **用户通知**:系统提示用户考虑平仓
4. **用户决策**:用户决定是否平仓(手动执行)
5. **持仓更新**:用户在系统中记录平仓操作
## 示例场景
### 场景 1:信号 → 采纳 → 建仓 → 持仓
```
1. 系统分析:PMI 从 49 回升到 51,连续 3 个月上涨
2. 生成信号:建议买入 000300.SH(沪深300)
逻辑:经济复苏,权益资产受益
证伪:PMI 跌破 50 且连续 2 月低于前值
3. 用户审核:采纳该建议 (approved)
4. 用户操作:在券商 APP 买入 1000 股,成本价 4.5 元
5. 录入持仓:
- asset_code: 000300.SH
- shares: 1000
- avg_cost: 4.5
- source: signal
- source_id: 信号ID
6. 系统监控:
- 持续跟踪 PMI 数据
- 如果 PMI 跌破 50,系统提示"建议平仓"
```
### 场景 2:手动建仓(与信号无关)
```
1. 用户自主决定买入某资产
2. 在券商 APP 完成交易
3. 录入持仓:
- asset_code: 512100.SH
- shares: 500
- avg_cost: 10.2
- source: manual
4. 系统分析:该持仓与当前 Regime 匹配度低,给出调整建议
```
## 系统边界
### 系统负责 ✅
- 宏观环境分析(Regime 判定)
- 生成投资建议(信号)
- 监控证伪条件
- 分析持仓匹配度
- 提供调整建议
### 用户负责 ✅
- 审核信号(采纳/拒绝)
- 手动执行交易(通过券商)
- 录入持仓信息
- 更新持仓价格
- 决定平仓时机
### 系统不负责 ❌
- 自动交易
- 资金划转
- 实时行情(需配置外部接口)
- 订单执行
## 用户操作指南
### 查看信号
1. 进入 `/signal/manage/`
2. 查看所有信号的状态
3. 点击信号查看详细逻辑
### 采纳/拒绝信号
1. 在信号列表中,点击"采纳"或"拒绝"
2. 采纳后,信号变为 `approved` 状态
3. 系统记录您的决策
### 手动建仓
**方式 1:从信号创建**
1. 在信号详情页,点击"创建持仓"
2. 填写持仓信息(数量、成本价)
3. 提交后自动关联到该信号
**方式 2:手动录入**
1. 进入持仓管理页面
2. 点击"添加持仓"
3. 填写持仓信息,来源选择"手动"
### 更新持仓价格
1. 进入持仓列表
2. 点击"更新价格"(需要配置行情接口)
3. 系统自动重算市值和盈亏
### 平仓
1. 在持仓列表中,点击"平仓"
2. 输入平仓数量和价格
3. 系统记录平仓操作
## 数据模型关系
```
InvestmentSignal (投资信号)
├─ id
├─ asset_code
├─ direction (Long/Short)
├─ logic_desc
├─ invalidation_logic
└─ status (pending/approved/rejected/invalidated)
Position (持仓)
├─ id
├─ asset_code
├─ shares
├─ avg_cost
├─ source (manual/signal/backtest)
├─ source_id (关联的 signal_id 或 backtest_id)
└─ is_closed
PositionSignalLog (信号执行日志) [可选]
├─ signal_id
├─ position_id
└─ executed_at
```
## 未来扩展
### 自动交易模式(未来可能)
如果对接券商 API,可以实现:
1. 系统生成信号 → 自动发送订单到券商
2. 信号证伪 → 自动发送平仓订单
3. 每日收盘自动更新持仓市值
但这需要:
- 券商 API 接入
- 资金账户授权
- 风控机制
- 监管合规
---
## 总结
> **AgomSAAF 是您的投资决策助手,不是自动交易机器人。**
>
> 系统帮您分析宏观环境、生成投资建议、监控风险,但最终决策和执行由您掌控。