Combonation of sensitivity run
from absbox import API,EnginePath
from absbox import Generic
from absbox.examples import test01
localAPI = API(EnginePath.DEV, lang='english', check=False)
Connecting engine server -> https://absbox.org/api/dev
/home/docs/checkouts/readthedocs.org/user_builds/absbox-doc/envs/stable/lib/python3.11/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'absbox.org'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
warnings.warn(
✅Connected, local lib:0.52.3, server:0.52.3
Passing 3 maps to the runByCombo()
runAssumptionMap = {
"DealRunA":[("call",("poolBalance",200))]
,"DealRunB":[("call",("poolBalance",500))]
}
poolAssumpMap = {
"poolA": ("Pool",("Mortgage",{"CDR":0.01},None,None,None)
,None
,None),
"poolB": ("Pool",("Mortgage",{"CDR":0.03},None,None,None)
,None
,None)
}
r = localAPI.runByCombo({"A":test01,"B":test01}
,runAssump= runAssumptionMap
,poolAssump = poolAssumpMap
,read=True
)
/home/docs/checkouts/readthedocs.org/user_builds/absbox-doc/envs/stable/lib/python3.11/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'absbox.org'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
warnings.warn(
Warning Message from server for ('A', 'poolA', 'DealRunA'):Account acc01 has cash to be distributed Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,1)]
Warning Message from server for ('A', 'poolA', 'DealRunB'):Bond B is not paid off Account acc01 has cash to be distributed Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,4)]
Warning Message from server for ('A', 'poolB', 'DealRunA'):Account acc01 has cash to be distributed Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,1)]
Warning Message from server for ('A', 'poolB', 'DealRunB'):Bond B is not paid off Account acc01 has cash to be distributed Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,4)]
Warning Message from server for ('B', 'poolA', 'DealRunA'):Account acc01 has cash to be distributed Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,1)]
Warning Message from server for ('B', 'poolA', 'DealRunB'):Bond B is not paid off Account acc01 has cash to be distributed Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,4)]
Warning Message from server for ('B', 'poolB', 'DealRunA'):Account acc01 has cash to be distributed Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,1)]
Warning Message from server for ('B', 'poolB', 'DealRunB'):Bond B is not paid off Account acc01 has cash to be distributed Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,4)]
access result via a tuple
r.keys()
dict_keys([('A', 'poolA', 'DealRunA'), ('A', 'poolA', 'DealRunB'), ('A', 'poolB', 'DealRunA'), ('A', 'poolB', 'DealRunB'), ('B', 'poolA', 'DealRunA'), ('B', 'poolA', 'DealRunB'), ('B', 'poolB', 'DealRunA'), ('B', 'poolB', 'DealRunB')])
r[('A', 'poolB', 'DealRunB')]['result']['status']
| Date | From | To | Comment | |
|---|---|---|---|---|
| 0 | 2021-04-01 | PreClosing | Amortizing | By Deal Close |
| 1 | 2022-06-20 | Amortizing | Called | Call by triggers before waterfall distribution |
| 2 | 2022-06-20 | DealEnd | Clean Up |
r[('A', 'poolB', 'DealRunA')]['result']['status']
| Date | From | To | Comment | |
|---|---|---|---|---|
| 0 | 2021-04-01 | PreClosing | Amortizing | By Deal Close |
| 1 | 2022-09-20 | Amortizing | Called | Call by triggers before waterfall distribution |
| 2 | 2022-09-20 | DealEnd | Clean Up |