ó
îiVc           @   s5   d  d l  Td  d l Td  d l Td d d „  ƒ  YZ d S(   iÿÿÿÿ(   t   *t   SimulationCalculatorProcessorc           B   s5   e  Z e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   c   	      C   s.  i |  j  d 6|  j d 6|  j d 6} i  } i  } i  } xÖ |  j D]Ë } |  j } |  j j | ƒ | _ | | d <|  j j | ƒ | d <|  j	 j | ƒ | d <t
 |   } t j | ƒ t j | ƒ t j | ƒ } | j | | <| j | | <| | | <| j |  _ | j |  _ q@ W| |  _ | |  _	 | |  _ d  S(   Nt   scenariot   axisMint   axisMaxt
   marketInfot	   portfoliot   scenarioResults(   R   R   R   t   strategyNamesR   t   optionMultiplierDictt   gett   optionMultipliert   portfolioDictt   scenarioResultsDictt   StrategyCalculatorDataBeant   StrategyCalculatorProcessort   calculateOptionst   calculateOptionsByDaysElapsedt   calculateChartR   R   t   chartDataBeanDict(	   t   simulationCalculatorDataBeant   strategyParametersR   R   R   t   strategyNameR   t   strategyCalculatorDataBeant   chartResult(    (    sX   /var/www/OptionsCentralService/app/processor/simulation/SimulationCalculatorProcessor.pyt	   calculate   s2    

	

		c         C   s  i |  j  d 6|  j d 6|  j d 6} i  } i  } x¼ |  j D]± } |  j } |  j j | ƒ | _ | | d <|  j j | ƒ | d <|  j	 j | ƒ | d <t
 |   } t j | ƒ t j | ƒ } | j | | <| | | <| j |  _ | j |  _ q: W| |  _	 | |  _ d  S(   NR   R   R   R   R   R   (   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R   R   R   R   (    (    sX   /var/www/OptionsCentralService/app/processor/simulation/SimulationCalculatorProcessor.pyR   ,   s*    

	

	c         C   sÅ   i |  j  d 6|  j d 6|  j d 6} i  } x‹ |  j D]€ } |  j } |  j j | ƒ | _ | | d <|  j j | ƒ | d <|  j	 j | ƒ | d <t
 |   } t j | ƒ | j | | <q4 W| |  _	 d  S(   NR   R   R   R   R   R   (   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   (   R   R   R   R   R   R   (    (    sX   /var/www/OptionsCentralService/app/processor/simulation/SimulationCalculatorProcessor.pyt   calculateScenarioQ   s    

	
(   t   __name__t
   __module__t   staticmethodR   R   R   (    (    (    sX   /var/www/OptionsCentralService/app/processor/simulation/SimulationCalculatorProcessor.pyR      s   %%N(    (   t   app.resource.ResourceConstantt2   app.processor.strategy.StrategyCalculatorProcessort.   app.entity.strategy.StrategyCalculatorDataBeanR   (    (    (    sX   /var/www/OptionsCentralService/app/processor/simulation/SimulationCalculatorProcessor.pyt   <module>   s   


