milesdeutscher/garch-method

Prévisions de volatilité et dimensionnement de position via GARCH(1,1) avec validation croisée. À utiliser lorsque l'utilisateur demande des prévisions de volatilité, un dimensionnement de position, « combien dois-je mettre », un ciblage de volatilité, un freinage de risque, des régimes de tempête/calme, ou souhaite tester si un dimensionnement ciblé sur la volatilité améliore une stratégie existante. Fonctionne sur n'importe quel ticker (yfinance) ou n'importe quel CSV avec des colonnes date + clôture. Répond à « combien » — jamais à « dans quelle direction ».

Qu'est-ce que garch-method ?

Cette compétence répond à la question que le commerce de détail ne pose jamais et que chaque fonds pose quotidiennement : **combien ?** Elle ne prédit PAS la direction. GARCH prévoit l'amplitude des mouvements — à quel point demain sera violent, et non dans quelle direction il ira. Elle prend en charge les tickers yfinance et les fichiers CSV avec colonnes date + clôture. L'utilisateur peut exécuter trois outils : `garch_forecast.py` (prévision de volatilité sur 1 jour avec GARCH(1,1) sans regard en avant), `vol_target.py` (dimensionnement de position basé sur la volatilité cible), et `compare.py` (test honnête comparant les stratégies avec et sans ciblage de volatilité). Tous les scripts génèrent des sorties JSON structurées, décrivent les régimes de marché (calme / normal / tempête) et s'intègrent facilement dans des pipelines d'agents IA. Les règles d'honnêteté imposent de ne jamais présenter GARCH comme une prédiction directionnelle, de ne jamais cacher les drawdowns ou les pires mois, et de dire clairement si le ciblage de volatilité n'améliore pas la stratégie de l'utilisateur.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/milesdeutscher/garchmethod/tree/main/skills/garch

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

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

Documentation

Méthode GARCH — prévision de volatilité + dimensionnement de position

Cette compétence répond à la question que le commerce de détail ne pose jamais et que chaque fonds pose quotidiennement : combien ?

Elle ne prédit PAS la direction. GARCH prévoit l'amplitude des mouvements — à quel point demain sera violent, et non dans quelle direction il ira. Dites ceci à l'utilisateur lors de la présentation des résultats.

Les trois outils

Tous les scripts se trouvent dans scripts/ et s'exécutent avec uv run (les dépendances se résolvent automatiquement via les métadonnées en ligne — rien à pip-installer).

1. garch_forecast.py — la prévision

GARCH(1,1) sans regard en avant (paramètres réestimés tous les 21 jours sur une fenêtre croissante ; la récursion avance entre les réestimations en utilisant uniquement les données passées).

uv run scripts/garch_forecast.py --csv prices.csv --json
uv run scripts/garch_forecast.py --ticker BTC-USD --json

Sortie : prévision de volatilité sur 1 jour (quotidienne + annualisée), percentile de volatilité sur l'année glissante, régime (calme / normal / tempête).

2. vol_target.py — la taille

L'idée entière : taille = volatilité_cible / volatilité_prévue, plafonnée à [0,25x, 2,0x].

uv run scripts/vol_target.py --csv prices.csv --volatilité-cible 15 --json

Sortie : multiplicateur de taille de position. « Exécutez 0,6x votre ligne de base » — voilà la réponse.

3. compare.py — le test honnête

Exécute les mêmes signaux deux fois — taille fixe vs ciblée sur la volatilité — et affiche les deux courbes de rendement ainsi que les statistiques côte à côte. Livré avec une démonstration EMA 9/21 croisement ; accepte n'importe quelle stratégie via --signals mon_fichier.csv (colonnes : date, signal dans {-1,0,1}).

uv run scripts/compare.py --csv prices.csv --volatilité-cible 58 --graphique equity.png --json
uv run scripts/compare.py --csv prices.csv --signaux mon_fichier.csv

Sortie : CAGR, volatilité annuelle, Sharpe, drawdown maximal, pire mois, capital final — les deux versions — plus le graphique de courbe de rendement avec les régimes de tempête ombrés.

Contrat JSON

Chaque script prend en charge --json. Format de sortie principal :

{
  "as_of": "2026-05-23",
  "forecast_vol_annualized_pct": 41.2,
  "vol_percentile_1y": 78.0,
  "regime": "storm",
  "position_size_multiplier": 0.6,
  "note": "GARCH forecasts magnitude (volatility), not direction."
}

Trois modèles de composition

A. Couche de dimensionnement — à greffer sur n'importe quelle stratégie existante. Votre stratégie décide si ; cette compétence décide combien. Prenez le signal de la stratégie, multipliez-le par position_size_multiplier, terminé.

B. Frein de risque — coupe-circuit autonome. Si regime == "storm", réduisez toute exposition au multiplicateur, indépendamment de ce que disent vos signaux. Fonctionne avec n'importe quel agent qui gère les positions.

C. Harnais de comparaison — avant de faire confiance à une stratégie, exécutez-la via compare.py et vérifiez si le ciblage de volatilité améliore son Sharpe / drawdown. Si le dimensionnement n'aide pas, l'avantage de la stratégie est peut-être trop faible pour survivre aux conditions réelles.

Se compose proprement avec des compétences de direction de régime (par exemple les classificateurs haussiers/baissiers de style Markov) : leur sortie répond dans quelle direction, celle-ci répond combien. Multipliez les deux.

Valeurs par défaut et conventions

  • Crypto : --periods-per-year 365 (par défaut). Actions : --periods-per-year 252.
  • Volatilité cible : 15 % est une valeur par défaut conservatrice raisonnable. Pour une comparaison ajustée au risque avec une stratégie sans levier, définissez la cible approximativement égale à la volatilité réalisée de la stratégie elle-même.
  • Données : ticker yfinance (nécessite Internet) ou n'importe quel CSV avec colonnes date + clôture — s'intègre dans n'importe quel pipeline que l'utilisateur utilise déjà.
  • Historique minimum : environ 510 observations quotidiennes avant la première prévision.

Règles d'honnêteté (non négociables)

  1. Ne présentez jamais la sortie de GARCH comme un appel directionnel.
  2. Ne cachez jamais les chiffres de drawdown ou de pire mois lors du rapport d'une comparaison.
  3. Si le ciblage de volatilité n'améliore PAS la stratégie de l'utilisateur, dites-le clairement — ce résultat est tout aussi précieux.

Skills associés