Monday, 16 January 2012

Getting a Robust Algo

I'm working with the 21 guys that attended the recent FloBot workshop. BTW, the videos are now available. They come with mentoring so you get a lot of feedback and guidance as you work towards that robust FloBot.

Some of the guys have created some amazing stuff. It's funny how we all watch the same movie and get our own ideas from it. There's a few of them already in SIM with their versions of Flo. I'm pretty impressed, particularly with one guy that has been working with me for over a year. It looks like he's really found his niche with his algo. The amount of time and effort he put in was considerable.

The steps to go through to create your own algo are fairly simple though time consuming. Each step is dependent on the previous one. The goal is that at the end of SIM you can be as sure as possible that you have a robust profit making FloBot.

The steps are:

  1. Decide on your entry rules
  2. Do an optimization to find the correct inputs for the entries and exits using 4 to 6 months of data or more
  3. Do a walk forward optimization analysis using the above results but optmizing only the exits. I usually use 28 days InSample and 7 days OutOfSample but I try 21 days IS, 14 days IS and 7 days IS if 28 days does not provide good results.
  4. Once the WFO passes your tests (what you think PLUS 80% of the OOS periods are profitable enough) you have a model ready for SIM testing
  5. Load only the IS data that was the same as the good IS WFO and optimize the exits as you did in the WFO but with this lesser data.
  6. SIM trade, reoptimizing after each 7 days if that was your OOS period.
  7. Once you are satisfies with SIM, consider whether to go live on 1 contract.

The purpose of all of the above is to see that if you do an optimization over the, say, last 28 days and then trade that model for the next 7 days that you are likely to be profitable with acceptable drawdowns.

Without the WFO analysis, it's still just HOPE. I also strongly recommend the SIM as you need to see how things turn out using live data. What I want to see is how Flo reacts intra bar. An algo in backtesting has to guess whether the High or Low of the bar happened first and whether the guess is correct impacts the way that the algo operates. Seeing this in SIM may require a change in the periodicity used.


  1. "An algo in backtesting has to guess whether the High or Low of the bar happened first".

    Wow, if you are not using tick data when backtesting, it is pretty much useless...

  2. Anon 10:13, of course I use tick data. I'm referring to the renko bars in the post.