Dans le monde des paris sportifs, l'innovation et l'expérimentation sont essentielles pour rester compétitif. Pourtant, tester de nouvelles stratégies ou modèles directement avec de l'argent réel peut être coûteux, surtout si ces tests révèlent des faiblesses. C'est là qu'intervient la shadow bankroll (ou bankroll fantôme), une méthodologie qui permet de tester vos modèles en conditions réelles sans risquer votre capital. Dans cet article, nous allons explorer comment mettre en place une shadow bankroll, comment l'utiliser pour le paper betting et le backtesting de modèles de machine learning, et comment analyser les résultats pour valider vos stratégies.

Tester sans miser permet de mesurer une méthode avant de l'exposer à la variance réelle.

[!note] Une shadow bankroll bien tenue transforme l'envie de tester en expérience mesurable, sans brûler le capital réel.

1. Qu'est-ce qu'une shadow bankroll ?

Une shadow bankroll est une simulation de bankroll que vous utilisez pour tester vos stratégies de paris en conditions réelles, mais sans miser de l'argent réel. Elle vous permet de :

  • Valider des modèles : Tester des stratégies ou des algorithmes sans risque financier.
  • Évaluer la performance : Mesurer le ROI, le taux de réussite et d'autres métriques clés.
  • Identifier les faiblesses : Détecter les problèmes dans votre stratégie avant de risquer de l'argent réel.
  • Optimiser les paramètres : Ajuster et affiner vos modèles en fonction des résultats.

2. Pourquoi utiliser une shadow bankroll ?

a. Réduire le risque financier

Le principal avantage d'une shadow bankroll est de réduire le risque financier. Tester une nouvelle stratégie directement avec de l'argent réel peut entraîner des pertes importantes si la stratégie s'avère inefficace.

Exemple :

  • Vous développez un modèle de machine learning pour prédire les résultats de tennis.
  • Sans shadow bankroll, vous pourriez perdre 500€ en testant le modèle sur des paris réels.
  • Avec une shadow bankroll, vous pouvez identifier les faiblesses du modèle sans perdre un centime.

b. Valider des modèles en conditions réelles

Les backtests sur des données historiques sont utiles, mais ils ne capturent pas toujours la réalité des marchés de paris. Une shadow bankroll permet de :

  • Tester en temps réel : Voir comment votre modèle performe avec les cotes actuelles.
  • Évaluer la liquidité : Vérifier si vous pouvez exécuter vos paris sans affecter les cotes.
  • Prendre en compte les frais : Inclure les commissions des bookmakers ou des exchanges dans vos calculs.

c. Optimiser et affiner les stratégies

Une shadow bankroll vous permet d'optimiser vos stratégies en ajustant :

  • Les paramètres du modèle : Par exemple, les seuils de probabilité pour placer un pari.
  • La gestion de bankroll : Tester différentes tailles de mise (1%, 2%, Kelly, etc.).
  • Les critères de sélection : Affiner les filtres pour cibler les meilleures opportunités.

3. Comment mettre en place une shadow bankroll

a. Définir la taille de la shadow bankroll

La taille de votre shadow bankroll doit refléter la taille de votre bankroll réelle. Par exemple :

  • Si votre bankroll réelle est de 10 000€, votre shadow bankroll pourrait être de 10 000€ virtuels.
  • Cela vous permet de simuler les mêmes conditions de mise et de gestion de bankroll.

b. Choisir les marchés et les bookmakers

Sélectionnez les marchés et les bookmakers que vous souhaitez tester :

  • Marchés : Football, tennis, basketball, etc.
  • Bookmakers : Bet365, Pinnacle, Betfair Exchange, etc.
  • Types de paris : 1X2, handicaps asiatiques, scores exacts, etc.

Conseil :

  • Commencez par un seul marché ou un seul bookmaker pour simplifier l'analyse.
  • Étendez progressivement à d'autres marchés une fois que vous maîtrisez la méthodologie.

c. Enregistrer les données

Pour chaque pari simulé, enregistrez les informations suivantes :

  • Date et heure : Pour suivre l'évolution des performances dans le temps.
  • Événement : Le match ou l'événement sur lequel vous auriez parié.
  • Type de pari : 1X2, handicap asiatique, etc.
  • Cote : La cote à laquelle vous auriez parié.
  • Mise : Le montant que vous auriez misé (en fonction de votre stratégie de bankroll).
  • Résultat : Gagné, perdu ou remboursé.
  • Profit/Perte : Le profit ou la perte virtuelle.

Exemple de tableau :

Date Événement Type de pari Cote Mise (virtuelle) Résultat Profit/Perte (virtuel)
2023-11-19 PSG vs OM 1X2 2.10 100€ Gagné +110€
2023-11-19 Nadal vs Djokovic Handicap +2.5 1.80 50€ Perdu -50€
2023-11-20 Lakers vs Warriors Over 220.5 1.90 75€ Gagné +67.5€

d. Utiliser des outils pour automatiser le suivi

Pour simplifier le suivi de votre shadow bankroll, vous pouvez utiliser :

  • Google Sheets/Excel : Pour enregistrer manuellement vos paris et calculer les métriques.
  • Python/R : Pour automatiser le suivi et l'analyse des données.
  • BetTracker (bettracker.co) : Pour importer automatiquement les cotes et calculer les métriques.

4. Paper betting : tester des stratégies manuellement

Le paper betting consiste à simuler des paris en conditions réelles, sans miser de l'argent réel. Voici comment le mettre en place avec une shadow bankroll :

a. Sélection des paris

  1. Utilisez votre stratégie :

    • Appliquez votre stratégie de sélection des paris (par exemple, un modèle statistique ou une analyse fondamentale).
    • Identifiez les paris que vous auriez placés en conditions réelles.
  2. Enregistrez les cotes :

    • Notez la cote au moment où vous auriez parié.
    • Utilisez des sites comme OddsPortal ou Betfair Exchange pour obtenir les cotes historiques.

b. Simulation des mises

  1. Appliquez votre stratégie de bankroll :

    • Calculez la taille de la mise en fonction de votre stratégie (par exemple, 1% de la shadow bankroll).
    • Enregistrez la mise virtuelle.
  2. Suivez les résultats :

    • Après le match, enregistrez le résultat (gagné, perdu, remboursé).
    • Calculez le profit ou la perte virtuelle.

c. Analyse des résultats

  1. Calculez les métriques clés :

    • ROI : (Profit net / Total misé) × 100
    • Taux de réussite : (Nombre de paris gagnants / Nombre total de paris) × 100
    • Profit Factor : (Gain brut / Perte brute)
    • Drawdown maximal : La plus grande perte consécutive en pourcentage de la shadow bankroll.
  2. Comparez avec les attentes :

    • Comparez les résultats avec les performances attendues de votre stratégie.
    • Identifiez les écarts et ajustez votre stratégie en conséquence.
{
  "type": "line",
  "title": "Évolution de la shadow bankroll sur 100 paris",
  "data": [
    {"Pari": 0, "Bankroll": 10000},
    {"Pari": 10, "Bankroll": 10150},
    {"Pari": 20, "Bankroll": 10300},
    {"Pari": 30, "Bankroll": 10200},
    {"Pari": 40, "Bankroll": 10400},
    {"Pari": 50, "Bankroll": 10600},
    {"Pari": 60, "Bankroll": 10500},
    {"Pari": 70, "Bankroll": 10700},
    {"Pari": 80, "Bankroll": 10900},
    {"Pari": 90, "Bankroll": 11000},
    {"Pari": 100, "Bankroll": 11200}
  ],
  "series": [
    {"key": "Bankroll", "color": "#10b981"}
  ]
}

5. Backtesting de modèles de machine learning

Les modèles de machine learning (ML) sont de plus en plus utilisés dans les paris sportifs pour prédire les résultats. Une shadow bankroll permet de tester ces modèles en conditions réelles.

a. Développement du modèle

  1. Collecte des données :

    • Utilisez des données historiques (résultats, statistiques, cotes) pour entraîner votre modèle.
    • Des sources comme Football-Data.co.uk ou API-Football peuvent être utiles.
  2. Entraînement du modèle :

    • Utilisez des bibliothèques comme scikit-learn, TensorFlow ou PyTorch pour entraîner votre modèle.
    • Divisez vos données en ensembles d'entraînement et de test pour évaluer la performance.
  3. Validation du modèle :

    • Utilisez des métriques comme l'accuracy, la précision, le recall ou le F1-score pour évaluer votre modèle.
    • Comparez les prédictions du modèle avec les résultats réels.

b. Test en conditions réelles avec une shadow bankroll

  1. Simulation des paris :

    • Utilisez votre modèle pour prédire les résultats des matchs à venir.
    • Identifiez les paris où la probabilité prédite est significativement différente de la probabilité implicite des cotes.
  2. Enregistrement des résultats :

    • Enregistrez les paris simulés dans votre shadow bankroll.
    • Suivez les résultats et calculez les métriques de performance.
  3. Ajustement du modèle :

    • Si le modèle ne performe pas comme attendu, ajustez les paramètres ou les données d'entraînement.
    • Réentraînez le modèle et testez-le à nouveau.

c. Exemple de code Python pour un modèle de ML

Voici un exemple de code Python pour entraîner un modèle de machine learning simple et le tester avec une shadow bankroll :

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Charger les données historiques
data = pd.read_csv('historical_football_data.csv')

# Préparer les features et la target
features = data[['home_team_goals', 'away_team_goals', 'home_possession', 'away_possession', 'home_shots', 'away_shots']]
target = data['result']  # 'H' pour victoire domicile, 'D' pour match nul, 'A' pour victoire extérieur

# Diviser les données en ensembles d'entraînement et de test
X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)

# Entraîner le modèle
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# Évaluer le modèle
predictions = model.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy du modèle : {accuracy:.2%}")

# Fonction pour simuler les paris avec une shadow bankroll
def simulate_bets(model, new_data, bankroll=10000, stake=100):
    results = []
    current_bankroll = bankroll

    for _, row in new_data.iterrows():
        # Prédire le résultat
        features = row[['home_team_goals', 'away_team_goals', 'home_possession', 'away_possession', 'home_shots', 'away_shots']].values.reshape(1, -1)
        prediction = model.predict(features)[0]

        # Simuler le pari
        if prediction == 'H':
            bet = 'home_win'
        elif prediction == 'D':
            bet = 'draw'
        else:
            bet = 'away_win'

        # Enregistrer le pari (en conditions réelles, vous utiliseriez les cotes actuelles)
        results.append({
            'date': row['date'],
            'home_team': row['home_team'],
            'away_team': row['away_team'],
            'bet': bet,
            'stake': stake,
            'result': row['result']
        })

        # Mettre à jour la shadow bankroll
        if bet == row['result']:
            current_bankroll += stake * 2  # Supposons une cote de 2.00 pour simplifier
        else:
            current_bankroll -= stake

    return pd.DataFrame(results), current_bankroll

# Exemple d'utilisation
new_data = pd.read_csv('upcoming_matches.csv')
bets_df, final_bankroll = simulate_bets(model, new_data)
print(f"Bankroll finale : {final_bankroll}€")

6. Analyse des résultats et validation des stratégies

a. Métriques clés à analyser

  1. ROI (Return on Investment) :

    • Formule : (Profit net / Total misé) × 100
    • Objectif : Un ROI positif indique une stratégie rentable.
  2. Taux de réussite :

    • Formule : (Nombre de paris gagnants / Nombre total de paris) × 100
    • Objectif : Un taux de réussite supérieur à 50% est généralement bon, mais cela dépend des cotes.
  3. Profit Factor :

    • Formule : (Gain brut / Perte brute)
    • Objectif : Un Profit Factor supérieur à 1.2 est considéré comme bon.
  4. Drawdown maximal :

    • Formule : La plus grande perte consécutive en pourcentage de la shadow bankroll.
    • Objectif : Un drawdown maximal inférieur à 20% est généralement acceptable.
  5. Sharpe Ratio :

    • Formule : (ROI moyen - ROI sans risque) / Écart-type du ROI
    • Objectif : Un Sharpe Ratio supérieur à 1.0 indique une bonne performance ajustée au risque.

