1. Financial Simulation
Memo
To:
Professor Gupta
From:
Dongyang Wang(661181660), Yulin Li(661181661), Xueyang Guan(661125198)
Date:
April 22, 2013
Re:
Final Report of the course project
Our goal is to find the best portfolio strategies which consist of a risk-free asset,
two specific US stocks, and various derivatives on the stocks. In this final report,
we have finished the following contents:
1. Construction of Several Strategies;
2. Profit Comparison, Greeks Analytics, Risk Analytics by VaR Model;
3. Conclusions
2. Part 1: Construction of Several Strategies
Strategy I: Only Bond
First, we choose only bond as our safest strategy. In this one, we will buy the one-year-bond
with our entire portfolio fund and hold it until the maturity. The return is shown in Figure 1.
In this strategy, the advantages are easy to construct and risk free. And the disadvantage is
low rate of return. From the fund we invested, we can only get 1% return back.
Figure 1
Return
Time(Day)
Strategy II: Only Stock
Second, we construct a strategy with only stock. This strategy is also quite popular among
investors. From the first day we will buy the stocks of Bank of America and JP Morgan and hold
it until one year. The advantages of this strategy are easy to construct and unlimited upside
profit. The disadvantage of this strategy is unlimited downside loss. The rate of return is shown
in Figure 2.
2
3. Figure 2
Strategy III: One Covered Call
In this strategy, we only construct the covered call for BAC. We buy the stock of BAC and call
on BAC and hold them to one year. The advantage of this one is we can get the premium first.
The disadvantage of this strategy is unlimited downside loss. The rate of return is shown in
Figure 3.
Figure 3
3
4. Strategy IV: Protective Put, Covered Call and Two Stock
We divide one year into two periods. The first one is 9 months. We buy both the stocks,
construct the protective put for JPM and construct the covered call for BAC. In the rest 3-monthperiod, we will use the money from options and sell stocks to buy bond. The rate of return of
thecovered call is in Figure 3. The rate of return of the protective put is shown in Figure 4. From
Strategy III to IV, we add the protective put. The advantages of this protective put are limited
downside loss and unlimited upside profit.The disadvantages of this protective put are high
premium when stock price goes up.
Figure 4
Strategy V: Protective Put, Covered Call and Two Stocks (4 transactions in a year)
The process is shown in Figure 5. We use our entire fund to invest the portfolio. Because the
shares of the stocks and options we use here are integer, there will be some residue of the
entire fund. We put the residue into bond investment of three months. We use the money in
portfolio to invest as we did in StrategyIV. We only hold the stocks for three months and buy the
options with maturity of 3 months. After three months, we sell all the stocks, options and bond.
We set n=floor (Total fund/portfolio price per share). By using n we can know how much we
should three months later. We do this process 4 times in a year.
4
5. Figure5
Part2: Profits of the Strategies, Greeks and Risk Analytics
Profit Comparison
The profits of these five strategies are shown below in Figure 6. We can see that the most
profitable three strategies are Strategy II, Strategy III, and Strategy IV. The best profit strategy is
single stock. The reason behind this is that we use the Geometric Brownie Motion to calibrate
the stock price. So the stock price in this model is mainly determined by the drift of the model.
Our drift here is positive. So any strategies combining with other options will produce a
premium, which are negative effects of the profits in the strategy.
5
6. Figure6
120,000
115,000
110,000
Mean
105,000
Lower bound
100,000
Upper bound
95,000
90,000
Strategy Strategy Strategy Strategy Strategy Strategy
1
2
3
4
4(2)
5
Greeks Analytics
After compare the profits results of the strategies, we will analyze the Greeks of the best three
strategies. Strategy II is only stock so we will compare the rest. The results are in Table 1. The
Greeks show that simple covered call is less sensitive than 9-month strategy. The reason behind
this is 9-month strategy contains CC(Covered Call) and PP (Protective Put). PP has unlimited
profit and CC has limited profit.
Table 1 Greeks of Strategy IIIand Strategy IV
StrategyIII (Simple covered call)
Vega=101.84;
Rho=27.77
Strategy IV (9-month)
Vega=319;
Rho=37.05
Risk Management by VaR Model
Figure 7 shows the VaR model of Strategy III (Simple covered call), VaR= 579,430
6
8. Part3: Conclusions
1. The profit depends on your model and its parameters, which model do you trust.
2. Complex strategy doesn’t mean better payoff.
3. Simple strategy is useful when we know the trend of stock in the future.
4. Choosing proper strike price can increase the payoff.
5. Even though some strategies give us high payoff, but we need to consider about the risk.
6. For 99% one year VaR, strategy 4 (9 month) has better performance.
8
9. Appendix:
1.Simple 9 month and 4-time 3 month
%simple 9 months
%parameters of the JPM stock and BAC stock
for i = 1:249
JPM_log(i)=log(JPM(i+1)/JPM(i));
BAC_log(i)=log(BAC(i+1)/BAC(i));
end
sigma_JPM=std(JPM_log)*sqrt(250)*1;
sigma_BAC=std(BAC_log)*sqrt(250)*1;
d_sigma=sqrt(sigma_JPM^2+sigma_BAC^2)*0.01;
miu_JPM=sum(JPM_log)+sigma_JPM^2/2;
miu_BAC=sum(BAC_log)+sigma_BAC^2/2;
P=corrcoef(JPM_log,BAC_log);
p=P(1,2);
%Geometric Brownian Montion
Y1=randn(1000);
Y2=randn(1000);
Y3=randn(1000);
X1=sqrt(1-abs(p))*Y1+sqrt(abs(p))*Y3;
X2=sqrt(1-abs(p))*Y2+sqrt(abs(p))*Y3;
%Calibrate the model
t=1/251;
JPMnew(1:1000,1)=46.64;
JPMnewmiu(1:1000,1)=46.64;
JPMNEW(1)=46.64;
JPMNEW0(1)=46.64;
JPMNEW1(1)=46.64;
JPMNEW2(1)=46.64;
JPMNEW3(1)=46.64;
JPMNEW4(1)=46.64;
BACnew(1:1000,1)=11.44;
BACnewmiu(1:1000,1)=11.44;
BACNEW(1)=11.44;
BACNEW0(1)=11.44;
BACNEW1(1)=11.44;
BACNEW2(1)=11.44;
BACNEW3(1)=11.44;
BACNEW4(1)=11.44;
%different rate
r=monthly_rate( monthrate,1/12);
r1=monthly_rate( monthrate,3/12);
r2=monthly_rate( monthrate,9/12);
r3=monthly_rate( monthrate,12/12);
dr=0.01*monthly_rate( monthrate,12/12)
9
10. %Simulation:
for i =1:1000
for k = 1:250
JPMnew(i,k+1)=JPMnew(i,k)*exp((r3sigma_JPM^2/2)*t+sigma_JPM*sqrt(t)*X1(i,k));
BACnew(i,k+1)=BACnew(i,k)*exp((r3sigma_BAC^2/2)*t+sigma_BAC*sqrt(t)*X2(i,k));
JPMnewmiu(i,k+1)=JPMnewmiu(i,k)*exp((miu_JPMsigma_JPM^2/2)*t+sigma_JPM*sqrt(t)*X1(i,k));
BACnewmiu(i,k+1)=BACnewmiu(i,k)*exp((miu_BACsigma_BAC^2/2)*t+sigma_BAC*sqrt(t)*X2(i,k));
end
BACNEW(i+1)=BACNEW(1)*exp((r-sigma_BAC^2/2)*1/12+sigma_BAC*sqrt(1/12)*X1(i));
c(i)=exp(-r*1/12)*max(BACNEW(i)-8,0);
p(i)=exp(-r*1/12)*max(8-BACNEW(i),0);
BACNEW0(i+1)=BACNEW0(1)*exp((rsigma_BAC^2/2)*1/12+sigma_BAC*sqrt(1/12)*X1(i));
c0(i)=exp(-r*1/12)*max(BACNEW0(i)-14,0);
p0(i)=exp(-r*1/12)*max(14-BACNEW0(i),0);
BACNEW1(i+1)=BACNEW1(1)*exp((r1sigma_BAC^2/2)*3/12+sigma_BAC*sqrt(3/12)*X1(i));
c1(1,i)=exp(-r1*3/12)*max(BACNEW1(i)-12,0);
p1(i)=exp(-r1*3/12)*max(9-BACNEW1(i),0);
BACNEW2(i+1)=BACNEW2(1)*exp((r1sigma_BAC^2/2)*3/12+sigma_BAC*sqrt(3/12)*X1(i));
c2(i)=exp(-r1*3/12)*max(BACNEW2(i)-13,0);
p2(i)=exp(-r1*3/12)*max(13-BACNEW2(i),0);
%for 3months loop
BACNEW21(i+1)=BACnew(i,63)*exp((r1sigma_BAC^2/2)*3/12+sigma_BAC*sqrt(3/12)*X1(i));
c1(2,i)=exp(-r1*3/12)*max(BACNEW21(i)-12,0);
BACNEW22(i+1)=BACnew(i,126)*exp((r1sigma_BAC^2/2)*3/12+sigma_BAC*sqrt(3/12)*X1(i));
c1(3,i)=exp(-r1*3/12)*max(BACNEW22(i)-12,0);
BACNEW23(i+1)=BACnew(i,189)*exp((r1sigma_BAC^2/2)*3/12+sigma_BAC*sqrt(3/12)*X1(i));
c1(4,i)=exp(-r1*3/12)*max(BACNEW23(i)-12,0);
BACNEW3(i+1)=BACNEW3(1)*exp((r2sigma_BAC^2/2)*9/12+sigma_BAC*sqrt(9/12)*X1(i));
c3(i)=exp(-r2*9/12)*max(BACNEW3(i)-7,0);
p3(i)=exp(-r2*9/12)*max(7-BACNEW3(i),0);
BACNEW4(i+1)=BACNEW4(1)*exp((r2sigma_BAC^2/2)*9/12+sigma_BAC*sqrt(9/12)*X1(i));
c4(i)=exp(-r2*9/12)*max(BACNEW4(i)-12,0);
p4(i)=exp(-r2*9/12)*max(12-BACNEW4(i),0);%99 model
10
15. for k = 1:250
BACnewmiu(i,k+1)=BACnewmiu(i,k)*exp((miu_BACsigma_BAC^2/2)*t+sigma_BAC*sqrt(t)*X2(i,k));
JPMnewmiu(i,k+1)=JPMnewmiu(i,k)*exp((miu_JPMsigma_BAC^2/2)*t+sigma_JPM*sqrt(t)*X2(i,k));
end
end
stdbac=std(BACnewmiu(1:1000,251));
stdjpm=std(JPMnewmiu(1:1000,251));
stdnew=sqrt(stdbac^2+stdjpm^2);
BACnewmiumean=mean(BACnewmiu(1:1000,251))
JPMnewmiumean=mean(JPMnewmiu(1:1000,251))
PAYOFF=1721.8*(JPMnewmiumean+BACnewmiumean)
CI=[PAYOFF-1.96*1000*stdnew/sqrt(1000),PAYOFF+1.96*1000*stdnew/sqrt(1000)]
15