Communitygithub.com

jwd2a/skills

Analysiert Justins Aktienportfolio mit Benchmarking gegen den S&P 500 (SPY).

Was ist skills?

Dieses Skill-Paket bietet eine umfassende Suite zur Aktienportfolio-Analyse, speziell zugeschnitten auf Justins Portfolio mit Benchmarking gegen den S&P 500 (SPY). Es umfasst Module zur Berechnung von Volatilität, Korrelation, Sortino-Ratio, Diversifikation und Wachstum, sowie zur Verwaltung von Positionen und Preisabrufen. Unterstützte Plattformen sind Python-Skripte und CLI-Tools, die auf Finanzdaten von Finnhub, AlphaVantage und Yahoo Finance zugreifen. Die Analysen können in verschiedenen Zeiträumen (z. B. 90 Tage oder 180 Tage) durchgeführt werden und liefern Slack-formatierte Ausgaben für benutzerdefinierte Reports. Zusätzlich enthält das Skill einen Trailing-Stop-Monitor (Beta-bereinigt), einen Momentum-Screener (für S&P 500 oder eigene Bullpen-Auswahl) und einen Rotation-Tracker zum Protokollieren von Portfolio-Transaktionen. Die Datenquellen werden bewusst mit Blick auf API-Ratenlimits gewählt (z. B. 3 Sekunden Verzögerung zwischen AlphaVantage-Abfragen).

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jwd2a/skills/tree/HEAD/portfolio

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Portfolio-Analyse-Skill

Analysiert Justins Aktienportfolio mit Benchmarking gegen den S&P 500 (SPY).

Dateien

  • portfolio.py — Portfolio-Klasse zur Verwaltung von Positionen
  • analyze.py — Analyse-Engine (Volatilität, Korrelation, Sortino, Diversifikation, Wachstum)
  • prices.py — Modul zum Abrufen von Kursen

Verwendung

Portfolio aus Fidelity-CSV aktualisieren

from portfolio import Portfolio
p = Portfolio()
p.load_from_fidelity_csv("/pfad/zu/export.csv")
p.save()

Analyse ausführen

python analyze.py                    # 90-Tage-Standard
python analyze.py --days 180         # eigener Zeitraum
python analyze.py --json portfolio.json --days 60

Ausgabe

Slack-formatierter Text mit:

  • Volatilität pro Position und Gesamtportfolio (annualisiert)
  • Korrelationsmatrix
  • Diversifikationsscore
  • Sortino-Ratio (0 % risikofreier Zinssatz)
  • Wachstum im Vergleich zum SPY-Benchmark

Trailing-Stop-Überwachung

trailing_stops.py — Beta-angepasste Volatilitäts-Trailing-Stops für jede Position.

Funktionsweise

  • Berechnet 30-Tage-rollierende annualisierte Volatilität und Beta zum SPY
  • Verfolgt den höchsten Kurs jeder Position seit dem letzten Reset
  • Berechnet den bereinigten Rückgang = Rohrückgang vom Höchststand − (Beta × SPY-Rückgang vom Höchststand)
  • Alarmiert, wenn der bereinigte Rückgang 1,5× die tägliche Volatilität an zwei aufeinanderfolgenden Handelstagen überschreitet
  • Zustand wird in stops_state.json gespeichert

Verwendung

python trailing_stops.py --status          # Zeigt aktuelle Werte für alle Positionen
python trailing_stops.py --check           # Tägliche Überwachung (löst Alarm bei Verletzung aus)

Ausgabe

  • --status: Aktueller Kurs, Höchststand, Volatilität, Beta, Abstand zum Stop-Level
  • --check: Alarm bei Verletzung, sonst „alles klar“. Setzt den Zustand nach Alarm zurück.

Berichte

report.py — Portfolio-Berichterstattung mit mehreren Rhythmen und Slack-formatierter Ausgabe.

Verwendung

python report.py --cadence daily       # Kurze tägliche Zusammenfassung (Finnhub Live-Kurse)
python report.py --cadence weekly      # Wöchentliche Performance + Trailing-Stops
python report.py --cadence monthly     # Vollständige Analyse, 30-Tage-Rückblick
python report.py --cadence quarterly   # 90-Tage + Momentum-Trends + Gewichtsabweichung
python report.py --cadence yearly      # 252-Tage + Jahresranking + Diversifikationstrend

Rhythmus-Details

  • Täglich: ~10–15 Zeilen. Live-Kurse, Positionsänderungen, Beste/Schlechteste, SPY-Vergleich
  • Wöchentlich: ~20 Zeilen. Wöchentliche Änderungen, Trailing-Stop-Abstände, Volatilität
  • Monatlich: Vollständiges Paket — Volatilität, Korrelationsmatrix, Sortino, Diversifikation, Wachstum vs. SPY, Gewinn/Verlust, Trailing-Stops
  • Vierteljährlich: Monatlich + Momentum-Trends (beschleunigend/verlangsamend), Gewichtsabweichung vom gleichgewichteten Portfolio
  • Jährlich: Monatlich + Jahresranking, Diversifikationsscore-Trend pro Quartal

Datenquellen

  • Täglich: Finnhub Live-Kurse (keine Ratenlimit-Probleme)
  • Wöchentlich+: AlphaVantage historische Kurse (3s Verzögerung zwischen Abfragen zur Ratenbegrenzung)

Momentum-Screener

momentum_screener.py — Durchsucht den Markt nach den besten Momentum-Aktien mit Yahoo-Finance-Daten.

Verwendung

python3 momentum_screener.py                          # Standard: Top 20 nach 10-Tage-Momentum
python3 momentum_screener.py --lookback 5             # 5-Tage-Momentum
python3 momentum_screener.py --lookback 20            # 20-Tage (1 Monat)
python3 momentum_screener.py --top 10                 # Top 10 Ergebnisse
python3 momentum_screener.py --universe bullpen       # Nur Bullpen-Aktien durchsuchen
python3 momentum_screener.py --universe sp500         # Ganzer S&P 500
python3 momentum_screener.py --min-volume 500000      # Mindestdurchschnittsvolumen-Filter
python3 momentum_screener.py --compare                # Markiert aktuelle Bestände in den Ergebnissen
python3 momentum_screener.py --json                   # JSON-Ausgabe

Ausgabe

Pro Aktie: Rohrendite, annualisierte Volatilität, risikoadjustiertes Momentum, Aufwärtstage-Konsistenz, Durchschnittsvolumen.

Rotation-Tracker

rotation_tracker.py — Protokolliert Portfolio-Ein-/Ausstiege und verfolgt die Rotationsperformance.

Verwendung

python3 rotation_tracker.py --log GOOGL exit 311.49 "Trailing-Stop-Verletzung"
python3 rotation_tracker.py --log POWL enter 85.20 "Momentum-Screener-Auswahl"
python3 rotation_tracker.py --stats          # Handelsstatistiken (Trefferquote, durchschnittlicher Gewinn/Verlust usw.)
python3 rotation_tracker.py --json           # JSON-Ausgabe

Strategiedokument

Siehe docs/finance/STRATEGY.md für die vollständige Dokumentation der Momentum-Rotationsstrategie.

Hinweise

  • Verwendet AlphaVantage für historische Kurse (5 Abfragen/Minute im kostenlosen Tarif, 3s Verzögerung zwischen Abfragen)
  • Portfolio-Daten werden als JSON unter ~/hex/skills/portfolio/portfolio.json gespeichert
  • SPAXX (Geldmarkt) wird von der Analyse ausgeschlossen

Verwandte Skills