Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Связанный список. - библиотека для MetaTrader 5
- Просмотров:
- 1422
- Рейтинг:
- Опубликован:
- 2019.05.02 12:48
- Обновлен:
- 2019.05.03 16:30
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Шаблон класса, реализующий связанный список для работы с объектами наследуемыми от класса CObject.
Класс СObject - является аналогом класса CObject из стандартной библиотеки со следующими изменениями:
- Изменены названия членов класса и методов, для того, чтобы освободить часто используемые имена Prev и Next для использования в наследуемых классах.
- Добавлен публичный метод ResetObjIterators(): очистка ссылок на связанные объекты.
- Добавлен деструктор, в котором происходит связывание объектов, связанных с удаляемым.
Описание класса CList.
Публичных членов класса нет.
Конструктор (пока только по умолчанию, возможно будут и другие):
- СList() - создает список с нулевым размером.
Деструктор: в зависимости от режима работы, вызывает (устанавливается по умолчанию) или нет деструкторы всех объектов списка. Установка режима производится методом void SetDestructMode (bool mIsDeletable). ВНИМАНИЕ, при использовании режима без вызова деструкторов - возможна утечка памяти.
Публичные методы класса:
Во всех случаях, когда mPos=INT_MIN, действие производится в текущей позиции.
- int GetIterator() - возвращает порядковый номер текущего объекта списка.
- int GetSize() - возвращает размер списка.
- bool IsEmpty() -возвращает true, если список пуст.
- bool IsFirst() - возвращает true, если указатель указывает на первый объект списка или список пуст.
- bool IsLast() - возвращает true, если указатель указывает на последний объект списка или список пуст.
- bool IsDeletable() - возвращает true, если при уничтожении объекта списка, будут вызваны деструкторы всех членов списка.
- T* It() - возвращает указатель на текущий объект списка.
- T* Begine() - возвращает указатель на первый объект списка.
- T* End() - возвращает указатель на последний объект списка.
- T* Next(int mCount=1) - возвращает объект следующий от текущего на указанное значение позиций, по умолчанию, возвращает следующий. Если текущий объект последний в списке, то возвращает NULL.
- T* Prev(int mCount=1) - возвращает объект предшествующий текущему на указанное значение позиций, по умолчанию, возвращает предыдущий. Если текущий объект первый в списке, то возвращает NULL.
- T* Push(T* mPtr,int mPos=INT_MIN) - добавляет новый объект mPtr на указанную mPos позицию в списке, при этом объект, который находился на указанной позиции, становится следующим по списку. Возвращает указатель на новый объект в списке.
- T* PushBack(T* mPtr) - добавляет новый объект в конец списка и возвращает указатель на него.
- T* PushFirst(T* mPtr) - добавляет новый объект в начало списка и возвращает указатель на него.
- T* PushNext(T* mPtr) - добавляет новый объект на позицию, следующую за текущей.
- T* Swap(T* mPtr,int mPos=INT_MIN) - производит замену объекта находящегося по указанной позиции на новый объект mPtr и возвращает указатель на заменяемый объект. При пустом списке производит добавление объекта в список и возвращает NULL.
- T* Insert(T* mPtr, int mPos=INT_MIN) - производит замену объекта находящегося по указанной позиции на новый объект mPtr, возвращает указатель на него и вызывает деструктор заменяемого объекта. При пустом списке производит добавление объекта в список и возвращает указатель на него.
- T* Move(int mPos=INT_MIN) - производит удаление объекта, по указанной позиции списка и возвращает указатель на него. Указатель в списке перемещается на следующий объект, а в случае, если объект находился на последнем месте, то на предыдущий.
- T* PopFirst() - производит удаление первого объекта списка и возвращает указатель на него. Указатель в списке перемещается на первый объект списка.
- T* PopBack() - производит удаление последнего объекта списка и возвращает указатель на него. Указатель в списке перемещается на последний объект списка.
- T* Erace(int mPos=INT_MIN) - производит удаление объекта, по указанной позиции списка, без вызова его деструктора. Возвращает указатель на объект следующий за удаляемым. Если удаляемый объект был последним в списке, то возвращает указатель на предыдущий объект, если удаляется единственный объект списка, то возвращается NULL. ВНИМАНИЕ возможна утечка памяти.
- T* Delete(int mPos=INT_MIN) - производит удаление объекта, по указанной позиции списка, с вызовом его деструктора. Возвращает указатель на объект следующий за удаляемым. Если удаляемый объект был последним в списке, то возвращает указатель на предыдущий объект, если удаляется единственный объект списка, то возвращается NULL.
- void DeleteAll() - удаляет все объекты списка, вызывая их деструкторы. Список становится пустым.
- void SetDestructMode (bool mIsDeletable) - устанавливает режим работы деструктора. Этот режим определяет, будут ли последовательно вызваны деструкторы объектов входящих в список.
Индикатор на два окна на примере решения системы линейных алгебраических уравнений любой размерности
iMA iMACD EAИндикатор iMA (Moving Average, MA) в качестве фильтра тренда и индикатор iMACD (Moving Average Convergence/Divergence, MACD) в качестве подтверждающих сигналов
Сигнальная панель на базе трёх индикаторов и пяти таймфреймов
Pound tradeТорговая стратегия на отскок уровня дня