跳到正文
cccskills
免费在 GitHub 公开

earnings-trade-analyzer

Screen stocks after earnings announcements using five factors: price gaps, prior price trends, trading volume, and positions relative to two moving averages. Compare candidates with scores out of 100, A–D grades, and JSON and Markdown reports.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Analyze recent post-earnings stocks using a 5-factor scoring system (Gap Size, Pre-Earnings Trend, Volume Trend, MA200 Position, MA50 Position). Scores each stock 0-100 and assigns A/B/C/D grades. Use when user asks about earnings trade analysis, post-earnings momentum screening, earnings gap scoring, or finding best recent earnings reactions.

实测评分 未实测

查看安装方法

适用场景

  • Comparing stocks after recent earnings announcements
  • Screening candidates by lookback period and market capitalization
  • Reviewing each stock’s strongest and weakest scoring factors
  • Generating structured earnings reaction reports

包含的文件(21)

  • SKILL.md7.2 KB
  • references/scoring_methodology.md3.8 KB
  • requirements.txt204 B
  • scripts/_fmp_compat.py5.8 KB
  • scripts/_market_calendar.py11.1 KB
  • scripts/analyze_earnings_trades.py23.8 KB
  • scripts/calculators/__init__.py38 B
  • scripts/calculators/gap_size_calculator.py5.0 KB
  • scripts/calculators/ma200_calculator.py2.4 KB
  • scripts/calculators/ma50_calculator.py2.2 KB
  • scripts/calculators/pre_earnings_trend_calculator.py3.0 KB
  • scripts/calculators/volume_trend_calculator.py3.9 KB
  • scripts/fmp_client.py20.6 KB
  • scripts/report_generator.py9.6 KB
  • scripts/scorer.py3.9 KB
  • scripts/tests/conftest.py307 B
  • scripts/tests/test_cli_reports.py7.3 KB
  • scripts/tests/test_earnings_trade_analyzer.py85.3 KB
  • scripts/tests/test_fmp_client_historical.py2.6 KB
  • scripts/tests/test_fmp_stable_migration.py2.6 KB
  • scripts/tests/test_market_calendar_contract.py5.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Earnings Trade Analyzer - Post-Earnings 5-Factor Scoring

Analyze recent post-earnings stocks using a 5-factor weighted scoring system to identify the strongest earnings reactions for potential momentum trades.

When to Use

  • User asks for post-earnings trade analysis or earnings gap screening
  • User wants to find the best recent earnings reactions
  • User requests earnings momentum scoring or grading
  • User asks about post-earnings accumulation day (PEAD) candidates

Prerequisites

  • FMP API key (set FMP_API_KEY environment variable or pass --api-key)
  • Free tier (250 calls/day) is sufficient for default screening (lookback 2 days, top 20)
  • Paid tier recommended for larger lookback windows or full screening

Workflow

Step 1: Run the Earnings Trade Analyzer

Execute the analyzer script:

# Default: last 2 days of earnings, top 20 results
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py --output-dir reports/

# Custom lookback and market cap filter
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
  --lookback-days 5 \
  --min-market-cap 1000000000 \
  --top 30 \
  --output-dir reports/

# Deterministic anchor date (America/New_York); the window is anchored on the
# ET calendar date, not the runner's local clock. For reproducible runs/tests.
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
  --as-of 2026-09-15 \
  --output-dir reports/

# With entry quality filter
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
  --apply-entry-filter \
  --output-dir reports/

Degraded endpoint / budget fallback for scheduled reviews

If the analyzer reports a 404, an implausible empty earnings calendar, or exhausts its API-call budget before producing scored candidates during a scheduled after-close/pre-market run, do not report "no earnings reactions" immediately. A clean empty response over a date window containing at least one XNYS session exits 1 with ZERO_RESULT_REASON=earnings_calendar_empty_with_market_sessions. If the shared XNYS calendar cannot classify the window, it exits 1 with ZERO_RESULT_REASON=market_calendar_unavailable. Budget or daily rate-limit exhaustion during profile fetching exits 1 with ZERO_RESULT_REASON=profiles_budget_exhausted. Treat each as a failed run to retry or fall back on, not a quiet day. Only a clean empty response over a zero-session window exits 0 as ZERO_RESULT_REASON=no_earnings_rows.

  1. First retry once with a narrower liquid-universe configuration so the full 5-factor scorer has a chance to complete, for example:
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
  --lookback-days 2 \
  --min-market-cap 5000000000 \
  --top 20 \
  --max-api-calls 600 \
  --output-dir reports/<routine-date>
  1. If the scored run still returns no candidates or cannot complete, verify the same range through the stable endpoint used by the compatibility shim and clearly label the result as an ungraded fallback:
curl "https://financialmodelingprep.com/stable/earnings-calendar?from=YYYY-MM-DD&to=YYYY-MM-DD&apikey=$FMP_API_KEY"

Then optionally enrich returned US tickers through the analyzer's stable-first FMP client or per-symbol /stable/quote?symbol=<ticker> calls to rank by same-day changesPercentage, market cap, and liquidity. Use legacy /api/v3 quote calls only as a legacy-key fallback after stable has failed. Present these as preliminary / ungraded reactions because the 5-factor scorer did not run; do not assign A/B/C/D grades from the fallback alone.

No-candidate output pitfall: The analyzer may print Candidates after filtering: 0 / No candidates found matching criteria. and exit successfully without writing an earnings_trade_analyzer_*.json file. In that case, do not try to run PEAD Mode B from a nonexistent candidate file. Say explicitly that no scored analyzer JSON was produced, run the endpoint/quote enrichment fallback above if the routine needs an earnings section, and label any names as manual-review only. This success-exit path does not cover budget exhaustion during profile fetching: that case exits 1 (ZERO_RESULT_REASON=profiles_budget_exhausted) instead.

