ó
îiVc           @   s'   d  Z  d d l Td d d „  ƒ  YZ d S(   s2   
Created on Thu Sep 17 18:38:11 2015

@author: ka
iÿÿÿÿ(   t   *t   NewtonRaphsonc           B   s5   e  Z d  Z d Z d Z d „  Z d „  Z d „  Z RS(   i@B iÄ	  g-Cëâ6*?c      
   C   sv  | d k s$ | d k s$ | d k r: d GH| G| G| GHd St  ƒ  } |  j | | | ƒ }	 |	 d }
 | j | | | |
 | | | ƒ } d } xæ d d k rq| d 7} | t j k rµ d S|	 t j k rÈ d S| j | | | |	 | | | ƒ } | } | } | d k  rd St | | ƒ t j k r"|	 S| j | | |	 | | | ƒ d } |  j	 |	 | | |
 | | ƒ } |	 }
 | }	 qŒ Wd  S(	   Ni    s"   input parameter values is invalid.g        g       @i   g      ð¿gñhãˆµøä>id   (
   t   BlackScholesCalculatort   initVolatilityt   getValueR   t   MAX_TRY_LOOPt   MAX_TRY_VOLATILITYt   abst   MIN_PREMIUM_DELTAt   getVegat   adjVolatility(   t   selft   premiumt	   callOrPutt
   stockPricet   striket   expiryYearst   dividendYieldt   riskfreeRatet   bst   loopVolatilityt   prevVolatilityt   loopPremiumt   loopt
   newPrimiumt   prevPrimiumt   loopPrimiumt   loopVegat   newVolatility(    (    s9   /var/www/OptionsCentralService/app/model/NewtonRaphson.pyt   calculateVolatility   s4    $	
!
  ! "c         C   s&   t  j d t  j | ƒ | | } | S(   Ng       @(   t   matht   sqrtt   pi(   R   R   R   t   primiumt   initVol(    (    s9   /var/www/OptionsCentralService/app/model/NewtonRaphson.pyR   2   s    "c         C   sI   t  | ƒ d k r' | | | | } n | | | | | | | } | S(   Ng-Cëâ6?(   R   (   R   R   R   R   R   R   R!   t   newVol(    (    s9   /var/www/OptionsCentralService/app/model/NewtonRaphson.pyR
   6   s
    (   t   __name__t
   __module__R   R   R   R   R   R
   (    (    (    s9   /var/www/OptionsCentralService/app/model/NewtonRaphson.pyR      s   	"	N(    (   t   __doc__t    app.model.BlackScholesCalculatorR   (    (    (    s9   /var/www/OptionsCentralService/app/model/NewtonRaphson.pyt   <module>   s   
