
    (jf
                    ^    d dl mZ d dlmZmZmZmZ d dlmZ dd
Z	ddZ
ddZddZddZdS )    )annotations)Candlerun_coin_slice_replayrun_parameter_sweeprender_parameter_sweep_report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_replay_sweep.py_candler      s(    ]QV+%eV[dmnnnn    r	   c                 >    t          ddddddddd	d
dddd
          S )NbaseBaseunit      @g?g      ?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)strategy_idlabelsource
parametersr    r   r   _base_presetr0      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                      g| ddddg          }|j        dk    sJ |j        d         j        dk    sJ t          d |j        d         j        j        D                       sJ d S )Nr   d   r       _      a            X@Z   Y   )WLDBTC@T r<   )volumesexclude_coins)r<   r   c              3  ,   K   | ]}|j         d k    V  dS )r<   N)coin).0trades     r   	<genexpr>zMtest_coin_slice_replay_reports_without_single_coin_leakage.<locals>.<genexpr>)   s)      SSuuzU"SSSSSSr   )	r   r   r0   excluded_coinsresultsr+   all	aggregatetrades)candlesreports     r   :test_coin_slice_replay_reports_without_single_coin_leakagerM      s&   3C'!R..'!R..RYZ[]aRbRbc3C'!R..'!R..RYZ[]_R`R`a G
 #LNN#3Wi`iFjFj  |A  {B  C  C  CF H,,,,>!(F2222SSq0A0K0RSSSSSSSSSSr   c            	        dt          dd          t          dd          t          dd          t          dd          t          d	d
          gi} t          t                      | ddiddgddgdd          }t          |          d	k    sJ |d         j                            d          sJ d|d         j        v sJ d|d         j        v sJ d S )Nr=   r   r3   r    r4   r5   r6   r7   r8   r9   r>   g      @r      (   )r!   r%   r?   gridsegmentsbase__r!   r%   )r   r   r0   lenr+   
startswithr.   )rK   rG   s     r   ;test_parameter_sweep_clones_preset_with_stable_strategy_idsrW   ,   s    3C'!R..'!R..RYZ[]aRbRbcG "	"*-sSUWYRZ[[  G w<<11:!,,X66666$
(=====&'!**???????r   c            	     4   dt          dd          t          dd          t          dd          t          dd          t          d	d
          gi} t          t                      | ddiddgid          }t          |d          }d|v sJ d|v sJ d|v sJ d S )Nr=   r   r3   r    r4   r5   r6   r7   r8   r9   r>   r!   r   rQ   )top_nzParameter SweeprT   zparams=)r   r   r0   r   )rK   rG   rL   s      r   1test_parameter_sweep_report_contains_top_variantsrZ   ?   s    wq#3BQRTVY`abdhYiYijkG!,..'E9CU]vy|x}\~  JK  L  L  LG*7!<<<F&&&&vr   N)r
   r   r   r   r   r   )r   r	   )r   r1   )
__future__r   historical_replayr   r   r   r   strategy_registryr	   r   r0   rM   rW   rZ   r/   r   r   <module>r^      s    " " " " " " o o o o o o o o o o o o , , , , , ,o o o o   (
T 
T 
T 
T@ @ @ @&     r   