private Date GetSpotDate(Date startDate, FxOption fxOption) { return(MarketExtensions.GetFxSpotDate(startDate, fxOption.UnderlyingFxSpotSettlement, fxOption.FgnCcy, fxOption.DomCcy, fxOption.FgnCalendar, fxOption.DomCalendar)); }
protected FxSpot CreateFxSpot(RateMktData rateMktData) { var definition = (Definition as InstrumentCurveDefinition); var fgnCcy = definition.BaseCurveDefinition.CurveConvention.Currency.ToCurrencyCode(); var domCcy = definition.CurveConvention.Currency.ToCurrencyCode(); if (domCcy == fgnCcy) { return(null); } var fgnCalendar = CalendarImpl.Get(definition.BaseCurveDefinition.CurveConvention.Calendar); var domCalendar = CalendarImpl.Get(definition.CurveConvention.Calendar); var spotDate = MarketExtensions.GetFxSpotDate( Market.ReferenceDate, new DayGap(rateMktData.Tenor), fgnCcy, domCcy, fgnCalendar, domCalendar ); return(new FxSpot( Market.ReferenceDate, spotDate, rateMktData.Rate, domCalendar, domCcy, 1.0, fgnCalendar, fgnCcy, rateMktData.Rate, domCcy )); }