esbacktestbysim

Создайте esbacktestbysim возразите, чтобы запустить основанный на симуляции комплект ожидаемого недостатка (ES) backtests Acerbi и Szekely

Описание

Общий рабочий процесс:

  1. Загрузите или сгенерируйте данные для ES backtesting анализ.

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

  3. Используйте summary функция, чтобы сгенерировать сводный отчет для определенных данных на количестве наблюдений и количестве отказов.

  4. Используйте runtests функционируйте, чтобы запустить все тесты целиком.

  5. Для дополнительных тестовых деталей, запущенных следующие отдельные тесты:

    • conditional — Условный тест Acerbi-Szekely (2014)

    • unconditional — Безусловный тест Acerbi-Szekely (2014)

    • quantile — Тест квантиля Acerbi-Szekely (2014)

    Для получения дополнительной информации см. Обзор Ожидаемого Недостатка Backtesting.

Создание

Описание

пример

ebts = esbacktestbysim(PortfolioData,VaRData,ESData,DistributionName) создает esbacktestbysim (ebts) возразите и симулирует сценарии результата портфеля, чтобы вычислить критические значения для трех тестов:

ebts объект имеет следующие свойства:

  • PortfolioDataNumRows- 1 числовой массив, содержащий копию PortfolioData

  • VaRDataNumRows- NumVaRs числовой массив, содержащий копию VaRData

  • ESDataNumRows- NumVaRs числовой массив, содержащий копию ESData

  • Распределение — Структура, содержащая информацию модели, включая имя распределения модели и параметры распределения. Например, для нормального распределения, Distribution имеет поля 'Name'среднее значение, и 'StandardDeviation', с набором значений к соответствующим входным параметрам.

  • PortfolioID — Строка, содержащая PortfolioID

  • VaRID1- NumVaRs вектор строки, содержащий VaRIDs для соответствующих столбцов в VaRData

  • VaRLevel1- NumVaRs числовой массив, содержащий VaRLevels для соответствующих столбцов в VaRData.

Примечание

  • Необходимые входные параметры для PortfolioData, VaRData, и ESData должен все быть в тех же модулях. Эти аргументы могут быть выражены, когда возвращается или как прибыль и потери. В esbacktestbysim нет никаких валидаций объект относительно модулей этих аргументов.

  • Если существуют отсутствующие значения (NaNs) в PortfolioData, VaRData, ESData, или Distribution данные о параметрах, строка данных отбрасывается прежде, чем применить тесты. Поэтому о различном количестве наблюдений сообщают для моделей с различным количеством отсутствующих значений. Количество, о котором сообщают, наблюдений равняется исходному количеству строк минус количество отсутствующих значений. Чтобы определить, существуют ли отброшенные строки, используйте 'Missing' столбец summary отчет.

пример

ebts = esbacktestbysim(___,Name,Value) Свойства наборов с помощью пар "имя-значение" и любого из аргументов в предыдущем синтаксисе. Например, ebts = esbacktestbysim(PortfolioData,VaRData,ESData,DistributionName,'VaRID','TotalVaR','VaRLevel',.99). Можно задать несколько пар "имя-значение".

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

развернуть все

Данные по результатам портфеля, заданные как NumRows- 1 числовой массив, NumRows- 1 таблица или NumRows- 1 расписание с числовым столбцом, содержащим данные по результатам портфеля. PortfolioData входной параметр устанавливает свойство PortfolioData.

Примечание

PortfolioData данные должны быть в тех же модулях как VaRData и ESData. В esbacktestbysim нет никаких валидаций объект относительно модулей портфеля, VaR и данных о ES. PortfolioData, VaRData, и ESData может быть выражен, когда возвращается или как прибыль и потери.

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

Данные о подверженном риску значения (VaR), заданные как NumRows- NumVaRs числовой массив, NumRows- NumVaRs таблица или NumRows- NumVaRs расписание с числовыми столбцами. VaRData входной параметр устанавливает свойство VaRData.

Отрицательный VaRData значения позволены. Однако отрицательные значения VaR указывают на очень прибыльный портфель, который не может потерять деньги на данном доверительном уровне VaR. Худший вариант на данном доверительном уровне является все еще прибылью.

Примечание

VaRData должен быть в тех же модулях как PortfolioData и ESData. В esbacktestbysim нет никаких валидаций объект относительно модулей портфеля, VaR и данных о ES. VaRData, PortfolioData, и ESData может быть выражен, когда возвращается или как прибыль и потери.

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

Ожидаемые данные о недостатке, заданные как NumRows- NumVaRs положительный числовой массив, NumRows- NumVaRs таблица или NumRows- NumVaRs расписание с положительными числовыми столбцами, содержащими данные о ES. ESData входной параметр устанавливает свойство ESData.

Примечание

ESData данные должны быть в тех же модулях как PortfolioData и VaRData. В esbacktestbysim нет никаких валидаций объект относительно модулей портфеля, VaR и данных о ES. ESData, PortfolioData, и VaRData может быть выражен, когда возвращается или как прибыль и потери.

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

