Trading Hardware

Following the publication of my book, Programming for Betfair, I have had a few emails asking about my hardware set-up. My set-up is quite simple due to the fact that I am not an in-play trader. I have just two monitor screens. There is no live feed on a monitor or television screen as I am out of the markets before they go-in-play. The second monitor is only used when the first screen is full and I need the extra space on which to spread my work out. The second screen also permits me to monitor bots trading on one screen and do research and development on the other

An algorithmic trader using bots could easily make do with a single screen. The item hiding under the plastic bag on the right of the picture is a laser printer. The bag keeps the dust off.

The rest of my hardware is kept in a rackmount system. I like rackmount as I can hide everything in a cabinet and keep it reasonably dust free. I am rather prone to dust; pollen in the summer and dust in the winter has me reaching for the antihistamines. The cabinet is a short style 19-inch rackmount cabinet, the type used for telecomms equipment rather than servers, which tend to be in much deeper cabinets that take up too much floor space.

The shorter telecomms cabinets are ideal for installing short ITX cases. The particular rack case that I use is a 1.5U case. I did have a 1U case but that required a blower to keep the CPU cool rather than a fan. Blowers are very noisy and I don't recommend them for home offices. They are better suited to data centres. The 1.5U case will only take one 3.5 inch or two 2.5 inch hard drives so I use external drives on a shelf above for additional storage.

I will probably put another machine in the rack in the near future. I am not keen on upgrading to Windows 10 although it looks as though Microsoft will soon change Windows 10 from an optional upgrade to a required upgrade. If I don't like what I see then I will probably go back to Linux. Now that Betfair uses JSON rather than SOAP through which to provide data I shouldn't have any problems with coding a price server and bot platform for Linux. When I last used Betfair's old API-6 on Linux the task was not a pleasant one. I like things that work out of the box. With Linux there is so much gluing to do.

The processor on my ITX motherboard is an Intel i7-3770K with four cores running at 3.5 Ghz and is still quite high up on the CPU benchmark website. There are some six core Intels now on the market, which are only a little more expensive than the price I paid for my processor two years ago that are a little more capable than my machine. Still, I am happy with my system as it can grab data for all the day's races and process it in under a second, which is good enough for the trading algorithms that I use.

As mentioned, I have used the Linux operating system in the past but I ended up dumping it. I don't like bolting things on and then tweaking them to get them running perfectly, which was what I always seem to be doing on Linux. For all its faults Windows is very much plug and play. That goes for Microsoft's Visual Studio programming environment too where I can create applications without having to worry about incompatibilities. And so I am caught in a quandry, preferring Microsoft for programming but not wanting to get caught up in whatever Microsoft has planned for the future.

I use the the 64-bit version of Windows 7. The Windows 10 upgrade icon sits on my taskbar but I have not been tempted to click it. It would appear that Microsoft is following other operating system vendors in monetising all aspects of an operating system with micro-payments here and there for everything. I regard micro-payments as another tax on stupidity, along with the lottery and mobile phone contracts. I am not a youngster who has been brainwashed into accepting micro-payments for everything. I believe in applying money management principles to all aspects of my daily life. I have a pay as you go phone but never call out with it. Email and free VoIP (voice over IP) are my preferred methods of communication. I have no television, no satellite receiver and no license fee compelling me to be brainwashed with BBC propaganda.

Currently, I program with Visual Studio Community Edition 2015, which allows me to code applications in BASIC, C++, C#, Python and F#. If I move over to Linux again then I will port my code to the Mono environment. As I have already said, that shouldn't be too problematic with API-NG's JSON based system. I will probably build another machine to run alongside the Windows 7 (assuming it has not been shutdown by Microsoft) machine rather than dual booting. There is plenty of room in the rack for more cases. I use PlusNet as my ISP and then only the slowest broadband option. This is fine for my needs as there is no other activity during trading. No downloads or media consumption to slow things down or risk being throttled by my ISP.

On my desk you can see lots of scrap paper, pens and pencils. This is for writing down ideas, which I can then research, test and implement. Whilst monitoring markets I watch for anomalies to exploit, novice bots being tested and more professional concerns to see what they are up to. The markets are constantly in flux and you have to be alert to new openings as once profitable areas dry up in liquidity.


  1. Very nice, James!

    Good technical/personal/financial info within the text. Thank you.

  2. Hi, I was just wondering what you do if your internet goes down, or you have a power cut or hardware failure. Do you have a backup in place? Cheers.

    1. The bot software that I created utilises "Take SP" so if the return leg of a trade has not been made by the start of a race then the trade is automatically closed out with the SP.

      This suits my requirements for now. Others (e.g. @nickatick) have put their bots onto servers but even server farms are susceptible to down time so I would still use "Take SP" in that instance.

    2. Oh yeah, I forgot to ask, does it demonstrate in your book how to program the bot to "Take SP"?

    3. I will add it to the digital addenda today.

  3. Thanks for the info. I really enjoy reading your articles. It's refreshing to get a real insight into the realities of sports trading without all the bulls***.

  4. Is it possible/feasible to integrate the example in the book into Excel without the intermediate step of having to create a CSV file?

    1. If you intend using Excel to trade with then I don't recommend it. Excel just isn't set up for that sort of thing. Far too slow.

      Yes, there is third-party software that permits trading through Excel and that is their downfall. I would much rather have bespoke software specifically tailored for speed.

      If you just want to copy JSON strings direct into Excel for analysis rather than converting into CSV files then that is feasible with the latest Excel. However, that will have to be a research project of your own as I don't have time to give assistance. Just Google "JSON into Excel".