Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

FinancialDerivative Ver 8 (Bug maybe)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg114060] FinancialDerivative Ver 8 (Bug maybe)
  • From: Dana DeLouis <dana.del at gmail.com>
  • Date: Mon, 22 Nov 2010 07:38:31 -0500 (EST)

Hi.  Could anyone explain this behavior?  I know the documentation is a little lacking.
It appears to me this is a major bug.
Here's a 3% dividend on a $45 stock.

d = 45 * 0.03
1.3499999999999999

(* Option expires on 12/17/2010 *)

exp = {2010, 12, 17};
today = {2010, 11, 22};

If I use this really close approximation to 1.35 (using =91d above), I get the Critical value of this dividend paying stock

FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 50,
  "Expiration" -> exp}, {"CurrentPrice" -> 45, "InterestRate" -> 0.1,
  "Volatility" -> 0.3, "ReferenceTime" -> today,
  "Dividend" -> d}, {"CriticalValue"}]
51.53

However, If I physically type in 1.35, the value Jumps by quite a bit.

FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 50,
  "Expiration" -> exp}, {"CurrentPrice" -> 45, "InterestRate" -> 0.1,
  "Volatility" -> 0.3, "ReferenceTime" -> today,
  "Dividend" -> 1.35}, {"CriticalValue"}]
52.06

If I type in a dividend of 1.36, the value goes back down to a reasonable value again, and slightly less than the value at 1.35 as it should.

FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 50,
  "Expiration" -> exp}, {"CurrentPrice" -> 45, "InterestRate" -> 0.1,
  "Volatility" -> 0.3, "ReferenceTime" -> today,
  "Dividend" -> 1.36}, {"CriticalValue"}]
51.52


Stated another way, the extra 0 in the second dividend below causes the solution to jump horribly.

FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 50,
  "Expiration" -> exp}, {"CurrentPrice" -> 45, "InterestRate" -> 0.1,
  "Volatility" -> 0.3, "ReferenceTime" -> today,
  "Dividend" -> 1.35000000001}, {"CriticalValue"}]
51.53

FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 50,
  "Expiration" -> exp}, {"CurrentPrice" -> 45, "InterestRate" -> 0.1,
  "Volatility" -> 0.3, "ReferenceTime" -> today,
  "Dividend" -> 1.350000000001}, {"CriticalValue"}]
52.06


Thanks for any insight.
I Included a reference time to 11/22/2010, otherwise the answers others get would depend on the date the example was run. (ie Current date is assumed if not given)

I'm using an Apple Mac Pro with Version 8.

Dana
dana.del at gmail.com



  • Prev by Date: Re: Mathematica 8
  • Next by Date: Re: NMinimize -DifferentialEvolution
  • Previous by thread: Re: How to adjust selection w/ arrow keys?, etc.
  • Next by thread: Re: Finding a function that makes it possible to Solve[] a system of equations