b. Validation statistique

Pour valider la significativité de vos résultats, vous pouvez utiliser des tests statistiques :

  1. Test de Student (t-test) :

    • Pour comparer le ROI de votre stratégie avec un benchmark (par exemple, un ROI de 0%).
    • Si la p-value est inférieure à 0.05, le résultat est statistiquement significatif.
  2. Test de Kolmogorov-Smirnov :

    • Pour comparer la distribution de vos résultats avec une distribution aléatoire.
    • Si la p-value est inférieure à 0.05, votre stratégie a une performance significativement différente du hasard.
  3. Test de Monte Carlo :

    • Pour simuler des milliers de scénarios aléatoires et comparer avec vos résultats.
    • Si vos résultats sont meilleurs que 95% des scénarios aléatoires, votre stratégie est probablement efficace.

c. Exemple d'analyse avec Python

Voici un exemple de code Python pour analyser les résultats de votre shadow bankroll :

import numpy as np
import pandas as pd
from scipy import stats

# Charger les résultats de la shadow bankroll
results = pd.read_csv('shadow_bankroll_results.csv')

# Calculer les métriques clés
total_bets = len(results)
winning_bets = len(results[results['result'] == 'win'])
total_staked = results['stake'].sum()
total_profit = results['profit'].sum()
roi = (total_profit / total_staked) * 100
win_rate = (winning_bets / total_bets) * 100
profit_factor = results[results['profit'] > 0]['profit'].sum() / abs(results[results['profit'] < 0]['profit'].sum())
max_drawdown = (results['cumulative_profit'].cummax() - results['cumulative_profit']).max()

# Calculer le Sharpe Ratio
daily_returns = results['profit'] / results['stake']
sharpe_ratio = (daily_returns.mean() - 0) / daily_returns.std()  # Supposons un ROI sans risque de 0%

# Effectuer un t-test pour comparer le ROI à 0%
t_stat, p_value = stats.ttest_1samp(results['profit'] / results['stake'], 0)

# Afficher les résultats
print(f"Nombre total de paris : {total_bets}")
print(f"Taux de réussite : {win_rate:.2f}%")
print(f"ROI : {roi:.2f}%")
print(f"Profit Factor : {profit_factor:.2f}")
print(f"Drawdown maximal : {max_drawdown:.2f}€")
print(f"Sharpe Ratio : {sharpe_ratio:.2f}")
print(f"T-test (p-value) : {p_value:.4f}")

# Interprétation du t-test
if p_value < 0.05:
    print("Le ROI est statistiquement significatif (p < 0.05).")
else:
    print("Le ROI n'est pas statistiquement significatif (p >= 0.05).")

7. Études de cas : shadow bankroll en action

Cas 1 : Stratégie de value betting en football

Stratégie :

  • Utiliser un modèle de Poisson pour estimer les probabilités de résultat.
  • Parier lorsque la probabilité estimée est supérieure à la probabilité implicite des cotes.

Shadow Bankroll :

  • Taille initiale : 10 000€ virtuels.
  • Période de test : 6 mois (200 paris).
  • Stratégie de mise : 1% de la shadow bankroll par pari.

Résultats :

  • ROI : +8.5%
  • Taux de réussite : 48%
  • Profit Factor : 1.35
  • Drawdown maximal : 12%

Analyse :

  • La stratégie est rentable et robuste.
  • Le drawdown maximal est acceptable.
  • Le modèle peut être utilisé avec une bankroll réelle.

Cas 2 : Modèle de machine learning pour le tennis

Stratégie :

  • Utiliser un modèle de Random Forest pour prédire les résultats des matchs de tennis.
  • Parier lorsque la probabilité prédite est supérieure à la probabilité implicite des cotes.

