probacktest – achat non déclenché et compteur initial non nul
Forums › ProRealTime forum Français › Support ProOrder › probacktest – achat non déclenché et compteur initial non nul
- This topic has 10 replies, 3 voices, and was last updated 7 years ago by Jeje.
-
-
10/02/2017 at 9:29 PM #48065
Bonjour,
Je souhaite intégrer un compteur d’achats et un compteur de ventes.
L’objectif étant le suivant : si le code rencontre plusieurs signaux de ventes successifs, alors il doit réaliser qu’une tendance haussière est forte (nous sommes loin d’un range tranquille !), et à partir d’un certain nombre de signaux de ventes, au lieu de déclencher des ventes, il déclenche à chaque fois des achats –> cette configuration serait très utile en ce moment avec un DAX qui monte fortement depuis de nombreuses heures.
Je souhaite avoir votre aide sur 2 problèmes sur le code suivant passé en backtest :
- le code ne prend pas un signal d’achat qui doit se présenter le 22 septembre à 3 heures 15 (alors qu’il devrait le faire) au regard de la condition d’achat pour le test, (il ne prend pas non plus le signal de vente de vendredi 22 septembre à 12 heures 45 alors que la condition de vente est vérifiée)
- le compteur d’achats (= compteurachat) commence ma période backtestée à la valeur 904 –> alors qu’il devrait commencer à 0 (comme c’est le cas pour le compteur de vente (= compteurvente)
le code ci-dessous est fait pour inverser une position à chaque fois qu’un signal de retournement se présente –> s’il est déjà en position, il clôture la position ouverte, puis ouvre une autre position dans le sens inverse.
Par contre, s’il rencontre un nouveau signal identique, il ne clôture pas, mais cumule un nouvelle position.
Pourriez-vous m’aider s’il vous plaît pour les 2 problèmes rencontrés ?
les données du backtest sont données sur la capture d’écran jointe. Un GRAND MERCI à vous.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455// Définition des paramètres du codeDEFPARAM CumulateOrders = True // Cumul des positions désactivéonce compteurachat=0once compteurvente=0nombredecontrats=1// Conditionsachat = (close < 12564)vente = (close > 12643)// achatgraph compteurachat as "compteurachat"IF shortonmarket and achat THENEXITSHORT AT MARKETBUY nombredecontrats CONTRACT at marketcompteurvente=0compteurachat=compteurachat+nombredecontratsENDIFIF NOT shortonmarket and achat THENBUY nombredecontrats CONTRACT at marketcompteurvente=0compteurachat=compteurachat+nombredecontratsENDIFIF longonmarket and achat THENBUY nombredecontrats CONTRACT at marketcompteurachat=compteurachat+nombredecontratsENDIF// Ventegraph compteurvente as "compteurvente"IF longonmarket and vente THENSELL AT MARKETSELLSHORT nombredecontrats CONTRACT AT marketcompteurachat=0compteurvente=compteurvente+nombredecontratsENDIFIF NOT longonmarket and vente THENSELLSHORT nombredecontrats CONTRACT AT marketcompteurachat=0compteurvente=compteurvente+nombredecontratsENDIFIF shortonmarket and vente THENSELLSHORT nombredecontrats CONTRACT AT marketcompteurvente=compteurvente+nombredecontratsENDIF10/02/2017 at 9:32 PM #4806710/03/2017 at 5:59 AM #4808010/03/2017 at 7:33 AM #48084Je n’ai pas vérifier (tester moi même), le code, mais plusieurs choses qui pourraient t’aider :
- placer les instructions GRAPH à la fin du code permet de vérifier vraiment leurs valeurs à la fin de la lecture du code, pour mémoire ProBacktest lit le code de haut en bas à chaque bougie
- utilise plutôt les instructions COUNTOFLONGSHARES et COUNTOFSHORTSHARES pour vérifier la quantité de contrats (dans un sens ou dans l’autre) au marché plutôt que d’incrémenter et de décrémenter toi même des variables
10/03/2017 at 9:22 AM #4809610/03/2017 at 9:28 AM #4809710/03/2017 at 12:42 PM #4811210/03/2017 at 1:17 PM #4812210/03/2017 at 1:26 PM #48124en fait, sur l’image que j’ai posté à 9h32 hier soir, il est entré en vente et à l’achat uniquement aux flèches de signaux de vente et d’achat indiquées sur cette image.
il n’y a pas d’achat le 22 septembre à 3 h 15 matin alors que la condition d’achat est vérifiée. je ne sais pas pourquoi il n’entre pas en position juste après avoir cloturé la position courte déjà ouverte (il n’a pas non plus cloturé cette position courte).
10/03/2017 at 1:41 PM #48126La condition ACHAT n’est pas vérifiée à 3:00, mais à 3:15, l’ordre s’ouvre donc bien à la bougie suivante.
Pour mémoire: dans probacktest, le code est lu une seule fois par barre à sa clôture et les ordres sont envoyés au marché à l’open de la barre suivante.
10/03/2017 at 6:15 PM #48140Merci beaucoup Nicolas, j’ai suivi tes conseils et ça fonctionne très bien maintenant, notamment avec les instructions COUNTOFLONGSHARES et COUNTOFSHORTSHARES.
De plus il prend à présent les ordres d’achat à l’heure et à la date à laquelle il ne prenait pas ces ordres. J’obtient exactement les mêmes profils que toi.
Gertrade, oui, ces 6 lignes permettent d’ajouter des ordres identiques supplémentaires lorsqu’on est déjà long ou court.
Merci beaucoup pour votre aide
-
AuthorPosts