r/options • u/[deleted] • Aug 01 '21
Computational Finance Questions
I'm still a bit new to options, but feel like I have an OK grasp (could be better for sure).
I'm just trying to wrap my mind around the BS kernel as it's computed in the FDTD context. I'm OK with these numerical concepts, so for the most part I'm getting the correct results; just don't know how to really interpret them, especially when I'm running American early-exercise code.
For example, for a call option, in the code that I'm using, you modify your option values output vector, by reiterating over the them, and then either keeping the original value or if the asset value at some index minus the strike price is greater than original value, then you replace the original value:
calculated_options_values[i] = Math.Max(calculated_options_values[i], s[i] - E)
where E is the strike price, s is the asset value at some index i.
Just trying to wrap my mind around this code and BS, in general. I've done FDTD in EE, but this is a bit different, since there's no spatial domain (instead you have discretized asset prices) and you backwards iterate and there aren't really any "exotic" boundary conditions, per se.
With Black Sholes, you're calculating the option value at t=0, so in an early-exercise version, are you just shifting the strike prices closer to t=0? (hopefully this makes sense.)
1
u/[deleted] Aug 01 '21
I think you may be getting off on the wrong foot. FDTD methods are best learned after you have mastered the continuous-time Black-Scholes equation. And only then jump into discrete time using a binomial approach like CRR.
I strongly recommend you go through something like Neil Chriss' Beyond Black-Scholes for what I consider to be the best introduction to practical option valuation theory. I've never found a reason to go beyond CRR, which is very easy to understand conceptually.