Shadow Bankroll :

  • Taille initiale : 5 000€ virtuels.
  • Période de test : 3 mois (100 paris).
  • Stratégie de mise : 2% de la shadow bankroll par pari.

Résultats :

  • ROI : -3.2%
  • Taux de réussite : 45%
  • Profit Factor : 0.92
  • Drawdown maximal : 20%

Analyse :

  • La stratégie n'est pas rentable.
  • Le modèle doit être réévalué et ajusté.
  • Les données d'entraînement ou les features doivent être revues.

Cas 3 : Arbitrage entre bookmakers

Stratégie :

  • Identifier les différences de cotes entre bookmakers pour garantir un profit.
  • Parier sur la cote la plus élevée chez un bookmaker et couvrir la position chez un autre.

Shadow Bankroll :

  • Taille initiale : 20 000€ virtuels.
  • Période de test : 1 mois (50 paris).
  • Stratégie de mise : Montant variable pour garantir un profit fixe de 5€ par pari.

Résultats :

  • ROI : +1.2%
  • Taux de réussite : 100% (par définition de l'arbitrage)
  • Profit Factor : Infini
  • Drawdown maximal : 0%

Analyse :

  • La stratégie est sans risque et garantit un profit.
  • Cependant, le ROI est faible en raison des frais et de la rareté des opportunités.
  • Peut être utilisé comme stratégie complémentaire.

8. Conclusion : la shadow bankroll comme outil indispensable

La shadow bankroll est un outil indispensable pour tout parieur sérieux qui souhaite tester et valider ses stratégies sans risquer son capital. En utilisant une shadow bankroll, vous pouvez :

  • Tester des stratégies en conditions réelles : Valider vos modèles avec les cotes actuelles et la liquidité du marché.
  • Évaluer la performance : Mesurer le ROI, le taux de réussite et d'autres métriques clés.
  • Identifier les faiblesses : Détecter les problèmes dans votre stratégie avant de risquer de l'argent réel.
  • Optimiser les paramètres : Ajuster et affiner vos modèles en fonction des résultats.

Voici les étapes clés pour mettre en place une shadow bankroll efficace :

  1. Définissez la taille : Choisissez une taille qui reflète votre bankroll réelle.
  2. Sélectionnez les marchés : Commencez par un seul marché ou bookmaker pour simplifier l'analyse.
  3. Enregistrez les données : Suivez chaque pari simulé avec les cotes, les mises et les résultats.
  4. Analysez les résultats : Calculez les métriques clés et utilisez des tests statistiques pour valider la performance.
  5. Ajustez et optimisez : Affinez votre stratégie en fonction des résultats et testez à nouveau.

Comme le disait le légendaire parieur Billy Walters : "Le succès dans les paris sportifs vient de la préparation, pas de la chance." En utilisant une shadow bankroll, vous vous préparez à réussir en minimisant les risques et en maximisant vos chances de profit.


Sources et Études Référencées

  • The Logic of Sports Betting (Ed Miller & Matthew Davidow, 2019) - Principes du paper betting et du backtesting.
  • Advances in Financial Machine Learning (Marcos López de Prado, 2018) - Techniques de backtesting et de validation de modèles.
  • Python for Finance (Yves Hilpisch, 2018) - Utilisation de Python pour le backtesting de stratégies.
  • Machine Learning for Asset Managers (Marcos López de Prado, 2020) - Application du machine learning aux paris sportifs.
  • Betfair Trading Techniques (Caan Berry, 2015) - Stratégies de paper trading et de backtesting.
  • Sports Trading on Betfair (Wayne Bailey, 2010) - Méthodologies de test de stratégies sur Betfair Exchange.
  • Journal of Quantitative Analysis in Sports (2021) - Étude sur l'utilisation du machine learning dans les paris sportifs.
  • FiveThirtyEight (fivethirtyeight.com) - Modèles de prévision pour les paris sportifs.
  • Football-Data.co.uk (football-data.co.uk) - Source de données historiques pour le backtesting.
  • BetTracker (bettracker.co) - Outil pour suivre et analyser les performances de paris.