public CapletVarianceCurve( Date referenceDate, List<Date> dates, List<double> capletVolCurve, DayCounter dayCounter) : base(referenceDate, new Calendar(), BusinessDayConvention.Following, new DayCounter()) { blackCurve_=new BlackVarianceCurve(referenceDate, dates, capletVolCurve, dayCounter, false); }
protected GeneralizedBlackScholesProcess GetStochasticProcess(DateTime d, MarkitSurface marketData) { // Spot level Handle <Quote> spotLevel = new Handle <Quote>(new SimpleQuote(marketData.impliedSpot)); // Risk free rate (term structure) Handle <YieldTermStructure> riskFreeTS = marketData.riskFree_FwdCrv(); // Dividend yield (term structure) Handle <YieldTermStructure> dividendTS = marketData.dividend_FwdCrv(); // Volatility ATM Forward (term structure) BlackVarianceCurve atmf_vol_curve = marketData.ATMF_Vol_TS(d); Handle <BlackVolTermStructure> volatilityTS = new Handle <BlackVolTermStructure>(atmf_vol_curve); // Return return(new GeneralizedBlackScholesProcess(spotLevel, dividendTS, riskFreeTS, volatilityTS)); }
// ************************************ // EXTRACTING ATMF BLACK IMPL VOL CURVE // ************************************ public BlackVarianceCurve ATMF_Vol_TS(DateTime valuationDate) //public ZeroRateTermStructure riskFree_TS(DateTime valuationDate) { List <Date> dates = new List <Date>(); List <double> atmf_vols = new List <double>(); double fwd_moneyness = 1.0; foreach (DateTime d in data.Keys) { // Setting date dates.Add(d); // Setting forward fwd_moneyness = forward[d] / impliedSpot; atmf_vols.Add(data[d].GetVolatility(fwd_moneyness)); } BlackVarianceCurve crv = new BlackVarianceCurve(informationDate, dates, atmf_vols, _dayCounter, false); return(crv); }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(BlackVarianceCurve obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(BlackVarianceCurve obj) { return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; }