setScenarios

Установите сценарии возвратов активов по прямой матрице

Использование fints объект для AssetScenarios аргумент setScenarios не рекомендуется. Использовать timetable вместо этого для финансовых временных рядов. Для получения дополнительной информации смотрите Преобразование финтов финансовых временных рядов в Timetables.

Описание

пример

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

пример

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

Примеры

свернуть все

Задан объект PortfolioCVaR p, используйте setScenarios функция для настройки сценариев возврата активов.

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);
disp(p)
  PortfolioCVaR with properties:

             BuyCost: []
            SellCost: []
        RiskFreeRate: []
    ProbabilityLevel: 0.9500
            Turnover: []
         BuyTurnover: []
        SellTurnover: []
        NumScenarios: 20000
                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, используйте setScenarios функция для настройки сценариев возврата активов.

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);
disp(p)
  PortfolioMAD with properties:

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

Чтобы проиллюстрировать использование setScenarios функция со AssetScenarios данные продолжены в timetable объект, используйте CAPMuniverse.mat который содержит timetable объект (AssetTimeTable) для возвращаемых данных.

load CAPMuniverse;
AssetsTimeTable.Properties;
head(AssetsTimeTable,5)
ans=5×14 timetable
       Time          AAPL         AMZN         CSCO         DELL         EBAY       GOOG       HPQ          IBM         INTC         MSFT         ORCL         YHOO        MARKET         CASH   
    ___________    _________    _________    _________    _________    _________    ____    _________    _________    _________    _________    _________    _________    _________    __________

    03-Jan-2000     0.088805       0.1742     0.008775    -0.002353      0.12829    NaN       0.03244     0.075368      0.05698    -0.001627     0.054078     0.097784    -0.012143    0.00020522
    04-Jan-2000    -0.084331     -0.08324     -0.05608     -0.08353    -0.093805    NaN     -0.075613    -0.033966    -0.046667    -0.033802      -0.0883    -0.067368     -0.03166    0.00020339
    05-Jan-2000     0.014634     -0.14877    -0.003039     0.070984     0.066875    NaN     -0.006356      0.03516     0.008199     0.010567    -0.052837    -0.073363     0.011443    0.00020376
    06-Jan-2000    -0.086538    -0.060072    -0.016619    -0.038847    -0.012302    NaN     -0.063688    -0.017241     -0.05824    -0.033477    -0.058824     -0.10307     0.011743    0.00020266
    07-Jan-2000     0.047368     0.061013       0.0587    -0.037708    -0.000964    NaN      0.028416    -0.004386      0.04127     0.013091     0.076771      0.10609      0.02393    0.00020157

setScenarios принимает имя аргумента пары "имя-значение" 'DataFormat' с соответствующим набором значений 'prices' указать, что вход в функцию находится в форме цен на основные средства, а не возвратов (значение по умолчанию для 'DataFormat' аргумент 'returns').

r = PortfolioCVaR;
r = setScenarios(r,AssetsTimeTable,'dataformat','returns');

В сложение, setScenarios функция также извлекает имена активов или идентификаторы из объекта timetable, когда аргумент имя-значение 'GetAssetList' установлено на true (его значение по умолчанию является false). Если на 'GetAssetList' значение trueидентификаторы столбцов расписания используются для установки AssetList свойство объекта PortfolioCVaR. Чтобы показать это, формирование объекта PortfolioCVaR r повторяется с помощью 'GetAssetList' флаг установлен на true.

r = setScenarios(r,AssetsTimeTable,'GetAssetList',true);
disp(r.AssetList')
    {'AAPL'  }
    {'AMZN'  }
    {'CSCO'  }
    {'DELL'  }
    {'EBAY'  }
    {'GOOG'  }
    {'HPQ'   }
    {'IBM'   }
    {'INTC'  }
    {'MSFT'  }
    {'ORCL'  }
    {'YHOO'  }
    {'MARKET'}
    {'CASH'  }

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

свернуть все

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

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

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

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

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

  • NumSamples-by- NumAssets матрица.

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

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

Если входные данные являются ценами, они могут быть преобразованы в возвраты с DataFormat аргумент пары "имя-значение", где формат по умолчанию принимается 'Returns'. Будьте осторожны, используя данные о ценах, потому что оптимизация портфеля обычно требует общих возвратов, а не просто возвратов цен.

Эта функция настраивает указатель на функцию для косвенного доступа к входу AssetScenarios без необходимости делать копию данных.

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

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

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

Пример: p = setScenarios(p, AssetScenarios,'DataFormat','Returns','GetAssetList',false);

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Совет

Для настройки сценариев возврата активов можно также использовать запись через точку.

obj = obj.setScenarios(AssetScenarios);

Введенный в R2012b