Моделирование предоплаты с белой моделью двухфакторного корпуса и рыночной моделью LIBOR

В этом примере показано, как смоделировать предоплату в MATLAB ® с помощью функциональности из Financial Instruments Toolbox™. В частности, изменение модели предоплаты Ричарда и Ролла реализована с использованием двухфакторной модели процентной ставки Халла-Уайта и рыночной модели LIBOR для моделирования будущих путей процентной ставки. Обеспеченность, поддерживаемая ипотекой, оценивается как с помощью пользовательских, так и с помощью моделей предоплаты по умолчанию.

Введение

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

Модель PSA

Наиболее базовой моделью предоплаты является модель Public Securities Association (PSA), которая принимает фазу увеличения и затем постоянную условную ставку предоплаты (CPR). Модель PSA может быть сгенерирована в MATLAB с помощью функции Financial Instruments Toolbox psaspeed2rate.

G2PP_CPR = psaspeed2rate([100 200]);
figure
plot(G2PP_CPR)
title('100 and 200 PSA Prepayment Speeds')
xlabel('Months')
ylabel('CPR')
ylim([0 .14])
legend({'100 PSA','200 PSA'}, 'Location', 'Best')

Ипотечное обеспечение

MBS, анализируемый в этом примере, созревает в 2020 году и имеет свойства, описанные в этом разделе. Денежные потоки генерируются для скорости предоплаты PSA просто путем ввода скорости PSA в качестве входного параметра.

% Parameters for MBS passthrough to be priced
Settle = datenum('15-Dec-2007');
Maturity = datenum('15-Dec-2020');
IssueDate = datenum('15-Dec-2000');
GrossRate = .0475;
CouponRate = .045;
Delay = 14;
Period = 12;
Basis = 4;

% Generate cash flows and dates for baseline case using 100 PSA
[CFlowAmounts, CFlowDates] = mbscfamounts(Settle,Maturity, IssueDate,...
    GrossRate, CouponRate, Delay,100);
CFlowTimes = yearfrac(Settle,CFlowDates);
NumCouponsRemaining = cpncount(Settle, Maturity, Period,Basis, 1, IssueDate);

Модель Ричарда и Крена

Хотя моделирование предоплаты часто включает комплексное и сложное моделирование, часто на уровне кредита, этот пример использует слегка измененный подход, основанный на модели, предложенной Ричардом и Роллом в [6].

Модель предоплаты Richard and Roll включает следующие факторы:

  • Стимулирование рефинансирования

  • Сезонность (месяц года)

  • Приправа или возраст ипотеки

  • Перегорание

Ричард и Крен предлагают мультипликативную модель следующего:

$$ CPR = RefiIncentive*SeasoningMultiplier*
SeasonalityMultiplier*BurnoutMultiplier $$

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

Стимул рефинансирования является функцией отношения купонной ставки ипотеки к доступной ипотечной ставке в эту конкретную точку времени. Для примера Управление по надзору за безопасностью (OTS) предлагает следующую модель:

$$ Refi=.2406-.1389*arctan(5.952*(1.089- \frac{CouponRate}{MortgageRate}))
$$

Стимул рефинансирования требует симуляции будущих процентных ставок. Это будет рассмотрено ниже в этом примере.

C_M = .1:.1:2;
G2PP_Refi = .2406 - .1389 * atan(5.952*(1.089 - C_M));
figure
plot(C_M,G2PP_Refi)
xlabel('Coupon/Mortgage Rate')
ylabel('CPR')
title('Refinancing Incentive')

Приправа фиксирует тенденцию к увеличению предоплаты в начале ипотеки перед выравниванием. OTS моделирует множитель приправы следующим образом:

Seasoning = ones(360,1);
Seasoning(1:29) = (1:29)/30;
figure
plot(Seasoning)
xlim([1 360])
title('Seasoning Multiplier')
xlabel('Months')

Множитель сезонности просто моделирует сезонное поведение предоплат - эти данные основаны на фигуре 3 [6], который относится к поведению Ginnie Mae 30-летнего, односемейного MBS.

