§
    è—áj±  ã                   óB   — d Z ddlmZmZ eZd„ Zdd„Zdd„Zdd	„Zd
„ ZdS )zLAlphaBot's Decimal-only monthly momentum policy and permanent floor ratchet.é    )ÚDecimalÚlocalcontextc                 óÀ   — t          | t          t          f¦  «        rt          d¦  «        ‚t	          | ¦  «        } |                      ¦   «         st          d¦  «        ‚| S )Nz<economic inputs must be decimal strings, integers or Decimalznonfinite economic input)Ú
isinstanceÚfloatÚboolÚ
ValueErrorÚDÚ	is_finite)Úvalues    úU/Users/bpa/Desktop/ForesixaQuant/FinBot_Century_Gauntlet/alphabot-v1/host_strategy.pyÚdecimalr      sY   € Ý�%�%¥˜Ñ'Ô'ð YÝÐWÑXÔXÐXÝˆe‰HŒH€EØ�?Š?ÑÔð 5ÝÐ3Ñ4Ô4Ð4Ø€Ló    Ú250c                 óV  — t          t          | |||f¦  «        \  }}}}|dk     s|dk     s|dk     s|dk     rt          d¦  «        ‚t          d¦  «        t	          t          d¦  «        |¦  «        }	}||k    rt	          |	|dz  ¦  «        }	|dz  }||k    °t	          |	||z
  ¦  «        |	fS )a—  Retain the original acquisition-cost protection AND permanent milestone floor.

    Asset cost includes entry fees (or a disclosed conservative fee reserve).
    $1k/$2k/$4k peaks establish $500/$1k/$2k milestone floors. The permanent
    milestone ratchet is distinct from the changing starting-capital-minus-cost term.
    previous_floor must be the persisted milestone floor, not that changing term.
    r   éú   zinvalid floor inputsÚ1000r   é   )Úmapr   r	   r
   Úmax)
Ústarting_capitalÚ
asset_costÚpeak_equityÚprevious_floorÚstartÚcostÚpeakÚpreviousÚ	milestoneÚratchets
             r   Úcapital_floorr!      sÊ   € õ #&¥gØ	˜: {°NÐCñ#Eô #EÑ€Eˆ4��xàˆq‚y€y�D˜1’H�H  q¢ ¨H°sªN¨NÝÐ/Ñ0Ô0Ð0Ý˜6™œ¥C­¨%©¬°(Ñ$;Ô$;ˆw€IØ
�)Ò
Ð
Ý�g˜y¨1™}Ñ-Ô-ˆØ�Q‰ˆ	ð �)Ò
Ð
õ ˆw˜ ™Ñ%Ô% wÐ.Ð.r   ú0.95c                 óü   — t          |¦  «        }t          | ¦  «        t          us| dk     sd|cxk     rdk     sn t          d¦  «        ‚t	          ¦   «         5 }d|_        || z  cd d d ¦  «         S # 1 swxY w Y   d S )Nr   é   zinvalid lesson decay/counté2   )r   ÚtypeÚintr	   r   Úprec)Úlesson_countÚdecayÚctxs      r   Úrisk_multiplierr,   $   sÉ   € Ý�E‰NŒN€EÝˆLÑÔ¥Ð$Ð$¨°qÒ(8Ð(8ÀÀEÀÀÂÀÈAÂÀÀÀÝÐ5Ñ6Ô6Ð6Ý	‰Œð %˜3ØˆŒØ˜Ñ$ð%ð %ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s   ÁA1Á1A5Á8A5Ú1c                 óÀ   — t          t          | ||f¦  «        \  } }}t          | ||¦  «        dk    rt          d¦  «        ‚| |z  }|t	          ||z
  ¦  «        |z  dz  fS )Nr   z target and fill must be positiveéd   )r   r   Úminr	   Úabs)Ú	referenceÚfillÚtarget_multiplierÚ
multiplierÚtargets        r   Útarget_deviationr7   -   sq   € Ý"%¥g°	¸4ÐARÐ/SÑ"TÔ"TÑ€Iˆt�ZÝ
ˆ9�d˜JÑ'Ô'¨1Ò,Ð,ÝÐ;Ñ<Ô<Ð<Ø˜Ñ#€FØ•3�t˜f‘}Ñ%Ô%¨Ñ.°Ñ4Ð4Ð4r   c                 ó`  — |                       d¦  «        }|�t          |¦  «        dk     rdddœS |€dddœS d	„ |                       d
g ¦  «        D ¦   «         }t          |¦  «        dk    rdddœS |                       d¦  «        |                       d¦  «        k    rdddœS t          |dd…         t	          d¦  «        ¦  «        dz  }t          | d         | d         ¦  «        }|d         |k    rdddœS t          | d         ¦  «        t	          d¦  «        z  |z  }|dk    rdddœS d|d||dœS )z7No signal is invented when monthly data is unavailable.ÚtoneNéûÿÿÿÚ	liquidateÚ"geopolitical_tone_below_minus_five)ÚactionÚreasonÚholdÚgeopolitical_tone_unknownc                 ó,   — g | ]}t          |¦  «        ‘ŒS © )r   )Ú.0Úvs     r   ú
<listcomp>zdecide.<locals>.<listcomp><   s   € Ð<Ð<Ð<˜Q�g�a‰jŒjÐ<Ð<Ð<r   Úindproé   Ú/four_consecutive_visible_INDPRO_months_requiredÚmonthÚlast_entry_monthÚmonthly_entry_already_consumedé   Ú0r)   Úlesson_risk_decayÚ!INDPRO_not_above_prior_three_meanÚcashz0.20r   Úno_positive_cash_budgetÚbuyÚINDPRO_above_prior_three_mean)r=   Úbudgetr>   Ú
prior_meanr,   )Úgetr   ÚlenÚsumr
   r,   )Úcontextr9   ÚvaluesÚmeanr5   rT   s         r   Údecider\   5   so  € à�;Š;�vÑÔ€DØÐ�G D™MœM¨BÒ.Ð.Ø%Ð1UÐVÐVÐVØ€|Ø Ð,GÐHÐHÐHØ<Ð< '§+¢+¨h¸Ñ";Ô";Ð<Ñ<Ô<€FÝ
ˆ6�{„{�aÒÐØ Ð,]Ð^Ð^Ð^Ø‡{‚{�7ÑÔ˜wŸ{š{Ð+=Ñ>Ô>Ò>Ð>Ø Ð,LÐMÐMÐMÝˆv�b�q�bŒz�1˜S™6œ6Ñ"Ô" QÑ&€DÝ  ¨Ô!8¸'ÐBUÔ:VÑWÔW€JØˆa„y�DÒÐØ Ð,OÐPÐPÐPÝ�W˜V”_Ñ%Ô%­¨&©	¬	Ñ1°JÑ>€FØ�‚{€{Ø Ð,EÐFÐFÐFØ vØ5ÀTØ)ð+ð +ð +r   N)r   )r"   )r-   )	Ú__doc__r   r   r   r
   r!   r,   r7   r\   rB   r   r   ú<module>r^      sŒ   ðà RÐ RØ )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à€ðð ð ð/ð /ð /ð /ð&%ð %ð %ð %ð5ð 5ð 5ð 5ð+ð +ð +ð +ð +r   