Vous n'êtes pas identifié(e).

#1 09-06-2024 15:48:54

Climax
Administrateur
Inscription: 30-08-2008
Messages: 6 316
Windows 10Firefox 126.0

Optimisation bayésienne dans le trading


optimisation-bayesienne.png

L'optimisation bayésienne est une approche probabiliste basée sur un modèle qui permet d'optimiser des fonctions objectives coûteuses à évaluer.

Cette technique est pratique dans les stratégies de trading où le backtesting et le réglage des paramètres peuvent être intensifs en termes de calcul.

Cette stratégie est utile pour les traders plus orientés vers la technique de toutes sortes - des scalpeurs et day traders aux traders de position à plus long terme.

livre-methodes-bayesiennes-1.png livre-methodes-bayesiennes-2.png livre-methodes-bayesiennes-3.png

Principaux enseignements:

  • L'optimisation bayésienne permet d'explorer efficacement des espaces de paramètres de stratégies de trading à haute dimension, dans le but de maximiser la rentabilité.

  • Elle équilibre intelligemment l'exploration et l'exploitation, c'est-à-dire l'adaptation aux nouvelles conditions du marché et l'évitement des optima locaux.

  • En incorporant des connaissances préalables et des données historiques, l'optimisation bayésienne peut aider à identifier des stratégies de trading robustes et cohérentes.

  • La logique bayésienne imite la façon dont les marchés fonctionnent dans le monde réel - en mettant à jour nos croyances au fur et à mesure de l'arrivée de nouvelles informations.

Voici un exemple, étape par étape, de l'application de l'optimisation bayésienne à l'optimisation d'une stratégie commerciale :

Étape 1 : Définir la stratégie de trading et les paramètres

Stratégie de trading :

Considérons une stratégie simple de croisement de moyennes mobiles pour laquelle nous disposons de deux paramètres :

  • La fenêtre de la moyenne mobile à court terme (par exemple, 5 jours) et

  • La fenêtre de la moyenne mobile à long terme (par exemple, 20 jours).

Paramètres à optimiser :

  • Fenêtre de la moyenne mobile à court terme (5-50 jours)

  • Fenêtre de la moyenne mobile à long terme (50-200 jours)

Étape 2 : Définir la fonction objective

La fonction objective doit refléter les performances de la stratégie de trading.

Les objectifs les plus courants sont la maximisation:

  • du ratio de Sharpe

  • du rendement total, ou

  • de la réduction maximale du drawdown.

Dans cet exemple, nous optimiserons le ratio de Sharpe.

Étape 3 : Mise en place du cadre d'optimisation bayésien

Modèle de substitution

Utiliser un processus gaussien (GP) comme modèle de substitution pour approximer la fonction objective.

Fonction d'acquisition

Utiliser une fonction d'acquisition telle que l'amélioration attendue (EI) ou la limite supérieure de confiance (UCB) pour guider la recherche de l'optimum.

Étape 4 : Initialisation du processus d'optimisation

Commencez par quelques points sélectionnés au hasard dans l'espace des paramètres pour initialiser le processus gaussien.

Étape 5 : Mise à jour itérative du modèle

Ajuster le modèle GP

Entraîner le modèle GP sur l'ensemble initial de paramètres et leurs valeurs objectives correspondantes.

Optimiser la fonction d'acquisition

Trouver l'ensemble de paramètres suivant en optimisant la fonction d'acquisition.

Évaluer la fonction objective

Testez la stratégie de trading avec le nouvel ensemble de paramètres et calculez le ratio de Sharpe.

Mise à jour du modèle GP

Incorporer les nouveaux paramètres et leur valeur objective dans le modèle GP.

Étape 6 : Convergence

Poursuivre les itérations jusqu'à ce que les critères de convergence soient remplis, par exemple un nombre maximal d'itérations ou un seuil d'amélioration de la fonction objective.

Exemple de code pour l'optimisation bayésienne

Voici un exemple de code Python pour l'optimisation bayésienne.

import numpy as np
from skopt import gp_minimize
from skopt.space import Integer
from skopt.utils import use_named_args

# Définir l'espace des paramètres
space = [Integer(5, 50, name='short_window'),
Integer(50, 200, name='long_window')]

# Définir la fonction objective
@use_named_args(space)
def objective(params):
short_window, long_window = params
# Exemple de fonction de backtest (à remplacer par la logique réelle du backtest)
sharpe_ratio = backtest_strategy(short_window, long_window)
return -sharpe_ratio # Minimize the negative Sharpe ratio

# Exemple de fonction de backtest (simplifiée)
def backtest_strategy(short_window, long_window):
# Cette fonction doit mettre en œuvre la logique de backtesting proprement dite
# Pour simplifier, utilisons un ratio de Sharpe fictif
mock_sharpe_ratio = np.random.uniform(0, 2)
return mock_sharpe_ratio

# Effectuer une optimisation bayésienne
res_gp = gp_minimize(objective, space, n_calls=50, random_state=0)

# Sortie des meilleurs paramètres
print(f"Best parameters: Short Window: {res_gp.x[0]}, Long Window: {res_gp.x[1]}")
print(f"Best Sharpe Ratio: {-res_gp.fun}")
Application dans le monde réel du trading

Collecte de données

Rassembler les données historiques des prix pour le(s) actif(s) concerné(s).

Prétraitement

Nettoyer les données et calculer les indicateurs nécessaires (par exemple, les moyennes mobiles).

Cadre de backtesting

Mise en œuvre d'un cadre de backtesting robuste capable de simuler des transactions et de calculer des indicateurs de performance.

Boucle d'optimisation bayésienne

Intégrer le cadre de backtesting dans la boucle d'optimisation bayésienne comme indiqué dans l'exemple.

Exécution de l'optimisation

Exécuter le processus d'optimisation pour trouver les paramètres optimaux.

Déploiement de la stratégie

Déployez la stratégie avec les paramètres optimisés dans un environnement de trading réel. Veillez à surveiller en permanence et à mettre à jour si nécessaire.

Cette approche permet une recherche efficace des paramètres optimaux de la stratégie de trading, en s'appuyant sur l'optimisation bayésienne pour traiter efficacement les fonctions objectives coûteuses et bruitées.

Avantages
  • Efficacité - Nécessite moins d'évaluations de la fonction objective que les méthodes traditionnelles.

  • Quantification de l'incertitude - Fournit des estimations de l'incertitude qui guident le processus de recherche.

  • Flexibilité - Peut être appliquée à un large éventail de problèmes d'optimisation.

Limites
  • Évolutivité - Peut ne pas bien s'adapter aux problèmes de haute dimension en raison de la complexité informatique des processus gaussiens.

  • Complexité - La mise en œuvre et la compréhension de la méthode peuvent être complexes.

L'optimisation bayésienne est une méthode d'analyse unique pour l'optimisation des fonctions coûteuses de la boîte noire - équilibrant l'exploration et l'exploitation pour trouver efficacement des solutions optimales.

compte-demo.png


Le trading de CFD implique un risque de perte significatif, il ne convient donc pas à tous les investisseurs. 74 à 89% des comptes d'investisseurs particuliers perdent de l'argent en négociant des CFD.

Hors ligne

Utilisateurs enregistrés en ligne dans ce sujet: 0, invités: 1
[Bot] CCBot

Pied de page des forums