
    tIj                    \    d dl mZ d dlmZ d dlmZmZmZmZ dd
Z	d Z
d Zd Zd Zd ZdS )    )annotations)Decimal)DeskMandatebuild_trade_planbuild_trader_desk_reportformat_trader_desk_report100bullishN82.000.031.20c                Z    |pg }d| id|iddid|dd|ddd	d
d|iddddddddddd	S )Nmidstateconstructive	tradeable)r   atr_pctok)r   
spread_pctz0.000001neutral)fundingcrowding_stateblockers&tradingview_community_research_contextT      z60.00)	evaluatedhitrate_pct)sourceresearch_onlyrecent_ideas_counttrack_recordcoingecko_marketsloaded)r   status)	pricetrendmomentum
volatility	liquidityderivativesrisk	sentimentfundamentals )r   r'   r   scorespreadatrs         tests/test_trader_desk.py_coinr4      s    ~2H5!n- +<<#6::#-KKX&>!"#*,WEE	
 
 $7(KK      c            	     v    dddt                      t          ddgd          dddd	g d
ddddgdddddS )NFrisk_onz55.00spread_too_widez0.20)r0   r   r1   )BTCETH)market_regimecoinsr   paper_candidate)final_trade_scorer   recommendationconfluence_below_thresholdblock_new_entry)r;   scores)live_order_allowedmainnet_signed_actionmarket_snapshot
confluence)r4   r/   r5   r3   _payloadrG      s    #!&&ww76G5HQWXXX 
 
 '-4"Xijj-4CTVrBs  HY  Z  Z 
 
  r5   c                 P   t          t                      dt                                } | j        dk    sJ | j        dk    sJ | j        t          d          k    sJ | j        du sJ | j        du sJ | j	        du sJ | j
        J | j        d         dk    sJ d	| j        v sJ d S )
Nr9   tiny_live_candidatelongz87.00FTstyleretest_limit_zone/community_track_record_supportive_research_only)r   rG   r   action	directionr0   r   rC   rD   requires_preflight	stop_loss
entry_zonereasonsplans    r3   Wtest_trader_desk_promotes_high_quality_long_to_tiny_candidate_without_live_side_effectsrV   1   s    HJJ{}}==D;/////>V####:))))))"e++++%...."d****>%%%?7#':::::<LLLLLLr5   c                     t          t                      dt                                } | j        dk    sJ d| j        v sJ d| j        v sJ | j        dk    sJ d S )Nr:   no_trader8   r@   0)r   rG   r   rN   r   notional_cap_usdcrT   s    r3   4test_trader_desk_blocks_hard_market_quality_blockersr[   ?   sn    HJJ{}}==D;*$$$$----'4=8888!S((((((r5   c                 >   t                      } d| d         d<   d| d         d<   d| d         d         d         d         d	<   d
| d         d         d         d<   t          | dt          d                    }|j        dk    sJ |j        dk    sJ d|j        v sJ d S )Nrisk_offrF   r;   rE   bearishr<   r9   r'   r   z85.00rB   r>   T)long_only_tiny_liveshortwatch_shadow,short_is_shadow_only_under_tiny_live_mandate)rG   r   r   rO   rN   rS   )payloadrU   s     r3   =test_trader_desk_short_is_shadow_only_under_tiny_live_mandaterd   H   s    jjG-7GL/*2<G/CLGw'.w7@BIGL(#E*+>?GUKD,Q,Q,QRRD>W$$$$;.((((9T\IIIIIIr5   c                 4   t          t                                } | j        dk    sJ | j        du sJ | j        du sJ | j        d         dk    sJ | j        d         dk    sJ | j        d         j        dk    sJ t          |           }d	|v sJ d
|v sJ d S )Nztrader_desk.v1Ftiny_live_candidates   short_share_pctz0.00r   r9   zJARVIS Trader Desk v1z	live=nein)	r   rG   schema_versionrC   rD   summaryplanscoinr   )reporttexts     r3   /test_trader_desk_report_is_sorted_and_read_onlyro   V   s    %hjj11F $44444$----'50000>01Q6666>+,6666<?5(((($V,,D"d****$r5   )r	   r
   Nr   r   r   )
__future__r   decimalr   src.trader_desk.decisionr   r   r   r   r4   rG   rV   r[   rd   ro   r/   r5   r3   <module>rs      s    " " " " " "       w w w w w w w w w w w w   (  *M M M) ) )J J J    r5   