Skip to content

Commit 0143215

Browse files
Farah Khashmanjenkins
authored andcommitted
ORE-SWIG API example
1 parent c8bec71 commit 0143215

28 files changed

Lines changed: 30851 additions & 0 deletions
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
ARG python_version=3.7-rc-slim
2+
FROM python:${python_version}
3+
4+
5+
# Working directory
6+
WORKDIR /app
7+
8+
# Copy needed files
9+
COPY oreApi.py restapi.py entrypoint-restapi.sh ./
10+
11+
RUN pip install urllib3==1.26.7 &&\
12+
pip install --upgrade pip &&\
13+
pip install flask &&\
14+
pip install open-source-risk-engine &&\
15+
pip install pandas &&\
16+
pip install requests &&\
17+
mkdir -p Input &&\
18+
mkdir -p Output
19+
20+
EXPOSE 3001/tcp
21+
22+
ENTRYPOINT [ "/bin/bash", "/app/entrypoint-restapi.sh" ]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
ARG python_version=3.7-rc-slim
2+
FROM python:${python_version}
3+
4+
# Working directory
5+
WORKDIR /app
6+
7+
# Copy needed files
8+
COPY oreApi.py restapi.py entrypoint-restapi.sh ./
9+
10+
RUN pip install --upgrade pip &&\
11+
pip install flask &&\
12+
mkdir -p Input &&\
13+
mkdir -p Output
14+
15+
16+
EXPOSE 3000/tcp
17+
18+
ENTRYPOINT [ "/bin/bash", "/app/entrypoint-simplefileserver.sh" ]
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: '3'
2+
3+
services:
4+
restapi:
5+
image: restapi:latest
6+
build:
7+
context: ..
8+
dockerfile: Dockerfiles/Dockerfile_restapi
9+
10+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version: '3'
2+
3+
services:
4+
simplefileserver:
5+
image: simplefileserver:latest
6+
build:
7+
context: ..
8+
dockerfile: Dockerfiles/Dockerfile_simplefileserver
9+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
version: '3'
2+
3+
services:
4+
restapi:
5+
image: restapi:latest
6+
networks:
7+
- postman
8+
ports:
9+
- "5001:5001"
10+
11+
simplefileserver:
12+
image: simplefileserver:latest
13+
env_file:
14+
- docker-envfile.env
15+
environment:
16+
- INPUT_DIR=${INPUT_DIR:-./../Input}
17+
- OUTPUT_DIR=${OUTPUT_DIR:-./../Output}
18+
volumes:
19+
- "../entrypoint-simplefileserver.sh:/app/entrypoint-simplefileserver.sh"
20+
- "../simplefileserver.py:/app/simplefileserver.py"
21+
- "${INPUT_DIR:-./../Input}:/app/Input"
22+
- "${OUTPUT_DIR:-./../Output}:/app/Output"
23+
networks:
24+
- postman
25+
ports:
26+
- "5000:5000"
27+
28+
networks:
29+
postman:
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
INPUT_DIR=./../Input
2+
OUTPUT_DIR=./../Output

