Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 1257
- Рейтинг:
- Опубликован:
- 2021.12.07 03:35
- Обновлен:
- 2023.02.01 08:25
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Алгоритм быстрой сортировки для массивов и динамического массива CArrayObj из стандартной библиотеки,
а также для сортировки векторов.
В отличие от ArraySort, может сортировать строки, а также использовать различные условия сортировки.
template< typename T > void QuickSort( T& array[] );
T - Встроенный тип или любой тип, для которого определён operator<().
array - Статический или динамический массив.
template< typename T, typename FuncType > void QuickSort( T& array[], FuncType func );
T - Любой тип.
array - Статический или динамический массив.
func - Функция сравнения элементов массива вида: bool func( const T& left, const T& right );
Возвращает true если левый элемент меньше правого.
template< typename T, typename FuncType > void QuickSort( T& array[], FuncType func, int first, int last );
T - Любой тип.
array - Статический или динамический массив.
func - Функция сравнения элементов массива вида: bool func( const T& left, const T& right );
Возвращает true если левый элемент меньше правого.
first - Индекс первого элемента на участке сортировки.
last - Индекс последнего элемента на участке сортировки.
void QuickSort( CArrayObj& array );
array - Массив указателей на экземпляры класса CObject и его наследников.
Для элементов массива должна быть определена функция Compare().
template< typename FuncType > void QuickSort( CArrayObj& array, FuncType func );
array - Массив указателей на экземпляры класса CObject и его наследников.
func - Функция сравнения элементов массива вида: bool func( const CObject* left, const CObject* right );
Возвращает true если левый элемент меньше правого.
template< typename FuncType > void QuickSort( CArrayObj& array, FuncType func, int first, int last );
array - Массив указателей на экземпляры класса CObject и его наследников.
func - Функция сравнения элементов массива вида: bool func( const CObject* left, const CObject* right );
Возвращает true если левый элемент меньше правого.
first - Индекс первого элемента на участке сортировки.
last - Индекс последнего элемента на участке сортировки.
void QuickSort( vector< double >& v ); void QuickSort( vector< float >& v ); void QuickSort( vector& v ); void QuickSort( vectorf& v );
v - vector< double > или vector< float >.
Пример демонстрирующий сортировку структур:
#include <QuickSort.mqh> struct MyStruct { double A; double B; double C; }; typedef bool (*FuncLess)( const MyStruct&, const MyStruct& ); bool Less( const MyStruct& struct1, const MyStruct& struct2 ) { if( struct1.A != struct2.A ){ return struct1.A < struct2.A; } if( struct1.B != struct2.B ){ return struct1.B < struct2.B; } return struct1.C < struct2.C; } void OnStart() { MyStruct structArray[]; ArrayResize( structArray, 25 ); for( int i = 0; i < 25; i++ ){ structArray[i].A = rand(); structArray[i].B = rand(); structArray[i].C = rand(); } QuickSort< MyStruct, FuncLess >( structArray, Less ); for( int i = 0; i < 25; i++ ) { PrintFormat( "structArray[%i] = %f %f %f", i, structArray[i].A, structArray[i].B, structArray[i].C ); } }

Сигнальный индикатор iForce (Force Index, FRC). При появлении сигнала индикатор сигнализирует различными способами

Советник-утилита: ищет по текущему символу максимальную и минимальную позицию (заданного типа) и проводит трейлинг выбранных позиций по неттинговой цене

Индикатор отображает ренко-бары в подокне

Версия 2. По умолчанию символ текущий, а также ширина и высота графика. При желании можно задать ширину, высоту и символ