Processus de développement du système Ubzen

 

Objet : J'essaie de définir un processus de développement de système. J'ai quelques idées en tête mais ce n'est pas complet. J'espère que d'autres personnes mieux informées pourront critiquer le processus. Si un membre éminent a un problème avec le fait que j'utilise le forum comme un blog personnel, ou ne voit rien de bon dans cette expérience, dites-le et j'arrêterai rapidement.

Ok, nous avons déjà le système fourni par un membre appelé sakis ici. Un petit échantillon de 3 mois d'essai a montré des résultats prévisibles. Maintenant j'apprends comment obtenir toutes les mesures statistiques pour cette période en utilisant cet article. Je vais commencer par le Mae/Mfe.

 

ubzen, il existe essentiellement deux approches pour capturer le MAE/MFE de chaque transaction pendant le backtesting.

La première méthode que j'ai suivie consistait à suivre le gain/la perte maximum de la position tick-by-tick pendant le backtesting, en capturant les extrêmes en "temps réel". Il s'agit de l'approche la plus gourmande en ressources CPU, mais aussi la moins sujette aux erreurs systématiques dans le résultat final.

La deuxième méthode, et celle que j'utilise actuellement, consiste à attendre que le backtest soit terminé, puis, pendant la fonction deinit(), à parcourir en boucle l'historique des ordres, à extraire les horodatages des ordres d'ouverture et de fermeture de chaque transaction et à rechercher les prix extrêmes les plus bas et les plus hauts qui se sont produits entre ces deux horodatages. Ensuite, utilisez ces prix extrêmes pour calculer la MAE et la MFE qui ont dû se produire pour la transaction à ces moments-là.

C'est très rapide et peu gourmand en ressources, idéal pour le backtesting, mais cela peut introduire des erreurs SI la MAE ou la MFE se produit dans la bougie d'ouverture ou la bougie de fermeture, car les points de prix qui définissent ces bougies dans le fichier hst peuvent s'être produits chronologiquement avant l'ouverture de l'ordre ou après la fermeture de l'ordre (mais dans la même bougie).

Dans la pratique, je n'ai pas trouvé que cet inconvénient de la deuxième approche était très préoccupant. Mais c'est quelque chose dont il faut être conscient.

(un autre avantage de développer une routine d'inclusion pour votre deinit() est que vous pouvez également l'utiliser comme un script à exécuter sur vos comptes forward/live... il suffit de glisser-déposer et cela vous permet d'analyser les transactions passées sur le compte).

 

salut ubzen comment vas-tu ?

1) Votre logique de sortie ne semble pas fonctionner comme défini dans le système original, du moins à première vue sur le graphique.

2) Le système fonctionne mieux pour moi avec un ratio risque/rendement de 2 au lieu de 1, peut-être que le RRR dynamique pourrait même s'améliorer davantage.

3) 01.01.2010 à 01.03.2010 semble être un sweetspot pour cet EA, presque aucune perte, la période pourrait être un peu petite pour les tests et pas bien choisie.

4) Nous avons une interprétation différente de la stratégie, après un croisement prix/ma je comprends que le MACD doit déjà avoir croisé 0 (mais pas à plus de 5 barres) mais vous attendez le croisement macd et ouvrez les ordres.

-Mon interprétation filtre déjà beaucoup de trades.

J'ai ajouté :

a)support pour les achats et les ventes en même temps. (aussi si les ordres sont au breakeven de nouveaux ordres peuvent être ouverts).

b)un filtre d'entrée au point pivot (acheter seulement au dessus/vendre seulement en dessous)

c) J'utilise le CCI au lieu de la logique de sortie originale. (Il y a encore beaucoup à faire dans ce cas).

Voici quelques photos :


 

Merci Zzuegg,

Mec, tu es un tel preneur de risques ;). 10% ? ??. Je suis content de voir que ça marche un peu dans le futur. J'avais peur de regarder vers l'avenir de peur d'ajuster la courbe de cette chose. Un coup d'oeil visuel est tout ce qu'il faut.

