
    Sj                        d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ dZd	Zd
Zh dZd#dZd$dZddd$dZd%d Zd&d"ZdS )'    )annotationsreplace)Decimal
ROUND_DOWN)Any)OrderIntent)TrendRetestFeatures)TradingViewContexttradingview_blockers*candidate_v77_trend_retest_anti_chase_long$research_v77_bear_trend_retest_shortzv77.1.0>   BTCETHSOLLINKfeaturer
   strength_rankintweakness_rankbreadth_positive_pctr   returnc               (    t          | |||          S )N)r   r   r   r   )r   r   r   r   s       _/home/agent/projects/CryptoTradingBot/Crypto_Agent/src/strategies/trend_retest_anti_chase_v2.pywith_cross_sectionr      s'     ##1	       sidestrtvTradingViewContext | None	list[str]c               f   g }| j         t          vr|                    d           | j        s|                    | j        pd           | j        t          d          k     r|                    d           | j        t          d          k    r|                    d           |dk    r| j	        n| j
        }|t          d          k    r|                    d           | j        t          d	          k     r|                    d
           |                    t          ||d                     |S )Ncoin_not_primary)data_quality25000000weak_liquidityz0.08spread_too_widelongimpact_slippage_too_high1.20volume_expansion_missingi  )r   max_age_seconds)coinPRIMARY_COINSappenddata_quality_allowedextenddata_quality_reasons
volume_24hr   
spread_pctbuy_impact_1k_pctsell_impact_1k_pctvolume_ratior   )r   r   r   blockersimpacts        r   _common_blockersr:   !   s(   H|=((*+++' K4I8IJJJGJ////()))GFOO++)****.&..W&&g>XF2333gfoo--2333OO($MMMNNNOr   N)r   c                  |                                 }|dvrt          d          t          | ||          }t          d          }|dk    r| j        | j        k    s| j        | j        k    r|                    d           | j        | j	        k    r|                    d           | j
        t          d          k     r|                    d	           | j        d
k    r|                    d           | j        t          d          k    p| j        t          d          k    }|r-| j        t          d          k     r|                    d           | j        | j        t          d          |z   z  k    }| j        | j        k    o| j        | j        k    }|r|r| j        t          d          k     r|                    d           | j        t          d          k    r-| j        t          d          k     r|                    d           n| j        | j        k    s| j        | j        k    r|                    d           | j        | j	        k    r|                    d           | j
        t          d          k    r|                    d           | j        d
k    r|                    d           | j        t          d          k     p| j        t          d          k     }|r-| j        t          d          k     r|                    d           | j        | j        t          d          |z
  z  k    }| j        | j        k    o| j        | j        k     }|r|r| j        t          d          k     r|                    d           | j        t          d          k     r-| j        t          d          k     r|                    d           t-          t.                              |                    S )N>   r(   shortside must be long or short)r   r   z0.003r(   trend_1h_not_bullishtrend_4h_not_bullish50market_breadth_not_supportive   weak_relative_strengthr*   z3.00z0.45!anti_chase_overextended_no_retest1no_confirmed_close_reclaim70z1.60'overbought_without_strong_volume_retesttrend_1h_not_bearishtrend_4h_not_bearishmarket_breadth_not_bearishweak_relative_weaknessz-1.20z-3.00'anti_chase_short_overextended_no_retestno_confirmed_close_rejection30%oversold_without_strong_volume_retest)lower
ValueErrorr:   r   sma_1h_fastsma_1h_slow	close_15mr/   sma_4h_fastsma_4h_slowr   r   move_15m_pctmove_1h_pctpullback_from_high_pctlow_15mopen_15mrsi_15mr7   r   rebound_from_low_pcthigh_15mlistdictfromkeys)	r   r   r   r8   	toleranceoverextendedtouched_retest	reclaimedrejecteds	            r   entry_blockersrh   4   s   ::<<D$$$5666dr:::H  Iv~~'"5559JgNa9a9aOO2333'"555OO2333''$--77OO;<<< 1$$OO4555+gfoo=fATW^_eWfWfAf 	AG:WV__LLOO?@@@ G,?73<<R[C[,\\%)<<eARU\UeAe	 	:Y 	:'2PSZ[aSbSb2b2bOO8999?WT]]**w/Cgfoo/U/UOOEFFF'"5559JgNa9a9aOO2333'"555OO2333''$--77OO8999 1$$OO4555+gg.>.>>h'BUX_`gXhXhBh 	GG876??JJOOEFFF )W-@GCLLS\D\-]]$(;;d@QT[Td@d 	<X 	<1MPWX^P_P_1_1_OO:;;;?WT]]**w/Cgfoo/U/UOOCDDDh''(((r   client_order_idOrderIntent | Nonec          
        |                                 }|dvrt          d          | j        }t          t	          d          | j        t	          d          z            }t	          d          t	          d          z  }t          t	          d          ||t	          d          z  z            }|t	          d	          k     s|d
k    rd S ||z                      t	          d          t                    }|dk    rlt          | j	        t	          d          z  |t	          d          |t	          d          z  z
  z            }|||z
  t	          d          z  z   }	d}
t          }d}nkt          | j        t	          d          z  |t	          d          |t	          d          z  z   z            }|||z
  t	          d          z  z
  }	d}
t          }d}t          d*i d|d| j         dd| j        d|
dddddd d!|d"d d#d d$|                    t	          d          t                    d%|	                    t	          d          t                    d&|d'|d(|d)|S )+N>   r(   r<   r=   z0.80z0.8575z0.00151510010r   z
0.00000001)roundingr(   z0.9975rE   r*   buy&confirmed_trend_retest_anti_chase_longz1.0025sell*confirmed_bear_trend_retest_short_researchstrategy_idsymbolz
/USDC:USDCr-   r   reduce_onlyF
order_typemarkettifIocsizepricetrigger_price	stop_losstake_profitri   reasonrisk_usdestimated_notional_usd )rQ   rR   current_pricemaxr   atr_pctminquantizer   
recent_lowLONG_STRATEGY_IDrecent_highSHORT_RESEARCH_IDr	   r-   )r   r   ri   r}   stop_distance_pctr   notionalr|   stoptp1
order_sideru   r   s                r   build_intentr   a   s   ::<<D$$$5666!EGFOOW_wv-NOOt}}wx000H74==(.?'%...P"QRRH'$--5A::tu&&w|'<'<z&RRDv~~7%(9(995GCLLSdgnotguguSuDu;vwwut|wv66
&97&):)::EWS\\TehopuhvhvTvEv<wxxte|wv66
'=   K,**** \\ Z	
 E 8 E T d d -- 5 5
-KKK LL!6!6LLLL ( v    (x! r   dict[str, Any]c                "   i ddddd| j         d| j        dt          | j                  dt          | j                  d	t          | j                  d
t          | j                  dt          | j                  dt          | j                  dt          | j	                  dt          | j
                  dt          | j                  dt          | j                  dt          | j                  dt          | j                  dt          | j                  t          | j                  t          | j                  | j        | j        t          | j                  | j        | j        t/          | j                  dS )Ndata_source"hyperliquid_live_readonly_ohlcv_l2proxy_inputs_usedFdata_window_id	candle_tsrX   rY   rS   rT   rV   rW   r   r]   r3   r7   rZ   r^   r4   )r5   r6   r   r   r   continuation_closes_confirmedr0   r2   )r   r   r   rX   rY   rS   rT   rV   rW   r   r]   r3   r7   rZ   r^   r4   r5   r6   r   r   r   r   r0   r`   r2   )r   s    r   feature_journalr      s   ;U 	'0 	W&	
 	G011 	s7.// 	s7.// 	s7.// 	s7.// 	s7.// 	3w'' 	3w'' 	c',-- 	G011 	!#g&D"E"E  	G$@ A A!" 	c',--#$ !!:;;!'"<== . . #G$@ A A)0)N ' < $W%A B B3   r   )
r   r
   r   r   r   r   r   r   r   r
   )r   r
   r   r   r   r    r   r!   )r   r
   r   r   ri   r   r   rj   )r   r
   r   r   )
__future__r   dataclassesr   decimalr   r   typingr   src.execution.order_intentr	    src.market.trend_retest_featuresr
    src.research.tradingview_contextr   r   r   r   STRATEGY_VERSIONr.   r   r:   rh   r   r   r   r   r   <module>r      s0   " " " " " "       ' ' ' ' ' ' ' '       2 2 2 2 2 2 @ @ @ @ @ @ U U U U U U U U @ :  ---      & `d *) *) *) *) *) *)Z( ( ( (V     r   