new Brazil(Brazil.Market.SETTLEMENT),
BusinessDayConvention.Unadjusted, BusinessDayConvention.Unadjusted,
DateGeneration.Rule.Backward, false);
// fixed coupons
final Leg cashflows =
new FixedRateLeg(schedule, new Actual360())
.withNotionals(faceAmount)
.withCouponRates(couponRates)
.withPaymentAdjustment(BusinessDayConvention.ModifiedFollowing).Leg();
// redemption
cashflows.add(new SimpleCashFlow(faceAmount, cashflows.last().date()));
final Bond bond = new Bond(settlementDays, new Brazil(Brazil.Market.SETTLEMENT),
faceAmount, cashflows.last().date(),
new Date(1,Month.January,2007), cashflows);
final double cachedPrice = prices[bondIndex];
final double price = faceAmount*bond.dirtyPrice(yield.rate(),