
    Y}%jU                    J   d Z ddlmZ ddlZddlZddlZddlZddlm	Z	  e	e
                                          j        Zedz  Zedz  Zedz  Zedz  Zd	Zd
Z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!d"d#d#d$d%d&d'd(d)d*d+d,dd-d.d.d/d0d1d2d3d4d5d6d7dd8d9d9d:d;d<d=d>d?d*d+d@ddAdBdBdCdDdEdFdGdHdId+dJddKdLdLdMdNdOdPdQdRdSd6dTddUZdVddWg g dXdYZdZd[d\d]d^d_d`dad\d]d^d_gdbd[d\d]dcd_dddad\d]dcd_gded[d\d]dfd_gdgZddhdidjdkdld9dmdndodpd*dqdBdrdngdsdtduddvdidjdwdld9dmdndxdyd*dlddrdngdzdtdudd{didjdkd|ddrdnd}d~ddddrdngddtduddddddddrdngddduddg ddduddg ddduddg dddudZddZddZddZddZdddZddZddZddZddZ ddZ!ddZ"e#dk    r e$ e"                      dS )zPRefresh live_account_state.json from the current positions CSV and target rules.    )annotationsN)Pathz1current_positions_from_screenshots_2026-06-07.csvzlive_account_state.jsonzlive_account_state.jszweekend_flow_state.jsoni7i@g     A@g     B@g(\oE@g      ?@HOLD_TO_REBOUND_TRIMu   T1 25-35% 축소   zTEMA Space Innovation ETFu
   우주 ETFSPACEu~   SpaceX 노출 기대는 유지하되 이벤트 프리미엄이 커서 T1부터 현금화. 강한 장이면 T2까지 잔여만.)t1t2
hold_until
prior_highinvalidaction	action_koprioritynamebucketflow_keynoteg     4@g     6@g      9@g     1@"CONDITIONAL_HOLD_TO_ANALYST_TARGETu   $25 조건부 홀드   Redwireu   우주 고베타u   사용자 입력 단기 애널리스트 목표가 $25를 상단 시나리오로 반영. 단, 프리마켓 갭다운/희석성 뉴스/우주 테마 약세면 T1-T2에서 먼저 현금화.)r   r	   r
   analyst_targetr   r   r   r   r   r   r   r   r   g      @g     P@gHz@g     @HOLD_QUALITY_CHECKu   T1 유지, T2 일부 익절   Micronu	   반도체SEMISux   HBM/메모리 구조는 강하지만 금요일 반도체 청산이 컸음. SMH 회복 동반 시 T2까지 보유 가능.g      g@g     `h@g\(i@g     d@
TRIM_FIRSTu   T1 정리 우선   zApplied Optoelectronicsu   소형 고베타RISK_ONub   소형 광통신 고베타. 시장이 강하지 않으면 T1 반등을 현금화 기회로 사용.g     }@g     @@gGz}@g     {@HOLD_OR_SMALL_TRIMu   T1 유지, T2 일부 축소   AMDuo   부계좌 보유라 레버리지 대체 불가. 반도체 리더십 회복 시 유지, 약하면 T2 전 축소.g     q@g     r@gGzq@g     @p@HOLD_RELATIVE_STRENGTHu   상대강도 홀드   Marvellu   반도체/AI 인프라uk   AI 인프라 상대강도 후보. 단 Broadcom발 repricing이 이어지면 260 이탈을 엄격히 본다.gffffff @gffffff@gp=
ף @g      ?CLEANUPu   정리 가능   Genentau   소형 바이오u?   계좌 영향 작음. 복잡도 제거 목적의 정리 후보.)NASARDWMUAAOIr!   MRVLGNTA   대기uI   무료 주말 플로우 데이터가 아직 갱신되지 않았습니다.uI   Hyperliquid/Binance 무료 공개 API만 사용. 유료 데이터 없음.)statusrisk_on_scoresummarydirect_coverageproxiessource_noteAMUUDirexionLONG_2Xz200%u   AMD 일일 +2배)tickerprovider	directiondaily_targetr   AMDLGraniteSharesMUUu   MU 일일 +2배MULLMRVUu   MRVL 일일 +2배)r!   r*   r,   u   Vivek Arya/BofA가 TipRanks 공개 기사 기준 Buy 유지 및 목표가 $500 상향. AI 반도체 top-pick basket에 AMD 포함.z
Vivek AryazBofA Securitiesu   AI 반도체Buyu   상)r   firmstrengthratingtarget
confidencezHarsh KumarzPiper Sandleru   Buy/Overweight 계열u   중uh   AMD 2배 후보는 감시 우선. T1 회복 후 거래량이 붙으면 단일 2배 후보 승격 가능.u'   TipRanks/StockAnalysis 공개 페이지scorer1   analystsaction_impactsourceu}   Vivek Arya/BofA가 TipRanks 공개 기사 기준 Buy 유지 및 목표가 $500 제시. HBM/메모리 구조적 강세 논리.u   AI 반도체/메모리zVijay RakeshMizuhou   MU는 원주식 반등 확인 우선. 목표가가 현재 화면 가격보다 낮으면 가격 단위/분할/데이터 확인 전 2배 진입 금지.u   Vivek Arya/BofA의 AI chip top-pick basket에 MRVL 포함. 다만 종목별 최신 목표가/적중률은 추가 확인 필요.zTop-pick basketzQuinn BoltonNeedhamu   반도체/장비Watchug   MRVL은 현재 단일 2배 감시 1순위. 단, 정규장 초반 상대강도 확인 전 진입 금지.u   사용자 입력 단기 상단 $25는 유지하되, TipRanks 공개 forecast 평균 목표가는 $17.60으로 낮아 상단 시나리오 신뢰도 감점.zTipRanks consensusTipRanksu   공개 컨센서스zMixed/Watchg1@uq   RDW $25는 강한 뉴스/프리마켓/우주 테마 동반 회복 때만. 평상시에는 T1/T2 현금화 우선.u   TipRanks 공개 forecastu   ETF 구조상 단일 애널리스트 목표가보다 구성종목/우주 테마/SpaceX 이벤트 프리미엄을 우선 반영.uI   개별 애널 목표보다 테마 프리미엄과 유동성으로 판단.u   내부 전술 규칙uk   상위 TipRanks 애널리스트 공개 신호가 아직 충분하지 않아 차트/섹터/유동성 중심.u=   소형 고베타라 애널 신호보다 가격 행동 우선.u   데이터 부족uu   상위 TipRanks 애널리스트 공개 신호가 부족하고 계좌 영향도 작아 정리/복잡도 축소 후보.u(   기회비용 관점에서 정리 가능.)r!   r*   r,   r)   r(   r+   r-   rE   floatcurrentreturnc                4    t          | |z  dz
  dz  d          S )Nr   d   round)rE   rR   s     $outputs/update_live_account_state.pypctrY   w   s!    &7"Q&#-q111    	value_krwintc                2    t          | ||z  dz
  z            S )Nr   rV   )r[   rE   rR   s      rX   gainr^   {   s    fw.23444rZ   valuelowhighc                >    t          |t          ||                     S )N)maxmin)r_   r`   ra   s      rX   clampre      s    sCe$$%%%rZ   strc                6    | dk    rdS | dk    rdS | dk    rdS dS )N<   u   높음(   u   중립+   u	   조건부u   낮음 )r_   s    rX   probability_labelrl      s1    {{x{{y{{{8rZ   r
   
flow_scorer   analyst_scorec           	         t          || z  dz
  dz  d          }d|dz  z
  |dz  z   |dz  z   }d|v r|d	z  }d
|v sd|v r|dz  }t          t          t          |dd                              S )Nr   rU   r   4   gffffff?g      @g      @HOLDr   TRIMr%   r       J   )rc   r\   rW   re   )rR   r
   rm   r   rn   distancebases          rX   build_breakout_probabilityrw      s    J(1,3Q77H4*s"22]S5HHD	9..	uU4B''(()))rZ   dictc                     t                                           st          S 	 t          j        t                               d                    } n# t          j        $ r
 t          cY S w xY wi t          | S )Nutf-8encoding)WEEKEND_FLOW_PATHexistsFLOW_DEFAULTjsonloads	read_textJSONDecodeError)datas    rX   read_weekend_flowr      s~    ##%% z+55w5GGHH   #l#d##s   -A A)(A)flowr   c                    t          |                     d          pd          }|dk    r|dz  S |dk    r|dz  S |dz  S )Nr0   r   r   g?r   g333333?g      ?)rQ   get)r   r   rH   s      rX   flow_adjustmentr      sT    $((?++0q11E7s{7s{3;rZ   csv_pathr   weekend_flow
