dcraig
Registered: Jun 2003
Posts: 1558 |
11-03-09 11:07 PM
Quote from Maharaja:
Working with the TWS API in java I have noticed that my processing of market data in making a trading decision is fairly quick (few millis). But actually creating an IB order and placing it is taking much longer, around 3-20 millis. Has anyone experienced this type of behavior? What I mean is instantiating a new Order object and then sending the order in via EClientSocket is taking a long time. How can this be sped up? Can it be sped up?
Also, does anyone have any suggestions as to how to increase performance of both the trader workstation and custom application that makes use of the TWS API? Are there any jvm settings that can be made that optimize performance? Any specific linux settings or networking settings that can help with performance?
I've been playing around with the "nice"-ness (in linux) of the two applications but I haven't really measured the performance gains. I just assumed there would be... :-)
On another note, how fast is the IB market data compared to other vendors? How does the latency compare?
Thanks in advance for any suggestions...
I think you misunderstand what nice is intended to do. It really means "be nice to others". ie if you have a process that is hogging CPU increase the nice value so that other processes get more of a fair go.
As for Java performance, you might try a server JVM. I think that they are more inclined to do the JIT thing after fewer code iterations than the workstation variant. Garbage collection is significantly different though.
In any case does 10ms really make much of a difference? It is likely to be swamped by internet latencies, broker latencies (margin checking, order routing etc) and exchange processing etc.
|