esbacktest

Создайте объект esbacktest запустить комплект основанного на таблице ожидаемого недостатка (ES) backtests

Описание

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

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

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

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

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

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

    • unconditionalNormal — Безусловный ES backtest принятие возвращается, распределение нормально

    • unconditionalT — Безусловный ES backtest принятие возвращается, распределением является t

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

Создание

Синтаксис

ebt = esbacktest(PortfolioData,VaRData,ESData)
ebt = esbacktest(___,Name,Value)

Описание

пример

ebt = esbacktest(PortfolioData,VaRData,ESData) создает объект esbacktest (ebt) с помощью данных по результатам портфеля и соответствующего подверженного риску значения (VaR) и данных о ES. Объект ebt имеет следующие свойства:

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

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

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

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

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

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

Примечание

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

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

  • Поскольку критические значения предварительно вычисляются, только определенные числа наблюдений, уровней VaR, и тестируют уровни, поддерживаются.

    • Количество наблюдений (количество строк в данных минус количество отсутствующих значений) должно быть от 200 до 5 000.

    • Входной параметр VaRLevel должен быть между 0.90 и 0.99; значением по умолчанию является 0.95.

    • TestLevel (тестируют доверительный уровень) входной параметр для runtests, unconditionalNormal и функций unconditionalT должен быть между 0.5 и 0.9999; значением по умолчанию является 0.95.

пример

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

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

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

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

Примечание

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

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

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

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

Примечание

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

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

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

Примечание

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

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

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

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

Пример: ebt = esbacktest(PortfolioData,VaRData,ESData,'VaRID','TotalVaR','VaRLevel',.99)

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

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

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

Идентификатор VaR для столбцов VaRData, заданных как пара, разделенная запятой, состоящая из 'VaRID' и вектора символов, массива ячеек из символьных векторов, строки или массива строк.

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

summaryОсновной отчет ожидаемого недостатка (ES) относительно отказов и серьезности
runtestsЗапустите весь ожидаемый недостаток (ES) backtests для объекта esbacktest
unconditionalNormalБезусловный ожидаемый недостаток (ES) backtest с критическими значениями для нормальных распределений
unconditionalTБезусловный ожидаемый недостаток (ES) backtest с критическими значениями для t дистрибутивов

Примеры

свернуть все

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

Создайте объект esbacktest.

 load ESBacktestData
 ebt = esbacktest(Returns,VaRModel1,ESModel1,'VaRLevel',VaRLevel)
ebt = 
  esbacktest with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x1 double]
           ESData: [1966x1 double]
      PortfolioID: "Portfolio"
            VaRID: "VaR"
         VaRLevel: 0.9750

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

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

 runtests(ebt)
ans=1×5 table
    PortfolioID    VaRID    VaRLevel    UnconditionalNormal    UnconditionalT
    ___________    _____    ________    ___________________    ______________

    "Portfolio"    "VaR"     0.975            reject               reject    

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

ebt.PortfolioID = 'S&P';
ebt.VaRID = 'Normal at 97.5%';
disp(ebt)
  esbacktest with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x1 double]
           ESData: [1966x1 double]
      PortfolioID: "S&P"
            VaRID: "Normal at 97.5%"
         VaRLevel: 0.9750

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

 runtests(ebt)
ans=1×5 table
    PortfolioID          VaRID          VaRLevel    UnconditionalNormal    UnconditionalT
    ___________    _________________    ________    ___________________    ______________

       "S&P"       "Normal at 97.5%"     0.975            reject               reject    

Ссылки

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

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

Введенный в R2017b