364 lines
7.9 KiB
Markdown
364 lines
7.9 KiB
Markdown
# 钉钉消息通知配置指南
|
||
|
||
## 📱 功能说明
|
||
|
||
系统支持通过钉钉群机器人自动推送交易信号通知,包括:
|
||
|
||
- ✅ 实时交易信号推送(BUY/SELL)
|
||
- ✅ 量化分析 + AI深度分析结果
|
||
- ✅ 日内/中长线/埋伏点位机会详情
|
||
- ✅ 进场价/止损/止盈建议
|
||
- ✅ 风险评估和综合建议
|
||
- ✅ Markdown格式,可读性强
|
||
|
||
## 🔧 配置步骤
|
||
|
||
### 第一步:创建钉钉群机器人
|
||
|
||
1. **打开钉钉群**
|
||
- 在电脑端或手机端打开需要接收通知的钉钉群
|
||
|
||
2. **添加自定义机器人**
|
||
- 点击群设置 → 智能群助手 → 添加机器人
|
||
- 选择"自定义"机器人
|
||
- 点击"添加"
|
||
|
||
3. **配置机器人**
|
||
- **机器人名称**: 例如 "交易信号助手"
|
||
- **消息推送**:
|
||
- ✅ 勾选 "加签"(推荐,更安全)
|
||
- 或 勾选 "自定义关键词"(输入:信号、交易)
|
||
- 或 勾选 "IP地址段"(如果固定IP)
|
||
|
||
4. **获取配置信息**
|
||
- **Webhook地址**: 复制形如 `https://oapi.dingtalk.com/robot/send?access_token=xxxxx` 的URL
|
||
- **加签密钥**: 如果选择了"加签",复制 `SEC` 开头的密钥
|
||
|
||
5. **完成配置**
|
||
- 点击"完成"
|
||
- 机器人添加成功
|
||
|
||
---
|
||
|
||
### 第二步:配置系统环境变量
|
||
|
||
有两种配置方式:
|
||
|
||
#### 方式A: 修改 docker-compose.yml(推荐)
|
||
|
||
编辑 `docker-compose.yml` 文件,找到 `scheduler` 服务,取消注释并填入配置:
|
||
|
||
```yaml
|
||
scheduler:
|
||
environment:
|
||
# DingTalk Notification
|
||
- DINGTALK_WEBHOOK=https://oapi.dingtalk.com/robot/send?access_token=你的access_token
|
||
- DINGTALK_SECRET=SEC你的加签密钥 # 如果使用了加签
|
||
```
|
||
|
||
**示例**:
|
||
```yaml
|
||
scheduler:
|
||
environment:
|
||
# DingTalk Notification
|
||
- DINGTALK_WEBHOOK=https://oapi.dingtalk.com/robot/send?access_token=1a2b3c4d5e6f7g8h9i0j
|
||
- DINGTALK_SECRET=SEC1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0
|
||
```
|
||
|
||
#### 方式B: 使用 .env.local 文件
|
||
|
||
创建 `.env.local` 文件:
|
||
|
||
```bash
|
||
# DingTalk Configuration
|
||
DINGTALK_WEBHOOK=https://oapi.dingtalk.com/robot/send?access_token=你的access_token
|
||
DINGTALK_SECRET=SEC你的加签密钥
|
||
```
|
||
|
||
然后在 `docker-compose.yml` 中添加:
|
||
|
||
```yaml
|
||
scheduler:
|
||
env_file:
|
||
- .env.local
|
||
```
|
||
|
||
⚠️ **重要**: 将 `.env.local` 添加到 `.gitignore`,避免泄露敏感信息
|
||
|
||
---
|
||
|
||
### 第三步:重启服务
|
||
|
||
```bash
|
||
# 停止服务
|
||
docker compose down
|
||
|
||
# 重新构建镜像(如果修改了requirements.txt)
|
||
docker compose build scheduler
|
||
|
||
# 启动服务
|
||
docker compose --profile scheduler up -d
|
||
|
||
# 查看日志,确认钉钉已启用
|
||
docker compose logs scheduler
|
||
```
|
||
|
||
**预期日志**:
|
||
```
|
||
📱 钉钉通知已启用 - Webhook: https://oapi.dingtalk.com/robot/send?access...
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 消息示例
|
||
|
||
### BUY信号示例
|
||
|
||
```markdown
|
||
# 🟢 交易信号: BUY
|
||
|
||
**时间**: 2025-11-30 21:45:23
|
||
**置信度**: 75.0%
|
||
**共识**: QUANT_LLM_AGREE
|
||
|
||
---
|
||
|
||
## 📊 量化分析
|
||
|
||
- **信号**: BUY
|
||
- **综合得分**: 51.5
|
||
- **置信度**: 75.0%
|
||
- **趋势得分**: 99.0
|
||
- **动量得分**: 75.0
|
||
- **订单流得分**: -7.8
|
||
|
||
## 🤖 AI深度分析
|
||
|
||
- **信号**: BUY
|
||
- **置信度**: 60.0%
|
||
- **风险等级**: MEDIUM
|
||
|
||
### 📊 日内交易机会
|
||
- **方向**: LONG
|
||
- **入场**: $91,128.00
|
||
- **止损**: $91,000.00
|
||
- **止盈**: $91,342.00
|
||
- **说明**: 5分钟和15分钟周期呈现上涨趋势,MACD金叉扩大...
|
||
|
||
### 📌 埋伏点位
|
||
- **埋伏价位**: $90,612.00
|
||
- **说明**: 等待价格回调至4小时支撑位90612附近...
|
||
|
||
### 💡 AI分析
|
||
> 当前市场呈现多周期趋势分歧,日线下跌但短周期上涨,形成震荡格局...
|
||
|
||
**关键因素**:
|
||
- 多周期趋势分歧
|
||
- 成交量萎缩
|
||
- RSI中性区域
|
||
|
||
## 💰 价格位
|
||
|
||
- **当前价格**: $91,650.10
|
||
- **入场价**: $91,650.10
|
||
- **止损价**: $90,985.52
|
||
- **目标价1**: $92,646.96
|
||
- **目标价2**: $93,311.54
|
||
- **目标价3**: $94,308.40
|
||
- **风险回报比**: 1:1.50
|
||
|
||
## 📝 综合建议
|
||
|
||
> 量化和AI分析一致看多,建议在回调时逢低做多
|
||
|
||
---
|
||
|
||
*本信号由AI量化系统自动生成,仅供参考,不构成投资建议*
|
||
```
|
||
|
||
### SELL信号示例
|
||
|
||
```markdown
|
||
# 🔴 交易信号: SELL
|
||
|
||
**时间**: 2025-11-30 22:30:15
|
||
**置信度**: 68.0%
|
||
**共识**: QUANT_ONLY
|
||
|
||
---
|
||
|
||
[类似格式,信号为SELL]
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 通知规则
|
||
|
||
### 何时发送通知
|
||
|
||
- ✅ **BUY信号**: 立即发送通知
|
||
- ✅ **SELL信号**: 立即发送通知
|
||
- ❌ **HOLD信号**: 不发送通知(避免噪音)
|
||
|
||
### 消息去重
|
||
|
||
- 每次只发送最新的信号
|
||
- 不会重复发送相同的信号
|
||
|
||
---
|
||
|
||
## 🔐 安全建议
|
||
|
||
### 1. 使用加签(强烈推荐)
|
||
|
||
加签可以验证请求来源,防止webhook被滥用:
|
||
|
||
```yaml
|
||
- DINGTALK_SECRET=SEC你的加签密钥
|
||
```
|
||
|
||
### 2. 限制IP地址(可选)
|
||
|
||
如果服务器IP固定,可以在钉钉机器人设置中配置IP白名单。
|
||
|
||
### 3. 保护webhook地址
|
||
|
||
- ❌ 不要将webhook地址提交到Git仓库
|
||
- ❌ 不要在公开场合分享webhook地址
|
||
- ✅ 使用 `.env.local` 文件存储
|
||
- ✅ 添加 `.env.local` 到 `.gitignore`
|
||
|
||
---
|
||
|
||
## 🐛 故障排查
|
||
|
||
### 问题1: 未收到通知
|
||
|
||
**检查步骤**:
|
||
|
||
1. **确认钉钉配置是否正确**
|
||
```bash
|
||
docker compose logs scheduler | grep "钉钉"
|
||
```
|
||
|
||
期望输出: `📱 钉钉通知已启用`
|
||
|
||
2. **确认是否有BUY/SELL信号**
|
||
```bash
|
||
docker compose logs scheduler | grep "发送钉钉通知"
|
||
```
|
||
|
||
3. **检查钉钉机器人配置**
|
||
- webhook地址是否正确
|
||
- 加签密钥是否匹配
|
||
- 关键词是否配置正确
|
||
|
||
4. **手动测试webhook**
|
||
```bash
|
||
docker compose exec scheduler python -c "
|
||
from notifiers.dingtalk import DingTalkNotifier
|
||
import os
|
||
notifier = DingTalkNotifier(
|
||
webhook_url=os.getenv('DINGTALK_WEBHOOK'),
|
||
secret=os.getenv('DINGTALK_SECRET')
|
||
)
|
||
notifier.send_markdown('测试', '# 测试消息\n\n这是一条测试消息')
|
||
"
|
||
```
|
||
|
||
### 问题2: 发送失败
|
||
|
||
**可能原因**:
|
||
|
||
1. **Webhook地址错误**
|
||
- 检查是否完整复制了webhook URL
|
||
- 确认access_token没有遗漏
|
||
|
||
2. **加签密钥错误**
|
||
- 检查密钥是否以 `SEC` 开头
|
||
- 确认密钥完整
|
||
|
||
3. **网络问题**
|
||
- 检查容器是否能访问外网
|
||
- 尝试 `docker compose exec scheduler ping oapi.dingtalk.com`
|
||
|
||
4. **关键词不匹配**
|
||
- 如果使用"自定义关键词",确保消息包含关键词
|
||
- 推荐使用"加签"方式
|
||
|
||
### 问题3: 消息格式错误
|
||
|
||
**症状**: 收到消息但格式混乱
|
||
|
||
**解决**:
|
||
- 确保使用最新版本的代码
|
||
- 检查日志中是否有错误信息
|
||
- 联系开发者反馈问题
|
||
|
||
---
|
||
|
||
## 📞 支持的通知场景
|
||
|
||
### 当前已支持
|
||
|
||
- ✅ 交易信号通知(BUY/SELL)
|
||
- ✅ 包含量化 + AI分析
|
||
- ✅ 包含价格位和风险建议
|
||
|
||
### 未来计划支持
|
||
|
||
- ⏳ 系统错误通知
|
||
- ⏳ 每日汇总报告
|
||
- ⏳ 重要市场事件提醒
|
||
- ⏳ 仓位管理提醒
|
||
|
||
---
|
||
|
||
## 🔄 取消通知
|
||
|
||
如果需要暂时关闭钉钉通知:
|
||
|
||
### 方法1: 注释环境变量
|
||
|
||
编辑 `docker-compose.yml`:
|
||
|
||
```yaml
|
||
scheduler:
|
||
environment:
|
||
# - DINGTALK_WEBHOOK=... # 注释掉
|
||
# - DINGTALK_SECRET=... # 注释掉
|
||
```
|
||
|
||
### 方法2: 删除机器人
|
||
|
||
在钉钉群中删除机器人即可。
|
||
|
||
### 重新启动服务
|
||
|
||
```bash
|
||
docker compose --profile scheduler restart scheduler
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 最佳实践
|
||
|
||
1. **专用群组**: 建议为交易信号创建专门的钉钉群,避免干扰其他讨论
|
||
2. **多环境隔离**: 测试环境和生产环境使用不同的webhook
|
||
3. **定期检查**: 定期查看通知是否正常,避免错过重要信号
|
||
4. **备份配置**: 保存webhook和密钥的备份,避免丢失
|
||
5. **安全第一**: 始终使用加签,不要分享webhook地址
|
||
|
||
---
|
||
|
||
## 🎉 配置完成
|
||
|
||
完成上述配置后,系统会在生成BUY/SELL信号时自动发送钉钉通知!
|
||
|
||
**下一步**:
|
||
- 等待下一次信号生成(根据SIGNAL_INTERVAL_MINUTES配置)
|
||
- 或手动触发一次: `docker compose exec scheduler python /app/scripts/generate_trading_signal.py`
|
||
- 在钉钉群中查看通知消息
|
||
|
||
祝交易顺利!🚀
|