esbacktest

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

Описание

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

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

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

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

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

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

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

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

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

Создание

Описание

пример

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

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

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

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

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

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

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

Примечание

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

  • Если существуют отсутствующие значения (NaNs) в 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- 1 числовой массив, NumRows- 1 числовая таблица столбцов или NumRows- 1 расписание с числовым столбцом, содержащим данные по результатам портфеля. PortfolioData входной параметр устанавливает свойство PortfolioData.

Примечание

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

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

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

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

Примечание

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

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

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

Примечание

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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- 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.90 и 0.99 или 1- NumVaRs (или NumVaRs- 1) числовой массив. VaRLevel аргумент пары "имя-значение" устанавливает свойство VaRLevel.

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

Уровень VaR, заданный как 1- 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 Acerbi-Szekely с критическими значениями для нормальных распределений
unconditionalTБезусловный ожидаемый недостаток (ES) backtest Acerbi-Szekely с критическими значениями для 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 свойство), и данные данные о ES (ESDataСвойство. Объект также содержит все комбинации 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

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