Stake‑amount="unlimited" 🚀 : le compoun ...

Stake‑amount="unlimited" 🚀 : le compounding qui peut tout rendre au marché 😱

Jun 14, 2025

image

stake_amount="unlimited" ré‑investit 100 % du capital disponible après chaque gain. Fantastique quand la série est verte, impitoyable dès qu’elle se retourne. Voici comment l’utiliser (ou pas) sans pulvériser notre limite de ‑35 % de drawdown.


1️⃣ Rappel express sur stake_amount ⚙️

Dans Freqtrade, stake‑amount="unlimited" signifie : « Mise tout ce qui est disponible sur la position (y compris les gains). »
Vu sur un backtest, c’est grisant : chaque trade gagnant augmente la taille de la mise suivante et la courbe de capital accélère.
Mais en live, une seule série de pertes peut ravaler tous les gains précédents – pire, descendre plus bas que votre capital initial.

image

L’illustration ci‑dessus compare deux bots identiques (même stratégie)  :

  • Orange : stake‑amount fixe (100 $)

  • Noir : stake‑amount="unlimited"

Deux conclusions sautent aux yeux :

  • La version “unlimited” grimpe plus vite…

  • …mais chute plus profond, passant instantanément sous le seuil de départ après un seul trade rouge.

  • Stake fixe ("50", "100"…)

    • 👉 chaque trade garde la même taille. Pas de compounding. Parfait pour petits comptes, phase de test ou budget serré.

  • Stake "unlimited" :

    • 👉 chaque trade mise tout le solde libre ➡️ la position gonfle après chaque gain. Réservé aux comptes déjà capitalisés et aux stratégies éprouvées.

💡 Avec "unlimited", Freqtrade divise le solde par max_open_trades. Les profits grossissent mécaniquement la taille des trades suivants et les pertes diminuent la taille des trades suivants.

On réalise généralement des backtests sur plusieurs années pour tester une stratégie, donc on ne se rend pas compte de l'aspect néfaste à la baisse du "unlimited".


2️⃣ Pourquoi c’est tentant… et dangereux 🧨

  • 🚀 Effet boule de neige : le capital grimpe vite en marché haussier. (levier interne : chaque gain grossit la mise suivante.)

  • 📈 CAGR boosté en backtest : compounding + longues tendances = courbe « hockey stick ».

  • 😱 Mais : une seule série de pertes peut effacer tous les gains et entamer le capital initial (GitHub regorge de témoignages).

En live → vous subirez le fait que le marché alterne hausses et baisses → la première baisse rend vos gains… volatiles 🕊️

En backtest → Biais de confirmation  inévitable : sur un backtest long, on retient surtout les phases haussières (voir cet article pour en savoir plus sur les biais que vous pouvez rencontrer)

💡 Souvenez-vous de ce que nous avons vu dans cet article : « Surperformer… mais pour combien de temps ? » : Yrile & Xavier Delmas nous rappellent qu’on finit tôt ou tard par rendre nos gains au marché si on aborde une autre approche que l'investissement passif, justement parce qu'en trading on fini toujours par utiliser des équivalents du stake_amount="unlimited" .

Heureusement, si vous décidez de céder à la gourmandise, il existe des moyens de se protéger.


3️⃣ 🎯 : rester sous ‑35 % de DD

