示例#1
0
        public void BasicBondTest()
        {
            var bond = new Bond(
                id: "bond",
                startDate: new Date(2016, 3, 15),
                maturityDate: new Date(2019, 3, 15),
                notional: 100.0,
                currency: CurrencyCode.CNY,
                coupon: new FixedCoupon(0.05),
                calendar: CalendarImpl.Get("chn"),
                paymentFreq: Frequency.SemiAnnual,
                stub: Stub.ShortEnd,
                accrualDayCount: new Act365(),
                paymentDayCount: new Act365(),
                accrualBizDayRule: BusinessDayConvention.ModifiedFollowing,
                paymentBizDayRule: BusinessDayConvention.ModifiedFollowing,
                settlementGap: new DayGap("+0D"),
                bondTradingMarket: TradingMarket.ChinaInterBank);

            var engine = new BondEngineCn(new BondYieldPricerCn());
            var market = new MarketCondition(
                x => x.ValuationDate.Value = new Date(2018, 8, 1),
                x => x.MktQuote.Value      =
                    new Dictionary <string, Tuple <PriceQuoteType, double> >
            {
                { "bond", Tuple.Create(PriceQuoteType.Clean, 100.0) }
            }
                );
            var result = engine.Calculate(bond, market, PricingRequest.Ytm);
        }
示例#2
0
 public BondFuturesYieldPricer(BondFutures bondFuture, IMarketCondition market)
 {
     _qbBondEngine = new BondEngineCn(new BondYieldPricerCn());
     _bondFuture   = bondFuture;
     _market       = market;
 }