Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
sSortTest - скрипт для MetaTrader 5
- Просмотров:
- 3177
- Рейтинг:
- Опубликован:
- 2012.06.04 10:38
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
В скрипте функции для сортировки массива типа double различными методами:
- пузырьковая (Bubble sort);
- методом отбора (Selection sort);
- методом вставки (Insertion sort);
- методом Шелла (Shell sort);
- методом Хоара (Hoar sort/Quick sort);
- методом отбора с использованием функций ArrayMinimum() и ArrayMaximum().
Для каждого метода имеется по две функции, для сортировки по возрастанию (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;
Рис. 1. Результаты измерения быстродействия различных функций сортировки массива
Очевидный лидер - метод Хоара, однако этот метод является рекурсивным, следует аккуратно подходить к его использованию.
Индикатор i_Sampler рассчитывает идеальные входы, предназначен для обучения нейросети.
Индикатор корреляцииИндикатор корреляции Пирсона.
Адаптивная экспоненциальная средняя, зависящая от значения стандартного отклонения.
EMA_ATR_VAАдаптивная экспоненциальная средняя Джоза Сильвы на базе индикатора ATR (Exponential Moving Average - ATR Volatility Adjusted by Jose Silva).