Using Fear to Time the Market

About the Author Jeff Swanson

Jeff is the founder of System Trader Success - a website and mission to empowering the retail trader with the proper knowledge and tools to become a profitable trader the world of quantitative/automated trading.

follow me on:
  • Windsurfer says:

    Very interesting. Thank you!

    The main problem is it doesn’t trade enough. Just for fun, I made the following changes: Stretch decreased from .05 to .03; threshold increased from 65 to 75; # days above 10 day decreased from 3 to 2.

    This doubled the # of trades.


  • Sean says:

    I could be wrong, I often am, however I think the entry should be “buy this bar at close”


    If Condition1 And Condition2 Then buy(“LE”) Cntracts contracts this bar at close;

    from Connors’ book:
    1. The SPY is above its 200-day moving average (you can use the
    SPX also).
    2. The VIX is stretched 5% or more above its 10-day MAfor 3 or
    more days. If this occurs, we’ll buy the market on the close.
    3. Exitwhen the SPYcloses above a 2-period RSI reading of 65 ormore

    Thanks for coding this. I have CVRIII coded if you want it.

    Also on your TRIN indicator it should say put TRIN in Data2 not VIX.

    All the best,

  • Jeff says:

    Hello Sean. Thanks for the corrections. Would love to see the CVRIII code. Feel free to email it to me via the form on the site or post it here in the comments. Thanks much!


  • Sean says:

    Here is the Connors VIX reversal strategy code. It is another great mean reversion tool. It only occurs a few times a year when the VIX is above its ten day MA and the open is above the close (e.g. the reversion has begun):

    vars: vixH(0),vixL(0),vixo(0),VixC(0),avgval(0),buycond(false),sellcond(false),catlong(0);

    vixH = high of data2;
    vixL = Low of data2;
    vixC = Close of data2;
    vIXo = open of data2;

    avgval = average(vixC,10);

    buycond = VixL > avgval[1] and vixC >= (avgval[1] + (.10*avgval[1])) AND VIXC < VIXO;
    sellcond = VixH < avgval[1] and vixc VIXO;

    If buycond then buy on close;
    if sellcond then sell on close;

    if Vixl = avgval[1] then exitshort this bar on close;

    Have you coded any of the TPS strategies?

    • Jeff says:

      No, I’ve not coded the TPS strategies. Might be worth looking into for a future blog post. Thanks for posting the above code!

  • John Santos says:

    I don’t know any programming, but I have followed Jeff’s work for over two years. I do daytrading only on short tf. However, I’d like to expand to swing trading. I’d like to share with you all this model and receive feedback for what you think it is worth, or whether it is rubbish: It is seems correlated to Jeff’s look on markets long-term overbought/oversold, beginning and end of trends, as well as strength of a trend.

  • Red says:

    Hey Sean,

    Did you forget something in the code that you posted?

    sellcond = VixH < avgval[1] and vixc ?? VIXO;

    Did you mean to have < for ??

    Thanx for the post,


  • Srinivasan says:

    There’s another VIX strategy in Dec’12 Stocks and commodities magazine. I’ve been playing with it quite a bit and seem to like it.
    Basically the equity buy only rules are:
    – VIX closes below the 50 period moving average 11 consecutive days
    Exit rule
    – VIX closes above the 50 period moving average 11 consecutive days
    Very simple just like a simple moving average filter on price and some amazing results too. I will share my results across different ETFs (core, sector, leveraged), Mutual funds, Equities later when I have more time.

  • >