少し設定が必要です。便宜上、名前が競合しない限り、すべてをインポートすることをお勧めします。
from QuantLib import *
次に、行使とペイオフが必要なオプションを作成します。
exercise = EuropeanExercise(Date(3,August,2011))
payoff = PlainVanillaPayoff(Option.Call, 100.0)
option = EuropeanOption(payoff,exercise)
(満期までの時間ではなく、行使日が必要になることに注意してください。)
価格を設定したい場合でも、インプライド ボラティリティを取得したい場合でも、ブラック-ショールズ プロセスを設定する必要があります。たとえば、無リスク金利の値をそのまま渡すことはできないため、多少の機械が必要です。完全な曲線が必要になるため、フラットな曲線を作成してハンドルでラップします。配当利回りとボリュームについても同様です。基になる値は引用符で囲みます。(すべてのオブジェクトが何であるかを説明しているわけではありません。必要な場合はコメントしてください。)
S = QuoteHandle(SimpleQuote(100.0))
r = YieldTermStructureHandle(FlatForward(0, TARGET(), 0.03, Actual360()))
q = YieldTermStructureHandle(FlatForward(0, TARGET(), 0.01, Actual360()))
sigma = BlackVolTermStructureHandle(BlackConstantVol(0, TARGET(), 0.20, Actual360()))
process = BlackScholesMertonProcess(S,q,r,sigma)
(ボラティリティはインプライド ボリュームの計算には実際には使用されませんが、とにかく必要です。)
ここで、インプライド ボラティリティの場合は次のように呼び出します。
option.impliedVolatility(11.10, process)
および価格については、次のとおりです。
engine = AnalyticEuropeanEngine(process)
option.setPricingEngine(engine)
option.NPV()
他の機能を使用することもできますが (後で変更できるように見積もりに料金をラップするなど)、これで開始できます。