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

Примечание

  • Результаты испытаний от esbacktest являются только аппроксимированными, поскольку никакая информация о распределении не передается как вход. Когда информация о распределении будет доступна, используйте esbacktestbysim; в частности, минимально смещенный тест рекомендуется (см. minBiasAbsolute и minBiasRelative).

  • Симуляция критических значений принимает среднее значение 0 для базового распределения. Критические значения чувствительны к среднему значению базового распределения. Если предсказание ES основано на распределениях со средними значениями значительно далеко от 0, критические значения в esbacktest будет ненадежно.

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

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

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

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

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

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

пример

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

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

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

Данные по результатам портфеля в виде 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',.999)

Пользовательский 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.999 или 1- NumVaRs (или NumVaRs- 1) числовой массив. VaRLevel аргумент пары "имя-значение" устанавливает свойство VaRLevel.

Примечание

При определении VarLevel > 99%, гарантируйте, что количество наблюдений достаточно, чтобы сгенерировать соответствующее критическое значение. Кроме того, при запущении теста, используйте TestLevel > 95%. Для очень высоких уровней VaR (например, VarLevel > 99%) и относительно небольшое количество наблюдений, вероятность отказов VaR очень мала, и распределение тестовой статистической величины имеет дискретную природу, ведя к неожиданной немонотонности вокруг некоторых критических значений. Большее число наблюдений и более высоких тестовых доверительных уровней сохраняет ожидаемое поведение критических значений когда 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.999, содержа уровни 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
Для просмотра документации необходимо авторизоваться на сайте