Обсуждение статьи "Работа с таймсериями в библиотеке DoEasy (Часть 45): Мультипериодные индикаторные буферы"

 

Опубликована статья Работа с таймсериями в библиотеке DoEasy (Часть 45): Мультипериодные индикаторные буферы:

В статье начнём доработку объектов-индикаторных буферов и класса коллекции буферов для работы в мультипериодном и мультисимвольном режимах. В данной статье рассмотрим работу объектов-буферов для получения и вывода данных с любого таймфрейма на текущий график текущего символа.

Все остальные действия и логика обработчика OnCalculate() подробно расписаны в комментариях к коду. Видно, как просто стало работать с мультипериодным индикатором — не нужно ничего рассчитывать самостоятельно, достаточно просто вписать данные в буфер, и библиотека сама рассчитает куда их заносить и как отображать:



Автор: Artyom Trishkin

 

эта библиотека может уже выполнять хоть какие практические задачи или еще не закончена работа?


хотелось бы увидеть практический пример, например - MACD со старших ТФ в подокне, т.е бросаем индикатор написанный с помощью библиотеки на графики М1... Н1... и видим  в подокне MACD  на D1

 
Igor Makanu:

эта библиотека может уже выполнять хоть какие практические задачи или еще не закончена работа?


хотелось бы увидеть практический пример, например - MACD со старших ТФ в подокне, т.е бросаем индикатор написанный с помощью библиотеки на графики М1... Н1... и видим  в подокне MACD  на D1

Сделано ещё чуть меньше половины запланированного.

Если расчёт MACD будет вынесен в код индикатора, сделанного с помощью библиотеки, то да, получится. Если же нужно стандартный вывести через библиотеку, то... Да тоже, думаю, можно - данные стандартного MACD записывать в индикаторные буферы, созданные на основе библиотеки в OnCalculate(). В примере этой статьи, в буферы индикатора записываются цены. Вот вместо цен - записывать значения MACD. Правда нужно брать MACD с требуемого таймфрейма, что естественно. Дальше, и позже, будут классы для работы со стандартными и пользовательскими индикаторами - там будет уже проще, чем описал сейчас здесь.

 
Artyom Trishkin:

Сделано ещё чуть меньше половины запланированного.

Если расчёт MACD будет вынесен в код индикатора, сделанного с помощью библиотеки, то да, получится. Если же нужно стандартный вывести через библиотеку, то... Да тоже, думаю, можно - данные стандартного MACD записывать в индикаторные буферы, созданные на основе библиотеки в OnCalculate(). В примере этой статьи, в буферы индикатора записываются цены. Вот вместо цен - записывать значения MACD. Правда нужно брать MACD с требуемого таймфрейма, что естественно. Дальше, и позже, будут классы для работы со стандартными и пользовательскими индикаторами - там будет уже проще, чем описал сейчас здесь.

ОК, значит нужно подождать

такие задачи - посмотреть индикатор со старшего ТФ (стохастик, MACD или просто МАшку) всегда востребованы на форумах трейдеров, вопрос конечно не как это сделать, а насколько быстро (по скорости написания кода или удобно писать) такие задачи может решать Ваша библиотека

 
Igor Makanu:

ОК, значит нужно подождать

такие задачи - посмотреть индикатор со старшего ТФ (стохастик, MACD или просто МАшку) всегда востребованы на форумах трейдеров, вопрос конечно не как это сделать, а насколько быстро (по скорости написания кода или удобно писать) такие задачи может решать Ваша библиотека

Попробовал выполнить такую задачу без доработки библиотеки. Можно, но нужны лишние телодвижения.

Спасибо за наводку - это как раз недостающий функционал расчётного объекта-буфера. Будет в следующей статье.

 

Здравствуйте, спасибо за эту библиотеку и вашу работу.

Я не смог скомпилировать без ошибок. (У меня есть последние включения из части 90)

Я сделал следующие изменения:

MQL5\Indicators\TestDoEasy\Part45\TestDoEasyPart45.mq5

строка 403:

  • engine.SetSoundsStandart(); --> engine.SetSoundsStandard();

MQL5\Include\DoEasy\Objects\Indicators\Buffer.mqh

строка 84:

  • virtual void PrintShort(const bool dash=false,const bool symbol=false) ; --> virtual void PrintShort(const bool dash=false,const bool symbol=false) {return;}

это нормально?


 
thebeno #:

Спасибо за эту библиотеку и вашу работу.

Я не смог скомпилировать без ошибок. (У меня есть последние включения из части 90)

Я сделал следующие изменения:

MQL5\Indicators\TestDoEasy\Part45\TestDoEasyPart45.mq5

строка 403:

  • engine.SetSoundsStandart(); --> engine.SetSoundsStandard();

MQL5\Include\DoEasy\Objects\Indicators\Buffer.mqh

строка 84:

  • virtual void PrintShort(const bool dash=false,const bool symbol=false) ; --> virtual void PrintShort(const bool dash=false,const bool symbol=false) {return;}

это нормально?


Здравствуйте.
Да, это нормально. Библиотека находится в стадии разработки и постоянно меняется. Соответственно, при подключении 90-й части библиотеки невозможно будет скомпилировать программу, написанную для 45-й версии.
Для новых изменений необходимо отредактировать код в самой программе.
В любом случае, по окончании разработки библиотеки все примеры будут приведены в соответствие с ее последней версией.