Most automated trading systems have a number of embedded parameters such as the lookback periods, entry and exit thresholds, etc. This is like the moving average crossover system or any of the systems that rely on some kind of data window for calculations. For example, if I use a fast and slow exponential filter for an MA crossover system, then I need to figure out the best time values for each of these filters.

Finding these parameters can be difficult because there's only one history from the traded security. A single currency might have 200 million ticks or 2 million 1 minute data points. This is only one scenario of what could have happened and represents multiple trends and turning points in an evolving series. If I want to really pick parameters that would be best, it seems like I would want to use multiple samples to reduce overfitting. It's possible to use hold out data, but it seems like it would be better to use bootstrapping to get additional histories to optimize on.

Is there a problem using block, moving block or other bootstrap methods to find the optimal trading parameters or blackbox parameters? Seems like a good idea. What are the most effective bootstrap methods for nonstationary, evolving dependent time series?

Thanks in advance

  • $\begingroup$ If you could express your question in simple terms then I may want to help out if can. The current format sounds incredibly complex and honestly speaking I do not follow at all. $\endgroup$ – Matt May 30 '13 at 10:39
  • $\begingroup$ Hi Matt. I updated the question. Sorry the first version was unclear. It's my first question on the stack. $\endgroup$ – Amir Sani May 31 '13 at 8:18


Here couple points how I would proceed:

  • I would first look to divide your time series into different clusters, enough so that different market dynamics fall into different clusters.

  • I guess you will not be trading a single asset and thus you will not just optimize over a single stock or options contract. I would strongly try to discourage from optimizing parameters over each individual asset but instead over a set of assets. Do not derive an optimized parameter set for Google and another for MS, for example because most likely will you overfit.

  • I would start with first splitting the data into training data and then data you test your optimizations on in the end.

  • Then I would proceed with bucketing time series by dates (months, years or whatever you chose) and then optimize each bucket separately and then run statistical tests on the stability of your optimized parameters across buckets.

  • Also compare your strategy results between buckets with one parameter set and derive how stable the outcomes are. In the end you should run statistical tests over the data not used for optimizations.

  • $\begingroup$ Thanks for your response Matt. I'm specifically interested in the single asset case when using very high resolution data, such as 1 to max 60 min buckets. I'm also interested parameters that are robust to cluster-cluster transitions through time. How would I use bootstrapping with your methodology? $\endgroup$ – Amir Sani May 31 '13 at 10:48
  • $\begingroup$ @amirsani, I do not understand what else you like to know. Bootstrapping in statistics is nothing else than simply a re-mapping of the population of sample data so that you your sample becomes the population and a sub-sample the sample. Therefore, you can know the inference error when making an inference from sample->population statistic. There is no law or rule how you divide up the buckets, in fact one bootstrap technique is using overlapping sampling periods. $\endgroup$ – Matt Jun 1 '13 at 3:26
  • $\begingroup$ Thanks @Matt Wolf. Block bootstrap and moving block bootstrap are supposed to fail in cases of strongly dependent data. I'm trying to understand what is lost and if there are ways to circumvent this. $\endgroup$ – Amir Sani Jun 1 '13 at 9:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.