using Qdp.Pricing.Library.Options.Products.Autocall.Snowball; using YLErp.Modules.CalculationModule; namespace YLErp.Modules.TradeModule { [TestClass] public class TradeSnowballBLLTest : UnitTestBase { [TestMethod] public void Test1() { var db = DbContextFactory.GetYLDbContext(); var tradeObj = db.trade.AsNoTracking().FirstOrDefault(n => n.TradeNumber == "CW20180051OP220701049X"); if (tradeObj == null) { throw new ServiceException("没有找到交易数据"); } BLL.tradeBLL.SetFieldsByTradeType(tradeObj); var optionTrade = QdpTradeBuilder.GetSnowballOptionTrade(tradeObj, tradeObj.trade_snowball , new OptionTradeParamRequest(BLL.valuedateBLL.SysRiskFreeRate()) { }); var snowball = (SimpleSnowball)optionTrade.Instrument; var CouponPayment = snowball.CouponPayment(tradeObj.ExerciseDate.Value, includeStartDate: tradeObj.trade_snowball.CouponIncludeStartDate == true && tradeObj.trade_snowball.CouponDayCount != "Monthly"); Assert.AreEqual(CouponPayment, 1.1, 0.1); } } }