Имя распределения, заданное как строка со значением normal или t. DistributionName входной параметр устанавливает 'Name' поле свойства Distribution.

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

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

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

Пример: ebts = esbacktestbysim(PortfolioData,VaRData,ESData,DistributionName,'VaRID','TotalVaR','VaRLevel',.99)

Пользовательский ID для PortfolioData введите, заданный как разделенная запятой пара, состоящая из 'PortfolioID' и вектор символов или строка. PortfolioID аргумент пары "имя-значение" устанавливает свойство PortfolioID.

Если PortfolioData числовой массив, значение по умолчанию для PortfolioID 'Portfolio'. Если PortfolioData таблица, PortfolioID установлен в соответствующее имя переменной в таблице, по умолчанию.

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

Идентификатор VaR для VaRData столбцы, заданные как разделенная запятой пара, состоящая из 'VaRID' и вектор символов, массив ячеек из символьных векторов, строка или массив строк. Несколько VaRIDs заданы с помощью 1- NumVaRs (или NumVaRs- 1) массив ячеек из символьных векторов или массив строк с пользовательскими идентификаторами для VaRData столбцы. Один VaRID идентифицирует VaRData столбец и соответствующий ESData столбец. VaRID аргумент пары "имя-значение" устанавливает свойство VaRID.

Если NumVaRs= 1 , значение по умолчанию для VaRID 'VaR'. Если NumVaRs> 1 , значением по умолчанию является 'VaR1', 'VaR2', и так далее. Если VaRData таблица, 'VaRID' установлен по умолчанию в соответствующие имена переменных в таблице.

Типы данных: char | cell | string

Доверительный уровень VaR, заданный как скаляр с разделенной запятой парой, состоящей из 'VaRLevel' и числовое значение между 0 и 1 или 1- NumVaRs (или NumVaRs- 1) числовой массив с числовым значением между 0 и 1. VaRLevel аргумент пары "имя-значение" устанавливает свойство VaRLevel.

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

Средства для нормального распределения, заданного как разделенная запятой пара, состоящая из 'Mean' и числовое значение или NumRows- 1 числовой массив. Mean аргумент пары "имя-значение" устанавливает 'Mean' поле свойства Distribution.

Примечание

Вы устанавливаете Mean аргумент пары "имя-значение" только, когда DistributionName входной параметр задан как normal.

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

Стандартное отклонение для нормального распределения, заданного как разделенная запятой пара, состоящая из 'StandardDeviation' и положительное числовое значение или NumRows- 1 массив. StandardDeviation аргумент пары "имя-значение" устанавливает 'StandardDeviation' поле свойства Distribution.

Примечание

Вы устанавливаете StandardDeviation аргумент пары "имя-значение" только, когда DistributionName входной параметр задан как normal.

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

Степени свободы для t распределение, заданное как разделенная запятой пара, состоящая из 'DegreesOfFreedom' и целочисленное значение ≥ 3. DegreesOfFreedom аргумент пары "имя-значение" устанавливает 'DegreesOfFreedom' поле свойства Distribution.

Примечание

DegreesOfFreedom аргумент пары "имя-значение" только установлен когда DistributionName входной параметр задан как t. Значение для DegreesOfFreedom требуется когда значение DistributionName t.

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

Параметры положения для t распределение, заданное как разделенная запятой пара, состоящая из 'Location' и числовое значение или NumRows- 1 массив. Location аргумент пары "имя-значение" устанавливает the'Location' поле свойства Distribution.

Примечание

Location аргумент пары "имя-значение" только установлен когда DistributionName входной параметр задан как t.

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

Масштабные коэффициенты для t распределение, заданное как разделенная запятой пара, состоящая из 'Scale' и положительное числовое значение или NumRows- 1 массив. Scale аргумент пары "имя-значение" устанавливает 'Scale' поле свойства Distribution.

Примечание

Scale аргумент пары "имя-значение" только установлен когда DistributionName входной параметр задан как t.

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

Указывает, запущена ли симуляция для статистического значения, когда вы создаете esbacktestbysim объект, заданный как логический скаляр с разделенной запятой парой, состоящей из 'Simulate' и значение true или false.

Типы данных: логический

Свойства

развернуть все

Данные о портфеле для ES backtesting анализ, заданный как NumRows- 1 числовой массив, содержащий копию данных о портфеле.

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

Данные VaR для ES backtesting анализ, заданный как NumRows- NumVaRs числовой массив, содержащий копию данных VaR.

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

Ожидаемые данные о недостатке для ES backtesting анализ, заданный как NumRows- NumVaRs числовой массив, содержащий копию ESData.

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

Информация о распределении, включая имя распределения и связанные параметры распределения, заданные как структура.

