Hello,
I don't examine EA for the time being, however, take a look at source - it looks great - and have any remarks.
1. It seems you don't apply additional rules from article 1 4H5EMA thread (1 to 3).
2. Back in CheckForOpen() You compute both ema every tick - it isn't essential, it is sufficient to compute it once for 4H in something such as his
if (Time[0]! ) =dtBarTime)
dtBarTime=Timing [0];
emaHigh = iMA(NULL,0,EMAPeriod,0,MODE_EMA,PRICE_HIGH,1);
emaLow = iMA(NULL,0,EMAPeriod,0,MODE_EMA,PRICE_LOW,1);
dtBarTime should be datetime and emaHigh and emaLow should be international var in this case.
If You use just 1 EA it is not problem but if You use many of it it's important to maximize terminal use - it should be quicker in backtests too.
3. You create commerce with market orders (except rev trade) it is okay but in fast market eg news, it could generate big slippage (terminal don't respond as quickly as brokers servers). It is not big problem but one should remember this especialy when analyzing system (sterling use stop orders). Employing Stop orders could be little more complied.
Unfortunately I am very busy today but hope I'll find some time to try this EA possibly tomorow.
I like this egy along with your job.
Regards,
Andrew
P.S. Sorry for english, it is not my first language.