Empty windows and today-only runs

The earnings calendar window is inclusive and uses the America/New_York calendar date from --as-of (or the current ET date). A clean provider [] is a benign quiet-window result only when the shared XNYS calendar successfully counts zero exchange sessions in that exact window, such as a weekend or holiday. If the window contains an XNYS session, the same clean [] exits 1 with ZERO_RESULT_REASON=earnings_calendar_empty_with_market_sessions so a provider drop is not reported as a quiet day. If the XNYS calendar cannot be queried, the run also exits 1 with ZERO_RESULT_REASON=market_calendar_unavailable.

--lookback-days 0 is valid and queries exactly the single ET as-of date. Use it after the relevant announcements have been published (normally after the session close); an empty response on an XNYS session remains intentionally fail-closed. A non-empty response whose rows do not carry a symbol retains the separate ZERO_RESULT_REASON=no_earnings_rows behavior; that case is not the literal-empty-list session check above.

Step 2: Review Results

  1. Read the generated JSON and Markdown reports
  2. Load references/scoring_methodology.md for scoring interpretation context
  3. Focus on Grade A and B stocks for actionable setups

Step 3: Present Analysis

For each top candidate, present:

  • Composite score and letter grade (A/B/C/D)
  • Earnings gap size and direction
  • Pre-earnings 20-day trend
  • Volume ratio (20-day vs 60-day average)
  • Position relative to 200-day and 50-day moving averages
  • Weakest and strongest scoring components

Step 4: Provide Actionable Guidance

Based on grades:

  • Grade A (85+): Strong earnings reaction with institutional accumulation - consider entry
  • Grade B (70-84): Good earnings reaction worth monitoring - wait for pullback or confirmation
  • Grade C (55-69): Mixed signals - use caution, additional analysis needed
  • Grade D (<55): Weak setup - avoid or wait for better conditions

Output

  • earnings_trade_analyzer_YYYY-MM-DD_HHMMSS.json - Structured results with schema_version "1.0"
  • earnings_trade_analyzer_YYYY-MM-DD_HHMMSS.md - Human-readable report with tables

Unknown earnings timing

FMP does not confirm a bmo/amc session for every earnings row; unconfirmed rows report earnings_timing: "unknown" and the gap calculation assumes the AMC window as a fallback. Both reports surface timing_unknown_count out of timing_candidates_total so this assumption stays visible rather than blending unnoticed into the scores.

Resources

  • references/scoring_methodology.md - 5-factor scoring system, grade thresholds, and entry quality filter rules

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Plan and assess backtests, which test trading rules against historical data. Examine sensitivity to rule changes, trading costs, and data bias, then use supplied performance metrics to generate a structured evaluation with reasons that block adoption.

中文简介正在准备中。当前显示英语简介。

  • Define a backtesting plan for rule-based trading
  • Test sensitivity to parameters and trading costs
  • Investigate suspiciously strong backtest results
tradermonty/claude-trading-skills32332026年10月21日 更新

Analyze chart images showing how broadly US stocks are participating in market trends. Assess medium-term conditions and short-term signals, then produce an English report with positioning guidance, alternative scenarios, and risks based on the visible data.

中文简介正在准备中。当前显示英语简介。

  • Assessing the market cycle from an S&P 500 breadth chart
  • Checking short-term signals in an uptrend stock ratio chart
  • Comparing medium-term and short-term market signals
tradermonty/claude-trading-skills32332026年10月21日 更新

Assess how broadly US stock market gains are shared across stocks using public CSV data and optional charts. Produce English reports covering market conditions, trading signals, scenarios, and positioning for different investment timeframes.

中文简介正在准备中。当前显示英语简介。

  • Checking how broadly US stocks are participating in a market rise
  • Reviewing medium- to long-term market positioning
  • Assessing short-term swing trading signals
tradermonty/claude-trading-skills32332026年10月21日 更新

Turn VCP screening results, which identify narrowing price swings, into breakout trade plans. Calculate entry, stop-loss, target prices, and position sizes using worst-case entries, while applying portfolio risk limits and producing Alpaca-compatible order templates.

中文简介正在准备中。当前显示英语简介。

  • Planning entries, stop-losses, and profit targets for VCP candidates
  • Calculating position sizes from account size and risk limits
  • Checking total portfolio risk and sector exposure
tradermonty/claude-trading-skills32332026年10月21日 更新

Screen US growth stocks with William O'Neil's CANSLIM method, which evaluates seven factors including earnings, price strength, trading volume, and market direction. Receive ranked candidates with composite scores, factor breakdowns, market warnings, and data quality notes.

中文简介正在准备中。当前显示英语简介。

  • Find US stocks with earnings growth and price momentum
  • Compare a chosen list of stocks using CANSLIM scores
  • Screen a sector-focused stock list
tradermonty/claude-trading-skills32332026年10月21日 更新

Combine three reports on crowded positions, failed reactions to news, and weekly price reversals into one trading setup status. Identify missing or invalid evidence and determine whether the setup is ready for planning.

中文简介正在准备中。当前显示英语简介。

  • Combine three contrarian strategy reports
  • Check which confirmations are still missing
  • Find stale or inconsistent input reports
tradermonty/claude-trading-skills32332026年10月21日 更新

查看 tradermonty 的全部技能

报告此技能的问题