Пример #1
0
        private static void Startup()
        {
            _config = new ConfigurationBuilder()
                      .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                      .AddEnvironmentVariables()
                      .Build();

            _fileForward = new ForwardEngine(_config["baseUrl"]);
            _printer     = new Printer();
        }
Пример #2
0
        static void SendFromFile()
        {
            Console.WriteLine("Sending from file...");
            var fileForward = new ForwardEngine("https://jsonplaceholder.typicode.com");

            var response = fileForward.PostBytes("/photos", "./Assets/raccoon_image.png");
            var result   = response.Result; //I know there's better ways to handle this.

            Console.WriteLine($"Result: {result.StatusCode} - {result.ReasonPhrase}");
        }
Пример #3
0
        static void SendByteArray()
        {
            Console.WriteLine("Sending byte array...");
            var fileForward = new ForwardEngine("https://jsonplaceholder.typicode.com");

            var fileContent = new byte[200];

            var response = fileForward.PostBytes("/photos", fileContent);
            var result   = response.Result; //I know there's better ways to handle this.

            Console.WriteLine($"Result: {result.StatusCode} - {result.ReasonPhrase}");
        }
Пример #4
0
        public void BondForwardTest()
        {
            var bond = new Bond(
                "010000",
                new Date(2013, 2, 25),
                new Date(2015, 2, 25),
                100,
                CurrencyCode.CNY,
                new FixedCoupon(0.0375),
                CalendarImpl.Get("chn_ib"),
                Frequency.SemiAnnual,
                Stub.LongEnd,
                new ActActIsma(),
                new Act365(),
                BusinessDayConvention.None,
                BusinessDayConvention.None,
                null,
                TradingMarket.ChinaInterBank
                );
            var bondForward = new Forward <Bond>(
                new Date(2013, 5, 28),
                new Date(2013, 8, 28),
                100.0,
                98.57947065,
                bond,
                CurrencyCode.CNY
                );

            var referenceDate = new Date(2013, 8, 23);
            var yieldCurve    = new YieldCurve(
                "中债国债收收益率曲线",
                referenceDate,
                new[]
            {
                Tuple.Create((ITerm) new Term("1D"), 0.035),
                Tuple.Create((ITerm) new Term("1Y"), 0.035)
            },
                BusinessDayConvention.ModifiedFollowing,
                new Act365(),
                CalendarImpl.Get("chn_ib"),
                CurrencyCode.CNY,
                Compound.Simple,
                Interpolation.CubicHermiteMonotic,
                YieldCurveTrait.SpotCurve
                );

            var market = new MarketCondition
                         (
                x => x.ValuationDate.Value = referenceDate,
                x => x.MktQuote.Value      = new Dictionary <string, Tuple <PriceQuoteType, double> > {
                { "010000", Tuple.Create(PriceQuoteType.Dirty, 99.71798177) }
            },
                x => x.DiscountCurve.Value           = yieldCurve,
                x => x.FixingCurve.Value             = yieldCurve,
                x => x.RiskfreeCurve.Value           = yieldCurve,
                x => x.UnderlyingDiscountCurve.Value = yieldCurve,
                x => x.HistoricalIndexRates.Value    = new Dictionary <IndexType, SortedDictionary <Date, double> >()
                         );

            var bondengine = new BondEngine();
            var zeroSpread = bondengine.Calculate(bond, market, PricingRequest.ZeroSpread).ZeroSpread;
            var engine     = new ForwardEngine <Bond>();
            var result     = engine.Calculate(bondForward, market, PricingRequest.Pv);

            Assert.AreEqual(-0.68888788, result.Pv, 1e-8);
        }