From b05e728ae23d088ca6c9ecccf6ed00d2ab6f3839 Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Tue, 22 Sep 2026 08:07:00 +0800 Subject: Add bond full milestone: profile probe, coupon/accrual rules, ledger and point-in-time valuation (3d-29) --- src/FundLab.Web/App.fs | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) (limited to 'src/FundLab.Web/App.fs') diff --git a/src/FundLab.Web/App.fs b/src/FundLab.Web/App.fs index c150596..5e891ae 100644 --- a/src/FundLab.Web/App.fs +++ b/src/FundLab.Web/App.fs @@ -401,6 +401,14 @@ type RawBondQuote = accruedInterest: obj date: obj maturityDate: obj + parValue: obj + valueDate: obj + couponRate: obj + rating: obj + dataStatus: obj + accruedInterestComputed: obj + dirtyPrice: obj + valuationDate: obj } type RawStockQuote = @@ -879,6 +887,14 @@ type BondQuoteView = accruedInterest: string option quoteDate: string option maturityDate: string option + parValue: string option + valueDate: string option + couponRate: string option + rating: string option + dataStatus: string option + accruedInterestComputed: string option + dirtyPrice: string option + valuationDate: string option } type StockQuoteView = @@ -1343,6 +1359,14 @@ module Api = accruedInterest = decodeOptionalText raw.accruedInterest quoteDate = decodeOptionalText raw.date maturityDate = decodeOptionalText raw.maturityDate + parValue = decodeOptionalText raw.parValue + valueDate = decodeOptionalText raw.valueDate + couponRate = decodeOptionalText raw.couponRate + rating = decodeOptionalText raw.rating + dataStatus = decodeOptionalText raw.dataStatus + accruedInterestComputed = decodeOptionalText raw.accruedInterestComputed + dirtyPrice = decodeOptionalText raw.dirtyPrice + valuationDate = decodeOptionalText raw.valuationDate } let decodeStockQuote (raw: RawStockQuote) : StockQuoteView = @@ -5685,11 +5709,16 @@ let private bondsPanel model dispatch = prop.className "metric-strip" prop.children [ bondQuoteMetric "名称" quote.name - bondQuoteMetric "价格" quote.price bondQuoteMetric "净价" quote.cleanPrice - bondQuoteMetric "应计利息" quote.accruedInterest - bondQuoteMetric "行情日期" quote.quoteDate + bondQuoteMetric "应计利息" quote.accruedInterestComputed + bondQuoteMetric "全价" quote.dirtyPrice + bondQuoteMetric "票息率" quote.couponRate + bondQuoteMetric "面值" quote.parValue + bondQuoteMetric "起息日" quote.valueDate bondQuoteMetric "到期日" quote.maturityDate + bondQuoteMetric "评级" quote.rating + bondQuoteMetric "估值日期" quote.valuationDate + bondQuoteMetric "数据质量" quote.dataStatus ] ] ] -- cgit v1.2.3