
    iI	                     0    d dl Zd dlZd dlZ G d d      Zy)    Nc                       e Zd Zd Zd Zy)SignalGeneratorc                      || _         i | _        y )N)configlatest_states)selfr   s     4/var/www/app/trading-bot/modules/signal_generator.py__init__zSignalGenerator.__init__   s        c                 &   |t        |      | j                  d   d   k  ryt        j                  j	                  |d   | j                  d   d         }t        j                  j	                  |d   | j                  d   d         }t        j                  j	                  |d   | j                  d   d         }t        j
                  j                  |d   | j                  d   d         }|d   j                  d	   }|j                  d	   }|j                  d	   |j                  d	   kD  xr |j                  d
   |j                  d
   k  }	|j                  d	   |j                  d	   k  xr |j                  d
   |j                  d
   k\  }
|| j                  d   d   k  }|| j                  d   d   kD  }||j                  d	   kD  }d}d}|	r	|r|rd}d}n|
s|rd}d}|||j                  d	   |j                  d	   |j                  d	   ||d|v rt        |d   j                  d	         ndd|v r |d   j                  d	   j                         nd d	| j                  |<   t        j                  d| d| d| d|dd|d
       ||fS )Nstrategy_paramsema_long)NEUTRAL        closeema_fast)windowema_slow
rsi_periodrsi_buy_thresholdrsi_sell_thresholdr   r   BUYg?SELLgffffff?volume	timestamp)	pricersir   r   r   signal
confidencer   r   zSignal for z: z (Cnf: z	) | RSI: z.2fz
 | Price: )lenr   tatrendema_indicatormomentumr   ilocfloat	isoformatr   logginginfo)r   symboldfr   r   r   r   current_pricelast_rsiema_cross_upema_cross_downis_oversoldis_overboughtis_above_ema200r    r!   s                   r	   generate_signalzSignalGenerator.generate_signal
   s   :R4;;/@#A*#MM! 88))"W+dkkJ[>\]g>h)i88))"W+dkkJ[>\]g>h)i88))"W+dkkJ[>\]g>h)ikkoobk$++>O2PQ]2^o_7((,88B<  }}R(8==+<<grARV^VcVcdfVgAg!r*X]]2->>i8==QSCTX`XeXefhXiCi ->!?@S!TT 4;;/@#ABV#WW ((--*;;
KOFJ}FJ # b) b) b)$6>"neBxL--b12#ALPRARK--b1;;=X\
&
6" 	{6("VHGJ<yQYZ]P^^hivwzh{|}z!!r   N)__name__
__module____qualname__r
   r5    r   r	   r   r      s     1"r   r   )pandaspdr#   r*   r   r9   r   r	   <module>r<      s     	 6" 6"r   