
    e	                     `    d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
  G d d          ZdS )	    )	Strategy1)Strategy)BrokerAccount)getUniqueStructgetItemByKey)	Strategisc                   .    e Zd ZddZd Zd Zd Zd ZdS )	StrategyManagerreturnNc                     || _         d S N)User)selfusers     ZC:\Janisar\Development\Python\Genie\StockGenie\trading\views\Strategies\strategyManager.py__init__zStrategyManager.__init__   s    			    c                 H   g }g }t           j                            | j                  }|D ]?}t	          j        | j        |j                  }|r|j        r|                    |           @|D ]%}|j	        D ]}||vr|                    |           &|| _
        || _	        |S )N)r   )r   objectsfilterr   r   getStrategyInstancecodeisActiveappendActiveScriptsActiveStrategies)r   lstActiveStrategieslstActiveScripts
strategiesstratstrategyscripts          r   getActiveStrategiesz#StrategyManager.getActiveStrategies   s     &--TY-??
 	9 	9E3DIuzJJH 9$ 9'..x888 , 	4 	4H"0 4 4!111$++F3334
 !4-""r   c           
          | j         }t          |          }| j        D ]P}|j        D ]F}| j                            |          }|                    |j        t          |d|                     GQd S )N	accountId)	TicksForCallbackr   r   ActiveAccountsbrokerAccountgetBrokerObjectsubscribeWebSocketsrequireOrderCallbackr   )r   lstTicks	lstUniquer!   r%   	brokerObjs         r   r*   z#StrategyManager.subscribeWebSockets+   s    (#H--	- 	} 	}H%4 } }	 .>>yII	--h.K\ZcdoqzM{M{||||}	} 	}r   c                 b   g }g }|                                   t          | j                  }|                                 || _        | j        D ]D}|                                 |                                }|D ]}|                    |           E|| _	        | 
                                 d S r   )r#   r   r   Connectr(   r   initiategetScriptForTickCallbackr   r&   r*   )r   r,   lstTickForCallback	brokerAccr!   ticksticks          r   r1   zStrategyManager.initiate4   s      """!$),,	&- 	& 	&H5577E & &%%%%& (  """""r   c                 N    | j         D ]}|                    | j                   d S r   )r   startr(   )r   r!   s     r   r8   zStrategyManager.startC   s6    - 	/ 	/HNN4-....	/ 	/r   )r   N)__name__
__module____qualname__r   r#   r*   r1   r8    r   r   r
   r
      sg           # # #.} } }# # #/ / / / /r   r
   N)"trading.views.Strategies.strategy1r   !trading.views.Strategies.strategyr   $trading.views.Entities.brokerAccountr   mainapp.views.utilsr   r   trading.modelsr   r
   r<   r   r   <module>rB      s    8 8 8 8 8 8 6 6 6 6 6 6 > > > > > > = = = = = = = = $ $ $ $ $ $6/ 6/ 6/ 6/ 6/ 6/ 6/ 6/ 6/ 6/r   