Examples/API/Input/Example.json

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
{
2+
"setup": {
3+
"inputPath": "Input",
4+
"outputPath": "Output",
5+
"resultsUri": "http://127.0.0.1:5000/report",
6+
"nThreads": 1,
7+
"asofDate": "2016-02-05",
8+
"implyTodaysFixings": "N",
9+
"logFile": "log.txt",
10+
"observationModel": "Disable",
11+
"marketData": "http://127.0.0.1:5000/file/market_20160205.txt",
12+
"fixingData": "http://127.0.0.1:5000/file/fixings_20160205.txt",
13+
"conventionsUri": "http://127.0.0.1:5000/file/conventions.xml",
14+
"pricingEnginesUri": "http://127.0.0.1:5000/file/pricingengine.xml",
15+
"portfolioUri": "http://127.0.0.1:5000/file/portfolio.xml",
16+
"marketConfigUri": "http://127.0.0.1:5000/file/todaysmarket.xml",
17+
"curveConfigUri": "http://127.0.0.1:5000/file/curveconfig.xml"
18+
},
19+
"markets": {
20+
"fxcalibration": "collateral_eur",
21+
"simulation": "collateral_eur",
22+
"pricing": "collateral_eur",
23+
"lgmcalibration": "collateral_inccy"
24+
},
25+
"analytics": {
26+
"npv": {
27+
"active": "Y",
28+
"baseCurrency": "EUR",
29+
"outputFileName": "npv.csv"
30+
},
31+
"cashflow": {
32+
"active": "Y",
33+
"outputFileName": "npv.csv"
34+
},
35+
"curves": {
36+
"active": "Y",
37+
"configuration": "default",
38+
"outputFileName": "curves.csv"
39+
},
40+
"simulation": {
41+
"active": "Y",
42+
"simulationConfigUri": "http://127.0.0.1:5000/file/simulation.xml",
43+
"pricingEnginesUri": "http://127.0.0.1:5000/file/pricingengine.xml",
44+
"baseCurrency": "EUR",
45+
"scenariodump": "scenariodump.csv",
46+
"CubeUri": "cube.csv.gz",
47+
"storeFlows": "N",
48+
"storeSurvivalProbabilities": "N"
49+
},
50+
"stress": {
51+
"active": "N"
52+
},
53+
"parametricVar": {
54+
"active": "N"
55+
},
56+
"simm": {
57+
"active": "N"
58+
},
59+
"sensitivity": {
60+
"active": "N"
61+
},
62+
"xva": {
63+
"active": "Y",
64+
"csaUri": "http://127.0.0.1:5000/file/netting.xml",
65+
"cubeFile": "cube.csv.gz",
66+
"scenarioFile": "scenariodata.csv.gz",
67+
"baseCurrency": "EUR",
68+
"exposureProfiles": "Y",
69+
"exposureProfilesByTrade": "Y",
70+
"quantile": 0.95,
71+
"calculationType": "Symmetric",
72+
"allocationMethod": "None",
73+
"marginalAllocationLimit": 1.0,
74+
"exerciseNextBreak": "N",
75+
"cva": "Y",
76+
"dva": "N",
77+
"dvaName": "BANK",
78+
"fva": "N",
79+
"fvaBorrowingCurve": "BANK_EUR_BORROW",
80+
"fvaLendingCurve": "BANK_EUR_LEND",
81+
"colva": "N",
82+
"collateralFloor": "N",
83+
"rawCubeOutputFile": "rawcube.csv",
84+
"netCubeOutputFile": "netcube.csv"
85+
}
86+
}
87+
}
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
<CalendarAdjustments>
2+
<Calendar name= "DKK">
3+
<AdditionalHolidays>
4+
<Date>2019-05-31</Date>
5+
<Date>2019-12-24</Date>
6+
<Date>2019-12-31</Date>
7+
<Date>2020-05-22</Date>
8+
<Date>2020-12-24</Date>
9+
<Date>2020-12-31</Date>
10+
</AdditionalHolidays>
11+
<AdditionalBusinessDays/>
12+
</Calendar>
13+
<Calendar name= "CNH">
14+
<AdditionalHolidays>
15+
<Date>2019-02-04</Date>
16+
<Date>2019-02-05</Date>
17+
<Date>2019-02-06</Date>
18+
<Date>2019-02-07</Date>
19+
<Date>2019-02-08</Date>
20+
<Date>2019-04-05</Date>
21+
<Date>2019-05-01</Date>
22+
<Date>2019-05-02</Date>
23+
<Date>2019-05-03</Date>
24+
<Date>2019-06-07</Date>
25+
<Date>2019-09-13</Date>
26+
<Date>2019-10-01</Date>
27+
<Date>2019-10-02</Date>
28+
<Date>2019-10-03</Date>
29+
<Date>2019-10-04</Date>
30+
<Date>2019-10-07</Date>
31+
<Date>2020-01-24</Date>
32+
<Date>2020-01-27</Date>
33+
<Date>2020-01-28</Date>
34+
<Date>2020-01-29</Date>
35+
<Date>2020-01-30</Date>
36+
<Date>2020-04-06</Date>
37+
<Date>2020-05-01</Date>
38+
<Date>2020-06-25</Date>
39+
<Date>2020-06-26</Date>
40+
<Date>2020-10-01</Date>
41+
<Date>2020-10-02</Date>
42+
<Date>2020-10-05</Date>
43+
<Date>2020-10-06</Date>
44+
<Date>2020-10-07</Date>
45+
</AdditionalHolidays>
46+
<AdditionalBusinessDays/>
47+
</Calendar>
48+
<Calendar name= "Japan">
49+
<AdditionalHolidays>
50+
<Date>2019-04-30</Date>
51+
<Date>2019-05-01</Date>
52+
<Date>2019-05-02</Date>
53+
<Date>2019-10-22</Date>
54+
<Date>2020-02-24</Date>
55+
<Date>2020-07-23</Date>
56+
<Date>2020-07-24</Date>
57+
<Date>2020-08-10</Date>
58+
</AdditionalHolidays>
59+
<AdditionalBusinessDays>
60+
<Date>2019-12-23</Date>
61+
<Date>2020-07-20</Date>
62+
<Date>2020-08-11</Date>
63+
<Date>2020-10-12</Date>
64+
<Date>2020-12-23</Date>
65+
</AdditionalBusinessDays>
66+
</Calendar>
67+
<Calendar name= "FRA">
68+
<AdditionalHolidays/>
69+
<AdditionalBusinessDays>
70+
<Date>2019-06-20</Date>
71+
</AdditionalBusinessDays>
72+
</Calendar>
73+
<Calendar name= "ITL">
74+
<AdditionalHolidays>
75+
<Date>2019-04-19</Date>
76+
<Date>2020-04-10</Date>
77+
</AdditionalHolidays>
78+
<AdditionalBusinessDays/>
79+
</Calendar>
80+
<Calendar name= "NZD">
81+
<AdditionalHolidays>
82+
<Date>2019-01-28</Date>
83+
<Date>2020-01-27</Date>
84+
<Date>2020-04-27</Date>
85+
</AdditionalHolidays>
86+
<AdditionalBusinessDays/>
87+
</Calendar>
88+
<Calendar name= "SGD">
89+
<AdditionalHolidays>
90+
<Date>2019-02-05</Date>
91+
<Date>2019-02-06</Date>
92+
<Date>2019-05-20</Date>
93+
<Date>2019-06-05</Date>
94+
<Date>2019-08-12</Date>
95+
<Date>2019-10-28</Date>
96+
<Date>2020-01-27</Date>
97+
<Date>2020-05-07</Date>
98+
<Date>2020-05-25</Date>
99+
<Date>2020-07-31</Date>
100+
</AdditionalHolidays>
101+
<AdditionalBusinessDays/>
102+
</Calendar>
103+
<Calendar name= "SEK">
104+
<AdditionalHolidays>
105+
<Date>2019-06-06</Date>
106+
</AdditionalHolidays>
107+
<AdditionalBusinessDays/>
108+
</Calendar>
109+
<Calendar name= "CHF">
110+
<AdditionalHolidays>
111+
<Date>2019-12-24</Date>
112+
<Date>2019-12-31</Date>
113+
<Date>2020-12-24</Date>
114+
<Date>2020-12-31</Date>
115+
</AdditionalHolidays>
116+
<AdditionalBusinessDays/>
117+
</Calendar>
118+
</CalendarAdjustments>

0 commit comments

Comments
 (0)