BGP doesn't care about latency. BGP is about making policy decisions. You cannot factor latency into BGP routing decisions. That's not what BGP is for, by design.
http://www.cisco.com/en/US/tech/tk365/t ... 4431.shtml
That links describes BGP's best path algorithm. Are you setting weights? If not, weights are equal for routes from both providers and it goes to the next step. You only have one BGP router so there's no internal BGP peers, so there are no local preferences and it goes to the next step. You didn't originate these routes, so it goes to the next step. Whatever route has the shortest AS path now gets chosen.
So to summarize:
I would like and hoping to achieve BGP advertising routes for us based on lowest latency (first criteria)
That's impossible with BGP.
and shortest path
According to your still relatively vague description your router is already doing that, unless you're setting weights in routing filters. If you are setting weights in routing filters adjust that until your routing policy reflects what you want it to be.
If you need further help beyond this at the very least post your BGP configuration and routing filters, together with the relevant routes, traceroutes you've taken, tests you've run together with the results and what you expected to get instead.
http://wiki.mikrotik.com/wiki/Manual:BG ... ar_peer.3F describes on how to look at routes received from a peer. Have you checked the two routes from the two peers to the destination network, and actually verified that you get routes from both peers, and that their AS path lengths are what you expected them to be? That would be the first place to look.
Shortest path for BGP means "fewest number of AS to traverse" - it has nothing to do with latency, or hops, or anything like that. You say that the path that wasn't chosen peers directly with the destination network, which would imply an AS path length of 2 - if that's true the path should have gotten chosen. Yet it didn't. So check and post here the proof that your assumption is in fact true first. If the router did (and I still think it did) choose the correct path as per the BGP best path algorithm and you want to force a different result you'll have to use routing filters to change weight or AS path lengths to achieve that goal.
Hope this helps.