
    j                     H    S r SSKrSSKrSSKJr  SSKJrJr   " S S5      rg)uw   
V11 — Logger: CSV para momentum taker.

Más simple que V10: solo trades y windows (sin quotes ni fills separados).
    N)Path   )Config
write_jsonc                   B    \ rS rSrS\4S jrS rS rS rS\	4S jr
S	rg
)Logger   cfgc                 d    Xl         UR                  R                  SSS9  U R                  5         g )NT)parentsexist_ok)r
   log_dirmkdir_init_csv_files)selfr
   s      /var/www/html/Poly/v12/logger.py__init__Logger.__init__   s*    $6    c                    U R                   nUR                  R                  5       (       dE  [        UR                  SSS9 n[        R
                  " U5      R                  / SQ5        S S S 5        UR                  R                  5       (       dF  [        UR                  SSS9 n[        R
                  " U5      R                  / SQ5        S S S 5        g g ! , (       d  f       Nt= f! , (       d  f       g = f)Nw newline)tsslugsidepricesizecostmove_pctoutcome	pnl_grossfeepnl_net)r   r   start_tsend_tsstrikeprice_finalr"   r   entry_pricer   r!   r#   r$   r%   )r
   
trades_csvexistsopencsvwriterwriterowwindows_csv)r   cfs      r   r   Logger._init_csv_files   s    HH||""$$allC4

1&& (  5
 }}##%%ammS"5

1&& (  65 & 54 65s   (C%(C(
C%(
C6c                    [        U R                  R                  SSS9 n[        R                  " U5      R                  [        [        R                  " 5       5      X[        US5      [        US5      [        US5      [        US5      U[        US5      [        U	S5      [        U
S5      /5        S S S 5        g ! , (       d  f       g = fNar   r         )	r-   r
   r+   r.   r/   r0   inttimeround)r   r   r   r   r   r    r!   r"   r#   r$   r%   r3   s               r   	log_tradeLogger.log_trade"   s    $((%%sB71JJqM""DIIK $eQtQtQh"Gi#U3]E'14E	$  877s   BB;;
C	c                 <   [        U R                  R                  SSS9 n[        R                  " U5      R                  [        [        R                  " 5       5      UR                  UR                  UR                  UR                  (       a  [        UR                  S5      OS[        US5      UU=(       d    S[        US5      [        US5      [        US5      [        US5      [        U	S5      [        U
S5      /5        S S S 5        g ! , (       d  f       g = fr6   )r-   r
   r1   r.   r/   r0   r:   r;   r   r&   r'   r(   r<   )r   mr)   r"   r   r*   r   r!   r#   r$   r%   r3   s               r   
log_windowLogger.log_window,   s     $((&&R8AJJqM""DIIK !&&!**ahh&'hhahh"Bk1%
E+q15q>h"i#U3]E'14E$  988s   C$D
Ddatac                 D    [        U R                  R                  U5        g )N)r   r
   
state_json)r   rC   s     r   write_stateLogger.write_state:   s    488&&-r   )r
   N)__name__
__module____qualname____firstlineno__r   r   r   r=   rA   dictrF   __static_attributes__ r   r   r   r      s)    F 
". .r   r   )	__doc__r.   r;   pathlibr   configr   r   r   rN   r   r   <module>rR      s   
   &0. 0.r   