Skip to content

Commit 48d4c7b

Browse files
committed
add docs for makewhole
1 parent faeb3c6 commit 48d4c7b

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

absbox/local/component.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1541,6 +1541,7 @@ def mkLiqProvider(n: str, x: dict):
15411541
r = {"liqName": n, "liqType": mkLiqProviderType({})
15421542
,"liqBalance": p.get("balance",0), "liqStart": _sd
15431543
,"liqRateType": mkRateType(p.get("rate",None))
1544+
,"liqRate": p.get("liqRate",None)
15441545
,"liqPremiumRateType": mkRateType(p.get("fee",None))
15451546
}
15461547
case {"类型": _sp, "额度": _ab, "起始日": _sd, **p} \

docs/source/analytics.rst

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ cashflow projection will stop at the date specified.
314314
315315
316316
Project Expense
317-
^^^^^^^^^^^^^^
317+
^^^^^^^^^^^^^^^^^
318318

319319
a time series of expense will be used in cashflow projection.
320320

@@ -391,7 +391,7 @@ Let's build some fancy call condition with a :ref:`Formula` value less than a th
391391

392392

393393
Revolving Assumption
394-
^^^^^^^^^^^^^^
394+
^^^^^^^^^^^^^^^^^^^^^
395395

396396
User can set assumption on revolving pool with two compoenents: assets and performance assumption.
397397

@@ -561,6 +561,35 @@ syntax
561561
562562
Example :ref:`Mannual fire a trigger`
563563
564+
Make Whole Call
565+
^^^^^^^^^^^^^^^^^^^^^^
566+
567+
.. versionadded:: 0.26.0
568+
569+
User can specify a `Make Whole Call` date , and a `fixed spread` following, and a WAL/Spread mapping.
570+
571+
1. The engine will stop projection at the make whole call date.
572+
2. Then project with no-stress on the pool and simulate the future bond cashflow.
573+
3. calculate bond's WAL and find each bond's spread based on the input table
574+
4. then for each bond's spread will be add with `fixed spread`.
575+
5. using the total spread ( spread from lookup table and `fixed spread`) to discount future bond cashflow to get the PV
576+
6. the PV will be paid off the bond ,if PV > oustanding balance ,then excess will be paid to interest.
577+
578+
579+
580+
.. code-block:: python
581+
582+
r = localAPI.run(deal
583+
,poolAssump = ("Pool",
584+
("Mortgage",{"CDR":0.02} ,None, None, None)
585+
,None
586+
,None)
587+
,runAssump = [("interest",("LIBOR6M",0.04))
588+
,("makeWhole"
589+
,"2022-04-20"
590+
,0.001
591+
,[[0.08,0.005],[0.55,0.01],[100,0.02]])]
592+
,read=True)
564593
565594
566595

0 commit comments

Comments
 (0)