Yes there are some things MQ seems unwilling to rectify, that is one of them. It has been that way since the very first beta with OnCalculate.
Another one is the Indicator OnTimer event not working when the indicator is called via iCustom. When I told the service desk it isn't working they replied "yes it is" and closed the support ticket. I mean really, what does that tell you about the professionalism of the people MQ have working for them.
Anyway bearing that in mind I opened a new support ticket. This time I babied them by doing their job for them and providing them with a test indicator and an EA to call it which demonstrated the issue like you would to a non programmer. This time their response was,
"The custom indicator created by iCustom() does not get a chart and a timer events. You should add the indicator on a chart in order to allow this indicator to get such events."
I felt like writing them back and saying obviously the indicator will get the events if it is attached to a chart independently !! But that is not the point is it !! Indicators are supposed to perform the same way when called by iCustom so an EA can use it, and aside from that, to suggest a timed event cannot be replicated without a chart is nonsense.
But I decided I wasted enough of my time already trying to help them fix their product. If they want to take that attitude, F*** them. I got better things to do.

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Referring to https://docs.mql4.com/basis/function/events, OnCalculate paragraph.
One can read:
The assertion "... the prev_calculated parameter contains a value returned by OnCalculate() during previous call" turns out to be untrue.
This is obvious running the following code:
Whatever the returned value is, MT4 ignores it.
Actual logic is:
In other words:
The documentation obviously doesn't match the actual MT4 behavior.