esbacktestbyde

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

Описание

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

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

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

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

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

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

    • unconditionalDE — Безусловный ES backtest Дю-Эсканкяно

    • conditionalDE — Условный ES backtest Дю-Эсканкяно

  6. simulate — Симулируйте критические значения для тестовой статистики

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

Создание

Описание

пример

ebtde = esbacktestbyde(PortfolioData,DistributionName) создает esbacktestbyde (ebtde) объект с помощью данных по результатам портфеля и информации о распределении модели. esbacktestbyde объект имеет следующие свойства:

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

  • VaRData — Вычисленные данные VaR с помощью информации о распределении от PortfolioData, возвращенный как NumRows- NumVaRs числовой массив.

  • ESData — Вычисленные данные о ES с помощью информации о распределении от PortfolioData, возвращенный как NumRows- NumVaRs числовой массив.

  • Распределение — информация о распределении Модели, возвращенная как структура.

  • PortfolioID — Пользовательский ID портфеля.

  • VaRID — VaRIDs для соответствующего столбца в PortfolioData.

  • VaRLevel — VaRLevel для соответствующих столбцов в PortfolioData.

пример

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

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

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

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

В отличие от другого ES backtesting классы, esbacktestbyde не требует данных VaR или вводов данных ES. Информация о распределении от PortfolioData достаточно, чтобы запустить тесты. esbacktestbyde использует информацию о распределении, чтобы применить кумулятивную функцию распределения к данным о портфеле и сопоставить его в (0,1) интервал. ES backtests применяется к сопоставленным данным.

Примечание

Прежде, чем применить тесты, функция отбрасывает строки с отсутствующими значениями (NaN) в PortfolioData или Distribution параметры. Поэтому количество, о котором сообщают, наблюдений равняется исходному количеству строк минус количество отсутствующих значений.

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

Имя распределения модели для ES backtesting анализ, заданный как вектор символов со значением 'normal' или 't' или представьте в виде строки со значением "normal" или "t".

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

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

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

Пример: ebtde = esbacktestbyde(PortfolioData,"t",'DegreesOfFreedom',10,'Location',Mu,'Scale',Sigma,'PortfolioID',"S&P",'VaRID',["t(10) 95%","t(10) 97.5%","t(10) 99%"],'VaRLevel',VaRLevel)

Пары "имя-значение" для 'normal' или 't' Распределения

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

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

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

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

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

Можно задать несколько VaRID значения при помощи 1- NumVaRs (или NumVaRs- 1) массив ячеек из символьных векторов или вектор строки с пользовательскими идентификаторами для различного VaR выравнивают 'VaRID' аргумент пары "имя-значение" устанавливает свойство VaRID.

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

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

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

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

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

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

Пары "имя-значение" для 'normal' Распределения

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

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

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

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

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

Пары "имя-значение" для 't' Распределения

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

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

Примечание

Необходимо установить этот параметр, передаваемый по значению имени когда DistributionName 't'.

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

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

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

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

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

Свойства

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

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

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

Данные VaR, вычисленные с помощью информации о распределении, возвращенной как NumRows- NumVaRs числовой массив.

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

Данные о ES, вычисленные с помощью информации о распределении, возвращенной как NumRows- NumVaRs числовой массив.

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

Информация о распределении модели, возвращенная как struct.

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

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

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

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

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

Идентификатор VaR, возвращенный как 1- NumVaRs массив строк, содержащий модель VaR ES, где NumVaRs количество уровней VaR.

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

Уровень VaR, возвращенный как 1- NumVaRs числовой массив.

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

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

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

summaryОсновной отчет ожидаемого недостатка (ES) относительно отказов и серьезности
runtestsЗапустите весь ожидаемый недостаток (ES) backtests для объекта esbacktestbyde
unconditionalDEБезусловный ожидаемый недостаток (ES) Дю-Эсканкяно (DE) backtest
conditionalDEУсловный ожидаемый недостаток (ES) Дю-Эсканкяно (DE) backtest
simulateСимулируйте тестовую статистику ожидаемого недостатка (ES) Дю-Эсканкяно (DE)

Примеры

свернуть все

Создайте esbacktestbyde объект для t модели с 10 степенями свободы на трех различных уровнях VaR, и затем запускает ES Du и Escanciano backtests.

load ESBacktestDistributionData.mat
    rng('default'); % For reproducibility
    ebtde = esbacktestbyde(Returns,"t",...
       'DegreesOfFreedom',T10DoF,...
       'Location',T10Location,...
       'Scale',T10Scale,...
       'PortfolioID',"S&P",...
       'VaRID',["t(10) 95%","t(10) 97.5%","t(10) 99%"],...
       'VaRLevel',VaRLevel);
  runtests(ebtde)
ans=3×5 table
    PortfolioID        VaRID        VaRLevel    ConditionalDE    UnconditionalDE
    ___________    _____________    ________    _____________    _______________

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

Создайте два esbacktestbyde объекты, один с нормальным распределением и другим с t распределением с 5 степенями свободы, на трех различных уровнях VaR. Затем запустите ES Du и Escanciano backtests использование runtests.

load ESBacktestDistributionData.mat
    rng('default'); % For reproducibility
    ebtde1 = esbacktestbyde(Returns,"normal",...
       'Mean',NormalMean,...
       'StandardDeviation',NormalStd,...
       'PortfolioID',"S&P",...
       'VaRID',["Normal 95%","Normal 97.5%","Normal 99%"],...
       'VaRLevel',VaRLevel);
    ebtde2 = esbacktestbyde(Returns,"t",...
       'DegreesOfFreedom',T5DoF,...
       'Location',T5Location,...
       'Scale',T5Scale,...
       'PortfolioID',"S&P",...
       'VaRID',["t(5) 95%","t(5) 97.5%","t(5) 99%"],...
       'VaRLevel',VaRLevel);

Конкатенация результатов в одной таблице.

t = [runtests(ebtde1);runtests(ebtde2)];
disp(t)
    PortfolioID        VaRID         VaRLevel    ConditionalDE    UnconditionalDE
    ___________    ______________    ________    _____________    _______________

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

Ссылки

[1] Du, Z. и Х. К. Эскансиано. "Бэктестинг ожидаемый недостаток: составление риска хвоста". Наука управления. Издание 63, выпуск 4, апрель 2017.

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

Введенный в R2019b

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