We demonstrate what an algorithmic trading edge is and the process of finding an edge.
- Algo trading edge is simply a statistical probability that your trade has a higher expected probability of working.
- Most system developer’s biggest error is over optimisation of parameters.
So What Is a Trading Edge?
An Algorithmic Trading edge is simply a statistical probability that your trade has a higher expected probability of working.
Your entry has predictive power of future price direction - be it in short term or longer term:
- A real edge must be quantified, it must have statistical data to prove that it has ability to capture profits well beyond normal. The data must also quantify risk so traders know the optimal amount of capital to put towards a system.
- A system may have an edge on speed, no human can compete with the speed or decision making of a computer.
- Daytrading only system, which means systems with 100s of trades per year. Markets have negative normal distribution due to transaction costs, so a system must have an edge far greater than 0 to succeed.
- A real algo trading edge also translates to smooth equity curves - this means your system should not just be based around 1 or 2 big winner (statistical outliers). Good day trading systems should be profitable every single year.
Every-time a system places a trade we need to have a probability of success; we need to know the exact risk exposure and we know that each trade will be executed flawlessly and instantly. If you cannot quantify your edge then you simply don’t have one.
Mistakes When Developing a System or Finding an Edge
Most system developer’s biggest error is over optimisation. I have seen countless systems where a trader has developed and coded a system with a spectacular near linear profit and loss equity curve. They throw as much money as they have at it and trade it live only to have a spectacular failure. The problem is all they have done is create a curve which does an excellent job at fitting past data. They actually have programs out there which do just that:
E.g. take a simple moving average signal (any serious systems developer should never rely on lagging indicators in their system design). We can create a simple system with following rules
- If fast moving average (‘n bars’) is less than slow moving average (‘x bars’) at start of new day and then fast moving average crosses above slow moving average any point during the day a Buy signal generated. Exit at end of day.
- Bear in mind we are generating long only trades and this can be massive bias in the first place as equity markets favour long side.
Now if this was a daytrading only system and we place proper slippage and commission costs then we expect this system to be a failure. A back test report using simple fast moving average(close, 50 bars) and slow moving average(close, 100 bars) on a 1min chart trading Emini ES market from 2007 to 2014 (commission and slippage included) shows a negative profit factor of 0.96 over 1282 trades.
As we expected this was enormous failure over 1282 trades. However, a sly vendor or trader can actually use optimisation software and modify the (‘n bars’) and also modify (‘x bars) used for this system. We can try optimisation for this system with: increments of 1. Here is the best result:
We have 1781 total days as our population and at max one trade per day we traded on 1246 days. Therefore, we have 99% confidence level that number of trades reflects our sample data. Moreover, a random entry has negative chance of success (due to transaction costs) so odds of success over 1246 trades is many deviations away from the mean and chance of random success is rare. From this simple indicator optimisation we can see that a winning system can be generated with over 1000 trades even with something as simple as moving averages with no target or stop built into the system.
The worst thing a systems developer can do is to introduce lagging indicators to a system early and then modifying and optimising the parameter being used. Our Quant Savvy systems never use parameter optimisation as this is a sure fire way of failure and we don’t use any indicator as the basis behind our system premise.
We will create a series of blog articles which give systems developers insight into finding an edge and then knowing when to start trading the system live. Stay tuned for continuation of this article.