Greetings --
I have written one book about trading system design, testing, and validation -- Quantitative Trading Systems -- and have another planned -- Trading System Validation. I've read through the thread to date, and I'd like to add my two cents worth to the discussion of robustness.
1. In order to measure robustness, there must be a metric, often called an objective function. The metric is personal -- yours will probably be different than mine -- and it must be designed or chosen before the model development process begins in earnest. Some people use compound annual rate of return, others have quite complex objective functions that include terms for trading frequency, annual rate of return, drawdown, holding period, and so forth. The sensitivity of parameters to specific data can be addressed by perturbing the parameter values, measuring the associated objective value, and averaging. Sensitivity to outliers can be addressed by limiting the profit or loss associated with them. These, and other Monte Carlo techniques can be incorporated into the objective function.
There is a very important point about the objective function -- if two trading systems or alternatives are compared over a given set of data, the one that scores highest according to the objective function must be the one that the person developing the system prefers. If that is not the case, then there must be some factor that has not yet been included in the objective function. That factor must be identified, quantified, and incorporated into the objective function before proceeding. Further along in the trading system development process, we will not be able to see all the alternatives -- only the one alternative that scores highest will be used.
2. The data being used must be divided into at least two data sets -- an in-sample data set that is used to select the parameters for the trading system, and an out-of-sample data set that is used very infrequently -- preferably exactly one time -- to measure the performance of the system on data that has never been seen before. If the trading system is adjusted based on the results of the out-of-sample data, then that previously out-of-sample data has just become in-sample data, and a new out-of-sample data set must be used for validation.
3. Search through the in-sample data set as much as you wish. Look for values of the parameters that maximize the value of the objective function; add rules and filters. When you are satisfied with the in-sample results, test on the out-of-sample data. If the out-of-sample results are satisfactory, you have an indication that the system might be robust and might be tradable.
4. To increase your level of confidence, perform the walk-forward test. That is, select a length of time to use as the in-sample length and a length of time to use as the out-of-sample length. The only arrangement of the two periods that is practical is to have the out-of-sample immediately follow the in-sample. Start far enough ago that there is room for several out-of-sample periods before today. Beginning with the first in-sample period (the oldest in-sample period), find the optimum parameters -- optimum is always determined by the highest value of the objective function -- then test over the associated out-of-sample period, and record the results. Move on to the second in-sample period, optimize, test the second out-of-sample period, and record the results. After all the in-sample periods have been processed, concatenate the results from the out-of-sample periods. If those results are satisfactory, your confidence is increased.
5. Contrary to popular belief, there is no statistic or other measurement that can be taken from the in-sample results that give any indication of the likelihood of a system to be profitable in the future. Thirty closed trades is not enough -- 30,000 closed in-sample trades is not enough. The results achieved over the in-sample period are meaningless.
6. I'll say that again -- the result achieved over the in-sample period are meaningless. They are always good. We do not stop searching until they are good.
7. There is no guarantee that any trading system will be profitable in the future. The best we can hope for is a high degree of confidence. The only way to build that confidence is by repeating the optimization - out-of-sample testing process.
8. If you do not have acceptable test results on a truly out-of-sample data period, then out-of-sample testing begins tomorrow with real money.
Thanks for listening,
Howard
www.quantitativetradingsystems.com
Top post there, the bold and underlined sections is just what i thought was key.
Please Howard, visit us more often to share your wisdom
I think I may have to get my hands on your book.