Sayı serisinin yoğunluğu - sayfa 4

 

ln(a), 1'den a'ya f(x) = 1/x eğrisinin altındaki alan olarak tanımlanır.

Yardım edecek?


 
Renat Akhtyamov :

ln(a), 1'den a'ya f(x) = 1/x eğrisinin altındaki alan olarak tanımlanır.

Yardım edecek?

Nasıl yardımcı olabilir?

 
Her şey burada.
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
  • 2016.10.06
  • MetaQuotes Software Corp.
  • www.mql5.com
Рассмотрены функции для работы с основными статистическими распределениями, реализованными в языке R. Это распределения Коши, Вейбулла, нормальное, логнормальное, логистическое, экспоненциальное, равномерное, гамма-распределение, центральное и нецентральные распределения Бета, хи-квадрат, F-распределения Фишера, t-распределения Стьюдента, а также дискретные биномиальное и отрицательное биномиальные распределения, геометрическое, гипергеометрическое и распределение Пуассона. Есть функции расчета теоретических моментов распределений, которые позволяют оценить степень соответствия реального распределения модельному.
 
fxsaber :
Her şey burada.

Hangi işlevle öğrenebilirim:

1. Sayısal grupların sayısı;

2. Her grubun diğerine göre yoğunluğu;

3. Grupların kendi aralarındaki ortalama yoğunluğu;

4. Sayısal serilerin gruplarını doldurma yüzdesi.

 
-Aleks- :

Hangi işlevle öğrenebilirim:

bilmiyorum. Konu başlığını okuyun.
 
fxsaber :
bilmiyorum. Konu başlığını okuyun.

Anladım. Görünüşe göre şubenin adı konunun tüm özünü ortaya koymadığı için pek başarılı değil.

 

Bir filtre yaptım - savaşın yarısı. Kodun iyileştirilmesi için eleştiri - açığız!

//+------------------------------------------------------------------+
//|                                             Test_FindOblast'.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                            https://www.mql5.com/ru/users/-aleks- |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        " https://www.mql5.com/ru/users/-aleks -"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   int massivSize= 19 ; //размер массива  
   double Digit[ 19 ]=
     {
       10 ,
       20 ,
       30 ,
       40 ,
       50 ,
       51 ,
       52 ,
       53 ,
       54 ,
       60 ,
       70 ,
       80 ,
       120 ,
       150 ,
       190 ,
       210 ,
       223 ,
       232 ,
       250 ,
       260
     };
   double summDelta[ 19 - 1 ];
   int N=massivSize- 1 ; //Количество оставшихся цифровых значений
   double avrMass= 0 ; //Среднее значение массива дельт
   int SizeMass= 0 ; //Узнаем размер массива
   int SizeMassDigit= 0 ; //Узнаем размер массива

//-Фильтр
//1. Суммируем  последовательно две дельты и умножаем значение на два
   for ( int i= 1 ;i<massivSize;i++)
     {
      summDelta[i- 1 ]=((Digit[i]-Digit[i- 1 ])+(Digit[i+ 1 ]-Digit[i]))* 2 ;
     }
   for ( int i= 0 ;i<massivSize- 1 ;i++) printf ( "summDelta[%d] = %G" ,i,summDelta[i]);

//3. Составляем новый числовой ряд, если значение меньше среднего значения
//4. Повторяем пункт 2-3 пока числовой ряд не будет меньше половины первоначального ряда
   for ( int Z= 0 ;N>massivSize/ 2 ;Z++)
     {
      SizeMass= ArraySize (summDelta); //Узнаем размер массива
      SizeMassDigit= ArraySize (Digit); //Узнаем размер массива      
      avrMass= 0 ;
       int NOL= 0 ;
       int CalcZero= 0 ;

//2. Находим среднее значение получившегося числового ряда
       for ( int i= 0 ;i<SizeMass;i++)
        {
         if (summDelta[i]!= 0 )avrMass=avrMass+summDelta[i];
         else NOL++;
        }
      avrMass=avrMass/(SizeMass-NOL);
       Print ( "Среднее значение получившегося числового ряда " ,Z, "=" ,avrMass);

//Обнуляем отфильтрованные значения массива summDelta
       for ( int i= 0 ;i<SizeMass;i++)
        {
         if (summDelta[i]>avrMass)
           {
            summDelta[i]= 0 ;
            N--;
           }
        }
       for ( int i= 0 ;i<SizeMass;i++) printf ( "Обнуление summDelta[%d] = %G" ,i,summDelta[i]);

//Обнуляем отфильтрованные значения массива SizeMassDigit
       for ( int i= 0 ;i<SizeMassDigit;i++)
        {
         if (i== 0 )
           {
             if (summDelta[i]!= 0 ) Digit[i]=Digit[i];
             else Digit[i]= 0 ;
           }
         if (i== 1 )
           {
             if (summDelta[i- 1 ]!= 0 || summDelta[i]!= 0 ) Digit[i]=Digit[i];
             else Digit[i]= 0 ;
           }
         if (i> 1 && i<SizeMass)
           {
             if (summDelta[i- 2 ]!= 0 || summDelta[i- 1 ]!= 0 || summDelta[i]!= 0 ) Digit[i]=Digit[i];
             else Digit[i]= 0 ;
           }
         if (i==SizeMass- 1 + 1 ) //Предпоследняя ячейка
           {
             if (summDelta[i- 1 - 1 ]!= 0 || summDelta[i- 1 - 2 ]!= 0 ) Digit[i]=Digit[i];
             else Digit[i]= 0 ;
           }
         if (i==SizeMass- 1 + 2 ) //Последняя ячейка
           {
             if (summDelta[i- 1 - 2 ]!= 0 ) Digit[i]=Digit[i];
             else Digit[i]= 0 ;
           }
        }
       for ( int i= 0 ;i<SizeMassDigit;i++) printf ( "Обнуление Digit[%d] = %G" ,i,Digit[i]);
     }

   SizeMass= ArraySize (summDelta); //Узнаем размер массива
   SizeMassDigit= ArraySize (Digit); //Узнаем размер массива      
   avrMass= 0 ;
   int NOL= 0 ;
   int CalcZero= 0 ;

