Смотри, как бесплатно скачать роботов
Find us on Facebook!
Join our fan page
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Скрипты

sSortTest - скрипт для MetaTrader 5

Просмотров:
3160
Рейтинг:
(45)
Опубликован:
2012.06.04 10:38
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

В скрипте функции для сортировки массива типа double различными методами:

Для каждого метода имеется по две функции, для сортировки по возрастанию (Up) и по убыванию (Dn):

  • SortBubbleUp(double & aAr[]);
  • SortBubbleDn(double & aAr[]);
  • SortSelectUp(double & aAr[]);
  • SortSelectDn(double & aAr[]);
  • SortInsertUp(double & aAr[]);
  • SortInsertDn(double & aAr[]);
  • SortShellUp(double & aAr[]);
  • SortShellDn(double & aAr[]);
  • SortHoareUp(double & aAr[]);
  • SortHoareDn(double & aAr[]);
  • SortSelectUpFst(double & aAr[]);
  • SortSelectDnFst(double & aAr[]).

Еще в скрипте несколько вспомогательных функций:

  • Check(double & aAr[]) - проверка, является ли массив отсортированным по возрастанию. Если массив не отсортирован, в окно алерта выводится сообщение "Ошибка".
  • ArrayAlertR(double & aAr[],int aDigits=0,string aHeader="") - вывод массива в алерт строкой. Параметры: double & aAr[] - массив, int aDigits - количество знаков после запятой при выводе значений массива, string aHeader - дополнительное сообщение в начале строки. Функция может быть полезна желающим более подробно разобраться в различных методах сортировки, для наглядного наблюдения за изменениями в массиве на каждом шаге сортировки.
  • ArrayAlertC(double & aAr[],int aDigits=0,string aHeader="") - вывод массива в алерт колонкой. Параметры: double & aAr[] - массив, int aDigits - количество знаков после запятой при выводе значений массива,  string aHeader - сообщение с которого начинается вывод массива, для удобства.

По результатам измерения быстродействия (рис. 1), функции расположились в следующем порядке:

  • Hoare - 15 ms;
  • Shell - 318 ms;
  • SelectFst - 451 ms;
  • Select - 1318;
  • Insert - 1751;
  • Bubble - 4513;

Fig. 1. Sort algorithms performance

Рис. 1. Результаты измерения быстродействия различных функций сортировки массива

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

Sampler Sampler

Индикатор i_Sampler рассчитывает идеальные входы, предназначен для обучения нейросети.

Индикатор корреляции Индикатор корреляции

Индикатор корреляции Пирсона.

EMA_STD_VA EMA_STD_VA

Адаптивная экспоненциальная средняя, зависящая от значения стандартного отклонения.

EMA_ATR_VA EMA_ATR_VA

Адаптивная экспоненциальная средняя Джоза Сильвы на базе индикатора ATR (Exponential Moving Average - ATR Volatility Adjusted by Jose Silva).