金融期权定价的随机模型
vanilla-option-pricing的Python项目详细描述
普通期权定价
一个简单的python包,实现了对金融期权定价的随机模型。
模型及其参数的理论背景与综合解释
可以发现的是论文快速校准了能源期权定价的两因素模型
作者:Emanuele Fabbiani、Andrea Marziali和Giuseppe de Nicolao
arXiv
安装
安装软件包的首选方法是使用pip, 但您也可以从源代码下载并安装软件包
使用pip安装软件包:
pip install vanilla_option_pricing
快速启动
让我们创建一个示例调用选项
fromdatetimeimportdatetime,timedeltafromvanilla_option_princing.optionimportVanillaOptionfromvanilla_option_princing.modelsimportBlackScholesfromvanilla_option_pricing.calibrationimportModelCalibrationoption=VanillaOption(spot=100,strike=101,dividend=0,date=datetime.today(),maturity=datetime.today()+timedelta(days=30),option_type='c',price=1,instrument='TTF')
我们可以计算隐含波动率并建立一个黑肖尔斯模型 有了它。当然,如果我们现在要求模特给这个选择定价,我们会 得到实物期权价格。
volatility=option.implied_volatility_of_undiscounted_pricemodel=BlackScholes(volatility).as_option_pricing_model()model_price=model.price_option_black(option)print(f'Actual price: {option.price}, model price: {model_price}')
我们还可以尝试根据 列出的选项。
data_set=[VanillaOption('TTF','c',date(2018,1,1),2,101,100,date(2018,2,1)),VanillaOption('TTF','p',date(2018,1,1),2,98,100,date(2018,2,1)),VanillaOption('TTF','c',date(2018,1,1),5,101,100,date(2018,5,31))]print(f'Implied volatilities: {[o.implied_volatility_of_undiscounted_price for o in data_set]}\n')model=BlackScholes(0.2).as_option_pricing_model()calibration=ModelCalibration(data_set)result,trained_model=calibration.calibrate_model(model)print(result)print(f'Calibrated implied volatility: {trained_model.parameters[0]}')