← Back to Skills Marketplace
clawdiri-ai

Follow-Through Day (FTD) Detector

by RunByDaVinci · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
111
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install einstein-research-ftd-dv
Description
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...
README (SKILL.md)

Follow-Through Day (FTD) Detector

Goal Chain: L0 Medici Enterprises → L1 Einstein Research → L2 Market Timing

Purpose

Detects Follow-Through Day (FTD) signals for market bottom confirmation using William O'Neil's methodology. This skill helps identify when it's safer to increase equity exposure after a market correction. It is the offensive counterpart to the defensive market-top-detector skill.

How It Works

This skill implements a state machine that tracks the S&P 500 (SPY) and NASDAQ (QQQ) for signs of a market bottom.

State Machine:

  1. Correction: The market is in a downtrend. The skill is looking for a potential bottom.
  2. Rally Attempt: A significant up-day occurs after a new low, initiating a "rally attempt". The skill starts a day count.
  3. FTD Watch: Between days 4 and 10 of the rally attempt, the skill looks for a Follow-Through Day.
  4. FTD Confirmed: A valid FTD occurs. The market is considered to be in a "confirmed uptrend".
  5. Post-FTD Monitoring: The skill monitors the health of the confirmed uptrend for signs of failure (e.g., immediate sharp reversals).

