Files
Hermes-Skills/openclaw-imports/stock-analysis/references/dca-screening.md
T
Hermes Skills Manager 6770bc9b9d Initial commit: Hermes Agent skills collection
- Trading skills (OKX, dividend, lottery, quantitative)
- Creative skills (ASCII art, diagrams, video)
- Development skills (GitHub, debugging, TDD)
- Research skills (arXiv, blog monitoring)
- Productivity skills (email, documents, notes)
- MCP integration skills
- Custom user skills
2026-07-05 02:31:15 -04:00

163 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DCA Screening (阶梯式买入) — High Dividend Candidates
Find stocks suitable for dollar-cost averaging (laddered buying) with high dividend yields. Combines LongPort data with weighted scoring.
**Last reviewed**: 2026-06-07
---
## DCA Scoring Framework
5-dimension weighted score (0-100) optimized for **income + value + stability**:
| Dimension | Weight | Ideal | Logic |
|-----------|--------|-------|-------|
| Dividend Yield | 30% | >10% | Higher = more income while DCA-ing; cap at 20% |
| PE (TTM) | 20% | 5-15 | Sweet spot: cheap enough for value, not negative |
| PB Ratio | 15% | <1.0 | Below book = margin of safety; <0.5 = deep value |
| 5-Day Volatility | 15% | <3% | Low vol = smoother DCA entries, less timing risk |
| YTD Drawdown | 20% | -5%~-15% | Pullback = better entry; too deep = fundamental risk |
```python
def dca_score(r):
score = 0
# Yield (30%): higher = better, cap at 20%
score += min(r['yield'] / 20.0, 1.0) * 30
# PE (20%): sweet spot 5-15
pe = r['pe']
if pe is None or pe <= 0: score += 5 # negative = risky
elif pe < 5: score += 15 # very cheap
elif pe < 10: score += 20 # sweet spot
elif pe < 15: score += 15
elif pe < 20: score += 10
else: score += 5
# PB (15%): lower = better
pb = r['pb']
if pb is None: score += 5
elif pb < 0.5: score += 15 # deep value
elif pb < 1.0: score += 12 # below book
elif pb < 1.5: score += 8
else: score += 4
# Volatility (15%): lower 5d change = better for DCA
abs_5d = abs(r['five_d'])
if abs_5d < 1: score += 15
elif abs_5d < 3: score += 12
elif abs_5d < 5: score += 8
else: score += 4
# YTD dip (20%): negative = better entry
ytd = r['ytd']
if ytd < -10: score += 20 # great entry
elif ytd < -5: score += 15
elif ytd < 0: score += 12
elif ytd < 5: score += 8
else: score += 4 # too hot
return score
```
## LongPort Data Fetching
```python
from longport.openapi import CalcIndex
indexes = [
CalcIndex.PeTtmRatio,
CalcIndex.PbRatio,
CalcIndex.DividendRatioTtm,
CalcIndex.TotalMarketValue,
CalcIndex.TurnoverRate,
CalcIndex.FiveDayChangeRate,
CalcIndex.YtdChangeRate,
]
# Batch in groups of 10
resp = ctx.calc_indexes(symbols, indexes)
for item in resp:
dy = float(item.dividend_ratio_ttm) if item.dividend_ratio_ttm else 0
pe = float(item.pe_ttm_ratio) if item.pe_ttm_ratio else None
pb = float(item.pb_ratio) if item.pb_ratio else None
cap = float(item.total_market_value) if item.total_market_value else 0
```
## Candidate Universe (2026-06 snapshot)
### 🇭🇰 Hong Kong — High Dividend Blue Chips
| Code | Name | Yield | PE | PB | Category |
|------|------|-------|-----|-----|----------|
| 3968.HK | 招商银行 | 6.9% | 7.1 | 0.95 | 银行 (破净) |
| 2318.HK | 中国平安 | 5.4% | 6.8 | 0.89 | 保险 (破净) |
| 0728.HK | 中国电信 | 6.1% | 12.7 | 0.86 | 电信 (央企) |
| 1398.HK | 工商银行 | 5.1% | 5.8 | 0.55 | 银行 (破净) |
| 0883.HK | 中海油 | 5.2% | 8.9 | 1.33 | 能源 |
| 0267.HK | 中信股份 | 4.5% | 6.1 | 0.46 | 综合 (破净) |
| 3988.HK | 中国银行 | ~5% | ~5 | ~0.5 | 银行 (破净) |
| 0939.HK | 建设银行 | ~5% | ~5 | ~0.5 | 银行 (破净) |
| 3416.HK | AGX国指兑 | 18.6% | N/A | N/A | 高息ETF (covered call) |
| 3417.HK | AGX恒科备兑 | 18.8% | N/A | N/A | 高息ETF (covered call) |
| 1088.HK | 中国神华 | 7.0% | 16.7 | 1.82 | 能源 (煤) |
**港股 DCA 特点**
- 银行股大面积破净(PB<1),适合长期收息
- 央企分红稳定,但增长有限
- 高息ETF3416/3417yield极高但属covered call策略,capital appreciation受限
### 🇺🇸 US — BDCs (Business Development Companies)
| Ticker | Name | Yield | PE | PB | Profile |
|--------|------|-------|-----|-----|---------|
| HTGC.US | Hercules Capital | 10.5% | 8.5 | 1.26 | 科技BDC龙头,YTD-14% |
| ARCC.US | Ares Capital | 10.2% | 11.7 | 0.96 | 最大BDCPB<1 |
| MAIN.US | Main Street Capital | 5.9% | 11.3 | 1.56 | 月分红+补充分红 |
| GAIN.US | Gladstone Investment | 6.2% | 3.3 | 0.91 | 小型BDC |
| GLAD.US | Gladstone Capital | 9.3% | 10.2 | 0.90 | 收入型BDC |
| HRZN.US | Horizon Technology | 25.4% | 14.6 | 0.94 | ⚠️ 高息但风险高 |
| FSK.US | FS KKR Capital | 22.1% | -5.5 | 0.57 | ⚠️ PE为负,亏损 |
| PSEC.US | Prospect Capital | 23.8% | -6.8 | 0.37 | ⚠️ PE为负,分红可持续性存疑 |
### 🇺🇸 US — mREITs (Mortgage REITs)
| Ticker | Name | Yield | PE | PB | Profile |
|--------|------|-------|-----|-----|---------|
| NLY.US | Annaly Capital | 13.2% | 7.7 | 1.07 | 最大agency mREIT |
| AGNC.US | AGNC Investment | 14.2% | 9.0 | 1.14 | agency MBS |
| ARR.US | Armour Residential | 16.8% | 9.3 | 0.91 | 住宅mREIT |
| DX.US | Dynex Capital | 15.8% | 11.1 | 0.98 | 多元mREIT |
### 🇺🇸 US — Blue Chip Dividend
| Ticker | Name | Yield | PE | Profile |
|--------|------|-------|-----|---------|
| VICI.US | VICI Properties | 6.4% | 9.8 | 娱乐REITTriple-net |
| T.US | AT&T | 4.9% | 7.5 | 电信,降息受益 |
| MO.US | Altria Group | 5.8% | 15.0 | 烟草,稳定现金流 |
| BTI.US | British American Tobacco | 5.3% | 12.6 | 国际烟草 |
| XOM.US | Exxon Mobil | ~3.5% | ~14 | 能源巨头 |
| O.US | Realty Income | 5.3% | 50.6 | 月分红REITPE偏高) |
### 🇺🇸 US — High Yield ETFs
| Ticker | Name | Yield | Strategy |
|--------|------|-------|----------|
| JEPI.US | JPMorgan Equity Premium Income | 8.3% | ELN + stock selection |
| JEPQ.US | JPMorgan NASDAQ Equity Premium | 10.4% | NASDAQ版JEPI |
| SPYI.US | Neos S&P 500 High Income | 11.9% | S&P 500 covered call |
| QYLD.US | Global X NASDAQ 100 CC | 11.7% | ATM calls on QQQ |
| SVOL.US | Simplify Volatility Premium | 22.3% | 波动率溢价 |
## Pitfalls
- **⚠️ Ultra-high yield (>20%) = red flag**: HRZN/FSK/PSEC/SVOL yield 20%+ but PE is negative — recent losses. Dividend sustainability at risk. Always check PE > 0 before recommending.
- **⚠️ mREITs are rate-sensitive**: NLY/AGNC/DX/ARR depend on net interest margin. Fed rate cuts = tailwind; rate hikes = headwind. Best DCA during rate-cutting cycles.
- **⚠️ Covered call ETFs cap upside**: QYLD/JEPQ/SPYI generate income by selling calls — total return may lag underlying index in bull markets. DCA works better in range-bound markets.
- **⚠️ HK bank PB<1 is structural**: Chinese bank "破净" has persisted for years — it reflects real estate risk, not necessarily a bargain. Still fine for dividend income but don't expect PB reversion.
- **⚠️ BDC vs mREIT**: BDCs (HTGC/ARCC/MAIN) have more diversified income sources and typically more stable dividends than mREITs. Prefer BDCs for conservative DCA.
- **Seasonality**: US ex-dividend dates cluster around Feb/May/Aug/Nov for quarterly payers. Plan DCA entries to capture dividends.
## DCA Strategy Tips
1. **3-5 price levels**: Set 3-5 buy levels below current price, spaced 5-10% apart
2. **Equal dollar amounts**: Invest same $ amount at each level (not equal shares)
3. **Dividend reinvestment**: DRIP accelerates compounding during DCA accumulation
4. **Sector diversification**: Mix REIT + BDC + utility + telecom — don't over-concentrate
5. **HK + US mix**: HK for value (low PE/PB), US for yield (higher dividend rates)