Управление риском процентной ставки с фьючерсами связи

В этом примере показано, как застраховать риск процентной ставки портфеля с помощью фьючерсов связи.

Изменение длительности портфеля с фьючерсами связи

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

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

Там существуйте хорошо развитые рынки для фьючерсов государственной облигации. А именно, Чикагская товарная биржа предлагает фьючерсы на следующем:

  • 2-летняя ценная бумага

  • 3-летняя ценная бумага

  • 5-летняя ценная бумага

  • 10-летняя ценная бумага

  • 30-летняя связь

https://www.cmegroup.com/trading/interest-rates/

Eurex предлагает фьючерсы на следующем:

  • Фьючерсы Юро-Шатца 1.75 к 2,25

  • Фьючерсы Euro-Bobl 4.5 к 5,5

  • Еврозащитите насыпью фьючерсы 8.5 к 10,5

  • Фьючерсы Euro-Buxl 24.0 к 35

https://www.eurex.com/ex-en/

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

Существует две проблемы в вычислении этой длительности:

  • С тех пор существует много доступных связей для доставки, короткое в контракте имеет выбор в который связь поставить.

  • Некоторые контракты позволяют короткую гибкость в выборе даты поставки.

Как правило, связь, используемая для анализа, является связью, которая является самой дешевой для короткого, чтобы поставить (CTD). Один подход должен вычислить меры по длительности с помощью длительности CTD и коэффициента преобразования.

Например, Приведенная стоимость Пункта (PVBP) может быть вычислена из следующего:

PVBPFutures=PVBPCTDConversionFactorCTD

PVBPCTD=DurationCTD*PriceCTD100

Обратите внимание на то, что эти определения длительности для фьючерсного контракта являются аппроксимированными, и не составляют значение вариантов доставки для короткого.

Если цель состоит в том, чтобы изменить длительность портфеля, используйте следующее:

NumContracts=(DurTarget-DurInitial)*ValuePortfolioDurCTD*PriceCTD*ContractSize*ConvFactorCTD

Обратите внимание на то, что размер контракта обычно для 100 000 номинальных стоимостей связи - таким образом, размер контракта обычно 1000, как номинальная стоимость связи равняется 100.

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

% Assume the following for the portfolio and target
PortfolioDuration = 6.4;
PortfolioValue = 100000000;
BenchmarkDuration = 4.8;

% Deliverable Bunds -- note that these conversion factors may also be
% computed with the MATLAB(R) function convfactor
BondPrice = [106.46;108.67;104.30];
BondMaturity = datenum({'04-Jan-2018','04-Jul-2018','04-Jan-2019'});
BondCoupon = [.04;.0425;.0375];
ConversionFactor = [.868688;.880218;.839275];

% Futures data -- found from http://www.eurex.com
FuturesPrice = 122.17;
FuturesSettle = '23-Apr-2009';
FuturesDelivery = '10-Jun-2009';

% To find the CTD bond we can compute the implied repo rate
ImpliedRepo = bndfutimprepo(BondPrice,FuturesPrice,FuturesSettle,...
    FuturesDelivery,ConversionFactor,BondCoupon,BondMaturity);

% Note that the bond with the highest implied repo rate is the CTD
[CTDImpRepo,CTDIndex] = max(ImpliedRepo);

% Compute the CTD's Duration -- note the period and basis for German Bunds
Duration = bnddurp(BondPrice,BondCoupon,FuturesSettle,BondMaturity,1,8);

ContractSize = 1000;

% Use the formula above to compute the number of contracts to sell
NumContracts = (BenchmarkDuration - PortfolioDuration)*PortfolioValue./...
    (BondPrice(CTDIndex)*ContractSize*Duration(CTDIndex))*ConversionFactor(CTDIndex);

disp(['To achieve the target duration, ' num2str(abs(round(NumContracts))) ...
    ' Euro-Bund Futures must be sold.'])
To achieve the target duration, 180 Euro-Bund Futures must be sold.

Изменение длительности ключевой процентной ставки портфеля с фьючерсами связи

Один из недостатков использования длительности как мера по риску - то, что это принимает, что параллель переключает кривую доходности на нижний регистр. В то время как много исследований показали, что это объясняет, что примерно 85% перемещения в кривой доходности, изменения в наклоне или форме кривой доходности не получены длительностью, и поэтому, стратегии хеджирования не успешны при обращении к этим движущим силам. Один подход должен использовать длительность ключевой процентной ставки - это особенно релевантно при использовании фьючерсов связи с несколькими сроками платежа, как Казначейские фьючерсы.

Следующий пример использует 2, 5, 10 и 30-летние фьючерсы Казначейской облигации, чтобы застраховать длительность ключевой процентной ставки портфеля. Вычислительная длительность ключевой процентной ставки требует кривой нулевой ширины. Этот пример использует кривую нулевой ширины, опубликованную Казначейством и найденную в следующем местоположении:

https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx? data=yield

Обратите внимание на то, что эта кривая нулевой ширины могла также быть выведена с помощью функциональности Кривой Процентной ставки, найденной в IRDataCurve и IRFunctionCurve.

% Assume the following for the portfolio and target, where the duration
% vectors are key rate durations at 2, 5, 10, and 30 years.
PortfolioDuration = [.5 1 2 6];
PortfolioValue = 100000000;
BenchmarkDuration = [.4 .8 1.6 5];

% The following are the CTD Bonds for the 30, 10, 5 and 2 year futures
% contracts -- these were determined using the procedure outlined in the
% previous section.
CTDCoupon = [4.75 3.125 5.125 7.5]'/100;
CTDMaturity = datenum({'3/31/2011','08/31/2013','05/15/2016','11/15/2024'});
CTDConversion = [0.9794 0.8953 0.9519 1.1484]';
CTDPrice = [107.34 105.91 117.00 144.18]';

ZeroRates = [0.07 0.10 0.31 0.50 0.99 1.38 1.96 2.56 3.03 3.99 3.89]'/100;
ZeroDates = daysadd(FuturesSettle,[30 360 360*2 360*3 360*5 ...
    360*7 360*10 360*15 360*20 360*25 360*30],1);

% Compute the key rate durations for each of the CTD bonds.
CTDKRD = bndkrdur([ZeroDates ZeroRates], CTDCoupon,FuturesSettle,...
    CTDMaturity,'KeyRates',[2 5 10 30]);

% Note that the contract size for the 2 Year Note Future is $200,000
ContractSize = [2000;1000;1000;1000];

NumContracts = (bsxfun(@times,CTDPrice.*ContractSize./CTDConversion,CTDKRD))\...
    (BenchmarkDuration - PortfolioDuration)'*PortfolioValue;

sprintf(['To achieve the target duration, \n' ...
    num2str(-round(NumContracts(1))) ' 2 Year Treasury Note Futures must be sold, \n' ...
    num2str(-round(NumContracts(2))) ' 5 Year Treasury Note Futures must be sold, \n' ...
    num2str(-round(NumContracts(3))) ' 10 Year Treasury Note Futures must be sold, \n' ...
    num2str(-round(NumContracts(4))) ' Treasury Bond Futures must be sold, \n'])
ans = 
    'To achieve the target duration, 
     24 2 Year Treasury Note Futures must be sold, 
     47 5 Year Treasury Note Futures must be sold, 
     68 10 Year Treasury Note Futures must be sold, 
     120 Treasury Bond Futures must be sold, 
     '

Улучшание производительности преграды с регрессией

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

Поэтому, если положение застраховано с будущим, где связь CTD имеет зрелость, которая отличается, чем портфель, который это могло привести к ситуации, где преграда под - или перекомпенсировала для фактического риска процентной ставки портфеля, Один подход должен выполнить регрессию на исторических выражениях в различных сроках платежа, чтобы определить Бету Выражения, которая является значением, которое представляет, сколько еще выражение изменяется для различных сроков платежа.

В этом примере показано, как использовать этот подход с Великобританией Долгие Позолоченные фьючерсы и исторические данные на Позолоченных Выражениях.

Данные о рынке по Позолоченным фьючерсам найдены в следующем:

https://www.euronext.com

Исторические данные на гарантированных ценных бумагах найдены в следующем;

https://www.dmo.gov.uk

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

Также обратите внимание, что дополнительное улучшение учитывает корреляцию между различными сроками платежа. В то время как этот подход выходит за рамки этого примера, можно использовать это, чтобы реализовать минимальную преграду отклонения.

% Assume the following for the portfolio and target
PortfolioDuration = 6.4;
PortfolioValue = 100000000;
BenchmarkDuration = 4.8;

% This is the CTD Bond for the Long Gilt Futures contract
CTDBondPrice = 113.40;
CTDBondMaturity = datenum('7-Mar-2018');
CTDBondCoupon = .05;
CTDConversionFactor = 0.9325024;

% Market data for the Long Gilt Futures contract
FuturesPrice = 120.80;
FuturesSettle = '23-Apr-2009';
FuturesDelivery = '10-Jun-2009';

CTDDuration = bnddurp(CTDBondPrice,CTDBondCoupon,FuturesSettle,CTDBondMaturity);

ContractSize = 1000;

NumContracts = (BenchmarkDuration - PortfolioDuration)*PortfolioValue./...
    (CTDBondPrice*ContractSize*CTDDuration)*CTDConversionFactor;

disp(['To achieve the target duration with a conventional hedge ' ...
    num2str(-round(NumContracts)) ...
    ' Long Gilt Futures must be sold.'])
To achieve the target duration with a conventional hedge 182 Long Gilt Futures must be sold.

Чтобы улучшить точность этой преграды, исторические данные используются, чтобы определить отношение между стандартным отклонением выражений. А именно, стандартное отклонение выражений построено и регрессировало по сравнению с длительностью связи. Это отношение затем используется для расчета Бета Выражения в преграде.

% Load data from XLS spreadsheet
load ukbonddata_20072008

Duration = bnddury(Yield(1,:)',Coupon,Dates(1,:),Maturity);

scatter(Duration,100*std(Yield))
title('Standard Deviation of Yields for UK Gilts 2007-2008')
ylabel('Standard Deviation of Yields (%)')
xlabel('Duration')
annotation(gcf,'textbox',[0.4067 0.685 0.4801 0.0989],...
    'String',{'Note that the Standard Deviation',...
    'of Yields is greater at shorter maturities.'},...
    'FitBoxToText','off',...
    'EdgeColor','none');

Figure contains an axes object. The axes object with title Standard Deviation of Yields for UK Gilts 2007-2008 contains an object of type scatter.

stats = regstats(std(Yield),Duration);
YieldBeta = (stats.beta'*[1 PortfolioDuration]')./(stats.beta'*[1 CTDDuration]');

Теперь Бета Выражения используется для расчета новое значение в количестве контрактов, которые будут проданы. Обратите внимание на то, что, поскольку длительность портфеля была меньше длительности Позолоты CTD, количество фьючерсов, чтобы продать на самом деле больше в первом случае.

NumContracts = (BenchmarkDuration - PortfolioDuration)*PortfolioValue./...
    (CTDBondPrice*ContractSize*CTDDuration)*CTDConversionFactor*YieldBeta;

disp(['To achieve the target duration using a Yield Beta-modified hedge, ' ...
    num2str(abs(round(NumContracts))) ...
    ' Long Gilt Futures must be sold.'])
To achieve the target duration using a Yield Beta-modified hedge, 193 Long Gilt Futures must be sold.

Библиография

Этот пример основан на следующих книгах и бумагах:

[1] Burghardt, G. T. Белтон, М. Лейн и J. Папа. Базис казначейской облигации. Нью-Йорк, Нью-Йорк: McGraw-Hill, 2005.

[2] Krgin, D. Руководство глобальных вычислений фиксированного дохода. Нью-Йорк, Нью-Йорк: John Wiley & Sons, 2002.

[3] Программа программы CFA, уровень III, объем 4, читая 31. Институт CFA, 2009.

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

| | | | | | | | | | | | | | | | | | | |

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

Больше о

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