Calcul du 3e quartile d’une distribution de données
Forums › ProRealTime forum Français › Support ProBuilder › Calcul du 3e quartile d’une distribution de données
- This topic has 7 replies, 3 voices, and was last updated 4 years ago by BenCD.
-
-
10/24/2019 at 1:35 PM #111063
Bonjour,
Est-ce que PRT (plus particulièrement ProBuilder) offre une fonction pour calculer le 3e quartile d’une distribution ? Si ce n’est pas le cas est-il possible de stocker des valeurs dans un tableau (au sens programmation, pas graphique) ?
Merci d’avance pour votre aide
Meilleures salutationsDarwin
10/24/2019 at 1:47 PM #111065Il n’y a pas de fonction ou d’instruction toute faite encore. Faute de tableau de données sous ProBuilder, il va falloir faire des boucles pour trouver le quartile, et je pense qu’elles devront être imbriquées par ailleurs .. bref un casse tête bien sympa, mais on peut essayer de relever le défi.
Au passage, il y a une fonction qui “traîne” sur le forum pour le quantile et la médiane.. En y réfléchissant bien, je pense qu’on pourrait partir de la valeur de la médiane une fois celle-ci trouvée et en déduire le 3éme quartile dans une seconde boucle.
Pour ceux que ça intéresse, voici la définition du quartile depuis Wikipédia:
En statistique descriptive, un quartile est chacune des trois valeurs qui divisent les données triées en quatre parts égales, de sorte que chaque partie représente 1/4 de l’échantillon de population. Le quartile fait partie des quantiles.
Je vais y regarder à moins que tu es déjà creusé de ton côté ?
10/24/2019 at 1:52 PM #11106710/24/2019 at 2:31 PM #111073Il faudrait essayer avec cette version que je pense être correcte (voir image jointe). Je ne sais pas quelle série de données tu penses utiliser, ici c’est CustomClose (donc tu peux choisir le type de prix dans les paramètres de l’indicateur), si il s’agit d’une autre série il faudrait modifier les références à CustomClose dans le code.
Attention par contre, car si il s’agit d’une série de données non linéaire (soit non lié au numéro de barindex), cela risque d’être plus difficile puisque qu’il faudra imbriquer l’ensemble du code dans une énième boucle et ça risquerait de pas passer …
123456789101112131415161718192021222324252627282930313233343536373839404142434445length=15 //analyzed data serie length// get the median of the last date serie lengthFOR X = 0 TO length-1M = customclose[X]SmallPart = 0LargePart = 0FOR Y = 0 TO length-1IF close[Y] < M THENSmallPart = SmallPart + 1ELSIF close[Y] > M THENLargePart = LargePart + 1ENDIFIF LargePart = SmallPart AND Y = length-1 THENMedian = Mmedianbar=barindexBREAKENDIFNEXTNEXT//get the third quartile of the data serieif medianbar>0 and median<>median[1] thenFOR Z = max(1,barindex-MedianBar) DOWNTO 0qM = customclose[Z]qSmallPart = 0qLargePart = 0if qM>Median thenfor w=max(1,barindex-MedianBar) DOWNTO 0IF close[W] < qM THENqSmallPart = qSmallPart + 1ELSIF close[W] > qM THENqLargePart = qLargePart + 1ENDIFIF qLargePart = qSmallPart AND W = max(1,barindex-MedianBar) THENThirdQuartile = qMBREAKENDIFNEXTendifNEXTendifRETURN Median coloured(0,200,200) as "median", ThirdQuartile as "Third Quartile"10/24/2019 at 2:36 PM #11107811/16/2020 at 6:56 PM #150682Bonjour à tous les deux,
Je trouve cette approche intéressante,
Néanmoins je bloque un peu pour la création du premier quartile, j’ai essayé depuis les lignes de code du troisième, mais rien de concluant,
@Nicolas saurais tu me dire quel en serait le code ?Merci d’avance!
11/17/2020 at 9:14 AM #150741En fait, il faut procéder de la même façon, mais à l’envers, puisqu’on veut trouver la mediane (le premier quartile) de la distribution se trouvant sous la mediane de l’ensemble de la série. Sauf erreur de ma part, le code ci-dessous doit fonctionner en ce sens:
123456789101112131415161718192021222324252627282930313233343536373839404142434445length=15 //analyzed data serie length// get the median of the last date serie lengthFOR X = 0 TO length-1M = customclose[X]SmallPart = 0LargePart = 0FOR Y = 0 TO length-1IF close[Y] < M THENSmallPart = SmallPart + 1ELSIF close[Y] > M THENLargePart = LargePart + 1ENDIFIF LargePart = SmallPart AND Y = length-1 THENMedian = Mmedianbar=barindexBREAKENDIFNEXTNEXT//get the first quartile of the data serieif medianbar>0 and median<>median[1] thenFOR Z = max(1,barindex-MedianBar) DOWNTO 0qM = customclose[Z]qSmallPart = 0qLargePart = 0if qM<Median thenfor w=max(1,barindex-MedianBar) DOWNTO 0IF close[W] < qM THENqSmallPart = qSmallPart + 1ELSIF close[W] > qM THENqLargePart = qLargePart + 1ENDIFIF qLargePart = qSmallPart AND W = max(1,barindex-MedianBar) THENFirstQuartile = qMBREAKENDIFNEXTendifNEXTendifRETURN Median coloured(0,200,200) as "median", FirstQuartile as "First Quartile"1 user thanked author for this post.
11/17/2020 at 11:02 AM #150765 -
AuthorPosts
Find exclusive trading pro-tools on