如何计算 C# 中的 Macauley 修改持续时间?

how to calculate Macauley modified duration in C#?

我想用 C# 实现这个公式。

Excel

中使用的 MDURATION 公式

=MDURATION(43860,44233,0.2,0.19,2,3)

有这方面的功能或包吗?

您可以使用 NuGet Package: ExcelFinancialFunctions:

using Excel.FinancialFunctions;


DateTime start = new DateTime(1900, 01, 01);
double modifiedDuration = Financial.MDuration(
    start.AddDays(43860), 
    start.AddDays(44233), 
    0.2, 
    0.19,
    (Frequency)2, 
    (DayCountBasis)3);