getting to know each other by… sharing code · 2019-09-17 · getting to know each other by…...
TRANSCRIPT
![Page 1: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/1.jpg)
Getting to know each otherby… sharing code
Francesco GarueSimCorp Italiana
![Page 2: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/2.jpg)
Asset and Liability Management
0Y 1Y 2Y 3Y
![Page 3: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/3.jpg)
Asset and Liability Management
0Y 1Y 2Y 3Y
• Transactions
![Page 4: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/4.jpg)
Asset and Liability Management
0Y 1Y 2Y 3Y
• Transactions• Holdings situation
![Page 5: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/5.jpg)
Asset and Liability Management
0Y 1Y 2Y 3Y
• Transactions• Holdings situation• Portfolio yield
![Page 6: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/6.jpg)
Position calculation
Asset and Liability ManagementA quite simple scheme
Transactions
Position calculation
Holdings situation
Portfolio yield
![Page 7: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/7.jpg)
Asset and Liability ManagementA quite simple scheme
Transactions
Position calculation
Holdings situation
Portfolio yield
Fair price engine
![Page 8: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/8.jpg)
Asset and Liability ManagementA quite simple scheme
Transactions
Position calculation
Holdings situation
Portfolio yield
Fair price engine
Rebalancing(buy & sell)
Liabilities
![Page 9: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/9.jpg)
Asset and Liability Management
Transactions
Position calculation
Holdings situation
Portfolio yield
Fair price engine
Rebalancing(buy & sell)
Liabilities
Credit risk scenario Stress on
yield curves
FX ratesevolution
Share prices evolution
Dividendsscenario
Averagecapital type
Closingsparameters
Incomecomposition
A not so simple scheme
Target asset allocation
Investment strategy
Target yield
Rule: annualor slippery?Mortality
tablesLapse tables
… …
…
……
![Page 10: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/10.jpg)
Asset and Liability ManagementA not at all simple scheme
Securities database
Transactionsdatabase
Holdings database
Event plans database
![Page 11: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/11.jpg)
Asset and Liability ManagementA not at all simple scheme
Securities database
Transactionsdatabase
Holdings database
Event plans database
![Page 12: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/12.jpg)
Asset and Liability ManagementA not at all simple scheme
Securities database
Transactionsdatabase
Holdings database
Event plans database
![Page 13: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/13.jpg)
Asset and Liability ManagementA not at all simple scheme
Securities database
Transactionsdatabase
Holdings database
Event plans database
![Page 14: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/14.jpg)
The new adventure
• SimCorp was aiming to build Dimension’s own ALM module
• Sofia had already learnt the ropes of ALM over the years
• So… We decided to go greenand reuse some Sofia code!
The game
![Page 15: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/15.jpg)
The new adventure
• 2 scrums in Copenhagen• 2 scrums in Kiev• 3 programmers in Milan
The players
![Page 16: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/16.jpg)
The new adventureThe players
![Page 17: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/17.jpg)
The Rebalancing ComponentThe «extraction»
![Page 18: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/18.jpg)
The Rebalancing ComponentThe «extraction»
Rebalancing(buy & sell)
![Page 19: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/19.jpg)
The Rebalancing Component
• Reads transactions and holdings situation
• Sums all cash flows to get the total liquidity
• Buys and sells to achieve the target asset allocation
• Computes fair prices and cash flows of all new assets bought
• Iterates for each period
Rebalancing(buy & sell)What it does
![Page 20: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/20.jpg)
The Rebalancing Component, what it needs to do it
• Reads transactions and holdings situation
• Sums all cash flows to get the total liquidity
• Buys and sells to achieve the target asset allocation
• Computes fair prices and cash flows of all new assets bought
• Iterates for each period
Rebalancing(buy & sell)What it does
• Transactions and holdings situation stored in a «comfortable» data structure
• Asset allocation classes• Asset allocation target weights• Fictitious assets information• Yield curves
![Page 21: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/21.jpg)
The Rebalancing Component
• Remove dependency on system-specific databases or tables• Avoid reading and writing files for intermediate results• Translate, map, adapt
The «extraction»: a few bumps along the wayRebalancing(buy & sell)
![Page 22: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/22.jpg)
The Rebalancing Component
• Remove dependency on system-specific databases or tables• Avoid reading and writing files for intermediate results• Translate, map, adapt• Refactor, refactor, refactor
The «extraction»: a few bumps along the wayRebalancing(buy & sell)
«No guts, no glory…»
![Page 23: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/23.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
![Page 24: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/24.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
JSON:{
"positionService": "https://dk01sv8700.scdom…"resultService": "https://dk01sv8700.scdom.n…"targetAllocationDefinition": "NTTB D_GI SMA…"dates": {
"start": "2019-06-30","end": "2021-12-31"
},"forecast": "NTTB D_FRST SMALL","accounting": "MAIN","pricingProfile": "KYS PRICE","portfolio": "","portfolioGroup": "","label": "NTTB 20_8","instrumentTypes": [
"Equity","Fund certificate","Bond","Index bond","ABS","SSD"
],"logaat": 1
}
D: «Compute this!»
![Page 25: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/25.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
JSON:{
"done": false,"reqid": "3ZCKKYMYPYWEXEXQPG44LTMW2M","status": "inprogress","log": [
"2019-08-23 10:01:26Z [2] Checking argumen…"2019-08-23 10:01:26Z [2] Starting","2019-08-23 10:01:26Z [2] Defining paramet…"2019-08-23 10:01:28Z [2] Querying: Positi…"2019-08-23 10:01:28Z [2] ... batch receiv…"2019-08-23 10:01:28Z [2] ... done","2019-08-23 10:01:28Z [2] Converting the p…"2019-08-23 10:01:28Z [2] Defining paramet…
]}
R: «Ok, work in progress»
![Page 26: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/26.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
URL:https://dk01sv8700.scdom.net:44300/odata/
PositionResult?$filter=(PositionCalculationIdeq 'NTTB D_FRST SMALL' and date(AnalysisDate)ge 2019-06-30 and date(AnalysisDate) le2021-12-31 and AccountingFramework eq 'MAIN'and PricingProfile eq 'KYS PRICE' andPositionType eq 'Original')&$select=AnalysisDate,AccountingFramework,ExternalId,InstrumentType,Portfolio,SecurityId,Transactions,Nominal,AccruedInterestQC,AccruedInterestPC,AccountingAnalytics,CleanValueQC,CleanValuePC
R: «Fetch me some data»
![Page 27: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/27.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
JSON:[
{"AccruedInterestPC": 0,"AccruedInterestQC": 0,"AnalysisDate": "2020-08-31T02:00:00+02:00…"CleanValuePC": 21000,"CleanValueQC": 21000,"ExternalId": "05f9a0a9-df36-47f4-afb7-94d…"InstrumentType": "Equity","Nominal": 1000,"Portfolio": "D_GI SMAL1","SecurityId": "KYS EUR 01","Transactions": [
{"BankAccount": "D_GI BA1","BusinessTransactionCode": "DividendPm…"ElementaryTransactionCode": "Dividend…"Nominal": 0,"NominalBasis": 1000,"PaymentAmountPC": 12000,"PaymentAmountQC": 12000,"PaymentDate": "2020-08-20T02:00:00+02…"TradeDate": "2020-08-20T02:00:00+02:0…
}],"AccountingAnalytics": {
…
D: «Help yourself!»
![Page 28: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/28.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
URL:https://dk01sv8700.scdom.net:44300/odata/
GetTargetAllocation
JSON BODY:{
"argument": {"FromDate": "2019-07-31","TargetAllocationId": "NTTB D_GI SMALL2"
}}
R: «Fetch me more data»
![Page 29: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/29.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
{"TargetClasses": [
{"Date": null,"TargetClassId": "LIQUIDITY","TargetWeight": 0,"Tolerance": 0
},{
"Date": null,"TargetClassId": "NTTB ASSETS","TargetWeight": 100,"Tolerance": 0
}],"RepresentativeSecurities": [
{"AnnualCouponRate": 0,"CouponFrequency": "Quarterly","Date": "2021-07-31T00:00:00+02:00","PriceTypeCode": 5,"RepresentativeSecurityKey": 4257,"RepresentativeSecurityType": "FloatingR…"TargetClassId": "NTTB ASSETS","TargetWeight": 25,"TermToMaturity": 20,"YieldCurveId": "OAK ZC EUR"…
D: «There you go!»
![Page 30: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/30.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
![Page 31: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/31.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
JSON:{
"Portfolio": "","PortfolioGroup": "","PositionCalculationId": "NTTB D_FRST SMALL","WhatIfLabel": "NTTB 20_8","Simulations": [
{"TradeDate": "2019-07-31","Transactions": [
{"BusinessTransactionCode": "Buy","FictitiousSecurityCode": 1000001,"Nominal": 9142,"RepresentativeSecurityKey": 3968,"ExternalId": ""
}]
},{
"TradeDate": "2019-08-31","Transactions": [
{"BusinessTransactionCode": "Buy","FictitiousSecurityCode": 1000002,"Nominal": 11000,"RepresentativeSecurityKey": 3968…
R: «Here’s the result!»
![Page 32: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/32.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
JSON:{
"response":{"IsOk":true,"Message":null
}"statuscode":"OK"
}
D: «Roger that!»
![Page 33: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/33.jpg)
The Rebalancing ComponentThe architecture
Asset allocationclasses and weights, investment strategy,
yield curves
Rebalancing results
Position results
Dimension Rebalancing
Collect data
Format results
Compute
JSON:{
"done": true,"elapsed": 3719,"reqid": "3ZCKKYMYPYWEXEXQPG44LTMW2M","status": "ok","output": "https://dk01sv8700.scdom.net:4430…"result": {
"response": {"IsOk": true,"Message": null
},"statuscode": "OK"
},"log": [
"2019-08-23 10:01:26Z [2] Checking argumen…"2019-08-23 10:01:26Z [2] Starting","2019-08-23 10:01:26Z [2] Defining paramet…"2019-08-23 10:01:28Z [2] Querying: Positi…"2019-08-23 10:01:28Z [2] ... batch receiv…"2019-08-23 10:01:28Z [2] ... done","2019-08-23 10:01:28Z [2] Converting the p…"2019-08-23 10:01:28Z [2] Defining paramet…"2019-08-23 10:01:28Z [2] Start the comput…"2019-08-23 10:01:29Z [2] Formatting the r…"2019-08-23 10:01:31Z [2] Result sent to: …
]}
D: «I’m done!»
![Page 34: Getting to know each other by… sharing code · 2019-09-17 · Getting to know each other by… sharing code Francesco Garue SimCorp Italiana. Asset and Liability Management 0Y 1Y](https://reader034.vdocuments.us/reader034/viewer/2022050308/5f70781ffb9ed6719236c23c/html5/thumbnails/34.jpg)
The Rebalancing ComponentDemo time…