There are a lot of theories around this, which I’ve found to be mostly untrue depending on the severity of your latency and the type of macro you’re using. By this, I mean that if you’re over 100ms, it’s best to run your macro at a rate 10 greater than your latency, so 110. However, anything under a latency of 100ms can be fired at whatever you desire, assuming that the macro was designed to be spammed and therefore will not skip sequences. For example, if your latency is 100ms and you’re using a Havoc Demon Hunter macro, it’s best to run 20-30ms because they’re designed to be spammed fast, but if your latency is 100ms and you’re using a Balance Druid macro, a more ideal firing speed would be 200-300ms based on the sequence of the macro and the cast-time consideration.
My latency is typically around 80ms. For my Demon Hunter, I fire at 30ms. For my Monk, I fire at 30ms, for my Balance Druid, I fire at 300-450ms.