/// <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!"); }
 }
Beispiel #2
0
        /// <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());
            }
        }
Beispiel #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="futuresPrefix"></param>
 public FuturesPrefixImmMonthCodeAndYear(RateFutureAssetAnalyticModelIdentifier futuresPrefix)
 {
     FuturesPrefix = futuresPrefix;
     ImmMonthCode  = null;
     Year          = 0;
 }