Comment algorithmez-vous la détection des clusters d'alimentation MA ? - page 6

 

Calculerle prixmédian sur un intervalle donné avec un nombre donné d'approximations.

Bonjour Il y a un tableau de valeurs.

La tâche consiste à écrire une fonction.

Paramètres d'entrée :

- le tableau contient les numéros des éléments nécessaires au calcul de la médiane - bufInBar[]

- taille du tableau -bufInBar[]- count

- nombre d'approximations de la médiane - fokus

void medianaL0(const int &bufInBar[], int count, int fokus)

C'est-à-dire qu'il existe une classe

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]].Period; 

En sortie :

BP[bufInBar[i]].Mediana; 

Rempli par ordre croissant, par exemple de 0 à 10.

C'est-à-dire que sifokus=10 dans la condition, alors à l'intervalle i<compter les dix valeurs

BP[bufInBar[i]].Mediana;

sera de 1 à 10.

Par exemple

BP[3256].Mediana=0;
BP[6256].Mediana=1;
BP[9256].Mediana=2;
...
 
Le fokus n'est pas clair.
 
En théorie, la médiane est la valeur de l'élément situé au milieu d'un tableau ordonné. Qu'en est-il dans votre cas ?
 
Dmitry Fedoseev:
Il n'est pas clair ce qu'est le fokus
Aleksei Stepanenko:
En théorie, la médiane est la valeur de l'élément situé au milieu d'un tableau ordonné. Qu'en est-il dans votre cas ?

Exemple :

Tableau de 30 valeurs de prix MA, recherchez le milieu du tableau ordonné.

Nous obtenons la valeur 15(L0) au milieu du tableau, puis nous obtenons deux tableaux de L0 vers le bas et L0 vers le haut et nous trouvons le milieu de ces tableaux et ainsi de suite jusqu'à ce que nous obtenions le nombre defokus (sept valeurs par exemple).

                        --------------|--------------
                        -------|--------------|------
                        ---|-------|------|-------|--
fokus=7
| - значение цены
        

 
Mikhail Toptunov:

Exemple :

Tableau de 30 valeurs de prix MA, recherchez le milieu du tableau ordonné.

Nous obtenons 15(L0) comme valeur au milieu du tableau, puis nous obtenons deux tableaux de L0 vers le bas et L0 vers le haut et nous trouvons le milieu de ces tableaux et ainsi de suite jusqu'à ce que nous obtenions le nombre defokus (sept valeurs par exemple).

Et s'il y a un nombre pair d'éléments du tableau, quel élément sera la médiane, ou doit-elle être calculée comme la moyenne de deux ou autre chose ?

 
Mikhail Toptunov:

Exemple :

Ai-je raison de supposer que nous devons trouver sept percentiles : 12,5, 25, 37,5, 50, 62,5, 75, 87,5 ?

Si c'est le cas, divisez le nombre d'éléments du tableau ordonné par 8 (7+1), et multipliez par le nombre de percentiles que vous voulez. Nous obtenons les indices d'éléments suivants : 3, 7, 11, 15, 18, 22, 26.

int index=ArraySize(bufInBar)*percentile/(fokus+1);

//где percentile - номер нужного перцентиля от 1 до fokus 

double value=bufInBar[index];

C'est vrai, ou je vais dans le mauvais sens ? Si c'est le cas, la chose la plus importante ici est de créer un mécanisme parcimonieux pour maintenir un tableau ordonné.

 
Pourquoi ne peut-on pas utiliserMathQuantile()?
 
Dmitry Fedoseev:

Et si le tableau a un nombre pair d'éléments, quel élément est la médiane, ou doit-elle être calculée comme la moyenne de deux ou quelque chose comme ça ?

Je pense que c'est plus facile de prendre une valeur entière paire.

S'il y a 15 éléments, alors la médiane est de 8.

 
Aleksei Stepanenko:

Ai-je bien compris que vous devez trouver sept percentiles : 12,5, 25, 37,5, 50, 62,5, 75, 87,5 ?

Si c'est le cas, divisez le nombre d'éléments du tableau ordonné par 8 (7+1), et multipliez par le nombre du percentile requis. Nous obtenons les indices d'éléments suivants : 3, 7, 11, 15, 18, 22, 26.

C'est vrai, ou je vais dans le mauvais sens ? Si c'est le cas, la chose la plus importante ici est de créer un mécanisme parcimonieux pour maintenir un tableau ordonné.

À partir du tableau des valeurs MA, vous devez trouver la médiane de l'ensemble du tableau, puis les médianes des tableaux obtenus au-dessus/au-dessous de la première médiane, etc.

 

Il semble donc que la médiane de la première partie du tableau soit un quart du tableau total, et qu'elle soit le 25e centile. Et la médiane de la deuxième partie est de 75 pour cent.

Ceci :

                        --------------|---------------
                        -------|--------------|-------
                        ---|-------|------|-------|---

correspond à ça :

                        ---|---|---|---|---|---|---|---