Release v1.3.0

This commit is contained in:
2026-06-22 22:52:21 +02:00
parent 2b63e5b1d7
commit 62c3899135
11 changed files with 2201 additions and 172 deletions
+118
View File
@@ -0,0 +1,118 @@
# Crypto ATR Signal v1.1 修复报告
修复日期:`2026-06-22`
当前页面版本:`v1.1.0`
## 问题概述
首页信号列表原本会展示 `signals` 表中的历史信号,而不是只展示当前最新已收盘 4H K 线的信号。
这会导致一个问题:
```text
历史 K 线中 ATR 倍数更高的信号,可能排在当前最新 K 线信号前面。
```
因此用户在首页看到的并不完全是“当前最新一根 4H K 线”的信号。
## 问题原因
原首页查询逻辑直接读取 `signals` 表:
```sql
SELECT symbol, direction, multiple, range, atr14, open_time, created_at
FROM signals
ORDER BY CAST(multiple AS REAL) DESC, open_time DESC, symbol ASC
LIMIT 300
```
该查询没有限制:
```sql
WHERE open_time = K线
```
所以历史信号会被一起展示。
## 修复方案
首页先从 `klines` 表中读取当前数据库里的最新 K 线时间:
```sql
SELECT MAX(open_time) AS open_time FROM klines
```
然后只查询该 `open_time` 对应的信号:
```sql
SELECT symbol, direction, multiple, range, atr14, open_time, created_at
FROM signals
WHERE open_time = ?
ORDER BY CAST(multiple AS REAL) DESC, open_time DESC, symbol ASC
LIMIT 300
```
ATR 倍数正序 / 倒序排序仍然保留,但排序范围只限于当前最新已收盘 K 线的信号。
## 修复结果
修复后:
```text
首页 = 当前最新已收盘 K 线信号
历史信号 = 继续保留在数据库中,但不混入首页
```
当前本地验证结果:
```text
数据库历史信号总数:68
最新 K 线信号数:26
首页当前信号:26
```
## 影响范围
影响文件:
```text
webapp.py
```
不影响:
```text
scanner.py 扫描逻辑
ATR 计算逻辑
缺口补抓逻辑
SQLite 数据结构
历史信号保存
实体占比过滤开关
数据清理逻辑
```
## 当前状态
已完成:
- 首页只展示最新已收盘 K 线信号。
- 历史信号继续保留,默认保留 `SIGNAL_RETENTION_DAYS=90` 天。
- ATR 倍数排序继续可用。
- 本地服务已重启验证。
## 后续建议
后续如果需要查看历史信号,建议单独增加:
```text
/history
```
或页面切换:
```text
当前信号 / 历史信号
```
这样首页保持清爽,历史查询也有独立入口。