QuantLib XL подразумеваемая волатильность - PullRequest
0 голосов
/ 29 апреля 2019

Я использую QuantLib для оценки различных опционов на акции.Я использую как Python, так и QuantLib XL.В Python легко создать опцию, создать процесс Блэка-Шоулза и затем рассчитать либо цену, либо рассчитать подразумеваемую волатильность по цене.

Просто:

from QuantLib import *

exercise = EuropeanExercise(Date(3,August,2019))
payoff = PlainVanillaPayoff(Option.Call, 105.0)
option = EuropeanOption(payoff,exercise)


#spot
S = QuoteHandle(SimpleQuote(100.0))
#risk free
r = YieldTermStructureHandle(FlatForward(0, TARGET(), 0.03, 
                              Actual360()))
#dividend
q = YieldTermStructureHandle(FlatForward(0, TARGET(), 0.01, 
                              Actual360()))
#vol handle
sigma = BlackVolTermStructureHandle(BlackConstantVol(0, 
                                     TARGET(), 0.20, 
                                     Actual360()))
#BS process    
process = BlackScholesMertonProcess(S,q,r,sigma)

#Now calculate implied volatility
option.impliedVolatility(25.0, process)

#Alternatively, 
engine = AnalyticEuropeanEngine(process)
option.setPricingEngine(engine)
option.NPV()

Это может бытьсделано в XL аналогичным образом, используя =qlGeneralizedBlackScholesProcess().Ценообразование и греки просты, используя =qlInstrumentNPV() и qlVega() и т. Д. Однако, неясно, как вы рассчитываете подразумеваемую волатильность из цены.Каков наилучший способ сделать это?

...