Aside from the potential for flash trading on finer resolutions... another negative side effect I've found is the paradox that with finer resolution comes the tendency to trade "always on time"; which you'd think would be best... but as it turns out on a low frequency trader... its sometimes better to be a little late relative to the raw signal; so you end up having to build "delay timers" to make 1m versions trade as well as 1h versions; "buy 30 mintues after the cross" etc.
Though when i watch the simple MA's taken for trading decisions then it nearly never the case that the breach comes simply too late. Im impressed you were able to build something out of MA's because the signal comes normally always too late. I believe a big part in your code plays to watch different timeframes, which i found now, in my bot, as a good thing too. But im not convinced when you say that a lower candle is better because the better trades, in my opinion, happen too seldom to be an advantage. Which means more loss than profit. Of course it has an effect for flash trading and bigger timeframes are stronger.
Im no Pro but i think your example happens seldom only.
Its certainly a specific type of trade that has this behavior; it relates to price channels. A simple example would be Ali's Bolinger Band Mean Revision, on the front page. There, the buy and sell points are occuring when price is
out of bounds from the Bollinger Channel. The bot is set up as a 1h script. When the price first becomes out of bounds on the minute... will often not be as good a buy/sell point (relative to the same channel) as when it becomes out of bounds on the hour.
I agree that most MA crosses are "late" rather than early; so this doesn't really apply there. To speed up MA cross trades, I try to augment with MA derivatives "slope" and "concavity"; as well as finer resolution MA crosses; and histograms of convergence aka MACD.