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)

    • minBiasAbsolute — Минимально смещенный абсолютный тест Acerbi-Szekely (2017)

    • minBiasRelative — Минимально смещенный относительный тест Acerbi-Szekely (2017)

    Для получения дополнительной информации см. Обзор Ожидаемого Недостатка 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
minBiasRelativeМинимально смещенный относительный тест для Ожидаемого недостатка (ES) backtest Acerbi-Szekely
minBiasAbsoluteМинимально смещенный абсолютный тест для Ожидаемого недостатка (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×8 table
    PortfolioID        VaRID        VaRLevel    Conditional    Unconditional    Quantile    MinBiasAbsolute    MinBiasRelative
    ___________    _____________    ________    ___________    _____________    ________    _______________    _______________

       "S&P"       "t(10) 95%"        0.95        reject          accept         reject         accept             reject     
       "S&P"       "t(10) 97.5%"     0.975        reject          reject         reject         reject             reject     
       "S&P"       "t(10) 99%"        0.99        reject          reject         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×8 table
      PortfolioID           VaRID        VaRLevel    Conditional    Unconditional    Quantile    MinBiasAbsolute    MinBiasRelative
    ________________    _____________    ________    ___________    _____________    ________    _______________    _______________

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

Ссылки

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

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

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