Ë
    Iå®j�  ã                   óp   — d dl Z d dlmZ  G d„ de j                  «      Zedk(  r e j                  «        yy)é    N)ÚPaperTraderc                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚPaperTraderTestsc                 óÄ   — t        ddd¬«      }|j                  ddi«      }| j                  |d   d«       | j                  |d   i «       | j                  |d	   d«       y )
Né'  é   é   )ÚcashÚfast_windowÚslow_windowúBTC/USDéd   r
   Ú	positionsÚequity)r   ÚsnapshotÚassertEqual)ÚselfÚtraderÚstates      ú$/root/workspace/test_paper_trader.pyÚ.test_starts_with_virtual_cash_and_no_positionsz?PaperTraderTests.test_starts_with_virtual_cash_and_no_positions   s`   € Ü &°aÀQÔGˆØ—‘ ¨CÐ 0Ó1ˆØ×Ñ˜˜v™¨Ô/Ø×Ñ˜˜{Ñ+¨RÔ0Ø×Ñ˜˜x™¨&Õ1ó    c                 ó  — t        dddd¬«      }dD ]  }|j                  d|«       Œ |j                  ddi«      }| j                  |d	   d   d
   d«       | j	                  |d   d   d   d«       | j                  |d   d«       y )Nr   r   r	   ç      à?©r
   r   r   Ú
allocation)r   r   én   éx   r   r   r   Úquantityr   ÚtradesÚsideÚbuyr
   )r   Ústepr   ÚassertGreaterr   Ú
assertLess©r   r   Úpricer   s       r   Ú7test_buys_after_fast_average_crosses_above_slow_averagezHPaperTraderTests.test_buys_after_fast_average_crosses_above_slow_average   s’   € Ü &°aÀQÐSVÔWˆØ)ò 	*ˆEØ�K‰K˜	 5Õ)ð	*à—‘ ¨CÐ 0Ó1ˆØ×Ñ˜5 Ñ-¨iÑ8¸ÑDÀaÔHØ×Ñ˜˜x™¨Ñ+¨FÑ3°UÔ;Ø�‰˜˜f™ vÕ.r   c                 ó  — t        dddd¬«      }dD ]  }|j                  d|«       Œ |j                  ddi«      }| j                  |d	   i «       | j                  |d
   d   d   d«       | j	                  |d   d«       y )Nr   r   r	   r   r   )r   r   r   r   éP   éF   r   r+   r   r    éÿÿÿÿr!   Úsellr
   )r   r#   r   r   r%   r&   s       r   ÚAtest_sells_position_after_fast_average_crosses_below_slow_averagezRPaperTraderTests.test_sells_position_after_fast_average_crosses_below_slow_average   s‡   € Ü &°aÀQÐSVÔWˆØ1ò 	*ˆEØ�K‰K˜	 5Õ)ð	*à—‘ ¨B Ó0ˆØ×Ñ˜˜{Ñ+¨RÔ0Ø×Ñ˜˜x™¨Ñ,¨VÑ4°fÔ=Ø�‰˜˜f™ vÕ.r   N)Ú__name__Ú
__module__Ú__qualname__r   r(   r.   © r   r   r   r      s   „ ò2ò/ó/r   r   Ú__main__)ÚunittestÚpaper_traderr   ÚTestCaser   r/   Úmainr2   r   r   ú<module>r8      s7   ðÛ å $ô/�x×(Ñ(ô /ð6 ˆzÒØ€H‡M�M…Oð r   