コード例 #1
0
        //------------------------------------------------------------------------------------------------
        public SpreadSeriesBuilder(string metric, FuturesSeriesBuilder rawfuturesBuilder, SwapCurveSeriesBuilder swapBuilder,
            Dictionary<string, TimeSeriesBondStatic> bondStatics, SpreadConventions conventions, List<DateTime> holidays=null)
        //------------------------------------------------------------------------------------------------
        {

            if (holidays == null)
            {
                holidays = new List<DateTime>();
            }

            // Setup Everything
            var futuresBuilder = new FuturesSeriesBuilder(rawfuturesBuilder); //use copy constructor
            FuturesPrices = futuresBuilder.RawFuturesPrices;
            FuturesStatic = futuresBuilder.FuturesStatic;

            BondStatic = bondStatics;
            CombinedStatic = SpreadSeriesBuilder.combineFuturesAndBondStatic(BondStatic, FuturesStatic);

            if (conventions.bForecastCurve)
            {
                ForecastCurves = swapBuilder.ForecastCurves;
                DiscountCurves = swapBuilder.DiscountCurves;
            }
            else
            {
                ForecastCurves = swapBuilder.DiscountCurves;
                DiscountCurves = swapBuilder.DiscountCurves;
            }

            SpreadMetric_   = metric;
            Conv_           = conventions;

            Holidays_       = holidays;

            var rawSpreads = computeFuturesSpreads();

            // Now use this to get rolling futures too
            futuresBuilder.RawFuturesPrices = rawSpreads;
            futuresBuilder.interpolateRawPriceFrame();
            SpreadValues = futuresBuilder.getCombinedResults();

            FuturesBuilder_ = futuresBuilder;

        }
コード例 #2
0
         //---------------------------------------------------------------------------------------------------------
         //[Test]
         public void FuturesSeriesPerfectRun()
         //---------------------------------------------------------------------------------------------------------
         {
             List<String> tickers = new List<string>() { "TUZ15", "FV.Front", "TUH6", "TUM6", "TUU6", "TY.Back" };
             DateTime start = new DateTime(2015,11,1);
             DateTime end = new DateTime(2016, 3, 11);
             string calendarCode = "USNY";
             string futuresStaticMoniker = "BLIM.Futures.US.Static";
             string carbonEnv = "PRD";
             FuturesSeriesBuilder.RollMethods rollMthd = FuturesSeriesBuilder.RollMethods.LastTradeDate;


             var seriesBuilder = new FuturesSeriesBuilder(tickers, start, end, calendarCode, futuresStaticMoniker, mCarbonClient,
                                                            carbonEnv, rollMthd);

             Frame<string, string> futStatic = seriesBuilder.FuturesStatic;

             futStatic.Print();

             Assert.IsFalse(futStatic.IsEmpty);

             // Set Rolling prices
             seriesBuilder.setRollingFuturesPrices();
             seriesBuilder.RollingFuturesData.Print();


             // Get back the combined df
             Console.WriteLine("");
             Console.WriteLine("#--------------------------");
             Console.WriteLine("Output line");
             Console.WriteLine("#--------------------------");
             Console.WriteLine("");
             var combined = seriesBuilder.getCombinedResults();
             combined.Print();


         }