{
"cells": [
{
"cell_type": "markdown",
"id": "1cd1717c",
"metadata": {},
"source": [
"### Library Example\n",
"\n",
"#### Connect to server"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "f7b7076f-53e5-4156-8160-0f973c18c0eb",
"metadata": {},
"outputs": [],
"source": [
"from absbox import LIBRARY"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "0e192cbf-b635-45ef-a04a-6fbb884a0982",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
✅ Connected to library server\n",
"\n"
],
"text/plain": [
"✅ Connected to library server\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"absbox version:0.44.0\n",
"\n"
],
"text/plain": [
"absbox version:\u001b[1;36m0.44\u001b[0m.\u001b[1;36m0\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Hastructure:{'active': {'local': 'http://localhost:8081 : 0.44.1'}, 'default': 'local', 'inactive': {}}\n",
"\n"
],
"text/plain": [
"Hastructure:\u001b[1m{\u001b[0m\u001b[32m'active'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'local'\u001b[0m: \u001b[32m'http://localhost:8081 : 0.44.1'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'default'\u001b[0m: \u001b[32m'local'\u001b[0m, \u001b[32m'inactive'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\u001b[1m}\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"library_url = \"https://ldn.spv.run/api\"\n",
"library = LIBRARY(library_url)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "5bfff1c4-df91-47cb-9b63-4ad81f776650",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"✅ login successfully, user -> trial_1,group -> trial_group_1\n",
"\n"
],
"text/plain": [
"✅ login successfully, user -> trial_1,group -> trial_group_1\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"library.login(\"trial_1\",\"iamhere\")\n",
"#library.safeLogin(\"chinapublisher\")\n"
]
},
{
"cell_type": "markdown",
"id": "39f050bc-1273-46e1-b771-45dfad1247da",
"metadata": {},
"source": [
"#### Query Deal Library\n",
"\n",
"List all deals which are accessible to current user"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "36571d04-d627-42b6-aee2-af7f4eb278f9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"✅ query success\n",
"\n"
],
"text/plain": [
"✅ query success\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ID | \n",
" name | \n",
" period | \n",
" stage | \n",
" tags | \n",
" permission | \n",
" group | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 3 | \n",
" 吉时代2025年第一期个人汽车抵押贷款资产支持证券 | \n",
" 0 | \n",
" 1 | \n",
" auto | \n",
" 700 | \n",
" 3 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ID name period stage tags permission group\n",
"0 3 吉时代2025年第一期个人汽车抵押贷款资产支持证券 0 1 auto 700 3"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"library.query()"
]
},
{
"cell_type": "markdown",
"id": "d2db6ba6-2cba-4916-8ad2-52eaf9610fdb",
"metadata": {},
"source": [
"#### Run Deal By Name"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "55172fa1-b3a5-470f-8d98-897d724f679d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"✅ run success with deal: 吉时代2025年第一期个人汽车抵押贷款资产支持证券|3\n",
"\n"
],
"text/plain": [
"✅ run success with deal: 吉时代2025年第一期个人汽车抵押贷款资产支持证券|\u001b[1;36m3\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"revol_asset = [\"Mortgage\"\n",
" ,{\"originBalance\":2200,\"originRate\":[\"fix\",0.02],\"originTerm\":48\n",
" ,\"freq\":\"Monthly\",\"type\":\"Level\",\"originDate\":\"2021-02-01\"}\n",
" ,{\"currentBalance\":2200\n",
" ,\"currentRate\":0.02\n",
" ,\"remainTerm\":40\n",
" ,\"status\":\"current\"}]\n",
"\n",
"\n",
"i,r = library.run((\"name\",\"吉时代2025年第一期个人汽车抵押贷款资产支持证券\")\n",
" ,runAssump= [(\"revolving\"\n",
" ,[\"constant\",revol_asset]\n",
" ,(\"Pool\",(\"Mortgage\",{\"CDR\":0.00},None,None,None)\n",
" ,None\n",
" ,None))\n",
" ]\n",
" ,read=True)"
]
},
{
"cell_type": "markdown",
"id": "744096f5-4413-4d01-a924-2ada964f0f49",
"metadata": {},
"source": [
"#### Run Deal By ID"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "088559a6-d197-4931-9bda-e18d0c9b5bb6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"✅ run success with deal: 吉时代2025年第一期个人汽车抵押贷款资产支持证券|3\n",
"\n"
],
"text/plain": [
"✅ run success with deal: 吉时代2025年第一期个人汽车抵押贷款资产支持证券|\u001b[1;36m3\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"i,r = library.run((\"id\",3)\n",
" ,runAssump= [(\"revolving\"\n",
" ,[\"constant\",revol_asset]\n",
" ,(\"Pool\",(\"Mortgage\",{\"CDR\":0.00},None,None,None)\n",
" ,None\n",
" ,None))\n",
" ]\n",
" ,read=True)"
]
},