Aller au contenu principal
AnthemionStéphane
Retour aux projets

StockMarket

Application de suivi de portefeuille d'actions avec analyse statistique, indicateurs techniques et stratégie de trading backtestée.

PythonStreamlitSQLiteData ScienceTrading
1 février 2026

Le projet

Un outil personnel qui combine suivi de portefeuille, analyse statistique et backtesting de stratégies — le tout dans une seule application. L'objectif : prendre des décisions d'investissement basées sur des données, pas sur l'intuition.

Pourquoi construire ça

Les outils existants forcent à choisir : soit un tracker de portfolio (Yahoo Finance, Ghostfolio), soit un outil de backtesting (Backtrader, QuantConnect). Aucun ne combine les deux avec de la transparence sur les modèles. StockMarket comble ce vide.

Stack technique

ComposantTechnologie
LangagePython 3.12+
InterfaceStreamlit + Plotly
Base de donnéesSQLite + SQLModel
Données marchéyfinance (historique) + Finnhub (temps réel)
Indicateursta (SMA, EMA, RSI, MACD, Bollinger, ATR, OBV)
Testspytest (29 tests)
Linterruff

Fonctionnalités

  • Suivi de portefeuille : CRUD achats/ventes, holdings, P&L avec prix temps réel
  • Analyse statistique : rendements, volatilité, Sharpe ratio, max drawdown, corrélations
  • Indicateurs techniques : 7 indicateurs calculés automatiquement
  • Stratégie Mean-Reversion + Breakout : backtesting avec optimisation grid search et validation train/test
  • Dashboard Streamlit : 5 pages interactives (Portfolio, Analyse, Comparer, Stratégie, Transactions)

Stratégie de trading

La stratégie repose sur des bandes d'écart-type autour d'une moyenne glissante :

upper_2 = μ + a₂·σ  → BUY  (breakout haussier)
upper_1 = μ + a₁·σ  → SELL (take profit)
lower_1 = μ - a₁·σ  → BUY  (buy the dip)
lower_2 = μ - a₂·σ  → SELL (stop loss)

Les paramètres optimaux (a₁, a₂, window) sont trouvés par grid search sur une période d'entraînement, puis validés sur une période de test pour éviter l'overfitting.

Ce que j'ai appris

  • Structurer une application data Python (séparation data / analysis / viz)
  • Implémenter et valider un backtest sans tomber dans l'overfitting
  • Utiliser Streamlit pour du prototypage rapide de dashboards interactifs
  • Intégrer plusieurs sources de données financières (yfinance, Finnhub)