
    jl                     <    d dl Z d dlmZmZ d Zd Zd Zd Zd ZdS )    N)datetimetimezonec                 t    |                      d                    d |D                       dz   d           d S )N
c              3   >   K   | ]}t          j        |          V  d S )N)jsondumps).0es      tests/test_signal_correlation.py	<genexpr>z_write_jsonl.<locals>.<genexpr>   s*      <<djmm<<<<<<    zutf-8)encoding)
write_textjoin)patheventss     r   _write_jsonlr      s>    OODII<<V<<<<<tCgOVVVVVr   c                    ddl m} | dz  }| dz  }t          |ddddgd	d
diddddddgdd
didddddgdd
didg           t          |dddddddddddd ddd!d"d#g            |||          }t          |j                  dk    sJ |j        d         }|j        dk    sJ |j        d$k    sJ |j        d"k    sJ |j        d!k    sJ |j	        d%k    sJ d S )&Nr   correlate_trades_with_contexttrade_journal.jsonlmarket_context.jsonlmarket_context2026-01-01T10:00:00+00:00BTC
trend_downgffffff?rsi_14-   
event_typetscointagsreliability_score
indicators2026-01-01T10:10:00+00:00trend_upoi_available?>   2026-01-01T10:20:00+00:00ETHrsi_oversold皙?   entryz2026-01-01T10:12:00+00:00d      Fflash_crash)r!   r"   r#   pricesizedry_runreasonexitz2026-01-01T10:40:00+00:00n   TRAIL
   )r!   r"   r#   r5   r6   r7   r8   realized_pnl_usd)r(   r)      )
signal_correlationr   r   lenmatchesr#   context_tagsr=   exit_reasontime_in_trade_minutes)tmp_pathr   journalcontextresultmatchs         r   -test_match_entries_to_previous_market_contextrJ   	   s   @@@@@@..G//G'/JTYdpcq  IL  ]e  gi  \j  	k  	k'/JTYdnp~c  WZ  ks  uw  jx  	y  	y'/JTYdrcs  KN  _g  ik  ^l  	m  	m   
 &A5[^hiv{  HU  	V  	V%@%Z]ghuz  GN  df  	g  	g   
 +*7G<<Fv~!####N1E:!=====!R''''''''&",,,,,,r   c                    ddl m} | dz  }| dz  }t          |ddddgd	i d
dddddgdi d
g           t          |ddddddddddddddddddddddddddddddddg            |||          }|j        d         j        dk    sJ |j        d         j        d k    sJ |j        d         j        d!k    sJ |j        d         j        dk    sJ |j        d         j        d"k    sJ d S )#Nr   r   r   r   r   r   r   r(   r*   r    z2026-01-01T11:00:00+00:00r-   r.   r/   r1   2026-01-01T10:05:00+00:00r2   r3   Fr!   r"   r#   r5   r6   r7   r9   r'   e   BEr!   r"   r#   r5   r6   r7   r=   r8   z2026-01-01T11:05:00+00:00z2026-01-01T11:20:00+00:00b   SL   g      ?g      g        )r?   r   r   	tag_statssample_sizewin_rateavg_pnl_usdrE   r   rF   rG   rH   s        r   ,test_tag_stats_aggregate_winrate_and_returnsrZ   #   s   @@@@@@..G//G'/JTYdnco  GJ  Z\  	]  	]'/JTYdnp~c  WZ  jl  	m  	m    &A5[^hiv{||%@%Z]ghuz  QR  ^b  	c  	c&A5[^hiv{||%@%Z\fgty  PR  ^b  	c  	c	    +*7G<<FJ'3q8888J'0C7777J'3t;;;;N+71<<<<N+4;;;;;;r   c                     ddl m}m} | dz  }| dz  }t          |ddddgd	i d
g           t          |ddddddddddddddddg            |||          } ||d          }d|v sJ d|v sJ d|v sJ d S )Nr   )r   render_correlation_reportr   r   r   r   r   r(   r*   r    r1   rL   r2   r3   FrM   r9   r,   f   rT   r;   rP      )min_sampleszObservation onlyu   keine Strategieänderung)r?   r   r\   r   )rE   r   r\   rF   rG   rH   reports          r   6test_report_is_observational_until_minimum_sample_sizera   <   s;   [[[[[[[[..G//G*:B]gl  xB  wC  Z]  mo  p  p  q  r  r  r&A5[^hiv{||%@%Z]ghuz  QR  ^e  	f  	f   
 +*7G<<F&&v1===F''''%////r   c           
          ddl m} | dz  }| dz  }t          |ddddgd	i d
g           t          |dddddddg            |||          }|j        dk    sJ |j        dk    sJ |j        g k    sJ d S )Nr   r   r   r   r   r   r   r(   r*   r    r1   rL   r2   r3   FrM   )r?   r   r   closed_trade_countopen_entry_countrA   rY   s        r   6test_open_entries_are_excluded_from_closed_trade_statsre   O   s	   @@@@@@..G//G*:B]gl  xB  wC  Z]  mo  p  p  q  r  r  r'9T^cnq{|  JO  P  P  Q  R  R  R**7G<<F$))))"a''''>Rr   )r   r   r   r   rJ   rZ   ra   re    r   r   <module>rg      s~     ' ' ' ' ' ' ' 'W W W- - -4< < <2     &         r   