skills/ftd-detector/SKILL.md
Detects Follow-Through Day (FTD) signals for market bottom confirmation using William O'Neil's methodology. Dual-index tracking (S&P 500 + NASDAQ) with state machine for rally attempt, FTD qualification, and post-FTD health monitoring. Use when user asks about market bottom signals, follow-through days, rally attempts, re-entry timing after corrections, or whether it's safe to increase equity exposure. Complementary to market-top-detector (defensive) - this skill is offensive (bottom confirmation).
npx skillsauth add kavi-lin/stock ftd-detectorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Detect Follow-Through Day (FTD) signals that confirm a market bottom, using William O'Neil's proven methodology. Generates a quality score (0-100) with exposure guidance for re-entering the market after corrections.
Complementary to Market Top Detector:
English:
Japanese:
| Aspect | FTD Detector | Market Top Detector | |--------|-------------|-------------------| | Focus | Bottom confirmation (offensive) | Top detection (defensive) | | Trigger | Market correction (3%+ decline) | Market at/near highs | | Signal | Rally attempt → FTD → Re-entry | Distribution → Deterioration → Exit | | Score | 0-100 FTD quality | 0-100 top probability | | Action | When to increase exposure | When to reduce exposure |
Run the FTD detector script:
python3 skills/ftd-detector/scripts/ftd_detector.py --api-key $FMP_API_KEY
The script will:
API Budget: 4 calls (well within free tier of 250/day)
Present the generated Markdown report to the user, highlighting:
Based on the market state, provide additional guidance:
If FTD Confirmed (score 60+):
If Rally Attempt (Day 1-3):
If No Correction:
NO_SIGNAL → CORRECTION → RALLY_ATTEMPT → FTD_WINDOW → FTD_CONFIRMED
↑ ↓ ↓ ↓
└── RALLY_FAILED ←─────────────┘ FTD_INVALIDATED
| State | Definition | |-------|-----------| | NO_SIGNAL | Uptrend, no qualifying correction | | CORRECTION | 3%+ decline with 3+ down days | | RALLY_ATTEMPT | Day 1-3 of rally from swing low | | FTD_WINDOW | Day 4-10, waiting for qualifying FTD | | FTD_CONFIRMED | Valid FTD signal detected | | RALLY_FAILED | Rally broke below swing low | | FTD_INVALIDATED | Close below FTD day's low |
| Score | Signal | Exposure | |-------|--------|----------| | 80-100 | Strong FTD | 75-100% | | 60-79 | Moderate FTD | 50-75% | | 40-59 | Weak FTD | 25-50% | | <40 | No FTD / Failed | 0-25% |
FMP_API_KEY environment variable or pass via --api-key flag.requests library installed.ftd_detector_YYYY-MM-DD_HHMMSS.jsonftd_detector_YYYY-MM-DD_HHMMSS.mdskills/ftd-detector/references/ftd_methodology.mdskills/ftd-detector/references/post_ftd_guide.mdskills/ftd-detector/references/ftd_methodology.md for full understandingskills/ftd-detector/references/post_ftd_guide.mddevelopment
# earnings-analyst — 個股財報深度分析 > **Trigger**: `財報 [TICKER]` > **Version**: V1.0 > **Data Source**: FMP HTTP REST(`$FMP_API_KEY`) ## 目的 針對單一個股產出**深度財報分析報告**(逐季趨勢、品質指標、估值、分析師共識),涵蓋 sector V1.4 與 `分析 [TICKER]` 既有 protocol **沒有**的「財報層級」深潛內容。 ## 與既有 skill 的差異 | Skill | 重點 | 觸發 | |---|---|---| | `us-stock-analysis` | 估值/技術/情緒 snapshot(yfinance + FMP partial) | Phase 2 fundamentals lane | | `earnings-valuation-forecaster` | 12M 目標價 3×3 敏感度 | ad-hoc / earnings 前 14 天 | | `earnings-trade-analyzer` |
testing
Daily Top N hot themes × Top M short-term movers per theme. Combines theme-detector heat scoring (medium-term) with short-term-target predictions (1d/5d/15d) into a "Tactical Opportunity Radar" recommendation log. Tags concentration WARNING when ≥2 picks share theme. Records FRED + market regime snapshot at recommendation time for future backtest cross-tabs. Standalone — not auto-wired into investment_protocol. Use for daily watchlist refresh / Dashboard推薦面板feed / batch screening across hot themes.
testing
Short-term (1d / 5d / 15d) directional projection for a US stock — "Tactical Opportunity Radar". Outputs target range + confidence breakdown + benchmark-relative alpha + trading meta (stop / position size hint / exit trigger). Each horizon uses independent weights from config/weights.yaml. Refuses to project when source data is stale (returns insufficient_data with reasons). Hard-clamped to prevent cold-start absurd predictions. Use when caller wants short-term directional bias on a specific ticker, NOT for long-term valuation (use earnings-valuation-forecaster for 12-month). Standalone — not auto-wired into investment_protocol.
tools
Shared Finnhub API client used by other skills. Provides rate-limited (60/min), cached, retry-aware access to 17 Finnhub endpoints covering quotes, OHLCV, fundamentals, earnings calendar, earnings surprises, insider transactions, recommendation history, price targets, upgrades/downgrades, dividends, splits, IPOs, and SEC filings. Also exports adapters that normalize Finnhub raw responses into FMP-compatible shapes so that downstream code can swap providers without changing call sites. Use when another skill needs Finnhub data or when building a unified provider layer.