Seasonality = [.94 .76 .73 .96 .98 .92 .99 1.1 1.18 1.21 1.23 .97];
figure
plot(Seasonality)
xlim([1 12])
ax = gca;
ax.XTick = 1:12;
ax.XTickLabel = {'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug', ...
    'Sep','Oct','Nov','Dec'};
title('Seasonality Multiplier')

Модель процентной ставки G2 + +

Поскольку стимул рефинансирования требует симуляции будущих процентных ставок, должна использоваться модель процентной ставки. Одним из вариантов является двухфакторная аддитивная Гауссова модель, называемая G2 + + Brigo и Mercurio [2].

Модель процентной ставки G2 + +:

$$ r(t) = x(t) + y(t) + \varphi (t) $$

$$ dx(t) = -ax(t) dt + \sigma dW_1(t) $$

$$ dy(t) = -by(t) dt + \eta dW_2(t) $$

где$$ dW_1(t)dW_2(t) $$ - двумерное броуновское движение с корреляцией $$ \rho $$

$$ dW_1(t)dW_2(t) = \rho dt $$

$$ \varphi (T) = f^M(0,T) + \frac{\sigma^2}{2a^2}(1 - e^{-aT})^2 +
\frac{\eta^2}{2b^2}(1 - e^{-bT})^2 + \rho \frac{\sigma \eta}{ab}
(1 - e^{-aT}) (1 - e^{-bT}) $$

и$$ r(t) $$ является короткой скоростью,$$ a $$ и $$ b $$являются средними константами реверсии и и$$ \sigma $$ являются$$ \eta $$ константами волатильности, и является$$ f^M(0,T) $$ рыночной форвардной скоростью или форвардной скоростью, наблюдаемой на дату расчета.

Модель рынка LIBOR

Рыночная модель LIBOR (LMM) отличается от короткоскоростных моделей тем, что развивает набор дискретных форвардных скоростей. В частности, lognormal LMM задает следующее уравнение диффузии для каждой прямой скорости:

$$ \frac{dF_i(t)}{F_i} = - \mu_i dt + \sigma_i(t) dW_i $$

где

dW является N-мерным геометрическим броуновским движением со:

$$ dW_i(t) dW_j(t) = \rho_{ij} dt $$

LMM связывает дрейфы форвардных скоростей на основе аргументов без арбитража. В частности, в соответствии с мерой Spot LIBOR дрейфы выражаются следующим образом:

$$ \mu_i(t) = - \sigma_i(t) \sum_{j=q(t)}^i {\frac{\tau_j \rho_{i,j} \sigma_j(t) F_j(t)}{1 + \tau_j F_j(t)}} $$

где

$$ \tau_i $$ - временная дробь, связанная с i-й прямой скоростью

$$ q(t) $$ is an index function defined by the relation $$ T_{q(t)-1} < t&#xA;< T_{q(t)} $$

и числитель Spot LIBOR определяется как следующее:

$$ B(t) = P(t, T_{q(t)}) \prod_{n=0}^{q(t)-1} (1 + \tau_n F_n(T_n)) $$

Учитывая вышесказанное, выбор с LMM заключается в том, как смоделировать волатильность и корреляцию.

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

$$ \sigma_i(t) = \phi_i (a(T_i - t) + b) e^{c(T_i-t)} + d $$

where$$ \phi $$ корректирует кривую так, чтобы она совпадала с волатильностью для$$ i^{th} $$ прямой скорости.

Точно так же должна быть задана корреляция между форвардными скоростями. Это может быть оценено из исторических данных или подобрано для опции цен. В данном примере будет использоваться следующая функциональная форма:

$$ \rho_{i,j} = e^{-\beta |i-j|} $$

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

% The volatility function to be used -- and one choice for the parameters
LMMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4);
LMMVolParams = [.13 .04 .7 .08];

% Volatility specification
fplot(@(t) LMMVolFunc(LMMVolParams,t),[0 10])
title(['Volatility Function with parameters ' mat2str(LMMVolParams)])
ylabel('Volatility (%)')
xlabel('Tenor (years)')

Калибровка к рыночным данным

