Maintaining your own trading platform - hard work and constant updates
Traders always need a good trading platform and one way to get a good platform is to progam a trading platform yourself. It takes a lot of work. It also requires constant maintenance. And some of this maintenance does not bring any immediate benefit. Like today, where I was just spending a day running a “NuGet gauntlet”. NuGet is a plugin for Visual Studio – that is the development environment we use for our development, because we work in .NET. NuGet is responsible for managing external references. Components an application uses. We use a lot of external components (not only because Microsoft .NET starts getting taken apart into NuGet packages so that they can update independently). Once in a while I open Visual Studio and then NuGet and see what updates are there – and today is web time.
We use the web in two components. First the Reflexo Development Portal, which is supporting our strategy development. This includes backtests and optimizations. But also managing our calculation grid and other infrastructure related items. Second, in the Reflexo Trading Portal which is the portal of our new trading server (which is currently in development – the old server is a command line utility, hard to manage). Both use Bootstrap, look “utilitarian” but refer to a lot of technologies that regularly get updated. Both have significant upgrades planned to their look, once we find the time.
Anyhow, this day is – running updates from NuGet, fixing compiler errors and then finally getting the exactly same website visible again. This is a day “lost” – but necessary to stay up to date with technology. Something a technology provider is supposed to do when you buy or rent a platform. Something that you have to do yourself when you make your own. That is, obviously, on top of all the development to get it working and to actually make it better than any platform that you buy.
Will this day bring improvements? Likely – if there is some day left once the package updates are done I likely will work on exposing some more analysis. Possibly work on some SQL for calculating a simplified Sharpe ratio or some updates to our walk forward optimization approach. But it will be small, this day is mostly making sure all the updates work.
Is this regular? You bet on it. And it gets worse occasionally when really large updates are coming. For example in 2015 we will not only have a nice update to Visual Studio 2015 – we also will get a new .NET runtime, even a new version of C#, our preferred programming language. And – likely a lot of errors- a new version of C++/CLR, the Microsoft C++ version that is integrating fully into .NET and that we use for example to write our Nanex integration layer. This will be a major update and likely take a week or two to iron out – and likely also increase our performance significantly.
Could we do this easier? Yes, by not maintaining our own platform. But at the end – that would mean not having our own platform. And our own platform is a significant advantage over other many strategy developers. At least those that are limited to problematic software like NinjaTrader. And being on our supplier’s mercy for all updates in the infrastructure.
But anyone thinking about working on his own platform should make sure it is a project he can pull of, in terms of manpower. It is not only a development effort that easily takes a man year or two to get something decent – it also means an ongoing commitment to fix and update it to current technologies.