Python

QuantLib-Python:將期權的 NPV 拆分為內在和時間

  • May 16, 2018

我現在正在閱讀 Goutham Balaraman 和 Luigi Ballabio 的“食譜”。順便說一下,對 QuantLib-Python 的一個很好的介紹和一個很好的起點 :-)

在第四部分中,有以下範例為 Black&Scholes 的簡單期權定價:

from QuantLib import *

today = Date(7, March, 2014)
Settings.instance().evaluationDate = today

# The Instrument
option = EuropeanOption( PlainVanillaPayoff(Option.Call, 100.0),
                        EuropeanExercise(Date(7, June, 2014)))

# The Market
u = SimpleQuote(100.0)      # set todays value of the underlying
r = SimpleQuote(0.01)       # set risk-free rate 
sigma = SimpleQuote(0.20)   # set volatility
riskFreeCurve = FlatForward(0, TARGET(), QuoteHandle(r), Actual360())
volatility = BlackConstantVol(0, TARGET(), QuoteHandle(sigma), Actual360())

# The Model
process = BlackScholesProcess( QuoteHandle(u), 
                              YieldTermStructureHandle(riskFreeCurve),
                              BlackVolTermStructureHandle(volatility))

# The Pricing Engine
engine = AnalyticEuropeanEngine(process)

# The Result
option.setPricingEngine(engine)
print( "NPV: ", option.NPV() )

程式碼吐出期權的 NPV。

在大學裡,我曾經了解到期權的價值可以分為“內在”和“時間”部分。是否可以使用 QouantLib-Python 實現這一目標?

NPV_intrinsic = max([ 0 , u.value() - option.getStrike() ]) 

以上不起作用,因為’option.getStrike()‘不存在:-(

非常感謝!

您要查找的方法是option.payoff(),它將期權的收益 P 作為函式對象返回;內在價值將是P(u.value())

但是,該方法在 C++ 中可用,但尚未導出到 Python。我建議您在https://github.com/lbalabio/QuantLib-SWIG/issues上打開一個關於此的問題,以便開發人員可以獲取它。

引用自:https://quant.stackexchange.com/questions/39835