/ / पायथन रनटाइम के लिए क्वांटलिब त्रुटि: वेगा प्रदान नहीं किया गया - पायथन, पायथन-3.x, क्वांटलिब, क्वांटलिब-स्विग

पायथन रनटाइम के लिए क्वांटलिब: वेगा प्रदान नहीं किया गया - पायथन, पायथन-3.x, क्वांटलिब, क्वांटलिब-स्विग

द्विपदीय मूल्य निर्धारण इंजन और कॉक्स-रूबिनस्टीन मॉडल के साथ एक सादे वेनिला अमेरिकी विकल्प का मूल्य निर्धारण। वेगा पुनर्प्राप्त करने का प्रयास करते समय, मुझे विषय त्रुटि प्राप्त होती है:

Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/opt/conda/lib/python3.6/site-packages/QuantLib.py", line 10506, in vega
return _QuantLib.VanillaOption_vega(self)
RuntimeError: vega not provided

इसके बावजूद vega एक विधि होने के नाते american_option:

>>> dir(american_option)  # scroll to the right -->
["NPV", "__class__", "__del__", "__delattr__", "__deref__", "__dict__", "__dir__", "__doc__", "__eq__", "__format__", "__ge__", "__getattribute__", "__gt__", "__hash__", "__init__", "__init_subclass__", "__le__", "__lt__", "__module__", "__ne__", "__new__", "__nonzero__", "__reduce__", "__reduce_ex__", "__repr__", "__setattr__", "__sizeof__", "__str__", "__subclasshook__", "__swig_destroy__", "__weakref__", "asObservable", "delta", "dividendRho", "errorEstimate", "freeze", "gamma", "impliedVolatility", "isExpired", "priceCurve", "recalculate", "rho", "setPricingEngine", "strikeSensitivity", "theta", "thetaPerDay", "this", "thisown", "unfreeze", "vega"]

यहां कोड है जो कई ऑनलाइन उदाहरणों पर आधारित है:

>>> from QuantLib import *
>>> maturity_date = Date(15, 1, 2016)
>>> spot_price = 127.62
>>> strike_price = 130
>>> volatility = 0.20 # the historical vols for a year
>>> dividend_rate =  0.0163
>>> option_type = Option.Call
>>> risk_free_rate = 0.001
>>> day_count = Actual365Fixed()
>>> calendar = UnitedStates()
>>> calculation_date = Date(8, 5, 2015)
>>> Settings.instance().evaluationDate = calculation_date
>>> payoff = PlainVanillaPayoff(option_type, strike_price)
>>> settlement = calculation_date
>>> am_exercise = AmericanExercise(settlement, maturity_date)
>>> american_option = VanillaOption(payoff, am_exercise)
>>> spot_handle = QuoteHandle(
...             SimpleQuote(spot_price)
...         )
>>> flat_ts = YieldTermStructureHandle(
...     FlatForward(calculation_date,
...                 risk_free_rate,
...                 day_count)
... )
>>> dividend_yield = YieldTermStructureHandle(
...     FlatForward(calculation_date,
...                 dividend_rate,
...                 day_count)
... )
>>> flat_vol_ts = BlackVolTermStructureHandle(
...     BlackConstantVol(calculation_date,
...                      calendar,
...                      volatility,
...                      day_count)
... )
>>> bsm_process = BlackScholesMertonProcess(spot_handle,
...                                         dividend_yield,
...                                         flat_ts,
...                                         flat_vol_ts)
>>>
>>>
>>> binomial_engine = BinomialVanillaEngine(bsm_process, "crr", 100)
>>> american_option.setPricingEngine(binomial_engine)
>>> print(american_option.vega())

संस्करण:

>>> import QuantLib
>>> print(QuantLib.__version__)
1.11

Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49)

सवाल यह है कि वेगा क्यों प्रदान नहीं किया जाता है? त्रुटि क्या हो रही है?

उत्तर:

उत्तर № 1 के लिए 1

The VanillaOption वर्ग घोषित vega विधि है, लेकिन बाद केवल एक परिणाम वापसी अगर चुना इंजन की गणना कर सकते हैं ।

सामांय में, इंजन है कि एक विश्लेषणात्मक फार्मूला का उपयोग करने के लिए यूनानियों सस्ते लौटने में सक्षम हैं, क्योंकि वे भी एक विश्लेषणात्मक अभिव्यक्ति है; एक द्विपद पेड़ पर आधारित एक इंजन, एक तुम "का उपयोग कर पुनः की तरह, doesn" टी एक सरल तरीका है वेगा की गणना है ।आदेश में यह प्रदान करने के लिए, यह एक महंगा आपरेशन प्रदर्शन करना चाहिए (है कि, एक परेशान अस्थिरता के साथ पुनर्परिकलन और वेगा संख्यात्मक मिलता है) और इसलिए यह बाहर जमानत और यह आप के लिए छोड़ देता है के लिए महंगी गणना स्पष्ट रूप से करते हैं ।

इस मामले में, आप एक नए विकल्प की कीमत की गणना, अस्थिरता में वृद्धि से वेगा की गणना कर सकते हैं, और व्युत्पंन संख्यात्मक गणना ।

मैं इस पर और अधिक विस्तृत और कुछ बुनियादी उदाहरण प्रदान यह विडियो.