As for darkpools, they say they eliminated them but I've seen weird behavior suggesting that they haven't.
It was the 8th or whatever (after hackcrash re-opening) when they were supposively down.
My bot is designed to not duplicate trades because it can launch trades quickly, and will often double orders etc. If I'm at the computer I can manually delete a trade out of the database so that the particular price is again "available".
My algorithm was telling me to buy from MtGox at the Ask. The price isn't important, but the volume was 0.1 at price, let's just say 14.5. I sat at my computer and noticed it had traded by buying at 14.5 for volume 0.1. I opened up my DOM and it showed that there was still an order stuck in the DOM for 14.5 and volume 0.1. I go ahead and see if the trade will execute again by deleting the record of it in my database. It fills immediately, but the 0.1 is still there. I do this 10 more times until I get bored, it filled every time immediately, and every time there was still an order of 14.5 at volume 0.1 in the DOM suggesting that there was some mysterious volume filling my order that wasn't reflected in the DOM, or some mysterious player able to read that a trade occurred and replace their previous order (super unlikely as my program is fast).
I know how MtGox acts as an exchange probably better than 99% of this forum. It does lag out and the DOM locks up from time to time. However, when this happens your trades are not executed, they are "Active" or "In Queue", and they are filled 10-15 minutes later.
So in my case there are only a handful of possibilities:
1. There are still Darkpools
2. MtGox is playing in the markets as well, as they are the only people who could possibly get orders into the DOM faster than my program can read the DOM.
3. There was an error but MtGox decided to keep honoring the trades.
4.
I'd say the distribution of each being the cause of what I saw is 1: 70%, 2: 15%, 3: 0.01% 4: 14.99%