Discussion of article "Timeseries in DoEasy library (part 45): Multi-period indicator buffers"

 

New article Timeseries in DoEasy library (part 45): Multi-period indicator buffers has been published:

In this article, I will start the improvement of the indicator buffer objects and collection class for working in multi-period and multi-symbol modes. I am going to consider the operation of buffer objects for receiving and displaying data from any timeframe on the current symbol chart.

The remaining actions and the OnCalculate() handler logic are described in detail in the code comments. Working with the multi-period indicator has become much easier. We do not need to calculate anything on our own. Instead, we can simply write data to the buffer to let the library define where to put the data and how to display it:



Author: Artyom Trishkin

 

can this library already fulfil any practical tasks or is it still a work in progress?


I would like to see a practical example, for example - MACD from senior TFs in the subwindow, i.e. throw an indicator written with the help of the library on charts M1.... Н1... and see in the subwindow MACD on D1

 
Igor Makanu:

can this library already perform any practical tasks or is it still a work in progress?


I would like to see a practical example, for example - MACD from senior TFs in the subwindow, i.e. throw an indicator written with the help of the library on charts M1.... Н1... and see in the subwindow MACD on D1

A little less than half of the planned work is done.

If MACD calculation will be included in the code of the indicator made with the help of the library, then yes, it will work. If you need to output the standard one through the library, then... I think you can do it too - the data of the standard MACD should be written to the indicator buffers created on the basis of the library in OnCalculate(). In the example of this article, prices are written to the indicator buffers. Instead of prices - write MACD values. It is true that you need to take MACD from the required timeframe, which is natural. Further, and later, there will be classes for working with standard and custom indicators - there will be easier than described here.

 
Artyom Trishkin:

A little less than half of what is planned is still done.

If MACD calculation will be included in the code of the indicator made with the help of the library, then yes, it will work. If you need to output the standard one through the library, then... I think you can do it too - the data of the standard MACD should be written to the indicator buffers created on the basis of the library in OnCalculate(). In the example of this article, prices are written to the indicator buffers. Instead of prices - write MACD values. It is true that you need to take MACD from the required timeframe, which is natural. Further, and later, there will be classes for working with standard and custom indicators - it will be easier there than described here.

OK, so we need to wait

such tasks - to see an indicator from a senior TF (stochastic, MACD or just MA) are always in demand on traders' forums, the question is of course not how to do it, but how fast (in terms of code writing speed or convenient to write) your library can solve such tasks.

 
Igor Makanu:

OK, so we'll just have to wait

such tasks - to watch an indicator from a senior TF (stochastic, MACD or just MA) are always in demand on traders' forums, the question of course is not how to do it, but how fast (in terms of code writing speed or convenient to write) your library can solve such tasks.

I tried to perform such a task without modifying the library. It can be done, but it requires extra steps.

Thanks for the tip - this is just the missing functionality of the calculation buffer object. It will be in the next article.

 

Hi thanks for this library and your work.

I was not able to compile without errors. ( I have latest includes from part 90)

I did this changes:

MQL5\Indicators\TestDoEasy\Part45\TestDoEasyPart45.mq5

line 403:

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

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

line 84:

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

is it OK?


 
thebeno #:

Hi thanks for this library and your work.

I was not able to compile without errors. ( I have latest includes from part 90)

I did this changes:

MQL5\Indicators\TestDoEasy\Part45\TestDoEasyPart45.mq5

line 403:

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

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

line 84:

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

is it OK?


Hi.
Yes, it is normal. The library is under development and is constantly changing. Accordingly, when connecting the 90th part of the library, it will not be possible to compile a program written for the 45th version.
You need to edit the code in the program itself for new changes.
In any case, at the end of the development of the library, all examples will be brought into line with its latest version.