Portfolio-Analyse-Skill
Analysiert Justins Aktienportfolio mit Benchmarking gegen den S&P 500 (SPY).
Dateien
portfolio.py— Portfolio-Klasse zur Verwaltung von Positionenanalyze.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.jsongespeichert
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.jsongespeichert - SPAXX (Geldmarkt) wird von der Analyse ausgeschlossen