Параметры в модели G2 + + могут быть калиброваны по рыночным данным. Как правило, параметры калибруются по наблюдаемым прописным буквам процентных ставок, полу и/или свопции. В настоящее время данные прописной буквы используются для калибровки.

Эти данные являются жесткими, но могут быть импортированы в MATLAB с помощью Toolbox™ Database Toolbox™ или Datafeed.

% Zero Curve -- this data is hardcoded for now, but could be bootstrapped
% using the |bootstrap| method of |IRDataCurve|.
ZeroTimes = [3/12 6/12 1 5 7 10 20 30]';
ZeroRates = [0.033 0.034 0.035 0.040 0.042 0.044 0.048 0.0475]';
ZeroDates = daysadd(Settle,360*ZeroTimes,1);
DiscountRates = zero2disc(ZeroRates,ZeroDates,Settle);
irdc = IRDataCurve('Zero',Settle,ZeroDates,ZeroRates);

figure
plot(ZeroDates,ZeroRates)
datetick
title(['US Zero Curve for ' datestr(Settle)])

% Cap Data
Reset = 2;
Notional = 100;
CapMaturity = daysadd(Settle,360*[1:5 7 10 15 20 25 30],1);
CapVolatility = [.28 .30 .32 .31 .30 .27 .23 .2 .18 .17 .165]';

% ATM strikes could be computed with swapbyzero
Strike = [0.0353 0.0366 0.0378 0.0390 0.0402 0.0421 0.0439 ...
    0.0456 0.0471 0.0471 0.0471]';

% This could be computed with capbyblk
BlackCapPrices = [0.1532 0.6416 1.3366 2.0290 2.7366 4.2960 6.5992 ...
    9.6787 12.2580 14.0969 15.7873]';

figure
scatter(CapMaturity,CapVolatility)
datetick
title(['ATM Volatility for Caps on ' datestr(Settle)])

Для калибровки параметров модели будет найден набор параметров, который минимизирует сумму квадратов различий между предсказанными значениями Cap G2 + + и наблюдаемыми значениями Black Cap. Функция Optimization Toolbox™ lsqnonlin используется в этом примере, хотя другие подходы (например, глобальная оптимизация) также могут быть применимы. Функция capbylg2f вычисляет аналитические значения для прописных букв параметров.

Верхняя и нижняя границы для параметров модели заданы как относительно ограниченные. Как обсуждают Бриго и Меркурио, параметр корреляции,, $$ rho $$может часто быть близок к -1 при подгонке модели G2 + + к ценам прописной буквы процентных ставок. Поэтому$$ rho $$ ограничено находиться между -.7 и .7 чтобы гарантировать, что параметры представляют действительно двухфакторную модель. Оставшиеся средние параметры реверсии и волатильности ограничены, чтобы быть между 0 и .5. Калибровка остается сложной задачей, и хотя график ниже указывает, что параметры наилучшего соответствия, по-видимому, выполняют достаточно хорошую работу по воспроизведению цен прописная буква, следует отметить, что процедура, изложенная здесь, просто представляет собой один подход.

% Call to lsqnonlin to calibrate parameters
objfun = @(x) BlackCapPrices - capbylg2f(irdc,x(1),x(2),x(3),x(4),x(5),Strike,CapMaturity);
x0 = [.5 .05 .1 .01 -.1];
lb = [0 0 0 0 -.7];
ub = [.5 .5 .5 .5 .7];

G2PP_Params = lsqnonlin(objfun,x0,lb,ub);

a = G2PP_Params(1);
b = G2PP_Params(2);
sigma = G2PP_Params(3);
eta = G2PP_Params(4);
rho = G2PP_Params(5);

% Compare the results
figure
scatter(CapMaturity,BlackCapPrices)
hold on
scatter(CapMaturity,capbylg2f(irdc,a,b,sigma,eta,rho,Strike,CapMaturity),'rx')
datetick
title('Market and Model Implied Prices')
ylabel('Price ($)')
Local minimum possible.

lsqnonlin stopped because the final change in the sum of squares relative to 
its initial value is less than the value of the function tolerance.

Внедрение модели G2 + +

The LinearGaussian2F модель может использоваться, чтобы задать модель G2 + + и симулировать будущие пути процентных ставок.