list[dict]c                   i }|                      d          5 }t          j        |          D ]}|d                                                                         }|                    ||dddt          |d                   t                      d          }|dxx         t          |d                   z  cc<   |dxx         t          |d                   z  cc<   |d	xx         t          |d	                   z  cc<   |d
                             |d                                                    		 d d d            n# 1 swxY w Y   g }|	                                D ]\  }}t                              |          }|s#|d         }	|d         }
|                    d|d                   }t          ||                    dd                    }t                              |ddg ddd          }t          |	|||d         |                    dd                    }|                    d          }i |i d|d|d
         ddhk    rdn|d
         dhk    rdnddt          |d         d          d|	dt          |
          d	t          |d	                   dt!          |d         |	          d t#          |
|d         |	          d!t!          |d         |	          d"t#          |
|d         |	          d#t!          ||	          d$t#          |
||	          d%|rt!          ||	          nd d&|d't%          |          d(t          |d)          d*|                    d+t&          d+                   |                    dd          |                    d+d,          |                    d-d,          |                    d.d,          |                    d/g           |                    d0          rd1nd2t!          |d3         |	          t#          |
|d3         |	          d4}|                    |           t+          |d5 6          S )7Nrz   r{   r8   g        current_price)r8   qtyr[   pnl_krwr   accountsr   r[   r   r   accountr
   r	   r   r   r   u   애널리스트 신호 없음u   가격 행동 우선u   데이터 없음rG   r   rH   r   mainsubu   본/부u   본u   부r   t1_gain_pctr   t1_est_profit_krwt2_gain_pctt2_est_profit_krwhold_until_gain_pcthold_until_est_profit_krwprior_high_gap_pctbreakout_probability_pctbreakout_probability_labelrm   r   	flow_noter1    rJ   rK   rI   r   u   사용자 입력 애널 목표u   전술 목표/최근 고점r   )rn   analyst_summaryanalyst_action_impactanalyst_sourcerI   target_basisinvalid_loss_pctinvalid_est_loss_krwc                    | d         S )Nr   rk   xs    rX   <lambda>zbuild_orders.<locals>.<lambda>   s
    * rZ   key)opencsv
DictReaderstripupper
setdefaultrQ   setadditemsTARGETSr   r   ANALYST_SIGNALSrw   rW   rY   r^   rl   r   appendsorted)r   r   groupedhandlerowr8   itemordersrE   rR   r_   r
   rm   analyst_signalbreakout_probabilityr   orders                    rX   build_ordersr      sH   !G		(	( 9F>&)) 	9 	9C]((**0022F%%$!$"%*3+?%@%@ # 
 
D KKK5U,,,KKKs;'7!8!88OOOuS^444OOO  Y!5!5!7!78888!	99 9 9 9 9 9 9 9 9 9 9 9 9 9 9& F ' 'V$$ 	'[!ZZfTl;;
$\6::j)3T3TUU
(,,VqMlz|  Pf  rD  6E  6E  F  F9':z[abj[km{mm  AH  JK  nL  nL   M   MZZ--


 
f
 D$4$G$GyyW[\fWglrksWsWseey~
 5ea((	

 W
 u
 uT)_--
 3vd|W55
  eVD\7!C!C
 3vd|W55
  eVD\7!C!C
 "3z7#;#;
 (eZ)I)I
 !j"R#j'":":":d
 '(<
  )*;<P*Q*Q!
" %
A..#
$ )))\)5LMM%
 