1) Votre logique de sortie ne semble pas fonctionner comme défini dans le système original, du moins d'après un premier regard sur le graphique. Je vais refaire le code pour m'assurer qu'il fonctionne comme prévu par le fournisseur avant de poster à nouveau l'EA.

2) Le système fonctionne mieux pour moi avec un ratio risque/rendement de 2 au lieu de 1, peut-être que le RRR dynamique pourrait même s'améliorer davantage. Eh bien, c'est pourquoi je fais tout cela pour voir ce qui serait amélioré.

3) 01.01.2010 à 01.03.2010 semble être un sweetspot pour cet EA, presque pas de pertes, la période est peut-être un peu petite pour les tests et pas bien choisie. Il a donc atteint le sweetspot du premier coup, c'est ce que je craignais. Je ne me soucie pas vraiment de savoir si cette chose est le Saint Graal. Je l'utilise juste comme une étude de cas, ce n'est pas mon système donc, je peux poster les codes.

4) Nous avons une interprétation différente de la stratégie, après un croisement prix/ma je comprends que le MACD doit déjà avoir croisé 0 (mais pas à plus de 5 barres) mais vous attendez le croisement macd et ouvrez les ordres. Oui, c'est ce que j'ai appris. Seul le fournisseur original peut éclaircir cela maintenant.

 
ubzen:

Merci Zzuegg,


3) 01.01.2010 à 01.03.2010 semble être un sweetspot pour cet EA, presque pas de pertes, la période est peut-être un peu petite pour les tests et pas bien choisie.
Il a donc atteint le sweetspot du premier coup, c'est ce que je craignais. Je ne me soucie pas vraiment de savoir si cette chose est le Saint Graal. Je l'utilise juste comme une étude de cas, ce n'est pas mon système donc, je peux poster les codes.

si ça marche bien pourquoi ne pas utiliser un système ? Il y a encore beaucoup à faire, mais pour une stratégie brute, cela montre du potentiel. La logique de sortie doit être fortement étendue de mon point de vue.

En ce qui concerne les 10%, j'aime voir les hausses et les baisses clairement sur les testruns, rien pour les simulations réalistes bien sûr.


ajouter :

le plus intéressant, c'est que même avec un ratio risque/récompense de 2, ce système a gagné plus de 50% des transactions, ce qui est un avantage considérable.

 

@1005phillip : Avertissement noté. Je n'ai jamais pris le temps de télécharger les tick-data. Quelle est l'ampleur de ce problème ?

Parce que l'Excursion Adverse Maximum devrait être plus importante pour un trader, nous allons commencer par cela. En utilisant les mêmes résultats, j'ai tracé ce que je crois être la (méthode LS) dans mon Excel j'ai fait la ligne de tendance, Quelqu'un me corrige si je me trompe. L'outil utilisé pour générer la feuille de calcul est celui de Rosh que vous trouverez ici. Ensuite, je vais utiliser l'outil de 1005phillip trouvé ici pour l'évaluer en fonction de différentes constantes de temps.

Eh bien, il a une pente positive. Alors, qu'est-ce que cela signifie et comment pouvons-nous l'améliorer ? Bon sang, si je le savais, je ne serais pas en train d'expérimenter ici. Cependant, comme le dit l'article, c'est positif, c'est un point dans notre tirelire. Je vais laisser la logique du Stop_Level en place. Lorsque nous le testons avec différents temps de fermeture, ces chiffres devraient changer du tout au tout.

Ci-dessous l'image du graphique et de la pente.... J'ai également joint le .csv créé par le rapport.

Dossiers :
 

ubzen, c'est une question de préférence personnelle quant à ce que vous faites avec les données MAE.

Je ne caractérise pas MAE par rapport à P/L... pour moi, ce n'est pas une cause à effet statistiquement valide.

Je caractérise MAE comme MAE vous dit que votre "stratégie d'entrée" vous a fait entrer dans une position trop tôt, d'un montant égal à MAE. Ainsi, votre "potentiel de profit" pour la transaction a été miné d'un montant égal à la MAE.

