delta0790 commited on
Commit
f0469d3
·
verified ·
1 Parent(s): 2825dca

Add detailed README with results and usage instructions

Browse files
Files changed (1) hide show
  1. README.md +75 -0
README.md ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SAC Crypto Trading Agent — BTC/USDT
2
+
3
+ Agent de trading crypto basé sur **Soft Actor-Critic (SAC)** entraîné sur les données historiques BTC/USDT.
4
+
5
+ ## 📊 Résultats (Backtest sur données de test)
6
+
7
+ | Métrique | SAC Agent | Buy & Hold |
8
+ |----------|-----------|------------|
9
+ | Rendement Total | **-4.57%** | -17.26% |
10
+ | Sharpe Ratio | **-0.024** | -0.117 |
11
+ | Max Drawdown | **29.54%** | 48.49% |
12
+ | Portfolio Final | **$95,431** | $82,736 |
13
+
14
+ **L'agent surperforme le Buy & Hold de +12.7 points de pourcentage** pendant une période baissière (déc 2024 - avr 2026), avec un drawdown maximal réduit de moitié.
15
+
16
+ ## 🏗️ Architecture
17
+
18
+ - **Algorithme** : SAC (Soft Actor-Critic) via Stable Baselines 3
19
+ - **Environnement** : Gymnasium custom, inspiré de FinRL-Meta
20
+ - **State** : balance normalisée + prix z-score + holdings + indicateurs techniques (MACD, RSI, CCI, DX, SMA, Bollinger Bands)
21
+ - **Action** : espace continu [-1, 1] (vente maximale → achat maximal)
22
+ - **Reward** : ΔPortfolio × scaling factor
23
+
24
+ ## 📈 Recette d'entraînement
25
+
26
+ Basée sur [FinRL-Meta](https://arxiv.org/abs/2304.13174) et [FinRL-Contest](https://arxiv.org/abs/2501.10709).
27
+
28
+ | Paramètre | Valeur |
29
+ |-----------|--------|
30
+ | Dataset | [linxy/CryptoCoin](https://hf.co/datasets/linxy/CryptoCoin) (Binance OHLCV) |
31
+ | Symbole | BTCUSDT daily |
32
+ | Training timesteps | 200,000 |
33
+ | Learning rate | 3e-4 |
34
+ | Batch size | 64 |
35
+ | Buffer size | 100,000 |
36
+ | Network | MLP [64, 32] |
37
+ | Gamma | 0.99 |
38
+ | Tau | 0.005 |
39
+ | Entropy coeff | auto |
40
+ | Commission | 0.1% |
41
+ | Capital initial | $100,000 |
42
+
43
+ ## 📅 Périodes
44
+
45
+ - **Train** : 17 août 2017 → 12 sept 2023 (2218 jours)
46
+ - **Validation** : 13 sept 2023 → 30 déc 2024 (475 jours)
47
+ - **Test** : 31 déc 2024 → 28 avr 2026 (476 jours)
48
+
49
+ ## 🚀 Utilisation
50
+
51
+ ```python
52
+ from stable_baselines3 import SAC
53
+ from stable_baselines3.common.vec_env import DummyVecEnv, VecNormalize
54
+ import pickle
55
+
56
+ # Charger le modèle
57
+ model = SAC.load("sac_crypto_final")
58
+
59
+ # Charger le normalisateur
60
+ # vec_normalize = VecNormalize.load("vec_normalize.pkl", venv)
61
+
62
+ # Prédire une action
63
+ action, _ = model.predict(observation, deterministic=True)
64
+ # action > 0 → acheter, action < 0 → vendre
65
+ ```
66
+
67
+ ## 📚 Références
68
+
69
+ 1. FinRL-Meta: A Universe of Near-Real Market Environments (arXiv:2304.13174)
70
+ 2. FinRL-Contest: Ensemble Methods for FinRL (arXiv:2501.10709)
71
+ 3. SAC: Soft Actor-Critic (arXiv:1801.01290, Haarnoja et al.)
72
+
73
+ ## ⚠️ Disclaimer
74
+
75
+ Ce modèle est fourni à des fins de recherche et d'éducation uniquement. Il ne constitue pas un conseil financier. Les performances passées ne garantissent pas les résultats futurs. Le trading de crypto-monnaies comporte des risques significatifs de perte en capital.