MA beslemesinin birikiminin tespiti nasıl algoritmalaştırılır? - sayfa 6

 

Hesaplamak   medyan fiyat   Belirli bir yaklaşıklık sayısı ile belirli bir aralıkta.

Merhaba, bir dizi değerim var.

Görev bir fonksiyon yazmaktır.

Giriş seçenekleri:

- dizi, medyanı hesaplamak için gerekli öğelerin numaralarını içerir - bufInBar[]

- dizi boyutu   bufInBar[]   - saymak

- Medyan cinsinden yaklaşıklık sayısı - odak

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

yani sınıf var

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

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

Çıkışta:

BP[bufInBar[i]].Mediana; 

Artan sırada, örneğin 0'dan 10'a kadar doldurulur.

Yani, odak=10 durumunda ise i<sayım aralığında on değer vardır.

BP[bufInBar[i]].Mediana;

1 ile 10 arasında olacak

örneğin

BP[ 3256 ].Mediana= 0 ;
BP[ 6256 ].Mediana= 1 ;
BP[ 9256 ].Mediana= 2 ;
...
 
Ne tür bir odak olduğu belli değil
 
Teoride medyan, sıralı bir dizinin ortasındaki öğenin değeridir. Senin durumunda ne var?
 
Dmitry Fedoseev :
Ne tür bir odak olduğu belli değil
Alexey Stepanenko :
Teoride medyan, sıralı bir dizinin ortasındaki öğenin değeridir. Senin durumunda ne var?

Misal:

30 MA fiyat değerinden oluşan bir dizi , sıralı dizinin ortasını arıyoruz.

15(L0) dizinin ortasının değerini alıyoruz, sonra L0'dan aşağı ve L0'dan yukarı iki dizi alıyoruz, bu dizilerin ortasını buluyoruz ve böylece odak sayısını elde edene kadar (yedi değer için yedi değer) misal)

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

 
Mikhail Toptunov :

Misal:

30 MA fiyat değerinden oluşan bir dizi , sıralı dizinin ortasını arıyoruz.

15(L0) dizinin ortasının değerini alıyoruz, sonra L0'dan aşağı ve L0'dan yukarı iki dizi alıyoruz, bu dizilerin ortasını buluyoruz ve böylece odak sayısını elde edene kadar (yedi değer için yedi değer) misal)

Dizide çift sayıda eleman varsa, hangi eleman medyan olacak veya iki veya başka bir şeyin ortalaması olarak mı hesaplanmalıdır?

 
Mikhail Toptunov :

Misal:

Yedi yüzdelik dilim bulmanız gerektiğini doğru anlıyor muyum: 12,5, 25, 37,5, 50, 62,5, 75, 87,5?

Eğer öyleyse, sıralı dizinin eleman sayısını 8'e (7+1) bölün ve istenen yüzdelik sayı ile çarpın. Aşağıdaki eleman endekslerini alıyoruz: 3, 7, 11, 15, 18, 22, 26.

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

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

double value=bufInBar[index];

Yani, yoksa oraya gitmedim mi? Eğer öyleyse, buradaki en önemli şey, sıralı bir diziyi sürdürmek için ekonomik bir mekanizma oluşturmaktır.

 
MathQuantile() neden kullanılamıyor?
 
Dmitry Fedoseev :

Dizide çift sayıda eleman varsa, hangi eleman medyan olacak veya iki veya başka bir şeyin ortalaması olarak mı hesaplanmalıdır?

Bir tamsayı değeri almanın daha kolay olduğunu düşünüyorum.

15 eleman ise, medyan 8'dir.

 
Aleksei Stepanenko :

Yedi yüzdelik dilim bulmanız gerektiğini doğru anlıyor muyum: 12,5, 25, 37,5, 50, 62,5, 75, 87,5?

Eğer öyleyse, sıralı dizinin eleman sayısını 8'e (7+1) bölün ve istenen yüzdelik sayı ile çarpın. Aşağıdaki eleman endekslerini alıyoruz: 3, 7, 11, 15, 18, 22, 26.

Yani, yoksa oraya gitmedim mi? Eğer öyleyse, buradaki en önemli şey, sıralı bir diziyi sürdürmek için ekonomik bir mekanizma oluşturmaktır.

MA değerleri dizisini kullanarak, tüm dizinin medyanını, ardından ilk medyanın üstünde / altında elde edilen dizilerin medyanlarını vb. bulmanız gerekir.

 

O zaman her şey doğru gibi görünüyor, dizinin ilk bölümünün medyanı toplam dizinin dörtte biri ve bu 25. yüzdelik dilim. Ve ikinci bölümün medyanı 75. yüzdelik dilimdir.

Bu:

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

buna eşdeğerdir:

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