Работа завершена
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Техническое задание
Looking for a Mt4 dev with good OOP knowledge, and some experience with building custom candles.
In my custom chart builder app, I need a custom candle builder method audited and re written for custom charts.
I have set up a test environment, specifications are commented at the top of the expert file.
Already set a development environment ready to go. Just run the EA to get started. Files attached.
For your convenience, I've added them here:
Task - Rebuild Custom Candle Class ( CustomBuilders\CustomCandleBuilder.mqh )
- CustomCandleBuilder::BuildRates() currently builds the customer rates in the wrong direction.
All custom rates are stored in the base class array: m_customRates[]
Please re build this method so the loop decrements from the back of history towards zero, so we build the rates
from the past toward the current candle.
m_customRates[] is set as a series array already in the base class.
- Sommtimes there are corrupted candles which print at the current candle area. I believe it is the custom rates building algorithm in this class that
is producing the problem.
- The way this class works is it is fed a 'DataSource' class, which provides the rates you should be using to build the custom candles with.
Currently the DateSource is set to PERIOD_H1 to improve build speed. But the algorithm should also work if we switch the datasourse to 1 min data.
I don't think this should affect how you design the custom candle builder algo through. But you will see how it is working currently,
it is easy to understand.
- This custom candle builder should be able to build 2 and 3 day charts also, which it can currently do.
To Summarize:
- Rebuild the custom candle algo, with counts down to be stored in series arr
- Should work regardless if the datasource is 1 hour or 1 min candles
- Should be able to handle building 48 and 72 hour candles like it does now.
- Correctly work with the broker start hour that is passed in the constructor. No need to do any GMT calcs, this is done externally.