Documentation

Applications

Dernière mise à jour le 6. 5. 2015 par Mark Fric

Optimisation de la marche en avant

Qu'est-ce que l'optimisation ?

L'idée derrière une optimisation est simple. Vous devez tout d'abord disposer d'un système de négociation - par exemple un simple croisement de moyennes mobiles : Si l'EMA(10) passe au-dessus de l'EMA(20), il faut acheter, sinon il faut vendre.

Dans presque tous les systèmes de trading, il existe certains paramètres (périodes des indicateurs, constantes à comparer, etc.) qui influencent les performances du système. L'optimisation consiste à trouver les valeurs optimales de ces paramètres (qui donnent le profit le plus élevé ou le meilleur ratio Rendement/DD ou tout autre paramètre souhaité).

Par exemple, serait-il préférable d'utiliser la règle "EMA(10) croise la EMA(20)" ou la règle "EMA(15) croise la EMA(50)" ?
L'optimisation peut vous aider à trouver les valeurs qui ont donné les meilleurs résultats dans le passé.

Qu'est-ce que l'optimisation/analyse Walk-Forward ?

L'optimisation Walk-Forward est généralement un type spécial de backtest qui se compose de plusieurs backtests plus petits sur des périodes d'optimisation. Ces périodes d'optimisation sont réparties sur l'ensemble de la période de backtesting et sont toujours suivies de tests hors échantillon avec les paramètres optimisés.

Il s'agit d'une technique qui consiste à optimiser les valeurs des paramètres sur un segment passé de données de marché, puis à vérifier la performance du système en le testant dans le temps sur des données suivant le segment d'optimisation, et le processus peut être répété sur des segments de temps ultérieurs.

Comment fonctionne l'optimisation Walk-Forward

Dans l'optimisation en marche avant, les données sont divisées en un nombre configurable de périodes (5 dans cet exemple). Chaque période se compose d'une partie d'optimisation et d'une partie d'exécution.

Le programme commence par la période d'optimisation 1. Il exécute l'optimisation simple sur la période d'optimisation 1 pour trouver les meilleures valeurs de paramètres. Ces valeurs de paramètres sont ensuite appliquées à la période d'exécution 1 - la stratégie est négociée avec les paramètres optimisés trouvés à l'étape précédente.

À la fin de la période d'exécution 1, le système exécute à nouveau une optimisation simple sur une partie des données marquées comme période d'optimisation 2. Il trouve le meilleur ensemble de valeurs de paramètres et les utilise à nouveau pour la négociation dans la période d'exécution 2.

Ce processus se poursuit jusqu'à la période 5, qui correspond également à la fin des données historiques utilisées dans le test.

L'optimisation Walk-Forward simule la façon dont vous pourriez travailler avec la stratégie lors de transactions réelles. - vous pouvez l'optimiser sur la base de données historiques et le négocier avec les valeurs optimales. Au bout d'un certain temps, vous voudrez le réoptimiser et le laisser négocier à nouveau.

Que vous apprend l'optimisation/analyse Walk-Forward ?

Il vous indique essentiellement si la stratégie est suffisamment robuste et si ses performances peuvent être améliorées par une réoptimisation.
Si la performance de la stratégie est moins bonne pendant la réoptimisation que celle de la stratégie originale non optimisée, c'est un signal important à surveiller pour l'ajustement de la courbe.

D'autre part, si la stratégie optimisée Walk-Forward est plus performante que la version non optimisée sur les mêmes données, cela signifie que :

  1. Votre stratégie bénéficiera d'une optimisationIl est donc nécessaire de le réoptimiser périodiquement pour obtenir les meilleures performances.
  2. Cela signifie également que le la stratégie est suffisamment solide pour s'adapter aux changements du marché (en utilisant la réoptimisation) et il y a de fortes chances que cela fonctionne également à l'avenir.

Exemple d'optimisation Walk-Forward dans StrategyQuant

L'optimisation Walk-Forward dans StrategyQuant est simple, dans les prochaines lignes je montrerai le processus complet.

Stratégie d'optimisation
Pour plus de simplicité, nous utiliserons la stratégie EMA Cross dans cet exemple. Notez que cette stratégie dans sa forme de base n'est PAS rentable et que la réoptimisation ne l'aidera pas, mais elle est suffisamment simple pour démontrer comment fonctionne l'optimisation.

Vous pouvez télécharger la stratégie en utilisant le lien ci-dessous - Cliquez avec le bouton droit de la souris et choisissez Enregistrer sous...

EMA Cross strategy.str

Contenu :

  1. Chargement d'une stratégie d'optimisation
  2. Définition des valeurs d'optimisation
  3. Configuration des marches en avant
  4. Vérification des résultats
  5. Interprétation des résultats
  6. Description des composantes du score WF avancé

Étape 1 : Chargement d'une stratégie d'optimisation

Tout d'abord, vous devez passer à la fenêtre Optimizer et charger la stratégie que vous souhaitez optimiser.

Pour cet exemple, nous utiliserons la stratégie simple EMA_Cross qui est longue lorsque la EMA la plus rapide passe au-dessus de la EMA la plus lente, et courte lorsque la EMA la plus rapide passe en dessous de la EMA la plus lente. Une fois la stratégie chargée, elle est également ajoutée en tant que stratégie originale à la banque de données des résultats d'optimisation.

Vous pouvez double-cliquer sur la stratégie originale et aller ensuite dans Résultats -> Code source pour voir ses règles.