//Удаление обнуленных данных массива summDelta
   for ( int i= 0 ;i<SizeMass;i++)
     {
       if (summDelta[i]!= 0 )
        {
         ArrayCopy (summDelta,summDelta,i-CalcZero,i, 1 );
        }
       else CalcZero++;
     }

//Удаление обнуленных данных массива Digit
   CalcZero= 0 ;
   for ( int i= 0 ;i<SizeMassDigit;i++)
     {
       if (Digit[i]!= 0 )
        {
         ArrayCopy (Digit,Digit,i-CalcZero,i, 1 );
        }
       else CalcZero++;
     }

   for ( int i= 0 ;i<SizeMass;i++) printf ( "До обрезания массива summDelta[%d] = %G" ,i,summDelta[i]);
   for ( int i= 0 ;i<SizeMassDigit;i++) printf ( "До обрезания массива Digit[%d] = %G" ,i,Digit[i]);

   SizeMass= ArraySize (summDelta); //Узнаем размер массива
   SizeMassDigit= ArraySize (Digit); //Узнаем размер массива

   Print ( "N=" ,N);
   if (N!= 0 )
     {
       ArrayResize (summDelta,N, 0 );
       for ( int i= 0 ;i<N;i++) printf ( "summDelta[%d] = %G" ,i,summDelta[i]);
       ArrayResize (Digit,SizeMassDigit-CalcZero, 0 );
       for ( int i= 0 ;i<SizeMassDigit-CalcZero;i++) printf ( "Digit[%d] = %G" ,i,Digit[i]);
     }
   else
     {
       for ( int i= 0 ;i<N;i++) printf ( "summDelta[%d] = %G" ,i,summDelta[i]);
       for ( int i= 0 ;i<SizeMassDigit-CalcZero;i++) printf ( "Digit[%d] = %G" ,i,Digit[i]);
       return ;
     }

   SizeMass= ArraySize (summDelta); //Узнаем размер массива
   avrMass= iMAOnArray (summDelta, 0 ,SizeMass, 0 , 0 , 0 );
   Print ( "Среднее значение получившегося числового ряда=" ,avrMass);

//-Основной алгоритм
//1. Находим разницу между числами - это как раз их близость друг от друга.

//2. Если число меньше среднего значения дельт, получившихся из п.1, то - 1, а если нет - 0.

//3. Если значение из п.2 равно 1, то суммируем значение с предыдущим итогом, если нет - 0.

//4. Находим максимальное значение из пункта 3.

//5. Определяем диапазон - находим значение из пункта 4 и ищем вверх из пункта 3 число с нулевым значением, потом увеличиваем найденное число на единицу.
//Таким образом мы получаем диапазон чисел, плотность которых наибольшая по отношению к другим.
  }
//+------------------------------------------------------------------+
 
-Aleks- :

Bir filtre yaptım - savaşın yarısı. Kodun iyileştirilmesi için eleştiri - açığız!

Bir filtre yaptım, özelliklerini tanımladım.

Neyi eleştirmeli - kod kalitesi mi yoksa filtreleme kalitesi mi?

 
Vladimir Suslov :

Bir filtre yaptım, özelliklerini tanımladım.

Neyi eleştirmeli - kod kalitesi mi yoksa filtreleme kalitesi mi?

Filtre açıklamasını burada https://www.mql5.com/en/forum/163871/page3#comment_3940913

Kodu veya fikri eleştirmek için - Bu konuyla ilgili herhangi bir iletişim için memnunum.

Плотность числового ряда
Плотность числового ряда
  • www.mql5.com
Предлагаю обсудить алгоритмы и методы нахождения плотности чисел, если известны эти числа...
 
-Aleks- :

Filtre açıklamasını burada https://www.mql5.com/en/forum/163871/page3#comment_3940913

Kodu veya fikri eleştirmek için - Bu konuyla ilgili herhangi bir iletişimden memnunum.

> İşlemeden önce aşağıdaki veri filtreleme algoritmasını test ediyorum:

> 1. Serideki iki deltayı toplayın ve değeri iki ile çarpın

> 2. Ortaya çıkan sayı serisinin ortalama değerini bulun

bu bebek konuşması.

madde 1 (SMA 2) * 4'tür
nokta 2 - Hangi uzunluktaki "sonuçlanan sayı serisinin" ortalama değerini alıyor musunuz?