
    #j                     x    d Z ddlZddlZddlZddlmZ ddlmZ ddlZd Zd Z	d Z
edk    r e
             dS dS )	z
Real-time signal generator - runs continuously.

Every 60 seconds, processes the latest order book data
and generates updated trading signals.
    N)Path)datetimec                  D   	 t          j        ddgddd          } | j        dk    r8t          dt	          j                                        d                      dS t          d	| j                    d
S # t          $ r}t          d|            Y d}~d
S d}~ww xY w)z Run the signal generator script.z3/home/ubuntu/.hermes/hermes-agent/.venv/bin/python3zgenerate_multi_asset_signals.pyTz@/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/scripts)capture_outputtextcwdr   u   ✓ Signals generated at %H:%M:%Su   ✗ Error generating signals: Fu   ✗ Exception: N)	
subprocessrun
returncodeprintr   nowstrftimestderr	Exception)resultes     ]/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/scripts/realtime_signal_generator.pygenerate_signalsr      s    BDefR	
 
 
 !!Shlnn.E.Ej.Q.QSSTTT4B6=BBCCC5   ###$$$uuuuus   AA8 A8 8
BBBc                  f   g d} d}d}d| v r	 ddl }t          d          }|                                rm|                    |dg d          }|                    |d	         d
          |d	<   t          |j        d         d	                   }t          d|d           n)# t          $ r}t          d|            Y d}~nd}~ww xY w| D ]_}t          d| d          }|                                s+t          |          5 }	t          j        |	          }
ddd           n# 1 swxY w Y   |
d         }|sqd |D             }t          j        |          d}|dk    r|r|z
  }|dk    rdndfd|D             }d |D             }ddlm}  |t                     }|D ]0}|d          d|d          }||                             |           1g }|                                D ]\  }}t'          |d           }|                    d          \  }}|||d         |d         |d          |d!         |d"         |d         z
  d#}|dk    rTt+          |d         |z   d$          |d%<   t+          |d         |z   d$          |d&<   t+          |d          |z   d$          |d'<   |                    |           |                    d( d)*           |dd         }t/          d+ |D                       }t/          d, |D                       }||d-z  k    rd.}n ||d-z  k    rd/}n||k    rd0}n||k    rd1}nd2}|t1          j                                                    z
  d3d4z   d3|||d5}|dk    r&|r$t+          |d$          t+          |d$          d6|d7<   |sd8|d9<   t          d:| d          }t          |d;          5 }	t          j        ||	d$<           ddd           n# 1 swxY w Y   t          d=|                                 d>dd4|            adS )?z)Create asset-specific realtime summaries.)btcusdtethusdtxautusdtNr   r   zA/mnt/mt5/terminal/122160/Common/Files/Data/XAUUSD_PERIOD_M1_0.csvz	utf-16-le)	TimestampOpenHighLowCloseVolume)encodingnamesr   coerce)errorsz  CFD price: $z.2fz%  Warning: Could not read CFD price: zN/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/outputs/data/signals_z.jsonsignalsc                     g | ]
}|d          S entry_price .0ss     r   
<listcomp>z-create_realtime_summaries.<locals>.<listcomp>K   s    :::Q-(:::       
   c                 L    g | ] }t          |d          z
            k    |!S r'   )abs)r+   r,   current_price	tolerances     r   r-   z-create_realtime_summaries.<locals>.<listcomp>U   s@     
 
 
