Goal: Increasing the Profits
In this application the consultant developed a predictive model of an existing trading system’s future performance by making a meta model as an external rule set to the existing mechanical system. The technique combines time series indicators and event analysis with neural network forecasts and genetic algorithm optimizations. WizWhy was effectively used to derive a production rule set that was used to improve the risk adjusted return of the trading system.
The trader had a profitable system that he had designed and ran real time in Omega Research’s TradeStation. It was the trader’s goal to improve the performance characteristics of the trading system by holding steady or increasing the profit while decreasing the drawdown (the maximum cumulative total decline in equity from a high point in the equity curve). The drawdown being that which the trader is most acutely aware of as it tests his intestinal fortitude and is what is most likely to reason the abandonment of a system.
The trader gave the consultant the TradeStation system report for the trading system from 1987 through June, 1997. The report was transformed into a database table of 1400 records where each record contained the date, entry and exit times and signal types, and the profit or loss (“P&L”) amount of the trade. Three adaptive moving averages of the P&L’s using different smoothing constants were calculated. A general regression neural net was also trained using the adaptive moving averages and the P&L’s as inputs, and the one step ahead P&L as the output.
Financial time series analysis is a very difficult problem as the processes contain a very large amount of noise and are highly nonstationary. Neural networks and other techniques are particularly capable of fitting the data in sample and then performing poorly on data out of sample. It is always advisable to test the final model on data that has never been seen by any components of the system. The first 400 records were used in this case to train and test the neural network indicator leaving 1000 records in the production set.
The indicator values from the moving averages and the neural network output were added to the records with the signal entry/exit types and times of the prior trade along with the signal entry type of the upcoming trade. The dependent variable was the binary P&L of the upcoming trade (>0 and <=0). WizWhy was then used to derive candidate production rules within the 1000 record production set. Rules were selected based upon two runs of WizWhy, one with a number of cases threshhold and another with a probability threshhold. Candidate rules which had strongly unbalanced distribution of successes and failures along the P&L time series were dropped. For example, if the overall rule’s probability was 80% and yet had long runs of much worse performance then the rule was dropped in favor of another rule of similar overall performance and a more evenly balanced distribution. The ten rules for each binary class were chosen.
In Microsoft’s Excel, a rule set portfolio was made with each of the given rules predicting a loss or a win of the next trade. If a loss rule was active then it was determined not to take the next trade, an active win rule determined that the trade size on the next trade would be doubled. Each of the 20 rules was given an on/off switch and the genetic algorithm was used to optimize the candidate rule set to a high profit/drawdown ratio. The genetic algorithm was also used to reduce the number of rules used given a specified threshhold profit/drawdown ratio.
The meta modelling technique in this case satisfied the trader’s goal by increasing the profit by roughly 100% and reducing the drawdown by 50% over the historical data.