ajouter une courbe de tendance mathématique polynomiale ordre 2
Forums › ProRealTime forum Français › Support ProBuilder › ajouter une courbe de tendance mathématique polynomiale ordre 2
- This topic has 9 replies, 4 voices, and was last updated 2 weeks ago by
LucasBest.
-
-
04/01/2025 at 8:34 PM #245496
Bonjour, j’aimerais une âme charitable pour ajouter sur un graphique boursier une courbe de tendance mathématique polynomiale ordre 2.
Sur Excel c’est très facile, mais je suis surpris que sur les graphiques boursiers cette courbe n’est pas disponible ? où je ne la connais pas ! tout à fait possible . . .
Ne maitrisant rien en mathématique, je pense pour cette courbe il faut lui donner une période d’échantillons, si c’est le cas, j’aimerais une période de 5 ans pour avoir une tendance “solide”.
merci de votre aide,
04/02/2025 at 11:04 AM #245503Bonjour,
Voici une version optimisée et rapide de l’indicateur de courbe de tendance polynomiale d’ordre 2, que vous pouvez afficher sur un graphique boursier dans ProRealTime.
Ce script calcule automatiquement une parabole ajustée aux derniers X cours de clôture (ici, 200 bougies par défaut, mais vous pouvez adapter la période selon vos besoins).
✅ Cette version utilise drawonlastbaronly = true et islastbarupdate pour améliorer la vitesse d’affichage, tout en traçant la courbe uniquement sur la dernière bougie.
Voici le code à insérer dans un indicateur ProBuilder :
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162// Indicator: 2nd-degree polynomial trend curve// Author: Iván González// date: 02-04-2025// version: 0// Purpose: Fit a parabola over the last X periodsdefparam drawonlastbaronly = trueonce sample = 200 // Number of bars to fit the curve// Initialize summationssumX = 0sumX2 = 0sumX3 = 0sumX4 = 0sumY = 0sumXY = 0sumX2Y = 0// Calculate necessary summations for least squares methodFOR i = 0 TO sample - 1 DOx = iy = close[i]sumX = sumX + xsumX2 = sumX2 + x * xsumX3 = sumX3 + x * x * xsumX4 = sumX4 + x * x * x * xsumY = sumY + ysumXY = sumXY + x * ysumX2Y = sumX2Y + x * x * yNEXT// Denominator of the coefficient formulasdenom = (sample * sumX2 * sumX4 + 2 * sumX * sumX2 * sumX3 - POW(sumX2, 3) - sample * POW(sumX3, 2) - POW(sumX, 2) * sumX4)// Calculate polynomial coefficients if denominator is validIF denom <> 0 THENa = (sample * sumX2 * sumX2Y + sumX * sumX3 * sumY + sumX2 * sumX * sumXY - POW(sumX2, 2) * sumY - sample * sumX3 * sumXY - POW(sumX, 2) * sumX2Y) / denomb = (sample * sumX4 * sumXY + sumX * sumX2 * sumX2Y + sumX2 * sumX3 * sumY - POW(sumX2, 2) * sumXY - sumX * sumX4 * sumY - sample * sumX3 * sumX2Y) / denomc = (sumY - b * sumX - a * sumX2) / sampleENDIF// Draw the fitted polynomial curve on the chartIF islastbarupdate THENFOR i = sample DOWNTO 1 DOx1 = ix2 = i - 1y1 = a * x1 * x1 + b * x1 + cy2 = a * x2 * x2 + b * x2 + cdrawsegment(barindex - x1, y1, barindex - x2, y2) coloured("orange") style(line,2)NEXTENDIF// Return the most recent value of the polynomial trend (x = 0)xNow = 0polyTrendNow = a * xNow * xNow + b * xNow + cRETURN polyTrendNow AS "Polynomial Curve"1 user thanked author for this post.
04/02/2025 at 6:46 PM #245534Merci beaucoup ! ! !
je vais tester cela prochainement,
J’ai bien fait de vous demander cela, car j’étais incapable de sortir ce programme ! ! !
je vais essayer de l’analyser, mais cela risque d’être très compliqué pour moi.
Encore MERCI à vous d’avoir consacré un peu de votre temps pour moi.
Roger.
04/02/2025 at 7:59 PM #245535Je viens de tester => cela fonctionne ! ! ! je retrouve les mêmes valeurs que mon fichier excel.
Juste une question “encore” serait-il possible d’afficher cette courbe sur le graphique des cours, et non comme indicateur indépendant ?
( cela me permettrait de voir en un clin d’œil, si le cours est au-dessus ou en dessous de sa tendance. )04/03/2025 at 7:11 AM #24554604/03/2025 at 10:16 AM #245553Merci Roro et Yvan pour cet indicateur vraiement intéressant notamment en ce qui concerne la courbe polymoniale
J’ai rajouté une variable de retard pour voir dans le passé à x Périodes la forme de la courbe polymoniale à ce moment là.
i.e : y = close[i+retard] et drawsegment(barindex-retard – x1, y1, barindex-retard – x2, y2) coloured(“noir”) style(line,2)
1 user thanked author for this post.
04/03/2025 at 10:10 PM #245563Salut,
je ne comprends pas cette partie du code… Y a t’il une erreurxnow = 1 or 0 or something else ?12345678// Return the most recent value of the polynomial trend (x = 0)xNow = 0polyTrendNow = a * xNow * xNow + b * xNow + c// polyTrendNow = a * xNow * xNow + b * xNow + c// polyTrendNow = a * 0 * 0 + b * 0 + c// polyTrendNow = 0 + 0 + c// polyTrendNow = c?
04/04/2025 at 9:15 AM #245580Effectivement, ce que tu dis est correct :
Lorsque xNow = 0, la formule quadratique polyTrendNow = a * x² + b * x + c se réduit uniquement à c.
J’ai décidé de garder la formule complète pour deux raisons :– Clarté structurelle: cela permet de voir clairement qu’il s’agit de l’évaluation du polynôme au point actuel (x = 0), tout comme on le fait pour d’autres valeurs dans la boucle de dessin.
– Facilité d’extension: si plus tard on souhaite évaluer le polynôme pour une autre valeur de xNow, par exemple un décalage vers l’avant (xNow = -n), on a déjà la formule complète prête à l’emploi, sans avoir à modifier quoi que ce soit.
En résumé, il n’y a pas d’erreur : il s’agit simplement d’une évaluation explicite de la fonction polynomiale au point x = 0, ce qui donne c par définition même de la parabole.
1 user thanked author for this post.
04/04/2025 at 4:43 PM #245595Bonjour, et excusez du retard (c’est mon boulot qui me prend tout mon temps).
j’ai beaucoup de mal à suivre votre discution; mais votre programme fonctionne, il me sera donc très utile
( je trade sur le “moyen” terme, 1 position par semaine (manque de temps . . .), donc cet indicateur me convient bien.
merci beaucoup !
04/04/2025 at 9:21 PM #245602 -
AuthorPosts
Find exclusive trading pro-tools on