If you want to offer investment software as a service then it had better be idiot proof, designed for the technologically illiterate and immaculately maintained.
I did download Zipline and I have got it working successfully but boredom took over as I gradually realized the multitude of problems with this open source software.
Some of them are easily assessed and dealt with, some are a nightmare. The first fuk up, if I can put it bluntly, was that Zipline requires a benchmark for back tests and it was put into hard code that SPY was to be downloaded from IEX and used as such. It turns out you can no longer do that without an API Key, so I didn’t bother and altered the appropriate code to download freely available data from Yahoo.
Sadly, the problems go ever on. I loaded via Conda and the Anaconda package but the setup files left out a number of dependencies necessary to run Zipline. Never mind, easily dealt with if tedious.
The main problem for me has been data and the necessity to use a procedure of “ingesting” “bundles”. After a bit of thought I managed to download the free Quandl data-set for un-curated US Equities but what the hell is a “bundle” and where is it stored and it what format? How do you update it? Do you have to download the entire database each day or is there some method of incremental update on a day by day basis?
Can I be bothered. The short answer is “NO” I assuredly can not.
As it happens I was contacted a week or so ago by somebody who CAN be bothered and has set up Zipline in the Cloud and connected it up to trade with Interactive Brokers. He is a mathematician and has a lifetime of software development behind him and yet even he reports endless frustration.
He kindly asked whether I might be interested in contributing something to his venture and I will do so happily over the next few months. I will leave to him however the nightmare of dealing with an incomplete and seemingly ever changing bunch of software and its myriad of dependencies.
Presumably this is standard stuff for open source trading software – a never ending list of issues and frustrations. And of course learning the language of Zipline – how it works, how to load data, how to put on orders. Well, I have already been through a lot of that using the online IDE at Quantopian and then again at Quantconnect and the last thing I now want to do is to open up yet another can of worms finding out how to do it all alone on my own laptop.
WTF and why bother.
For my own purposes I would rather rely on basic Python and its dependencies such as Pandas and Numpy. Yes, it is true that there are of course open issues and frustrations there too, but at least you get the warm feeling that you are improving your skills in software which is far more generic and thus portable. And at least Python has a huge community and is unlikely to die any time soon.
Perhaps Zipline won’t die either but I suspect Quantopian’s ever changing business model means that open source Zipline will become less and less of a priority as that company branches out into proprietary code from hereon. Quantopian Enterprise for instance – a paid for version of the back tester for Quant firms.
I am always grumbling it seems.
Actually all I am really trying to say is that I feel I would rather spend my time designing systems than wrestling with Zipline. Or indeed connecting it up to my broker.
So I am downloading the paid for Price and Fundamental data for US equities from Sharadar via Quandl and will put my own loader and set of filters together to extract the data I want for the datasets and periods I am interested in. Given familiarity with Python / Pandas this is a pleasant and relatively straightforward task.
B****r Bundles and b***er “ingestion”.
Having done that, it is simplicity itself to code a simple back test in python for the particular investment scheme you want to look at.
Don’t get me wrong: for those who can handle the aggravation, I am sure Zipline is worthwhile. But I shall restrict myself to using a package put together by someone else when I want to trade and in the meantime will do my research on my own using my own designs. It means I can inspect whatever aspect of the data I want in minute detail. It enables me to work faster, better and with far less frustration. And a far greater achievement.
People like my contact in the US and indeed Quantopian / Quantconnect have the time, personnel, enthusiasm and skill to set up a hassle free online IDE. Connected to a broker, all lined up and ready to go.
As a business model I believe that makes great sense. Software As A Service, as they say. I strongly believe if you can make it easy enough for people, they might wish to use such a service to manage their own stock market portfolios.
But there is the rub – making it easy enough. Both Quantconnect and Quantopian are a nightmare for any but the most dedicated enthusiast. Which once upon a time I was.
I do not think their’s is the right model if you really want to make money out of it from a wide user group. I believe the right thing to do is to provide ready cooked systems which people can tweak from an ultra simple GUI and which they can connect equally simply with their broker.
And I think they should be generic and simple investment systems because after all there is nothing very complex about investing. And because if you want a big user base you really don’t want to mention a co-variance matrix, Black Scholes or eigenvalues. Bollox to all that if you want mass adoption.
Of course there are regulatory issues to comply with. You must offer software not investment advice or fund management if you are unregulated.
Hence it should all be fully disclosed, even the code for the individual systems. The code should be properly annotated and easy to read and undertsand, even for the layman.
Jo Public must be responsible for choosing his own system, his own portfolio and his own parameters. He is renting software and all choices must be his alone.
But I do believe that if the whole process is made easy and maintained immaculately, it could have wide appeal.