mirror of
https://ghfast.top/https://github.com/aeroxw/easy-tdx.git
synced 2026-09-12 14:34:15 +08:00
feat(screen): v1.15.0 — 强势股排名 + 修复证券类型识别与名称分批查询
新增:强势股排名(screen strength) - 全市场按 5/20/60 日涨幅加权合成强势分,纯离线扫描 - 三种预设:steady(稳健)/breakout(妖股)/balanced(均衡) - CLI: easy-tdx screen strength --preset steady --top 50 --table - Web API: GET /api/v1/market/strength - 支持自定义权重、成交额过滤、并发扫描 修复: - _detect_security_type 代码段不全,ETF/基金/科创板/逆回购被误判为 A 股 - screen strength/rank 名称补齐超 80 只时末尾被丢弃(分批查询) 详见 CHANGELOG.md
This commit is contained in:
@@ -660,6 +660,87 @@ easy-tdx screen rank --from signals.json --sort sharpe --top 10 --table --names
|
||||
| `--names` | 在线补齐股票名称(默认关闭,只查排名中的几十只) |
|
||||
| `--count` | rank 使用最近 N 条 K 线(0=全部,默认 0) |
|
||||
|
||||
#### 强势股排名(strength)
|
||||
|
||||
按 **5 / 20 / 60 日涨幅加权**合成强势分,从全市场选出"最近最强"的股票。**纯离线数据**,读取本地通达信 `.day` 文件,全市场约 30-60 秒(并发可压到 10 秒内)。
|
||||
|
||||
**三种预设模式:**
|
||||
|
||||
| 模式 | 性格 | 权重 (w5/w20/w60) | 波动率惩罚 | 适合 |
|
||||
|------|------|-------------------|-----------|------|
|
||||
| `steady`(默认) | 中长期稳健 | 0.2 / 0.3 / 0.5 | ✅ 除以 vol_20 | 选"稳着涨"的票,妖股被高波动压低 |
|
||||
| `breakout` | 近期妖股爆发 | 0.6 / 0.3 / 0.1 | ❌ 纯加权涨幅 | 选"短期最猛"的票,妖股本身就是高波动 |
|
||||
| `balanced` | 三周期均衡 | 等权 + vol 调整 | ✅ 除以 vol_20 | 不确定时的安全默认 |
|
||||
|
||||
> 💡 **为什么 breakout 不除波动率?** 妖股本质高波动,除以 vol 会把它压下去,与"找妖股"目标矛盾。steady 除以 vol 是为了奖励"稳着涨"的票(vol 小,score 放大)。
|
||||
|
||||
```bash
|
||||
# 中长期稳健强势 Top 50(默认 steady 模式)
|
||||
easy-tdx screen strength --preset steady --top 50 --table
|
||||
|
||||
# 近期妖股爆发 Top 20(补齐股票名称)
|
||||
easy-tdx screen strength --preset breakout --top 20 --names --table
|
||||
|
||||
# 三周期均衡
|
||||
easy-tdx screen strength --preset balanced --top 30 --table
|
||||
|
||||
# 自定义权重(自动归一化,5:3:2 = 0.5:0.3:0.2)
|
||||
easy-tdx screen strength --w5 0.5 --w20 0.3 --w60 0.2 --top 30 --table
|
||||
|
||||
# 并发扫描(推荐 4-8 进程)
|
||||
easy-tdx screen strength --preset steady --top 100 --workers 4 --table
|
||||
|
||||
# 过滤低流动性(最近 5 日日均成交额 ≥ 5000 万)
|
||||
easy-tdx screen strength --preset breakout --top 30 --min-amount 50000000 --table
|
||||
|
||||
# 缩小范围 + 输出到文件
|
||||
easy-tdx screen strength --universe sz --top 30 --output sz_strength.json
|
||||
```
|
||||
|
||||
输出示例(`--table`):
|
||||
|
||||
```
|
||||
[*] 强势股排名 [steady] 共 50 只
|
||||
数据截止: 2026-06-24 | 中长期稳健强势:权重偏 60 日,波动率惩罚,选出稳着涨的票
|
||||
════════════════════════════════════════════════════════════════════════════════
|
||||
排名 代码 名称 现价 5日 20日 60日 波动率 强势分
|
||||
*1 SZ300308 中际旭创 85.20 8.12% 15.34% 30.21% 0.0180 9.52
|
||||
*2 SH600519 贵州茅台 1800.00 3.25% 5.10% 10.05% 0.0120 6.21
|
||||
```
|
||||
|
||||
输出示例(JSON):
|
||||
|
||||
```json
|
||||
{
|
||||
"scan_time": "2026-06-25T10:30:00",
|
||||
"preset": "steady",
|
||||
"preset_desc": "中长期稳健强势:权重偏 60 日,波动率惩罚...",
|
||||
"data_date": 20260624,
|
||||
"total_ranked": 50,
|
||||
"ranking": [
|
||||
{"rank": 1, "code": "300308", "market": "SZ", "name": "中际旭创",
|
||||
"last_close": 85.20, "last_date": 20260624,
|
||||
"ret_5": 0.0812, "ret_20": 0.1534, "ret_60": 0.3021,
|
||||
"vol_20": 0.0180, "strength": 9.52}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
| 参数 | 说明 |
|
||||
|------|------|
|
||||
| `--preset` | 预设模式:`steady`(默认)/ `breakout` / `balanced` |
|
||||
| `--w5` `--w20` `--w60` | 自定义三周期权重(覆盖预设,自动归一化) |
|
||||
| `--vol-adjusted` / `--no-vol-adjusted` | 波动率惩罚开关(覆盖预设) |
|
||||
| `--top` | 返回前 N 名(默认 50) |
|
||||
| `--universe` | `all`(默认)/ `sh` / `sz` / 文件路径 |
|
||||
| `--min-listed-days` | 最小上市天数(默认 65,保证能算 60 日涨幅) |
|
||||
| `--min-amount` | 最近 5 日日均成交额下限(元,默认 0 不过滤) |
|
||||
| `--workers` | 并发进程数:`0` 串行 / `4+` 并发(推荐 4-8) |
|
||||
| `--names` | 在线补齐股票名称(默认关闭) |
|
||||
| `--output` | 输出 JSON 文件(默认 stdout) |
|
||||
|
||||
> ⚠️ **数据时效**:strength 依赖本地 `.day` 文件。输出中的 `data_date` / `last_date` 字段标注数据截止日,请先用 `easy-tdx offline sync` 同步最新数据。
|
||||
|
||||
### 捉妖大师(重点)
|
||||
|
||||
捉妖大师是多周期涨幅共振指标,通过 20/60/120 日涨幅及指数平滑判断短中长线趋势是否同向,用于筛选趋势刚启动的强势股。
|
||||
@@ -841,6 +922,13 @@ curl -X POST "http://localhost:8000/api/v1/quotes" \
|
||||
# 市场统计
|
||||
curl "http://localhost:8000/api/v1/market/stat"
|
||||
|
||||
# 全市场强势股排名(基于本地 vipdoc 数据,扫描约 30-60 秒)
|
||||
# steady = 中长期稳健 / breakout = 近期妖股 / balanced = 均衡
|
||||
curl "http://localhost:8000/api/v1/market/strength?preset=breakout&top_n=20"
|
||||
|
||||
# 自定义权重 + 过滤低流动性(日均成交额 ≥ 5000 万)
|
||||
curl "http://localhost:8000/api/v1/market/strength?w5=0.5&w20=0.3&w60=0.2&min_amount=50000000&top_n=30"
|
||||
|
||||
# 板块信息(标准协议)
|
||||
curl "http://localhost:8000/api/v1/block?filename=block_gn.dat"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user