Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 3336
- Рейтинг:
- Опубликован:
- 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 рассчитывает идеальные входы, предназначен для обучения нейросети.

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

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

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