Excellent thread guys, and welcome back Nizar. Where have you been? Email us!
Howard, what are you views on avoiding unnecesary frequent re-optimisations to unprofitable systems? How do you know when a system become terminally unprofitable?
My personal belief is that the more simple (less degree of freedom) a system is and the more markets it has been tested with and is profitable under whatever testing criteria, the more robust the system is. And obviously, result in the reduction of the chance to re-optimise the system parameters again.
Do you propose any other solutions to this?
Hi Temjin --
If the system still works, and you have determined the length of the in-sample period that puts the system and the market in synchronization, then the system can be reoptimized as often as desired. Every day, if you wish. (But, be careful of how the optimizer and walk forward engine handle trades that cross the in-sample out-of-sample boundary.)
There is a mechanical answer to your question. When you performed the walk forward analysis, you selected some period of time as the length of the out-of-sample period. In the most common method of walking forward, that is also the period between reoptimizations. Continuing to use that period will set up a regular schedule of reoptimizations.
If the out-of-sample results are regularly better at the beginning of the OOS period than at the end of it, then set the length of the OOS period to be shorter and reoptimize more often.
Simple systems -- that is, systems with a few parameters -- are less likely to become curve-fit to the noise in the data. But they are also less capable of adapting to changes in the data.
Complex systems -- that is, systems with more parameters -- are more likely to become curve-fit to the noise in the data. But they are also more capable of adapting to changes in the data.
So, we have a classical trade-off -- simple system versus complex system. It goes along with the trade-off of long in-sample period versus short in-sample period. For the time series data we are dealing with, there is no easy way to define the relationship between the number of parameters and the number of data points. A lot depends on the cleverness of the algorithm and a lot depends on the variability of the signal component of the data that the system is trying to isolate. You will have to run some tests.
/////////
How can you tell when a system is terminally broken?
If the system has been working, and has been successfully reoptimized through use of an automated walk forward process, then reoptimizing should put the system back in sync with the data. If it does not, then the system is either out of sync or broken. There is no way to tell which without waiting to observe what happens on future trades.
So, I recommend the following procedure:
1. Develop the system using sound modeling techniques, including out-of-sample testing.
2. Perform walk forward analysis to get several looks at the transition from in-sample development to out-of-sample testing / trading.
3. Reoptimize whenever desired, or whenever the actual results fall below expectations (as measured by the out-of-sample results).
4. When the out-of-sample results (actual trades or paper trades) of the most recent reoptimization continue to fall below expectations, do not trade the system. Watch it, and reoptimize it as desired, but do not trade it until the OOS results return to acceptable levels.
Thanks for listening,
Howard