Initial commit — Trading AI Secure project complet

Architecture Docker (8 services), FastAPI, TimescaleDB, Redis, Streamlit.
Stratégies : scalping, intraday, swing. MLEngine + RegimeDetector (HMM).
BacktestEngine + WalkForwardAnalyzer + Optuna optimizer.
Routes API complètes dont /optimize async.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tika
2026-03-08 17:38:09 +00:00
commit da30ef19ed
111 changed files with 31723 additions and 0 deletions

21
docker/api/Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
FROM python:3.11-slim
WORKDIR /app
# Dépendances système
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
# Installation des dépendances Python
COPY docker/requirements/base.txt docker/requirements/api.txt ./requirements/
RUN pip install --no-cache-dir \
-r requirements/base.txt \
-r requirements/api.txt
# Le code source est monté en volume (dev)
# En production : COPY src/ ./src/ && COPY config/ ./config/
EXPOSE 8100
CMD ["uvicorn", "src.api.app:app", "--host", "0.0.0.0", "--port", "8100", "--reload"]

View File

@@ -0,0 +1,19 @@
FROM python:3.11-slim
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
COPY docker/requirements/base.txt docker/requirements/dashboard.txt ./requirements/
RUN pip install --no-cache-dir \
-r requirements/base.txt \
-r requirements/dashboard.txt
EXPOSE 8501
CMD ["streamlit", "run", "src/ui/dashboard.py", \
"--server.port=8501", \
"--server.address=0.0.0.0", \
"--server.headless=true"]

36
docker/jupyter/Dockerfile Normal file
View File

@@ -0,0 +1,36 @@
FROM python:3.11-slim
WORKDIR /app
# Dépendances système + TA-Lib C (nécessaire pour feature engineering ML)
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
wget \
libpq-dev \
libgomp1 \
git \
&& wget https://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz \
&& tar -xzf ta-lib-0.4.0-src.tar.gz \
&& cd ta-lib && ./configure --prefix=/usr && make && make install \
&& cd .. && rm -rf ta-lib ta-lib-0.4.0-src.tar.gz \
&& rm -rf /var/lib/apt/lists/*
# Toutes les dépendances (base + ml + dev)
COPY docker/requirements/base.txt docker/requirements/ml.txt ./requirements/
RUN pip install --no-cache-dir \
-r requirements/base.txt \
-r requirements/ml.txt \
&& pip install --no-cache-dir \
jupyterlab==4.0.9 \
ipywidgets==8.1.1 \
ipdb==0.13.13 \
memory-profiler==0.61.0
EXPOSE 8888
CMD ["jupyter", "lab", \
"--ip=0.0.0.0", \
"--port=8888", \
"--no-browser", \
"--allow-root", \
"--notebook-dir=/app/notebooks"]

19
docker/ml/Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
FROM python:3.11-slim
WORKDIR /app
# Dépendances système (LightGBM)
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq-dev \
libgomp1 \
&& rm -rf /var/lib/apt/lists/*
# Installation des dépendances Python
COPY docker/requirements/base.txt docker/requirements/ml.txt ./requirements/
RUN pip install --no-cache-dir \
-r requirements/base.txt \
-r requirements/ml.txt
EXPOSE 8200
CMD ["uvicorn", "src.ml.service:app", "--host", "0.0.0.0", "--port", "8200", "--reload"]

View File

@@ -0,0 +1,14 @@
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'trading-api'
static_configs:
- targets: ['trading-api:8100']
metrics_path: /metrics
- job_name: 'trading-ml'
static_configs:
- targets: ['trading-ml:8200']
metrics_path: /metrics

View File

@@ -0,0 +1,22 @@
# ============================================================
# API - Container trading-api (FastAPI backend)
# ============================================================
# Serveur ASGI
uvicorn[standard]==0.24.0
# Market Data
yfinance>=1.0.0
alpha-vantage==2.3.1
# Technical Analysis (pandas-based, pas de lib C requise)
ta==0.11.0
# Optimisation paramètres
optuna>=4.0.0
# Monitoring
prometheus-client==0.19.0
# Notifications
python-telegram-bot==20.7

View File

@@ -0,0 +1,42 @@
# ============================================================
# BASE - Partagé entre tous les containers
# ============================================================
# Data
numpy==1.26.2
pandas==2.1.3
scipy==1.11.4
# Database
sqlalchemy==2.0.23
psycopg2-binary==2.9.9
alembic==1.13.0
# Cache
redis==5.0.1
# Async
aiohttp==3.9.1
aiofiles==23.2.1
httpx==0.25.2
# HTTP
requests==2.31.0
requests-oauthlib==1.3.1
# Config
python-dotenv==1.0.0
pyyaml==6.0.1
# Date/Time
python-dateutil==2.8.2
pytz==2023.3.post1
# Logging
loguru==0.7.2
python-json-logger==2.0.7
# API Framework (utilisé par api + ml services)
fastapi==0.104.1
pydantic==2.5.0
pydantic-settings==2.1.0

View File

@@ -0,0 +1,15 @@
# ============================================================
# DASHBOARD - Container trading-dashboard (Streamlit UI)
# ============================================================
# UI Framework
streamlit==1.29.0
# Visualisation
plotly==5.18.0
matplotlib==3.8.2
seaborn==0.13.0
# HTTP client pour appels API
httpx==0.25.2
requests==2.31.0

View File

@@ -0,0 +1,24 @@
# ============================================================
# ML - Container trading-ml (Machine Learning engine)
# ============================================================
# Serveur ASGI
uvicorn[standard]==0.24.0
# Machine Learning
scikit-learn==1.3.2
xgboost==2.0.3
lightgbm==4.1.0
hmmlearn==0.3.0
# Optimisation
optuna==3.5.0
# Time Series
statsmodels==0.14.1
# Technical Analysis (feature engineering, pandas-based)
ta==0.11.0
# Market Data (pour entraînement)
yfinance>=1.0.0