| Literature DB >> 35052061 |
Maciej Wysocki1, Robert Ślepaczuk2.
Abstract
In this paper, the performance of artificial neural networks in option pricing was analyzed and compared with the results obtained from the Black-Scholes-Merton model, based on the historical volatility. The results were compared based on various error metrics calculated separately between three moneyness ratios. The market data-driven approach was taken to train and test the neural network on the real-world options data from 2009 to 2019, quoted on the Warsaw Stock Exchange. The artificial neural network did not provide more accurate option prices, even though its hyperparameters were properly tuned. The Black-Scholes-Merton model turned out to be more precise and robust to various market conditions. In addition, the bias of the forecasts obtained from the neural network differed significantly between moneyness states. This study provides an initial insight into the application of deep learning methods to pricing options in emerging markets with low liquidity and high volatility.Entities:
Keywords: Black–Scholes–Merton model; artificial neural networks; implied volatility; index options; option pricing; supervised learning
Year: 2021 PMID: 35052061 PMCID: PMC8774783 DOI: 10.3390/e24010035
Source DB: PubMed Journal: Entropy (Basel) ISSN: 1099-4300 Impact factor: 2.524
Possible values of the hyperparameters investigated during the first stage.
| Parameter | Options or Range |
|---|---|
| Neurons (each layer) | 250, 500, 1000, 1500, 2500 |
| Batch Size | 250, 500, 1000, 1500, 2000, 2500 |
| Epochs | 15 |
| Dropout Rate | 0, 0.05, 0.1, 0.2 |
| Optimizer | RMSProp, Adam |
| Activation Function | ELU, ReLU, Softmax, Sigmoid |
Note: Values of hyperparameters checked in the first stage of NN architecture development.
Hyperparameters of the neural network framework.
| Parameter | Chosen Option or Value |
|---|---|
| Neurons (each layer) | 1000 |
| Batch Size | 1500 |
| Epochs | 15 |
| Dropout Rate | 0.1 |
| Optimizer | Adam |
| Activation Function | ReLU |
Note: The hyperparameters chosen as the optimal values from all the possibilities in Table 1.
Values of the hyperparameters investigated during the hyperparameters tuning.
| Parameter | Options or Range |
|---|---|
| Neurons (each layer) | 500, 1000, 1500, 2000 |
| Batch Size | 1000, 1500, 2000 |
| Dropout Rate | 0.05, 0.1, 0.15, 0.2, 0.25 |
| Optimizer | SGD, Adam, Adamax, Adagrad, Adadelta, Nadam |
| Activation Function | ReLU |
| Epochs | 5 |
| Initializer | Random Normal, Random Uniform, Glorot Normal, Glorot Uniform, Lecun Normal |
| Learning Rate | 0.0001, 0.005, 0.001, 0.005, 0.01 |
| β1 | 0.75, 0.8, 0.9, 0.95, 0.975 |
| β2 | 0.95, 0.975, 0.999, 0.9999 |
Note: Hyperparameters values for the tuning phase aiming to improve the performance of NN.
Hyperparameters of the neural network framework.
| Neurons | MAE | MSE |
|---|---|---|
| 500 | 0.0232028 | 0.0025026 |
| 1000 | 0.0232188 | 0.0025038 |
| 1500 | 0.0232206 | 0.0025054 |
| 2000 | 0.0232127 | 0.0025038 |
Note: Final values of the error metrics calculated for different numbers of nodes for the hyperparameters tuning. Other hyperparameters: batch size—1500; dropout rate—0.1; optimizer—Adam; activation function—ReLU; learning rate—0.001; initializer—none.
The batch size and error metrics evaluated after each training process.
| Batch Size | MAE | MSE |
|---|---|---|
| 1000 | 0.0231536 | 0.0024729 |
| 1500 | 0.0231796 | 0.0024737 |
| 2000 | 0.0231300 | 0.0024713 |
Note: Final values of the error metrics calculated for different batch sizes for the hyperparameters tuning. Other hyperparameters: neurons—500; dropout rate—0.1; optimizer—Adam; activation function—ReLU; learning rate—0.001; initializer—none.
The dropout rate and error metrics evaluated after each training process.
| Dropout Rate | MAE | MSE |
|---|---|---|
| 0.05 | 0.0232059 | 0.0025036 |
| 0.1 | 0.0232209 | 0.0025042 |
| 0.15 | 0.0232166 | 0.0025025 |
| 0.2 | 0.0232186 | 0.0025025 |
| 0.25 | 0.0232311 | 0.0025060 |
Note: Final values of the error metrics calculated for different dropout rates for the hyperparameters tuning. Other hyperparameters: neurons—500; batch size—1000; optimizer—Adam; activation function—ReLU; learning rate—0.001; initializer—none.
The optimizer and error metrics evaluated after each training process.
| Optimizer | MAE | MSE |
|---|---|---|
| SGD | 0.0235614 | 0.0025065 |
| Adam | 0.0232262 | 0.0025050 |
| Adamax | 0.0232267 | 0.0025074 |
| Adagrad | 0.0232103 | 0.0025060 |
| Adadelta | 0.0237524 | 0.0025160 |
| Nadam | 0.0232326 | 0.0025073 |
Note: Final values of the error metrics calculated for different optimizing methods for the hyperparameters tuning. Other hyperparameters: neurons—500; batch size—1000; dropout rate—0.2; activation function—ReLU; learning rate—0.001; initializer—none.
The initializer and error metrics evaluated after each training process.
| Initializer | MAE | MSE |
|---|---|---|
| Random Normal | 0.0232714 | 0.0025059 |
| Random Uniform | 0.0232260 | 0.0025062 |
| Glorot Normal | 0.0232198 | 0.0025041 |
| Glorot Uniform | 0.0232212 | 0.0025027 |
| Lecun Normal | 0.0232197 | 0.0025050 |
Note: Final values of the error metrics calculated for different initializers for the hyperparameters tuning. Other hyperparameters: neurons—500; batch size—1000; dropout rate—0.2; optimizer—Adam; activation function—ReLU; learning rate—0.001.
The learning rate, β1, β2, and error metrics evaluated after each training process.
| Learning Rate | β1 | β2 | MAE | MSE |
|---|---|---|---|---|
| 0.001 | 0.9 | 0.9999 | 0.0232107 | 0.0025051 |
| 0.005 | 0.8 | 0.9999 | 0.0232112 | 0.0025075 |
| 0.001 | 0.8 | 0.9999 | 0.0232116 | 0.0025121 |
| 0.001 | 0.8 | 0.95 | 0.0232172 | 0.0025096 |
| 0.001 | 0.9 | 0.975 | 0.0232194 | 0.0025064 |
Note: Values of error metric for 5 best runs of the NN with corresponding hyperparameters used in the run. Other hyperparameters are: neurons—500, batch size—1000, dropout rate—0.2, optimizer—Adam, activation function—ReLU, initializer—lecun normal.
Figure 1Error metrics estimated during the learning process with respect to the epochs. Values of the MAE and the MSE metrics calculated after every epoch of training the NN with the following hyperparameters: neurons—500; batch size—1000; dropout rate—0.2; optimizer—Adam; activation function—ReLU; learning rate—0.001; β1—0.9; β2—0.9999.
Summary statistics for selected variables.
| Mean | Standard Deviation | Minimum | Median | Maximum | |
|---|---|---|---|---|---|
| Option Price | 59.820 | 101.651 | 0.01 | 21.4 | 1580 |
| WIG20 Index | 2265.15 | 266.968 | 1327.64 | 2308.44 | 2932.62 |
| Strike Price | 2252.22 | 384.034 | 900 | 2275 | 3400 |
| Interest Rate | 0.027 | 0.013 | 0.016 | 0.017 | 0.058 |
| Dividend Rate | 0.029 | 0.011 | 0.011 | 0.030 | 0.060 |
| Time to Maturity | 0.352 | 0.330 | 0.000 | 0.250 | 1.460 |
| Historical Volatility | 0.1847 | 0.073 | 0.0675 | 0.1656 | 0.5087 |
Note: Statistics calculated for the Polish market in years 2009–2019. All options quoted on the WSE during that period are summarized.
Figure 2Histograms of the options prices and comparison of market and strike prices. (a) The histogram of option prices is strongly influenced by the accumulation of the observations near zero. (b) The typical strike prices are between 1800 and 2500.
Summary statistics for options concerning their moneyness.
| Type | Moneyness | Number of Options | Mean Price | Minimum Price | Maximum Price |
|---|---|---|---|---|---|
| Call | OTM | 35,888 | 14.83 | 0.01 | 256.60 |
| ATM | 25,259 | 59.40 | 0.01 | 400.00 | |
| ITM | 7138 | 265.30 | 30.00 | 1429.00 | |
| Put | OTM | 40,771 | 17.11 | 0.01 | 289.00 |
| ATM | 23,219 | 64.58 | 0.01 | 468.00 | |
| ITM | 7096 | 312.00 | 22.00 | 1580.1 |
Note: Summary statistics for all the options quoted on the WSE in years 2009–2019 with distinction between types and moneyness.
Cross-validation training and testing errors.
| Fold | 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|---|
| Train | MAE | 0.023221 | 0.023141 | 0.023278 | 0.023200 | 0.023331 |
| MSE | 0.002539 | 0.002448 | 0.002521 | 0.002524 | 0.002496 | |
| Test | MAE | 0.023335 | 0.023624 | 0.023052 | 0.023298 | 0.022861 |
| MSE | 0.002418 | 0.002795 | 0.002436 | 0.002441 | 0.002501 |
Note: Values of the error metrics calculated after training of the NN on a partial dataset and testing on the data left from the partition. The hyperparameters: neurons—500; batch size—1000; dropout rate—0.2; optimizer—Adam; activation function—ReLU; learning rate—0.001; β1—0.9; β2—0.9999.
Error metrics for the prices estimated using the BSM model.
| Type | Moneyness | MAE | MSE | RMSE | MAPE |
|---|---|---|---|---|---|
| Call | OTM |
| 436.624 | 20.896 | 1.2445 |
| ATM | 13.470 | 422.868 | 20.564 | 0.3764 | |
| ITM | 19.709 | 766.129 | 27.679 |
| |
| Put | OTM |
| 184.029 | 13.566 | 0.6277 |
| ATM | 12.779 | 409.507 | 20.236 | 0.2733 | |
| ITM | 24.304 | 1197.690 | 34.608 |
|
Note: The values of the error metrics for prices obtained using the BSM model, divided between types and moneyness of the options in an in-sample period.
Error metrics for the prices estimated using the NN model.
| Type | Moneyness | MAE | MSE | RMSE | MAPE |
|---|---|---|---|---|---|
| Call | OTM |
| 758.021 | 27.532 | 16.758 |
| ATM | 39.516 | 2967.675 | 54.476 | 2.3205 | |
| ITM | 242.46 | 78,512.48 | 280.201 |
| |
| Put | OTM |
| 374.482 | 19.351 | 10.508 |
| ATM | 44.773 | 3683.993 | 60.696 | 1.9122 | |
| ITM | 282.897 | 113,397 | 336.745 |
|
Note: The values of the error metrics for prices obtained using the BSM model divided between types and moneyness of the options within the in-sample period
Error metrics for the BSM model prices.
| Type | Moneyness | MAE | MSE | RMSE | MAPE |
|---|---|---|---|---|---|
| Call | OTM |
| 404.216 | 20.105 | 1.234 |
| ATM | 13.835 | 445.259 | 21.101 | 0.3634 | |
| ITM | 20.173 | 839.290 | 28.970 |
| |
| Put | OTM |
| 201.196 | 14.184 | 0.6317 |
| ATM | 13.047 | 409.144 | 20.227 | 0.2927 | |
| ITM | 23.863 | 1156.281 | 34.004 |
|
Note: The values of the error metrics for prices obtained using the BSM model divided between types and moneyness of the options in the in-sample period
Error metrics for the neural network out-of-sample prices.
|
|
|
|
|
|
|
| Call | OTM |
| 767.184 | 27.698 | 17.124 |
| ATM | 39.781 | 2937.782 | 54.201 | 2.135 | |
| ITM | 246.013 | 80,779.38 | 284.217 |
| |
| Put | OTM |
| 381.378 | 19.529 | 10.505 |
| ATM | 44.745 | 3670.09 | 60.581 | 1.974 | |
| ITM | 277.419 | 107,795.5 | 328.322 |
|
Note: The values of the error metrics divided between types and moneyness of the options prices obtained using the NN with the following hyperparameters: neurons—500; batch size—1000; dropout rate—0.2; optimizer—Adam; activation function—ReLU; learning rate—0.001; β1—0.9; β2—0.9999.
Figure 3The BSM model prices and market prices along with NN model prices and market prices with curve y = x. The model prices from the BSM model from the out-of-sample data and the model prices from the NN from the out-of-sample data with the corresponding market prices revealing the bias of the models. (a) Prices from BSM model. (b) Prices from the NN model.