Для normal распределение, Distribution структура имеет поля 'Name' (установите на normalсреднее значение, и 'StandardDeviation', с набором значений к соответствующим входным параметрам.

Для t распределение, Distribution структура имеет поля 'Name' (установите на t), 'DegreesOfFreedom'местоположение , и 'Scale', с набором значений к соответствующим входным параметрам.

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

Идентификатор портфеля, заданный как строка.

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

Идентификатор VaR, заданный как 1- NumVaRs массив строк, содержащий идентификаторы VaR для соответствующих столбцов в VaRData.

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

Уровень VaR, заданный как 1- NumVaRs числовой массив со значениями между 0 и 1 содержа уровни VaR для соответствующих столбцов в VaRData.

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

esbacktestbysim СвойствоУстановите или измените свойство из командной строки Используя esbacktestbysim Измените свойство Используя запись через точку
PortfolioDataДаНет
VaRDataДаНет
ESDataДаНет
DistributionДаНет
PortfolioIDДаДа
VaRIDДаДа
VaRLevelДаДа

Функции объекта

summaryОсновной отчет ожидаемого недостатка (ES) относительно отказов и серьезности
runtestsЗапустите весь ожидаемый недостаток backtests (ES) для объекта esbacktestbysim
conditionalУсловный ожидаемый недостаток (ES) backtest Acerbi и Szekely
unconditionalБезусловный ожидаемый недостаток backtest Acerbi и Szekely
quantileОжидаемый недостаток (ES) квантиля backtest Acerbi и Szekely
simulateСимулируйте тестовую статистику ожидаемого недостатка (ES)

Примеры

свернуть все

esbacktestbysim берет в данных по результатам портфеля, соответствующих данных о подверженном риску значения (VaR), данных об ожидаемом недостатке (ES) и информации о Распределении и возвращает esbacktestbysim объект.

Создайте esbacktestbysim возразите и отобразите Distribution свойство.

load ESBacktestBySimData
rng('default'); % for reproducibility
ebts = esbacktestbysim(Returns,VaR,ES,"t",...
       'DegreesOfFreedom',10,...
       'Location',Mu,...
       'Scale',Sigma,...
       'PortfolioID',"S&P",...
       'VaRID',["t(10) 95%","t(10) 97.5%","t(10) 99%"],...
       'VaRLevel',VaRLevel)
ebts = 
  esbacktestbysim with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x3 double]
           ESData: [1966x3 double]
     Distribution: [1x1 struct]
      PortfolioID: "S&P"
            VaRID: ["t(10) 95%"    "t(10) 97.5%"    "t(10) 99%"]
         VaRLevel: [0.9500 0.9750 0.9900]

ebts.Distribution
ans = struct with fields:
                Name: "t"
    DegreesOfFreedom: 10
            Location: 0
               Scale: [1966x1 double]

ebts, esbacktestbysim возразите, содержит копию данных данных о портфеле (PortfolioData свойство), данные данные VaR (VaRData свойство), данные данные о ES (ESData) свойство и данный Distribution информация. Объект также содержит все комбинации ID портфеля, VaR ID и уровня VaR, который будет протестирован (PortfolioID, VaRID, и VaRLevel свойства.

Запустите тесты с помощью ebts объект.

TestResults = runtests(ebts)
TestResults=3×6 table
    PortfolioID        VaRID        VaRLevel    Conditional    Unconditional    Quantile
    ___________    _____________    ________    ___________    _____________    ________

       "S&P"       "t(10) 95%"        0.95        reject          accept         reject 
       "S&P"       "t(10) 97.5%"     0.975        reject          reject         reject 
       "S&P"       "t(10) 99%"        0.99        reject          reject         reject 

Измените PortfolioID свойство с помощью записи через точку. Для получения дополнительной информации о создании esbacktestbysim возразите, смотрите esbacktestbysim.

ebts.PortfolioID = 'S&P, 1996-2003'
ebts = 
  esbacktestbysim with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x3 double]
           ESData: [1966x3 double]
     Distribution: [1x1 struct]
      PortfolioID: "S&P, 1996-2003"
            VaRID: ["t(10) 95%"    "t(10) 97.5%"    "t(10) 99%"]
         VaRLevel: [0.9500 0.9750 0.9900]

Запустите все тесты с помощью обновленного esbacktestbysim объект.

runtests(ebts)
ans=3×6 table
      PortfolioID           VaRID        VaRLevel    Conditional    Unconditional    Quantile
    ________________    _____________    ________    ___________    _____________    ________

    "S&P, 1996-2003"    "t(10) 95%"        0.95        reject          accept         reject 
    "S&P, 1996-2003"    "t(10) 97.5%"     0.975        reject          reject         reject 
    "S&P, 1996-2003"    "t(10) 99%"        0.99        reject          reject         reject 

Ссылки

[1] Acerbi, C. и Б. Сзекели. Бэктестинг ожидаемый недостаток. Декабрь 2014 MSCI Inc.

[2] Базельский комитет по банковскому надзору. Требования минимального капитала для риска рынка. Январь 2016 (https://www.bis.org/bcbs/publ/d352.pdf).

Введенный в R2017b

Для просмотра документации необходимо авторизоваться на сайте