Работа завершена
Техническое задание
Good Morning, afternoon, evening.
Zero Divide Errors
I have an existing EA which is continually giving me the Zero divide error code.
I understand what the "Zero Divide" error message is about, and I know what the culprits are, but I have controls in place to prevent this from happening.
My EA is ignoring these controls.
Initialisation failures
The second issue is around the failure for the EA to recognise server time. I have an email sent with details surrounding the initialisation status of the EA: specifically around the time window with which the EA is set to place orders. I don't understand as to why my EA is pinging an email stating that my EA will not place trades when the current time is between the specified windows, and vice versa.
We are going to need an expert to find out and solve the following:
- Find out why the EA is ignoring the controls in place to prevent the EA from undergoing zero divide calculations.
- Find out and correct why the EA is failing to recognise the correct system time on initialisation of my EA.
Please find the EA below, and the error message pertaining to the currency pairs and the time frames so you can reverse engineer the problem.
Summary.
The EA works on candlestick patterns - specifically bullish or bearish hammers and retracements from those hammers. The BullHammer must not exceed 20% of the BearNail, and the BulScrew candle body must not exceed 50% of the shift one body. Additionally, the Hammer body must not exceed 20% of the wick length as well - this is also being ignored on occasions as well - again, I fail to see why.
A disgram is included in this so you have a good visual representation
According to the messages, the culprit is
int d = (Transform(PCM,2) < bearHammer) ? 1 : 0;
which is bizarre because this is not even a divisor on this calculation, and
int c = (OoTMax >= (bullHammer / bearNail)) ? 1 : 0;
despite the fact that this control is in place to prevent this from happening:
int d = (Transform(PCM,2) < bullHammer) ? 1 : 0;
which means that the minimum body length (PCM = Previous Candlestick Minimum) should be >= 3 pips. This is being ignored.