
    ]j	                    T    d dl mZ d dlZd dlmZ d dlmZ dddZddZddZ	ddZ
dS )    )annotationsN)Path)build_dashboard_snapshotpathr   strategy_idstrpnlslist[float]coinslist[str] | NonereturnNonec                   | j                             dd           |pg d}g }t          |          D ]{\  }}||t          |          z           }|                    t          j        d|dd|ddd	                     |                    t          j        d
||d|id                     ||                     d                    |          dz   d           d S )NT)parentsexist_ok)BTCETHSOLHYPEentryg      Y@      ?g      @)r   risk_usd)
event_typecoinpricesizeextraexitr   )r   r   realized_pnl_usdr   
zutf-8)encoding)	parentmkdir	enumeratelenappendjsondumps
write_textjoin)r   r   r	   r   linesipnlr   s           !tests/test_dashboard_scorecard.py_write_journalr/   	   s   KdT2222222EED//  3QU^$TZ!%0cBB!
 !
   	 	 	 	TZ  ##[1	!
 !
   	 	 	 	 	OODIIe$$t+gO>>>>>    tmp_pathc                "   | dz  }|dz  dz  }g ddz  }t          |dz  dz  d|           t          |          j        d	         }|j        j        d
k    sJ |j        j        dk    sJ |j        j        dk    sJ |j        j        dk    sJ d S )Nstateexperimentsbalanced_breakout)g?gffffff?皙ɿg333333?      ?皙   Tradeanalysetrade_journal.jsonlruntime_dirr   zLive-preview-ready   g      ?g      I@)r/   r   
paper_bots	scorecardstatussample_sizeprofit_factorcoin_leakage_pct)r1   runtimeexpr	   bots        r.   Etest_scorecard_marks_diversified_profitable_sample_live_preview_readyrH      s     G
M
!$7
7C+++a/D3'*??ATVZ[[[
"w
7
7
7
B1
EC=#77777=$****=&,,,,=)T111111r0   c                    | dz  }|dz  dz  }t          |dz  dz  dg d           t          |          j        d         }|j        j        d	k    sJ d
|j        j        v sJ d S )Nr3   r4   bad_mean_reversionr:   r;   )gٿr6   g?g333333ӿr8   r<   r   Blockedztotal PnL not positiver/   r   r?   r@   rA   reasonsr1   rE   rF   rG   s       r.   <test_scorecard_blocks_negative_strategy_after_minimum_samplerO   -   s     G
M
!$8
8C3'*??AUWtWtWtuuu
"w
7
7
7
B1
EC=9,,,,#s}'<<<<<<<r0   c                    | dz  }|dz  dz  }t          |dz  dz  dg d           t          |          j        d         }|j        j        d	k    sJ d
|j        j        v sJ d S )Nr3   r4   'candidate_v65_signal_sampler_aggressiver:   r;   )r   r7   r8   g?g333333?r<   r   Researchzresearch sampler / not championrL   rN   s       r.   9test_scorecard_keeps_tiny_or_research_samples_in_researchrS   8   s     G
M
!$M
MC3'*??Aj  mG  mG  mG  H  H  H
"w
7
7
7
B1
EC=:----,0EEEEEEEr0   )N)
r   r   r   r   r	   r
   r   r   r   r   )r1   r   r   r   )
__future__r   r'   pathlibr   	dashboardr   r/   rH   rO   rS    r0   r.   <module>rX      s    " " " " " "        . . . . . .? ? ? ? ?,2 2 2 2= = = =F F F F F Fr0   