/// <summary> /// /// </summary> /// <param name="futuresPrefix"></param> /// <param name="immMonthCode"></param> /// <param name="year"></param> public FuturesPrefixImmMonthCodeAndYear(string futuresPrefix, string immMonthCode, string year) { try { FuturesPrefix = EnumHelper.Parse <RateFutureAssetAnalyticModelIdentifier>(futuresPrefix); ImmMonthCode = immMonthCode; Year = int.Parse(year); } catch { throw new Exception("This is not a valid futures code!"); } }
/// <summary> /// Gets the appropriate exchange calendar class for the contract defined. /// </summary> /// <param name="futuresCode">Currently defined for: ED, ER, RA, BAX, L, ES, EY, HR, IR, IB and W. The expiry must be concatenated. </param> /// <returns></returns> public static ILastTradingDate Parse(RateFutureAssetAnalyticModelIdentifier futuresCode) { switch (futuresCode) { case RateFutureAssetAnalyticModelIdentifier.ED: case RateFutureAssetAnalyticModelIdentifier.ER: case RateFutureAssetAnalyticModelIdentifier.ES: case RateFutureAssetAnalyticModelIdentifier.EY: return(new SecondWednesdayPlusFive()); case RateFutureAssetAnalyticModelIdentifier.W: case RateFutureAssetAnalyticModelIdentifier.CER: case RateFutureAssetAnalyticModelIdentifier.L: case RateFutureAssetAnalyticModelIdentifier.RA: case RateFutureAssetAnalyticModelIdentifier.LME: return(new LastTradingDate()); case RateFutureAssetAnalyticModelIdentifier.ZB: return(new FirstWednesdayOffsetNine()); case RateFutureAssetAnalyticModelIdentifier.IR: return(new SecondFriday()); case RateFutureAssetAnalyticModelIdentifier.BAX: return(new SecondWednesdayPlusFive()); case RateFutureAssetAnalyticModelIdentifier.HR: return(new SecondTuesday()); case RateFutureAssetAnalyticModelIdentifier.B: return(new FirstDayLessFifteen()); case RateFutureAssetAnalyticModelIdentifier.IB: return(new LastDayOfTheMonth()); default: return(new LastTradingDate()); } }
/// <summary> /// /// </summary> /// <param name="futuresPrefix"></param> public FuturesPrefixImmMonthCodeAndYear(RateFutureAssetAnalyticModelIdentifier futuresPrefix) { FuturesPrefix = futuresPrefix; ImmMonthCode = null; Year = 0; }