Trading Evolved

Subtitle: Anyone can build killer trading strategies in Python

Title: Trading Evolved – Anyone can build killer trading strategies in Python
Author: Andreas F. Clenow
Published: 2019
ISBN: 9781091983786
Accompanying Website:
Purchased from Amazon Spain on 18 Oct 2020 for EUR 37,88.

What the book is about:
The book sets out to explain in technical depth how to install and use the Python programming language open source Zipline backtesting library. Backtesting is the designing and testing of trading strategies using historic time-series data. Python and all the necessary Python libraries are run in Anaconda Navigator (Jupyter Notebook to be specific, an app within Anaconda) which is a very convenient package management environment for working with Python. Some general padding on investment and trading topics, and the Python language itself, is also provided in the book. The Zipline library was developed by a company called Quantopian. It is important to note that Quantopian recently shut down its business. However, from looking at the online chatter on the relevant forums it would seem there may be an active support group for Zipline. Hence it is possible that the Zipline library may continue to be available, but BE WARNED such events don’t bode well for the whole thing being anywhere close to a smooth hassle-free experience, or even broadly functional at all. In fact quite the opposite, as explained further below.

Why Selected:
I wanted something practical and interesting in the Python programming language space to follow on from the Udemy course ‘2020 Complete Python Bootcamp From Zero to Hero in Python’ by Jose Portilla which I completed in November 2020. While the book emphasises trading, I felt it was worth seeing if any of the backtesting concepts put forward could be applied to the conservative investing space, which would be more my style. The overall idea was to see how the Python programming skills I had accumulated measured up in terms of being able to implement the backtesting methodologies using Python that were advocated by the author.

Overall opinion:
In my opinion the book sub-title is grossly misleading. Either it doesn’t relate at all to the Zipline back-testing library, or it implies anyone can pick up this book and use it successfully to implement Zipline as a back-testing system. I would certainly dispute the latter. The evidence is a large volume of unanswered queries about difficulties encountered both on the supporting website, and other chat forums relating to this book and Zipline. However, this wouldn’t by any stretch be the only author to attempt such a ‘marketing’ ploy with an attention-grabbing sub-title making unrealistic promises. A time-proven strategy that works extremely well as a honey-pot for the naive. But I would suggest it does nothing for the author’s credibility. Essentially I’m stuck on my first Zipline back-test, on page 106 of a total of about 400 pages. Just doesn’t work. And this is only the first back-testing example. I’m not an expert programmer by any means, but over the years I’ve done a fair bit of ‘amateur’ coding with a variety of languages, including Basic, Smalltalk, Java, JavaScript and now Python. So this book certainly isn’t for ‘anyone’. But using advanced and challenging libraries is part of the rich Python ecosystem, so I will certainly continue building Python skills, and trying to understand and solve the problems and errors encountered with Zipline and this book. That challenge in itself is a valuable and rewarding exercise.

Content and Style:
For details it’s best to go to Amazon and take a detailed look at the book contents there. I am up to almost the end of Chapter 7, Backtesting Trading Strategies, from the total of twenty-five chapters. I can’t go any further until I’ve resolved the Anaconda kernel errors when I open Jupyter Notebook with the Zip35 environment running. There are so many unanswered queries about errors on the various support channels that I’d imagine it’s going to be up to myself to solve this and no doubt other errors encountered. But there is a lot to be learned by trying to do this.

Does it keep its promises?
My opinion is a definite ‘no’. I would award the book 2/10 from this viewpoint.

From here:
This is a challenging, fascinating and interesting subject area so I will keep building Python skills and attempting to find solutions to the issues encountered here. I will update this review with anything interesting and useful discovered.