How Fast is your execution?

Quote from McBet:

That virtual 'private' server would be probably less secure than colocating your own box, because you would be effectively copying your sofware onto someone else's physical hard drive, even if its contents have been encrypted by yourself. And I suspect that while your operating system would be independent of other clients', any low-level security apps you wish to install such as firewalls and anti-virus clients, would have very hard time running there, interfering with the underlying non-virtual operating system doing the virtualization for you and other users.

But it turns out it makes little difference for security if you physically own the server box yourself. As long as you trade frequently enough, your system performance can be reproduced by artificial intelligence within 5% accuracy. I'm not claiming it is being done routinely, but it is no longer a science fiction, only a question of your system's profitability and trade frequency. Industrial espionage in the financial industry must be a very lucrative business because trading scales so well - no need to build your own plant in China to start churning out generics... an AI trading app replaying "recorded" trading systems can be affordably hosted for under $20 a month on a virtual server - thieves, I mean: industrial spies place little value on the stolen property... so no expensive security required there. Here's a clue on the counter-intelligence measures undertaken in bank trading systems as described by a retired bank dev (RabbitOne): http://www.elitetrader.com/vb/showthread.php?s=&postid=2685894& highlight=security#post2685894

informative, thanks
 
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.
 
Quote from jjw:

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.:D
 
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
 
Back
Top