Skip to content

havzer29/System2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI/DC Trading System (v2.4)

Système de trading algorithmique multi-tickers basé sur l'analyse de sentiment (NewsAPI) et des modèles de classification probabilistes calibrés.

🏗️ Architecture

┌─────────────────────────────────────────────────────────────────────┐
│                         AI/DC Trading System                         │
├─────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  ┌───────────┐    ┌──────────────┐    ┌───────────────┐             │
│  │ NewsAPI   │───►│ news_storage │───►│ news_impact   │             │
│  │ (fetch)   │    │ (SQLite)     │    │ _builder      │             │
│  └───────────┘    └──────────────┘    └───────┬───────┘             │
│                                               │                       │
│  ┌───────────┐    ┌──────────────┐            │                       │
│  │ yfinance/ │───►│ features     │◄───────────┘                       │
│  │ stooq     │    │ _v2.py       │                                    │
│  └───────────┘    └──────┬───────┘                                    │
│                          │                                            │
│                          ▼                                            │
│                   ┌──────────────┐    ┌───────────────┐             │
│                   │ training     │───►│ model         │             │
│                   │ _dataset.py  │    │ _training     │             │
│                   └──────────────┘    └───────┬───────┘             │
│                                               │                       │
│                          ┌────────────────────┘                       │
│                          ▼                                            │
│  ┌───────────┐    ┌──────────────┐    ┌───────────────┐             │
│  │ portfolio │◄───│ signal       │◄───│ signals.py    │             │
│  │ _tracker  │    │ _generator   │    │ (inference)   │             │
│  │ (SQLite)  │    └──────────────┘    └───────┬───────┘             │
│  └───────────┘           │                    │                       │
│        ▲                 │                    │                       │
│        └─────────────────┼────────────────────┘                       │
│                          ▼                                            │
│                   ┌──────────────┐                                   │
│                   │ unified      │                                   │
│                   │ _system.py   │──► HTTP Server (port 3000)       │
│                   │ (Dashboard)  │                                   │
│                   └──────────────┘                                   │
│                                                                       │
└─────────────────────────────────────────────────────────────────────┘

🚀 Routine d'utilisation

1. Configuration

Créez un fichier .env à partir du template :

cp .env.example .env
# Éditez .env et ajoutez votre clé NewsAPI

2. Initialisation

À faire lors de la première installation ou si vous voulez repartir de zéro.

python populate_data.py

Note : Cette étape télécharge les news, construit les datasets, entraîne les modèles et génère les premiers signaux.

3. Mise à jour Quotidienne

À lancer chaque jour (avant ouverture du marché ou en clôture).

python daily_update.py

Note : Le script utilise par défaut 'stooq' pour les prix et inclut les étapes de Portfolio, News, Impact, et Retraining.

4. Lancer le Dashboard

python unified_system.py --mode server --port 3000

Ouvrir http://localhost:3000 dans votre navigateur.


📂 Structure du Projet

.
├── config/                    # Configuration
│   ├── settings.py           # Pydantic settings
│   └── watchlist.yaml        # Liste des tickers
├── data/                      # Données (gitignored)
│   ├── news/                 # SQLite database (News)
│   ├── portfolio.db          # SQLite database (Portfolio)
│   ├── impact/               # Impact scores CSV
│   ├── signals/              # Historique des signaux
│   ├── prices/               # Prix historiques
│   └── backtest/             # Résultats backtests
├── models/                    # Modèles ML (gitignored)
│   └── {ticker}/             # Modèle par ticker
├── static/                    # Assets frontend
│   ├── index.html
│   ├── style.css
│   └── script.js
├── tests/                     # Tests unitaires
├── .github/workflows/         # CI/CD
│   └── ci.yml
├── unified_system.py          # Serveur principal (Dashboard)
├── daily_update.py            # Pipeline quotidien
├── features_v2.py             # Feature Engineering avancé
├── portfolio_tracker.py       # Gestion Portfolio & NAV
├── validation.py              # Scripts de validation
└── requirements.txt           # Dépendances (pinned)

🔌 API Endpoints

Endpoint Méthode Description
/ GET Dashboard HTML
/api/inference GET Inférence pour tous les tickers
/api/leaderboard GET Classement avec KPIs et Signaux
/api/company/{ticker} GET Détails d'une entreprise (Prix, News, Métriques)
/api/news GET Dernières news avec impacts (Global)
/api/portfolio GET Snapshot du portfolio (Legacy/General)
/api/tickers GET Liste des tickers actifs (Source of Truth)
/api/performance/summary GET Résumé performance réelle (NAV, PnL)
/api/performance/nav GET Historique NAV et Drawdown
/api/performance/positions GET Positions actuelles (Mark-to-Market)
/api/performance/rebalance POST Déclencher rebalancement (Target Weights)
/api/retrain POST Déclencher pipeline de ré-entraînement
/api/health GET Statut de santé du système
/api/debug/ticker_coverage GET Diagnostic de couverture des données

🧪 Tests

# Lancer tous les tests
pytest tests/ -v

# Avec couverture
pytest tests/ -v --cov=. --cov-report=html

⚠️ Gestion des Erreurs

Le système est conçu pour être résilient :

  • Si NewsAPI échoue, il utilise les données existantes.
  • Si un ticker manque de données, il est ignoré ou affiché en "N/A" sur le dashboard.

🔐 Sécurité

  • Ne jamais commit le fichier .env (déjà dans .gitignore)
  • Les clés API doivent être stockées dans des variables d'environnement
  • Utilisez secrets GitHub pour CI/CD

📝 Changelog

Voir CHANGELOG.md pour l'historique des versions.

🤝 Contribuer

Voir CONTRIBUTING.md pour les guidelines.

About

Disclaimer: This is a research/educational project. Not financial advice.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors