SystemicScenarioDefinitionContextManager.java

  1. package org.drip.capital.env;

  2. /*
  3.  * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  4.  */

  5. /*!
  6.  * Copyright (C) 2020 Lakshmi Krishnamurthy
  7.  * Copyright (C) 2019 Lakshmi Krishnamurthy
  8.  *
  9.  *  This file is part of DROP, an open-source library targeting analytics/risk, transaction cost analytics,
  10.  *      asset liability management analytics, capital, exposure, and margin analytics, valuation adjustment
  11.  *      analytics, and portfolio construction analytics within and across fixed income, credit, commodity,
  12.  *      equity, FX, and structured products. It also includes auxiliary libraries for algorithm support,
  13.  *      numerical analysis, numerical optimization, spline builder, model validation, statistical learning,
  14.  *      and computational support.
  15.  *  
  16.  *      https://lakshmidrip.github.io/DROP/
  17.  *  
  18.  *  DROP is composed of three modules:
  19.  *  
  20.  *  - DROP Product Core - https://lakshmidrip.github.io/DROP-Product-Core/
  21.  *  - DROP Portfolio Core - https://lakshmidrip.github.io/DROP-Portfolio-Core/
  22.  *  - DROP Computational Core - https://lakshmidrip.github.io/DROP-Computational-Core/
  23.  *
  24.  *  DROP Product Core implements libraries for the following:
  25.  *  - Fixed Income Analytics
  26.  *  - Loan Analytics
  27.  *  - Transaction Cost Analytics
  28.  *
  29.  *  DROP Portfolio Core implements libraries for the following:
  30.  *  - Asset Allocation Analytics
  31.  *  - Asset Liability Management Analytics
  32.  *  - Capital Estimation Analytics
  33.  *  - Exposure Analytics
  34.  *  - Margin Analytics
  35.  *  - XVA Analytics
  36.  *
  37.  *  DROP Computational Core implements libraries for the following:
  38.  *  - Algorithm Support
  39.  *  - Computation Support
  40.  *  - Function Analysis
  41.  *  - Model Validation
  42.  *  - Numerical Analysis
  43.  *  - Numerical Optimizer
  44.  *  - Spline Builder
  45.  *  - Statistical Learning
  46.  *
  47.  *  Documentation for DROP is Spread Over:
  48.  *
  49.  *  - Main                     => https://lakshmidrip.github.io/DROP/
  50.  *  - Wiki                     => https://github.com/lakshmiDRIP/DROP/wiki
  51.  *  - GitHub                   => https://github.com/lakshmiDRIP/DROP
  52.  *  - Repo Layout Taxonomy     => https://github.com/lakshmiDRIP/DROP/blob/master/Taxonomy.md
  53.  *  - Javadoc                  => https://lakshmidrip.github.io/DROP/Javadoc/index.html
  54.  *  - Technical Specifications => https://github.com/lakshmiDRIP/DROP/tree/master/Docs/Internal
  55.  *  - Release Versions         => https://lakshmidrip.github.io/DROP/version.html
  56.  *  - Community Credits        => https://lakshmidrip.github.io/DROP/credits.html
  57.  *  - Issues Catalog           => https://github.com/lakshmiDRIP/DROP/issues
  58.  *  - JUnit                    => https://lakshmidrip.github.io/DROP/junit/index.html
  59.  *  - Jacoco                   => https://lakshmidrip.github.io/DROP/jacoco/index.html
  60.  *
  61.  *  Licensed under the Apache License, Version 2.0 (the "License");
  62.  *      you may not use this file except in compliance with the License.
  63.  *  
  64.  *  You may obtain a copy of the License at
  65.  *      http://www.apache.org/licenses/LICENSE-2.0
  66.  *  
  67.  *  Unless required by applicable law or agreed to in writing, software
  68.  *      distributed under the License is distributed on an "AS IS" BASIS,
  69.  *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  70.  *  
  71.  *  See the License for the specific language governing permissions and
  72.  *      limitations under the License.
  73.  */

  74. /**
  75.  * <i>SystemicScenarioDefinitionContextManager</i> sets up the Predictor Scenario Specification Container.
  76.  *  The References are:
  77.  *
  78.  * <br><br>
  79.  *  <ul>
  80.  *      <li>
  81.  *          Bank for International Supervision(2005): Stress Testing at Major Financial Institutions: Survey
  82.  *              Results and Practice https://www.bis.org/publ/cgfs24.htm
  83.  *      </li>
  84.  *      <li>
  85.  *          Glasserman, P. (2004): <i>Monte Carlo Methods in Financial Engineering</i> <b>Springer</b>
  86.  *      </li>
  87.  *      <li>
  88.  *          Kupiec, P. H. (2000): Stress Tests and Risk Capital <i>Risk</i> <b>2 (4)</b> 27-39
  89.  *      </li>
  90.  *  </ul>
  91.  *
  92.  *  <br><br>
  93.  *  <ul>
  94.  *      <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/PortfolioCore.md">Portfolio Core Module</a></li>
  95.  *      <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/CapitalAnalyticsLibrary.md">Capital Analytics</a></li>
  96.  *      <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/capital/README.md">Basel Market Risk and Operational Capital</a></li>
  97.  *      <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/capital/env/README.md">Economic Risk Capital Parameter Factories</a></li>
  98.  *  </ul>
  99.  *
  100.  * @author Lakshmi Krishnamurthy
  101.  */

  102. public class SystemicScenarioDefinitionContextManager
  103. {
  104.     private static org.drip.capital.shell.PredictorScenarioSpecificationContainer
  105.         s_PredictorScenarioSpecificationContainer = null;

  106.     private static final boolean UpdatePredictorScenarioSpecification (
  107.         final java.lang.String predictor,
  108.         final java.lang.String category,
  109.         final java.lang.String[] marketSegmentArray,
  110.         final java.lang.String stressScenarioTypeOfChange,
  111.         final int stressScenarioUnit,
  112.         final double dollarDecline,
  113.         final double lostDecade,
  114.         final double interestRateShock,
  115.         final double deepDownturn,
  116.         final double historical1974FY,
  117.         final double historical2008FY,
  118.         final double capitalBaseline1974FY,
  119.         final double capitalBaseline2008FY)
  120.     {
  121.         org.drip.capital.systemicscenario.PredictorScenarioSpecification predictorScenarioSpecification = null;

  122.         boolean predictorAvailable = s_PredictorScenarioSpecificationContainer.containsPredictor (
  123.             predictor
  124.         );

  125.         if (predictorAvailable)
  126.         {
  127.             predictorScenarioSpecification =
  128.                 s_PredictorScenarioSpecificationContainer.predictorScenarioSpecification (
  129.                     predictor
  130.                 );
  131.         }
  132.         else
  133.         {
  134.             try
  135.             {
  136.                 predictorScenarioSpecification =
  137.                     new org.drip.capital.systemicscenario.PredictorScenarioSpecification (
  138.                         predictor,
  139.                         category
  140.                     );
  141.             }
  142.             catch (java.lang.Exception e)
  143.             {
  144.                 e.printStackTrace();

  145.                 return false;
  146.             }
  147.         }

  148.         try
  149.         {
  150.             org.drip.capital.systemicscenario.StressScenarioSpecification stressScenarioSpecification =
  151.                 new org.drip.capital.systemicscenario.StressScenarioSpecification (
  152.                     new org.drip.capital.systemicscenario.StressScenarioQuantification (
  153.                         stressScenarioTypeOfChange,
  154.                         stressScenarioUnit
  155.                     ),
  156.                     new org.drip.capital.systemicscenario.HypotheticalScenarioDefinition (
  157.                         dollarDecline,
  158.                         lostDecade,
  159.                         interestRateShock,
  160.                         deepDownturn
  161.                     ),
  162.                     new org.drip.capital.systemicscenario.HistoricalScenarioDefinition (
  163.                         historical1974FY,
  164.                         historical2008FY
  165.                     ),
  166.                     new org.drip.capital.systemicscenario.CapitalBaselineDefinition (
  167.                         capitalBaseline1974FY,
  168.                         capitalBaseline2008FY
  169.                     )
  170.                 );

  171.             for (java.lang.String marketSegment : marketSegmentArray)
  172.             {
  173.                 if (!predictorScenarioSpecification.addStressScenarioSpecification (
  174.                     marketSegment,
  175.                     stressScenarioSpecification
  176.                 ))
  177.                 {
  178.                     return false;
  179.                 }
  180.             }
  181.         }
  182.         catch (java.lang.Exception e)
  183.         {
  184.             e.printStackTrace();

  185.             return false;
  186.         }

  187.         if (!predictorAvailable)
  188.         {
  189.             s_PredictorScenarioSpecificationContainer.addPredictorScenarioSpecification (
  190.                 predictorScenarioSpecification
  191.             );
  192.         }

  193.         return true;
  194.     }

  195.     /**
  196.      * Initialize the GSST Design Context Manager
  197.      *
  198.      * @return TRUE - The GSST Design Context Manager successfully initialized
  199.      */

  200.     public static final boolean Init()
  201.     {
  202.         s_PredictorScenarioSpecificationContainer =
  203.             new org.drip.capital.shell.PredictorScenarioSpecificationContainer();

  204.         if (!UpdatePredictorScenarioSpecification (
  205.             "GDP",
  206.             "Macro-economic variables",
  207.             new java.lang.String[]
  208.             {
  209.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  210.                 org.drip.capital.systemicscenario.MarketSegment.EM
  211.             },
  212.             org.drip.capital.systemicscenario.TypeOfChange.SCENARIO_GDP_GROWTH,
  213.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT_POINT,
  214.             -0.8,
  215.             -0.8,
  216.             -1.5,
  217.             -1.6,
  218.             -2.3,
  219.             -5.0,
  220.             java.lang.Double.NaN,
  221.             java.lang.Double.NaN
  222.         ))
  223.         {
  224.             return false;
  225.         }

  226.         if (!UpdatePredictorScenarioSpecification (
  227.             "Unemployment",
  228.             "Macro-economic variables",
  229.             new java.lang.String[]
  230.             {
  231.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  232.                 org.drip.capital.systemicscenario.MarketSegment.EM
  233.             },
  234.             org.drip.capital.systemicscenario.TypeOfChange.PEAK_VS_CURRENT_LEVEL,
  235.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT_POINT,
  236.             1.7,
  237.             1.8,
  238.             2.0,
  239.             2.3,
  240.             3.7,
  241.             4.0,
  242.             java.lang.Double.NaN,
  243.             java.lang.Double.NaN
  244.         ))
  245.         {
  246.             return false;
  247.         }

  248.         if (!UpdatePredictorScenarioSpecification (
  249.             "House Prices (Case/Shiller)",
  250.             "Macro-economic variables",
  251.             new java.lang.String[]
  252.             {
  253.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  254.                 org.drip.capital.systemicscenario.MarketSegment.EM
  255.             },
  256.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  257.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  258.              -7.7,
  259.             -13.3,
  260.             -16.0,
  261.             -17.2,
  262.              -5.0,
  263.             -20.0,
  264.             java.lang.Double.NaN,
  265.             java.lang.Double.NaN
  266.         ))
  267.         {
  268.             return false;
  269.         }

  270.         if (!UpdatePredictorScenarioSpecification (
  271.             "IR Level",
  272.             "Market factors",
  273.             new java.lang.String[]
  274.             {
  275.                 org.drip.capital.systemicscenario.MarketSegment.DM_LO_VOL,
  276.                 org.drip.capital.systemicscenario.MarketSegment.EM_LO_VOL
  277.             },
  278.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_4_Q_FORWARD,
  279.             org.drip.capital.systemicscenario.CriterionUnit.BASIS_POINT,
  280.               86,
  281.              -64,
  282.              175,
  283.             -134,
  284.              183,
  285.             -200,
  286.              150,
  287.             -100
  288.         ))
  289.         {
  290.             return false;
  291.         }

  292.         if (!UpdatePredictorScenarioSpecification (
  293.             "IR Level",
  294.             "Market factors",
  295.             new java.lang.String[]
  296.             {
  297.                 org.drip.capital.systemicscenario.MarketSegment.EM_HI_VOL
  298.             },
  299.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_4_Q_FORWARD,
  300.             org.drip.capital.systemicscenario.CriterionUnit.BASIS_POINT,
  301.               86,
  302.               50,
  303.              275,
  304.              100,
  305.              112,
  306.              200,
  307.              112,
  308.              200
  309.         ))
  310.         {
  311.             return false;
  312.         }

  313.         if (!UpdatePredictorScenarioSpecification (
  314.             "IR Slope (10y-3mo, bps)",
  315.             "Market factors",
  316.             new java.lang.String[]
  317.             {
  318.                 org.drip.capital.systemicscenario.MarketSegment.DM_LO_VOL,
  319.                 org.drip.capital.systemicscenario.MarketSegment.EM_LO_VOL
  320.             },
  321.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_4_Q_FORWARD,
  322.             org.drip.capital.systemicscenario.CriterionUnit.BASIS_POINT,
  323.             -124,
  324.              -42,
  325.              -50,
  326.             -102,
  327.              -53,
  328.              129,
  329.             -100,
  330.              100
  331.         ))
  332.         {
  333.             return false;
  334.         }

  335.         if (!UpdatePredictorScenarioSpecification (
  336.             "IR Slope (10y-3mo, bps)",
  337.             "Market factors",
  338.             new java.lang.String[]
  339.             {
  340.                 org.drip.capital.systemicscenario.MarketSegment.EM_HI_VOL
  341.             },
  342.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_4_Q_FORWARD,
  343.             org.drip.capital.systemicscenario.CriterionUnit.BASIS_POINT,
  344.             -124,
  345.              -54,
  346.              -50,
  347.             -109,
  348.             -122,
  349.             -218,
  350.             -174,
  351.             -218
  352.         ))
  353.         {
  354.             return false;
  355.         }

  356.         if (!UpdatePredictorScenarioSpecification (
  357.             "Credit Spread including Munis",
  358.             "Market factors",
  359.             new java.lang.String[]
  360.             {
  361.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  362.                 org.drip.capital.systemicscenario.MarketSegment.EM
  363.             },
  364.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_AS_PERCENT_OF_CALENDAR_2008_SPREAD_WIDENING,
  365.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  366.              30,
  367.              25,
  368.              40,
  369.              50,
  370.              56,
  371.             100,
  372.              80,
  373.             100
  374.         ))
  375.         {
  376.             return false;
  377.         }

  378.         if (!UpdatePredictorScenarioSpecification (
  379.             "Spot FX (USD vs. all other currencies)",
  380.             "Market factors",
  381.             new java.lang.String[]
  382.             {
  383.                 org.drip.capital.systemicscenario.MarketSegment.DM_LO_VOL,
  384.                 org.drip.capital.systemicscenario.MarketSegment.EM_LO_VOL
  385.             },
  386.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  387.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  388.             -7.0,
  389.              4.8,
  390.              3.0,
  391.             12.0,
  392.             -8.0,
  393.              8.0,
  394.             -8.0,
  395.              8.0
  396.         ))
  397.         {
  398.             return false;
  399.         }

  400.         if (!UpdatePredictorScenarioSpecification (
  401.             "Spot FX (USD vs. all other currencies)",
  402.             "Market factors",
  403.             new java.lang.String[]
  404.             {
  405.                 org.drip.capital.systemicscenario.MarketSegment.EM_HI_VOL
  406.             },
  407.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  408.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  409.             -10.0,
  410.               4.8,
  411.               6.0,
  412.              24.0,
  413.              -8.0,
  414.              24.0,
  415.              -8.0,
  416.              24.0
  417.         ))
  418.         {
  419.             return false;
  420.         }

  421.         if (!UpdatePredictorScenarioSpecification (
  422.             "Equity and Equity Indices",
  423.             "Market factors",
  424.             new java.lang.String[]
  425.             {
  426.                 org.drip.capital.systemicscenario.MarketSegment.DM
  427.             },
  428.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  429.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  430.             -15.1,
  431.             -17.0,
  432.             -25.0,
  433.             -30.2,
  434.             -30.0,
  435.             -40.0,
  436.             -25.5,
  437.             -32.0
  438.         ))
  439.         {
  440.             return false;
  441.         }

  442.         if (!UpdatePredictorScenarioSpecification (
  443.             "Equity and Equity Indices",
  444.             "Market factors",
  445.             new java.lang.String[]
  446.             {
  447.                 org.drip.capital.systemicscenario.MarketSegment.EM
  448.             },
  449.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  450.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  451.             -18.9,
  452.             -21.0,
  453.             -35.0,
  454.             -37.8,
  455.             -40.0,
  456.             -55.0,
  457.             -30.5,
  458.             -40.0
  459.         ))
  460.         {
  461.             return false;
  462.         }

  463.         if (!UpdatePredictorScenarioSpecification (
  464.             "Private Equity",
  465.             "Market factors",
  466.             new java.lang.String[]
  467.             {
  468.                 org.drip.capital.systemicscenario.MarketSegment.DM
  469.             },
  470.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  471.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  472.             -12.1,
  473.             -13.6,
  474.             -20.0,
  475.             -24.2,
  476.             -24.0,
  477.             -32.0,
  478.             java.lang.Double.NaN,
  479.             java.lang.Double.NaN
  480.         ))
  481.         {
  482.             return false;
  483.         }

  484.         if (!UpdatePredictorScenarioSpecification (
  485.             "Private Equity",
  486.             "Market factors",
  487.             new java.lang.String[]
  488.             {
  489.                 org.drip.capital.systemicscenario.MarketSegment.EM
  490.             },
  491.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  492.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  493.             -15.1,
  494.             -17.0,
  495.             -28.0,
  496.             -30.2,
  497.             -32.0,
  498.             -44.0,
  499.             java.lang.Double.NaN,
  500.             java.lang.Double.NaN
  501.         ))
  502.         {
  503.             return false;
  504.         }

  505.         if (!UpdatePredictorScenarioSpecification (
  506.             "Hedge Funds",
  507.             "Market factors",
  508.             new java.lang.String[]
  509.             {
  510.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  511.                 org.drip.capital.systemicscenario.MarketSegment.EM
  512.             },
  513.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  514.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  515.              -6.1,
  516.              -6.0,
  517.             -10.0,
  518.             -12.1,
  519.             -12.0,
  520.             -16.0,
  521.             java.lang.Double.NaN,
  522.             java.lang.Double.NaN
  523.         ))
  524.         {
  525.             return false;
  526.         }

  527.         if (!UpdatePredictorScenarioSpecification (
  528.             "ABX index 07-1 AAA",
  529.             "Market factors",
  530.             new java.lang.String[]
  531.             {
  532.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  533.                 org.drip.capital.systemicscenario.MarketSegment.EM
  534.             },
  535.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  536.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  537.             -17.0,
  538.             -10.0,
  539.             -10.8,
  540.             -25.0,
  541.             -15.0,
  542.             -55.0,
  543.             -20.0,
  544.             -40.0
  545.         ))
  546.         {
  547.             return false;
  548.         }

  549.         if (!UpdatePredictorScenarioSpecification (
  550.             "Energy (WTI, 1MFt)",
  551.             "Market factors",
  552.             new java.lang.String[]
  553.             {
  554.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  555.                 org.drip.capital.systemicscenario.MarketSegment.EM
  556.             },
  557.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  558.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  559.              59.6,
  560.             -14.9,
  561.              20.0,
  562.             -36.2,
  563.             160.0,
  564.             -55.0,
  565.             112.0,
  566.             -32.0
  567.         ))
  568.         {
  569.             return false;
  570.         }

  571.         if (!UpdatePredictorScenarioSpecification (
  572.             "Natural Gas (NYMEX, 3MFt)",
  573.             "Market factors",
  574.             new java.lang.String[]
  575.             {
  576.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  577.                 org.drip.capital.systemicscenario.MarketSegment.EM
  578.             },
  579.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  580.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  581.              55.6,
  582.             -15.6,
  583.              18.5,
  584.             -31.1,
  585.              90.9,
  586.             -20.0,
  587.              89.0,
  588.             -28.0
  589.         ))
  590.         {
  591.             return false;
  592.         }

  593.         if (!UpdatePredictorScenarioSpecification (
  594.             "Copper (Spot)",
  595.             "Market factors",
  596.             new java.lang.String[]
  597.             {
  598.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  599.                 org.drip.capital.systemicscenario.MarketSegment.EM
  600.             },
  601.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  602.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  603.              51.9,
  604.             -20.0,
  605.              17.3,
  606.             -40.0,
  607.              84.7,
  608.             -53.0,
  609.              83.0,
  610.             -36.0
  611.         ))
  612.         {
  613.             return false;
  614.         }

  615.         if (!UpdatePredictorScenarioSpecification (
  616.             "Gold (Spot)",
  617.             "Market factors",
  618.             new java.lang.String[]
  619.             {
  620.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  621.                 org.drip.capital.systemicscenario.MarketSegment.EM
  622.             },
  623.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  624.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  625.              45.6,
  626.              -8.3,
  627.              20.0,
  628.             -16.7,
  629.              72.0,
  630.               2.0,
  631.              73.0,
  632.             -15.0
  633.         ))
  634.         {
  635.             return false;
  636.         }

  637.         if (!UpdatePredictorScenarioSpecification (
  638.             "Corn (3MFt)",
  639.             "Market factors",
  640.             new java.lang.String[]
  641.             {
  642.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  643.                 org.drip.capital.systemicscenario.MarketSegment.EM
  644.             },
  645.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  646.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  647.              33.1,
  648.             -11.7,
  649.              11.0,
  650.             -23.3,
  651.              54.1,
  652.             -14.0,
  653.              53.0,
  654.             -21.0
  655.         ))
  656.         {
  657.             return false;
  658.         }

  659.         if (!UpdatePredictorScenarioSpecification (
  660.             "Other Commodities",
  661.             "Market factors",
  662.             new java.lang.String[]
  663.             {
  664.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  665.                 org.drip.capital.systemicscenario.MarketSegment.EM
  666.             },
  667.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  668.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  669.              30,
  670.             -10,
  671.              10,
  672.             -20,
  673.              49,
  674.             -29,
  675.              48,
  676.             -18
  677.         ))
  678.         {
  679.             return false;
  680.         }

  681.         if (!UpdatePredictorScenarioSpecification (
  682.             "Equity Implied Vols (VIX)",
  683.             "Market factors",
  684.             new java.lang.String[]
  685.             {
  686.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  687.                 org.drip.capital.systemicscenario.MarketSegment.EM
  688.             },
  689.             org.drip.capital.systemicscenario.TypeOfChange.VOLATILITY_POINT_CHANGE_AS_PERCENT_OF_2008_VOLATILITY_POINT_CHANGE,
  690.             org.drip.capital.systemicscenario.CriterionUnit.VOLATILITY_POINT,
  691.              37.9,
  692.              42.6,
  693.              67.5,
  694.              75.6,
  695.              75.0,
  696.             100.0,
  697.              63.8,
  698.              80.0
  699.         ))
  700.         {
  701.             return false;
  702.         }

  703.         if (!UpdatePredictorScenarioSpecification (
  704.             "Implied Vols - Other",
  705.             "Market factors",
  706.             new java.lang.String[]
  707.             {
  708.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  709.                 org.drip.capital.systemicscenario.MarketSegment.EM
  710.             },
  711.             org.drip.capital.systemicscenario.TypeOfChange.CHANGE_VS_CURRENT,
  712.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  713.             21.5,
  714.             16.0,
  715.             30.0,
  716.             33.5,
  717.             45.0,
  718.             50.0,
  719.             40.0,
  720.             25.0
  721.         ))
  722.         {
  723.             return false;
  724.         }

  725.         if (!UpdatePredictorScenarioSpecification (
  726.             "Wholesale LGD",
  727.             "Other",
  728.             new java.lang.String[]
  729.             {
  730.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  731.                 org.drip.capital.systemicscenario.MarketSegment.EM
  732.             },
  733.             org.drip.capital.systemicscenario.TypeOfChange.NONE,
  734.             org.drip.capital.systemicscenario.CriterionUnit.PERCENT,
  735.             35,
  736.             35,
  737.             50,
  738.             50,
  739.             50,
  740.             50,
  741.             50,
  742.             50
  743.         ))
  744.         {
  745.             return false;
  746.         }

  747.         if (!UpdatePredictorScenarioSpecification (
  748.             "Likelihood of scenario",
  749.             "Other",
  750.             new java.lang.String[]
  751.             {
  752.                 org.drip.capital.systemicscenario.MarketSegment.DM,
  753.                 org.drip.capital.systemicscenario.MarketSegment.EM
  754.             },
  755.             org.drip.capital.systemicscenario.TypeOfChange.NONE,
  756.             org.drip.capital.systemicscenario.CriterionUnit.ABSOLUTE,
  757.             0.02,
  758.             0.02,
  759.             0.02,
  760.             0.02,
  761.             0.02,
  762.             0.02,
  763.             0.02,
  764.             0.02
  765.         ))
  766.         {
  767.             return false;
  768.         }

  769.         return true;
  770.     }

  771.     /**
  772.      * Retrieve the Predictor Scenario Specification Container
  773.      *
  774.      * @return The Predictor Scenario Specification Container
  775.      */

  776.     public static final org.drip.capital.shell.PredictorScenarioSpecificationContainer
  777.         PredictorScenarioSpecificationContainer()
  778.     {
  779.         return s_PredictorScenarioSpecificationContainer;
  780.     }
  781. }