Рабочий процесс VaR Backtesting

Этот пример показывает подверженный риску значения (VaR) backtesting рабочий процесс и использование инструментов VaR backtesting. Для более всестороннего примера VaR backtesting смотрите Value-at-Risk Estimation и Backtesting.

Шаг 1. Загрузите данные VaR backtesting.

Используйте файл VaRBacktestData.mat, чтобы загрузить данные VaR в рабочую область. Этот пример работает с EquityIndex, Normal95 и числовыми массивами Normal99. Эти массивы являются акцией, возвращается, и соответствующие данные VaR в 95% и 99% доверительных уровней производятся с нормальным распределением (подход ковариации отклонения). Смотрите Value-at-Risk Estimation и Backtesting для примера о том, как сгенерировать эти данные VaR.

load('VaRBacktestData')
disp([EquityIndex(1:5) Normal95(1:5) Normal99(1:5)])
   -0.0043    0.0196    0.0277
   -0.0036    0.0195    0.0276
   -0.0000    0.0195    0.0275
    0.0298    0.0194    0.0275
    0.0023    0.0197    0.0278

Первый столбец показывает три потери за первые три дня, но ни одна из этих потерь не превышает соответствующий VaR (столбцы 2 и 3). Модель VaR перестала работать каждый раз, когда потеря (отрицательный из возвратов) превышает VaR.

Шаг 2. Сгенерируйте график VaR backtesting.

Используйте функцию plot, чтобы визуализировать данные VaR backtesting. Этот тип визуализации является общим первым шагом при выполнении анализа VaR backtesting.

plot(Date,[EquityIndex -Normal95 -Normal99])
title('VaR Backtesting')
xlabel('Date')
ylabel('Returns')
legend('Returns','VaR 95%','VaR 99%')

Шаг 3. Создайте объект varbacktest.

Создайте объект varbacktest для акции, возвращается и Вар в 95% и 99% доверительных уровней.

vbt = varbacktest(EquityIndex,[Normal95 Normal99],...
   'PortfolioID','S&P', ...
   'VaRID',{'Normal95' 'Normal99'}, ...
   'VaRLevel',[0.95 0.99]);
disp(vbt)
  varbacktest with properties:

    PortfolioData: [1043x1 double]
          VaRData: [1043x2 double]
      PortfolioID: "S&P"
            VaRID: ["Normal95"    "Normal99"]
         VaRLevel: [0.9500 0.9900]

Шаг 4. Запустите сводный отчет.

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

summary(vbt)
ans=2×10 table
    PortfolioID      VaRID       VaRLevel    ObservedLevel    Observations    Failures    Expected    Ratio     FirstFailure    Missing
    ___________    __________    ________    _____________    ____________    ________    ________    ______    ____________    _______

       "S&P"       "Normal95"      0.95         0.94535           1043           57        52.15       1.093         58            0   
       "S&P"       "Normal99"      0.99          0.9837           1043           17        10.43      1.6299        173            0   

Шаг 5. Запущение всех тестов.

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

runtests(vbt)
ans=2×11 table
    PortfolioID      VaRID       VaRLevel      TL       Bin       POF       TUFF       CC       CCI       TBF       TBFI 
    ___________    __________    ________    ______    ______    ______    ______    ______    ______    ______    ______

       "S&P"       "Normal95"      0.95      green     accept    accept    accept    accept    accept    reject    reject
       "S&P"       "Normal99"      0.99      yellow    reject    accept    accept    accept    accept    accept    accept

Шаг 6. Запустите отдельные тесты.

После запущения всех тестов можно исследовать детали конкретных тестов. Например, используйте функцию tl, чтобы запустить тест светофора.

tl(vbt)
ans=2×9 table
    PortfolioID      VaRID       VaRLevel      TL      Probability     TypeI     Increase    Observations    Failures
    ___________    __________    ________    ______    ___________    _______    ________    ____________    ________

       "S&P"       "Normal95"      0.95      green       0.77913      0.26396          0         1043           57   
       "S&P"       "Normal99"      0.99      yellow      0.97991      0.03686    0.26582         1043           17   

Шаг 7. Создайте VaR backtests для нескольких портфелей.

Можно создать VaR backtests для различных портфелей или того же портфеля по различным окнам времени. Запустите тесты более чем два различных подокна исходного тестового окна.

Ind1 = year(Date)<=2000;
Ind2 = year(Date)>2000;

vbt1 = varbacktest(EquityIndex(Ind1),[Normal95(Ind1,:) Normal99(Ind1,:)],...
   'PortfolioID','S&P, 1999-2000',...
   'VaRID',{'Normal95' 'Normal99'},...
   'VaRLevel',[0.95 0.99]);

vbt2 = varbacktest(EquityIndex(Ind2),[Normal95(Ind2,:) Normal99(Ind2,:)],...
   'PortfolioID','S&P, 2001-2002',...
   'VaRID',{'Normal95' 'Normal99'},...
   'VaRLevel',[0.95 0.99]);

Шаг 8. Отобразите сводный отчет для обоих портфелей.

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

Summary = [summary(vbt1); summary(vbt2)];
disp(Summary)
      PortfolioID         VaRID       VaRLevel    ObservedLevel    Observations    Failures    Expected    Ratio     FirstFailure    Missing
    ________________    __________    ________    _____________    ____________    ________    ________    ______    ____________    _______

    "S&P, 1999-2000"    "Normal95"      0.95         0.94626           521            28        26.05      1.0749         58            0   
    "S&P, 1999-2000"    "Normal99"      0.99         0.98464           521             8         5.21      1.5355        173            0   
    "S&P, 2001-2002"    "Normal95"      0.95         0.94444           522            29         26.1      1.1111         35            0   
    "S&P, 2001-2002"    "Normal99"      0.99         0.98276           522             9         5.22      1.7241         45            0   

Шаг 9. Запустите все тесты для обоих портфелей.

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

Results = [runtests(vbt1);runtests(vbt2)];
disp(Results)
      PortfolioID         VaRID       VaRLevel      TL       Bin       POF       TUFF       CC       CCI       TBF       TBFI 
    ________________    __________    ________    ______    ______    ______    ______    ______    ______    ______    ______

    "S&P, 1999-2000"    "Normal95"      0.95      green     accept    accept    accept    accept    accept    reject    reject
    "S&P, 1999-2000"    "Normal99"      0.99      green     accept    accept    accept    accept    accept    accept    accept
    "S&P, 2001-2002"    "Normal95"      0.95      green     accept    accept    accept    accept    accept    accept    accept
    "S&P, 2001-2002"    "Normal99"      0.99      yellow    accept    accept    accept    accept    accept    accept    accept

Смотрите также

| | | | | | | | | |

Связанные примеры

Больше о

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