MQL4 - automated forex trading   /  

Code Base

Code Base  Индикаторы  Коэффициент ранговой корреляции Спирмена - Spearman's Rank Correlation Авторизуйтесь или зарегистрируйтесь, чтобы добавить новый код

Этот скрипт для
MetaTrader 4

Мобильный трейдинг!
Купите лицензию и торгуйте мобильно

Имя:
Коэффициент ранговой корреляции Спирмена - Spearman's Rank Correlation [ en ]
Автор: Rosh (16.02.2007 18:15)
Скачано: 5724
Скачать:
 SpearmanRankCorr.mq4 (4.8 Kb) View
Коэффициент ранговой корреляции Спирмена - это непараметрический метод, который используется с целью статистического изучения связи между явлениями. В этом случае определяется фактическая степень параллелизма между двумя количественными рядами чисел.

Практический расчет коэффициента ранговой корреляции Спирмена включает следующие этапы:

1) Сопоставать каждому из признаков их порядковый номер (ранг) по возрастанию (или убыванию);
2) Определить разности рангов каждой пары сопоставляемых значений;
3) Возвести в квадрат каждую разность и суммировать полученные результаты;
4) Вычислить коэффициент корреляции рангов по формуле:

где - сумма квадратов разностей рангов, а - число парных наблюдений.

При использовании коэффициента ранговой корреляции условно оценивают тесноту связи между признаками, считая значения коэффициента равные 0,3 и менее, показателями слабой тесноты связи; значения более 0,4, но менее 0,7 - показателями умеренной тесноты связи, а значения 0,7 и более - показателями высокой тесноты связи.

Мощность коэффициента ранговой корреляции Спирмена несколько уступает мощности параметрического коэффициента корреляции.


Коэффицент ранговой корреляции целесообразно применять при наличии небольшого количества наблюдений. Данный метод может быть использован не только для количественно выраженных данных, но также и в случаях, когда регистрируемые значения определяются описательными признаками различной интенсивности. Описание взято здесь.

Коэффициент ранговой корреляции Спирмена - Spearman's Rank Correlation


Данный индикатор является одним из вариантов осцилляторов, но по сравнению со стохастиком, является более гладким, не имея при этом запаздывания в точках разворота.


Единственный внешний параметр, который влияет на алгоритм расчета, это - rangeN, он задает количество баров, для которых мы ищем закономерность. Если rangeN = 14, то мы берем последовательность цен закрытия Close[i], Close[i+1], ... Close[i+rangeN-1] и строим для них последовательность рангов, то есть на каком месте находится каждая цена закрытия, если отсортировать эту последовательность. В данном случае получается, что сравнивается один реальный график с неким монотонно возрастающим.

Параметр direction означает сортировку по убыванию (true) или возрастанию (false). Значение параметра true дает более привычную картинку, false дает зеркальное изображение. Параметр CalculatedBars введен для ограничения количества баров, для которых производится расчет, для экономии ресурсов процессора (но правда не понадобилось), значение равное нулю означает расчет по всей доступной истории. Параметром Maxrange = 30 задается максимальный период расчета, тоже был введен в целях экономии ресурсов, может кому-то и понадобится.

13 комментариев: 1 2   Авторизуйтесь или зарегистрируйтесь, чтобы добавить новый комментарий
Ув. Rosh попытка воткнуть этот индикатор в таком виде
iCustom(NULL,0,"SpearmanRankCorr",14,100,30,0,1)
в советник не удалась, предварительно параметр direction был сделан внутренним с параметром "истинно",
чтоб не указывать его в вызываемой функции.
в журнале пишет-
2007.02.17 17:03:59 2006.12.01 00:00 SpearmanRankCorr EURUSD,M5: incorrect start position 0 for ArraySort function
2007.02.17 17:03:59 2006.12.01 00:00 SpearmanRankCorr EURUSD,M5: incorrect start position 0 for ArrayCopy function
17.02.2007 14:53 FION
Вообще-то я не с нуля разработал этот индикатор, а просто реализовал его для MetaTrader 4.
17.02.2007 12:42 Rosh
Спасибо, Rosh. Очень интересная разработка.   
17.02.2007 12:21 FION