A short signal for the S&P500? Believe it or not, some do exist. Although these can often be hard to find they can also contribute greatly to your success – so tons of traders search endlessly for a complimentary short system or two for their portfolios.
I want to talk about a simple short edge that I have recently been tweeting about for the past year or so as it has been an interesting signal as of late. It is nothing more than a short signal – not a complete system! The sample size is not great, but it is still noteworthy.
The raw signal itself is just a +2 sigma move based on rolling 20 day (historical) volatility. A sigma score or “z score” is simply a way to express something in terms of standard deviation units. For example, a sigma of 1.5 signifies a value that would allow us to fit 1.5 standard deviations between the mean and the current value. Note: That mean is zero in this case due to standardization.
The trading idea being that the market has moved up too much too fast and some short-term pause or price retraction could be expected.
So how do we calculate sigma score? Below is simple python code using Build Alpha’s python environment for creating custom signals. (Another example: buildalpha.com/python)
Step 1. Calculate the natural log of one bar price changes
Step 2. Calculate the rolling average of the price changes
Step 3. Calculate the rolling standard deviation of the price changes
Step 4. Calculate the Z score or sigma score which is defined as z = (value – average) / standard deviation.
Step 5.Create python list named Signal that contains 1 for true signal or 0 for false signal.
There is also an ELD with TradeStation code attached that contains a simple function for sigma_score(lookback) that will do the same calculation.
Below you can see the equity curve from 2002 to 2018 if one were to have sold short (1 contract) all +2 sigma score days and hold exactly for one trading day (entry and exit both executed next bar open). No stop or profit target included.
It is not an excellent edge by any means, but a short signal to persist while the market has gone straight up is always worth keeping tabs on. Below you can see the e-ratio for this event. (Learn more about eratio here: buildalpha.com/eratio).
You can see it peaks at 1 bar hold but maintains almost 0.30 units of volatility over normal (1.00) so longer hold times might not be out of the question for this edge – but that will be left for further research. A better idea might be to use this daily signal as a multi-timeframe filter for some intraday short systems as the peak is clearly at x = 1.
I am a quantitative trader with a high frequency, market-making firm but also recently started developing the Build Alpha trading software which has the ability to create, stress test, and produce tradeable code for hundreds of systematic trading strategies. All of this can be achieved with NO programming. However, I recently added a Python development environment to allow sophisticated users a bit more flexibility. I can be reached at David@buildalpha.com or on twitter @dburgh.
-- Dave Bergstrom from Build Alpha
My name is David Bergstrom, and I am the guy behind the Build Alpha software. I have spent many years researching, building, testing, and implementing market making and directional trading strategies for a high frequency trading firm. I am a self taught programmer who uses C++, C#, Python, Perl, Java and even TradeStation’s EasyLanguage. Most of my experience has led me to a series of repeatable processes to find, create, test, and implement trading ideas. Build Alpha is the culmination of this process from start to finish.
Please log in again. The login page will open in a new window. After logging in you can close it and return to this page.