
    Cj                        d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	 d dl
mZ dZh dZ ed	           G d
 d                      ZddZddZddZdS )    )annotations)	dataclass)Decimal
ROUND_DOWN)	CostModelTradeCostInput)OrderIntent%candidate_swing_trend_retest_research>   BTCETHSOLLINKT)frozenc                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dZded<   dS )SwingRetestContextstrcoinsymbolr   current_pricesma_fastsma_slow
swing_high
retest_lowatr_pcttrend_strength_pctpullback_from_high_pctreclaim_pct
volume_24h
spread_pctexpected_slippage_pctfunding_rate_hourly_pctintmarket_breadthrelative_strength_rankwallet_equity_usdcTbooldata_quality_allowedN)__name__
__module____qualname____annotations__r'        $src/strategies/swing_trend_retest.pyr   r      s         IIIKKK####""""$$$$!%%%%%%%r-   r   notionalr   pricereturnc                    |dk    rt          d          S | |z                      t          d          t                    S )Nr   0
0.00000001rounding)r   quantizer   )r/   r0   s     r.   _size_for_notionalr8   $   s=    zzs||u&&w|'<'<z&RRRr-   ctx	list[str]c                   | j                                         }g }|t          vr|                    d           | j        s|                    d           | j        t          d          k     r|                    d           | j        t          d          k    r|                    d           | j        dk     r|                    d           | j	        dk    r|                    d	           | j
        | j        cxk    r| j        k    sn |                    d
           | j        t          d          k     r|                    d           | j        t          d          k     r|                    d           | j        t          d          k    r|                    d           | j
        | j        k    r|                    d           | j        t          d          k     r|                    d           | j        t          d          k    r|                    d           t%          t          d          | j        t          d          z            }t)          | j                                      t/          t          d          || j        t          d          z  | j        t          d          | j                            }||j        t          d          z  k     r|                    d           |S )Ncoin_not_primary_swing_universedata_quality30000000weak_liquidityz0.08spread_too_wide   weak_market_breadthweak_relative_strengthtrend_not_confirmed1.50trend_strength_too_lowz0.80no_meaningful_pullbackz8.00pullback_too_deepretest_not_heldz0.25reclaim_too_weakz0.02crowded_positive_fundingz2.20)min_slippage_pct25224)notional_usdexpected_move_pcthalf_spread_pctdepth_penalty_pct
hold_hoursr!   5swing_edge_below_5x_cost)r   upperALLOWED_COINSappendr'   r   r   r   r#   r$   r   r   r   r   r   r   r   r!   maxr   r   r    estimater   roundtrip_cost_pct)r9   r   blockersrQ   costs        r.   swing_retest_blockersr_   *   s   8>>DH=  9:::# ('''
~
++++()))
~'')***
A-...
!A%%0111;;;;s|;;;;-...
//0111
!GFOO330111
!GFOO33+,,,
CN**)***
((*+++
"WV__442333GFOOS[76??-JKKc&?@@@II /NWS\\9!7t}}$'$?	
 	
 	
	 	D 42WS\\AAA2333Or-   client_order_idr   OrderIntent | Nonec          
     L   t          |           rd S t          t          d          | j        t          d          z            }t          d          }| j        |z  t          d          z  }t          | j        t          d          z  ||t          d          z  z            }|t          d          k     rd S t          | j        t          d          z  | j        t          d          |t          d          z  z
  z            }t          || j                  }|dk    rd S t          d i d	t          d
| j        d| j                                        ddddddddd|dd dd d|                    t          d          t                    dd d|ddd|d|S )!NrE   z1.10z0.2010010z0.9951r   strategy_idr   r   sidebuyreduce_onlyF
order_typemarkettifIocsizer0   trigger_price	stop_lossr4   r5   take_profitr`   reasonswing_trend_retest_reclaimrisk_usdestimated_notional_usdr,   )r_   rZ   r   r   r%   minr   r   r8   r	   STRATEGY_IDr   r   rW   r7   r   )r9   r`   stop_distance_pctrisk_pctrt   r/   rp   rn   s           r.   build_swing_trend_retest_intentrz   X   s   S!! tGFOOS[76??-JKKvH%075>>AH3)GFOO;XIZ]dej]k]kIk=lmmH'$--tCNWW%5%55s7HGTWLL[lovw|o}o}[}L}7~Ih(9::Dqyyt   Kzz X^^ U	
 E 8 E T d d $$W\%:%:Z$PPP D ( ,+    (x! r-   N)r/   r   r0   r   r1   r   )r9   r   r1   r:   )r9   r   r`   r   r1   ra   )
__future__r   dataclassesr   decimalr   r   src.execution.cost_modelr   r   src.execution.order_intentr	   rw   rX   r   r8   r_   rz   r,   r-   r.   <module>r      s   " " " " " " ! ! ! ! ! ! ' ' ' ' ' ' ' ' > > > > > > > > 2 2 2 2 2 25--- $& & & & & & & &,S S S S+ + + +\     r-   