
    %j
                    T    d dl mZ d dlmZmZmZ d dlmZ dd
ZdddZ	ddZ
ddZdS )    )annotations)Candleaggregate_trade_breakdownsrun_walk_forward_tournamentStrategyPresetiintclosefloatreturnr   c                8    t          d| dz  z   ||||d          S )Ni Se<   i@B )tsopenhighlowr   volume)r   )r	   r   s     +tests/test_historical_replay_walkforward.py_candler      s(    ]QV+%eV[dmnnnn          @strategy_idstrtriggerr   c                >    t          | | d|dddddddd	d
d
          S )Nunitg?g      ?      ?   g       @g      @g      I@      )
flash_crash_trigger_pctbreak_even_activation_pctv_shape_activation_pctv_shape_trail_dist_pctdead_fish_time_limit_minsatr_sl_multipliermax_hard_stop_pcttrade_size_usddefault_leveragemin_volume_24h)r   labelsource
parametersr   )r   r   s     r   _presetr/      sJ    '.),&)&))+!$!$" !
 
	   r   Nonec            	        t          dd          t          dd          t          dd          t          dd          t          dd	          gt          dd          t          dd          t          dd          t          dd
          t          dd          gd} t          t          d          g| dddd          }t          |d         j        j                  }t          |j                  ddhk    sJ |j        d         j        dk    sJ |j        d         j        dk    sJ t          d |j
        D                       sJ t          d |j
        D                       sJ d S )Nr   d   r!      _            X@   g      X@Z   Y   BTCETH	candidate@T volumessegmentsr;   r<   c              3  @   K   | ]}|                     d           V  dS )zV-ShapeN
startswith.0reasons     r   	<genexpr>zQtest_aggregate_trade_breakdowns_groups_by_coin_and_exit_reason.<locals>.<genexpr>+   s0      SSv  ++SSSSSSr   c              3  @   K   | ]}|                     d           V  dS )zSL HitNrC   rE   s     r   rH   zQtest_aggregate_trade_breakdowns_groups_by_coin_and_exit_reason.<locals>.<genexpr>,   s0      RRvv  **RRRRRRr   )r   r   r/   r   	aggregatetradessetby_coinclosed_tradesanyby_exit_reason)candlesresults	breakdowns      r   >test_aggregate_trade_breakdowns_groups_by_coin_and_exit_reasonrT      s   3C'!R..'!TBRBRT[\]_cTdTde3C'!R..'!R..RYZ[]_R`R`a G
 *7;+?+?*@'[dmvSwSw  CD  E  E  EG*71:+?+FGGIy !!eU^3333U#1Q6666U#1Q6666SS):RSSSSSSSSRR9QRRRRRRRRRRr   c                    t          dd          t          dd          t          dd          t          dd          t          dd	          t          d
d	          t          dd	          t          dd	          t          dd	          t          dd	          g
t          dd          t          dd          t          dd          t          dd          t          dd          t          d
d          t          dd          t          dd          t          dd          t          dd          g
d} t          t          d          g| dddd          }|d         j        dk    sJ t	          |d         j                  dk    sJ |d         j        j        dk    sJ |d         j        dk    sJ |d         j	        dk    sJ |d         j
        dk    sJ d S )Nr   r2   r!   r3   r4   r5   r6   r7   `   r             	   r8   r9   r:   wfr>   r?   r   )r   r   r/   r   lenrA   rJ   rN   winning_segmentslosing_segmentsstability_score)rQ   rR   s     r   ;test_walk_forward_tournament_reports_segments_and_stabilityr`   /   s    AsOOWQ__gannga>N>NPWXY[]P^P^ArNNGArNNGArNNGArNNGTUWYNN

 AsOOWQ__gaoowq#PWXY[^P_P_AsOOWQ__gannganngVWY[nn
	 	G *74==/7T]foLpLp{|}}}G1:!T))))wqz"##q((((1:-22221:&!++++1:%****1:%,,,,,,r   N)r	   r
   r   r   r   r   )r   )r   r   r   r   r   r   )r   r0   )
__future__r   historical_replayr   r   r   strategy_registryr   r   r/   rT   r`    r   r   <module>re      s    " " " " " " ] ] ] ] ] ] ] ] ] ] , , , , , ,o o o o    (S S S S - - - - - -r   