Обсуждение статьи "Работа с ценами в библиотеке DoEasy (Часть 61): Коллекция тиковых серий символов"

 

Опубликована статья Работа с ценами в библиотеке DoEasy (Часть 61): Коллекция тиковых серий символов:

Так как в работе программы могут участвовать разные символы, то для каждого символа необходимо создать свой список. Такие списки мы сегодня объединим в коллекцию тиковых данных. По сути это будет обычный список на основе класса динамического массива указателей на экземпляры класса CObject и его наследников Cтандартной библиотеки.

Скомпилируем советник и запустим его на графике любого символа, предварительно установив в настройках использовать текущий таймфрейм и символы из предопределённого списка, в котором из предлагаемого списка символов оставим два первых:


После непродолжительного времени, требуемого на создание тиковых данных для двух используемых символов в обработчике OnInit(), в журнал будут выведены данные о параметрах программы, созданных таймсериях и созданных тиковых данных, а по приходу первого тика в журнал будут выведены данные четырёх найденных тиков с максимальним Ask и минимальным Bid для каждого из двух символов.

Автор: Artyom Trishkin

 

Еще одна хорошая статья.



Обнаружил небольшую ошибку. MetaEditor зависает.


Если объект TickSeries не заполнен тиками. (m_amount = 0 )

функция GetTick() возвращает NULL, а метод .Print() приводит к аварийному завершению работы редактора.


TestDoEasyPart61.mq5

237           engine.GetTickSeriesCollection().GetTick(tick_series.Symbol(),index_max).Print();
238           engine.GetTickSeriesCollection().GetTick(tick_series.Symbol(),index_min).Print();
 
Christian :

Еще одна хорошая статья.



Обнаружил небольшую ошибку. MetaEditor зависает.


Если объект TickSeries не заполнен тиками. (m_amount = 0 )

функция GetTick() возвращает NULL, а метод .Print() приводит к аварийному завершению работы редактора.


TestDoEasyPart61.mq5

Спасибо, я исправлю это.