Veillez à vérifier le Attribuer des valeurs aux paramètres afin de voir que les variables pLongEMA_1, pLongEMA_2, pShortEMA_1, pShortEMA_1 sont utilisées pour stocker les paramètres de l'indicateur. Dans notre optimisation, nous essaierons de trouver les valeurs optimales de ces paramètres.

Il y a encore un petit problème. Nous pouvons voir que la stratégie utilise des paramètres différents pour la direction longue et pour la direction courte. Nous pouvons l'utiliser de cette manière si nous voulons trouver des valeurs optimales indépendamment pour le côté long et le côté court, mais pour notre exemple, nous aimerions utiliser le même paramètre pour le côté long et le côté court.

Nous pouvons le faire dans le programme Outils -> Options -> Paramètres de la stratégie.

Si vous cochez la première case, il utilisera les mêmes paramètres pour la direction longue et la direction courte (à condition que les règles soient les mêmes). Cliquez sur OK pour enregistrer les paramètres et restaurer le code source.


Étape 2 : Définition des valeurs d'optimisation

Pour définir les valeurs qui seront optimisées, nous devons aller dans Paramètres -> Paramètres

Vous pouvez voir ici la liste de tous les paramètres de la stratégie qui sont disponibles pour l'optimisation. L'optimisation consiste simplement à essayer différentes valeurs des paramètres d'entrée.

Pour chaque paramètre que vous souhaitez optimiser Vous devez vérifier la ligne du paramètre et choisir les valeurs Start, Stop et Step.. L'optimiseur va itérer la valeur de Start à Stop, en prenant des pas. La valeur d'origine est également configurable ; elle sera utilisée pour retester la stratégie d'origine. Vous pouvez utiliser cette valeur pour comparer les performances des nouveaux résultats avec les paramètres "originaux".

Les Nombre de tests indique le nombre de tests à effectuer pour tester toutes les combinaisons de valeurs.

Remarque !
Il est possible que votre tableau de paramètres contienne beaucoup plus de paramètres, il pourrait ressembler à ceci :

Il s'agit d'une autre fonctionnalité puissante de StrategyQuant. Elle vous permet d'optimiser non seulement les paramètres de la stratégie, mais aussi d'autres options de trading, telles que le nombre de transactions à effectuer par jour, ou la fourchette de temps pour le trading. Ces paramètres font normalement partie des options de stratégie, mais vous pouvez également optimiser leurs valeurs.

Si vous ne voulez pas les utiliser et les voir dans le tableau des paramètres, allez une fois de plus à Outils -> Options -> Paramètres de la stratégie et décochez la case pour Ajouter des paramètres pour les options de stratégie.


Étape 3 : Configuration des marches exploratoires

Nous devons également spécifier les paramètres de marche en avant. Dans cet exemple, nous utiliserons la période 30% Out Of Sample (Run) et 6 étapes de réoptimisation.

Hors échantillon %
indique la part de la période entière qui reste pour l'exécution. Si nous le fixons à 30 %, cela signifie que, pour chaque période, 70% des données sont utilisées pour l'optimisation, et 30% seront utilisées pour la négociation à l'aide des valeurs optimisées.

Marche avant Courses
cela signifie le nombre de cycles d'optimisation, c'est-à-dire le nombre de fois que nous réoptimiserons la stratégie.

Il est également possible de spécifier les périodes d'optimisation (dans l'échantillon) et d'exécution (hors de l'échantillon) par jours exacts, vous pouvez le faire en cochant Définir un nombre spécifique de jours.


Étape 4 : Vérification des résultats

L'optimisation Walk-Forward prend plus de temps qu'une optimisation simple, car il y a 6 (ou plus) étapes d'optimisation au lieu d'une seule.

À la fin de l'opération, nous verrons que la banque de données ne contient que deux résultats : la stratégie originale et le résultat de la marche en avant.

Lorsque nous double-cliquons sur le résultat dans la banque de données, les résultats de la stratégie s'ouvrent.

Nous pouvons constater que la stratégie a échoué dans le test de marche avant, sur la base de nos paramètres de score de robustesse.

Le score de robustesse est entièrement personnalisable. Nous pouvons définir toutes les conditions que nous voulons observer dans le tableau des composants du score de robustesse (1) et fixer leurs valeurs limites.

La valeur seuil du score principal de robustesse (2) indique combien de ces scores doivent être réussis pour que le résultat du WF soit considéré comme satisfaisant.

À droite de ce tableau, nous pouvons vérifier les résultats pour chaque optimisation et chaque période d'exécution :

Vous pouvez constater que seulement 2 des 6 courses se sont soldées par un bénéfice.

Nous pouvons également consulter le graphique des actions :

La ligne bleue représente la stratégie réoptimisée, tandis que la ligne grise plus fine représente la stratégie originale non optimisée.


Interprétation des résultats

Comment interpréter ces résultats ?

Tout d'abord, il est clair que cette stratégie particulière ne donne pas de meilleurs résultats lorsque la réoptimisation est utilisée.
Il est certain que cette stratégie n'est pas rentable dans sa forme originale et qu'elle n'a pas été rendue rentable par la réoptimisation.

Mais que se passerait-il si nous réoptimisions la stratégie plus souvent ? Ou si nous utilisions différents % hors échantillon ? Comment savoir quelle est la meilleure période de réoptimisation pour la stratégie ?

C'est ici que Matrice de la marche en avant entre en jeu - voir l'article suivant.

 

Conseil - voir aussi l'article Description des valeurs avancées de Walk-Forward pour la description des différentes valeurs qui peuvent être utilisées dans les filtres ou affichées dans la banque de données.

 

 

Cet article a-t-il été utile ? L'article était utile L'article n'était pas utile

S'abonner
Notification pour
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires