連続するSettleEvo日付の債券の価格 (HW2FPrice) を出力するこのループ (はるかに大きなコードの一部) があります。多くの個別の出力ではなく、HW2FPrice の単一の配列を出力するにはどうすればよいですか? 配列をHW2FPrice Vsにしたいと思います。セトルエボ。どうもありがとう、
for SettleEvo = Settle:datenum('14-Mar-2013');
NumCouponsRemaining = cpncount(SettleEvo, Maturity, Period, Basis, 1, IssueDate); % Coupon payments remaining until maturity. Calculates the number of periods from start to finish.
nPeriods = NumCouponsRemaining;
[CFlowAmounts, CFlowDates] = cfamounts(CouponRate, SettleEvo, Maturity);
CFlowTimes = yearfrac(SettleEvo,CFlowDates);
CFlowZero = interp1(ZeroTimes,ZeroRates,CFlowTimes,'linear','extrap');
CFlowDF_Zero = zero2disc(CFlowZero,CFlowDates,SettleEvo);
Price_Zero = CFlowAmounts*CFlowDF_Zero';
[CFlowAmounts, CFlowDates, TFactors, Factors] = cfamounts(CouponRate,SettleEvo,repmat(Maturity,1,nTrials),Period,Basis);
CFlowDFSim = cumprod(exp(squeeze(-SimZeroRates(2:end,1,:).*stepSize)));
SimZeroRates は (nPeriods,nTenors,nTrials) の配列です。
Price_Ind = sum(CFlowAmounts(:,2:end).*CFlowDFSim',2);
HW2FPrice = mean(Price_Ind)
end