Extremely simple strategies with > 100% annual return

Discussion in 'Strategy Building' started by jcl, Feb 1, 2012.

  1. jcl

    jcl

    Statistical significance can be partially addressed by generating more data from a price curve f.i. with a Monte Carlo method or other methods. This is not a perfect solution, as there are indeed no easy answers, but we found parameter free systems almost always superior to systems with fixed parameters.

    Let me give an example - this is the simple counter trend algo with the highpass filter that I posted some pages ago, but this time in a parameter free version:

    Code:
      var *Price = series(price());
      var DomPeriod = DominantPeriod(Price,100) * optimize(1,0.2,2);
      var *HP = series(HighPass(Price,DomPeriod));
      var *Signal = series(Fisher(HP,optimize(500,100,1000)));
      var Threshold = optimize(1.5,0.3,3);
      Stop = ATR(40) * optimize(1,0.5,5);
    
      if(crossUnder(Signal,-Threshold)) {
        sellShort();
        buyLong(); 
      } else if(crossOver(Signal,Threshold)) {
        sellLong();
        buyShort();
      }
    
    Same algo as before, with an adaptive highpass filter and a Fisher transformed oscillator that generates buy and sell signals. However, all parameters are now replaced by optimize() functions. While the original algo generated 70% annual return with a lousy Sharpe ratio, this parameter-free version generates up to 200% annual return in a walk forward test on unseen data, and has a much better Sharpe ratio.

    This optimize function is for generating parameters in real time, while life trading. This also makes it easy to use the same algo unchanged on a portfolio of many different assets. You don't have to care about tweaking the parameters, and the parameters adapt to changing market conditions, at least within the set time horizon.

    There's more to it, for instance the function does not generate the best parameter but the most robust one, and it resamples price curves for getting more data, but that's too much into details for now. I won't be able to post here in the next days, but if there's interest I can explain the method in more detail when I'm back.
     
    #111     Feb 4, 2012
  2. if you use stocks, there are so many to choose from, so everyday your system should always find suitable candidates to trade. If you trade one symbol, then yes i see how a system's edge may seem to die after a while, but if you use your system then filter to suitable stock on the day the edge can last forever maybe as your kinda optimising each day with new stocks. So i can see why you are optimising as you go along. Im kinda doing the same but as above in trading different stocks each day and this keeps things un correlated and better than one symbol imo.


    Lescor as i understand does the same thing and hence why his main systems have lasted so long. It is because he is applying his edge daily to different symbols that fit at that particular place in time. So to do this you require a tested proven filter such as an over/under reaction, or something like strong/weak stock fundamentally etc.
     
    #112     Feb 4, 2012
  3. Some other members here pointed out to you that this is not a parameter free system but a continuously optimized system. At the point the walk forward optimization stops and real trading begins the system uses a specific set of parameters selected by the previous optimization. This is a straight curve-fit on previous data.

    I am not saying that your system is junk, I am only disputing you referring to it as "parameter free". It is not. The system has parameters. Actually it has many.
     
    #113     Feb 4, 2012
  4. ssrrkk

    ssrrkk

    I am familiar with resampling and permutations, so-called bootstrapping techniques to improve the confidence on your parameter estimates. But rather than those details, I still would like to see your slippage and commission models within sellShort and buyLong functions.
     
    #114     Feb 4, 2012
  5. I wouldn't worry so much about slippage and commission for this particular model. In general I would though. I still do not see the value in doing all that work and using such filters for getting a high drawdown - low Sharpe system. My simple MA crossover with no optimization retutns about 37% per year in SPY with 61% winners, higher sharpe, high profit factor and smaller drawdown.
     
    #115     Feb 6, 2012
  6. ssrrkk

    ssrrkk

    I guess the reason you think so is because the number of trades is low enough that they don't add up. However, there will invariably be stuttering or chopping periods. Those periods (call it trains of entry re-entry failures) usually remove all your gains from the trending periods. Usually at any time scale the two (trending profits, stuttering losses) add up almost perfectly to be equal to the slippage and commission. However, I have to admit, I have solely been focused on day trading so I cannot be sure about whether it's possible that the trending periods overcome the stuttering chop periods in the swing-trading timescale. So may be it's possible. I do know for a fact that a simple MACD crossover can be profitable in the months to years timeframe but the percentage gain is very low.
     
    #116     Feb 6, 2012
  7. ssrrkk

    ssrrkk

    By the way, do you mind sharing with us the PL curve on that simple MA cross system?
     
    #117     Feb 6, 2012
  8. +1

    If you test any MA crossover strategy, you might find that on net, the trending gains are wiped out by the ranging losses. Then you pay spread & comms.

    And .. any oscillator based strategy has the ranging gains wiped out by the trending losses. Then you pay spread & comms.

    If you happen to pick "the right timeframe", then you might make money. But, the right timeframe tends to move randomly -- so you're back at square one. Net net nothing [then you pay spread & comms.]

    It's not real hard to backtest this kind of thing.
     
    #118     Feb 6, 2012
  9. There is alot of experts here on this thread and i would like to take the chance to put my system forward for some feedback if at all possible.

    This system is backtested but please be assured it has been done absolutely correctly with every fill in backtest exceeded before it was counted so 100% fill would have occured in real time, especially as this is trading SPY only and at no more than 2500 shares a trade. SPY is one of the most liquid instruments as you know. If i disable 'exceed limit order parameters', so system fills orders when price just touches then results are obviously much better and almost win every week, but im putting realistic performance out there for you to see and judge, hence the fills have all moved through limit orders before being counted.

    Also the last 4 months the results are actually real live trading results and infact slightly running above backtest results so i know backtest is reliable.

    This is the same system (parameters) un-touched for 10 years with no optimising in between years or anything like that.

    The results are not fantastic and my main concern for my system is the smoothness of performance which im working on refineing by blending other systems.

    Please judge my system and please give me some feedback as i respect your advice. I would just like to know wether you professional guys would consider this system or would performance be too low for you?, Kind regards,





    $100k starting bank.
    10 year Backtest Trading SPY only.
    Both entry and exit exceed limit order before being counted. So slippage is in.
    Commissions at 0.004 per share allowed for.

    Net Profit $411,605.00
    profit factor 1.28
    total trades 6031
    percent profitable 63.72%
    ave winning trade $496.46
    ave losing trade ($683.86)
    ave trade net profit $68.25
    max consec winning trades 17
    max consec losing trades 9
    Total commissions $120,620.00
    Max shares held 2500
    Net Profit per share 0.027

    Worst drawdown $17,440.00 (10/23/2008)
    Max Trade drawdown $7,875 (11/20/2008)

    Annual profits (no compounding as i will be withdrawing, 100k bank and max 2500 shares per trade)

    1/1/2012 $41,220
    1/1/2011 $42,675
    1/1/2010 $32,040
    1/1/2009 $58,255
    1/1/2008 $80,475
    1/1/2007 $30,695
    1/1/2006 $22,740
    1/1/2005 $16,870
    1/1/2004 $25,640
    1/1/2003 $29,815
    1/1/2002 $72,220


    91 winning months
    27 losing months
    1 losing month every 3.37 months
    Max consec losing months = 2
    max consec winning months = 11

    winning weeks = 62%
     
    #119     Feb 6, 2012
  10. i know lescor currently long term averages 70% winning days, and 84% winning weeks. And my system gets no where near that. Lescor trade multiple non correlated systems though, so we are talking alot more frequecny. If i am able to trade this small edge i have with more frequency then i too could smooth out daily and weekly winning. I need to apply my edge to more symbols to which im currently working on. If this small edge is traded more often (currently averages 3 trades a day), over more instruments, then i feel i may have something.

    What do you think?
     
    #120     Feb 6, 2012