Message Boards Message Boards

0
|
6343 Views
|
1 Reply
|
0 Total Likes
View groups...
Share
Share this post:
GROUPS:

Errors Finding Implied Vol

Posted 9 years ago

I am trying to implement a FIndRoot method to solve for Implied Volatility. I am trying to do something like shown in this book from 1998: https://www.dropbox.com/s/nnmimxplukhdbh7/Screenshot%202015-09-05%2012.16.04.png?dl=0. [1] However, when I try to implement this with the now built-in FinancialDerivative function, I get errors:

    CallImpliedVol[s_,k_,r_,t_,price_] := \[Sigma] /. FindRoot[FinancialDerivative[{"European", "Call"},{"StrikePrice"->k,
 "Expiration"->t},{"Volatility" ->\[Sigma],"InterestRate"->r,"CurrentPrice"->s}]==price, {\[Sigma],.2}]

        CallImpliedVol[11,10,.05,.25,1]

Returns errors:

FinancialDerivative::checknumeric: Parameters {Volatility??} cannot have non-numeric values.

FindRoot::jsing: Encountered a singular Jacobian at the point {?} = {0.2}. Try perturbing the initial point(s).

I am not sure what to try here. Building my own function to replace a built-in function would work, but I would hope there is a more elegant solution. Does anyone have any ideas?

POSTED BY: Reuben Brooks
Posted 9 years ago

Ok, I think I found the solution; there were a couple of issues. One is that my test case was looking for the case when 10-dollar strike Call on a underlying at 11-dollars would cost exactly 1 dollar --> no implied volatility premium, which is when volatility = 0. Not a good test case. When I correct for this, and try a few different methods, the solution works when we use the "Brent" Method":

CallImpliedVol[s_,k_,r_,t_,price_] := \[Sigma] /. FindRoot[FinancialDerivative[{"European", "Call"},
{"StrikePrice"->k, "Expiration"->t},{"Volatility" ->\[Sigma],"InterestRate"->r,"CurrentPrice"->s}]==price,
{\[Sigma],.01,10}, Method->"Brent"]

CallImpliedVol[11,10,.05,1,1.93]

Returns

FinancialDerivative::checknumeric: Parameters {Volatility??} cannot have non-numeric values.

Out[124]= 0.249851

POSTED BY: Reuben Brooks
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract