This program is a lightweight, pure-Python tool designed to help traders accurately measure, control, and optimize their risk on every position. Built entirely with the Python standard library, it provides a fast and transparent way to calculate position sizes, validate risk levels, and maintain consistent risk discipline across all trades.
Code:
💰 Capital disponible (€): 100
⚠️ Pourcentage de risque (1-10%): 1
🎯 Stop Loss (pips): 1
============================================================
📊 RÉSULTATS DU POSITION SIZING
============================================================
💰 Capital: 100.0€
⚠️ Risque: 1.0%
📉 Montant à risquer: 1.0€
🎯 Stop Loss: 1.0 pips
------------------------------------------------------------
📦 Taille de lot: 100.0 unités
💵 Exposition: 100.0€
🔧 Levier estimé: x1.0
Code:
def calculer_position_sizing(capital, risque_pourcent, sl_pips): """ Calcule la taille de position pour le trading Args: capital: Capital disponible en € risque_pourcent: Pourcentage du capital à risquer (0-100) sl_pips: Stop Loss en pips Returns: Dict avec taille_lot, exposition, levier """ # Vérifications if capital <= 0: return {"erreur": "Le capital doit être positif"} if risque_pourcent <= 0 or risque_pourcent > 100: return {"erreur": "Le risque doit être entre 0 et 100%"} if sl_pips <= 0: return {"erreur": "Le SL doit être positif"} # Montant à risquer en € montant_risque = capital * (risque_pourcent / 100) # Valeur d'un pip (pour crypto généralement 1 pip = 0.01 USDT) # Pour BTC/USDT: 1 pip = 0.01 (par defaut) # Vous pouvez modifier selon votre pair valeur_pip = 0.01 # Risque total en € risque_total = sl_pips * valeur_pip # Taille de lot (en unités) if risque_total > 0: taille_lot = montant_risque / risque_total else: taille_lot = 0 # Exposition (montant total engagé) # Pour crypto: exposition = taille_lot * prix_moyen # Exemple BTC à 50000: exposition = taille_lot * 50000 exposition = taille_lot * 1 # 1 = prix normalisé (à adapter) # Levier estimé (exposition / capital) if capital > 0: levier = exposition / capital if exposition > 0 else 1 else: levier = 1 return { "capital": capital, "risque_pourcent": risque_pourcent, "montant_risque": montant_risque, "sl_pips": sl_pips, "taille_lot": round(taille_lot, 4), "exposition": round(exposition, 2), "levier": round(levier, 2) } def afficher_resultats(resultats): """Affiche les résultats de manière formatée""" if "erreur" in resultats: print(f"\n❌ Erreur: {resultats['erreur']}") return print("\n" + "=" * 60) print("📊 RÉSULTATS DU POSITION SIZING") print("=" * 60) print(f"\n💰 Capital: {resultats['capital']}€") print(f"⚠️ Risque: {resultats['risque_pourcent']}%") print(f"📉 Montant à risquer: {resultats['montant_risque']}€") print(f"🎯 Stop Loss: {resultats['sl_pips']} pips") print("\n" + "-" * 60) print(f"📦 Taille de lot: {resultats['taille_lot']} unités") print(f"💵 Exposition: {resultats['exposition']}€") print(f"🔧 Levier estimé: x{resultats['levier']}") print("=" * 60) def main(): print("=" * 60) print("💹 CALCULATEUR DE POSITION SIZING TRADING") print("=" * 60) print("\nCe tool calcule la taille optimale de votre position") print("basée sur votre capital et votre tolérance au risque") print("\n" + "=" * 60) while True: try: print("\n📝 Entrez vos paramètres (ou 'quit' pour quitter):") capital_input = input("\n💰 Capital disponible (€): ").strip() if capital_input.lower() in ['quit', 'q']: print("\n👋 Au revoir!") break capital = float(capital_input) risque_input = input("⚠️ Pourcentage de risque (1-10%): ").strip() risque_pourcent = float(risque_input) sl_input = input("🎯 Stop Loss (pips): ").strip() sl_pips = float(sl_input) # Calculer resultats = calculer_position_sizing(capital, risque_pourcent, sl_pips) # Afficher afficher_resultats(resultats) # Demander si on continue continuer = input("\n🔄 Faire un autre calcul? (oui/non): ").strip().lower() if continuer not in ['oui', 'o', 'yes', 'y']: print("\n👋 Merci d'avoir utilisé le calculateur!") break except ValueError: print("\n❌ Erreur: Entrez des nombres valides!") except KeyboardInterrupt: print("\n\n👋 Programme arrêté") break except Exception as e: print(f"\n❌ Erreur: {e}") if __name__ == "__main__": main()Usage example: 💰 Capital disponible (€): 100
⚠️ Pourcentage de risque (1-10%): 1
🎯 Stop Loss (pips): 1
============================================================
📊 RÉSULTATS DU POSITION SIZING
============================================================
💰 Capital: 100.0€
⚠️ Risque: 1.0%
📉 Montant à risquer: 1.0€
🎯 Stop Loss: 1.0 pips
------------------------------------------------------------
📦 Taille de lot: 100.0 unités
💵 Exposition: 100.0€
🔧 Levier estimé: x1.0
buran write Nov-29-2025, 07:09 PM:
Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you.
See BBcode help for more info.
Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you.
See BBcode help for more info.
Attached Files
