keep in mind that a blink of an eye takes about 150 milliseconds. so your reaction time is likely to be the dominating factor in your order latency, unless you are trading on a machine that is very far away from the exchange. telco rule of thumb: 1 millisecond for every 1000 miles.
1ms per 1000 mile = wrong. if right i (Italy) must be 170.000 miles away from USD (Chicago) lol or 35.000 miles away from Switzerland... my ping time to USA is typicaly between 130 and 200 to Switzerland about 30ms (maby 300 miles away)
I guess there is never really a level playing field A trader sitting in the exchange building with server co-located will beat anyone sitting at home or in an office down the street.
I perfectly agree with LeeD If you want to correctly time your speed - and possibly improve it - you must recognize all the factors that contribute to your total time, then measure each factor you can. Here is how I do it: - I measure the delay my telco introduces, with a ping to the provider node(s). This factor can be modified by changing provider, and I will do that because now I have an ugly 45ms - I measure the delay to my broker server; taken away the factor above, this generally can't be changed, because internet routes among telco providers are the same or very similar - I measure the delay from my trading software to the broker software, since I cannot send orders directly to broker servers but there must be some middleware. This is generally negligible, except when you have a very fast telco and you have your middleware and your trading software on different machines, communicating through a slow network. - Software/OS overhead is not easily measurable, but faster machines with no concurrent applications running can cut down delays - Finally, I measure the time from my software order submission to the "SUBMITTED"/"FILLED" status arrival (even if I use market orders, for me "SUBMITTED" is generally faster than "FILLED" status). I also measure cancellation time, which is faster than submission/fill This last measure varies greatly over time and among exchanges The difference between submission and cancellation time shows the overhead for margin check and exchange queue insertion Currently my total submission times are generally 250-350ms on CME and 130-200ms on IDEM, with spikes up sometimes. Cancellation times are 30-50ms less