
{
"cell_type": "markdown",
"id": "6206010c-1535-4d89-85ca-88180a84fab7",
"metadata": {},
"source": [
"#### Run Info"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "c241bcd7-0f93-4b8e-bb89-ec309560fec9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'time': {'load': '1.5590000000000002 ms', 'run': '31.668000000000003 ms'},\n",
" 'engine': 'http://localhost:8081 | 0.44.1',\n",
" 'deal': {'name': '吉时代2025年第一期个人汽车抵押贷款资产支持证券', 'id': 3}}"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"i"
]
},
{
"cell_type": "markdown",
"id": "dee0acd0-5b72-449a-bacf-db6b11c53a33",
"metadata": {},
"source": [
"#### Run Result\n",
"\n",
"The result object is same as the one return by `api.run()`"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "e3782c45-cae4-4d92-8d08-d6d4e47b1a7d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2025-03-14 | \n",
" 3.984977e+09 | \n",
" 5.150247e+08 | \n",
" 11076764.20 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.000000 | \n",
" None | \n",
" None | \n",
" 5.150247e+08 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2025-03-31 | \n",
" 3.731465e+09 | \n",
" 2.535123e+08 | \n",
" 6738886.87 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.000000 | \n",
" None | \n",
" None | \n",
" 7.685370e+08 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2025-04-30 | \n",
" 4.258881e+09 | \n",
" 2.493541e+08 | \n",
" 6311620.99 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.010284 | \n",
" None | \n",
" None | \n",
" 1.017891e+09 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default \\\n",
"Date \n",
"2025-03-14 3.984977e+09 5.150247e+08 11076764.20 0 0 \n",
"2025-03-31 3.731465e+09 2.535123e+08 6738886.87 0 0 \n",
"2025-04-30 4.258881e+09 2.493541e+08 6311620.99 0 0 \n",
"\n",
" Recovery Loss WAC BorrowerNum PrepayPenalty CumPrincipal \\\n",
"Date \n",
"2025-03-14 0 0 0.000000 None None 5.150247e+08 \n",
"2025-03-31 0 0 0.000000 None None 7.685370e+08 \n",
"2025-04-30 0 0 0.010284 None None 1.017891e+09 \n",
"\n",
" CumPrepay CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2025-03-14 0 0 0 0 0 \n",
"2025-03-31 0 0 0 0 0 \n",
"2025-04-30 0 0 0 0 0 "
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r['pool']['flow']['PoolConsol'].head(3)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "e0b8e0f8-352a-4b76-9f88-ed9134a33029",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" balance | \n",
" interest | \n",
" principal | \n",
" rate | \n",
" cash | \n",
" intDue | \n",
" intOverInt | \n",
" factor | \n",
" memo | \n",
"
\n",
" \n",
" | date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2025-04-26 | \n",
" 1.600000e+09 | \n",
" 3449424.65 | \n",
" 0.0 | \n",
" 0.0183 | \n",
" 3449424.65 | \n",
" 0 | \n",
" 0 | \n",
" 1.0 | \n",
" <PayInt:优先A1> | \n",
"
\n",
" \n",
" | 2025-05-26 | \n",
" 1.600000e+09 | \n",
" 2406575.34 | \n",
" 0.0 | \n",
" 0.0183 | \n",
" 2406575.34 | \n",
" 0 | \n",
" 0 | \n",
" 1.0 | \n",
" <PayInt:优先A1> | \n",
"
\n",
" \n",
" | 2025-06-26 | \n",
" 1.600000e+09 | \n",
" 2486794.52 | \n",
" 0.0 | \n",
" 0.0183 | \n",
" 2486794.52 | \n",
" 0 | \n",
" 0 | \n",
" 1.0 | \n",
" <PayInt:优先A1> | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" balance interest principal rate cash intDue \\\n",
"date \n",
"2025-04-26 1.600000e+09 3449424.65 0.0 0.0183 3449424.65 0 \n",
"2025-05-26 1.600000e+09 2406575.34 0.0 0.0183 2406575.34 0 \n",
"2025-06-26 1.600000e+09 2486794.52 0.0 0.0183 2486794.52 0 \n",
"\n",
" intOverInt factor memo \n",
"date \n",
"2025-04-26 0 1.0 \n",
"2025-05-26 0 1.0 \n",
"2025-06-26 0 1.0 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r['bonds']['优先A1'].head(3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "618c597b-06fe-4e77-bc1c-02b0ab30fa1c",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "PyABS",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}