The volatility is a crucial variable in option pricing and hedging strategies. The aim of this paper is to provide some initial evidence of the empirical relevance of genetic programming to volatility's forecasting. By using real data from S&P500 index options, the genetic programming's ability to forecast Black and Scholes-implied volatility is compared between time series samples and moneyness-time to maturity classes. Total and out-of-sample mean squared errors are used as forecasting's performance measures. Comparisons reveal that the time series model seems to be more accurate in forecasting-implied volatility than moneyness time to maturity models. Overall, results are strongly encouraging and suggest that the genetic programming approach works well in solving financial problems.
Although the Black-Scholes (BS) formula [
The idea of the volatility smile had its genesis in the early papers documenting the systematic pricing biases of the BS option pricing model. Early tests by Black [
Volatility smiles are generally thought to result from the parsimonious assumptions used to derive the BS model. In particular, the BS model assumes that security log prices follow a constant variance diffusion process. The existence of systematic bias in the model reflects a departure from the BS assumptions, with the result that the probability distribution is not lognormal. Black [
In contrast to parametric forecasting models, nonparametric approach has the distinct advantage of not relying on specific assumptions about the underlying asset price dynamics and is therefore robust to specification errors that might affect adversely parametric models. As mentioned in Ma et al. [
This paper intends to establish a systematic approach and a GP software tool for analysts to improve the accuracy of the forecast. This volatility's forecasting approach should be free of strong assumptions and more flexible than parametric method. Reliable volatility forecasts can greatly benefit professional option traders, market makers who need to price derivatives, and all investors with risk management concerns. Implied volatilities, generated from option markets, can be particularly useful in such contents as they are forward-looking measures of the market's expected volatility during the remaining life of an option. We attempt then to forecast the implied volatility of BS by formulating a nonlinear and nonparametric approach based on GP algorithm.
It is important to notice here that we do not claim to have found the perfect implied volatility's forecasting model. Ultimately, all implied volatility's forecasting models, no matter how complex, are misspecified and the search over the universe of volatility forecasting should concentrate on finding the least misspecified model.
The remainder of the paper is divided into three sections. Section
GP [
Given the advantages of GP, it has been widely used to solve complex high-dimensional and nonconvex optimization problems (Kallel et al. [
The GPs forecasting accuracy has been shown also in index market. Using historical returns of Nikkei 225 and S&P500 indices, Chen and Yeh [
These encouraging findings suggest that a GP may be a powerful tool for forecasting historical volatility based on previous returns. The present paper extends the studies mentioned earlier by forecasting the implied volatility instead of historical volatility using GP. In fact, implied volatility has been found to be a more accurate and efficient forecast of future volatility than historical volatility [
Our GP software is referred to as symbolic regression written in C++ language. Symbolic regression was one of the earliest applications of GP (Koza [
Two of the most important aspects of the GP algorithm are the function and terminal sets that building blocks use to construct expression trees which are solutions to the problem. Together, they define the ingredients that are available to GP to create computer programs.
The terminal set corresponds to the inputs of the program. It is determined according to the domain of problems and the inputs can be constants or variables. The function set may contain standard arithmetic operations, standard programming operations, standard mathematical functions, logical functions, or domain-specific functions. The function set combined with the terminal set enables the algorithm to generate a tree-structured solution to the problem, where nodes define function set and where leaf nodes define terminal set.
GP starts by randomly creating an initial population of trees, which are generated by randomly picking nodes from a given terminal set and function set. A restriction on the maximum allowed depth is imposed to avoid that the generated trees to be too complex.
The evolutionary process is driven by a fitness function that evaluates the performance of each individual (tree) in the population. This fitness function assigns numerical values to each individual in the population. These values are then used to select individuals for reproduction.
After the fitness of each individual in the population is measured, GP then probabilistically selects the fitter individuals from the population to act as the parents of the next generation. Selection determines which individuals of the population will have all or some of their genetic material passed on the next generation. In general, parents displaying a higher level of performance are more likely to be selected with the hope that they can produce better offsprings with larger chance.
Crossover and mutation are the two basic operators which are applied to the selected individuals in order to generate the next population. The mutation operator affects random changes in a tree by randomly altering certain nodes or subtrees, whereas the crossover operator performs swaps of randomly subtrees between two selected parents. The parameter choices for crossover and mutation are clearly critical in ensuring a successful GP application. They impact on populational diversity and the ability of GP to escape from local optima [
After applying the genetic operators, the new individuals are evaluated through the fitness function in order to replace those of the current population.
Once the new population has been created, the current population is replaced by the new one, and the process of fitness evaluation, selection, and the application of genetic operators are repeated until some termination criterion is satisfied. This may be the maximum number of generations or convergence level of evolution generations.
Data used to perform our empirical analysis are daily prices of European S&P500 index calls options, from the CBOE for the sample period January 02, 2003 to August 29, 2003. S&P500 index options are among the most actively traded financial derivatives in the world. The minimum tick for series trading below 3 is 1/16 and for all other series 1/8. Strike price intervals are 5 points, and 25 for far months. The expiration months are three near term months followed by three additional months from the March quarterly cycle (March, June, September, and December). Option prices are set to be the average of the bid and ask prices. The risk-free interest rate is approximated by using 3-month US Treasury bill rates.
The beginning sample contains 42504 daily observations of call option prices and their determinants. Four exclusion filters are applied, which yields a final sample of 6670 daily observations and this is the starting point for our empirical analysis. First, as call options with time to maturity less than 10 days may induce liquidity biases, they are excluded from the sample. Second, call options with low quotes are eliminated to mitigate the impact of price discreteness on option valuation. Third, deep-ITM and deep-OTM option prices are also excluded due to the lack of trading volume. Finally, option prices not satisfying the arbitrage restriction [
The full sample is sorted by time series and moneyness-time to maturity. For time series, data are divided into 10 successive samples each containing 667 daily observations. For moneyness-time to maturity, data are divided into 9 classes, classes are, respectively, OTMST (C1), OTMMT (C2), OTMLT (C3), ATMST (C4), ATMMT (C5), ATMLT (C6), ITMST (C7), ITMMT (C8), and ITMLT (C9). According to moneyness criterion: a call option is said OTM if
The first preparatory step to run a GP is to specify the ingredients the evolutionary process can use to construct potential solutions. The terminal and function sets are described in Table
Terminal set and function set.
Expression | Definition |
---|---|
Call price/Strike price | |
Index price/Strike price | |
Time to maturity | |
+ | Addition |
Subtraction | |
* | Multiplication |
% | Protected division: |
ln | Protected natural log: |
Exp | Exponential function: |
Sqrt | Protected square root: |
Ncdf | Normal cumulative distribution function |
The search space for GP is the space of all possible parse trees that can be recursively created from the sets of terminal and function. The terminal set includes the inputs variables, notably, the call option price divided by strike price
The implementation of genetic programming involves different parameters that determine its efficiency. A common approach in tuning a GP is to undertake a series of trial and error experiments before making parameter choices for the final GP runs. A two-step approach is used. First, the optimal set of genetic parameters is determined based on time series data. By varying parameters for the genetic programs when training them on the first sample data, their performance is tested on a test data set from a later date. Various genetic programs are tested. Each program is run ten times with ten different random seeds. The choice of the best genetic program is made according to the mean and median of mean squared errors (MSEs) for training and testing sets. Second, the optimal set of parameters, relative to the best genetic program selected in the first step, are used for training the genetic program separately on each of the first 9 samples using ten different seeds and testing the program's performance only on the test data from the immediately following date. This limits the effects of nonstationarities and avoid data snooping. The same genetic parameters and random seeds used for time series data are applied to moneyness-time to maturity data in an attempt to analyze the effect of data' group on the GP performance; each moneyness-time to maturity class is subdivided into training set and test set. Parameters used in this paper are listed in Table
Summary of GP settings and parameters.
Method of generation: | Ramped half and half |
Population size: | 100 |
Offspring size: | 200 |
Generations number: | 400 |
Maximum depth of new individual: | 6 |
Maximum depth of the tree: | 17 |
Selection algorithm: | Tournament selection (4) |
Crossover probability: | 60% |
Mutation probability: | 40% |
Branch mutation: | 20% |
Point Mutation: | 10% |
Expansion mutation: | 10% |
Replacement strategy: | Comma replacement |
Stopping criterion: | Maximum number of generations |
An initial population of 100 individuals is randomly generated using random number generator algorithm with random seeds. The generative method used for initialization is the ramped half and half as detailed in Koza [
Selection of the best generated GP volatility model, relative to each training set, for time series and moneyness-time to maturity data, is made according to the training and test MSE. In definitive, nine generated GP volatility models are selected for time series (M1S1
Evolution of the squared errors for total sample of the best generated GP volatility models relative to time series (a) and moneyness-time to maturity (b).
Performance of the generated GP volatility models according to MSE total and out-of-sample for the time series samples (a) and the moneyness-time to maturity classes (b) and (c).
It appears throughout Figure
Figure
Volatility smile of the generated GP volatility models against BS model for short-term call options (a), medium term call options (b) and long-term call options (c) at different dates.
Based on the MSE total and the MSE out-of-sample as performance criteria, the generated GP volatility models M4S4, M4C4, and M6C6 are selected.
Table
Selection of the best generated GP volatility models relative to time series and moneyness-time to maturity in terms of the MSE total and the MSE out-of-sample (The numbers in parentheses are standard errors of the corresponding measures of the generated GP volatility models).
Models | MSE total | MSE out-of-sample |
---|---|---|
M4C4 | 0,001710 (0,0046241) | 0,001944 (0,005108) |
M6C6 | 0,002357 (0,0040963) | 0,002458 (0,00415354) |
A detailed examination of the trees shows that the volatility generated by GP is function of all the inputs used, namely, the call option price divided by strike price
The implied volatility is defined as the standard deviation which equates the BS model price to the observed market option price. Since there is no explicit formula available to compute directly the implied volatility, the latter can be obtained by inverting the BS model. On the contrary, the GP offers explicit formulas which can compute directly the implied volatility expressed as a function of time to maturity, index, strike, and option prices. Therefore, the generated GP volatilities take account of moneyness and time to maturity. This contradicts the BS assumption of constant volatility. Furthermore, the comparison of the GP forecasting models reveals that the volatility generated by the M6C6 model can be negative, whereas this phenomenon did not exist in the M4S4 and M4C4 models since the implied volatility is computed using the square root and the exponential functions as the root nodes. It appears that even if the variables are nulls, the implied volatility of M4S4 model is always different from zero. This means that a call option can never get a zero value.
Implied volatility patterns of the generated GP volatility models are compared across both moneyness and maturity, as was done in Rubinstein [
Implied volatility of the generated GP volatility and BS models against degree of moneyness for different times to maturity at the date 27/01/2003.
Figure
Volatility term structure of the generated GP volatility models against BS model for OTM call options (a), ATM call options (b), and ITM call options (c).
In contrast to the numerous studies relating models to volatility smiles, there has been relatively little research reported that relates model choice to the term structure of volatility (TSV). One reason for this is that the TSV is a far more complex phenomenon. While the smile has the same general shape for all maturities, the TSV can vary widely with the specific choice of strike price. Figure
Volatility surfaces of the generated GP volatility models against BS model for short-term OTM call options at 30/01/2003 (a), short-term ATM call options at 30/04/2003 (b), and short-term ITM call options at 20/03/2003 (c).
The dynamic properties of implied volatility time series have been studied in many markets by various authors. Most of these studies either focus on the term structure of ATM-implied volatilities or study separately implied volatility smiles for different maturities [
It is, therefore, interesting to see if the genetic models reproduce realistic instantaneous profiles for the surface. Figure
In this study, we have used GP to forecast implied volatility from the S&P500 index options. Based on the MSE total and out-of-sample as performance criteria, the generated GP volatility models M4S4, M4C4, and M6C6 can be considered to the best selected models. According to total and out-of-sample forecasting errors, the time series model M4S4 seems to be more accurate in forecasting-implied volatility than moneyness-time to maturity models M4C4 and M6C6. In terms of volatility patterns, the M4S4 model smiles the least for all maturity options and generates a quasiflat and symmetric implied volatility surface. Our results suggest some interesting issues for further investigation. First, the GP can be used to forecast-implied volatility of other models than BS model, notably stochastic volatility models and models with jump. Second, this work can be reexamined using data from individual stock options, American style index options, options on futures, currency, and commodity options. Third, the performance of the generated GP volatility models can be measured in terms of hedging. Finally, the GP can be extended to allow for dynamic selection techniques applied to the enlarged sample. We believe these extensions are of interest for application and will be object of our future works.
The authors are grateful to Giovanni Barone-Adesi for research assistance.