VanillaSwap models simple swaps, so it doesn't have a lot of bells and whistles. For more control, you can create the two legs separately and use the Swap class. In your case: fixed_leg = ql.FixedRateLeg(fixedSchedule, fixedLegDayCount, [notional], [fixedRate]) floating_leg = ql.IborLeg([notional], floatSchedule, floatIndex, floatLegDayCount, ...


Worth taking a look at this piece: nice, concise, clear and intuitive description of carry & roll.

Only top voted, non community-wiki answers of a minimum length are eligible