public static AsianBasisSwap CreateBulletBasisSwap(DateTime payFixing, DateTime recFixing, double strike, string assetIdPay, string assetIdRec, Currency currency, double notionalPay, double notionalRec) { var payDate = payFixing.Max(recFixing); var swapPay = new Forward { AssetId = assetIdPay, ExpiryDate = payFixing, PaymentDate = payDate, Notional = notionalPay, Strike = strike, }.AsBulletSwap(); var swapRec = new Forward { AssetId = assetIdRec, ExpiryDate = recFixing, PaymentDate = payDate, Notional = notionalRec, Strike = 0.0, }.AsBulletSwap(); var swap = new AsianBasisSwap { PaySwaplets = new[] { swapPay }, RecSwaplets = new[] { swapRec }, }; return(swap); }
public static AsianBasisSwap CreateTermAsianBasisSwap(DateTime start, DateTime end, double strike, string assetIdPay, string assetIdRec, Calendar fixingCalendarPay, Calendar fixingCalendarRec, DateTime payDate, Currency currency, Frequency spotLagPay = new Frequency(), Frequency spotLagRec = new Frequency(), double notionalPay = 1, double notionalRec = 1, DateGenerationType fixingDateType = DateGenerationType.BusinessDays) { var swapPay = CreateTermAsianSwap(start, end, -strike, assetIdPay, fixingCalendarPay, payDate, currency, TradeDirection.Long, spotLagPay, notionalPay); var swapRec = CreateTermAsianSwap(start, end, 0, assetIdRec, fixingCalendarRec, payDate, currency, TradeDirection.Short, spotLagRec, notionalRec); var swap = new AsianBasisSwap { PaySwaplets = new [] { swapPay }, RecSwaplets = new [] { swapRec }, }; return(swap); }