simulateNormalScenariosByMoments

Симулируйте многомерный нормальный актив, возвращают сценарии в среднее значение, и ковариация актива возвращается

Описание

пример

obj = simulateNormalScenariosByMoments(obj,AssetMean,AssetCovar,NumScenarios) симулирует многомерный нормальный актив, возвращают сценарии в среднее значение, и ковариация актива возвращается для PortfolioCVaR или PortfolioMAD объекты. Для получения дополнительной информации на рабочих процессах, смотрите Рабочий процесс Объекта PortfolioCVaR и Рабочий процесс Объекта PortfolioMAD.

пример

obj = simulateNormalScenariosByMoments(obj,AssetMean,AssetCovarNumScenarios,NumAssets) симулирует многомерный нормальный актив, возвращают сценарии в среднее значение, и ковариация актива возвращается для объектов PortfolioCVaR или PortfolioMAD с помощью дополнительного входа NumScenarios.

Примечание

Эта функция перезаписывает существующие сценарии, сопоставленные с PortfolioCVaR или PortfolioMAD объекты, и также, возможно, NumScenarios.

Если вы хотите использовать функцию многократно, и вы хотите симулировать идентичные сценарии каждый раз, когда функция вызвана, предшествуйте каждому вызову функции с rng(seed) с помощью заданного целочисленного seed.

Примеры

свернуть все

Объект Given PortfolioCVaR p, используйте simulateNormalScenariosByMoments функция, чтобы симулировать многомерный нормальный актив возвращает сценарии с моментов.

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
    0.00408 0.0289 0.0204 0.0119;
    0.00192 0.0204 0.0576 0.0336;
    0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioCVaR;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.95);

AssetMean = [.5]
AssetMean = 0.5000
AssetCovar = [.5]
AssetCovar = 0.5000
NumScenarios = 100
NumScenarios = 100
p = simulateNormalScenariosByMoments(p, AssetMean, AssetCovar, NumScenarios)
p = 
  PortfolioCVaR with properties:

             BuyCost: []
            SellCost: []
        RiskFreeRate: []
    ProbabilityLevel: 0.9500
            Turnover: []
         BuyTurnover: []
        SellTurnover: []
        NumScenarios: 100
                Name: []
           NumAssets: 4
           AssetList: []
            InitPort: []
         AInequality: []
         bInequality: []
           AEquality: []
           bEquality: []
          LowerBound: [4x1 double]
          UpperBound: []
         LowerBudget: 1
         UpperBudget: 1
         GroupMatrix: []
          LowerGroup: []
          UpperGroup: []
              GroupA: []
              GroupB: []
          LowerRatio: []
          UpperRatio: []
        MinNumAssets: []
        MaxNumAssets: []
           BoundType: [4x1 categorical]

Объект Given PortfolioMAD p, используйте simulateNormalScenariosByMoments функция, чтобы симулировать многомерный нормальный актив возвращает сценарии с моментов.

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
    0.00408 0.0289 0.0204 0.0119;
    0.00192 0.0204 0.0576 0.0336;
    0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioMAD;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);

AssetMean = [.5]
AssetMean = 0.5000
AssetCovar = [.5]
AssetCovar = 0.5000
NumScenarios = 100
NumScenarios = 100
p = simulateNormalScenariosByMoments(p, AssetMean, AssetCovar, NumScenarios)
p = 
  PortfolioMAD with properties:

         BuyCost: []
        SellCost: []
    RiskFreeRate: []
        Turnover: []
     BuyTurnover: []
    SellTurnover: []
    NumScenarios: 100
            Name: []
       NumAssets: 4
       AssetList: []
        InitPort: []
     AInequality: []
     bInequality: []
       AEquality: []
       bEquality: []
      LowerBound: [4x1 double]
      UpperBound: []
     LowerBudget: 1
     UpperBudget: 1
     GroupMatrix: []
      LowerGroup: []
      UpperGroup: []
          GroupA: []
          GroupB: []
      LowerRatio: []
      UpperRatio: []
    MinNumAssets: []
    MaxNumAssets: []
       BoundType: [4x1 categorical]

Входные параметры

свернуть все

Объект для портфеля, заданное использование PortfolioCVaR или PortfolioMAD объект.

Для получения дополнительной информации о создании PortfolioCVaR или PortfolioMAD возразите, смотрите

Типы данных: object

Среднее значение актива возвращается, заданный как вектор.

Примечание

Если AssetMean скаляр, и количество активов известно, скалярное расширение происходит. Если количество активов не может быть определено, эта функция принимает тот NumAssets= 1 .

Типы данных: double

Ковариация актива возвращается, заданный как симметричная положительная полуопределенная матрица.

Примечание

  • Если AssetCovar скаляр, и количество активов известно, диагональная матрица формируется со скалярным значением по диагоналям. Если не возможно определить количество активов, этот метод принимает тот NumAssets= 1 .

  • Если AssetCovar вектор, диагональная матрица формируется с вектором по диагонали.

  • Если AssetCovar не симметричная положительная полуопределенная матрица, используйте nearcorr создать положительную полуопределенную матрицу для корреляционной матрицы.

Типы данных: double

Количество сценариев, чтобы симулировать, заданный как положительное целое число.

Типы данных: double

Количество активов, заданных как скаляр.

Типы данных: double

Выходные аргументы

свернуть все

Обновленный объект портфеля, возвращенный как PortfolioCVaR или PortfolioMAD объект. Для получения дополнительной информации о создании объекта портфеля смотрите

Советы

Можно также использовать запись через точку, чтобы симулировать многомерный нормальный актив, возвращают сценарии в среднее значение, и ковариация актива возвращается для PortfolioCVaR или PortfolioMAD объект.

obj = obj.simulateNormalScenariosByMoments(AssetMean, AssetCovar, NumScenarios, NumAssets);

Представленный в R2012b