Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Статистические функции statistics.mqh - библиотека для MetaTrader 5
- Просмотров:
- 4967
- Рейтинг:
- Опубликован:
- 2012.03.30 11:01
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Данная библиотека содержит набор базовых статистических функций, необходимых для обработки данных пользователя.
Впервые библиотека была опубликована в CodeBase на MQL4 - Библиотека статистических функций Statistica.mqh. В процессе перевода функций на MQL5 были найдены и исправлены некоторые опечатки. Код стал более интуитивно понятным. Большинство функций написаны по алгоритмам из книги С.Булашева "Статистика для трейдеров".
Функции, которые содержатся в библиотеке:
Функция | Описание |
---|---|
Mediana | Вычисление медианы |
Mediana50 | Вычисление медианы по 50%-ному интерквантильному промежутку |
Average | Вычисление выборочного среднего арифметического |
Average50 | Вычисление выборочного среднего арифметического по 50%-ному интерквантильному промежутку |
SweepCenter | Вычисление центра размаха |
AverageOfEvaluations | Вычисление среднего значения пяти верхних оценок |
Variance | Вычисление выборочной дисперсии |
ThirdCentralMoment | Вычисление 3-го центрального момента |
FourthCentralMoment | Вычисление 4-ого центрального момента |
Asymmetry | Вычисление выборочной асимметрии |
Excess | Вычисление выборочного эксцесса |
Excess2 | Вычисление выборочного эксцесса другим способом |
Gamma | Вычисление Гамма-функции Эйлера, x>0. |
GammaStirling | Вычисление значение Гамма-функции Эйлера, для x>33(Формула Стирлинга) |
VarianceOfSampleVariance | Вычисление дисперсии выборочной дисперсии |
VarianceOfStandartDeviation | Вычисление дисперсии среднего квадратичного отклонения |
VarianceOfAsymmetry | Вычисление дисперсии выборочной асимметрии |
VarianceOfExcess | Вычисление дисперсии выборочного эксцесса |
VarianceOfAverage | Вычисление дисперсии выборочного математического ожидания |
Log | Вычисление логарифма |
CensorCoeff | Вычисление коэффициента цензурирования |
HistogramLength | Вычисление оптимального числа столбцов для гистограммы |
Resize | Вычисление оптимального количества элементов массива для гистограммы |
Histogram | Построение гистограммы в *.csv файл |
Cov | Вычисление выборочной ковариации |
Corr | Вычисление выборочной корреляции |
VarianceOfCorr | Вычисление дисперсии выборочной корреляции |
AutoCorr | Вычисление автокорреляции |
AutoCorrFunc | Вычисление автокорреляционной функции |
aCoeff | Вычисление коэффициента a в уравнении линейной регрессии (y=a*x+b) |
bCoeff | Вычисление коэффициента b в уравнении линейной регрессии (y=a*x+b) |
LineRegresErrors | Вычисление ошибок линейной регрессии |
eVariance | Вычисление дисперсии ошибок линейной регрессии |
aVariance | Вычисление дисперсии параметра a линейной регрессии |
bVariance | Вычисление дисперсии параметра b линейной регрессии |
DeterminationCoeff | Вычисление коэффициента детерминации |
ArraySeparate | Разделение массива arr[n][2] на два массива |
ArrayUnion | Объединение двух массивов в массив вида arr[n][2] |
WriteArray | Запись одномерного массива в *.csv файл |
WriteArray2 | Запись двумерного массива в *.csv файл |
Файл может быть включен в проекты, в которых необходима обработка параметров случайной выборки, оценка ее параметров, построение гистограмм и т.д.
Рассмотрим вызов некоторых функций:
//+------------------------------------------------------------------+ //| test.mq5 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #include <Statistics.mqh> //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- зададим две выборки значений. double arrX[10]={3,4,5,2,3,4,5,6,4,7}; double arrY[10]={7,4,1,2,1,6,9,2,1,5}; //--- вычислим математическое ожидание double mx=Average(arrX); double my=Average(arrY); //--- для вычисления дисперсии используем значение мат. ожидания double dx = Variance(arrX,mx); double dy = Variance(arrY,my); //--- значения асимметрии и эксцесс double as=Asymmetry(arrX,mx,dx); double exc=Excess(arrX,mx,dx); //--- значения ковариации и корреляции double cov=Cov(arrX,arrY,mx,my); double corr=Corr(cov,dx,dy); //--- вывод результатов в log файл PrintFormat("mx=%.6e",mx); PrintFormat("my=%.6e",my); PrintFormat("dx=%.6e",dx); PrintFormat("dy=%.6e",dy); PrintFormat("As=%.6e",as); PrintFormat("exc=%.6e",exc); PrintFormat("cov=%.6e",cov); PrintFormat("corr=%.6e",corr); }
Как видно, большинство функций требуют в качестве входных параметров некоторые значения, которые могут быть вычислены с помощью других функций.
Например:
double dx = Variance(arrX,mx);
Для вычисления дисперсии понадобится вычислить заранее математическое ожидание. С точки зрения оптимизации вычислений это дает свое преимущество. Если значение дисперсии нужно вычислить несколько раз, то лучше один раз подсчитать математическое ожидание, чем делать это несколько раз внутри функции, это сэкономит время.
Эта особенность касается большинства функций данной библиотеки.
Индикатор Moving Average Envelopes.
CFastFile - класс для работы с байтовым массивом как с файломКласс CFastFile избавляет от необходимости промежуточной записи данных в физический файл на диске. Это позволяет получить значительное ускорение при работе с данными.
Индикатор рисует полосы Болинджера относительно скользящей средней и проекции ценовых баров в отдельном окне.
Objects Description ActivatorЭтот скрипт позволяет включить отображение описания объектов графика. Может быть полезен для тех, кто не является программистом.