A place to discuss Joel on Software. Now closed.
This community works best when people use their real names. Please register for a free account.
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot
The Old Forum
Albert D. Kallal
My current personal project is a program that does arbitrage between financial markets. I'm currently testing it using my home internet connection, which is 256k DSL. Speed is important to this program, as data from one market come in, it needs to send actions to other markets. I'm interested is seeing its bandwidth usage, to see if it constrained by my internet connection.
Any suggestions for a program that will display this in a easy to read form? I'm familiar with packet sniffers like Ethereal, but I'm looking for something simpler that will basically indicate how much bandwidth I'm using.
When dealing with financial markets, you should be paying more attention to your latency than your bandwidth.
Latency is almost always quite poor over the internet.
I fully agree with Oren. Unless you're dealing with a lot of securities, bandwidth shouldn't be an issue.
Latency is the big killer for real-time financial systems. When I worked for a major options trading firm, one of the on-going projects was to measure the latency between our systems and the exchanges we traded on and getting even a tiny imporvement was a big win.
And, not to discourage you (Hockey Player) too much, but there is very little opportunity to profitably arbitrage at this point. Most firms have their own systems in place at the various exchanges and can execute faster then you can imagine. Also, pricing information is so easily available now that there is limited arbitrage opportunities available anyways (the prices between various exchanges doesn't differ that much throughout the day).
Thanks to you both for your responses. I realize that latency is the critical piece and I'm doing what I can to reduce that. I wanted to measure bandwidth usage because if my changes to a market are being blocked waiting for bandwidth, that would introduce unacceptable latency. Will a higher speed connection reduce my latency? If so, where will I get the bulk of my improvements (640k DSL, T1, OCX-12)?
Are there better tools than ping to measure my latency to the server where I am uploading my orders?
As for profitablity, we'll just have to see. ;)
I remember reading a quite a few years back that there was big profit in getting one of these systems down from 3ms to 2ms. I guess stuff has further improved since then.
Just me (Sir to you)
Monday, October 25, 2004
A good thing to do if you can swing it is to have the exchange host your process on their network. Ethernet generally has a latency of under 0.3 milliseconds.
This is probably not an option for HockeyPlayer, but perhaps his broker would be willing to host it. If they have a direct connection to the exchange then this more than anything would get rid of most of his latency.
BTW, the DSL modem hardware itself generally adds about 5-8ms. The rest is determined by the hops the data has to pass through (use traceroute to get more info).
farking hell, just answer his question.
NetStat Live, from Analog X - http://www.analogx.com/contents/download/network/nsl.htm - will give you data rate up/down.
Also, many personal firewalls, such as Kerio, will display this information on a per process basis.
Netlimiter is also a good one to check out.
NetPerSec for realtime from PC Magazine, it's what I use. It costs around $6 (I got it free before they started charging).
MRTG for historical, it's probably what your hosting company uses to determine your bandwidth usage.
Tuesday, October 26, 2004
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz