Genetic programs, data-snooping, and technical analysis, страница 2

Until Neely, Weller, and Dittmar (1997), the modal research method in the study of returns to technical analysis, or asset-price predictability in general, was to first specify one or more trading rules based upon historical usage, fit the parameters of the models based upon historical data, and test the profitability of the rules using “out of sample” data, i.e., data not used in the parameterization process. However, by using strategies that are or have been in use, researchers may be “datasnooping,” by evaluating historically successful trading rules using historical data.

Genetic programming can be used to find ex ante optimal trading rules from primitive arithmetic operators, thereby avoiding any biases induced by the use of known, successful trading strategies. Using genetic programming, in this article optimal ex ante trading rules for 24 futures markets are developed. Each trading rule is generated using 4 years of daily closing futures prices, and then tested using the next year’s prices for its out-of-sample performance. Of the 24 commodities examined, only 2 can be profitably predicted at the 5% level of significance when transactions costs are included, offering no support to the benefits of technical analysis.

This article consists of four sections. The first section explains the use of the genetic programs in constructing and optimizing technical trading strategies. The second section discusses the evaluation of futures trading strategies and the data used. The following section presents the results of these rules, while the last section offers a summary and conclusion.

GENETIC PROGRAMS, DATA-SNOOPING, AND TECHNICAL ANALYSIS

Genetic programming is the subdiscipline of evolutionary algorithms in which complex algorithms or programs are built from hierarchies of simple operators; they trace their origins to Koza (1992). These programs are optimized according to an evolutionary process whereby an initial population of random rules is generated, evaluated according to some “fitness” function, and then “evolved” through random combination to form a new generation of rules.

The use of genetic programs as technical trading strategies dates to Neely et al. (NWD; 1997) and Allen and Karjalainen (AK; 1999). These researchers recognized that genetic programming avoids the data-snooping biases inherent in earlier technical analysis research. According to Sullivan, Timmerman, and White (1999), “Data-snooping occurs when a given set of data is used more than once for purposes of inference or model selection” (p. 1647). Whether that re-use occurs within an experiment or throughout the collective experience of market researchers is immaterial. In most prior technical analysis research, the performance of common trading rules is evaluated using historical data. However, the fact that these rules are common or popular is prima facie evidence that they have been profitable in past usage compared to the alternatives.

Genetic programs avoid data-snooping because the rules constructed are drawn from the space populated by combinations of simple arithmetic and logical operators. These rules are mechanically optimized using historical data, and tested using a different set of historical data. Therefore, although the specification of these rules is dependent upon their historical performance, their merit is judged using data not available to their construction.

The trading rules used in NWD and AK were binary, i.e., they could only indicate two states for the investor. These states were variously mapped to trading positions of long/short, long/neutral, or neutral/short. While binary positions may be appropriate for equities, they are problematic in futures markets as there is no physical asset being held, and short positions are taken as easily and as often as long positions. Therefore, this article uses trinary trading rules, in which the rule can indicate long, neutral, or short positions.