Communitygithub.com

jwd2a/skills

Analyse le portefeuille d'actions de Justin avec un benchmark sur le S&P 500 (SPY).

Qu'est-ce que skills ?

Cette compétence fournit une analyse complète du portefeuille d'actions de Justin, incluant le calcul de volatilité, de corrélation, du ratio Sortino, de la diversification et de la croissance, le tout benchmarké sur le S&P 500 (SPY). Elle prend en charge plusieurs sources de données (Fidelity CSV, Finnhub, AlphaVantage, Yahoo Finance) et propose des outils avancés comme le suivi de stops suiveurs ajustés au bêta, un screener de momentum, un tracker de rotation et des rapports multi-cadence (quotidien, hebdomadaire, mensuel, trimestriel, annuel) formatés pour Slack. Idéale pour les agents IA ou développeurs souhaitant automatiser le suivi d'un portefeuille actions avec des métriques de risque et de performance robustes, elle est exécutée via des scripts Python simples en ligne de commande sur tout environnement Python (Linux, macOS, WSL).

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence d'Analyse de Portefeuille

Analyse le portefeuille d'actions de Justin avec un benchmark sur le S&P 500 (SPY).

Fichiers

  • portfolio.py — Classe Portfolio pour gérer les positions
  • analyze.py — Moteur d'analyse (volatilité, corrélation, Sortino, diversification, croissance)
  • prices.py — Module de récupération des prix

Utilisation

Mettre à jour le portefeuille depuis un CSV Fidelity

from portfolio import Portfolio
p = Portfolio()
p.load_from_fidelity_csv("/chemin/vers/export.csv")
p.save()

Lancer l'analyse

python analyze.py                    # Par défaut 90 jours
python analyze.py --days 180         # Période personnalisée
python analyze.py --json portfolio.json --days 60

Sortie

Texte formaté pour Slack avec :

  • Volatilité par position et du portefeuille (annualisée)
  • Matrice de corrélation
  • Score de diversification
  • Ratio Sortino (taux sans risque 0 %)
  • Croissance vs benchmark SPY

Surveillant de Stop Suiveur

trailing_stops.py — Stops suiveurs de volatilité ajustés au bêta pour chaque position.

Fonctionnement

  • Calcule la volatilité annualisée glissante sur 30 jours et le bêta par rapport à SPY
  • Suit le prix le plus haut glissant par position
  • Calcule la baisse ajustée = baisse brute depuis le sommet − (bêta × baisse de SPY depuis son sommet)
  • Alerte lorsque la baisse ajustée dépasse 1,5× la volatilité quotidienne pendant 2 jours de bourse consécutifs
  • État persistant dans stops_state.json

Utilisation

python trailing_stops.py --status          # Afficher les niveaux actuels pour toutes les positions
python trailing_stops.py --check           # Surveillance quotidienne (déclenche des alertes en cas de dépassement)

Sortie

  • --status : Prix actuel, plus haut glissant, volatilité, bêta, distance au niveau de stop
  • --check : Alerte en cas de dépassement, sinon « tout est clair ». Réinitialise l'état après alerte.

Rapports

report.py — Rapports de portefeuille multi-cadence avec sortie formatée pour Slack.

Utilisation

python report.py --cadence daily       # Résumé quotidien court (cours en direct Finnhub)
python report.py --cadence weekly      # Performance hebdomadaire + stops suiveurs
python report.py --cadence monthly     # Analyse complète, fenêtre de 30 jours
python report.py --cadence quarterly   # 90 jours + tendances de momentum + dérive des poids
python report.py --cadence yearly      # 252 jours + classement annuel + tendance de diversification

Détails par Cadence

  • Quotidienne : ~10-15 lignes. Cours en direct, changements de positions, meilleur/pire, comparaison SPY
  • Hebdomadaire : ~20 lignes. Changements hebdomadaires, distances des stops suiveurs, volatilité
  • Mensuelle : Suite complète — volatilité, matrice de corrélation, Sortino, diversification, croissance vs SPY, P/L, stops suiveurs
  • Trimestrielle : Mensuelle + tendances de momentum (accélération/décélération), dérive des poids par rapport à l'égalité des poids
  • Annuelle : Mensuelle + classements annuels, tendance du score de diversification par trimestre

Sources de Données

  • Quotidien : Cours en direct Finnhub (pas de problème de limite de taux)
  • Hebdomadaire+ : Historique AlphaVantage (délai de 3 secondes entre les appels pour respecter la limitation de débit)

Cribleur de Momentum

momentum_screener.py — Parcourt le marché à la recherche des actions à fort momentum en utilisant les données Yahoo Finance.

Utilisation

python3 momentum_screener.py                          # Par défaut : top 20 par momentum sur 10 jours
python3 momentum_screener.py --lookback 5             # Momentum sur 5 jours
python3 momentum_screener.py --lookback 20            # Momentum sur 20 jours (1 mois)
python3 momentum_screener.py --top 10                 # Top 10 résultats
python3 momentum_screener.py --universe bullpen       # Parcourir uniquement les actions du bullpen
python3 momentum_screener.py --universe sp500         # S&P 500 complet
python3 momentum_screener.py --min-volume 500000      # Filtre de volume quotidien moyen minimum
python3 momentum_screener.py --compare                # Marquer les positions actuelles dans les résultats
python3 momentum_screener.py --json                   # Sortie JSON

Sortie

Par action : rendement brut, volatilité annualisée, momentum ajusté au risque, constance des jours haussiers, volume moyen.

Suivi de Rotation

rotation_tracker.py — Enregistre les entrées/sorties du portefeuille et suit la performance des rotations.

Utilisation

python3 rotation_tracker.py --log GOOGL exit 311.49 "Dépassement du stop suiveur"
python3 rotation_tracker.py --log POWL enter 85.20 "Sélection par le cribleur de momentum"
python3 rotation_tracker.py --stats          # Statistiques des trades (taux de réussite, gain/perte moyen, etc.)
python3 rotation_tracker.py --json           # Sortie JSON

Document de Stratégie

Voir docs/finance/STRATEGY.md pour la documentation complète de la stratégie de rotation momentum.

Remarques

  • Utilise AlphaVantage pour les prix historiques (5 appels/min pour le niveau gratuit, délai de 3 secondes entre les appels)
  • Les données du portefeuille sont stockées au format JSON dans ~/hex/skills/portfolio/portfolio.json
  • SPAXX (marché monétaire) est exclu des analyses

Skills associés