& ,//;;-11)R@@%3%7%7%L%L,002>>&**:r::@F

K[@\@\<<b #F9$5w ? ?$(y0A7$K$K5
 
 
8 	e&556666s   DEEEr   tuple[str, str]c                l    | d         }t          | d                   }|dk    r|dk    rdS |dk    rdS dS )	Nr   r   rh   g      @)   조건부 후보ug   본계좌 소액 전술 후보. 장초 30-60분 추세 유지와 브로커 호가 확인 후만 검토.0   )u   감시uj   추세는 살아있지만 확정 부족. 정규장 초반 거래량/상대강도 확인 전 진입 금지.)r.   u[   상단까지 거리 또는 변동성이 커서 지금은 원주식/현금 관리가 우선.)abs)r   probabilityinvalid_gaps      rX   leverage_candidate_statusr      s^    23Ke./00Kb[C// M  Mb F  FrrrZ   r   c                   g }| D ]}t                               |d                   }|s%t          |          \  }}|                    |d         ||ddd|d         |d         |                    dd          |                    d	d
          |d          d|d          dd|d          dd|dd           t	          |d           S )Nr8   u   본계좌 전용逖 u   단일종목 2배도 최초 1회 거래 전 1,000만원 예수금 준비 필요. 후보 승격 가능성이 생기면 2-3일 전 준비 경보.r   rm   rn   r   r   r   u   가 T1 $r   uh    돌파 후 VWAP/전일고가 위 유지, 섹터 지수 동반 회복, 호가 스프레드 과대 아님u   기초종목 $r   u&    이탈 또는 2배 ETF -5%~-7% 손실uE   당일 또는 1-2거래일. 매일 재검증 없이는 보유 금지.uc   일일 2배 목표라 횡보/급반전/변동성 장에서는 원주식 상승에도 손실 가능.)
underlyingproductsr/   r   first_trade_cash_required_krwcash_prep_noticer   rm   rn   r   triggerstop
time_limitinstructionriskc                ,    | d         dk    | d          fS )Nr/   r   r   rk   r   s    rX   r   z8build_single_stock_leverage_candidates.<locals>.<lambda>  s    Qx[<N-NQRSmQnPn,o rZ   r   )SINGLE_STOCK_LEVERAGE_PRODUCTSr   r   r   r   )r   
candidatesr   r   r/   r   s         rX   &build_single_stock_leverage_candidatesr      s!   J 
 
155eHoFF 	7>>#Ho$ -1; %v,12L,M#L1!&?A!>!>#(99->#C#CX U Ud U U U by)9aaae*}% 	
 	
 	
 	
, *"o"opppprZ   c                 f   t          j                    } |                     dt          t                     |                     dt
          d           |                     dt
          d           |                     dd	           |                     d
d	           |                     dd	           |                     dd	           |                                 }|j        |j        z   }t          t          z   }||z  dz
  dz  }t                      }t          |j        |          }t          |          }t          j                                                            d          t          j                            t          j        j                                                                      d          |j        |j        |j        |j        d|j         d|dz  dd|dd|j         dt          |j        dddd t          |j        dd!dd"d#d$d$d%d&d'd(g d)g d*d+d,d-d$d.d/dg d0g d1|d2|g d3|g d4g d5d6d7}t7          j        |d!d89          }	t:                              |	d:z   d;<           t>                              d=|	z   d>z   d;<           tA          t:                     d(S )?Nz--positions-csv)typedefaultz--main-totalitXz--sub-totaliwz--modeRECOVERY)r   z--market-statusu   미장 휴장/주말z	--verdictu]   패닉셀 금지. 월요일 첫 30-60분 저점 유지 확인 후 약한 축부터 현금화.z--next-checku/   월요일 프리마켓 16:50 KST / 장초 30분r   rU   z%Y%m%d-%H%M%Sseconds)timespecu	   [상황] u   
