Financial Simulation
Essay Preview: Financial Simulation
Report this essay
Mike PenaProf. Aparna GuptaFinancial SimulationHW101 Exchange OptionNote: 99% CI taken into account in Width.OUTPUTQ1. Exchange Option Price: 15.3804, Width: 0.1421[pic 1]2 Compound OptionNote: 99% CI taken into account in Width.OUTPUTQ2. Compound Option Price: 1.2389, Width: 0.01053 Control VariatesNote: 99% CI taken into account in Width. Additionally, there is a significant improvement in the tightness of the confidence interval for both options after control variates were implemented. Strong positive correlation is visible in the scatter plot replications of discounted exchange option pay-off against repliations of European Call pay-off at option maturity. This correlation was utilized in the design of the control variate method. Method used 12.9 from Risk Management and Simulation (Gupta) as we know the theoretical mean of the control variate. Q3. Control Variates Exchange Option: Price (15.3804), Width (0.0334)Compound Option: Price (1.2389), Width (0.0000)[pic 2]MATLAB CODE% First clear the memory and close all open figures:clear all; close all;% Clear the screen:clc;% Change the working directory: This is the working directory% where MATLAB looks for files (data inputs, .m files such as% functions, etc.) and outputs results.cd C:Userspenam2DesktopRPISpring 2017Financial SimulationHomeworkHW10;% If you want to read files from another folder (maybe you% have data stored in another location), you can use the addpath% function:addpath C:Userspenam2DesktopRPISpring 2017Financial SimulationHomeworkHW10;% Quandl authentication tokenQuandl.api_key(xokQnzdREAWG5absGuY3); %% Question 1. Exchange Option% Obtain Data:stock{1}=GOOG/NYSE_GS;n=length(stock);for i=1:n  data{i}=Quandl.get(stock{i},collapse,daily,     start_date,2014-1-1,end_date,2017-1-1,type,data);end% Extract prices and compute returns:prices_Dates=data{1}(:,1);
prices_GS=data{1}(:,5);returns_Dates=data{1}(1:end-1,1);returns_GS=log(prices_GS(1:end-1,:)./prices_GS(2:end,:));% Compute Statistics:P0_GS=prices_GS(1);Mean_GS=mean(returns_GS(:));Std_GS=std(returns_GS(:));% Annualize Statistics:Mean_GS=mean(returns_GS(:))*250;Std_GS=std(returns_GS(:))*sqrt(250);% Obtain Data:stock{1}=GOOG/NYSE_JPM;n=length(stock);for i=1:n  data{i}=Quandl.get(stock{i},collapse,daily, …    start_date,2014-1-1,end_date,2017-1-1,type,data);end% Extract prices and compute returns:prices_Dates=data{1}(:,1);prices_JPM=data{1}(:,5);returns_Dates=data{1}(1:end-1,1);returns_JPM=log(prices_JPM(1:end-1,:)./prices_JPM(2:end,:));% Compute Statistics:P0_JPM=prices_JPM(1);Mean_JPM=mean(returns_JPM(:));Std_JPM=std(returns_JPM(:));% Annualize Statistics:Mean_JPM=mean(returns_JPM(:))*250;Std_JPM=std(returns_JPM(:))*sqrt(250);% Compute Correlation:rho=corr(returns_GS,returns_JPM);% Set variable inputs:T=1;step=500;dt=T/step;N=1e3;alpha=0.5;r=0.02;K_GS=P0_GS;K_JPM=P0_JPM;% Joint GBM Simulation:[spath_GS,spath_JPM]=Joint_GBM(P0_GS,P0_JPM,Mean_GS,Mean_JPM,Std_GS,Std_JPM,rho,T,step,N);% Compute Exchange Option:q_GS=0.5;q_JPM=1.2;payoff_Ex_Option=max(q_GS.*spath_GS(:,end)-q_JPM.*spath_JPM(:,end),0).*exp(-r*T);[p_Ex_Option,~,ci_Ex_Option,~]=normfit(payoff_Ex_Option,0.01);width=(ci_Ex_Option(2)-ci_Ex_Option(1))/p_Ex_Option;fprintf(Q1. Exchange Option
);fprintf(Price: %3.4f, Width: %3.4f
,p_Ex_Option,width);fprintf(
);% Plot Paths:figureyyaxis leftplot(0:dt:T,spath_GS(end,:));hold onyyaxis rightplot(0:dt:T,spath_JPM(end,:));title(Q1. Joing GBM Paths);legend(GS,JPM);Â %% Question 2. Compound Option% Set Variable Inputs:p1=prices_GS;S0=p1(1);T1=0.5;T2=1;K1=0.5;K2=S0;nstep=1;dt=(T2-T1)/nstep;alpha=0.5;rf=0.0112;N=1e3;step=500;% Calibrate Model:mu=mean((p1(1:end-1)-p1(2:end))./(p1(2:end).^alpha)./((p1(2:end).^(1-alpha)).*dt));sigma= (std((p1(1:end-1)-p1(2:end)-mu*dt.*p1(2:end))./(p1(2:end).^alpha)))/(sqrt(dt));% Simulate Prices:stockpath_lp=CEVmodel(S0,sigma,mu,T2,step,N,alpha);