summaryrefslogtreecommitdiff
path: root/src/FundLab.Web
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-22 08:07:00 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-22 08:07:00 +0800
commitb05e728ae23d088ca6c9ecccf6ed00d2ab6f3839 (patch)
tree4846648aa87263742c1181c189287b53c3bf84de /src/FundLab.Web
parent27a85d9070abd000245b2a2e6460ddf9fd5eb97e (diff)
downloadfund-lab-b05e728ae23d088ca6c9ecccf6ed00d2ab6f3839.tar.gz
Add bond full milestone: profile probe, coupon/accrual rules, ledger and point-in-time valuation (3d-29)
Diffstat (limited to 'src/FundLab.Web')
-rw-r--r--src/FundLab.Web/App.fs35
1 files changed, 32 insertions, 3 deletions
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
]
]
]