Comment fonctionne la fonction "tangente"?
Forums › ProRealTime forum Français › Support ProBuilder › Comment fonctionne la fonction "tangente"?
- This topic has 28 replies, 2 voices, and was last updated 7 years ago by Nicolas.
-
-
10/12/2017 at 10:51 AM #49094
Bonjour à tous,
Je souhaite utiliser la fonction mathématique “tangente” dans ma stratégie mais cela ne fonctionne pas???
indicator4 = MACD[12,26,9](close)
c3 = (TAN(indicator4) = 0)
Rien ne se passe, donc bug
Comme je suis nouveau, il ne s’agit peut-être que d’une erreur de débutant mais je cale!
J’ai appliqué la proposition de Nicolas:
indicator4 = MACD[12,26,9](close)
c3 = lowest[5](indicator4)
Dans ce cas de figure Probacktest fonctionne bien mais pas du tout avec le résultat escompté!
C’est pourquoi je sollicite votre aide afin que cette fonction mathématique fonctionne dans mon programme
Pour mémoire:
tan(courbe) = 0
Veut dire que la courbe de prix ou la courbe de l’indicateur tangente à l’horizontal donc au bas d’un creux ou au sommet d’une bosse
Merci pour votre aide
Daniel
10/12/2017 at 11:31 AM #49112Ton test C3 vérifie que la tangente est strictement égale à 0, ce qui arrive très rarement .. enfin plus précisément dans le cas de la MACD lorsque celle-ci croise sa ligne de signal finalement (voir image ci-jointe).
12345indicator4 = MACD[12,26,9](close)c3 = TAN(indicator4)return c3Je ne me souviens plus trop de l’idée dont tu parles, mais on peut réessayer de trouver les pics et les creux d’un MACD autrement .. ?
10/12/2017 at 3:21 PM #49148Merci pour ton aide Nicolas
Comme tu peux le voir sur l’indicateur MACD que tu m’as envoyé, la courbe passe plusieurs fois par tan(courbe)=0
Pas “très rarement”, j’ai compté 50 fois ou cette fonction est vérifiée en fait elle tangente une droite horizontale et se confond avec elle,
quand elle est au fond d’un creux ou au sommet d’une bosse.
Je n’arrive pas à la faire fonctionner dans mon programme avec ou sans les parenthèses (je l’ai esssayé)
Tu peux faire abstraction du signal ou de l’histogramme, voir les supprimer (si c’est possible, dans mon cas je ne peux que les rendre invisible) qui ne me servent à rien.
Sans vouloir te vexer Nicolas, apparemment tan(a) fait partie de la panoplie des outils de programmation Prorealtime mais personne ne sait ou n’a jamais essayé de l’utiliser, me tromp’je?
J’avais pensé que peut-être cela venait du fait que le MACD est un indice composite composé de plusieurs MM mais même si je le remplace par la courbe de prix
c6 = TAN(close) = 0
Probacktest ne fonctionne pas
Mais peut-être qu’il y a d’autres fonctions mathématique de géométrie fonctionnant directement avec une courbe tel cos(a), sin(a) etc… qui sont plus utilisées, qui fonctionnent et nous permettraient de nous aidez à trouver la solution.
Si tu peux m’aider à solutionner ce problème… grand merci
Daniel
10/13/2017 at 3:40 PM #49299Bonjour Nicolas,
Si je peux résumer, il s’agit simplement de faire fonctionner la fonction tan(a) de Probuilder
Ou bien je l’utilise mal???
Je ne connais pas la composition de “trend” mais une droite de tendance vient aussi tangenter certaines bougies, alors comment est construit cette appli?
Est-ce qu’elle utilise des fonctions mathématiques
Merci pour ton aide
Daniel
10/13/2017 at 4:25 PM #49302Ta condition :
c6 = TAN(close) = 0
est stricte, si ProBacktest ne la vérifie pas exactement au Close, c’est à dire au seul moment où il lit le code, alors c6 renverra toujours 0. Pour vérifier ce que retourn TAN(close), tu peux utiliser l’instruction GRAPH :
1GRAPH TAN(close)Pour tester un “pic” du MACD, pourquoi ne pas simplement tester les 3 dernières valeurs de celui-ci :
1234567891011121314a = macd[12,26,9](close)pic = a<a[1] and a[1]>a[2] and a[1]=highest[12](a)[1]creux = a>a[1] and a[1]<a[2] and a[1]=lowest[12](a)[1]if pic thendrawarrowdown(barindex[1],a[1])endifif creux thendrawarrowup(barindex[1],a[1])endifreturn a10/13/2017 at 5:06 PM #4930410/30/2017 at 11:41 AM #50920Bonjour Nicolas,
J’ai testé le petit programme “pic du MACD” (en lieu et place de la fonction “tangente”) il fonctionne parfaitement en tant qu’indicateur, grand merci
Mais j’ai essayé de l’intégrer dans ma stratégie et la … c’est le drame!
Je n’arrive pas à l’intégrer!!!
Si tu peux m’aider
Par ailleurs j’ai mis en place avec l’indicateur CCI des valeurs limites pour l’achat ou la vente et Probacktest n’en tient pas compte???
Est-ce que j’ai loupé quelque chose?
Grand merci pour ton aide
Amicalement
Daniel
12345678910111213141516171819202122232425// Conditions pour ouvrir une position acheteuseindicator1 = Average[20](close)indicator2 = Average[10](close)c1 = (indicator1 > indicator2)indicator3 = CCI[20]c2 = (indicator3 < -95)a = macd[12,26,9](close)indicateur4 = a > a[1] and a[1] < a[2] and a[1] = lowest[12](a)[1]c3 = indicateur4IF (c1 AND c2 AND c3) AND not daysForbiddenEntry THENBUY 1 SHARES AT MARKETENDIF11/02/2017 at 8:45 AM #5126311/02/2017 at 11:24 AM #51284Bonjour,
Excuses moi Nicolas mais j’avais mis uniquement la partie qui ne fonctionne pas et qui me paraissait la plus importante, voici le programme complet, si tu peux m’aider, par avance merci.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 080000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 173000// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Conditions pour ouvrir une position acheteuseindicator1 = Average[20](close)indicator2 = Average[10](close)c1 = (indicator1 > indicator2)indicator3 = CCI[20]c2 = (indicator3 < -95)a = macd[12,26,9](close)indicateur4 = a > a[1] and a[1] < a[2] and a[1] = lowest[12](a)[1]c3 = indicateur4IF (c1 AND c2 AND c3) AND not daysForbiddenEntry THENBUY 1 SHARES AT MARKETENDIF// Conditions pour fermer une position acheteuseindicator5 = Average[10](close)indicator6 = Average[20](close)c4 = (indicator5 > indicator6)indicator7 = CCI[20]c5 = (indicator7 > 95)a = macd[12,26,9](close)indicateur8 = a < a[1] and a[1] > a[2] and a[1] = highest[12](a)[1]c6 = indicateur8c7= indicator8>1IF c4 AND c5 AND c6 AND c7 THENSELL AT MARKETENDIF// Stops et objectifsSET STOP pLOSS 311/03/2017 at 11:24 AM #5138811/03/2017 at 3:00 PM #51419Tout fonctionne comme il se devrait selon moi pour les conditions sur le CCI, je ne vois ce qui te chagrine ?
Par contre pour les sorties, tu as créés un problème avec ta variable c7 qui teste si ‘indicateur8’ est supérieur à 1, ce qui n’arrivera jamais, c’est une condition booléenne qui retourne soit 0 (faux), soit 1 (vrai).
11/03/2017 at 3:55 PM #51429J’ai supprimé c7
Ce qui me chagrine c’est qu’à plusieurs reprises il y a ordre d’achat et de vente sur la même bougie
Ce qui me chagrine c’est qu’il n’y a pas toujours de flèche vers le haut pour des creux important ou de flèche vers le bas pour des pics importants
Si tu prends GBP/USD TF:15mn à 11H00 le 31/10/2017 tous les paramètres sont au vert pour qu’il déclenche l’achat et rien ne se passe
J’ai l’impression que l’indicateur c4 (pic/creux) est mal configuré ou pas au bon endroit ou pas avec les bons critères, bref même si PBT ne se met pas en erreur, il n’en tient pas compte
Petite question, que veut dire le carré orange par rapport à la croix orange?
En te remerciant encore pour le temps consacré à résoudre les problèmes de chacun
Amicalement
Daniel
11/05/2017 at 5:38 PM #51568La flèche de l’indicateur que je t’ai codé s’affiche 1 période dans le passé pour bien identifier le pic ou le creux, ce qui implique que la détection du signal sur ton exemple n’est pas bon pour cet indicateur, puisqu’elle intervient une bougie en avant, donc sur la bougie de 11h15, moment où certaines conditions ne sont donc plus respectées.
Pour connaître l’état d’une variable dans un backtest, tu peux utiliser l’instruction GRAPH:
1GRAPH c3 as "pic ou creux vrai ?"à ajouter à la fin du code de la stratégie.
11/05/2017 at 6:31 PM #51570Effectivement
Donc l’indicateur “pic/creux” est inutilisable puisqu’il me met la flèche à un endroit que je crois valable mais en réalité qui est faux puisque décalé d’une bougie
Il y a aussi le fait qu’à plusieurs reprises il y a ordre d’achat et de vente sur la même bougie (avec des carrés orange)
11/05/2017 at 6:49 PM #51571Non l’endroit est valable, c’est bien le pic ou le creux qu’on matérialise, comment savoir sur la bougie courante si on est bien sur un pic ou un creux ? Il faut bien attendre qu’il soit formé, donc une bougie après 🙂
Je ne vois pas les carrés orange dont tu parles ?
-
AuthorPosts
Find exclusive trading pro-tools on