Les Règles d’or rappellent qu’un drawdown de ‑35 % est déjà énorme. Avec "unlimited", un flash‑crash crypto peut le toucher en quelques heures. (...et on s'en souvient longtemps 😭)

Exemple : BTC mai 2021 👀 –30 % en une journée. Sans stop‑loss + stake illimité ➡️ gains de l’année envolés … et capital ponctionné, le tout en une journée, alors que vos bots surperforment depuis des mois. Ca va très très vite.


4️⃣ Utiliser “unlimited” malgré tout : les garde‑fous indispensables ✅

  • 🛑 Drawdown profond ?

    Fixez un stop‑loss serré → stoploss = -0.15 (éviter –90 %)

  • 🎲 Exposition mono‑pair ?

    Augmentez max_open_trades (ex. 10, 15, 20) pour diversifier et lisser le risque

    💡 Attention : multiplier les positions ne suffira pas si tout le marché décroche en même temps ; la corrélation est votre ennemie.

  • 🧢 Et si on ne misait qu'un petit peu ?

    Limiter tradable_balance_ratio dans config.json va vous permettre de n'utiliser qu'une portion de tout votre capital, vous aurez donc un effet boule de neige malgré tout puisque les gains seront réutilisés mais vous vous protégez contre les crashs puisque une partie de vos gains sont préservés (ex :tradable_balance_ratio=0.3).

    ⚠️ Pour des raisons que j'ignore, il arrive parfois que tradable_balance_ratio ne fonctionne pas en live.

    Pour palier à ce problème, voici comment j'adapte le code de ma stratégie :

    stake_amount = "unlimited"
    def custom_stake_amount(self, pair: str, current_time: datetime, current_rate: float, proposed_stake: float, min_stake: Optional[float], max_stake: float, **kwargs) -> float:
            cfg          = self.config
            ratio        = cfg.get("tradable_balance_ratio", 1.0)         # ex. 0.35
            max_trades   = cfg.get("max_open_trades", 1)                  # ex. 8
            start_cap    = self.wallets.get_total_stake_amount()                  # ex. 200
    
            stake = (start_cap * ratio) / max_trades                      # ex. 200×0.35/8 = 8.75
            min_stake=15
            if min_stake:
                stake = max(stake, min_stake)
            stake = min(stake, max_stake)
            if self.dp.runmode.value not in ("backtest", "hyperopt"):
                logger.info(f"Custom stake amount: ratio={ratio}, max_trades={max_trades}, start_cap={start_cap}, stake={stake}")
            return stake
    
  • 🔧 Variabilité extrême ?

    Implémentez adjust_stake_amount() ou modifier custom_stake_amount() pour plafonner dynamiquement la mise selon les indicateurs (volatilité, volume, solde, etc.)


5️⃣ L’alternative zen : stake‑amount fixe

  • Courbe moins explosive, mais plus robuste.

  • Drawdown mécaniquement plafonné : –10 % du marché ≠ –10 % du solde si vos gains précédents restent protégés.

  • Idéal pour les petits capitaux et la phase d’apprentissage.

Quand préférer un stake fixe ? 🛟

  • 💸 Capital < 1 000 $ : priorité à l’apprentissage, pas au rendement maximum.

  • 🆕 Stratégie neuve ou ⏳ dry‑run.

  • 🌪️ Volatilité extrême (micro‑caps, annonces macro, week‑end crypto).

  • 📊 Reporting / besoin de prévisibilité.


6️⃣ Plan d’action 🚧

  1. 🔍 Backtest les deux options sur la même période (testez stake-amount fixe et stake-amount "unlimited"). Analysez la distribution des drawdowns, pas seulement le CAGR.

  2. 🧪 Dry‑run 2‑4 semaines avec "unlimited" + garde‑fous.

  3. 🔎 Live : surveille le DD. Dès qu’il dépasse ‑35 % ➡️ coupe, repasse en stake fixe, re‑calibre.

  4. 📒 Journalise chaque changement (Git + notes) pour garder l’historique.


7️⃣ Conclusion 💡

stake_amount="unlimited" est une option avancée, pas la config par défaut.

Bien maîtrisée, elle accélère la croissance du capital. Mal gérée, elle confirme la prophétie d’Yrile & Xavier Delmas 😅 : « Les gains finissent par retourner au marché ».

Ne laissez pas la chance décider ; imposez‑vous des limites claires.
« Better be safe than sorry ».


Post gratuit

Ceci n'est pas un conseil en investissement.

Testez, mesurez, adaptez… et gardez toujours un œil sur votre risque !

Si ce post t’a aidé, partage‑le 👉 ça fait progresser la communauté Freqtrade France sans brûler son capital 🔥

Vous aimez cette publication ?

Achetez un café à Freqtrade France

Plus de Freqtrade France