setPricingEngine 导入 pyql
setPricingEngine import pyql
european_option = VanillaOption(payoff, exercise)
spot_handle = SimpleQuote(spot_price)
flat_ts = FlatForward(calculation_date, risk_free_rate, day_count)
dividend_yield = FlatForward(calculation_date, dividend_rate, day_count)
flat_vol_ts = BlackConstantVol(calculation_date, cal, volatility, day_count)
bsm_process = BlackScholesMertonProcess(spot_handle,
dividend_yield,
flat_ts,
flat_vol_ts)
european_option.setPricingEngine(AnalyticEuropeanEngine(bsm_process))
报错
File "qlexam.py", line 63, in <module>
european_option.setPricingEngine(AnalyticEuropeanEngine(bsm_process))
AttributeError: 'quantlib.instruments.option.VanillaOption' object has no attribute 'setPricingEngine'
我需要导入什么?
您不需要额外导入。错误的原因是 pyql 开发人员导出了一些具有不同名称的 QuantLib,以便遵循 PEP 8 并在 Python 中更加地道。正确的叫法是
european_option.set_pricing_engine(AnalyticEuropeanEngine(bsm_process))
从 this pyql example 可以看出。
european_option = VanillaOption(payoff, exercise)
spot_handle = SimpleQuote(spot_price)
flat_ts = FlatForward(calculation_date, risk_free_rate, day_count)
dividend_yield = FlatForward(calculation_date, dividend_rate, day_count)
flat_vol_ts = BlackConstantVol(calculation_date, cal, volatility, day_count)
bsm_process = BlackScholesMertonProcess(spot_handle,
dividend_yield,
flat_ts,
flat_vol_ts)
european_option.setPricingEngine(AnalyticEuropeanEngine(bsm_process))
报错
File "qlexam.py", line 63, in <module>
european_option.setPricingEngine(AnalyticEuropeanEngine(bsm_process))
AttributeError: 'quantlib.instruments.option.VanillaOption' object has no attribute 'setPricingEngine'
我需要导入什么?
您不需要额外导入。错误的原因是 pyql 开发人员导出了一些具有不同名称的 QuantLib,以便遵循 PEP 8 并在 Python 中更加地道。正确的叫法是
european_option.set_pricing_engine(AnalyticEuropeanEngine(bsm_process))
从 this pyql example 可以看出。