
    V`ju                     V    S SK rS SKrS\R                  S\R                  4S jr/ SQrg)    Ndfreturnc                 x   U R                  5       n U S   U S   U S   U S   4u  pp4X!-
  R                  5       nX4-
  nUSU-  :  R                  [        5      U S'   SU S'   UR	                  S	5      UR	                  S	5      :  X!:  -  X!R	                  S	5      :  -  XR	                  S	5      :*  -  nUR	                  S	5      UR	                  S	5      :  X!:  -  X!R	                  S	5      :*  -  XR	                  S	5      :  -  nS	U R
                  US4'   S
U R
                  US4'   X3R	                  S	5      :  R                  [        5      n	XDR	                  S	5      :  R                  [        5      n
SU S'   SU S'   Sn[        S	[        U 5      5       HU  nU	R                  U   (       a  U	R                  US	-
     (       a  US	-   OS	nOSnXR
                  U R                  U   S4'   MW     Sn[        S	[        U 5      5       HU  nU
R                  U   (       a  U
R                  US	-
     (       a  US	-   OS	nOSnXR
                  U R                  U   S4'   MW     S H1  nXR                  ;   d  M  X   X   R	                  S5      -
  X S3'   M3     SU R                  ;   a%  U S   R                  S5      R                  5       U S'   U S   R                  nU S   R                  n[        U 5      n[        R                   " U[        R"                  S9n[        R                   " U[        R"                  S9n[        R$                  " U[        R&                  5      n[        R$                  " U[        R&                  5      nS
nSnS
nSn[        U5       HV  nX<   U:  d  US
:X  a  UnX<   nXL   U:  d  US
:X  a  UnXL   nUU-
  X'   UU-
  UU'   [        U5      UU'   [        U5      UU'   MX     XS'   UU S'   U S   U-
  [        R(                  " USS 5      -  U S'   U S   U-
  [        R(                  " USS 5      -  U S'   U $ )NOpenCloseHighLowg?dojir   	engulfing   	hh_streak	ll_streak)
rsi_signalmacd_signaldirectional_bias   _accelsignal_strength   strength_trend)dtypeg      g    _Bbars_since_hhbars_since_llg|=dist_from_hhdist_from_ll)copyabsastypefloatshiftlocintrangelenilocindexcolumnsrollingmeanvaluesnpzerosint32fullnanclip)r   ochlbodycandle_rangebullish_engbearish_enghigher_high	lower_lowstreakicolnlast_hh_barslast_ll_barshh_valll_vallast_hh_idxlast_hh_highlast_ll_idxlast_ll_lows                          features/context.pyadd_curated_contextrI      s   	BFR["V*bi?JA!E;;=D5L|++33E:BvJB{O771:
*qu5ggajIQRYRYZ[R\_]K771:
*qu5ggajIQRYRYZ[R\_]K'(BFF;#$')BFF;#$wwqz>))#.KWWQZ'',IB{OB{OF1c"gA#.#3#3AaC#8VaZaFF+1rxx{K'(  F1c"g>>!#,>>!A##6VaZAFF+1rxx{K'(  A**!#27==+;!;Bf~ A BJJ&!"34<<Q?DDF
 	6
A
5	ABA88ARXX.L88ARXX.LWWQFWWQFKLKK1X4,+"3K4L4+!2K$Kk/k/Q,'q	+&q	  '&BW+."''&%2NNB~W+."''&%2NNB~I    )r
   r   r   r   rsi_signal_accelmacd_signal_acceldirectional_bias_accelr   r   r   r   r   )numpyr,   pandaspd	DataFramerI   CONTEXT_COLS rJ   rH   <module>rT      s1     MBLL MR\\ M`rJ   