The FinTech arm of our business started in mid 2016, built on the foundations of many years of experience working for banks, brokers and trading houses. We take on many different assignments in this space: We design, test and build systematic trading systems and analytical tools. After initially coming up with an idea for a technical analysis based trading system, testing it on a couple of assets and getting amazing backtest results toward the end of 2016, we decided to do something a bit different and create an all encompassing systematic trading approach that we could trade for ourselves using our own money, and truly put our ideas to the test!
We decided from the outset, that once live, we’d run it for one whole year and then publish what we found. This article outlines our year of trading the system, the background to it, issues and problems we faced and most importantly, the end financial result (which is sort of given away in the title!)
A systematic trading approach
Initial system remit / specification:
We wanted a systematic trading system that could trade all markets and allow full optimisation for the user; risk profile, asset class, time frames etc. It had to be trend following and trend reversing in its approach. It also had to be customisable to the user – it could be ‘driven’ manually, semi-automatically, or fully automatic. It had to be able to calculate trade management eg. stops & trade sizing and risk management eg. optimal asset allocation & portfolio optimisation. For our purposes, we wanted a system that could alert us to signals without us having to screen watch and have minimal interference in us running the rest of the business at THE STOP HUNTER. As time in front of computer screens was an issue, and I specialise in Japanese technical analysis, we decided to focus on a pure technical analysis based system approach.
Planning the system:
This is probably one of the most crucial parts of the whole process. Get it wrong here and down stream the project can become a complete mess. We had to answer many questions at this point, but some of the key issues we had to face and address were:
- Data – we’d need real time and historical data in vast amounts to allow the system to scan virtually 24/5 for signals – cost, storage, access, maintenance and availability would be an issue.
- Development – what language should we build the system in? If the system turned out to be a success, could we develop it in such a way that would allow scalability for other end users?
- The system itself – the look, usability and interface. I wanted it to be like a Formula One car’s steering wheel – all controls for a highly complex bit of kit in one place, that could be tailored to the skills and experiences of the user, whether a novice or experienced trader, or for someone who wanted to run it as a fully functional algorithm.
- The trading strategy -defining and then testing and building is not as straight forward as it sounds. We planned to use a combination of approaches, but in reality, there could be thousands of different ways of approaching the strategy design build. Like all things that work well, we wanted to keep it as simple as possible and from my experience as a technical analyst and trader, we ended up putting together a powerful but simple combination of tools that answered the initial remit. From this though, we needed to further answer: How are we going to test whether the system works? How will we measure performance in the test phase and going forward? How will assets be included into the system? We needed to define a rigorous back testing approach. How were we going to optimise the strategy – risk versus returns? What risk limits would we need? It was important to have all this clearly laid out before starting the strategy design; in business terms producing a list of SMART (Specific, Measurable, Achievable, Relevant, Time-bound) objectives.
- Personnel – who was going to design, build, test and trade the system.
- Project mapping – like a business plan, we needed to set out the bigger picture and break that down into micro parts, to make sure we ran a successful project.
- Forward thinking – we needed to come up with parameters around trading the system going forward, its maintenance, whether we would optimise it (and rules for optimisation) as it went along etc, and to have a plan in place to future proof it.
Background to the underlying trading strategy:
The strategy is a combination of Japanese (Renko) and traditional ‘western’ technical analysis tools, that is both trend following and trend reversing.
Renko: A Japanese charting technique that ignores time and only focuses on the movement of price. Renko means blocks; you can see from the chart below how these build according to the price action. It does clear out a lot of the trading ‘noise’, allowing for the development of trend following and reversal techniques. Add in a few other indicators on top of this and you can develop powerful trading systems! In technical analysis a typical Renko chart could look like the one below: (I’ve used Copper (HG) futures in this example), (Charts: Trading View)
- Inside the strategy are two sub strategies that follow a trend following and reversal approach, which also maximises PnL and minimises drawdowns.
- Technical indicators are optimised during the back test process – only assets that meet a strict criteria enter the ‘live’ trade environment.
- It would trade Equities, Commodities, Forex, Indices and Cryptocurrencies.
- It is a long / short strategy.
- Trade size is optimised based on back test performance – which should create an optimal risk portfolio.
- Trade management stop levels are optimised using a historical volatility approach.
- Monthly returns would be compounded and optimised into the trade sizing process.
- Technology: We decided to build it using Ruby on Rails, a popular web framework, rather than C++ or Python – mainly to try something new, to use Ruby’s easier coding style and simplicity, and to provide a scalable web based framework.
- The system would be traded semi-automatically by me, allowing for some trader intervention. Signals would be provided through a web based platform, SMS, EMail and an App.
A typical backtested asset example:
From initial concept to going live took 6 months. First trading date was the 1st of May 2017. The project ran reasonably smoothly, in part due to my previous experience of building out projects like this in various financial institutions. Fortunately, I had already learnt through previous experiences, the issues and problems that we were likely to face, which essentially saved a lot of time when they arose on this project. Some of the positives and negatives during the build process were:
- The biggest problem we found was getting reliable, consistent data and building the security and checks around this to create a stable environment.
- Don’t over optimise – it’ll just get you in a mess. Know when to stop. You have to give your system a chance- lay out specific measurement boundaries and a detailed ‘optimisation’ process and rule set. Sometimes simple works best!
- One of the biggest plus points and surprises to me was using Ruby on Rails. It allowed us to create an effective, adaptable, very usable web based trading platform and system.
All there was now to do was start trading!
Trading – the results:
As you can gather from the title of this article, it turned out to be a very successful year’s trading. For illustrative purposes, I have based the results on a starting fund of £1 million to give you an idea of performance.
- An initial investment of £1,000,000 would have turned into £2,794,380 over the 1 year of trading.
- The system averaged 10% per month return.
- Number of trades (closed): 1045 (so a reasonable data set to draw conclusions from.)
- Returns were well spread out across assets.
- Win ratio 89%
- Best month +29%
- Worst month -8%
Below you can see the progression of the profit and loss (PnL) over the year and the VaR (Value at Risk) at a 95% confidence level. There were a couple of drawdowns of note, the biggest falling around the end of November, which quickly diminished as expected. Overall the PnL showed a steady climb over the year and rode the last three months, whilst Trump et al were causing chaos in the markets, very well!
The system, for us, was a work in progress and a learning curve – the first three months returned 19%, 27% then 29%; we decided at this point to work on a new trade size scaling system and Renko block size methodologies and test various approaches over the next few months.
The VaR showed that the model / strategy worked well in a normal trading environment, with an acceptable amount of exceptions:
What’s next? New projects for the year ahead…
For the moment, we are going to keep running this systematic trading strategy for ourselves – why wouldn’t you with those sort of returns?!
We’ve also got a lot of other strategies, trading and analytical tools in the pipelines, to develop and build out across markets. Some of the ideas we’re really excited about, that from testing are showing very positive possible returns, are:
- Japanese charts: Kagi and Line Break – the latter hopefully giving us a great market reversal tool.
- A unique longer term sentiment filter trading system for the Commodities market around the Commitment of Traders Report (COT).
- A unique currency strength trading system for the Forex market, that uses technical analysis in a way not seen previously for currency strength tools.
- A seasonality trading strategy for commodities and stock indices.
- A correlation portfolio risk management tool.
- An automated portfolio optimisation tool that manages all these individual strategies into one pot, maximising returns and minimising risk in the process.
This has been an interesting and lucrative exercise in developing a purely technical analytical based systematic trading system. We have, in effect, created a tool that could be used many different ways; it could be turned into a fund, a client portfolio management tool adjusting for different risk tolerances or asset preferences, or just left as an outright systematic trading system. I hope that this article has given those interested in designing, building and trading their own systematic / algorithmic strategies some sort of insight into this environment. It also shows that you don’t have to go to hi-tech, sophisticated or too complex to make some serious returns in this space.
Systematic / Algorithmic trading is having an increasing importance and influence on the worlds ‘shrinking’ financial markets as they become more easily linked by these newer, faster paced, dynamic approaches to trading – we’ve seen this recently with February ’18 markets sell off. The media reported that algorithmic systems and funds had been caught out and lost a lot of money, as many, in very simplistic terms, were using basic programmed buy /sell strategies around moving averages such as the 200, or 50 period, not conditioned for this sort of environment and getting whipsawed all over the place!
- Firstly, understand the environment and markets you are trading – don’t go into building systems blindly.
- Lay the foundations out for a successful system before you start coding – plan! Treat it like running a business.
- Test your strategies thoroughly against a plethora of scenarios to make sure that they are robust. Make sure the backtesting process makes sense.
- Building a successful system is not just about doing a bit of coding:
- It has to be built around strong and dynamic architecture.
- It’s about having a workable strategy that functions in all conditions, married up to sound risk and trade management processes.
- Future proof your system – things change! The user must also appreciate and be able to measure when it is not working and make the necessary changes to keep your system alive.
If you’d like to find out more about the Renko system in this article, other projects we are working on, how you could get involved, or how we could help you to design, test and build your own trading strategy ideas, then please do get in touch at [email protected]