Ë
    `u±j!
  ã                  ó4   — d Z ddlmZ ddlZddlmZ ddœd„Zy)zQFixed, opt-in close-triggered entry-loss replay for the preregistered experiment.é    )ÚannotationsN)Ú_score_to_signals)Úloss_fractionc               ó¼  — |dvrt        d«      ‚t        | ||||d¬«      }t        | «      }dD �ci c]  }|t        j                  |t
        ¬«      “Œ  }	}t        j                  |t        j                  «      |	d<   t        j                  |t        j                  «      |	d<   t        j                  |t        j                  «      |	d	<   d
\  }
}}t        j                  x}}t        |«      D �]/  }|
rÎ||k7  rt        |||   «      }t        |r|d   |   n|d   |   «      }t        |d   dkD  xr ||   |d|d   z
  z  k  «      }t        |duxr ||   |d|z
  z  k  «      }||	d   |<   ||	d   |<   ||	d   |<   ||	d   |<   ||	d   |<   |rd|z
  ||   |z  z
  dz  |	d	   |<   |d   |   ri|s|s|rcd|	d   |<   d
\  }
}}nT|d   |   rL|d   |   rDd}
d|	d   |<   ||   x}}|dz   }t        |d   xr |d   |   |d   k  «      }||	d   |<   ||	d   |<   |
|	d   |<   �Œ2 |	j                  «       D ]$  \  }}|dk(  r|j                  t        «      n|| |<   Œ& | S c c}w )zDPreserve canonical ordering and trail; None is the disabled control.)Ngš™™™™™¹?z7Only disabled control or preregistered 10% is supportedT)Úreturn_opportunities)ÚpositionÚexecute_entryÚexecute_exitÚscore_exit_flagÚtrailing_exit_flagÚentry_loss_flag)ÚdtypeÚentry_signal_closeÚ
trade_highÚentry_loss_overshoot_pct)FFéÿÿÿÿÚfallbackÚexitÚtrailr   é   Nr   r   r   éd   Útime_okr
   Úentryr	   Ú	dead_zoneÚ
score_exitÚexit_thresholdr   )Ú
ValueErrorr   ÚlenÚnpÚzerosÚboolÚfullÚnanÚrangeÚmaxÚitemsÚastypeÚint)ÚdfÚparamsÚ
stoch_peakÚcloseÚhighr   ÚopÚnÚkeyÚresultr   Úuse_rawÚfill_barÚentry_pricer   Útr   Ú
trail_exitÚ	loss_exitÚvaluess                       úD/Users/jameslopez/projects/TradingBot25/strategies/mlp_entry_loss.pyÚentry_loss_signalsr:   	   sê  € à˜LÑ(ÜÐRÓSÐSÜ	˜2˜v z°5¸$ÐUYÔ	Z€BÜˆB‹€Añ71ó 2ñ 71¨sˆc”2—8‘8˜A¤TÔ*Ñ*ð 71€Fð 2ô $&§7¡7¨1¬b¯f©fÓ#5€FÐÑ ÜŸ7™7 1¤b§f¡fÓ-€Fˆ<ÑÜ)+¯©°´B·F±FÓ);€FÐ%Ñ&Ø"2Ñ€Hˆg�xÜ!Ÿv™vÐ%€K�*Ü�1�XˆÙØ�HŠ}Ü  ¨T°!©WÓ5�
Ü±7˜b ™n¨QÒ/ÀÀ6Á
È1ÁÓNˆJÜ˜b ™k¨A™oÒ\°%¸±(¸jÈAÐPRÐSZÑP[ÉOÑ>\Ñ2\Ó]ˆJÜ˜]°$Ð6Òh¸5À¹8À{ÐVWÐZgÑVgÑGhÑ;hÓiˆIØ.9ˆFÐ'Ñ(¨Ñ+Ø&0ˆF�<Ñ  Ñ#Ø+5ˆFÐ$Ñ% aÑ(Ø.8ˆFÐ'Ñ(¨Ñ+Ø+4ˆFÐ$Ñ% aÑ(ÙØ9:¸]Ñ9JÈUÐSTÉXÐXcÑMcÑ9cÐgjÑ8j�Ð1Ñ2°1Ñ5Ø�)‰}˜QÒ¡Z±:ÁØ,0��~Ñ& qÑ)Ø.>Ñ+�˜'¡8Ø�‰[˜Š^  9¡¨aÒ 0ØˆHØ)-ˆF�?Ñ# AÑ&Ø',¨Q¡xÐ/ˆK˜*Ø˜1‘uˆHÜ˜2˜k™?ÒY¨r°,Ñ/?ÀÑ/BÀRÐHXÑEYÑ/YÓZˆGØ.9ˆFÐ'Ñ(¨Ñ+Ø&0ˆF�<Ñ  Ñ#Ø (ˆˆzÑ˜1Óð3 ð4 —|‘|–~‰ˆˆVØ(+¨zÒ(9�&—-‘-¤Ô$¸vˆˆ3Šð &à€IùòI2s   °#I)Ú__doc__Ú
__future__r   Únumpyr   Ústrategies.strategy_mlp_scoresr   r:   © ó    r9   Ú<module>rA      s   ðÙ WÝ "ã å <ð NRõ *r@   