계좌: 합산 i z.3fu   억, 시작대비 z+.2fu   %, SOXL 현금 미준비
시장: 우주+반도체 고베타 집중, 주말 뉴스 확인 필요
행동: 첫 30-60분 저점 유지 확인 후 약한 축부터 축소
금지: 패닉셀, 뉴스 전 물타기, SOXL/SOXS 추격
다음: u	   본계좌i T)r   	start_krwcurrent_krwdaily_target_krwcan_leverageu	   부계좌F)r   r   i  r   u	   미준비u|   SOXL/SOXS 및 단일종목 2배 최초 거래를 위해 강제 손절보다 반등 현금화로 1,000만-1,500만원 준비.)target_cash_krwminimum_soxl_cash_krw minimum_single_stock_2x_cash_krwr/   r   r   )u   Kakao 나에게 보내기u   Hyperliquid 무료 공개 APIu   Binance 무료 공개 APIu!   Yahoo/무료 시세 대체 경로u   로컬 서버u   무료 터널)u   유료 데이터 단말기u   유료 문자/알림 서비스u   유료 호스팅u   유료 API 구독u   비용이 발생하는 기능은 기본 비활성. 무료 공개 소스 실패 시 유료 전환하지 않고 '데이터 없음'으로 표시.)monthly_budget_krwallowed_sourcesblocked_sourcesr   u   강한 단일종목 추세가 확인될 때만 본계좌 전용 전술 후보로 검토. 최초 1회 거래 전 1,000만원 예수금 준비 필요.u
   2-3일 전i@KL )uC   최초 거래 가능 상태 확인 및 1,000만원 예수금 준비uI   기초종목이 T1 돌파 후 VWAP/전일고가 위에서 30-60분 유지u9   섹터 ETF와 시장 지수가 같은 방향으로 동행uL   TipRanks/StockAnalysis 공개 상위 애널리스트 신호가 중립 이상u,   2배 ETF 거래량과 스프레드가 정상u.   손절가와 시간제한을 주문 전 확정)u   손실 복구 목적 진입u   장초 갭상승 추격u.   실적/공시 직전 무계획 오버나이트u   부계좌 매수u4   1-2거래일 초과 보유를 장기투자로 전환)policyr   cash_prep_daysmax_budget_krwdefault_budget_krw
entry_gatebanr   )u   반도체: Broadcom 이후 AI 반도체 기대치가 낮아지며 SOX/칩 대형주가 급락. 첫 반등은 추격보다 반등 품질 확인.uu   MU/AMD/MRVL: 장기 AI/메모리 논리는 남아도 단기 포지션 청산이 커서 T1/T2를 나눠 수익 잠금.u}   NASA/RDW: SpaceX/우주 테마 기대는 있으나 이벤트 프리미엄과 고베타가 커서 반등 시 현금화 우선.u   주말 플로우: Hyperliquid/Binance에 보유 주식 직접 선물은 없으면 BTC/ETH/SOL/BNB/LINK/AI 토큰을 위험선호 프록시로만 사용.u   애널리스트: TipRanks/StockAnalysis 공개 상위 애널리스트 신호를 보조 레이어로 반영. RDW는 공개 컨센서스가 낮아 $25 상단 신뢰도 감점.u   현금: SOXL/SOXS 및 단일종목 2배 최초 진입을 위해 강제 손절보다 반등 현금화로 1,000만-1,500만원 확보.u   비용: 모든 데이터/알림은 무료 경로만 사용. 유료 API가 필요한 순간에는 자동 결제 없이 경고로 표시.)u%   장 열리기 전 신규매수 금지u   SOXL/SOXS 즉시 진입 금지uN   단일종목 2배는 1,000만원 예수금 준비 전 제안만, 진입 금지u+   월요일 첫 30-60분 저점 유지 확인u>   반등 시 약한 축부터 현금 1,000만-1,500만원 확보)u	   패닉셀u   뉴스 확인 전 물타기u(   손실 복구 목적 레버리지 추격u   단일종목 2배 장초 추격u   부계좌 SOXL/SOXS)nowr   )state_version
updated_atmarket_statusmodeverdict
next_checkkakao_summaryr   	cash_plancost_policysingle_stock_leverager   market_contextr   rulesr   )ensure_asciiindent
rz   r{   zwindow.LIVE_ACCOUNT_STATE = z;
)!argparseArgumentParseradd_argumentr   DEFAULT_CSVr\   
parse_args
main_total	sub_total
START_MAIN	START_SUBr   r   positions_csvr   dtdatetimer   strftimetimezoneutc
astimezone	isoformatr   r   r   r   r   dumps
STATE_PATH
write_textSTATE_JS_PATHprint)
parserargstotalstart_total	total_pctr   r   r   state
state_jsons
             rX   r   r     s   $&&F
)kJJJ
S*EEE
CDDD
*555
)3IJJJ
  .M  N  N  N
