Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее" - страница 17

 
В другой статье есть такое
построим распределение LR Correlation для 10 000 независимых примеров, каждый из которых состоит из 1 000 измерений

Как получить подобное распределение для произвольных данных через Include\Math ? Т.е. подаю на вход массив исходных данных, а на выходе получаю массив распределения исходных данных.

R-квадрат как оценка качества кривой баланса стратегии
R-квадрат как оценка качества кривой баланса стратегии
  • 2017.10.24
  • Vasiliy Sokolov
  • www.mql5.com
Каждая торговая стратегия нуждается в объективной оценке ее эффективности. Для этого используется обширный ряд статистических параметров. Многие из них просты в расчете и показывают интуитивно понятные метрики. Другие сложнее в построении и в интерпретации значений. Несмотря на все это многообразие, есть очень мало качественных метрик для...
 
fxsaber:
В другой статье есть такое

Как получить подобное распределение для произвольных данных через Include\Math ? Т.е. подаю на вход массив исходных данных, а на выходе получаю массив распределения исходных данных.

Пример дан в справке - Нормальное распределение

 
Rashid Umarov:

Пример дан в справке - Нормальное распределение

Спасибо! Почему эта часто нужная функция из примера не включена в состав СБ?

//+------------------------------------------------------------------+ 
//|  Calculate frequencies for data set                              | 
//+------------------------------------------------------------------+ 
bool CalculateHistogramArray(const double &data[],double &intervals[],double &frequency[], 
                             double &maxv,double &minv,const int cells=10);
 
fxsaber:

Спасибо! Почему эта часто нужная функция из примера не включена в состав СБ?

Она же есть именно там. Кому надо - тот найдет сходу, а кому не нужно - пройдет мимо

 
Rashid Umarov:

Она же есть именно там. Кому надо - тот найдет сходу, а кому не нужно - пройдет мимо

Даже в примере она вызывается не из СБ, а написана с нуля. Где в СБ такое? Специально искал (в ME CTRL+SHIFT+F "Histogram"), "сходу" не получилось.

 
fxsaber:

Даже в примере она вызывается не из СБ, а написана с нуля. Где в СБ такое? Специально искал (в ME CTRL+SHIFT+F "Histogram"), "сходу" не получилось.

А. ну да. Она было написана как пример в справку и в исходники библиотеки не включалась.

И там могут быть проблемы в некоторых случаях, если я не ошибаюсь.

 

Функция рассчитывает значение функции логнормального распределения вероятностей с параметрами mu и sigma для массива случайных величин x[]. В случае ошибки возвращает false. Аналогplnorm() в R.

bool MathCumulativeDistributionLognormal(
  const double   &x[],        // [in]  Массив со значениями случайной величины
  const double   mu,          // [in]  Логарифм математического ожидания (log mean)
  const double   sigma,       // [in]  Логарифм среднеквадратического отклонения (log standard deviation)
  const bool     tail,        // [in]  Флаг расчета, если true, то рассчитывается вероятность того, что случайная величина не превысит x
  const bool     log_mode,    // [in]  Флаг расчета логарифма значения, если log_mode=true, то рассчитывается натуральный логарифм вероятности
  double         &result[]    // [out] Массив для значений функции вероятности
);

Это что за x-значение?

 
fxsaber:

Даже в примере она вызывается не из СБ, а написана с нуля. Где в СБ такое? Специально искал (в ME CTRL+SHIFT+F "Histogram"), "сходу" не получилось.

Для расчета эмпирической (по данным) плотности и функции распределения есть MathProbabilityDensityEmpirical и MathCumulativeDistributionEmpirical (исправленная версия Math.mqh в #155)

fxsaber:

Это что за x-значение?

Поскольку функция векторная и работает с массивом x[i], здесь имеется ввиду конкретное значение x[i] (первый параметр).

Флаг tail имеет смысл аналогичный  lower.tail в R, если tail=true, возвращается значение cdf(x), иначе 1-cdf(x).
Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее"
Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее"
  • 2017.10.19
  • www.mql5.com
Опубликована статья Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее: Автор: MetaQuotes Software Corp...
 
Quantum:

Для расчета эмпирической (по данным) плотности и функции распределения есть MathProbabilityDensityEmpirical и MathCumulativeDistributionEmpirical (исправленная версия Math.mqh в #155)

Как с помощью этих функций заменить CalculateHistogramArray в этом исходнике?

 
Alexey Nikolaev:

Здравствуйте,
столкнулся с проблемой при вычислении квантиля гамма-распределения
в R:
> qgamma(0.05,2,scale=1)
[1] 0.3553615
> qgamma(0.05,10,scale=1)
[1] 5.425406

в mql5:

результаты:
0.3553615106986621
Error 4

build 1596

Изменен расчет квантилей гамма-распределения. Исправленная версия Gamma.mqh в приложении (заменить в MQL5\Include\Math\Stat\).

Результат расчета:

2017.11.06 21:03:56.580 TestExample (USDJPY,M5) 0.3553615106986623
2017.11.06 21:03:56.580 TestExample (USDJPY,M5) 5.425405697091294
Файлы:
Gamma.mqh  32 kb