The common method for creation of synthetic price series is by bootstrapping of the real price series. Then we test the robustness of our system with different artificial price series. But what happens if our system is based on exploiting some kind of seasonality (e.g. Halloween effect in major US stock indexes)? Almost invariably, bootstrapping will, probably, destroy the seasonality. My idea to overcome this is by performing bootstrapping inside weeks or months. E.g.. for monthly bootstrapping, we take the first month of the real prices, bootstrap its prices creating new artificial month prices. We continue this for each month. Intuitively such a method of bootstrapping should somehow preserve the seasonality much better. What do think?
Is this about simulating a stock price including seasonality? Which parameters does your model have? Of course you would need some form of GBM, ie. with seasonality added into or onto it. I think you need a correlated GBM that generates values that are correlated with the previous real data. So, seasonality is kept, together with the usual random fluctuations... Some years ago I did work on this using the C++ programming language. Maybe I can help if your programming language is C++ as well. The above method is used also in Pairs Trading. Programmers from that field can help too. See also: https://www.quantstart.com/articles/Generating-Correlated-Asset-Paths-in-C-via-Monte-Carlo/ https://quant.stackexchange.com/questions/42085/correlated-gbm-and-ou-processes
This is about creation of artificial price series for testing any system designed to take advantage of seasonality. Thanks for offering help but unfortunately I don't program in C++. I'll look on the links you provided. Thanks for your reply.
You are welcome. I like such advanced themes FYI: you can of course also backtest many years and decades using real historic data. Or do you rather want to perform a Monte Carlo simulation? Or is this for academic research? Here is another link titled similar to yours: "Block bootstrap to synthesize asset prices"
I'm not a big fan of Monte Carlo simulation and prefer Bootstrap instead. This is not an academic research - I'm a real trader. If, for example, I'm trying to test seasonality system for Gold, I will use many years of gold historical prices, of course, but I need additional prices to test system robustness (to gain some confidence my rules are not curve fitted to the original gold prices). This where I use artificial price series created using Bootstrap. Looks like "block bootstrap" you mentioned is a proper name for my idea of bootstrapping inside months or weeks. Will look into this link. Thanks.
Thanks for the explanation. Makes very well sense, indeed. I just learned some new things For newbies like me the following intro into the Bootstrapping method is surely useful (has some further links in it): https://en.wikipedia.org/wiki/Bootstrapping_(statistics) " Bootstrapping is any test or metric that uses random sampling with replacement (e.g. mimicking the sampling process), and falls under the broader class of resampling methods. Bootstrapping assigns measures of accuracy (bias, variance, confidence intervals, prediction error, etc.) to sample estimates.[1][2] This technique allows estimation of the sampling distribution of almost any statistic using random sampling methods.[3][4] ... The block bootstrap is used when the data, or the errors in a model, are correlated. ... "
Why do you need to create synthetic prices? Identify the regime you're in and use prices from a similar historical regime. Not that predicting the future is possible