June 23


Profit By Combining RSI And VIX

By Jeff Swanson

June 23, 2014

automated trading, Automated Trading Development, EasyLanguage, mean reversion, S&P Emini, stock index futures

We’ve been talking a lot about the RSI indicator lately and rightly so. It has proved to be a valuable indicator at highlighting potential turning points. Just last week we took a look at using the VIX index as another way to locate potential turning points. If you will remember, the VIX is often referred to the “fear index” because it tends to climb when market volatility shoots up. Market volatility often climbs during times of panic; thus, the use of the term “fear index”. In this article I would like to combine the RSI indicator with our VIX index. That is, I will be using the RSI indicator but will not be using closing prices as the input to the indicator. Instead, we are going to apply an RSI indicator to the VIX to generate our buy/sell signals. More specifically, a two-period RSI.  

The concept described in this post is called VIX RSI Strategy and was found in a book called “Short Term Trading Strategies That Work” by Larry Connors and Cesar Alvarez. The concept is rather simple but produces excellent results since 1983. In summary, we are buying pullbacks in an uptrend and we are simply using the VIX index to help us gauge when the market is experiencing a pullback. What makes this trading system concept interesting is we will be basing our buying signals not exculsively on the price of our market but, we will be using the value of the VIX index to generate both our buy and sell signals.

Below is an image of the S&P cash index with the VIX below it. Notice how the VIX tends to spike when the S&P cash market is creating new lows. The VIX has an inverse relationship to the price action on the S&P. Thus, we often see the VIX making new highs as the market is making new lows.

Inverse Relationship Between Market Price (ES) and VIX index

Knowing how this relationship works we can try to create a simple trading system by basing our buy signals on both the the VIX and price action of our market. We will continue to use the 2-period RSI on the price action of the market to determine our exit point. BY combining both a price based entry signal and a VIX based entry we signal we have confirming our entry signal with two different methods. This should help use locate very productive entry points. Below is an image which shows the 2-period RSI indicator applied to the VIX index.

2-Period RSI Applied To The VIX Index

Because the VIX index rises when price falls, we will want to buy the S&P when the RSI is high. In our case, when the 2-period of VIX is above 90 we’ll be looking to go long. Notice, this is inverse if we were basing our buy signals on the price action. Before we buy we will also use two filters to confirm our high VIX reading. The first is our 200-period simple moving average as a major market filter. We will only take long trades when price is trading above it. Again, this reminds us we will only take long trades when the overall market is in a bull regime. The second filter is also price based. Before we open a trade we’ll also want to see 2-period RSI on price be below 30. This is simply a confirmation that price is showing weakness. We will exit when the 2-period RSI of price rises above 65. Below are the complete rules.

The Rules

  • Price must be above its 200-day moving average
  • RSI(2) on price must be below 30
  • Buy when RSI(2) of the VIX is above 90
  • Exit when RSI(2) of the price rises above 65

I coded the above rules in EasyLanguage and tested it on the S&P cash market going back to 1983. It did rather well. Before getting into the details of the results let me say this: All the tests within this article are going to use the following assumptions:

  • Starting account size of  $100,000.
  • Dates tested are from 1983 through May 3, 2014.
  • The number of shares traded will be based on volatility estimation and risking no more than $2,000 per trade.
  • Volatility is estimated with a five times 10-day ATR calculation. This is done to normalize the amount of risk per trade.
  • The P&L is not accumulated to the starting equity.
  • There are no deductions for commissions and slippage.
  • There are no stops.

Please note we are not adding our profits to our trading account! We are always trading a small percentage of our starting capital. Thus, the results demonstrated here are very conservative and it would be easy to generate much higher returns.

Here is the position sizing formula used:

Shares = $2,000 per trade / 5 * ATR(10)  

For an example of what the trades will look like, we have two trades from 2012 in the image below. Those two long trades were opened when the RSI climbed above 90. I also colored the RSI in green whenever the RSI rose above 90.

The Results

Below is the equity curve for trading the S&P cash index based upon the rules as defined by the original creator of the system.

This strategy, like many of the Connors’ strategies, did well until late summer of 2011 when U.S. debt talks spooked the market into a series of strong bear days. The strategy as it currently stands does not have any protective stops! Remember, this is a study of a potential market edge that could be exploited with a complete trading system. But as it stands, it’s not a complete system. However, even after the big crash in 2011 the system continues to produce winning trades so, I’m not overly worried about that single big loss, for now. I’m more interested in testing the robustness of the input values surrounding this basic system premise. Let’s look at a few of those inputs now.

Testing Buy Threshold

The original rules look for an RSI reading above 90 to trigger a long trade. I call this value the buy threshold.  I want to test different buy thresholds to see how well the strategy will hold up. This is done to test the robustness of this value and thus, the robustness of the strategy. A strong market edge will allow variations within the parameters of the strategy and still produce positive results. Ideally changing the buy threshold values should maintain positive results. What I don’t want to see are small changes in the buy threshold changing the trading results dramatically. I will test the buy threshold using TradeStation’s optimization feature. I will test values between 50 and 95 in increments of 5. Below is a graph depicting the results. The x-axis depicts the buy threshold and the y-axis depicts the profit generated for that particular run.

The values are remarkably stable as they all produce a profit around $45,000. The only exception is the extreme 95 reading and that’s most likely due to the fact that not many trades are triggered at such an extreme RSI value.  An optimal value appears around 85.  What this does not tell us is how effective or efficient each trade may be. Sure you are making about the same amount of profit with a buy threshold of 5 as with a buy threshold of 80 but, how many trades is it taking to generate that return? How much profit are you making per trade?  Let’s look this from another angle by graphing the average profit per trade vs the buy threshold.

This graph provides more information. Notice the buy threshold values from 50 to 75 average $150 or less per trade. In general, the larger the buy threshold the more profit per trade you generate. The default value for the strategy is 90 which appears to be the optimal value when looking at average profit per trade.  However, based upon both charts above it appears many values can be used and values of 80 and above should produce desirable performance.

Testing Sell Threshold

For the same reasons as stated in the buy threshold  test we just performed, I now want to look at the sell threshold. Once again I will use TradeStation’s optimization feature to test values between 50 and 95 in increments of 5. Below is a graph depicting the results. The x-axis depicts the sell threshold and the y-axis depicts the profit generated for that particular run.

Here we are pleased to see a wide-range of profitable choices for the exit threshold. There is also a clear trend. As you increase the threshold, the more profit you make. By increasing the threshold you are actually holding on to your trade for a longer period. This is a classic and well established market phenomena to hold on to your winners. Our study demonstrates there is clear benefit in doing just that! Below we are going to look at the results based upon the average profit per trade.

Again, we see a very similar story where we increase the average profit per trade as we hold a trade for longer periods of time. To rise above $200 per trade you will need to have an exit threshold above 60. The default value of the strategy is 65. This is far from an optimal value.

Post Event Market Behavior

After we have opened a new trade based upon on strategy rules how does the market tend to act 5, 10, or 20 days later? Does the market tend to move lower, higher or not do much of anything? To test this I will simply hold a position X days after opening it before closing it. Based upon my knowledge for testing other similar setups, I’m guessing we will see a clear benefit in holding the trade for 10 or 20 trading days. I’m also guessing the longer we hold a trade, the more profit we generate. This would be consistent with other similar timing methods for the S&P. Below is a graph depicting the results. The x-axis depicts the hold period and the y-axis depicts the profit generated for that particular run.

Well, I was a little off on my guess. If you compare this study with a pervious study, Using Fear to Time The Market, you will notice these two graphs are different. In the previous article it payed to hold a trade 20 days vs 10 days. In short, the longer you held the more money you made. In this study, that’s not the case. There is a clear advantage to holding the trade for 9 to 13 days but, after that the total profit begins to fade. This is why testing is so important. The two strategies are very similar, but do demonstrate some different characteristics upon close examination.


This appears to be another viable method for determining a high probability entry point. We have demonstrated that the buy and sell thresholds of this system appear robust, working across a variety of values. We have also demonstrated that the market tends to show a strong tendency to rise for about a two week period after a trade is entered. The code I used to generate the results is available at the bottom of this article. Is this a complete trading strategy that you can trade with your own money? Probably not. Please note the code used to generate these results has no stops! Most people would consider this a complete violation of the rules. I myself would not trade without stops. So a catastrophic hard stop may be added. In closing, this strategy is a great start for building a complete trading system. I’m sure a profitable system could be created with a little work.

Get The Book

Jeff Swanson

About the author

Jeff has built and traded automated trading systems for the futures markets since 2008. He is the creator of the online courses System Development Master Class and Alpha Compass. Jeff is also the founder of EasyLanguage Mastery - a website and mission to empower the EasyLanguage trader with the proper knowledge and tools to become a profitable trader.

  • Jeff, another great article!
    I have Connors books and have been testing and coding these in MC for the last few months.
    I have one question for you. In your latest article you state that:
    “Is this a complete trading strategy that you can trade with your own money? Probably not.”

    Besides the lack of stops, which I completely agree with…, what else does not make this or other Connors RSI system incomplete? The Profit factor, average trade size, % profitable trades, etc… seem quite good.

    I’ve tested these and performed confidence interval testing (assuming normal dist, which might not be correct), but in any case these systems seem quite good.

    What do you see that is missing?

    Thanks for the great website.


    • George, the biggest thing missing is probably the stop loss. Most of the other factors look good. A position sizing method could also be added but more importantly, you could use TradeStation WFO to test the robustness of the input values further. While it’s true we did this to some degree in the article, a WFO cluster analysis would provide an even more robust test. Also, using a Monte Carlo simulator over all historical trades will give us a better idea of potential drawdowns and returns.

      Glad to hear you are enjoying the website!

  • Jeff
    Thanks for your reply, I never considered using a Monte Carlo routine to stress the drawdown – that’s a great idea.

    I’m not sure what Tradestation WFO is. I’m using MultiCharts and have had no problems importing the ELD file.

    Thanks Again

  • Hi, came across this post while looking for trade ideas and strategies on volatility. What underlying do you trade when RSI hits the tresholds? Tks

  • Nice work, I’d been working on VIX signals recently, but not combined with the RSI. I think one of the risks with using the VIX for entry signals is it’s ‘recent suppression’ thanks to QE and the growing popularity of the VIX as a trading product. In any case, the backtesting points and time threshold parameters you talk about, are well made.

  • Good morning,
    in my opinion, to stress the drawdown is sufficient you test the system from 1/2006 to 1/2010
    The result will not be as exciting.
    I’m italian, I’m sorry for my bad english

  • Hello Jeff,

    thank you very much for your great concepts here. You wrote,
    “the biggest thing missing is probably the stop loss”.
    Isn’t it typical for this kind of mean reversion strategies,
    that the MAE is a big multiple of the average profit? If
    so it seems very hard to find a adequate stop position.



    • This can be a problem. Some people will use other means to hedge such as buying options. You can limit your risk by trading only a percentage of your equity, as done in the example code for this article. Yet it’s true, stops often hurt this type of system. Exploring the MAE and setting a hard catastrophic stop may give provide some peace of mind.

  • Jeff – Thank you for sharing this analysis. I found your site today and your info is very interesting! May I ask…what securities did you use for your backtest to 1983? VXI or VXO? S&P 500 Index?

    Thank you.

    • That would be the S&P cash market, and VIX. But that 1983 date is a bit confusing as you may notice the first trade is not until 1991 when the VIX data became available. I should probably update the text to match when the first trade was taken. Thanks!

  • Hello Jeff! I think adding maybe a 2,5*ATR5 stop loss would definitely put the last improvement to the system and make it tradable with a good leverage.
    Could you make a follow through post?

  • I look forward to your answer to Marco’s questions. In addition to that, could you clarify when entrances and exits are made in this model: intraday or eod?

    Thanks for the excellent work.

  • Great article Jeff.

    Finally got round to replicating this myself and get similar results, except for the 2 sell threshold test charts — where you test different RSI values at which to exit. I’m getting the exact opposite…better overall profit and profit-per-trade when sell threshold is low. It makes sense (to me anyway!) that an exit on a low Vix RSI (bullish S&P) would be a better exit.

    Would you mind checking and confirming to me that I’ve got this somehow wrong? Cheers.

  • Thanks Alex – I was using the rule from an older version of this article where the exit rule states “Exit when RSI(2) of the VIX falls below 30”. It’s since changed to become “Exit when RSI(2) of the price rises above 65”.
    Testing both versions give pretty much the same results as one would expect.

    It’s also good to see that this strategy has continued to perform well up to the present day.

  • i trying cfd and have afraid by stop loss on the other hand i read rsi2 the other article you wrote i have doubs wich one is better in your experience i need to knwo a litle more for aurora pro trading

  • Jeff, I love all the work you have done testing Connor’s strategies. Thanks very much for sharing. I have just done some testing with this RSI VIX strategy myself. Although I have done it all manually. The results are really nice. I have been using RSI2 in my trading for some years now on individual stocks, but trading the SPX is becoming attractive for me. Just a point I have noticed; you haven’t mentioned in your rules about only taking trades when the VIX opens higher than yesterday’s close. Even if you haven’t included it in your rules, I doubt the results would drastically change anyway.

    Keep up the fantastic work!


  • Really liked this idea. I was wondering if I can use this to Trade Emini futures? Like Nasdaq, Dow Jones or Russell emini


  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

    Learn To Code & Build Strategies
    Using EasyLanguage.