FTD Rules (O'Neil Methodology)

  • Rally Attempt Start (Day 1): The index closes higher after a new low, or holds above the low for a second day.
  • FTD Qualification (Day 4-10): A major index (SPY or QQQ) must close up >1.5% on higher volume than the previous day.
  • Confirmation: Both SPY and QQQ should ideally confirm the FTD within a day or two of each other for the strongest signal.
  • Failure: An FTD is considered failed if the index undercuts the low of the rally attempt day.

Usage

This skill is run via a CLI tool, typically as part of a daily market analysis cron job.

# Run the FTD analysis for the latest market data
einstein-research ftd

# Output (example)
{
  "status": "FTD_CONFIRMED",
  "details": "Follow-Through Day confirmed on 2026-03-14 for SPY.",
  "spy": {
    "state": "FTD_CONFIRMED",
    "rally_attempt_start_date": "2026-03-10",
    "day_count": 5,
    "ftd_date": "2026-03-14",
    "ftd_price_change_pct": 1.8,
    "ftd_volume_change_pct": 25.1
  },
  "qqq": {
    "state": "FTD_WATCH",
    "rally_attempt_start_date": "2026-03-11",
    "day_count": 4,
    "ftd_date": null
  },
  "recommendation": "Market in confirmed uptrend. Consider increasing equity exposure cautiously. Monitor for confirmation on QQQ."
}

Data Sources

  • yfinance: Daily OHLCV data for SPY and QQQ.
  • Local Cache: Data is cached locally to avoid redundant downloads.

Integration

  • Daily Cron: Run einstein-research ftd after market close each day.
  • Alerting: If status changes to RALLY_ATTEMPT or FTD_CONFIRMED, send a notification to Omer.
  • DaVinciOS Dashboard: The output of this skill can be used to update a market-timing indicator on the main dashboard.

When to Use

  • After a market correction of 10% or more.
  • When looking for a signal to start buying stocks again.
  • To confirm if a recent market bounce has strength.

This skill should be used in conjunction with other indicators (like market breadth, sentiment, and the market-top-detector) for a complete picture.

Usage Guidance
This package appears to implement the FTD detector code it claims, but there are clear inconsistencies you should resolve before running it: - Expectation vs reality: The registry/metadata says no environment variables, yet the code requires an FMP API key (FMP_API_KEY) and will raise if it's missing. Decide whether you'll provide an FMP key or update the code to use yfinance (or another declared source). - Undeclared dependencies: fmp_client.py imports requests; README suggests yfinance and pandas. Install and verify Python 3.8+ and the correct Python packages (requests, pandas, yfinance if intended). Prefer running in a virtualenv or container. - Notifications are vague: SKILL.md mentions sending alerts to 'Omer' and updating a 'DaVinciOS Dashboard' but no endpoints/credentials are provided. Ask the author how alerts are delivered (email, Slack, webhook?) and inspect any notification code before allowing it to run with network access. - Network calls: The scripts make outbound HTTPS calls to financialmodelingprep.com. If you provide an API key, treat it as a secret — store it securely and only provide it to code you trust. Review fmp_client.py to confirm it only calls expected endpoints. - Safe testing: Run the scripts in a sandboxed environment (offline or with egress controls) first, inspect generated reports, and confirm no unexpected outbound destinations are used. If you plan to run it on a schedule/cron, add explicit, auditable notification configuration rather than relying on unspecified behavior. If you cannot get clarifications from the publisher, consider the skill suspicious and either (a) run locally in a sandbox with no secret keys, or (b) decline installation until metadata and notification behavior are fixed.
Capability Analysis
Type: OpenClaw Skill Name: einstein-research-ftd-dv Version: 0.1.0 The skill bundle is a legitimate financial analysis tool designed to detect market bottom signals using the William O'Neil Follow-Through Day (FTD) methodology. It utilizes a standard API client (fmp_client.py) to fetch data from the Financial Modeling Prep API and implements a transparent state machine for market tracking (rally_tracker.py). No indicators of data exfiltration, malicious execution, or harmful prompt injection were found; the code and documentation (SKILL.md, README.md) are consistent and focused entirely on market timing analysis.
Capability Assessment
Purpose & Capability
The skill's stated purpose (detect Follow-Through Days for SPY/QQQ) matches the code's functionality, but the registry/metadata claims no required environment variables or binaries while the code clearly expects an FMP API key (FMP_API_KEY) and Python HTTP libraries. README and SKILL.md also mention yfinance as an alternative data source, but the main orchestrator (scripts/ftd_detector.py) imports and instantiates an FMPClient that requires a key — the 'use Yahoo Finance' path is not implemented in the shown main script. These mismatches are incoherent with what someone would expect from the declared metadata.
Instruction Scope
SKILL.md directs the agent to run a CLI and to 'send a notification to Omer' and 'update DaVinciOS Dashboard' when signals change, but no delivery endpoints, credentials, or implementation details for those notifications are included in the repository. That vagueness grants broad discretion (where/how to send alerts) and could be abused. The instructions otherwise stay within market-analysis scope (fetch prices, run state machine), but they reference sending notifications and dashboard updates without defined targets.
Install Mechanism
There is no install spec (instruction-only registry entry) which reduces installation risk, but the repository contains Python scripts that require packages (requests is imported in fmp_client.py; README lists yfinance and pandas). The metadata does not declare these dependencies or provide a reproducible install. No downloads from external or untrusted URLs are present in the manifest; code uses an external API (financialmodelingprep.com) via HTTPS.
Credentials
The registry says 'Required env vars: none', but fmp_client.py will raise if FMP_API_KEY is not provided (it reads FMP_API_KEY from env and errors). That is a direct mismatch: a network-facing API key is required by the code yet not declared. Additionally, README suggests optional FMP API key vs Yahoo, further increasing ambiguity. Secrets/credentials are therefore requested by the code but not surfaced in metadata or SKILL.md, which is disproportionate and unexpected.
Persistence & Privilege
The skill does not request always:true, does not modify other skills or platform configuration, and is user-invocable only. There is no install-time persistent agent privilege requested in the metadata. Running the scripts will make outbound API calls (to FMP) but that is proportional to the declared data-source purpose.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install einstein-research-ftd-dv
  3. After installation, invoke the skill by name or use /einstein-research-ftd-dv
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release
Metadata
Slug einstein-research-ftd-dv
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Follow-Through Day (FTD) Detector?

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... It is an AI Agent Skill for Claude Code / OpenClaw, with 111 downloads so far.

How do I install Follow-Through Day (FTD) Detector?

Run "/install einstein-research-ftd-dv" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Follow-Through Day (FTD) Detector free?

Yes, Follow-Through Day (FTD) Detector is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Follow-Through Day (FTD) Detector support?

Follow-Through Day (FTD) Detector is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Follow-Through Day (FTD) Detector?

It is built and maintained by RunByDaVinci (@clawdiri-ai); the current version is v0.1.0.

💬 Comments