
    {Aj	                    j    d dl mZ d dlZd dlmc mZ d dlZd dl	m
Z
 d dlmZmZ ddZd Zd Zd ZdS )    )annotationsN)Path)summarize_strategy_performancerecommend_strategy_actionspathr   rowdictreturnNonec                    | j                             dd           |                     dd          5 }|                    t	          j        |          dz              d d d            d S # 1 swxY w Y   d S )NT)parentsexist_okazutf-8)encoding
)parentmkdiropenwritejsondumps)r   r   fhs      a/home/agent/projects/CryptoTradingBot/Crypto_Agent/tests/test_tradingview_strategy_performance.py_appendr   	   s    KdT222	3	)	) )R
C4'((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   +A,,A03A0c                `   | dz  dz  dz  }t          |ddddd           t          |dddd	d           t          |dd
ddd           t          |           }|d         d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         d         d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         d         d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         d         d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         d         d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d S )Nexperimentstradingview_paper_bridgetrade_journal.jsonl
paper_exitgaussian_channel_v1BTC0.50eventstrategy_idcoinnet_pnl_usdz-0.10squeeze_breakout_1hETH0.20overallclosed_trades   ==z%(py1)s == %(py4)spy1py4assert %(py6)spy6r'   z0.60
strategies   wins   winrate_pctz50.00coinsz0.40)r   r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanation)tmp_pathjournalsummary@py_assert0@py_assert3@py_assert2@py_format5@py_format7s           r   4test_strategy_performance_summarizes_winrate_and_pnlrI      s   &)CCF[[GG|<Q[`qwxxyyyG|<Q[`qxyyzzzG|<Q[`qwxxyyy,X66G9o.3!3.!3333333333.!33333.3333!3333333333333333333333333339m,66,6666666666,66666,6666666666666666666666666666666< !67HMAMHAMMMMMMMMMMHAMMMMMHMMMMAMMMMMMMMMMMMMMMMMMMMMMMMMMM< !67?D1D?1DDDDDDDDDD?1DDDDD?DDDD1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< !67FQ'QF'QQQQQQQQQQF'QQQQQFQQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQ7E"=1;V;1V;;;;;;;;;;1V;;;;;1;;;;V;;;;;;;;;;;;;;;;;;;;;;;;;;;;;    c                   | dz  dz  dz  }t          |ddddd           t          |           }t          |d	
          }|d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d S )Nr   r   r   r   small_sampler!   r"   r#   r-   min_closed_tradescontinue_paper_too_few_tradesr.   r0   r1   r4   r5   )r   r   r   r<   r=   r>   r?   r@   )	rA   rB   rC   recsrD   rE   rF   rG   rH   s	            r   ?test_strategy_recommendation_requires_sample_size_before_shadowrQ      s   &)CCF[[GG|NTYjpqqrrr,X66G%gCCCDB#BB#BBBBBBBBBBB#BBBBBBBBBB#BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBrJ   c           	        | dz  dz  dz  }t          g d          D ]\  }}t          |ddd|d           t          g d	          D ]\  }}t          |dd
d|d           t          t          |           d          }|d         }d}||k    }|slt	          j        d|fd||f          t	          j        |          t	          j        |          dz  }dd|iz  }	t          t	          j        |	                    d x}x}}|d
         }d}||k    }|slt	          j        d|fd||f          t	          j        |          t	          j        |          dz  }dd|iz  }	t          t	          j        |	                    d x}x}}d S )Nr   r   r   )z0.30r*   z0.10r   goodr!   r#   )z-0.30z-0.20z0.01badSOLr-   rM   shadow_candidate_not_liver.   r0   r1   r4   r5   pause_or_rework)		enumerater   r   r   r<   r=   r>   r?   r@   )
rA   rB   ipnlrP   rD   rE   rF   rG   rH   s
             r   Ctest_strategy_recommendation_flags_positive_and_negative_strategiesr[   )   s   &)CCF[[G44455 l l3<PUfijjkkkk66677 k k3<uehiijjjj%&DX&N&NbcdddD<666<66666666666<666666<66666666666666666666666666666666;+++;+++++++++++;++++++;++++++++++++++++++++++++++++++++++rJ   )r   r   r   r	   r
   r   )
__future__r   builtins@py_builtins_pytest.assertion.rewrite	assertionrewriter<   r   pathlibr   *src.tools.tradingview_strategy_performancer   r   r   rI   rQ   r[    rJ   r   <module>re      s    " " " " " "                     q q q q q q q q) ) ) )< < < C C C
, 
, 
, 
, 
,rJ   