
    2j                         d Z ddlZddlZddlmZ ddlmZ ddlmZ  G d d          Zd Z	e
d	k    r e	             dS dS )
zO
Build 3D graph data for visualization - Simplified version for actual schema.
    N)Path)datetime)defaultdictc                   0    e Zd ZdZdedefdZd	defdZdS )
OrderFlowGraphBuilder3Dz,Build 3D graph for order flow visualization.db_pathoutput_pathc                 "    || _         || _        d S )N)r   r	   )selfr   r	   s      R/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/scripts/build_3d_graph.py__init__z OrderFlowGraphBuilder3D.__init__   s    &    xautusdtassetc                 p  & t          d           t          d|                                            t          d           t          j        | j                  }t          j        |_        |                                }|                    d|f           |	                                }|s(t          d|            |
                                 dS t          d           }|D ]}|d         }|d         }|d	         }	|d
         }
|dk    r-||         dxx         |	z  cc<   ||         dxx         |
z  cc<   U|dk    r,||         dxx         |	z  cc<   ||         dxx         |
z  cc<   t          dt          |           d           g }g }i }t          |                                d          D ]\  }}|d         }|d         }|d         }|d         }||z   }||z
  }|dk    r||z  pd}|t          d||z             z  }d| }|dd|d|||||||||d	d}|                    |           |||<   t          d           t          |                                d          }t%          t          |          dz
            D ]W}||         }||dz            }t'          ||z
            }|dk     r*||         ||         d d!|id"}|                    |           Xt          d#           t)          d$| d%          }|                                rt-          |          5 } t/          j        |           }!ddd           n# 1 swxY w Y   |!d&         dd         D ]Q&d'&d(          d)&                    d*d+           }"|"d,&                    d*d-                                           d)&d(          &d(         &d.         &d/         &                    d0d1          &                    d2d3          &                    d4d          &                    d*d+          &                    d5d6          d7d}#|                    |#           t5          |                                &fd89          }$|"||$         d:d;t'          |$&d(         z
            id"}|                    |           St7          j                                                    d<|t          |          t          |          d=d>||d?}%t-          | j        d@          5 } t/          j        |%| dAB           ddd           n# 1 swxY w Y   t          dC| j                    t          dDt          |                      t          dEt          |                      |
                                 |%S )Fz$Build 3D graph from order book data.P================================================================================z3D GRAPH BUILDER - a  
            SELECT
                price,
                side,
                SUM(volume) as total_volume,
                COUNT(*) as level_count
            FROM order_book_levels
            WHERE snapshot_id IN (
                SELECT id FROM order_book_snapshots
                WHERE symbol = ?
                ORDER BY timestamp DESC
                LIMIT 10
            )
            GROUP BY price, side
            ORDER BY price DESC
        u#   
❌ No price level data found for Nc                      dddddS )Nr   )
bid_volume
ask_volume	bid_count	ask_count r   r   r   <lambda>z5OrderFlowGraphBuilder3D.build_graph.<locals>.<lambda>9   s    YZij)k)k r   pricesidetotal_volumelevel_countbidr   r   askr   r   u   
📊 Processing z price levels...T)reverser   g      ?   price_level_
PriceLevelPrice_z.2f)	r   r   r   r   delta	imbalancewall_strengthr   r   )idtypename
propertiesu   
🔗 Creating relationships...
   adjacent_price_levelprice_distance)fromtor)   r+   u    
🎯 Loading trading signals...zN/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/outputs/data/signals_.jsonsignalssignal_entry_price_r)   unknownTradingSignalUNKNOWNtarget_price
stop_price	directionneutral
confidenceg      ?risk_rewardreason )r4   r9   r:   r;   r=   r>   signal_typer?   c                 4    t          | d         z
            S )Nr4   )abs)psignals    r   r   z5OrderFlowGraphBuilder3D.build_graph.<locals>.<lambda>   s    #a&*?&?"@"@ r   )keysignal_at_price_leveldistancez1.0.0z$Binance Order Book + Trading Signals)
created_atversionr   entity_countrelationship_countdata_source)metadataentitiesrelationshipsw   )indentu   
✅ Graph saved to: z   Entities: z   Relationships: ) printuppersqlite3connectr   Rowrow_factorycursorexecutefetchallcloser   lensorteditemsmaxappendkeysrangerC   r   existsopenjsonloadgetminr   now	isoformatr	   dump)'r   r   connrZ   rows
price_datarowr   r   volumecountrO   rP   
entity_mapdatabid_volask_volr   r   	total_volr%   r&   r'   	entity_identityprices_sortedicurrent_price
next_price
price_diffrelationshipsignals_filefsignals_data	signal_idsignal_entitynearest_pricegraphrE   s'                                         @r   build_graphz#OrderFlowGraphBuilder3D.build_graph   s0    	f3EKKMM33444ft|,,"; 	  X	 	 	"    	@@@AAAJJLLL4 !!k!kll
 	8 	8CLEv;D(F&Eu}}5!,///69///5!+...%7....5!,///69///5!+...%7...D3z??DDDEEE
!*"2"2"4"4dCCC "	* "	*KE4<(G<(G[)I[)I  ')Ig%E!9'(9@SI &Ay9/D(E(EEM.u..I  $,,,,"")")$-"!*%2!*!*
 
	 F" OOF### )Ju 	0111z00$???s=))A-.. 	3 	3A)!,M&q1u-J ]Z788J B&}5$Z02(*#	    $$\222 	1222ymryyyzz   (	3l## ,q#y||, , , , , , , , , , , , , , , 'y1#2#6 #3 #3]f]&;]]fjjQZ>[>[]]	 $+%zz&)<<BBDD^^vmG\^^'-m'<(.~(>&,\&:%+ZZY%G%G&,jjs&C&C'-zz-'C'C'-zz&)'D'D"(**Xr":":	# 	#	! !  ... !$OO%%@@@@! ! ! &$]33"C}8M(M$N$N#	    $$\2222
 'lnn6688" #H&)-&8&8E  !*
 
 $"C(( 	*AIeQq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	9t'799:::-c(mm--...73}#5#577888

s$   0MMMUU	UN)r   )__name__
__module____qualname____doc__r   r   strr   r   r   r   r   r      sd        66' '4 ' ' ' '} } } } } } } }r   r   c                  @   g d} t          d          }| D ]}|                                }t          d| d          }t          ||          }|                    |          }|r7t	          dd            t	          d| d           t	          d d           d	S )
zBuild 3D graphs for all assets.)XAUTUSDTBTCUSDTETHUSDTzT/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/data/binance_multi_asset.dbzR/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/data/order_flow_graph_3d_r1   
r   u   ✅ z 3D graph built successfully!N)r   lowerr   r   rT   )assetsr   r   asset_lowerr	   builderr   s          r   mainr      s     0//FijjG ! !kkmm  Cp{  C  C  C  D  D)';??##E** 	!-v--   ====>>>V---   ! !r   __main__)r   rg   rV   pathlibr   r   collectionsr   r   r   r   r   r   r   <module>r      s                   # # # # # #D D D D D D D DN! ! !* zDFFFFF r   