숫자 계열의 밀도 - 페이지 4

 

ln(a)는 1에서 a까지의 곡선 f(x) = 1/x 아래의 면적으로 정의됩니다.

도움이 될까요?


 
Renat Akhtyamov :

ln(a)는 1에서 a까지의 곡선 f(x) = 1/x 아래의 면적으로 정의됩니다.

도움이 될까요?

어떻게 도움이 될까요?

 
모든 것이 여기에 있습니다.
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
  • 2016.10.06
  • MetaQuotes Software Corp.
  • www.mql5.com
Рассмотрены функции для работы с основными статистическими распределениями, реализованными в языке R. Это распределения Коши, Вейбулла, нормальное, логнормальное, логистическое, экспоненциальное, равномерное, гамма-распределение, центральное и нецентральные распределения Бета, хи-квадрат, F-распределения Фишера, t-распределения Стьюдента, а также дискретные биномиальное и отрицательное биномиальные распределения, геометрическое, гипергеометрическое и распределение Пуассона. Есть функции расчета теоретических моментов распределений, которые позволяют оценить степень соответствия реального распределения модельному.
 
fxsaber :
모든 것이 여기에 있습니다.

어떤 기능으로 알 수 있습니까?

1. 숫자 그룹의 수

2. 다른 그룹에 대한 각 그룹의 밀도;

3. 그룹 간의 평균 밀도

4. 숫자 시리즈의 그룹을 채우는 비율.

 
-Aleks- :

어떤 기능으로 알 수 있습니까?

모르겠어. 스레드 제목을 읽으십시오.
 
fxsaber :
모르겠어. 스레드 제목을 읽으십시오.

이해했다. 분명히 지점의 이름은 문제의 전체 본질을 드러내지 않기 때문에 그다지 성공적이지 않습니다.

 

필터를 만들었습니다 - 전투의 절반. 코드를 개선하기 위한 비판 - 환영합니다!

//+------------------------------------------------------------------+
//|                                             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- :

필터를 만들었습니다 - 전투의 절반. 코드를 개선하기 위한 비판 - 환영합니다!

나는 필터를 만들고 그 특성을 설명합니다.

무엇을 비판할 것인가 - 코드 품질 또는 필터링 품질?

 
Vladimir Suslov :

나는 필터를 만들고 그 특성을 설명합니다.

무엇을 비판할 것인가 - 코드 품질 또는 필터링 품질?

여기에서 필터 설명 https://www.mql5.com/ru/forum/163871/page3#comment_3940913

코드나 아이디어를 비판하기 위해 - 이 주제에 대한 커뮤니케이션에 대해 기쁘게 생각합니다.

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

여기에서 필터 설명 https://www.mql5.com/en/forum/163871/page3#comment_3940913

코드나 아이디어를 비판하기 위해 - 이 주제에 대한 커뮤니케이션에 대해 기쁘게 생각합니다.

> 처리하기 전에 다음 데이터 필터링 알고리즘을 테스트합니다.

> 1. 두 개의 델타를 직렬로 합산하고 값에 2를 곱합니다.

> 2. 결과 숫자 시리즈의 평균 값 찾기

이것은 아기 이야기입니다.

항목 1은 (SMA 2) * 4입니다.
point 2 - "결과 숫자 시리즈"의 평균값은 얼마입니까?