
    蠶i
                     b   S SK rS SKJr  S SKr\" \5      R                  5       R                  S   r\S-  r	\
" \	5      \R                  ;  a!  \R                  R                  \
" \	5      5        S SKJr  S SKJr  S rS r\S	:X  a  \" 5       r/ S
Qr\" \\   R/                  S5      5        \" \\   R1                  S5      5        \" S\" \5      5        \" S\S   R5                  5       S\S   R7                  5       5        \" S5        \" \S   R9                  SS9R;                  5       5        gg)    N)Path   src)load_eurusd)build_rolling_beta_modelc                     [        5       R                  5       n [        SSS9R                  5       nU S   R                  R	                  5       U S'   / SQnX   R                  5       nU R                  USSS9nU Vs/ s H  oDS:w  d  M
  UPM     nnX5   R                  5       X5'   US	   R                  S
5      US'   US   US   -
  US'   US   R                  SSS9R                  5       nUS   R                  SSS9R                  5       nUS   U-
  U-  US'   SUS'   SUR                  US   S:  S4'   SUR                  US   S:  S4'   U$ s  snf )Nx      )windowsmooth_spandatetimedate)r   spread_2y_change_1dspread_10y_change_1dbeta_2ybeta_10ypredicted_return_1dleft)onhowclose   eurusd_return_24hr   lag_gap_24h_v3<   )min_periodslag_zscore_24h_v3r   signal_direction_v3   g      ?g      )r   copyr   dt	normalizemergeffill
pct_changerollingmeanstdloc)pricesdaily_model
daily_colsdfc	fill_colslag_meanlag_stds           EC:\Users\paul_\OneDrive\fx_macro_intraday\src\features\spot_lag_v3.pybuild_spot_lag_v3r4      s   ]!F*#2FKKMK J'**446F6NJ )..0K 
kf&	9B '6Jqv+JI6M'')BM !k44R8B 34r:M7NNB "#++BB+?DDFH!"**22*>BBDG!"23h>'IB !"BCDBFF2!"S(*??@DFBFF2!"T)+@@AI) 7s   <	E	Ec                  v    [        5       R                  5       n / SQnU R                  US9R                  SS9nU$ )N)r   r   r   r   r   )subsetT)drop)r4   r!   dropnareset_index)r.   required_colsmodel_dfs      r3   get_model_ready_spot_lag_v3r<   <   s?    			!	!	#BM yyy.:::EHO    __main__)r   r   r   r   r   r   r   
   z
Rows:zDate range:r   toz
Signal counts:r   F)r8   )pandaspdpathlibr   sys__file__resolveparents	BASE_PATHSRC_PATHstrpathappendingestion.price_loaderr   models.rolling_beta_modelr   r4   r<   __name__r.   colsprintheadtaillenminmaxvalue_counts
sort_index r=   r3   <module>rZ      s     
N""$,,Q/	ux= HHOOCM" . >*Z z	$	&BD 
"T(--
	"T(--
	)SW	-J++-tR
^5G5G5IJ	
	""
#
0
0
0
>
I
I
KL) r=   