
    je                         S r SSKJr  SSKJr  SSKJrJrJrJ	r	J
r
JrJrJrJrJr  \ " S S5      5       r " S S	5      rg
)u   
V11 — Strategy: Momentum Taker.

Detecta movimiento de Binance vs strike y genera señal direccional.
Sin EWMA, sin fair value — pura señal de precio.
    )	dataclass)Optional   )
ConfigMOMENTUM_THRESHOLDMAX_ENTRY_PRICEMIN_ENTRY_PRICEENTRY_SIZE_USD
MIN_SHARESTAKER_FEE_RATEPAPER_SLIPPAGE	TICK_SIZE
snap_pricec                   d    \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   \\S'   \\S'   S	r\\S
'   Sr	g)Signal   u   Señal de momentum detectada.sidetoken_idpricesizesize_usdmove_pct reason N)
__name__
__module____qualname____firstlineno____doc__str__annotations__floatr   __static_attributes__r       /var/www/html/v11b/strategy.pyr   r      s-    '
IML
KOOFCr%   r   c                   V    \ rS rSrS\4S jrS\S\S\S\S\S	\S
\S\	S\
\   4S jrSrg)MomentumStrategy    cfgc                     Xl         g )Nr*   )selfr*   s     r&   __init__MomentumStrategy.__init__!   s    r%   r   striket_left	token_yestoken_nobest_ask_yesbest_ask_noalready_enteredreturnc	                    U(       a  gUS::  d  US::  a  gX0R                   R                  :  a  gX0R                   R                  :  a  gX-
  U-  n	[        U	5      n
XR                   R                  :  a  gU	S:  a  SnUnUnOSnUnUnUS::  a  g[        U5      nXR                   R                  :  a  gU[        :  a  gXR                   R                  :  a  g[        [        U R                   R                  U-  S5      [        5      n[        X-  S5      n[        UUUUU[        U	S-  S5      SU	S	 S
U R                   R                  S 3S9$ )uR   Evalúa si hay señal de momentum.

Returns Signal si hay que entrar, None si no.
Nr   YESNO   d      z	momentum z+.4%z > threshold z.4%)r   r   r   r   r   r   r   )r*   signal_start_tleftsignal_stop_tleftabsmomentum_thresholdr   max_entry_pricer	   min_ask_confirmmaxroundentry_size_usdr   r   )r-   r   r0   r1   r2   r3   r4   r5   r6   moveabs_mover   r   entry_pricen_sharescost_usds                   r&   check_signalMomentumStrategy.check_signal$   s\    Q;%1* HH///HH... &(t9hh111 !8D H&KDH%K ! - 111(
 111 uTXX44{BAF
S/34#:q)tDktxx7R7RSV6WX
 	
r%   r,   N)r   r   r   r   r   r.   r#   intr!   boolr   r   rL   r$   r   r%   r&   r(   r(       sk    F C
% C
 C
 C
 #C
/2C
#(C
7<C
 '+C
 08/?C
r%   r(   N)r    dataclassesr   typingr   configr   r   r   r	   r
   r   r   r   r   r   r   r(   r   r%   r&   <module>rS      sF    "      G
 G
r%   