<?xml version="1.0"?>
<Simulation>
  <!--
	This section determines the scenario generation
	given the model defined below.
    -->
    
    <Parameters>

      <Discretization>Exact</Discretization>
      <Grid>81,3M</Grid>
      <!--<Grid>242,1M</Grid>-->
      <Calendar>EUR,USD,GBP,CHF</Calendar>
      <Sequence>SobolBrownianBridge</Sequence>
      <Scenario>Simple</Scenario>
      <Seed>42</Seed>
      <Samples>1000</Samples>
      <Ordering>Steps</Ordering>
      <DirectionIntegers>JoeKuoD7</DirectionIntegers>
    </Parameters>

    <!--
	This section determines the simulation model composition
	and the calibration of all components.
    -->
  <CrossAssetModel>
    <DomesticCcy>EUR</DomesticCcy>
    <Currencies>
      <Currency>EUR</Currency>
      <Currency>USD</Currency>
      <Currency>GBP</Currency>
      <Currency>CHF</Currency>
      <Currency>JPY</Currency>
    </Currencies>
    <Equities>
      <Equity>SP5</Equity>
      <Equity>Lufthansa</Equity>
    </Equities>
    <Commodities>
      <Commodity>COMDTY_WTI_USD</Commodity>
    </Commodities>
    <!--
    <CreditNames>
      <CreditName>CPTY_A</CreditName>
      <CreditName>CPTY_B</CreditName>
      <CreditName>BANK</CreditName>
    </CreditNames>
    -->
    <BootstrapTolerance>0.0001</BootstrapTolerance>
    <InterestRateModels>
      <LGM ccy="default">
        <CalibrationType>Bootstrap</CalibrationType>
        <!-- Bootstrap, BestFit -->
        <Volatility>
          <Calibrate>Y</Calibrate>
          <VolatilityType>Hagan</VolatilityType>
          <!-- Hagan, HullWhite -->
          <ParamType>Piecewise</ParamType>
          <!-- Constant, Piecewise -->
          <TimeGrid>1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <!-- <TimeGrid/> -->
          <InitialValue>0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01</InitialValue>
          <!-- <InitialValue>0.01</InitialValue>-->
        </Volatility>
        <Reversion>
          <Calibrate>N</Calibrate>
          <ReversionType>HullWhite</ReversionType>
          <!-- Hagan, HullWhite -->
          <ParamType>Constant</ParamType>
          <!-- Constant, Piecewise -->
          <TimeGrid/>
          <InitialValue>0.03</InitialValue>
        </Reversion>
        <CalibrationSwaptions>
          <Expiries> 1Y,  2Y,  4Y,  6Y,  8Y, 10Y, 12Y, 14Y, 16Y, 18Y, 19Y</Expiries>
          <Terms>   19Y, 18Y, 16Y, 14Y, 12Y, 10Y,  8Y,  6Y,  4Y,  2Y,  1Y</Terms>
          <Strikes/>
        </CalibrationSwaptions>
        <ParameterTransformation>
          <ShiftHorizon>0.0</ShiftHorizon>
          <Scaling>1.0</Scaling>
        </ParameterTransformation>
      </LGM>
      <LGM ccy="EUR">
        <CalibrationType>Bootstrap</CalibrationType>
        <Volatility>
          <Calibrate>Y</Calibrate>
          <VolatilityType>Hagan</VolatilityType>
          <ParamType>Piecewise</ParamType>
          <TimeGrid>1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <InitialValue>0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01</InitialValue>
        </Volatility>
        <Reversion>
          <Calibrate>N</Calibrate>
          <ReversionType>HullWhite</ReversionType>
          <ParamType>Constant</ParamType>
          <TimeGrid/>
          <InitialValue>0.03</InitialValue>
        </Reversion>
        <CalibrationSwaptions>
          <Expiries> 1Y,  2Y,  4Y,  6Y,  8Y, 10Y, 12Y, 14Y, 16Y, 18Y, 19Y</Expiries>
          <Terms>   19Y, 18Y, 16Y, 14Y, 12Y, 10Y,  8Y,  6Y,  4Y,  2Y,  1Y</Terms>
          <Strikes/>
        </CalibrationSwaptions>
        <ParameterTransformation>
          <ShiftHorizon>0.0</ShiftHorizon>
          <Scaling>1.0</Scaling>
        </ParameterTransformation>
      </LGM>
      <LGM ccy="CHF">
        <CalibrationType>Bootstrap</CalibrationType>
        <Volatility>
          <Calibrate>Y</Calibrate>
          <VolatilityType>Hagan</VolatilityType>
          <ParamType>Piecewise</ParamType>
          <TimeGrid>1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <InitialValue>0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01</InitialValue>
        </Volatility>
        <Reversion>
          <Calibrate>N</Calibrate>
          <ReversionType>HullWhite</ReversionType>
          <ParamType>Constant</ParamType>
          <TimeGrid/>
          <InitialValue>0.03</InitialValue>
        </Reversion>
        <CalibrationSwaptions>
          <Expiries> 1Y,  2Y,  4Y,  6Y,  8Y, 10Y, 12Y, 14Y, 16Y, 18Y, 19Y</Expiries>
          <Terms>   19Y, 18Y, 16Y, 14Y, 12Y, 10Y,  8Y,  6Y,  4Y,  2Y,  1Y</Terms>
          <Strikes/>
        </CalibrationSwaptions>
        <ParameterTransformation>
          <ShiftHorizon>0.0</ShiftHorizon>
          <Scaling>1.0</Scaling>
        </ParameterTransformation>
      </LGM>
    </InterestRateModels>
    <ForeignExchangeModels>
      <CrossCcyLGM foreignCcy="default">
        <DomesticCcy>EUR</DomesticCcy>
        <CalibrationType>Bootstrap</CalibrationType>
        <Sigma>
          <Calibrate>Y</Calibrate>
          <ParamType>Piecewise</ParamType>
          <TimeGrid>1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <InitialValue>0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1</InitialValue>
        </Sigma>
        <CalibrationOptions>
          <Expiries>1Y, 2Y, 3Y, 4Y, 5Y, 10Y</Expiries>
          <Strikes/>
          <!-- ATMF, +25D, -25D, 1.2345 -->
        </CalibrationOptions>
      </CrossCcyLGM>
      <CrossCcyLGM foreignCcy="USD">
        <DomesticCcy>EUR</DomesticCcy>
        <CalibrationType>Bootstrap</CalibrationType>
        <Sigma>
          <Calibrate>Y</Calibrate>
          <ParamType>Piecewise</ParamType>
          <TimeGrid>1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <InitialValue>0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1</InitialValue>
        </Sigma>
        <CalibrationOptions>
          <Expiries>1Y, 2Y, 3Y, 4Y, 5Y, 10Y</Expiries>
          <Strikes/>
          <!-- ATMF, +25D, -25D, 1.2345 -->
        </CalibrationOptions>
      </CrossCcyLGM>
      <CrossCcyLGM foreignCcy="GBP">
        <DomesticCcy>EUR</DomesticCcy>
        <CalibrationType>Bootstrap</CalibrationType>
        <Sigma>
          <Calibrate>Y</Calibrate>
          <ParamType>Piecewise</ParamType>
          <TimeGrid>    1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <InitialValue>0.1, 0.1, 0.1, 0.1, 0.1, 0.1,  0.1, 0.1</InitialValue>
        </Sigma>
        <CalibrationOptions>
          <Expiries>1Y, 2Y, 3Y, 4Y, 5Y, 10Y</Expiries>
          <Strikes/>
        </CalibrationOptions>
      </CrossCcyLGM>
    </ForeignExchangeModels>
    <EquityModels>
      <CrossAssetLGM name="default">
        <Currency>EUR</Currency>
        <CalibrationType>Bootstrap</CalibrationType>
        <Sigma>
          <Calibrate>Y</Calibrate>
          <ParamType>Piecewise</ParamType>
          <TimeGrid>    1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <InitialValue>0.1, 0.1, 0.1, 0.1, 0.1, 0.1,  0.1, 0.1</InitialValue>
        </Sigma>
        <CalibrationOptions>
          <Expiries>1Y, 2Y, 3Y, 4Y, 5Y, 10Y</Expiries>
          <Strikes/>
        </CalibrationOptions>
      </CrossAssetLGM>    
      <CrossAssetLGM name="SP5">
        <Currency>USD</Currency>
        <CalibrationType>Bootstrap</CalibrationType>
        <Sigma>
          <Calibrate>Y</Calibrate>
          <ParamType>Piecewise</ParamType>
          <TimeGrid>    1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <InitialValue>0.1, 0.1, 0.1, 0.1, 0.1, 0.1,  0.1, 0.1</InitialValue>
        </Sigma>
        <CalibrationOptions>
          <Expiries>1Y, 2Y, 3Y, 4Y, 5Y, 10Y</Expiries>
          <Strikes/>
        </CalibrationOptions>
      </CrossAssetLGM>
    </EquityModels>    
    <CommodityModels>
      <CommoditySchwartz name="COMDTY_WTI_USD">
        <Currency>USD</Currency>
        <CalibrationType>Bootstrap</CalibrationType>
        <Sigma>
          <Calibrate>false</Calibrate>
          <InitialValue>0.1</InitialValue>
        </Sigma>
        <Kappa>
          <Calibrate>false</Calibrate>
          <InitialValue>0.0</InitialValue>
        </Kappa>
        <Seasonality>
          <Calibrate>true</Calibrate>
          <ParamType>Piecewise</ParamType>
          <TimeGrid>1, 2, 3, 4, 5, 10 </TimeGrid>
          <InitialValue>0.01, 0.01, 0.01, 0.01, 0.01, 0.01 </InitialValue>
        </Seasonality>
        <CalibrationOptions>
          <Expiries>1Y, 2Y, 3Y, 4Y, 5Y, 10Y</Expiries>
          <Strikes/>
        </CalibrationOptions>
        <DriftFreeState>false</DriftFreeState>
      </CommoditySchwartz>
    </CommodityModels>
    <CreditModels>
      <LGM name="default">
        <CalibrationType>None</CalibrationType>
        <Volatility>
          <Calibrate>N</Calibrate>
          <VolatilityType>Hagan</VolatilityType>
          <ParamType>Constant</ParamType>
          <TimeGrid>1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0</TimeGrid>
          <InitialValue>0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01</InitialValue>
        </Volatility>
        <Reversion>
          <Calibrate>N</Calibrate>
          <ReversionType>HullWhite</ReversionType>
          <ParamType>Constant</ParamType>
          <TimeGrid/>
          <InitialValue>0.03</InitialValue>
        </Reversion>
        <CalibrationCdsOptions>
          <Expiries> 1Y,  2Y,  4Y,  6Y,  8Y, 10Y, 12Y, 14Y, 16Y, 18Y, 19Y</Expiries>
          <Terms>   19Y, 18Y, 16Y, 14Y, 12Y, 10Y,  8Y,  6Y,  4Y,  2Y,  1Y</Terms>
          <Strikes/>
        </CalibrationCdsOptions>
        <ParameterTransformation>
          <ShiftHorizon>0.0</ShiftHorizon>
          <Scaling>1.0</Scaling>
        </ParameterTransformation>
      </LGM>
    </CreditModels>
    <InstantaneousCorrelations>
      <Correlation factor1="IR:EUR" factor2="IR:USD">0.3</Correlation>
      <Correlation factor1="IR:EUR" factor2="IR:GBP">0.3</Correlation>
      <Correlation factor1="IR:USD" factor2="IR:GBP">0.3</Correlation>
      <Correlation factor1="IR:EUR" factor2="CR:CPTY_A">0.0</Correlation>
      <Correlation factor1="CR:CPTY_A" factor2="CR:CPTY_B">0.8</Correlation>
    </InstantaneousCorrelations>
  </CrossAssetModel>
  <!--
	This setion determines the composition of the market used for
	pricing under future market scenarios,
	1) the structure/composition of the actively simulated market (IR, FX)
	2) the method applied to evolve volatility structures even if not
	simulated (roll or push)
    -->
  <Market>
    <BaseCurrency>EUR</BaseCurrency>
    <Currencies>
      <Currency>EUR</Currency>
      <Currency>USD</Currency>
      <Currency>GBP</Currency>
      <Currency>CHF</Currency>
      <Currency>JPY</Currency>
    </Currencies>
    <YieldCurves>
      <Configuration>
        <Tenors>3M,6M,1Y,2Y,3Y,4Y,5Y,7Y,10Y,12Y,15Y,20Y</Tenors>
        <Interpolation>LogLinear</Interpolation>
        <!-- Alternative: LinearZero -->
        <Extrapolation>Y</Extrapolation>
      </Configuration>
    </YieldCurves>
    <Indices>
      <Index>EUR-EURIBOR-6M</Index>
      <Index>EUR-EURIBOR-3M</Index>
      <Index>EUR-EONIA</Index>
      <Index>USD-LIBOR-3M</Index>
      <Index>USD-LIBOR-6M</Index>
      <Index>USD-FedFunds</Index>
      <Index>GBP-LIBOR-6M</Index>
      <Index>GBP-LIBOR-3M</Index>
      <Index>CHF-LIBOR-6M</Index>
      <Index>JPY-LIBOR-6M</Index>
    </Indices>
    
    <SwapIndices>
      <SwapIndex>
        <Name>EUR-CMS-1Y</Name>
        <DiscountingIndex>EUR-EONIA</DiscountingIndex>
      </SwapIndex>
      <SwapIndex>
        <Name>EUR-CMS-2Y</Name>
        <DiscountingIndex>EUR-EONIA</DiscountingIndex>
      </SwapIndex>
      <SwapIndex>
        <Name>EUR-CMS-10Y</Name>
        <DiscountingIndex>EUR-EONIA</DiscountingIndex>
      </SwapIndex>
      <SwapIndex>
        <Name>EUR-CMS-30Y</Name>
        <DiscountingIndex>EUR-EONIA</DiscountingIndex>
      </SwapIndex>
    </SwapIndices>
    
    <DefaultCurves>
      <SimulateSurvivalProbabilities>true</SimulateSurvivalProbabilities>
      <Names>
	<!--
	<Name>CPTY_A</Name>
	<Name>CPTY_B</Name>
	<Name>BANK</Name>
	-->
      </Names>
      <Tenors>1W,2W,1M,2M,3M,6M,1Y,2Y,3Y,4Y,5Y,7Y,10Y,12Y,15Y,20Y</Tenors>
      <!--<Tenors>6M,1Y,2Y</Tenors>-->
    </DefaultCurves>

    <Equities>
      <SimulateDividendYield>false</SimulateDividendYield>
      <Names>
        <Name>SP5</Name>
        <Name>Lufthansa</Name>
      </Names>
      <DividendTenors>6M,1Y,2Y</DividendTenors>
    </Equities>    

    <Commodities>
      <Simulate>true</Simulate>
      <Names>
        <Name>COMDTY_WTI_USD</Name>
      </Names>
      <Tenors>6M,1Y,2Y,5Y,10Y</Tenors>
      <DayCounters>
        <DayCounter name="">A365</DayCounter>
      </DayCounters>
    </Commodities>

    <!-- Even if we do not simulate them - option pricing needs vol
	   surfaces, so we need to specify here how we propagate the
	   vol structure and what its composition will be -->
    <SwaptionVolatilities>
      <Simulate>false</Simulate>
      <!-- Alternative: ConstantVariance -->
      <ReactionToTimeDecay>ForwardVariance</ReactionToTimeDecay>
      <Currencies>
        <Currency>EUR</Currency>
        <Currency>USD</Currency>
        <Currency>GBP</Currency>
        <Currency>CHF</Currency>
        <Currency>JPY</Currency>
      </Currencies>
      <Expiries>6M,1Y,2Y,3Y,5Y,10Y,12Y,15Y,20Y</Expiries>
      <Terms>1Y,2Y,3Y,4Y,5Y,7Y,10Y,15Y,20Y,30Y</Terms>
    </SwaptionVolatilities>

    <CapFloorVolatilities>
      <Simulate>false</Simulate>
      <!-- Alternative: ForwardVariance or ConstantVariance -->
      <ReactionToTimeDecay>ConstantVariance</ReactionToTimeDecay>
      <Currencies>
        <Currency>EUR</Currency>
        <Currency>USD</Currency>
        <Currency>GBP</Currency>
      </Currencies>
      <Expiries/>
      <Strikes/>
    </CapFloorVolatilities>
    
    <FxVolatilities>
      <Simulate>false</Simulate>
      <!-- Alternative: ForwardVariance -->
      <ReactionToTimeDecay>ConstantVariance</ReactionToTimeDecay>
      <CurrencyPairs>
        <CurrencyPair>USDEUR</CurrencyPair>
        <CurrencyPair>GBPEUR</CurrencyPair>
        <CurrencyPair>JPYEUR</CurrencyPair>
      </CurrencyPairs>
      <Expiries>6M,1Y,2Y,3Y,4Y,5Y,7Y,10Y</Expiries>
    </FxVolatilities>
    
    <EquityVolatilities>
      <Simulate>false</Simulate>
      <ReactionToTimeDecay>ForwardVariance</ReactionToTimeDecay>
      <!-- Alternative: ConstantVariance -->
      <Names>
        <Name>SP5</Name>
        <Name>Lufthansa</Name>
      </Names>
      <Expiries>6M,1Y,2Y,3Y,4Y,5Y,7Y,10Y</Expiries>
    </EquityVolatilities>     

    <CommodityVolatilities>
      <Simulate>false</Simulate>
      <!--<ReactionToTimeDecay>ForwardVariance</ReactionToTimeDecay>-->
      <ReactionToTimeDecay>ConstantVariance</ReactionToTimeDecay>
      <Names>
        <Name id="COMDTY_WTI_USD">
          <Expiries>1Y,5Y,10Y</Expiries>
          <Moneyness>0.9,1.0,1.167,1.333,1.5,1.667,1.833,2.0</Moneyness>
        </Name>
      </Names>
      <DayCounter>A365</DayCounter>
    </CommodityVolatilities>

    <!-- Additional data that is recorded during simulation for later
	   use in the post processor -->
    <AggregationScenarioDataCurrencies>
      <Currency>EUR</Currency>
      <Currency>USD</Currency>
    </AggregationScenarioDataCurrencies>
    <AggregationScenarioDataIndices>
      <Index>EUR-EURIBOR-3M</Index>
      <Index>EUR-EONIA</Index>
      <Index>USD-LIBOR-3M</Index>
    </AggregationScenarioDataIndices>
  </Market>
</Simulation>
