RiskManager:
Risk Attribution Report:
Includes the ability to filter top n or bottom n of a given statistic column at a given level and below.
New charting:
New Market data line charts
Pie charts
New Interactive Histogram - particularly useful for portfolio returns report.
Market Data:
Export Market List Searches (Tab Delimited)
Auditing and Logging:
Separate Error and Application Audit Logs Login success or failure
Logout
Report Group begin/end Report begin/end
Batch start/end
Notification:
Allow Notification of task begun as well as task ended.
Equity Identifiers:
Support for entering alternative identifiers for equities in position creation interface.
Import:
Allow overwrite existing for application objects other than positions. Retains links in composite objects such as report and indexes.
Session Management:
Keep alive for long running processes such as report generation and imports Session timeout warning
Credit Exposure Report:
Add Present Value as a column.
Security:
Configurable Password lifetime Configurable Account lifetime
Login Lockout after configurable number of failed logins.
Administration:
Enhanced System Status:
Connection status to analysis and reference risk servers Datatrans connection status
RMDB database availability and stats
Current loaded data range (i.e. the Latest DMX data set date)
ASP:
User Migration from RMDB to RMDB
Index Builder:
Automatically reprocess index when edited.
Market Data Service:
28
Beta Statistic
Configuration:
Add configuration setting to allow or disallow dump of XML input for diagnostic purposes . Default is to allow dump of XML input.
All analyses:
Correct bug in handling of return horizon (not honored in historical analyses and other places).
Credit exposure analyses:
More efficient use of memory.
Take into account the volatility of the risk factor when calculating the drift.
Instrument tags:
Make hierarchical tags non-case-sensitive.
=============================================== All instruments:
Add notional tag.
Correct bug in secant calibration in RM3.4.1.72 and before, where calibration could "exit early" without correctly setting variables, if the given value is so far out of range that calibration was
impossible. This correction has caused numerous questions with respect to FRNs where the price is far too high (so this explanation is repeated for FRNs). The problem can be demonstrated by getting position diagnostics and showing that the given value is out of range. With an older engine, the calibrated field may be wrong in this case.
All instruments with volatility series:
Add a check that the volatility calculated from vol series has to be positive. Though it may potentially affect all options which are using vol series, the happenings should be rare.
Bond future option:
Use secant method instead of bisection for calibrating yield-to-maturity for bonds; slight effect on values, but faster.
Collar:
Correct a bug in which the calibrated or calculated volatility from vol surface is used as user specified volatility in collars (volatility of caplets "bled over" into floorlets).
Cap/Collar/Floor:
Add yield-based pricing model.
Use secant method instead of bisection for calibrating yield-to-maturity for bonds; slight effect on values, but faster.
Callable bond:
Add quadratic approximation, on-demand per instrument or according to ini file setting. Correct bug where time series that affect price were not always reported so parametric analyses were wrong in some cases.
Speed up processing even without quadratic approximation through better organization of computations.
Convertible bond:
Add quadratic approximation, on-demand per instrument or according to ini file setting. Correct bug where time series that affect price were not always reported so parametric analyses were wrong in some cases.
Correct order of precedence of market price and volatility in convertible bond (volatility should supercede market price).
Removed Convertible Bond code that tested whether rate to grow tree was negative. It is possible for rate to go negative on historical simulation with (what else?) JPY. The variable which was being tested is actually never used, and it appears to do no harm to let the value go slightly negative.
Equity:
Notional in own or base currency computed using specified equity price, if any, otherwise price from database.
Solve for delta and volatility simultaneously where volatility series is specified.
FRN:
Correct bug in secant calibration in RM3.4.1.72 and before, where calibration could "exit early" without correctly setting variables, if the given marketPrice is so far out of range that calibration was impossible. This correction has caused numerous questions with respect to FRNs where the price is far too high. The problem can be demonstrated by getting position diagnostics and showing that the given value is out of range. With an older engine, the spread may be wrong in this case.
Change default discount curve for FRNs from currency default curve to reference curve. Allow 0 accrued interest.
Option on equity future:
Solve for delta and volatility simultaneously where volatility series is specified.
FX option:
Solve for delta and volatility simultaneously where volatility series is specified.
Swaption:
Use secant method instead of bisection for calibrating yield-to-maturity for bonds; slight effect on values, but faster.
New instrument types:
UK Index-linked Gilt.
=============================================== Market data loading:
More efficient use of memory
Equity data in generic format, including alternate identifiers. Fields that expect equity names can now specify alternate names using exchange and identifier type.
Better error handling: error messages appear in marketDataErrors.xml and data loading continues even in the face of errors.
New time series types:
RPI Index
Forward rates:
Correct problem with backfilling forward rates: if one time series is backfilled from time A and the other from time B, with A > B, then for some part of the time period, the forward rate was computed with one real value and one backfilled value; in time series with dramatic changes over time, this could produce negative forward rates which produced errors. Change is to compute the forward rate normally starting at the later of the earliest dates of the time series, and backfill from that date. The change allows some analyses to run that otherwise wouldn't, but causes small differences in cases that ran despite differences in backfilling, where the backfilled time series was not wildly different from the non-backfilled time series.
=============================================== All statistics:
Allow output as percent of total stat in addition to output as percent of total PV or cell PV. Allow output as basis points wherever output as percent is allowed.
30
Stress test within the lookback period.. The numbers for the date in question should have tied out. They did not.
20020417 lw Corrected bug in Secant Calibration in RM3.4.1.72 and before. This affects ABSOLUTELY ANY INSTRUMENT OF ANY KIND WHATSOEVER which may be calibrated.
In the secant calibration if the market price were so far out of range that we couldn't calibrate to it, we would return early rather than continuing to calibrate when we know we can't get the right answer. The trouble is that the spread wasn't necessarily set correctly on the early exit. The base value was wrong because it was calculated with the wrong spread (the last one used before we exited early), but the simulated values were right because they were calculated with the right spread. So the simulated returns were wrong.
The case where this would occur is when the given market price is so high that even with the largest negative spread permitted (default would be -2000 BP), we still can't reach the right answer. In this case this is true of all the positions (as they are really the same position as far as I can tell). With a negative spread of -2000 BP, the market price is still only 98.9. The problem here may be that the market price was specified as a dirty price rather than a clean price, or perhaps the accrued interest of 6.222904 on a position with a current rate of 4.39 is in error, or maybe these positions are supposed to have a reset spread that is missing. Whatever the problem is, you will get normal simulated returns even with RM3.4.1.66 on these positions if you change the market value to, say, 97.8 instead of 100.
The secant calibration error will never occur if the market price is not specified, or the market price is specified but is not too high. Even if the market price were too low, you wouldn't see the error. I think you can see the position diagnostics for a position in RiskManager, and that would show you the computed spread and the market price it came up with. If that doesn't match your market price, well, there's a problem with the market price or the accrued interest or both.
20020424 lw Added quadratic approximation to callables/convertibles. Makes difference of up to about 15% on VaR. This can be avoided by turning quadratic approximation off in the ini file. This is turned off by default in RM 3.4.1.86/87. Should not be turned on until release of 3.5.
20020429 lw Change default discount curve for FRNs from currency default curve to reference curve. 20020503 lw Corrected bug in Convertible Bonds where time series that affect price were not all reported (under some conditions), so Parametric analyses of Convertible Bonds were wrong in some cases. 20020508 lw Backfill forward rates: if one time series is backfilled from time A and the other from time B, with A > B, then for some part of the time period, the forward rate was computed with one real value and one backfilled value; in time series with dramatic changes over time, this could produce negative forward rates which produced errors. Change is to compute the forward rate normally starting at the later of the earliest dates of the time series, and backfill from that date. The change allows some analyses to run that otherwise wouldn't, but causes small differences in cases that ran despite differences in backfilling, where the backfilled time series was not wildly different from the non-backfilled time series.
20020508 lw Allow 0 accrued interest on FRNs.
20020513 lw Corrected bug that caused error when proxy series for equity had less history than the proxied series.
20020605 lw Corrected bug in Callable/Convertible Bonds where time series that affect price were still not all reported (under some conditions), so Parametric analyses of Convertible Bonds were wrong in some cases.
DataTrans 3.4 Patches
3.4.1.83
Blank Header and Footer Lines - Fixed problem with blank lines in header and footer sections of the file that contain no data, but may contain white space characters such as tabs or spaces. These lines are now ignored like any actually blank line would be.
Update RM3D - The file containing the invalid positions in the RiskManager interface did not contain line separators for RM2.3 version files. These files could not be loaded into Excel and would appear to be a
have this problem.
Dynamic Configuration of Translators - Made the installation of translation packages easier, so that the DataTrans configuration does not need to be updated when a new translator is installed. The old way of configuring translators still works, but now any .XML files found in the DT_????/conf/service directory can be used to configure DataTrans with additional translators. These configuration files will take precedence over any commands in the DataTransService_cfg.xml file. To take advantage of this, you will need to download the new translator packages from the Integration web site. Any older translation packages you may have downloaded will still work, but you will need to manually update the DataTransService_cfg.xml file for them to be loaded.
Corrected Interest Rate Futures - Moved VOLATILITY_SERIES field from "interestRateFuture" position to "interestRateFutureOption" where it should have been. This could potentially break someones file that included that field in an "interestRateFuture", but it was broken anyway and they would not have known it. 3.4.1.73
Accrued Interest for Bonds - For RM 2.3, removed rules governing the ACCRUED_INTEREST field in bonds and convertible bonds. The contents of the field are now simply copied; if the field is empty, an
<accruedInterest> tag is not added to the resulting RML instrument. 3.4.1.68
Case Sensitive Field Groups - Field Groups within RM 2.3 files are no longer case-sensitive. For instance, "TAG", "tag", and "Tag" are all synonymous.
3.4.1.67
Amortizing Bonds and RM3D - RM3D translator updated to make the PAY_DOWN_SCHEDULE_LIST field optional for the amortizingBond position type.
Performance Enhancement - Fixes problem with translation results being queued up until the entire job is finished. With the required patch to RiskManager, translation results will now be posted to the database as they are available from DataTrans. This should result in a significant speed improvement when importing positions into RiskManager.
RiskManager 3.4 Patches:
3.4.1.38
MarketData Viewer Error. A system error errors in the MarketData viewer if there is no commodity data in the local market database.
3.4.1.37
Duplicate Positions Imported. Duplicate positions are sometimes imported as a result of a threading problem on import. The threads have been synchronized to correct the problem.
3.4.1.36
Stack Trace when viewing a Super Group whose Position Group has been deleted. A stack trace occurred when viewing positions from the row menu on the Position Group List of a Super Group whose Position Group had been deleted. The Position Super Group was not being validated from the Position Group List "View by" feature like it was on the Position View Manager. In addition, after validating, a new sql
32
values for user-specified limits. More precisely, due to faulty mapping, rows in report tables were
sometimes assigned limits that actually belonged to their descendants in hypothetical netting hierarchies. User does not have private/shared option on some imports. Permission box was present but invisible on several import windows due to client-side javascript processing that rendered those rows invisible. This has been corrected so that all import windows have the permission box.
3.4.1.33
Corrected number alignment for user-defined stress test editor. The current level and new level columns were "left" aligned, making it difficult to read the numbers. Those columns were changed so that they are right aligned and the decimal places now line up.
Corrected Localized number formatting for Market Data \ Risk Setting lists. There was no
number formatting per localization for the current level on the new Market Data List nor for the decay factor on RiskSettings. The number of decimals for number columns on list pages is now
configurable. For example, the Position List page shows no decimals, Risk Settings show 2 decimals places for the decay factor, and the Market Data List shows 6 decimal places for the current level. The same decimal pattern is also applied in the search mechanism so that the results will return a partial pattern match for numbers.
Corrected instances variables that were not allowed in action classes. Instance variables are not allowed in action classes since the instance is shared across all users.
Incorrect Batch Schedule editing. Changed the Calendar instance to a GregorianCalendar in the Batch Sequence code because the Calendar object itself ignores the DST change.
Indexes and Processed Indexes produced zombie entries in application objects table (SQL script). Triggers now correctly delete the application object table entries for deleted Indexes and Processed Indexes. This would not be visible to users.
Processed Indexes given wrong application object id (SQL script). Stored procedure now assigns correct application object id. This id was not referenced, so the problem would not be visible to users.
Some queries producing deadlock in SQL Server. Code added to detect SQL Server deadlock and attempt to retry query when deadlocked and terminated.
Corrected Stored Reports Problem with Batch Jobs. Fixes problem in stored reports in which population from database occasionally results in lost reports because of java.sql.Timestamp comparison problem. Reports persist in database but are not loaded into memory. This fix prevents loss and will recover reports that were stored but did not show up in the list due to this problem.