交易的兩方約定在一定的時間內,彼此交換利息所得 (Interest payments) 。 可以浮動換浮動,遠期利率協定可以有多期,利率交換簽約不用付錢,價值反映在 固定利率上。

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

1.

甚麼是利率交換 (interest rate swap)? 利率交換與固定 (浮動) 利率債券之關


係? 交換率與面值殖利率 (par yield) 之關係? 利率交換與遠期利率協
定 (forward rate agreement) 之關係? 如何評價過去發行的利率交換?
交易的兩方約定在一定的時間內,彼此交換利息所得(Interest payments)。
可以浮動換浮動,遠期利率協定可以有多期,利率交換簽約不用付錢,價值反映在
固定利率上。

2. 甚麼是外匯? 外匯交換與利率交換的差異? 名目本金 (notional principal) 對
交換契約的意義? 還有哪些外匯衍生性商品?
利率交換並不交換本金,在進行通貨交換時,則須於交易開始時交換本金,
期中亦須交換利息(以不同幣別支付),期末時還須再將本金交換回來。外
匯衍生性商品包含外匯期貨、選擇權等等。

3. 甚麼是平行貸款 (parallel loan 或 back-to-back loan)? 平行貸款的優缺點? 其


與外匯交換 (currency swap) 的差異?
若 A 公司(美國公司) 與 B 公司(法國公司)簽訂契約,由 A 公司將美元資金提供予 B
公司在美國之子公司,同時 B 公司亦將等值的法郎資金提供予 A 公司在法國的子
公司,此為平行貸款(parallel loan 或 back-to-back loan),亦為外匯交換(currency
swap) 之前身。缺點:必須出現在母公司的資產負債表,兩筆資金的借貸互
相獨立,若一方違約,另一方並不免除償還的義務。

4. 外匯交換契約的交易目的有哪些?
在某些幣別上取得較低廉的資金,再透過外幣交換契約換成所需的貨幣。當
以外幣計值的負債得到匯兌利益,透過外匯交換轉成其他幣別,以實現該匯
兌利益。外匯交換契約也可以用來規避外匯風險。

5. 如何透過債券複製外匯交換合約?
欠美金,付台幣。
1.LatticeEurCall

function [price, lattice] = LatticeEurCall(S0,X,r,T,sigma,N) deltaT = T/N;


u=exp(sigma * sqrt(deltaT));
d=1/u;

p=(exp(r*deltaT) - d)/(u-d); lattice = zeros(N+1,N+1);

for j=0:N
lattice(N+1,j+1)=max(0 , S0*(u^j)*(d^(N-j)) - X);

end
for i=N-1:-1:0

for j=0:i
lattice(i+1,j+1) = exp(-r*deltaT) * ...

(p * lattice(i+2,j+2) + (1-p) * lattice(i+2,j+1));

end end

price = lattice(1,1);

2.LatticeEurPut

function [price, lattice] = LatticeEurPut(S0,X,r,T,sigma,N) deltaT = T/N;


u=exp(sigma * sqrt(deltaT));
d=1/u;

p=(exp(r*deltaT) - d)/(u-d); lattice = zeros(N+1,N+1);

for j=0:N
lattice(N+1,j+1)=max(0 , X-S0*(u^j)*(d^(N-j)));

end
for i=N-1:-1:0

for j=0:i
lattice(i+1,j+1) = exp(-r*deltaT) * ...

(p * lattice(i+2,j+2) + (1-p) * lattice(i+2,j+1));


end end

price=lattice(1,1);

3.CompLatticeBLS

S0 = 50;
X = 50;
r = 0.1;
sigma = 0.4;
T = 5/12;
N=50;
[BlsC,BlsP] = blsprice(S0,X,r,T,sigma); LatticeC = zeros(1,N);

LatticeP = zeros(1,N); for i=(1:N)

LatticeC(i) = LatticeEurCall(S0,X,r,T,sigma,i);

LatticeP(i) = LatticeEurPut(S0,X,r,T,sigma,i);

end

plot(1:N,ones(1,N)*BlsP,'red',1:N,LatticeP,'green'); hold on;


plot(1:N,ones(1,N)*BlsC,'blue',1:N,LatticeC,'black'); title('Compare european option
with BLS'); xlabel('time');

ylabel('price'); legend('BLSCall','LatticeEuroCall','BLSPut','LatticeEuroPut');
4.LatticeAmCall

function [price, lattice] = LatticeAmCall(S0,X,r,T,sigma,N) deltaT=T/N;


u=exp(sigma * sqrt(deltaT));
d=1/u;

p=(exp(r*deltaT) - d)/(u-d); lattice = zeros(N+1,N+1);

for i=1:N+1 lattice(i,N+1)=max(S0*u^(N+1-i)*d^(i-1)-X,0);

end
for j=N:-1:1

for i=1:j
lattice(i,j)=max(S0*u^(j-i)*d^(i-1)-X,... exp(-r*deltaT)*(p*lattice(i,j+1)+(1-
p)*lattice(i+1,j+1)));

end end

price=lattice(1,1);
5.CompLatticeAmEurCallBLS

S0=50;
X=50;
r=0.1;
sigma=0.4;
T=0.5;
N=100; [AmCall]=LatticeAmCall(S0,X,r,T,sigma,N)
[EurCall]=LatticeEurCall(S0,X,r,T,sigma,N) [BlsC]=blsprice(S0,X,r,T,sigma)

結果

AmCall = 6.7763

EurCall = 6.7763

BlsC = 6.7902

You might also like