The world financial markets have been in strong bull trends for many years. The usefulness of a trading system is limited by its behaviour when these trends come to an end. If a system is overly optimised on this historical data, it will fail when the long term trends reverse. This is where synthetic future scenarios are a valuable testing tool.
The amount of historical data for any financial instrument is limited. Only so much history has passed and once all available data has been applied to a trading system test, no more testing can be performed. This problem is encountered by serious system traders, and is particularly frustrating for those that focus on few or only one instrument.
Rigorous system testing should involve the application of a validation data set - a set of historical data that the trading system has never encountered before. This is superior to the Walk-forward testing technique, as there can be no curve fitting . This is because, by definition, there is no curve to fit to if the system optimisation process has not experienced the validation data set. This means that your system cannot fail as a result of being optimised to invalid data, because each validation data set is unique.
Walk-forward testing requires that the available data be partitioned and applied to the system and because the actual historical data is limited in date range, each segment will contain an even smaller date range. Hence system indicators relying on long term trends will not have sufficient data to become active in the test range. If unlimited data can be applied, this problem is also alleviated.
Metronome HistoryMaker allows fine control over parameters that create realistic synthetic data. These are described as follows:
Time |
Weekends |
7 Day markets may be generated by selecting this option. The effect of this is that prices will be generated on these dates but if weekends are disallowed there will be increased gapping on the Monday open, as the market is not able to trade on the weekend. |
Ticks Per Day |
Market liquidity may be accurately accounted for. The daily volatility specified is applied through tick-to-tick volatility. |
Random Date Range |
Some testing methods require random slices of time to be created within fixed time periods. The minimum period within this range can be specified. |
Price |
Fixed Price Seed |
This is the initial value of price to start the model. This can be disabled allowing the system to select random starting prices between a specified minimum and maximum. |
Bounds |
Minimum and maximum price bounds may be enabled and specified. The generated price will not penetrate these limits. |
Hard/Soft bounds |
The specified price bounds are strictly observed however the price behaviour as they are approached is controlled by this option. Hard limits will simply reverse the trend immediately on the next tick while Soft limits will cause this effect to be more subtle. |
Tick Size |
The contract minimum tick size is currently not enforced. |
Distribution |
Currently only the Normal Distribution is modelled. |
Volume |
Bounds |
Minimum and maximum volume bounds may be specified. Realistic volume data are synthesised based on trend strength and daily range characteristics. |
Dirty
Data |
Bad Ticks |
The percentage of bad ticks may be enabled and specified. The percentage refers to the number of bars that are affected by corruption. For example a setting of 2% means that 1 in 50 bars will contain an error. |
|