La MAE sert à ajuster votre stratégie d'entrée. La MFE sert à ajuster votre stratégie de sortie.

La différence entre l'EMF et le profit de l'ordre est ce que j'appelle "l'excès d'EMF" ou simplement "EMFE" et c'est l'argent que vous avez laissé sur la table en vertu de votre stratégie de sortie qui a maintenu la position ouverte trop longtemps.

Et troisièmement, le temps, c'est de l'argent. Le capital immobilisé pour soutenir la position de marge d'une transaction est un capital qui ne peut pas être utilisé pour soutenir une autre transaction. Ainsi, le "temps jusqu'à MAE" et le "temps jusqu'à EMFE" sont des paramètres à analyser car ils vous indiquent le moment où vous n'utilisez pas votre capital de manière judicieuse/efficace.

Enfin, il est essentiel que vous examiniez la chronologie de l'apparition de la MAE et de la MFE. Si la MAE se produit avant la MFE, alors la transaction était bonne, mais elle doit être optimisée afin d'ajuster les stratégies d'entrée et de sortie pour une MAE et une EMFE minimales.

Mais si la MAE se produit après la MFE, alors la stratégie a échoué de plusieurs façons. La plus importante est peut-être qu'elle ouvre des positions opposées à celles que l'on devrait prendre. Si votre stratégie consiste à ouvrir une position longue et que le marché procède à une action de prix qui fait que la MFE se produit avant la MAE de votre transaction, cela signifie que votre transaction aurait dû être une position courte, et non une position longue (dans ce cas, la MFE de la position longue devient la MAE de la position courte, et vice versa pour la MFE).

Je pense que j'ai peut-être déjà publié ces chiffres, mais je ne m'en souviens plus :

 
Merci pour ces graphiques, 1005phillip. Ils l'expliquent très bien pour moi.
 
Bonjour Phillip, je suis coincé et j'ai besoin de votre aide. En utilisant votre outil, j'obtiens en quelque sorte des valeurs que je n'attendais pas. Par exemple, lorsque j'additionne les profits et les pertes en Pips Data, je reçois un nombre négatif alors que la simulation était positive. Je suppose que cela a quelque chose à voir avec la fréquence mais pouvez-vous m'expliquer ? J'allais vous envoyer un message par courriel, mais d'autres personnes ont peut-être cette question à propos de votre outil. Merci.... Les fichiers du test sont joints ci-dessous.
Dossiers :
help.zip  20 kb
 
@1005phillip merci pour les graphiques ! J'avais ces statistiques codées dans mon EA depuis un moment... cela améliore définitivement mon interprétation des chiffres qu'il sort !
 

Bonjour Phillip. Juste quelques petites questions de mon côté :

Après avoir utilisé votre outil, j'ai obtenu ces fichiers d'histogramme. Jusqu'à présent, j'ai examiné de près la "perte de profit par rapport à MAE et MFE" en pips.

D'après ce que j'ai compris, ces valeurs indiquent les pips manqués pendant que le trade était ouvert. En principe, les meilleurs résultats sont obtenus lorsque Profit==MFE et MAE==0, n'est-ce pas ?

Si vous regardez l'image ci-dessous nous pouvons voir :

  • si l'EA fait des profits, ils sont proches de la MFE (bien sûr, puisque j'utilise des takeprofits)
  • si l'EA fait des profits, la MAE est également proche de 0, ce qui signifie que les entrées sont assez bonnes. (au moins les meilleures pendant le temps d'ouverture de l'ordre).
  • si l'EA fait des pertes, il correspond le plus souvent à MAE (bien sûr depuis que le stoploss est utilisé) :
  • Si dans ce cas le MFE est proche de 0, il n'y avait aucune chance de faire des profits.
  • Mais si la MFE est élevée, cela signifie que j'ai manqué une sortie.

Ces conclusions sont-elles valables ?