European call
When solving the PDE for the value V of a European call option under the Black-Scholes model using a finite difference scheme, we have that
How to deduce the boundary conditions in a similar manner when solving the PDE for the value of a forward contract whose underlying follows the Schwartz mean reverting model? What I understand until now about forwards is
∂t∂F+α(μ−λ−logS)S∂S∂F+21σ2S2∂S2∂2F=0,with λ=σαμ−r(1) whose solution is, letting τ=T−t
F(St,τ)=E[St]=exp(e−ατlogSt+(μ−2ασ2−λ)(1−e−ατ)+4ασ2(1−e−2ατ))(2)
Code
What follows is the Matlab code that computes the exact value of the option at time 0 (V_exact in the code) and the value approximated by the Euler explicit finite difference scheme (V_euler). The initial/terminal condition is applied at line 26 (F = ST), the next two lines are for the left end condition (F(1) = 0) and the right end condition (I don't know what to put here).
Moreover, I'm not sure that V_exact is computed correctly, should be (F−K)exp(−rT) or F−Kexp(−rT)?
When solving the PDE for the value V of a European call option under the Black-Scholes model using a finite difference scheme, we have that
- Initial/terminal condition. V(ST,T)=payoff(ST)=max(ST−K,0) (initial since the scheme is solved backward, terminal since it holds at the final time T)
- Left end boundary condition. If S0=0 then St=0 for all t and the option will surely be out of the money with payoff max(0−K,0)=0 and V(0,t)=0 for all t
- Right end boundary condition. If S0 is large enough (w.r.t. to K) then St>K for all t and the option will end up in the money with payoff max(St−K,0)=St−K and V(St,t)=St−Ke−r(T−t) for all t
How to deduce the boundary conditions in a similar manner when solving the PDE for the value of a forward contract whose underlying follows the Schwartz mean reverting model? What I understand until now about forwards is
- There is no money exchanged when signing a forward contract so, using the notation below, I think that the value of the forward at time 0 is F(S0,0)=0
- The payoff (of the option equivalent to this forward contract) is ST−K since the holder is obliged to buy the underlying at expiry
∂t∂F+α(μ−λ−logS)S∂S∂F+21σ2S2∂S2∂2F=0,with λ=σαμ−r(1) whose solution is, letting τ=T−t
F(St,τ)=E[St]=exp(e−ατlogSt+(μ−2ασ2−λ)(1−e−ατ)+4ασ2(1−e−2ατ))(2)
- Initial/terminal condition. Plugging τ=0 (ie t=T) in (2) we get F(ST,0)=exp(logST)=ST. This value appears also in the original paper by Schwartz (at page 5), so it is correct.
- Left end boundary condition. As in the European call case, if S0=0 then St=0 for all t and from (1) we get ∂t∂F=0 ie F does not change in time, and since as said before F(S0,0)=0 (not sure though) it follows F(0,t)=0 for all t. But this means that the payoff of the option would be 0−K that is negative, since prices cannot be negative how to deal with this fact?
- Right end boundary condition. If S0 is large enough (w.r.t. to K) then St>K for all t and the payoff of the option will be F(St,t)−K and V(St,t)=(F(St,t)−K)e−r(T−t) for all t, but what can we say about the value of F(St,t)?
Code
What follows is the Matlab code that computes the exact value of the option at time 0 (V_exact in the code) and the value approximated by the Euler explicit finite difference scheme (V_euler). The initial/terminal condition is applied at line 26 (F = ST), the next two lines are for the left end condition (F(1) = 0) and the right end condition (I don't know what to put here).
Moreover, I'm not sure that V_exact is computed correctly, should be (F−K)exp(−rT) or F−Kexp(−rT)?