
    ߖiM                        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	 rS
 r\S:X  a  \" 5       r\" 5       r/ SQr\" S5        \" \\   R5                  S5      5        \" \\   R7                  S5      5        \" S\" \5      5        \" S\S   R;                  5       S\S   R=                  5       5        \" S5        \" \S   R?                  SS9RA                  5       5        gg)    N)Path   src)load_eurusd)build_spread_featuresgǘgZӼ}c                     [        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                  S5      US'   US   R                  S	5      US
'   [        US   -  [        US   -  -   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 )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_24h0   eurusd_return_48hr   r   predicted_return_24hlag_gap_24h<   )min_periodslag_zscore_24hr   signal_direction   g      ?g      )r   copyr   dt	normalizemergeffill
pct_changeBETA_2YBETA_10Yrollingmeanstdloc)pricesspreadsspread_colsdfc	fill_colslag_meanlag_stds           EC:\Users\paul_\OneDrive\fx_macro_intraday\src\features\spot_lag_v2.pybuild_spot_lag_v2r8      s   ]!F#%**,G
K "'')G J'**446F6N 
g&f	5B'7Kq;KI7M'')BM !k44R8B k44R8B 	"*++2,--	.  12R8K5LLB} - (((<AACH''';??AG}-8GCB
 B=>BFF2#%'99:>@BFF2$&(::;I; 8s   <	F	F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   )subsetT)drop)r8   r#   dropnareset_index)r2   required_colsmodel_dfs      r7   get_model_ready_spot_lag_v2r@   J   s?    			!	!	#BM yyy.:::EHO    __main__)	r   r   r   r   r   r   r   r   r    z
MODEL-READY SAMPLE:
   z
Rows:zDate range:r   toz
Signal counts:r    F)r<   )!pandaspdpathlibr   sys__file__resolveparents	BASE_PATHSRC_PATHstrpathappendingestion.price_loaderr   features.yield_spreadsr   r)   r*   r8   r@   __name__raw_dfr?   cols_to_showprintheadtaillenminmaxvalue_counts
sort_index rA   r7   <module>r_      s=     
N""$,,Q/	ux= HHOOCM" . 8 4n" z F*,H
L 

!"	(<
 
%
%b
)*	(<
 
%
%b
)*	)S]#	-*-113T8J;O;S;S;UV	
	(%
&
3
35
3
A
L
L
NO1 rA   