aboutsummaryrefslogtreecommitdiffstats
path: root/docs/process.rst
blob: 36dbd0d329ecc702b571ab579f0919ab07c27a8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Preamble
--------

In everything that follows the paths are relative from
our directory ``//WDSENTINEL/share/CorpCDOs`` on Windows and
``/home/share/CorpCDOs`` on Linux.

Restarting the tasks server
--------------------------

Most of the operation below rely on the task server being
operational. In the unlikely event that it stops, it can be restarted
as follows: ::

  ssh debian
  cd /home/share/CorpCDOs/code/python
  python http-server.py stop
  python http-server.py start

Load data from intex and populate the database
----------------------------------------------

we need to fill up three tables:

* clo_universe
* cusip_universe
* et_collateral

We first create a directory called ``data/Indicative_%Y-%m-%d``.
From the spreadsheet, this is driven by the two shortcuts
``CTRL+Shift+Y`` and ``CTRL+Shift+G``.

* First select the cusips of interest, do ``CTRL+Shift+Y`` and paste them
  into a new portfolio tab in intex. On the portfolio tab itself,
  right click, then Export to text, and save into ``data/Indicative_%Y-%m-%d``.
  The intex filename should be called ``Portfolio.txt`` or ``Portfolio(i).txt``
  for some ``i``.
* Then in the Collat Detail tab, make sure Asset Detail is
  toggled. Right click, then Export to text, All bonds and extract the
  resulting zip file into a folder named ``data/Collaterals_%Y-%m-%d``
* Last step, select the cusips again, do ``CTRL+SHIFT+G``, paste into a
  new portfolio tab. Click on All Tranches, Right Click, Export to
  text, and save the file into a folder named ``data/Indicative_%Y-%m-%d``.
  The file name should be called ``Portfolio_TrInfo.txt`` or
  ``Portfolio_TrInfo(i).txt`` for some ``i``.

We're done exporting the data from intex, now we need to load it into
the database. To that end, click on the link ``Load Intex Indicative Data``
in the Excel spreadsheet.

Steps to build the model
------------------------

* Scenarios generation can be triggered by selecting the cusips in the
  excel spreadsheet and using the ``CTRL+Shift+H`` shortcut.
* To disable Reinvestment put "Y" under "DisableReinv" column before
  using ``CTRL+Shift+H``.
* htop to monitor server activities.
* This will trigger three scripts: first it will build the survival
  curves: these are saved into ``Scenarios/Portfolios_%Y_%m_%d``,
  second it will generate the loss and prepay distributions and save
  them into ``Scenarios/Intex curves_%Y-%m%d/csv``, and finally
  generate the sss files that we can load into intex in
  ``Scenarios/Intex curves_%Y-%m%d/sss``.
* You can look at the logs file in ``logs``
  to monitor the process.


Running the scenarios in Intex
------------------------------

* First make sure that Intex look for the sss files in the right
  directory. Go into Tools, Options, Data Access and change it
  appropriately. (e.g. Z:\CorpCDOs\Scenarios\Intex
  curves_2013-07-22\sss)
* In Intex Options, under Miscellaneous, Change the export settings to
  "Tab delimited"
* Select the cusips of interest on the spreadsheet (make sure the
  corresponding sss files exist), do ``CTRL+Shift+I`` and paste them
  into a new portfolio tab in Intex... twice so that Intex actually
  paste the data.
* Then go onto the Scenarios Tab, and click the cross next to Rate
  Update to make sure it reloads the Interest Rates (otherwise intex
  will run it with libor set at 0... not good)
* Then go onto the Cashflows tab and wait... Make sure format of Intex export
  is in the format required. Once it's done, export the cashflows into
  ``Scenarios/Prices_%Y-%m%-%d``.
* Finally, on the server do: ::

    cd /home/share/CorpCDOs/code/R
    Rscript load_cf.R

  This will load the cashflows and compute the deltas, and save it in
  the database.
* Enjoy your work by typing ``CTRL+T`` on the spreadsheet and see how
  all the columns get filled. Yay!

Calibration
-----------

The model calibration is triggered via a cronjob at 8am. If something
wrong happened or we forgot to save the data, it's possible to
re-trigger it manually as follows: ::

  cd /home/share/CorpCDOs/code/R
  Rscript calibrate_tranches_MF.R %Y-%m-%d

Bloomberg Mapping
-----------------

If an asset is not priced, but has a valid CUSIP and a price is
observed in bloomberg, you can save the CUSIP to retrieve its price
from bloomberg using ET reloaded. Once the CUSIP is saved, run these
scripts to bring the prices into the database.

In windows - run R script ``\CorpCDOs\code\R\load_bloomberg_data.R``

On server: ::

  cd /CorpCDOs/code/python/
  python load_bloomberg_data.py

Install lossdistrib
------------------

 If Lossdistrib package is out of date, install in server by: ::

	cd /home/share/CorpCDOs/code/R
	R CMD INSTALL lossdistrib

Kick off daily tranche runs
---------------------------

::
   cd /home/share/CorpCDOs/code/R
   Rscript calibrate_tranches_BC.R -u -c runs.yml
   Rscript tranches_RV_BC.R -u -c RVruns.yml