Winston,
Thanks for the insights.
My current trading set up uses three machines to trade:
1) Price Server: Acquires price data, reformats, adds mathematical attributes and save as a input to the modeling process.
2) Model Server: Reads prices once per bar cycle (currently either 30 or 60 minute) from the Price Server, applies production predictive model (saved as C++) to current price file. Output of model is passed to a program that makes the trade decision, sets stops, evaluates risk, and makes the actual trade/no trade decision.
3) Trade Server: Gets the trade decision from the Model Server and applies the trade through a broker supplied API. Monitors fills and passes actual trade status back to the Model Server.
All this works fine of course as I currently trade bars no shorter than 30 minutes so if the cycles time on all this is 4 to 6 seconds it means nothing in terms of a trade that might last for an hour or two.
However in considering a move to trades that last no more than 60 seconds I figure that I need to incorporate at least some HFT approaches to get my cycle time < 1 second.
I'm located in Chicago, about 10 miles form the CBOT, but the system is for Forex.
Thanks to all who have commented as I now see that collocation is not really my first step or probably even required.
Quote from WinstonTJ:
What you want to do is not HFT it is simply automating a strategy. This is a very good approach for a first time/try into the automated arena.
For hardware it all depends on your platform and what exactly you are going to do with the box. If you will ONLY be running the strategy on the box and nothing else (meaning no charts, no pulling data into excel, no intense calculations, no internet browsing) then a simple box with 4GB RAM and an e8400 or q9650 CPU would work.
Some things to consider about your execution program: Is it multi thread capable? Is it hyper thread capable? Java based systems tend to be fairly CPU intensive while a .NET or C#/C++ app would be considered "lighter" (but that all depends on what the thing actually does). Do you need direct access or can you trade with someone like IB who crosses orders internally?
Also, where are you getting your data from? Most bar data I know of has been created from tick data versus getting a bar feed.
Good luck
EDIT: Where are you located? If you are on the East Coast & trading equities or Midwest and trading futures you should be fine with a business class internet provider (something over 20mbit symetrical). Co location should only be considered if you need to process data and execute very quickly or if you are very remote from your execution servers and have latency issues.