% G2++ model from Brigo and Mercurio with time homogeneous volatility
% parameters
G2PP = LinearGaussian2F(irdc,a,b,sigma,eta,rho);

Реализация рыночной модели LIBOR

После того, как волатильность и корреляция были калиброваны, симуляция Монте-Карло используется для развития скоростей вперед во времени. The LiborMarketModel объект используется для моделирования форвардных скоростей.

Хотя уменьшение фактора часто используется с LMM для уменьшения вычислительной сложности, в этом примере нет сокращения фактора.

6M LIBOR выбраны, чтобы развиваться в этой симуляции. Поскольку ежемесячный вектор предоплаты должен быть вычислен, интерполяция используется, чтобы сгенерировать промежуточные ставки. Используется простая линейная интерполяция.

numForwardRates = 46;

% Instead of being fit, VolPhi is simply hard-coded  --
% representative of a declining volatility over time.
VolPhi = linspace(1.2,.8,numForwardRates-1)';

Beta = .08;
CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));
CorrMat = CorrFunc(meshgrid(1:numForwardRates-1)',meshgrid(1:numForwardRates-1),Beta);

VolFunc = cell(length(VolPhi),1);
for jdx = 1:length(VolPhi)
    VolFunc(jdx) = {@(t) VolPhi(jdx)*ones(size(t)).*(LMMVolParams(1)*t + ...
        LMMVolParams(2)).*exp(-LMMVolParams(3)*t) + LMMVolParams(4)};
end

LMM = LiborMarketModel(irdc,VolFunc,CorrMat);

Симуляция G2 + + Монте-Карло

Различные пути процентной ставки могут быть симулированы путем вызова simTermStructs способ.

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

nPeriods = NumCouponsRemaining;
nTrials = 100;
DeltaTime = 1/12;

% Generate factors and short rates
Tenor = [1/12 1 2 3 4 5 7 10 15 20 30];
G2PP_SimZeroRates = G2PP.simTermStructs(nPeriods,'NTRIALS',nTrials,...
    'Tenor',Tenor,'DeltaTime',DeltaTime);

SimDates = daysadd(Settle,360*DeltaTime*(0:nPeriods),1);

% Tenors that will be recovered for each simulation date. The stepsize is
% included here to facilitate computing a discount factor for each
% simulation path.

% Remove any paths that go negative
NegIdx = squeeze(any(any(G2PP_SimZeroRates < 0,1),2));
G2PP_SimZeroRates(:,:,NegIdx) = [];
nTrials = size(G2PP_SimZeroRates,3);

% Plot evolution of one sample path
trialIdx = 1;
figure
surf(Tenor,SimDates,G2PP_SimZeroRates(:,:,trialIdx))
datetick y keepticks keeplimits
title(['Evolution of the Zero Curve for Trial:' num2str(trialIdx) ' of G2++ Model'])
xlabel('Tenor (Years)')

Симуляция модели рынка LIBOR

Различные пути процентной ставки могут быть симулированы путем вызова simTermStructs метод LiborMarketModel объект.

LMMPeriod = 2; % Semi-annual rates
LMMNumPeriods = NumCouponsRemaining/12*LMMPeriod; % Number of semi-annual periods
LMMDeltaTime = 1/LMMPeriod;
LMMNTRIALS = 100;

% Simulate
[LMMZeroRates, LMMForwardRates] = LMM.simTermStructs(LMMNumPeriods,'nTrials',LMMNTRIALS,'DeltaTime',LMMDeltaTime);
ForwardTimes = 1/2:1/2:numForwardRates/2;
LMMSimTimes = 0:1/LMMPeriod:LMMNumPeriods/LMMPeriod;

% Plot evolution of one sample path
trialIdx = 1;
figure
tmpPlotData = LMMZeroRates(:,:,trialIdx);
tmpPlotData(tmpPlotData == 0) = NaN;
surf(ForwardTimes,LMMSimTimes,tmpPlotData)
title(['Evolution of the Zero Curve for Trial:' num2str(trialIdx) ' of LIBOR Market Model'])
xlabel('Tenor (Years)')

Вычисление ипотечных ставок из симуляции

После моделирования путей процентной ставки необходимо вычислить ипотечную ставку - один из подходов, обсуждаемый [7], заключается в вычислении ипотечной ставки из комбинации двухлетней и десятилетней ставок.

В данном примере используется следующее:

$$ MortgageRate = .024 + .2*TwoYearRate + .6*TenYearRate $$

% Compute mortgage rates from interest rate paths
TwoYearRates = squeeze(G2PP_SimZeroRates(:,Tenor == 2,:));
TenYearRates = squeeze(G2PP_SimZeroRates(:,Tenor == 7,:));
G2PP_MortgageRates = .024 + .2*TwoYearRates + .6*TenYearRates;

LMMMortgageRates = squeeze(.024 + .2*LMMZeroRates(:,4,:) + .6*LMMZeroRates(:,20,:));
LMMDiscountFactors = squeeze(cumprod(1./(1 + LMMZeroRates(:,1,:)*.5)));

% Interpolate to get monthly mortgage rates
MonthlySimTimes = 0:1/12:LMMNumPeriods/LMMPeriod;
LMMMonthlyMortgageRates = zeros(nPeriods+1,LMMNTRIALS);
LMMMonthlyDF = zeros(nPeriods+1,LMMNTRIALS);
for trialidx = 1:LMMNTRIALS
   LMMMonthlyMortgageRates(:,trialidx) = interp1(LMMSimTimes,LMMMortgageRates(:,trialidx),MonthlySimTimes,'linear','extrap');
   LMMMonthlyDF(:,trialidx) = interp1(LMMSimTimes,LMMDiscountFactors(:,trialidx),MonthlySimTimes,'linear','extrap');
end

Вычисление CPR и генерация и оценка денежных потоков

После моделирования ипотечных ставок CPR может быть вычислен из мультипликативной модели для каждого пути процентной ставки.

% Compute Seasoning and Refinancing Multipliers
Seasoning = ones(nPeriods+1,1);
Seasoning(1:30) = 1/30*(1:30);
G2PP_Refi = .2406 - .1389 * atan(5.952*(1.089 - CouponRate./G2PP_MortgageRates));
LMM_Refi = .2406 - .1389 * atan(5.952*(1.089 - CouponRate./LMMMonthlyMortgageRates));

% CPR is simply computed by evaluating the multiplicative model
G2PP_CPR = bsxfun(@times,G2PP_Refi,Seasoning.*(Seasonality(month(CFlowDates))'));
LMM_CPR = bsxfun(@times,LMM_Refi,Seasoning.*(Seasonality(month(CFlowDates))'));

% Compute single monthly mortality (SMM) from CPR
G2PP_SMM = 1 - (1 - G2PP_CPR).^(1/12);
LMM_SMM = 1 - (1 - LMM_CPR).^(1/12);

% Plot CPR's against 100 PSA
CPR_PSA100 = psaspeed2rate(100);
figure
PSA_handle = plot(CPR_PSA100(1:nPeriods),'rx');
hold on
G2PP_handle = plot(G2PP_CPR,'b');
LMM_handle = plot(LMM_CPR,'g');
title('Prepayment Speeds')
legend([PSA_handle(1) G2PP_handle(1) LMM_handle(1)],{'100 PSA','G2PP CPR','LMM CPR'},'Location', 'Best');

Сгенерируйте денежные потоки и вычислите текущее значение

С вектором ежемесячной смертности (SMM), вычисленным для каждого пути процентной ставки, денежные потоки для MBS могут быть вычислены и дисконтированы.

% Compute the baseline zero rate at each cash flow time
CFlowZero = interp1(ZeroTimes,ZeroRates,CFlowTimes,'linear','extrap');

% Compute DF for each cash flow time
CFlowDF_Zero = zero2disc(CFlowZero,CFlowDates,Settle);

% Compute the price of the MBS using the zero curve
Price_Zero = CFlowAmounts*CFlowDF_Zero';

% Generate the cash flows for each IR Path
G2PP_CFlowAmounts = mbscfamounts(Settle, ...
    repmat(Maturity,1,nTrials), IssueDate, GrossRate, CouponRate, Delay, [], G2PP_SMM(2:end,:));

% Compute the DF for each IR path
G2PP_CFlowDFSim = cumprod(exp(squeeze(-G2PP_SimZeroRates(:,1,:).*DeltaTime)));

% Present value the cash flows for each MBS
G2PP_Price_Ind = sum(G2PP_CFlowAmounts.*G2PP_CFlowDFSim',2);
G2PP_Price = mean(G2PP_Price_Ind);

% Repeat for LMM
LMM_CFlowAmounts = mbscfamounts(Settle, ...
    repmat(Maturity,1,LMMNTRIALS), IssueDate, GrossRate, CouponRate, Delay, [], LMM_SMM(2:end,:));

% Present value the cash flows for each MBS
LMM_Price_Ind = sum(LMM_CFlowAmounts.*LMMMonthlyDF',2);
LMM_Price = mean(LMM_Price_Ind);

Можно сравнить результаты различных подходов. Количество испытаний для модели G2 + + обычно будет меньше 100 из-за фильтрации любых путей, которые приводят к отрицательным процентным ставкам.

Кроме того, хотя количество испытаний для модели G2 + + в этом примере установлено, чтобы быть 100, часто случается, что для получения точной оценки необходимо запустить большее количество симуляций.

fprintf('                     # of Monte Carlo Trials: %8d\n'    , nTrials)
fprintf('                     # of Time Periods/Trial: %8d\n\n'  , nPeriods)
fprintf('                      MBS Price with PSA 100: %8.4f\n'  , Price_Zero)
fprintf(' MBS Price with Custom G2PP Prepayment Model: %8.4f\n\n', G2PP_Price)
fprintf(' MBS Price with Custom LMM Prepayment Model: %8.4f\n\n', LMM_Price)
                     # of Monte Carlo Trials:       72
                     # of Time Periods/Trial:      156

                      MBS Price with PSA 100:   1.0187
 MBS Price with Custom G2PP Prepayment Model:   0.9884

 MBS Price with Custom LMM Prepayment Model:   0.9993

Заключение

В этом примере показано, как калибровать и симулировать модель процентной ставки G2 + + и как использовать сгенерированные пути процентной ставки в модели предоплаты свободно на основе модели Ричарда и Крена. Этот пример также предоставляет полезную начальную точку для использования моделей процентных ставок G2 + + и LMM в других финансовых приложениях.

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

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

  1. Андерсен, Л. и В. Питербарг (2010). Моделирование процентных ставок, Atlantic Financial Press.

  2. Бриго, Д. и Ф. Меркурио (2001). Модели процентных ставок - теория и практика с улыбкой, инфляцией и кредитом (2-е изд. 2006 изд.). Springer Verlag. ISBN 978-3-540-22149-4.

  3. Hayre, L, ed., Salomon Smith Barney Guide to Mortgage-Backed and Asset-Backed Securities. Нью-Йорк: John Wiley & Sons, 2001b

  4. Karpishpan, Y., O. Turel, and A. Hasha, Введение модели структуры терминов Citi LMM для ипотеки, Журнал фиксированного дохода, том 20 (2010) 44-58.

  5. Rebonato, R., K. McKay, and R. White (2010). Модель рынка Sabr/Libor: ценообразование, калибровка и хеджирование для сложных производных по процентным ставкам. Джон Уайли и сыновья.

  6. Richard, S. F. and R. Roll, 1989, «Предоплата по ипотечным ценным бумагам с фиксированной ставкой», Journal of Portfolio Management.

  7. Управление по надзору за коммерческой деятельностью, «Руководство по модели чистого портфельного значения», март 2000 года.

  8. Stein, H. J., Belikoff, A. L., Levin, K. and Tian, X., Анализ ипотечных обеспеченных ценных бумаг: до и после кредитного кризиса (5 января 2007). Границы кредитного риска: кризис притока, ценообразование и хеджирование, CVA, MBS, рейтинги и ликвидность; Билецкий, Томаш,; Damiano Brigo and Frederic Patras, eds., February 2011. Доступно в SSRN: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=955358

См. также

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

Похожие примеры

Подробнее о