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
