Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/catalog-drift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:

base = 'MyIA.AI.Notebooks'
EXCLUDE_ALWAYS = {'.ipynb_checkpoints', 'obj', 'bin', '__pycache__', '.git'}
EXCLUDE_PED = {'research', 'archive', '_output', 'ESGF', 'examples'}
EXCLUDE_PED = {'research', 'archive', '_output', 'partner-course', 'examples'}
CATALOG_RE = re.compile(r'<!--\s*CATALOG-STATUS\s*\n(.*?)\n\s*-->', re.DOTALL)

for series in sorted(os.listdir(base)):
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,11 @@ MyIA.AI.Notebooks/QuantConnect/TrendStocks*/
MyIA.AI.Notebooks/QuantConnect/TurnOfMonth-Researcher/
MyIA.AI.Notebooks/QuantConnect/VIX-TermStructure-Researcher/
MyIA.AI.Notebooks/QuantConnect/lean.json
MyIA.AI.Notebooks/QuantConnect/ESGF-Workspace/
MyIA.AI.Notebooks/QuantConnect/partner-course-Workspace/

# NuGet build artifacts
MyIA.AI.Notebooks/QuantConnect/partner-course-quant-trading/lean-workspace/**/obj/
MyIA.AI.Notebooks/QuantConnect/partner-course-quant-trading/lean-workspace/**/bin/

# Generated secrets (security - never commit raw tokens)
.secrets/.env.generated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@ claude mcp add --transport stdio serena -- uvx --from git+https://github.com/ora

**Note** : Utilisez `--context claude-code` pour eviter les conflits avec les outils natifs de Claude Code.

#### 7. QuantConnect (Trading Algorithmique - Cours ESGF)
#### 7. QuantConnect (Trading Algorithmique - Cours partenaire)

