30 lines
1.2 KiB
C#
30 lines
1.2 KiB
C#
namespace YLErp.Modules.SwapModule.Accrual;
|
|
|
|
/// <summary>
|
|
/// 融资腿在某一计息日生效的利率(不可变值对象)。
|
|
///
|
|
/// <para>计息只认一个数:<see cref="AllInRate"/>(当日生效年利率)。
|
|
/// 固定腿与浮动腿的区别是"取率"环节的事,已在 <c>SwapDealService.CalcDailySimpleInterestByEod</c>
|
|
/// 收敛成 all-in 数;本结构不再为腿型背负四个字段——利息计算不是互换特有的,
|
|
/// 固定利率就是一个 <see cref="decimal"/>。</para>
|
|
/// </summary>
|
|
public readonly struct FundingLegRate
|
|
{
|
|
/// <summary>当日生效年利率(all-in)。固定腿=固定利率;浮动腿=加点利差+指数定盘。</summary>
|
|
public decimal Rate { get; }
|
|
|
|
/// <summary>计息用的当日生效年利率。即 <see cref="Rate"/>。</summary>
|
|
public decimal AllInRate => Rate;
|
|
|
|
private FundingLegRate(decimal rate)
|
|
=> Rate = rate;
|
|
|
|
/// <summary>构造固定腿利率。</summary>
|
|
public static FundingLegRate Fixed(decimal fixedRate)
|
|
=> new(fixedRate);
|
|
|
|
/// <summary>构造浮动腿利率(all-in = 加点利差 + 指数定盘)。</summary>
|
|
public static FundingLegRate Floating(decimal spread, decimal indexFixing)
|
|
=> new(spread + indexFixing);
|
|
}
|