0abbbDOdn,Ey(K$q(C/I$&&L$,l;;FB6JJ **33ODDkoobko66AACCMMW`Maa+	<o)	 ) )#Ioo) )ENo) )
 ) ) )zRVRa  xA  SW  X  X'iPTP^t}  PU  V  V
 

  *%/0:! Z
 
 #$  B   B   B  I   I   I l	
 
 m-7*'"+     0+"
 "
. %
 
 
     
 
ER REf Ea@@@J*t+g>>>;jH5P[bccc	*1rZ   __main__)rE   rQ   rR   rQ   rS   rQ   )r[   rQ   rE   rQ   rR   rQ   rS   r\   )r_   rQ   r`   rQ   ra   rQ   rS   rQ   )r_   rQ   rS   rf   )r   )rR   rQ   r
   rQ   rm   rQ   r   rf   rn   rQ   rS   r\   )rS   rx   )r   rx   r   rf   rS   rQ   )r   r   r   rx   rS   r   )r   rx   rS   r   )r   r   rS   r   )rS   r\   )%__doc__
__future__r   r   r   r
  r	  r   pathlibr   __file__resolveparentROOTr  r  r  r}   r  r  r   r   r   r   rY   r^   re   rl   rw   r   r   r   r   r   r   __name__
SystemExitrk   rZ   rX   <module>r&     si   V V " " " " " "  



            tH~~&HH--
..44 
	 t4uY]i  Oa  op  zU  am  {B  LL  M  Md$$^bos  @d  sI  WX  bk  wI  W^  hd  e  ee5\a  nB  Qn  |}  GO  [f  t{  E  @  @U&]bnz  J\  jk  uN  Zl  zC  Mq  r  ruE\a  nB  Qn  |}  GL  Xc  qx  Bs  t  tU&]b  oG  Vk  yz  DM  Yq  F  P}  ~  ~s#TVZfo  N  \]  gp  |N  \e  op  q  q  Z^  z	[ak}~~Y`f  qC  	D  	D
 jyZ`j{||Y`f  qB  	C  	C
 z	[ak~" "    X!+<.diuz  KP  Q  Q"O`w  DI  Y^  _  _
 D;	 	  S!+<Jbns  @E  UZ  [  [#X;Z_ko  @E  F  F
 q;	 	  U!+<.du  BF  V[  \  \#YDVbiuy  JO  P  P
 C;	 	  p):K`ly  FJ  Z_  `  `
 M,   Ud(   AX$   KC$ m= =@2 2 2 25 5 5 5& & & &   * * * * *$ $ $ $   >7 >7 >7 >7Bs s s sq q q q@i i i iX z
*TTVV

 rZ   