Le serveur MCP QuantConnect permet a Claude Code d'interagir directement avec la plateforme QuantConnect : creer des projets, compiler du code, lancer des backtests, analyser les resultats. Indispensable pour le cours de trading algorithmique.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"\n",
"> **Context**: 27+ experiments across 8 architectures (MoE, LSTM, Transformer, PatchTST, iTransformer, Mamba, STGAT, MTGNN) failed to beat daily binary direction prediction on modern financial data, even with strict walk-forward OOS validation and multi-seed verification (4/5 seeds FAIL, seed=42 BEAT was +1.5sigma outlier). This notebook investigates what DL *can* predict, to inform a productive pivot.\n",
"\n",
"**Deadline**: 09/05/2026 | **Epic**: NN #754 | **ESGF**: 19/05/2026\n",
"**Deadline**: 09/05/2026 | **Epic**: NN #754 | **Partner**: 19/05/2026\n",
"\n",
"---\n",
"\n",
Expand Down Expand Up @@ -822,7 +822,7 @@
"<a id='section-3'></a>\n",
"## Section 3: Pivot Options for Epic NN #754\n",
"\n",
"Three strategic pivots ranked by feasibility, evidence strength, and ESGF pedagogical impact."
"Three strategic pivots ranked by feasibility, evidence strength, and partner course pedagogical impact."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-01-Setup.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"> Ce notebook est un **support de cours** a lire ici (GitHub ou Jupyter local).\n",
"> **Ne l'uploadez pas dans QuantConnect Lab** - il n'est pas concu pour y etre execute.\n",
"> \n",
"> **Pour votre projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/` dans votre projet QC Lab, puis cliquez Backtest.\n",
"> **Pour votre projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/` dans votre projet QC Lab, puis cliquez Backtest.\n",
"> \n",
"\n",
"---"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"> Le code QCAlgorithm presente ici est a **copier dans `main.py`** de votre projet QuantConnect Lab.\n",
"> Ne tentez pas de faire \"Run All\" -- les imports `AlgorithmImports` n'existent pas en Jupyter local.\n",
">\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `ESGF-2026/templates/`, puis adaptez-le.\n",
"> **Pour demarrer un projet QC** : copiez un `main.py` depuis `projects/` ou `partner-course-quant-trading/templates/`, puis adaptez-le.\n",
"\n",
"---"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# ESGF Kit - Recherche ML RandomForest Sector Rotation\n",
"# Partner Course Kit - Recherche ML RandomForest Sector Rotation\n",
"\n",
"Ce notebook explore l'approche ML RandomForest pour la rotation sectorielle sur 9 ETFs sectoriels americains.\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# ESGF Kit - Recherche ML XGBoost Sector Rotation\n",
"# Partner Course Kit - Recherche ML XGBoost Sector Rotation\n",
"\n",
"Ce notebook explore l'approche ML XGBoost (Gradient Boosting) pour la rotation sectorielle sur 9 ETFs sectoriels americains.\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# ESGF Kit - Recherche Framework Composite (Alpha Models)\n",
"# Partner Course Kit - Recherche Framework Composite (Alpha Models)\n",
"\n",
"Ce notebook explore l'approche QC Framework avec modele composite combinant deux alpha models :\n",
"1. **SectorMomentum** : Long sectors avec momentum positif au-dessus de SMA200\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1517,7 +1517,7 @@
"text": [
"=== VALIDATION QC CLOUD (ForexCarry project 28657908) ===\n",
"Periode: 2015-01-01 a 2026-05-24\n",
"Cloud ID: 28657908 (ESGF_School org)\n",
"Cloud ID: 28657908 (Partner org)\n",
"\n",
" Test Sharpe CAGR% MaxDD% NetProfit% Trades\n",
" v3e-SPY filter -2.347 -0.307 7.3 -3.444 113\n",
Expand Down Expand Up @@ -1545,7 +1545,7 @@
"\n",
"print('=== VALIDATION QC CLOUD (ForexCarry project 28657908) ===')\n",
"print(f'Periode: 2015-01-01 a 2026-05-24')\n",
"print(f'Cloud ID: 28657908 (ESGF_School org)')\n",
"print(f'Cloud ID: 28657908 (Partner org)')\n",
"print()\n",
"print(qc_results.to_string(index=False))\n",
"print()\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Research: ESGF-HAR-RV-Kelly\n",
"# Research: Partner-HAR-RV-Kelly\n",
"\n",
"HAR-RV (Heterogeneous Autoregressive Realized Volatility) avec critere de Kelly sur un portefeuille multi-actifs.\n",
"\n",
Expand All @@ -19,7 +19,7 @@
"\n",
"**Actifs** : SPY, EFA, EEM, TLT, GLD, DBC.\n",
"\n",
"**Calibration cible** : `ESGFHARRVKelly` dans `main.py`"
"**Calibration cible** : `PartnerHARRVKelly` dans `main.py`"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1153,7 +1153,7 @@
"| H4: Multi-instruments | Position sizing dilue, correlation SPY/QQQ | Sharpe degrade |\n",
"| H5: Retirer filtre regime | Plus de trades bear = falling knives | MaxDD augmente |\n",
"\n",
"### Lecons cles pour le cours ESGF\n",
"### Lecons cles pour le cours partenaire\n",
"\n",
"1. **Un signal rentable ne suffit pas** : le win rate de 73% prouve que le signal\n",
" RSI(2) est valide. Mais si la strategie n'est investie que 15% du temps,\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1065,7 +1065,7 @@
"- **Stop-loss** : ATR trailing stop par position\n",
"- **Universe dynamique** : Remplacer les 15 tickers fixes par un filtre dollar volume\n",
"\n",
"### Usage pedagogique (Module M2 ESGF)\n",
"### Usage pedagogique (Module M2 (cours partenaire))\n",
"\n",
"Ce notebook est ideal pour le Module 2 (Momentum) car il illustre :\n",
"1. **Trend-following basique** : Faber TAA avec filtres multi-indicateurs\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -888,7 +888,7 @@
"**Strategie archivee.** Sharpe ceiling ~0.13 sur la periode 2015-2026.\n",
"\n",
"**Note importante** : Cette strategie etait marquee \"PENDING\" dans le dashboard\n",
"ESGF-2026 et n'a pas ete activement iteree ou backtestee lors du cycle d'optimisation\n",
"partner-course-quant-trading et n'a pas ete activement iteree ou backtestee lors du cycle d'optimisation\n",
"d'avril 2026. Les resultats ci-dessus proviennent du travail anterieur.\n",
"\n",
"| Metrique | Meilleure version (v2.1) | Plafond structurel |\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Research: ESGF-VolEnsemble-Conservative\n",
"# Research: Partner-VolEnsemble-Conservative\n",
"\n",
"Ensemble GARCH(1,1) + HAR(1,5,22) avec positionnement conservateur et filtre de regime.\n",
"\n",
Expand All @@ -17,11 +17,11 @@
"un ciblage de volatilite inverse a 8% annualises (plus conservateur que le GARCH seul a 10%).\n",
"\n",
"Un **filtre de regime** base sur SPY vs SMA200 reduit l'allocation de 50% en marche baissier.\n",
"C'est la plus conservatrice des 3 strategies ESGF.\n",
"C'est la plus conservatrice des 3 strategies partner.\n",
"\n",
"**Actifs** : SPY, EFA, EEM, TLT, GLD, DBC.\n",
"\n",
"**Calibration cible** : `ESGFVolEnsembleConservative` dans `main.py`"
"**Calibration cible** : `PartnerVolEnsembleConservative` dans `main.py`"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Research: ESGF-GARCH-VolTarget\n",
"# Research: Partner-GARCH-VolTarget\n",
"\n",
"GARCH(1,1) volatilite targeting sur un portefeuille multi-actifs.\n",
"\n",
Expand All @@ -16,7 +16,7 @@
"\n",
"**Actifs** : SPY, EFA, EEM, TLT, GLD, DBC (multi-actifs style AQR).\n",
"\n",
"**Calibration cible** : `ESGFGARCHVolTarget` dans `main.py`"
"**Calibration cible** : `PartnerGARCHVolTarget` dans `main.py`"
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions MyIA.AI.Notebooks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ GenAI (110 notebooks)
QuantConnect (175 notebooks)
├── Python/ (53) - Cours progressifs QC-Py
├── projects/ (109) - Strategies backtests et ML
└── ESGF-2026/ (7) - Cours ESGF exercices et templates
└── partner-course-quant-trading/ (7) - Cours partenaire exercices et templates

SymbolicAI (92 notebooks)
├── SmartContracts/ (27) - Solidity, Web3, blockchain
Expand Down Expand Up @@ -135,7 +135,7 @@ docker-compose up -d
1. **GenAI** - Toutes les series sauf Orchestration
2. **ML** - Tutoriels .NET + Python Agents
3. **SymbolicAI** - SmartContracts, SemanticWeb
4. **QuantConnect/ESGF-2026/** - Exercices trading
4. **QuantConnect/partner-course-quant-trading/** - Exercices trading

### Expert (120h+)
1. **GenAI/03-Orchestration** + **04-Applications**
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ Peut-on appliquer les techniques d'IA aux marches financiers ? Cette serie repon

**ML Training Pipeline** -- Pipeline complet d'entrainement et d'evaluation de modeles DL pour le forecasting financier : LSTM, Transformer, iTransformer, PatchTST, Mamba. Donnees crypto panier (10 coins) avec validation walk-forward stricte, evaluation zero-shot de modeles foundation (Chronos-Bolt, Kronos), et baselines comparatives (GARCH, random walk, majority class).

**ESGF-2026** -- Exemples de projets etudiants et notebooks de recherche issus du cours ESGF.
**partner-course-quant-trading** -- Exemples de projets etudiants et notebooks de recherche issus du cours partenaire.

Python | [README detaille](MyIA.AI.Notebooks/QuantConnect/README.md) | [Strategies](MyIA.AI.Notebooks/QuantConnect/projects/README.md)

Expand Down Expand Up @@ -172,7 +172,7 @@ CoursIA/
Python/ Notebooks pedagogiques
projects/ Strategies backtestees
ML-Training-Pipeline/ Pipeline DL forecasting
ESGF-2026/ Projets etudiants
partner-course-quant-trading/ Projets etudiants
EPF/ Projets transversaux (Python)
IIT/ Information integree (Python)
Config/ Configuration API
Expand Down
Loading
Loading