CF 903
This is where I would like you to input your thoughts/comments/questions/progress of this homework. I would like to try this sort of communication (I am planning to use something like that for your 901 projects next term).
Please feel free to press the Edit Page tab above to add your comments and questions below. Post your progress and your Matlab code (please after editing have a look at the way Matlab code is presented)
Contents (hide)
1. The problem
You understand the arguments that produce the Black-Scholes partial differential equation, and realize that it has to be satisfied for all contracts. But the PDE does not depend on the drift
of the stock price, and therefore the price of the derivative does not depend on that neither.
This can appear to be an odd thing. One might expect that if
is quite large, the price of the contract should be higher, since it is nearly certain that you will win the bet.
But I told you that the price is an outcome of arbitrage arguments, and this is what I want you to investigate. Try to figure out what the arbitrage opportunity is when the price is not f(1,100) = 0.26, what we computed in class.
Say that you feel that 0.26 is too low, and you think that 0.30 is a more appropriate or fair price (meaning that you are willing to buy or sell at this price). Simulate the appropriate geometric Brownian motion and generate prices. Try and construct an arbitrage trading strategy that someone could employ and will make a profit, independently of the stock price moves.
Remember:
- The arbitrage must have initial value equal to zero (but you can borrow at r)
- This can be a *dynamic* strategy, that is you might need to rebalance continuously
- You might need very fine simulations to get a good approximation.
Investigate how this strategy performs for different values of the parameters.
Ciao
Kyriakos 29-11-06
2. The Matlab functions we used
function digital [x, y] = exptrajectory(5, -2.10, 0.30, 100); x0 = repmat(x', [1, 5]); digitalprice(0, 100, 120, 0.04, 0.30, 1) yD = digitalprice(x0, y, 120, 0.04, 0.30, 1); figure(1); subplot(2,1,1); plot(x, y); grid on; subplot(2,1,2); plot(x, yD); grid on; %t = 0:0.01:1; %S = 60:1:140; %[t0, S0] = meshgrid(t, S); %y = digitalprice(t0, S0, 120, 0.04, 0.30, 1); %surf(t0, S0, y); %[x, y] = exptrajectory(5, 0.10, 0.30, 100); %plot(x, y);
function y = digitalprice(t, S, K, r, sigma, T) a = log(S./K) + (r-0.5*sigma^2).*(T-t); a = a./sigma./sqrt(T-t+eps); y = 0.5*erfc(-a/sqrt(2));
function [x, y] = exptrajectory(mMax, mu, sigma, S0) [x, y0] = trajectory(mMax); % simulate BM x0 = repmat(x', [1, mMax]); y = (mu-0.5*sigma^2)*x0 + sigma*y0; y = S0*exp(y);
function [x, y] = trajectory(mMax)
x = 0:0.002:1';
y = zeros(length(x), mMax);
nMax = 9;
for m = 1:mMax % new trajectory
y0 = 0; % initialize funtion to 0
for n = 0:nMax % new bisection
kMax = 2^n; % max number of tents
for k = 1:2:kMax % new tent update
y0 = y0 + h(x, n, k)*randn;
end % k
end % n
y(:,m) = y0; % store trajectory
end
function y = h(u, n, k)
if n==0
y = u;
return;
end
d = 2^(-n);
a1 = (u<=k*d).*(u>(k-1)*d);
a2 = (u<=(k+1)*d).*(u>k*d);
y1 = 2^(0.5*n-0.5)*(u - (k-1)*d);
y2 = 2^(0.5*n-0.5)*((k+1)*d - u);
y = (a1.*y1) + (a2.*y2);
Kyriakos 29-11-06
Please add your comments/questions here. Four dashes create a horizontal line to separate your posts. Feel free to experiment!
What links here?
Got a question?
A short note
''To stop bots posting Viagra adverts as comments I have put a password in place. It just reads AEKARA, which you can use to edit the pages on this site. Sorry for any inconvenience but it was getting a real pain.
Comments(add/edit)
kAlqDv <a href="http://rtqrbxnpanrq.com/">rtqrbxnpanrq</a>, [url=http://iflhjjmlzqag.com/]iflhjjmlzqag[/url], [link=http://felymmyozlat.com/]felymmyozlat[/link], http://nxgkhrsaeewo.com/
Printable View