trading: 日内T/长桥/六合彩文档与脚本 + quant-factor-mining 新目录
This commit is contained in:
@@ -17,14 +17,21 @@
|
||||
| 表 | 列 | 行 |
|
||||
|---|---|---|
|
||||
| **基本面** | 票代码 | 现价/盈亏%/趋势/ATR%/支撑阻力/**策略** |
|
||||
| **策略点位** | 票代码 | 当下入场/止损/🐢海龟入/🐢止损/📊BB上/📊BB下/🌊W50%/🌊止损/📈RSI(2)/📉MACD |
|
||||
| **策略点位** | 票代码 | 当下入场/止损/🧙九转(计数+方向)/🧙九转入/🧙止损/📊BB上/📊BB下/🌊W50%/🌊止损/📈RSI(2)/📉MACD |
|
||||
| **性价比** | 票代码 | 评级/预期利润 |
|
||||
|
||||
每张表都**横向滑动**(1 票 1 列),QQ mobile 用户可以左右翻比较。
|
||||
|
||||
**v3.0** 包含: 综合策略(7 类) + 5 策略点位(海龟/Bollinger/Wave/RSI/MACD)。
|
||||
**v2.0** 包含: 5 策略点位(横向 1 票 1 表)。
|
||||
**v1.0** 包含: 综合策略(纵向 1 票 1 块)。
|
||||
**v3.1** 包含: 综合策略(7 类) + 5 策略点位(🧙九转/Bollinger/Wave/RSI/MACD)。
|
||||
- 🧙 九转 (TD Sequential, Tom DeMark) 替代了 v3.0 的海龟 — 用户 2026-08-23 表示"没空做日内了,用神奇九转"
|
||||
- 九转规则: 连续 9 根 close[i] < close[i-4] = 买入计数 9 (done); 连续 9 根 close[i] > close[i-4] = 卖出计数 9
|
||||
- 输出三行: 计数/方向(多/空)/入场参考(完成时才有)/止损参考(完成时 = 第 9 根收盘)
|
||||
- 算法实现 + 单元测试: 见 `references/td9-td-sequential.md`
|
||||
|
||||
**v3.0** 包含: 综合策略(7 类) + 5 策略点位(海龟/Bollinger/Wave/RSI/MACD)。⚠️ 已弃用海龟。
|
||||
**v2.0** (2026-07-29): 加 5 策略点位 (横向 1 票 1 表)。
|
||||
**v1.0** (2026-07-29): 加综合策略 + 置信度。
|
||||
**原始版本**: 只输出支撑/阻力 + 低吸/高抛。
|
||||
|
||||
## 已知 Pitfall
|
||||
|
||||
@@ -34,40 +41,43 @@
|
||||
|
||||
- MACD 需要 ≥26 根 → **常常拿不到完整数据**, MACD 行可能不显示
|
||||
- Wave 用 [-10:] 10 根 → OK
|
||||
- Bollinger/Turtle/综合策略 用 [-20:] → OK
|
||||
- Bollinger/九转 用 [-20:] → OK (九转实际只用 13 根)
|
||||
- RSI(14) 需要 15 根 → OK
|
||||
- RSI(2) 需要 3 根 → OK
|
||||
|
||||
**对策**: 推送里 MACD 用 `if macd:` 保护。
|
||||
|
||||
### 九转 (TD Sequential) 数据要求
|
||||
|
||||
- 九转至少 13 根 K 线 (1 + 4 + 8, 因为要比较 close[i] 和 close[i-4])
|
||||
- 长桥 candlesticks 返 ~30 根 → 足够
|
||||
- 输出约定: count>=9 显示"完成✓", 5<=count<9 显示"进行中…", count<5 不显示
|
||||
|
||||
## 相关 skill
|
||||
|
||||
- `intraday-regime-detector` — 元策略判别 (R²/ADF/vol), 输出"市场状态 + 推荐策略"
|
||||
- `strategy-management` — 4 策略 (RSI2/VWAP/海龟/早盘动量) + ATR 出场点位
|
||||
|
||||
⚠️ daily_t_analysis 的"海龟"是简化版 (只用 20 日高低点 + 2 ATR 止损),与 strategy-management 的海龟策略定义有差异 — 后者更复杂。
|
||||
⚠️ daily_t_analysis v3.0 已弃用海龟,v3.1+ 用九转替代 — 与 strategy-management 的海龟策略定义仍有差异(后者是 Donchian 通道 + ATR 仓位管理的完整版,九转只是动量耗尽计数)。
|
||||
|
||||
## 版本
|
||||
|
||||
- **v3.0 (2026-07-29)**: 横向 N 列 markdown 表 (基本 + 策略点位 + 性价比)
|
||||
- commit `c1891f3` → Hermes-Scripts
|
||||
- v2.0 (2026-07-29): 加 5 策略点位 (海龟/Bollinger/Wave/RSI/MACD)
|
||||
- commit `450326d` → Hermes-Scripts
|
||||
- v1.0 (2026-07-29): 加综合策略 + 置信度
|
||||
- commit `b566350` → Hermes-Scripts
|
||||
- 原始版本: 只输出支撑/阻力 + 低吸/高抛
|
||||
|
||||
## 推送实测 (v3.0 2026-07-30)
|
||||
## 推送实测 (v3.1 2026-08-23)
|
||||
|
||||
```
|
||||
| 指标 | UNH.US | RGTI.US | QQQI.US | 3416.HK |
|
||||
|:---|:---|:---|:---|:---|
|
||||
| **现价** | 420.57 USD | 13.22 USD | 51.00 USD | 8.655 HKD |
|
||||
| 盈亏% | 🔴-1.3% | 🔴-35.5% | 🔴-3.3% | 🔴-6.8% |
|
||||
| 趋势 | 📉空头 | 📉空头 | 📉空头 | 📈多头 |
|
||||
| ATR% | 3.2% | 8.7% | 2.1% | 0.3% |
|
||||
| 支撑/阻力 | 412.54/431.68 | 13.13/16.12 | 50.96/53.84 | 8.630/8.670 |
|
||||
| **策略** | 反弹做空 ★★☆ | 超跌反弹 ★★☆ | 反弹做空 ★★☆ | 观望 ★☆☆ |
|
||||
| 指标 | UNH.US | RGTI.US | QQQI.US | 3416.HK | 3415.HK |
|
||||
|:---|:---|:---|:---|:---|:---|
|
||||
| **现价** | 390.11 USD | 17.91 USD | 54.24 USD | 8.595 HKD | 79.800 HKD |
|
||||
| 盈亏% | 🔴-8.4% | 🔴-12.6% | 🟢+2.8% | 🔴-7.5% | 🟢+0.6% |
|
||||
| 趋势 | 📉空头 | ↗️偏多 | ↘️偏弱 | ↗️偏多 | ↘️偏弱 |
|
||||
| ATR% | 2.4% | 6.3% | 1.0% | 0.9% | 0.6% |
|
||||
| 支撑/阻力 | 383.83/398.90 | 15.66/18.95 | 53.91/55.98 | 8.405/8.595 | 79.700/81.040 |
|
||||
| **策略** | 反弹做空 ★★☆ | 波段做T ★★☆ | 观望 ★☆☆ | 观望 ★☆☆ | 观望 ★☆☆ |
|
||||
|
||||
**🎯 策略点位**
|
||||
| 指标 | UNH.US | RGTI.US | QQQI.US | 3416.HK | 3415.HK |
|
||||
|:---|:---|:---|:---|:---|:---|
|
||||
| 🧙 九转 | 多 九转买… 7/9 | - 九转… 0/9 | - 九转… 0/9 | - 九转… 0/9 | - 九转… 0/9 |
|
||||
| 🧙 九转入 | - | - | - | - | - |
|
||||
| 🧙 止损 | - | - | - | - | - |
|
||||
```
|
||||
|
||||
## 关联 cron 推送 (都用同样横向 N 列模式)
|
||||
@@ -77,4 +87,4 @@
|
||||
- `8000d3cfed23` A股高息股买入时机 (11:30 BJT) — 8 列横向 + 点位 4 列
|
||||
- `cb187ab5f9fc` 每日做T (21:00 BJT) — 横向 4 列
|
||||
|
||||
**统一 commit**: `0be6e69` 全部切换到横向表 (dividend_alert + cn_dividend_buy_timing) + `c1891f3` (daily_t_analysis)。
|
||||
**统一 commit**: `0be6e69` 全部切换到横向表 (dividend_alert + cn_dividend_buy_timing) + `c1891f3` (daily_t_analysis) + `8669225` (九转替换海龟)。
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
# 神奇九转 (TD Sequential) — 算法 + lib 抽取 + 实战参考
|
||||
|
||||
## 位置
|
||||
|
||||
**主库**: `~/.hermes/scripts/lib/td9.py` (2026-08-23 抽到公用 lib, 4 个脚本共享)
|
||||
|
||||
```python
|
||||
from lib.td9 import td9_levels, td9_summary
|
||||
|
||||
td9 = td9_levels(closes, current) # dict 或 None
|
||||
summary = td9_summary(td9) # 一行短字符串
|
||||
```
|
||||
|
||||
**禁止**: 在任何脚本里复制 `td9_levels()` 本地实现。要改算法只改 `lib/td9.py`, 4 个脚本自动同步。
|
||||
|
||||
## 用途
|
||||
|
||||
`daily_t_analysis.py` v3.1 (2026-08-23 替代 v3.0 海龟) 的核心策略之一。每日持仓推送里给每只票算九转计数 + 方向 + (完成时) 入场/止损参考。**2026-08-23 抽到 `~/.hermes/scripts/lib/td9.py` 公用库, 4 个脚本接入**: `daily_t_analysis.py` / `cn_dividend_buy_timing.py` / `scan_cn.py` / `dca_scanner.py`。
|
||||
|
||||
## 算法 (Tom DeMark TD Sequential)
|
||||
|
||||
```python
|
||||
def td9_levels(closes, current):
|
||||
"""买入九转: 连续 9 根 close[i] < close[i-4]
|
||||
卖出九转: 连续 9 根 close[i] > close[i-4]
|
||||
数据要求: 至少 13 根 K 线 (1 + 4 + 8)"""
|
||||
if len(closes) < 13:
|
||||
return None
|
||||
# 从最新一根往回数,遇不符合条件就 break
|
||||
buy_count = sum(1 for i in range(len(closes)-1, 3, -1)
|
||||
if closes[i] < closes[i-4]
|
||||
for _ in iter(lambda: True, True)
|
||||
if closes[i] < closes[i-4] else break_counting())
|
||||
# 实际用 for-else 模式实现更清晰:
|
||||
buy_count = 0
|
||||
for i in range(len(closes) - 1, 3, -1):
|
||||
if closes[i] < closes[i - 4]:
|
||||
buy_count += 1
|
||||
else:
|
||||
break
|
||||
sell_count = 0
|
||||
for i in range(len(closes) - 1, 3, -1):
|
||||
if closes[i] > closes[i - 4]:
|
||||
sell_count += 1
|
||||
else:
|
||||
break
|
||||
```
|
||||
|
||||
**完成判定**: `count >= 9` → `done=True`,方向由买/卖计数决定。
|
||||
**未完成但有意义**: `count >= 5` → 显示进行中。
|
||||
**入场/止损参考 (仅完成时)**:
|
||||
- 入场 = 当前价 (策略风格: 完成次日 close > 完成当日 high 触发,实际推送里用 current 简化)
|
||||
- 止损 = 第 9 根 K 线收盘价 (`closes[len-9]`)
|
||||
|
||||
## 输出行 (横向 N 列 markdown 表)
|
||||
|
||||
```
|
||||
| 🧙 九转 | 多 九转买✓ 9/9 | 空 九转卖… 5/9 | - 九转… 0/9 |
|
||||
| 🧙 九转入 | 385.50 | - | - |
|
||||
| 🧙 止损 | 380.10 | - | - |
|
||||
```
|
||||
|
||||
- `✓` = 完成 (done=True, count>=9) → 入场/止损有数字
|
||||
- `…` = 进行中 (count>=5 但 <9) → 入场/止损是 `-`
|
||||
- 无显示 = count<5 或横盘
|
||||
|
||||
## 单元测试 (2026-08-23 验证 6/6 通过)
|
||||
|
||||
测试脚本保存在 `/tmp/test_td9.py`,**验证算法独立于 longbridge SDK**(避免每次都拉真实行情调试):
|
||||
|
||||
```python
|
||||
import sys; sys.path.insert(0, '/home/openclaw/.hermes/scripts')
|
||||
from daily_t_analysis import td9_levels
|
||||
|
||||
# 1. 连续跌 14 根 → count=10, done=True, dir=多 (count 可以 >9,继续算"超耗")
|
||||
assert td9_levels([100-i for i in range(14)], 86)['count'] >= 9
|
||||
|
||||
# 2. 连续涨 14 根 → count>=9, dir=空
|
||||
assert td9_levels([80+i for i in range(14)], 93)['direction'] == '空'
|
||||
|
||||
# 3. <13 根 → None
|
||||
assert td9_levels([100-i for i in range(12)], 89) is None
|
||||
|
||||
# 4. 平盘 14 根 → count=0, dir=-
|
||||
assert td9_levels([100]*14, 100)['count'] == 0
|
||||
|
||||
# 5. 振荡 (跌3涨3跌3涨3) → count=0
|
||||
assert td9_levels([100,99,98,97,98,99,100,99,98,99,100,99,98,99], 99)['count'] == 0
|
||||
|
||||
# 6. 部分跌 (前 5 平 + 后 10 跌) → count 在 6 左右, done=False
|
||||
closes = [95]*5 + [100, 99, 98, 97, 96, 95, 94, 93, 92, 91]
|
||||
assert td9_levels(closes, 91)['count'] >= 5 and not td9_levels(closes, 91)['done']
|
||||
```
|
||||
|
||||
## 工作流教训 (2026-08-23)
|
||||
|
||||
1. **算法函数要先单元测试再集成测试** — `daily_t_analysis.py` 顶部 `from longport import openapi` 会拉真实 API,慢且依赖 proxychains。把纯算法函数 (`td9_levels`, `bollinger_levels`, `rsi_levels` 等) 单独 test 一次,确认逻辑对了再跑全脚本。
|
||||
2. **no_agent=true cron 只需改脚本,不动 cron prompt** — cron `cb187ab5f9fc` 的 `script=daily_t_analysis.py` 直接调脚本 stdout,无需编辑 cron prompt。
|
||||
3. **改完即提交 + push** — 同步 `~/.hermes/scripts/` (Hermes-Scripts 仓库) 到 git.hi6k.com,避免下次部署丢失。
|
||||
4. **horizontal N 列 markdown 表 (QQ mobile 可滑动) 是用户偏好** — 1 票 1 列,不要 1 票 1 表。详见 `daily-t-analysis-cron.md`。
|
||||
|
||||
## 4 个使用脚本 (2026-08-23)
|
||||
|
||||
| 脚本 | cron job | 角色 | TD9 用法 |
|
||||
|---|---|---|---|
|
||||
| `daily_t_analysis.py` | `cb187ab5f9fc` BJT 21:00 | 持仓做 T 分析 | 表格 + 🧙九转(计数+方向) + 🧙九转入 + 🧙止损 三行 |
|
||||
| `cn_dividend_buy_timing.py` | `8000d3cfed23` BJT 11:30 | A股每日买入时机 | **入场增强**: `recommend_entry()` 接 td9; 卖出完成 → 🔴升🟡 + 用九转止损价 |
|
||||
| `scan_cn.py` | `5d62894cdaee` BJT 周四 19:30 | A股周扫描 | 阶梯入场表后 + 🧙九转 + 🧙止损 两行 |
|
||||
| `dca_scanner.py` | `84c46e13db14` / `89a3e7a6e6fe` BJT 周四 20:00/21:30 | 港美股周扫描 | 同 scan_cn, 阶梯入场表后 + 🧙两行 |
|
||||
|
||||
## 入场时机增强 (cn_dividend_buy_timing.py 详解)
|
||||
|
||||
TD9 在 `recommend_entry(div_yield, current, ma50, support, atr_pct, trend, td9=None)` 里是**信号增强层**, 不替代 MA50/支撑/趋势等基础条件:
|
||||
|
||||
| TD9 状态 | 对原入场判别的影响 |
|
||||
|---|---|
|
||||
| 买入计数 ≥7 (未完成, 跌势末期) | 🟢今天买 理由加 "+ 🧙九转买 N/9 (跌势末期)" |
|
||||
| 卖出计数 ≥7 (未完成, 涨势末期) | 🟢今天买 理由加 "⚠️🧙九转卖 N/9 (涨势末期,回撤将至)" |
|
||||
| **卖出完成 (done=True, 涨势到顶)** | 🔴不入场 **升级为 🟡等回撤 ★★☆, 止损用九转止损价 (第9根收盘)** |
|
||||
| 买入计数 <5 或 无九转信号 | 不影响原判别 |
|
||||
|
||||
**典型效果** (2026-08-23 实测):
|
||||
- 中国神华 (601088.SH): 九转卖出完成 11/9 → 原本 🔴不入场 → 升级 🟡等回撤 + 九转止损 44.70
|
||||
- 建设银行 (601939.SH): 九转卖出完成 10/9 → 同升级
|
||||
- 邮储银行 (601658.SH): 九转 0/9 → 走原流程, 高息+价<MA50+贴近支撑 → 🟢今天买 ★★★
|
||||
|
||||
**核心价值**: 在用户"吃股息"前提下, 九转避免在涨势到顶 (td9_sell_done) 时买入, 用九转止损价作为新的入场触发参考。
|
||||
|
||||
## 不替代
|
||||
|
||||
- `strategy-management` skill 的"海龟"是复杂版(Donchian 通道 + ATR 仓位管理) — 九转只是做 T 计数指标,不是完整交易系统
|
||||
- `intraday-regime-detector` 的元策略判别(R²/ADF/vol) — 九转只算单票的动量耗尽信号,不管市场状态
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- **🔴 单元测试先于集成**: 改 `td9_levels` 逻辑时先在 `/tmp/test_td9.py` 跑 6 个边界 case, 再 import 到全脚本里跑。`daily_t_analysis.py` 顶部 `from longport import openapi` 会拉真实 API + proxychains, 慢且依赖重, 每次跑调试算法不划算。
|
||||
- **🔴 td9_levels 抽到 lib 别再 copy-paste**: 4 个脚本都依赖 `~/.hermes/scripts/lib/td9.py` 公用库。**禁止** 在任何脚本里复制 `td9_levels()` 实现 — 修改逻辑时只改 `lib/td9.py`, 4 个脚本自动同步。
|
||||
- **🔴 输出格式必须横向 N 列 (用户偏好 2026-07-29)**: 九转在表格里和其他指标一样, 1 票 1 列。`td9_summary()` 返回的短字符串是 cell 内容, 直接拼到 `| col1 | col2 | ... |` 行里。
|
||||
- **🔴 长桥 30 根 K 线限**: K 线少于 13 根时 `td9_levels` 返回 None, 调用方需要保护 (`if td9:`)。`cn_dividend_buy_timing.py` 已经过滤 (`len(closes) >= 13`), 其他新脚本接入时也要保护。
|
||||
- **🔴 九转只是动量耗尽计数**: 不是趋势反转确认。完成信号 (count≥9) 后价格可能继续原方向运行 1-3 根, 实战要结合 MA50 / 支撑 / 趋势等基础条件。**单独用九转做单**风险高。
|
||||
Reference in New Issue
Block a user