1]#m344	AA AAAr.   c                 B    g | ]}|d          dk    |d         dk    |S )
confidence333333?risk_rewardg      @r)   r*   s     r   r-   z-create_realtime_summaries.<locals>.<listcomp>[   s@     
 
 
$&&1]+;s+B+B +B+B+Br.   )defaultdicttype_	directionc                 $    | d         | d         z  S Nr6   r8   r)   xs    r   <lambda>z+create_realtime_summaries.<locals>.<lambda>i   s    1\?Q}=M+M r.   )keyr(   target_price
stop_pricer8   r6   )r:   r<   r(   rC   rD   r8   r6   distance_from_price   	cfd_entry
cfd_targetcfd_stopc                 $    | d         | d         z  S r>   r)   r?   s    r   rA   z+create_realtime_summaries.<locals>.<lambda>   s    q=9I'I r.   T)rB   reversec              3   J   K   | ]}|d          dk    |d         dk    dV  dS )r<   bullishr6   r7      Nr)   r*   s     r   	<genexpr>z,create_realtime_summaries.<locals>.<genexpr>   B      oo!q~7R7RWXYeWfjnWnWnAWnWnWnWnoor.   c              3   J   K   | ]}|d          dk    |d         dk    dV  dS )r<   bearishr6   r7   rN   Nr)   r*   s     r   rO   z,create_realtime_summaries.<locals>.<genexpr>   rP   r.   g      ?u   BEARISH 📉u   BULLISH 📈zSlight bearish biaszSlight bullish biasu   Neutral ↔️z.0fz - )r3   setupsgenerated_atprice_range	sentimentbullish_signalsbearish_signals)r3   offset_from_binancecfdz)No high-quality setups near current pricemessagezW/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/outputs/data/realtime_summary_w)indentz  z: $)pandasr   existsread_csv
to_numericfloatilocr   r   openjsonload
statisticsmediancollectionsr9   listappenditemsmaxsplitroundsortsumr   r   	isoformatdumpupper) assets	cfd_price
cfd_offsetpdmt5_filedfr   assetsignals_filefdatar%   entry_pricesnear_signalsquality_signalsr9   rS   r,   rB   best_setupssigsbeststyper<   
setup_databullish_countbearish_countrV   summaryoutput_filer3   r4   s                                  @@r   create_realtime_summariesr   '   sN    0//F IJV
	?_``H   8[[K%\%\%\ ! ^ ^ mmBwKmII7!"'"+g"677	6y666777 	? 	? 	?=!==>>>>>>>>	?  nH nHymryyyzz""$$ 	, 	 19Q<<D	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  y/ 	 ;:':::"),77 
J9"]2J *,,AA"	
 
 
 
 

 
 

 
#
 
 
 	,+++++T""  	" 	"AvY11;11C3Kq!!!! 	+ 	+ICt!M!MNNND"yy~~E9 &#M2 $^ 4"<0#M2"<0'+M':]'J	 	J 
""*/]0Cj0PRS*T*T
;'+0n1E
1RTU+V+V
<().tL/AJ/NPQ)R)R
:&z****IISWXXX!"1"o oo|ooooooo|ooooo=3...&II]S000&II]**-II]**-II(I +!$LNN4466+i7___PY@Y___",,
 
 J9!&y!!4!4',Z';'; GEN
  	M!LGI   Buz  B  B  B  C  C+s## 	,qIgq++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	F5;;==FF]FFF9FFGGGG]nH nHs<   BB% %
C/CC
D++D/	2D/	O99O=	 O=	c                  <   t          d           t          d           t          d           t          d           t          d           d} 	 	 | dz  } t          d|  d	t          j                                        d
                      t          d           t	                      rt                       t          d           t          d           t          j        d           # t          $ r% t          d           t          d|             Y dS w xY w)z
Main loop.zP================================================================================zREAL-TIME SIGNAL GENERATORz%
Updating signals every 60 seconds...zPress Ctrl+C to stop
r   TrN   z
[z] Update at r	   zP--------------------------------------------------------------------------------u   ✓ All assets updatedu   
⏱️  Waiting 60 seconds...<   u   

✓ Stopped by userzTotal updates: N)	r   r   r   r   r   r   timesleepKeyboardInterrupt)update_counts    r   mainr      s8    
&MMM	
&'''	&MMM	
2333	
"###L0	ALWWW(,..2I2I*2U2UWWXXX&MMM  !! 0)+++./// 3444JrNNN	   0 0 0'(((...//////0s   BC, ,+DD__main__)__doc__r
   r   re   pathlibr   r   rg   r   r   r   __name__r)   r.   r   <module>r      s                            ,CH CH CHL0 0 0B zDFFFFF r.   