关于国债的一些计算: 应计利息
应计利息
给定一只券,一个日期(必须在[IssueDate,MaturityDate]范围内)
如果时间点存在于付息日(包括IssueDate),此时应计利息为0 (因为此时会由券的发行方付息,所以不需要计入买卖双方的成本)
否则:
1.计算 arg_date(一个日期)的前后2个付息日,记录为 prev , next
2.计算每次付息日的利率: Coupon/Frequency 记为c
3.计算prev的日期到arg_date的日期值 d1
4.计算prev到next的日期的差值 d2 (也就是一个付息周期是几天)
5.于是应计利息AccruedInterest为: c*( d1 / d2 )
static double CalculateAccruedInterest(BondVariety arg_bondvariety,DateTime arg_date) { var bondvar = arg_bondvariety; var dateTarget = arg_date.Date; if( bondvar.maturitydate < dateTarget) { throw new NotImplementedException(); } if(bondvar.issuedate > dateTarget) { throw new NotImplementedException(); } var dates = bondvar.GetCashFlows().ToOtherTypeArray(c => c.时间); var datePrev = bondvar.issuedate; var dateNext = new DateTime(); for (var i = 0; i < dates.Length; i++) { if (dates[i] == dateTarget) return 0; if (dates[i] > dateTarget) { dateNext = dates[i]; if(i>0) datePrev = dates[i-1]; break; } } var dRet = (bondvar.couponrate/bondvar.frequency)*(dateTarget-datePrev).Days/(dateNext-datePrev).Days; return dRet.Round(4); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