
    i                        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\" 5       r/ S
Qr\" S5        \" \\   R1                  S5      5        \" \\   R3                  S5      5        \" S5        \" \\   R1                  S5      5        \" \\   R3                  S5      5        \" S\" \5      5        \" S\" \5      5        \" S\" \5      \" \5      -
  5        \" S\S   R7                  5       S\S   R9                  5       5        gg)    N)Path   src)load_eurusd)build_spread_featuresc                  @   [        5       R                  5       n [        5       R                  5       n/ SQnX   R                  5       nU S   R                  R	                  5       U S'   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                  5       US'   US   R                  S5      US	'   US   R                  S
5      US'   US   US   -
  US'   US   US   -
  US'   SUS   -  SUS   -  -   US'   U$ s  snf )N)	date	spread_2y
spread_10yspread_2y_change_1dspread_2y_change_5dspread_2y_zscore_20dspread_10y_change_1dspread_10y_change_5dspread_10y_zscore_20ddatetimer	   left)onhowcloseeurusd_return_1h   eurusd_return_4h   eurusd_return_24hr   lag_gap_2y_24hr   lag_gap_10y_24hgffffff?g333333?raw_lag_score)r   copyr   dt	normalizemergeffill
pct_change)pricesspreadsspread_colsdfc	fill_colss         BC:\Users\paul_\OneDrive\fx_macro_intraday\src\features\spot_lag.pybuild_spot_lag_featuresr,      s_   ]!F#%**,G
K "'')G J'**446F6N 
g&f	5B (7Kq;KI7M'')BM  [335B[33A6B k44R8B 34r:M7NNB56<O9PPB 	b!""b"##	$ 
 I% 8s   <	D	D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   r   r   r   r   )subsetT)drop)r,   r   dropnareset_index)r(   required_colsmodel_dfs      r+   get_model_ready_spot_lagr4   <   s?    	 	"	'	'	)B
M yyy.:::EHO    __main__)
r   r   r
   r   r   r   r   r   r   r   z
RAW DATA SAMPLE:   z
MODEL-READY SAMPLE:z

RAW rows:zMODEL rows:zDropped rows:z
Model date range:r   to)pandaspdpathlibr   sys__file__resolveparents	BASE_PATHSRC_PATHstrpathappendingestion.price_loaderr   features.yield_spreadsr   r,   r4   __name__raw_dfr3   cols_to_showprintheadtaillenminmax r5   r+   <module>rQ      sb     
N""$,,Q/	ux= HHOOCM" . 8*Z& z$&F')HL 

	&

#
#A
&'	&

#
#A
&'	
!"	(<
 
%
%a
()	(<
 
%
%a
()	-V%	-X'	/3v;X67	
*!5!9!9!;T8JCWC[C[C]^; r5   