I've wondered if introducing a small but omnipresent random delay in all trading requests might suffice. Something like 0-100 milliseconds. Just enough to moderate some of the advantage that physically co-located automated traders have, while not outright banning it.