What it is
This provider can quickly create large DataSets with randomized historical data for blind testing purposes.
Hopefully, it will help you fight over-optimization and design better trading systems without curve-fitting.
Creating a random DataSet
Creating a new DataSet containing random data is straightforward:
First, you need to specify a prefix which will be used to create required number of random symbols in conjunction with the counter. On the right, there's a preview area. For example, if you enter "TEST" as the prefix and request the provider to create 1000 symbols, it will show that the symbols "TEST0" to "TEST999" are going to be created.
1-minite and Daily data are supported: you can select a data scale from the drop down list. For 1-minute scale, custom market hours can be specified. Finally, the Starting Date field controls how deep your "historical" data will be.
Starting from version 2011.02, the provider allows to specify which randomization method to use when creating new DataSets. Read on below for their descriptions. This is a breaking change: all DataSets created before will be lost and have to be created from scratch (but all previously generated data is preserved).
Under the hood
Under the hood, the provider implements two different engines of synthetic data creation:
- Modified simple random data generator
- RandomWalk generator. The Random data provider makes the choice for a market bias (i.e. bull, bear or neutral market), well, randomly.
If "Randomly select" was specified when creating a DataSet, it's impossible to know beforehand which method will be used - method will be picked randomly for each symbol. However, refreshing a symbol's data doesn't keep the random engine preference.
Like in real life, synthetic prices can not go below zero: when the price gets "close enough", the Random provider will make its best to not allow the market to lose its value, usually by forming a basing period or doing a "V" reversal.
Further reading
Known issues and limitations
- Symbols with extra large data (e.g. half a million bars) may have very long loading times
- Workaround: selecting "All data" will load such files instantly, other data loading ranges aren't recommended.
- By design, specifying randomization method does not apply to: Streaming charts, Strategy Monitor, intraday data (uses its own sort of simple randomization).