exponenta event banner

simulateNormalScenariosByData

Моделирование многомерных сценариев нормального возврата основных средств на основе данных

Использование fints объект для AssetReturns аргумент simulateNormalScenariosByData не рекомендуется. Использовать timetable вместо этого для финансовых временных рядов. Дополнительные сведения см. в разделе Преобразование объектов финансового временного ряда в расписания.

Описание

пример

obj = simulateNormalScenariosByData(obj,AssetReturns) моделирует многомерные сценарии нормального возврата основных средств из данных для объекта портфеля для PortfolioCVaR или PortfolioMAD объекты. Дополнительные сведения о рабочих процессах см. в разделах Рабочий процесс объекта CVaR и Рабочий процесс объекта MAD.

пример

obj = simulateNormalScenariosByData(obj,AssetReturns,NumScenarios,Name,Value) моделирует многомерные сценарии нормального возврата основных средств из данных для объекта портфеля для PortfolioCVaR или PortfolioMAD с использованием дополнительных параметров, заданных одним или несколькими Name,Value аргументы пары.

Эта функция оценивает среднее значение и ковариацию доходности активов на основе данных о цене или доходности, а затем использует эти оценки для генерации определенного числа сценариев с функцией. mvnrnd.

Данные могут находиться в NumSamplesоколо-NumAssets матрица NumSamples цены или доходы при данной периодичности для сбора NumAssets активы, a table или timetable.

Примечание

При необходимости многократного использования метода и моделирования одинаковых сценариев при каждом вызове функции перед каждым вызовом функции следует выполнить rng(начальное число) с использованием указанного целого числа.

Примеры

свернуть все

Данный объект HydraCVaR p, используйте simulateNormalScenariosByData функция для моделирования многомерных нормальных сценариев возврата основных средств на основе данных.

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;

RawData = mvnrnd(m, C, 240);
NumScenarios = 2000;

p = PortfolioCVaR;
p = simulateNormalScenariosByData(p, RawData, NumScenarios)
p = 
  PortfolioCVaR with properties:

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

p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.9);

disp(p);
  PortfolioCVaR with properties:

             BuyCost: []
            SellCost: []
        RiskFreeRate: []
    ProbabilityLevel: 0.9000
            Turnover: []
         BuyTurnover: []
        SellTurnover: []
        NumScenarios: 2000
                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]

Создание объекта CCVaR p и используйте simulateNormalScenariosByData функция с рыночными данными, загруженными из CAPMuniverse.mat для моделирования многомерных нормальных сценариев возврата основных средств. Рыночные данные, AssetsTimeTable, является timetable возврата основных средств.

load CAPMuniverse

p = PortfolioCVaR('AssetList',Assets);
disp(p);
  PortfolioCVaR with properties:

             BuyCost: []
            SellCost: []
        RiskFreeRate: []
    ProbabilityLevel: []
            Turnover: []
         BuyTurnover: []
        SellTurnover: []
        NumScenarios: []
                Name: []
           NumAssets: 14
           AssetList: {1x14 cell}
            InitPort: []
         AInequality: []
         bInequality: []
           AEquality: []
           bEquality: []
          LowerBound: []
          UpperBound: []
         LowerBudget: []
         UpperBudget: []
         GroupMatrix: []
          LowerGroup: []
          UpperGroup: []
              GroupA: []
              GroupB: []
          LowerRatio: []
          UpperRatio: []
        MinNumAssets: []
        MaxNumAssets: []
           BoundType: []

Моделирование сценариев на основе данных графика для каждого из основных средств из CAPMuniverse.mat и наметить эффективную границу.

p = simulateNormalScenariosByData(p,AssetsTimeTable,10000,'missingdata',true);
p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.9);
plotFrontier(p);

Figure contains an axes. The axes with title \bfEfficient Frontier contains an object of type line.

Задан объект SharingMAD p, используйте simulateNormalScenariosByData функция для моделирования многомерных нормальных сценариев возврата основных средств на основе данных.

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;

RawData = mvnrnd(m, C, 240);
NumScenarios = 2000;

p = PortfolioMAD;
p = simulateNormalScenariosByData(p, RawData, NumScenarios);
p = setDefaultConstraints(p);

disp(p);
  PortfolioMAD with properties:

         BuyCost: []
        SellCost: []
    RiskFreeRate: []
        Turnover: []
     BuyTurnover: []
    SellTurnover: []
    NumScenarios: 2000
            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]

Создание объекта MAD p и используйте simulateNormalScenariosByData функция с рыночными данными, загруженными из CAPMuniverse.mat для моделирования многомерных нормальных сценариев возврата основных средств. Рыночные данные, AssetsTimeTable, является timetable возврата основных средств.

load CAPMuniverse

p = PortfolioMAD('AssetList',Assets);
disp(p.AssetList');
    {'AAPL'  }
    {'AMZN'  }
    {'CSCO'  }
    {'DELL'  }
    {'EBAY'  }
    {'GOOG'  }
    {'HPQ'   }
    {'IBM'   }
    {'INTC'  }
    {'MSFT'  }
    {'ORCL'  }
    {'YHOO'  }
    {'MARKET'}
    {'CASH'  }

Моделирование сценариев на основе данных графика для каждого из основных средств из CAPMuniverse.mat и наметить эффективную границу.

p = simulateNormalScenariosByData(p,AssetsTimeTable,10000,'missingdata',true);
p = setDefaultConstraints(p);
plotFrontier(p);

Figure contains an axes. The axes with title \bfEfficient Frontier contains an object of type line.

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

свернуть все

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

Дополнительные сведения о создании PortfolioCVaR или PortfolioMAD объект, см.

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

Данные основных средств, которые могут быть преобразованы в возврат основных средств ([NumSamplesоколо-NumAssets] матрица), указанная как матрица, table, или timetable.

AssetReturns данные могут быть:

  • NumSamplesоколо-NumAssets матрица.

  • Таблица NumSamples цены или доходы при данной периодичности для сбора NumAssets активы

  • Объект расписания с NumSamples наблюдения и NumAssets временные ряды

Типы данных: double | table | timetable

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

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: p = simulateNormalScenariosByData(p,RawData,NumScenarios,'DataFormat','Returns','MissingData',true,'GetAssetList',true)

Флажок для преобразования входных данных в виде цен в возврат, определяемый как разделенная запятыми пара, состоящая из 'DataFormat' и символьный вектор со значениями:

  • 'Returns' - Данные в AssetReturns содержит итоговые возвраты основных средств.

  • 'Prices' - Данные в AssetReturns содержит итоговые цены возврата основных средств.

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

Флаг для использования алгоритма ECM для обработки NaN значения, указанные как пара, разделенная запятыми, состоящая из 'MissingData' и логический со значением true или false.

  • false - Не использовать алгоритм ECM для обработки NaN значения (исключить NaN значения).

  • true - Использовать алгоритм ECM для обработки NaN значения.

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

Флаг, указывающий, какие названия активов использовать для списка активов, указанный как пара, разделенная запятыми, состоящая из 'GetAssetList' и логический со значением true или false.

  • false - Не извлекать и не создавать имена активов.

  • true - Извлеките или создайте названия активов из таблицы или расписания.

Если table или timetable передается в эту функцию с помощью AssetReturns аргумент и GetAssetList флаг - true, имена столбцов из table или timetable используются в качестве имен основных средств в obj.AssetList.

Если передается матрица и GetAssetList флаг - true, имена активов по умолчанию создаются на основе AbstractPortfolio собственность defaultforAssetList, что является 'Asset'.

Если GetAssetList флаг - false, никаких действий не происходит, что является поведением по умолчанию.

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

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

свернуть все

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

Совет

Можно также использовать точечную нотацию для моделирования многомерных нормальных сценариев возврата основных средств на основе данных для объекта HUSCVaR или MAD.

obj = obj.simulateNormalScenariosByData(AssetReturns,NumScenarios,Name,Value);

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