38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|