
    ?j                     \    d dl mZ d dlmZmZmZ d dlmZmZmZm	Z	 d Z
d Zd Zd Zd Zd	S )
    Decimal)datetimetimezone	timedelta)Candleassess_entryassess_exitrsic                 r   t          t          dddt          j                  t	          d| z            z   t          t          |                    t          t          |                    t          t          |                    t          t          |                    t          d                    S )Ni     )tzinfo   )minutes1000)r   r   r   utcr   r   str)iohlcloses        #tests/test_trade_timing_analysis.pycr      s    (4Ahl;;;iPRSTPT>U>U>UUW^_bcd_e_eWfWfhopstupvpvhwhw  zA  BE  FG  BH  BH  zI  zI  KR  SV  W\  S]  S]  K^  K^  `g  hn  `o  `o  p  p  p    c            
      n   t          ddddd          t          ddddd          t          ddd	dd
          t          dd
ddd          g} t          ddddd          t          ddddd          g}t          t          d          | |          }d|d         v sJ d|d         v sJ |d         dk    sJ d S )Nr   d   e   c   r   g   f      h        Y@   i   g      Z@   g,Z@gfffffY@33333Y@         Z@gY@g     Y@z104.5"entry_likely_chased_after_pre_moveflags&entry_poor_immediate_adverse_excursionqualitybad)r   r	   r   prepostresults      r   6test_entry_flags_chased_pre_move_and_adverse_excursionr4      s    QS"c""Aac3$<$<a3SRW>X>XZ[\]_dfiknpuZvZv
wCaue,,a5%.N.NOD''**C66F/6'?BBBB3vgFFFF)%%%%%%r   c                      d t          d          D             } t          ddddd          t          dddd	d
          g}t          t          d          | |          }d|d         v sJ |d         dk    sJ d S )Nc                 P    g | ]#}t          |d ddd |dz  dk    rdndz             $S )r   g33333Y@g33333X@r"   r   g{Gz?g{Gzr   .0r   s     r   
<listcomp>z2test_entry_good_follow_through.<locals>.<listcomp>   s=    
\
\
\Q1QUD#Q!"GHH
\
\
\r      r!   r$   gyY@r       r#   g33333Y@gY@102entry_good_follow_throughr,   r.   good)ranger   r	   r   r0   s      r   test_entry_good_follow_throughrA      s    
\
\RWXZR[R[
\
\
\Cb#ueS))1Rc5%+H+HID'%..#t44F&&/9999)&&&&&&r   c                      d t          d          D             } t          ddddd          t          dddd	d
          g}t          t          d          | |d          }d|d         v sJ |d         dk    sJ d S )Nc                 p    g | ]3}t          |d |dz  z   d |dz  z   dz   d|dz  z   d |dz  z   dz             4S )r   g?g?r   r7   r8   s     r   r:   zTtest_exit_flags_too_early_when_followthrough_after_profit_target.<locals>.<listcomp>   sP    
V
V
Vq1QAcE	3qu9S="QsU(C#IcMBB
V
V
Vr   r;   r!   r$   g33333sY@gY@r<   r*   r    r(   r=   profit_target#exit_too_early_missed_followthroughr,   r.   r/   )r@   r   r
   r   r0   s      r   @test_exit_flags_too_early_when_followthrough_after_profit_targetrF      s    
V
VERTII
V
V
VCb#ueU++Qr5%e-L-LMDdODDF0F7OCCCC)%%%%%%r   c                  ~    d t          dd          D             } t          |           t          d          k    sJ d S )Nc                 ,    g | ]}t          |          S  r   r8   s     r   r:   zCtest_rsi_returns_high_value_on_consistent_gains.<locals>.<listcomp>%   s    ///Qgajj///r   r   r;   100)r@   r   r   )valuess    r   /test_rsi_returns_high_value_on_consistent_gainsrL   $   s@    //%2,,///Fv;;'%..((((((r   N)decimalr   r   r   r   src.tools.analyze_trade_timingr   r	   r
   r   r   r4   rA   rF   rL   rI   r   r   <module>rO      s          2 2 2 2 2 2 2 2 2 2 Q Q Q Q Q Q Q Q Q Q Q Qp p p& & &' ' '& & &) ) ) ) )r   