Bonne journée
Sujet verrouillé
• Page 1 sur 1
Bonjour, j'espère que vous allez bien ! je voudrais savoir pourquoi dit on souvent que les robots en backtest ne donnent pas les mêmes résultats en réel ?
Bonne journée
Bonne journée
Peut être ca la psychologie ne rentre pas en compte ?
Je ne sais pas, je ne me suis jamais penché sur les backtests.
Je ne sais pas, je ne me suis jamais penché sur les backtests.
Personnellement je ne fais jamais de backtest car c'est un exercice qui nécessite un très grand savoir faire pour être pertinent.
Travailler sur le passé en optimisant des paramètres c'est comme jouer au Poker en voyant les cartes de tes adversaires (la formule est de Benoist et je la trouve très parlante)
Backtester sans les ticks ne rime à rien puisqu'au sein d'une même Bougie tu ne sais pas si c'est ton SL ou ton TP qui est atteint en premier donc le résultat est très aléatoire. Cette méconnaissance peut amener à des résultats complètement faux.
Comme dit plus haut je ne suis pas un spécialiste mais attention aux résultats si tu ne maîtrise pas parfaitement ton sujet.
Travailler sur le passé en optimisant des paramètres c'est comme jouer au Poker en voyant les cartes de tes adversaires (la formule est de Benoist et je la trouve très parlante)
Backtester sans les ticks ne rime à rien puisqu'au sein d'une même Bougie tu ne sais pas si c'est ton SL ou ton TP qui est atteint en premier donc le résultat est très aléatoire. Cette méconnaissance peut amener à des résultats complètement faux.
Comme dit plus haut je ne suis pas un spécialiste mais attention aux résultats si tu ne maîtrise pas parfaitement ton sujet.
A mon sens, la différence essentielle est qu'en backtest, on est dans un environnement maitrisé, on est sûr de traiter tous les ticks dont on dispose, tous les ordres sont exécutés, on n'est pas pertubé par le slippage, il n'y a pas de panne d'ordinateur ou de réseau, etc...
Tandis qu'en réel, aucun de ces éléments n'est certain car ils dépendent de beaucoup de facteurs externes qui nous échappent.
Donc,
1) Il est judicieux d'ajouter une part d'aléas dans les backtests pour vérifier si la stratégie supporte les impondérables.
2) Il est préférable de valider son backtest par un test en réel avec des mini lots.
PS :
Ne pas confondre backtest et optimisation
Tandis qu'en réel, aucun de ces éléments n'est certain car ils dépendent de beaucoup de facteurs externes qui nous échappent.
Donc,
1) Il est judicieux d'ajouter une part d'aléas dans les backtests pour vérifier si la stratégie supporte les impondérables.
2) Il est préférable de valider son backtest par un test en réel avec des mini lots.
PS :
Ne pas confondre backtest et optimisation
takapoto, A partir du moment où tu testes un système avec ses paramètres. Que tu n'est pas satisfait. Que tu changes la valeur des paramètres et que tu relances un test. C'est quand même un peu de l'optimisation non?
C'est même beaucoup d'optimisation !
Et comme tu le souligne, c'est à proscrire.
Mais on peut backtester un stratégie sans nécessairement faire cela.
On peut simplement fixer la valeur des paramètres de façon générale en fonction d'un ordre de grandeur qui dépend essentiellement du support et du time frame et ensuite se concentrer sur la logique de la stratégie.
On peut même faire de "l'anti-optimisation" :
Par exemple, si on a une stratégie qui se base sur le rebond sur le point pivot et qui marche bien, on peut (et on doit) vérifier si elle est toujours gagnante quand le point pivot est touché à 1, 2, 3,... etc points près.
On peut aussi supprimer les x meilleurs résultats du backtest et voir si on est toujours gagnant.
L'essentiel est de ne pas se raconter d'histoire à soi-même en "bidouillant" pour que ça marche. (sauf si on veut vendre le robot )
Mais je trouve suicidaire de lancer un automate sans l'avoir backtester. Même si on considère que le marché est fluctuant, une stratégie qui donne de bons résultats sur plusieurs années passées aura plus de chance d'être gagnante qu'une stratégie qui explose le capital en 15 jours.
Et pour savoir cela, il faut backtester.
Et comme tu le souligne, c'est à proscrire.
Mais on peut backtester un stratégie sans nécessairement faire cela.
On peut simplement fixer la valeur des paramètres de façon générale en fonction d'un ordre de grandeur qui dépend essentiellement du support et du time frame et ensuite se concentrer sur la logique de la stratégie.
On peut même faire de "l'anti-optimisation" :
Par exemple, si on a une stratégie qui se base sur le rebond sur le point pivot et qui marche bien, on peut (et on doit) vérifier si elle est toujours gagnante quand le point pivot est touché à 1, 2, 3,... etc points près.
On peut aussi supprimer les x meilleurs résultats du backtest et voir si on est toujours gagnant.
L'essentiel est de ne pas se raconter d'histoire à soi-même en "bidouillant" pour que ça marche. (sauf si on veut vendre le robot )
Mais je trouve suicidaire de lancer un automate sans l'avoir backtester. Même si on considère que le marché est fluctuant, une stratégie qui donne de bons résultats sur plusieurs années passées aura plus de chance d'être gagnante qu'une stratégie qui explose le capital en 15 jours.
Et pour savoir cela, il faut backtester.
Comme précisé plus haut, je ne suis pas un spécialiste des backtests.
Merci takapoto pour tes explications
Ce que je retiens, c'est que si tu fais un backtest tu sauras en retirer quelque chose de pertinent et si c'est moi, ce sera disons...très aléatoire (pour rester poli ).
Un outil plus compliqué à appréhender qu'il n'y parait.
Merci takapoto pour tes explications
Ce que je retiens, c'est que si tu fais un backtest tu sauras en retirer quelque chose de pertinent et si c'est moi, ce sera disons...très aléatoire (pour rester poli ).
Un outil plus compliqué à appréhender qu'il n'y parait.
Mon propos se situe seulement dans l'optique d'un robot de trading automatique dépourvu d'IA (dans le cas d'IA, on ne parlera pas de backtest mais "d'apprentissage").
Les traders manuels expérimentés qui "sentent" le marché n'ont pas besoin de backtest : leur instinct leur dit quoi faire.
En revanche, je trouve très dangereux pour quelqu'un de moins expérimenté, de considérer un setup comme étant valable simplement après avoir constaté sur une semaine ou deux qu'il a donné de bons résultats.
Dans ce cas, il ne faut pas l'appliquer aveuglement mais seulement s'en servir comme alerte pour éventuellement prendre position si notre cerveau (qui intègre beaucoup plus d'informations qu'un robot) nous le confirme.
C'est ce que fait Benoist : il a plusieurs setup mais c'est son cerveau qui prend la bonne décision (ou pas).
C'est ce qui fait que l'on n'est pas égaux devant les graphiques : tout dépend de nos capacités intrinsèques et de notre évolution personnelle.
D'où l'intérêt du trading automatique qui nivelle les chances mais qui sera toujours moins efficace qu'un (bon) trader.
Les traders manuels expérimentés qui "sentent" le marché n'ont pas besoin de backtest : leur instinct leur dit quoi faire.
En revanche, je trouve très dangereux pour quelqu'un de moins expérimenté, de considérer un setup comme étant valable simplement après avoir constaté sur une semaine ou deux qu'il a donné de bons résultats.
Dans ce cas, il ne faut pas l'appliquer aveuglement mais seulement s'en servir comme alerte pour éventuellement prendre position si notre cerveau (qui intègre beaucoup plus d'informations qu'un robot) nous le confirme.
C'est ce que fait Benoist : il a plusieurs setup mais c'est son cerveau qui prend la bonne décision (ou pas).
C'est ce qui fait que l'on n'est pas égaux devant les graphiques : tout dépend de nos capacités intrinsèques et de notre évolution personnelle.
D'où l'intérêt du trading automatique qui nivelle les chances mais qui sera toujours moins efficace qu'un (bon) trader.
Spoiler:
takapoto, on est bien d'accord !
Je ne crois pas qu'il y ai une formation spécique pour apprendre à backtester.
Chacun le fait à sa manière.
Il y a certainement autant de méthodes qu'il y a de backtesteurs.
Je donne ici mon point de vue mais ce n'ai pas du tout une vérité véridique
Voici la méthode itérative (très schématisée) que je suis :
1) Préalables
- Choisir un support de base
- Choisir un bon historique de cours, sur plusieurs années et incluant le spread pour éliminer dès le départ ce problème
- Effectuer un maximum de statistiques pour déterminer les caractéristiques du support (volativité, amplitude mini et maxi, hauteur maxi des bougies pour un time frame, impact des annonces économiques, etc, etc, etc)
(tout ça en global, suivant les années, les mois, les jours, les heures)
2) Processus de test
a) Elaborer une stratégie en fonction des informations retirées des statistiques.
b) Tester la stratégie sur un échantillon de jours représentatifs chacun d'une phase du marché (hausse, baisse, range, faible volativité, grande volativité, etc..) que l'on aura déterminé grâce aux statistiques préalablement effectuées
c) Etudier pouquoi la stratégie a bien fonctionné pour certains jours et pas bien pour d'autre
d) Essayer de trouver une solution pour éviter au maximum les jours en perte (sans optimiser les paramètres mais, par exemple en introduisant un rsi, une moyenne, etc...)
e) Si ça ne donne rien, aller en a) réfléchir à une autre stratégie
f) Si le résultat est acceptable (*), effectuer le backtest sur plusieurs années
g) Essayer de trouver une solution pour éviter au maximum les jours en perte
h) Si ça ne donne rien, aller en a) réfléchir à une autre stratégie
i) Si le résultat est bon, introduire un slippage aléatoire et refaire le test sur plusieurs années
j) Si le résultat est bon, simuler aléatoirement la non exécution d'un nombre raisonnable d'ordres et refaire le test sur plusieurs années
k) Si le résultat est bon, supprimer du backtest les meilleurs jours et refaire le test sur plusieurs années
l) Si le résultat est bon, faire tourner le robot en réel avec un minimum de lots et un petit capital pendant un certain temps
(*) Il faut au préalable définir ce qu'est un résultat acceptable pour soi. C'est essentiellement lié à sa capacité à supporter les drawdown. Personnellement, je cherche une equity curve la plus rectiligne possible.
Chacun le fait à sa manière.
Il y a certainement autant de méthodes qu'il y a de backtesteurs.
Je donne ici mon point de vue mais ce n'ai pas du tout une vérité véridique
Voici la méthode itérative (très schématisée) que je suis :
1) Préalables
- Choisir un support de base
- Choisir un bon historique de cours, sur plusieurs années et incluant le spread pour éliminer dès le départ ce problème
- Effectuer un maximum de statistiques pour déterminer les caractéristiques du support (volativité, amplitude mini et maxi, hauteur maxi des bougies pour un time frame, impact des annonces économiques, etc, etc, etc)
(tout ça en global, suivant les années, les mois, les jours, les heures)
2) Processus de test
a) Elaborer une stratégie en fonction des informations retirées des statistiques.
b) Tester la stratégie sur un échantillon de jours représentatifs chacun d'une phase du marché (hausse, baisse, range, faible volativité, grande volativité, etc..) que l'on aura déterminé grâce aux statistiques préalablement effectuées
c) Etudier pouquoi la stratégie a bien fonctionné pour certains jours et pas bien pour d'autre
d) Essayer de trouver une solution pour éviter au maximum les jours en perte (sans optimiser les paramètres mais, par exemple en introduisant un rsi, une moyenne, etc...)
e) Si ça ne donne rien, aller en a) réfléchir à une autre stratégie
f) Si le résultat est acceptable (*), effectuer le backtest sur plusieurs années
g) Essayer de trouver une solution pour éviter au maximum les jours en perte
h) Si ça ne donne rien, aller en a) réfléchir à une autre stratégie
i) Si le résultat est bon, introduire un slippage aléatoire et refaire le test sur plusieurs années
j) Si le résultat est bon, simuler aléatoirement la non exécution d'un nombre raisonnable d'ordres et refaire le test sur plusieurs années
k) Si le résultat est bon, supprimer du backtest les meilleurs jours et refaire le test sur plusieurs années
l) Si le résultat est bon, faire tourner le robot en réel avec un minimum de lots et un petit capital pendant un certain temps
(*) Il faut au préalable définir ce qu'est un résultat acceptable pour soi. C'est essentiellement lié à sa capacité à supporter les drawdown. Personnellement, je cherche une equity curve la plus rectiligne possible.
Quand je disais que c'est un savoir et que ça ne s'improvise pas !
Des idées ?
Des idées ?
Attention jljl ! tu as créés 2 mêmes files à 5 jours d'intervalle = risque de blacklistage automatique par le forum.
Je verrouille donc la plus ancienne.
Pour répondre à ce sujet, c'est ici:
backtest-et-reel-t40395.html
Je verrouille donc la plus ancienne.
Pour répondre à ce sujet, c'est ici:
backtest-et-reel-t40395.html
Sujets similaires
Backtest : Pour ou contre les optimisations
Fichier(s) joint(s) par teg54 » 23 avr. 2014 15:00 (21 Réponses)
Fichier(s) joint(s) par teg54 » 23 avr. 2014 15:00 (21 Réponses)
comportement différent pro-Order / backtest pour même code
Fichier(s) joint(s) par Ernesto » 15 août 2014 16:28 (5 Réponses)
Fichier(s) joint(s) par Ernesto » 15 août 2014 16:28 (5 Réponses)