Wednesday, May 9, 2012

CCI Buy signal.

3:45pm: CCI system moves to a buy. For stats, I will track TNA but any long ETF that correlates reasonably well with SPY makes for a fine trade. Profit Factor for all long trades is 3.13 (TNA) and 3.23 (SPY).

JTSystem is on a hold signal and remains 50% long TNA.

Take care!

We are likely getting a CCI buy signal today. (I will confirm later) The JT system will remain 50% long with a hold signal.

The CCI system has been tweaked to maximize profits...and to go long in a "short-biased" environment. No longer does it have a 90% winning rate on long trades, it is only 83%. :) But it produces more trades now and has a better profit factor.

I will break down all the stats in a dedicated post, but since the CCI is going long today I wanted to post a little snapshot.

Average return (SPY) on all long trades: 0.81%.
Average return (SPY) of just the winning trades: 1.43%
Average return (TNA) on all long trades: 3.26%
Average return (TNA) oj just the winning trades: 6.04%

Gotta run...will post profit factors later today! Thanks!


  1. J...
    (1) How long is the back-test on that? I hope you've run it back to 2000 or earlier, so that you've covered a few bull and bear mkts.
    (2) How do you know you have not over-optimized it for the time under test?
    (3) would be useful to show median (not average) stats, as the average is sometimes skewed by a few big trades.

    1. I wish I had that much data. I only have early 2008 to present. At least I'm capturing a bear and a bull.

      This was my method to try to avoid over optimizing. I only used the period mid-2009 to end-2010 to curve fit. I then ran the same criteria (as-is) for early 2008 to mid 2009 and also from beginning 2011 to current. Hard to believe, but my curve fit period performed worst of the 3 time periods. :) Either I did something right or I did something wrong. I'm leaning toward the former.

      Thanks for the suggestion on median vs. average. When I post final stats (soon, I promise!) I'll use median.

    2. Good work, J.

      What you did is called walk forward optimization and it's perhaps the best way of avoiding curve fitting. What it involves, and what you essentially did, is optimizing a system for a period of time and then testing the settings arrived at by the optimization process in what are called "out of sample" periods, that is, periods that were not optimized.

      So, what you did was to make sure that your code wasn't the result of curve-fitting.

      Another way to avoid curve-fitting is to optimize a code for a certain vehicle (etf, stock, etc.) and then test it with other vehicles. The more curve-fit the system is, the less well its settings work for other vehicles.

  2. One way to check for your #2 concern is to consider the number of rules that govern a system. Simply, the more rules, the more likely that the system could suffer from curve-fitting.

    In other words, if you take a chart, you can always retroactively create rules that give you perfect trades. But, to do that, the number of rules would start to rival the number of trades. Conversely, robust systems generate good results based on few rules.

    Of course, the fewer rules rule has its limitations. For example, a buy and hold strategy is actually a system with only one rule: buy on such and such a date.

  3. I'll be busy most of the rest of the day. Any chance for a signal for either of the systems?


    1. Boring day, both giving HOLD signals...

  4. Thanks, J. But it was a good beginning for your CCI system. At least the first day of its public life was positive. I can't wait to see the stats you're working on.