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.

Примеры

свернуть все

Заданный объект 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]

Заданный объект 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