From defd5c0bf60a7095758b1f2de31d378cc3136f64 Mon Sep 17 00:00:00 2001 From: hyowons Date: Fri, 12 Jun 2026 02:00:03 +0900 Subject: [PATCH] =?UTF-8?q?auto:=20=EC=9D=BC=EC=9D=BC=20=EB=B0=B1=EC=97=85?= =?UTF-8?q?=202026-06-12=2002:00?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- CLAUDE.md | 2 +- agents/stock/workspace/MEMORY.md | 4 +- agents/stock/workspace/sim/sim_web.py | 321 ++++++++++++++++-- .../state/market_indicators_history.jsonl | 2 + .../workspace/state/sim/equity_history.json | 2 +- .../workspace/state/sim/index_history.json | 2 +- .../state/sim/variants/v1/portfolio.json | 2 +- .../state/sim/variants/v10/portfolio.json | 2 +- .../state/sim/variants/v100/portfolio.json | 2 +- .../state/sim/variants/v101/portfolio.json | 2 +- .../state/sim/variants/v102/portfolio.json | 2 +- .../state/sim/variants/v103/portfolio.json | 2 +- .../state/sim/variants/v104/portfolio.json | 2 +- .../state/sim/variants/v105/portfolio.json | 2 +- .../state/sim/variants/v106/portfolio.json | 6 +- .../state/sim/variants/v107/portfolio.json | 2 +- .../state/sim/variants/v108/portfolio.json | 2 +- .../state/sim/variants/v11/portfolio.json | 2 +- .../state/sim/variants/v12/portfolio.json | 2 +- .../state/sim/variants/v13/portfolio.json | 2 +- .../state/sim/variants/v14/portfolio.json | 2 +- .../state/sim/variants/v15/portfolio.json | 2 +- .../state/sim/variants/v16/portfolio.json | 2 +- .../state/sim/variants/v17/portfolio.json | 2 +- .../state/sim/variants/v18/portfolio.json | 2 +- .../state/sim/variants/v19/portfolio.json | 2 +- .../state/sim/variants/v2/portfolio.json | 2 +- .../state/sim/variants/v20/portfolio.json | 2 +- .../state/sim/variants/v21/portfolio.json | 2 +- .../state/sim/variants/v22/portfolio.json | 32 +- .../state/sim/variants/v22/trades.jsonl | 1 + .../state/sim/variants/v23/portfolio.json | 2 +- .../state/sim/variants/v24/portfolio.json | 32 +- .../state/sim/variants/v24/trades.jsonl | 1 + .../state/sim/variants/v25/portfolio.json | 32 +- .../state/sim/variants/v25/trades.jsonl | 1 + .../state/sim/variants/v26/portfolio.json | 2 +- .../state/sim/variants/v27/portfolio.json | 2 +- .../state/sim/variants/v28/portfolio.json | 2 +- .../state/sim/variants/v29/portfolio.json | 2 +- .../state/sim/variants/v3/portfolio.json | 2 +- .../state/sim/variants/v30/portfolio.json | 2 +- .../state/sim/variants/v31/portfolio.json | 2 +- .../state/sim/variants/v32/portfolio.json | 2 +- .../state/sim/variants/v33/portfolio.json | 2 +- .../state/sim/variants/v34/portfolio.json | 2 +- .../state/sim/variants/v35/portfolio.json | 2 +- .../state/sim/variants/v36/portfolio.json | 2 +- .../state/sim/variants/v37/portfolio.json | 2 +- .../state/sim/variants/v38/portfolio.json | 2 +- .../state/sim/variants/v39/portfolio.json | 2 +- .../state/sim/variants/v4/portfolio.json | 2 +- .../state/sim/variants/v40/portfolio.json | 6 +- .../state/sim/variants/v41/portfolio.json | 2 +- .../state/sim/variants/v42/portfolio.json | 6 +- .../state/sim/variants/v43/portfolio.json | 2 +- .../state/sim/variants/v44/portfolio.json | 6 +- .../state/sim/variants/v45/portfolio.json | 2 +- .../state/sim/variants/v46/portfolio.json | 2 +- .../state/sim/variants/v47/portfolio.json | 2 +- .../state/sim/variants/v48/portfolio.json | 6 +- .../state/sim/variants/v49/portfolio.json | 2 +- .../state/sim/variants/v5/portfolio.json | 2 +- .../state/sim/variants/v50/portfolio.json | 2 +- .../state/sim/variants/v51/portfolio.json | 2 +- .../state/sim/variants/v52/portfolio.json | 2 +- .../state/sim/variants/v53/portfolio.json | 2 +- .../state/sim/variants/v54/portfolio.json | 2 +- .../state/sim/variants/v55/portfolio.json | 2 +- .../state/sim/variants/v56/portfolio.json | 2 +- .../state/sim/variants/v57/portfolio.json | 2 +- .../state/sim/variants/v58/portfolio.json | 2 +- .../state/sim/variants/v59/portfolio.json | 2 +- .../state/sim/variants/v6/portfolio.json | 2 +- .../state/sim/variants/v60/portfolio.json | 2 +- .../state/sim/variants/v61/portfolio.json | 2 +- .../state/sim/variants/v62/portfolio.json | 8 +- .../state/sim/variants/v63/portfolio.json | 2 +- .../state/sim/variants/v64/portfolio.json | 8 +- .../state/sim/variants/v65/portfolio.json | 2 +- .../state/sim/variants/v66/portfolio.json | 8 +- .../state/sim/variants/v67/portfolio.json | 2 +- .../state/sim/variants/v68/portfolio.json | 8 +- .../state/sim/variants/v69/portfolio.json | 2 +- .../state/sim/variants/v7/portfolio.json | 2 +- .../state/sim/variants/v70/portfolio.json | 8 +- .../state/sim/variants/v71/portfolio.json | 2 +- .../state/sim/variants/v72/portfolio.json | 8 +- .../state/sim/variants/v73/portfolio.json | 2 +- .../state/sim/variants/v74/portfolio.json | 8 +- .../state/sim/variants/v75/portfolio.json | 2 +- .../state/sim/variants/v76/portfolio.json | 8 +- .../state/sim/variants/v77/portfolio.json | 2 +- .../state/sim/variants/v78/portfolio.json | 8 +- .../state/sim/variants/v79/portfolio.json | 32 +- .../state/sim/variants/v79/trades.jsonl | 1 + .../state/sim/variants/v8/portfolio.json | 2 +- .../state/sim/variants/v80/portfolio.json | 8 +- .../state/sim/variants/v81/portfolio.json | 2 +- .../state/sim/variants/v82/portfolio.json | 2 +- .../state/sim/variants/v83/portfolio.json | 32 +- .../state/sim/variants/v83/trades.jsonl | 1 + .../state/sim/variants/v84/portfolio.json | 8 +- .../state/sim/variants/v85/portfolio.json | 32 +- .../state/sim/variants/v85/trades.jsonl | 1 + .../state/sim/variants/v86/portfolio.json | 8 +- .../state/sim/variants/v87/portfolio.json | 2 +- .../state/sim/variants/v88/portfolio.json | 2 +- .../state/sim/variants/v89/portfolio.json | 2 +- .../state/sim/variants/v9/portfolio.json | 2 +- .../state/sim/variants/v90/portfolio.json | 6 +- .../state/sim/variants/v91/portfolio.json | 2 +- .../state/sim/variants/v92/portfolio.json | 2 +- .../state/sim/variants/v93/portfolio.json | 2 +- .../state/sim/variants/v94/portfolio.json | 2 +- .../state/sim/variants/v95/portfolio.json | 2 +- .../state/sim/variants/v96/portfolio.json | 2 +- .../state/sim/variants/v97/portfolio.json | 2 +- .../state/sim/variants/v98/portfolio.json | 6 +- .../state/sim/variants/v99/portfolio.json | 2 +- 120 files changed, 627 insertions(+), 208 deletions(-) create mode 100644 agents/stock/workspace/state/sim/variants/v22/trades.jsonl create mode 100644 agents/stock/workspace/state/sim/variants/v24/trades.jsonl create mode 100644 agents/stock/workspace/state/sim/variants/v25/trades.jsonl create mode 100644 agents/stock/workspace/state/sim/variants/v79/trades.jsonl create mode 100644 agents/stock/workspace/state/sim/variants/v83/trades.jsonl create mode 100644 agents/stock/workspace/state/sim/variants/v85/trades.jsonl diff --git a/CLAUDE.md b/CLAUDE.md index e993ccc..05dabed 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -112,7 +112,7 @@ Stock agent (`agents/stock/workspace/scripts/`), run with `python3`: - **백테스트·스윕** (`backtest.py`/`sweep.py`): signals.py 그대로 재사용해 과거 일봉 되감기(지표 t까지·종가체결·애널 중립·수급은 flow_history 사용). `sweep`은 9파라미터(SMA_LONG·RR·STOP_ATR·PULLBACK_ATR·VOLUME_BREAKOUT + 신규 RSI_OVERBOUGHT·RSI_OVERSOLD·MAX_HOLD_DAYS·RISK_PER_TRADE_PCT) **1152조합**을 학습/검증(out-of-sample 0.7) 분리 비교 (애널·시장필터는 backtest 중립이라 스윕 제외) → `state/sim/backtest_results.json`. **체결 현실화**(2026-06-10): backtest가 당일 종가 판단→**다음날 시가 체결**(pending 주문 큐, look-ahead 제거) + `BT_SLIPPAGE` 0.2%(매수 비싸게/매도 싸게). 체결 낙관분 ~5%p 제거 확인. 거래 없는 날 주문은 소멸(신호 지속 시 재큐잉). **3분할 꾸준함 순위**(2026-06-10): 전체기간 3분할 구간별 수익(`windows`/`worst_ret`)을 측정, 순위 1순위=최악구간 수익(한 구간 운빨 배제)·2순위=검증수익. 웹 행에 '구간별 검증(3분할)' 표시. **멀티프로세싱**(2026-06-10): `sweep`이 조합을 코어에 분배(`get_context('spawn')`, 워커=코어−2). 일봉·수급은 `_hist_cached`/`_flow_cached` 프로세스 메모이즈로 종목당 sqlite 1회만 읽음. **44분 → 약 5~7분**(10코어 기준). 데이터는 이미 sqlite 캐시 전용(키움 API 0회) — 병목은 네트워크가 아니라 지표 재계산(파이썬). spawn이라 워커가 메인 재import하지만 `sim/__main__.py` 가드로 안전. ⚠️ `GRID` 늘릴 때 곱셈 폭발 주의. ⚠️ 종가체결·현 워치리스트(생존편향)라 절대수익 아닌 상대순위로만 해석. 2026-06-09 스윕: 핵심 레버는 `VOLUME_BREAKOUT=1.3`(거래량 문턱 낮춤, 중앙 +19%) — 신규 4종은 강세 검증창에선 미미(RSI·시간손절=하락장 보험). 적용 균형값 params.json 저장(RISK 0.01 보수 유지, 0.02 고수익은 강세장 레버리지라 채택 X). - **수급 백필** (`backfill_flow.py`): ka10059 연속조회로 종목별 투자자 순매수 다년치(기본 6페이지≈2.4년) → `state/sim/flow_history.sqlite`(code,date,foreign_net,inst_net,indiv_net 천주). idempotent·rate limit 페이싱+429 백오프. backtest가 이 DB로 수급(외/기) 반영 (없으면 중립). 2026-06-08 54종목 3만행 1회 적재 완료. - **병렬 페이퍼** (`variants.py` + `engine.scan_all`): 스윕 상위 튜닝들을 각자 가상계좌(`state/sim/variants//`)로 실시간 동시 운영 → 비교(`variants_compare.json`). `scan_all`이 라이브 데이터 1회 수집 후 메인+모든 변이를 같은 시세로 평가(`_gather`+`_run_scan` 분리, Portfolio가 경로 인자 받음). 변이는 애널 게이트까지 실반영(백테스트가 못 보는 부분). `variants seed N`은 backtest_results 상위 N개 등록. **launchd `sim-scan`은 이제 `scan`→내부적으로 `scan_all` 실행**(메인+변이 매 스캔 갱신, 트리거·명령 동일). - - **웹 3메인탭**(sim_web — **전략/관심종목/시장** 순, 기본=전략·비교. **기준전략(M) 폐지**(2026-06-10): scan_all의 메인 패스는 `execute=False` 판단 전용(last_scan=화면·상태점용, 메인 계좌 매매 동결), 실매매·비교는 변이 36개만. `sync_label_tops` 메인 제외 규칙 삭제(유형별 1위 전부 변이). 비교탭 행마다 **마킹 아이콘 피커**(2026-06-10 ☆토글→6종 아이콘 ⭐🔥💎🎯👀🚀 선택, `FAV_ICONS`/`favorites.json`은 `{아이콘: vid}` — **아이콘 하나당 전략 1개**(다른 전략에 쓰면 이동)·전략당 아이콘 1개. 칩 클릭→바텀시트 피커→`POST /fav_set`(fetch). 구버전 list는 자동 마이그레이션), 관심종목 탭 기본 시각 = 첫 마킹(FAV_ICONS 순) → 없으면 1위 변이. **약세모드 단어 칩**(2026-06-10): 비교 행 vid 옆 + 드롭다운 + 펼침 body '약세장 모드' 행에 회피(0 현금화)/돌파(1 기본)/적극(2 눌림허용) 색 칩(`_BEAR_WORD`/`_bear_chip_html`, 클릭 시 설명 토스트. 아이콘→단어는 관리자님 요청). `_market_fit_summary`의 긴 접미사는 제거. **비교 행·드롭다운 이름은 짧은 단어 나열**(`_market_fit_words` — '상승장·빠른·공격·추세추종', `_fit_tokens` 공용 토큰. 긴 문장형 `_market_fit_summary`는 백테스트 탭 라벨·비교 펼침 '유형' 행에 유지). **bt매칭은 `_btkey`(swept_params만)** — BEAR_ENTRY_MODE 등 백테스트 중립 키가 params에 있어도 같은 bt행에 매칭(모드 3형제는 bt순위 공유, 백테스트 탭은 36종만 표시가 정상). 헤더 상태점 자산줄은 '전략 N개 · 평균/1위 수익률'. 2026-06-10 내계좌 탭 삭제〔계좌 정보는 비교탭 메인 행으로〕·튜닝 보조탭 삭제〔params 변경은 백테스트 "이 튜닝 적용"으로만, `/save_params` 리다이렉트도 s=bt〕. 탭 라우팅 `?t=`+보조탭 `?s=`, 레거시 t=acct/tune→lab): 헤더 타이틀 옆 **시뮬 상태점**(`_engine_status`→`#health` 점: 🟢 장중 가동(최근 스캔 ≤12분)·🟡 장외 대기·🔴 장중 멈춤 의심, 클릭 시 상태 토스트). **관심종목**(종목별 신호 체크리스트 + 각 평가항목 **ⓘ 버튼 → 쉬운 설명 토스트**〔`_CHK_HELP`/`_chk_key`/`_CHK_HELP_JS`, 바텀시트 `#chk-toast`, 열려있으면 자동새로고침 멈춤〕 + 상단 **종목 추가 폼**〔코드/이름〕 + 카드별 **✕ 삭제**〔수동만, 보유 중이면 청산 추적〕 + origin 라벨〔워치/관심/보유/수동〕 + 미스캔분 '스캔 대기' 표시) · **시장**(지수·ADR·상승하락·투자자 순매수 — **항상 네이버 m.stock 실시간**〔`_get_live_market` 60s 캐시, `market_indicators_sync.fetch_market` 재사용. 네이버가 장 마감 후에도 당일 최종값 제공하므로 세션 무관 최신 사용〕, **조회 실패 시에만** `market_indicators_history.jsonl` EOD 폴백. note는 장중='장중 실시간'·장외='직전 장 마감 기준'. 2026-06-09 초기엔 장중만 실시간이라 마감 후 어제 EOD를 보이던 빈틈을 항상-실시간으로 수정) · **전략**(보조탭 2: **백테스트**〔**유형별(세부 라벨 ~36종) 대표 요약** — 2026-06-10 단순화: 시장 성격별 그룹(상승장/추세장/조정장/출렁이는 장/보통 장에 강한 유형) 안에 각 유형 1위만 표시(꾸준함=worst_ret 순), 행=제목+최악·검증수익, 펼치면 구간별 검증·MDD·승률·PF·알파·파라미터·🌐. **비교군 추가/제거·이 튜닝 적용 버튼 제거**(읽기전용) — `variants.sync_label_tops()`는 **수동 전용**(2026-06-10 자동 동기화 끔 — sweep은 결과 파일만 갱신, 비교군 변경은 관리자님 명시 요청 시 `python3 -m sim variants sync` 또는 코디가 수동 등록)(같은 params 변이는 계좌 유지·신규 추가·탈락 삭제, 메인 조합 제외). 메인 변경은 코디/CLI로만. + **'↻ 다시 계산'**〔백그라운드 sweep — 결과 파일만 갱신, 비교군은 불변〕〕/**비교**〔병렬 변이 실시간 성적, 변이별 성적초기화/삭제 + **전체 삭제(메인 제외)** `/variants_clear_all`→`vmod.clear()`. 펼침 body 첫 행=**유형**(긴 문장형+ⓘ→🌐 시장적합 토스트, 2026-06-10 하단 🌐 버튼 대체)→둘째 행 **약세장대처**(`돌파 (기본)` 모드명만+ⓘ 토스트). bt 등록근거 행은 **모의평가**로 개명(1행 `N위/36`+2행 최악구간·검증, 모드 3형제는 `_btkey`로 같은 bt행 공유). 행 표기(2026-06-10): **순위 배지 `N위`가 앞, 고유번호는 `#N`**(`_vid_disp` — 'v37'→'#37' 표시 전용, 내부 id·URL은 raw. 드롭다운·👁토스트·사유 라벨 동일 표기)〕). 🌐는 `data-detail` 통합 토스트 핸들러로 헤더 상태점(`#health`)과 공유. sticky 헤더, 당겨서 새로고침. **새로고침 상태 보존**(2026-06-10): 60s 자동새로고침이 전체 리로드지만 펼침(details open)·스크롤을 sessionStorage(`simOpen`/`simScroll`, key=패널id+summary텍스트)로 저장·복원해 보던 화면 유지. 입력 중·토스트 열림엔 새로고침 멈춤. `do_POST`: `/save_params`·`/run_sweep`·`/variants_{add,reset_one,remove,clear_all}`·`/watch_{add,remove}`·`/fav_set`(마킹 아이콘 지정/이동/해제 → `state/sim/favorites.json`) (그 외 읽기전용) + - **웹 3메인탭**(sim_web — **전략/관심종목/시장** 순, 기본=전략·비교. **기준전략(M) 폐지**(2026-06-10): scan_all의 메인 패스는 `execute=False` 판단 전용(last_scan=화면·상태점용, 메인 계좌 매매 동결), 실매매·비교는 변이 36개만. `sync_label_tops` 메인 제외 규칙 삭제(유형별 1위 전부 변이). 비교탭 행마다 **마킹 아이콘 피커**(2026-06-10 ☆토글→6종 아이콘 ⭐🔥💎🎯👀🚀 선택, `FAV_ICONS`/`favorites.json`은 `{아이콘: vid}` — **아이콘 하나당 전략 1개**(다른 전략에 쓰면 이동)·전략당 아이콘 1개. 칩 클릭→바텀시트 피커→`POST /fav_set`(fetch). 구버전 list는 자동 마이그레이션), 관심종목 탭 기본 시각 = 첫 마킹(FAV_ICONS 순) → 없으면 1위 변이. **약세모드 단어 칩**(2026-06-10): 비교 행 vid 옆 + 드롭다운 + 펼침 body '약세장대처' 행에 회피(0 현금화)/안정(1 돌파만·기본, 2026-06-11 '돌파'→'안정' 개명 — 적극과 혼동)/적극(2 눌림허용) 색 칩(`_BEAR_WORD`/`_bear_chip_html`, 클릭 시 설명 토스트. 아이콘→단어는 관리자님 요청). `_market_fit_summary`의 긴 접미사는 제거. **비교 행·드롭다운 이름은 짧은 단어 나열**(`_market_fit_words` — '상승장·빠른·공격·추세추종', `_fit_tokens` 공용 토큰. 긴 문장형 `_market_fit_summary`는 백테스트 탭 라벨·비교 펼침 '유형' 행에 유지). **bt매칭은 `_btkey`(swept_params만)** — BEAR_ENTRY_MODE 등 백테스트 중립 키가 params에 있어도 같은 bt행에 매칭(모드 3형제는 bt순위 공유, 백테스트 탭은 36종만 표시가 정상). 헤더 상태점 자산줄은 '전략 N개 · 평균/1위 수익률'. 2026-06-10 내계좌 탭 삭제〔계좌 정보는 비교탭 메인 행으로〕·튜닝 보조탭 삭제〔params 변경은 백테스트 "이 튜닝 적용"으로만, `/save_params` 리다이렉트도 s=bt〕. 탭 라우팅 `?t=`+보조탭 `?s=`, 레거시 t=acct/tune→lab): 헤더 타이틀 옆 **시뮬 상태점**(`_engine_status`→`#health` 점: 🟢 장중 가동(최근 스캔 ≤12분)·🟡 장외 대기·🔴 장중 멈춤 의심, 클릭 시 상태 토스트). **관심종목**(종목별 신호 체크리스트 + 각 평가항목 **ⓘ 버튼 → 쉬운 설명 토스트**〔`_CHK_HELP`/`_chk_key`/`_CHK_HELP_JS`, 바텀시트 `#chk-toast`, 열려있으면 자동새로고침 멈춤〕 + 상단 **종목 추가 폼**〔코드/이름〕 + 카드별 **✕ 삭제**〔수동만, 보유 중이면 청산 추적〕 + origin 라벨〔워치/관심/보유/수동〕 + 미스캔분 '스캔 대기' 표시) · **시장**(지수·ADR·상승하락·투자자 순매수 — **항상 네이버 m.stock 실시간**〔`_get_live_market` 60s 캐시, `market_indicators_sync.fetch_market` 재사용. 네이버가 장 마감 후에도 당일 최종값 제공하므로 세션 무관 최신 사용〕, **조회 실패 시에만** `market_indicators_history.jsonl` EOD 폴백. note는 장중='장중 실시간'·장외='직전 장 마감 기준'. 2026-06-09 초기엔 장중만 실시간이라 마감 후 어제 EOD를 보이던 빈틈을 항상-실시간으로 수정) · **전략**(2026-06-11 보조탭 버튼 제거 — 기본=비교만 표시, 백테스트는 비교 타이틀 우측 **[📊 모의결과보기]** 라벨(라디오 `sub-bt` 토글)로 진입·bt 패널 상단 [← 비교로]로 복귀. `?s=bt` 라우팅·60s 새로고침 라디오 보존은 유지. 구성 2: **백테스트**〔**유형별(세부 라벨 ~36종) 대표 요약** — 2026-06-10 단순화: 시장 성격별 그룹(상승장/추세장/조정장/출렁이는 장/보통 장에 강한 유형) 안에 각 유형 1위만 표시(꾸준함=worst_ret 순), 행=제목+최악·검증수익, 펼치면 구간별 검증·MDD·승률·PF·알파·파라미터·🌐. **비교군 추가/제거·이 튜닝 적용 버튼 제거**(읽기전용) — `variants.sync_label_tops()`는 **수동 전용**(2026-06-10 자동 동기화 끔 — sweep은 결과 파일만 갱신, 비교군 변경은 관리자님 명시 요청 시 `python3 -m sim variants sync` 또는 코디가 수동 등록)(같은 params 변이는 계좌 유지·신규 추가·탈락 삭제, 메인 조합 제외). 메인 변경은 코디/CLI로만. + **'↻ 다시 계산'**〔백그라운드 sweep — 결과 파일만 갱신, 비교군은 불변〕〕/**비교**〔병렬 변이 실시간 성적, 변이별 성적초기화/삭제 + **전체 삭제(메인 제외)** `/variants_clear_all`→`vmod.clear()`. 펼침 body 첫 행=**유형**(긴 문장형+ⓘ→🌐 시장적합 토스트, 2026-06-10 하단 🌐 버튼 대체)→둘째 행 **약세장대처**(`돌파 (기본)` 모드명만+ⓘ 토스트). bt 등록근거 행은 **모의평가**로 개명(1행 `N위/36`+2행 최악구간·검증, 모드 3형제는 `_btkey`로 같은 bt행 공유). **전략 상세 페이지**(2026-06-11): 행 펼침 [📈 자세히보기] → `GET /strategy?id=vN` 독립 페이지 — 일별 수익률 SVG 차트(`equity_history` id+ph 매칭, KOSPI 같은 구간 점선 오버레이) + 결정론 종합 코멘트(순위·알파·과최적 경고) + 현재 성적·모의평가·전략 성격·약세장대처·파라미터 표(`_TUNE_HELP` 라벨)·보유/관심/거래. 평가순 정렬은 고유번호 오름차순(#1→#108). 행 표기(2026-06-10): **순위 배지 `N위`가 앞, 고유번호는 `#N`**(`_vid_disp` — 'v37'→'#37' 표시 전용, 내부 id·URL은 raw. 드롭다운·👁토스트·사유 라벨 동일 표기)〕). 🌐는 `data-detail` 통합 토스트 핸들러로 헤더 상태점(`#health`)과 공유. sticky 헤더, 당겨서 새로고침. **새로고침 상태 보존**(2026-06-10): 60s 자동새로고침이 전체 리로드지만 펼침(details open)·스크롤을 sessionStorage(`simOpen`/`simScroll`, key=패널id+summary텍스트)로 저장·복원해 보던 화면 유지. 입력 중·토스트 열림엔 새로고침 멈춤. **탭 보존**(2026-06-11): 탭/서브탭 라디오 변경 시 URL 즉시 동기화(`window._simURL`+history.replaceState) — 당겨서·브라우저·마킹저장 등 모든 리로드가 보던 탭에 착지. HTML 응답에 `Cache-Control: no-store`(Safari 휴리스틱 캐싱이 옛 JS를 재사용해 탭 복원이 안 먹던 문제). `do_POST`: `/save_params`·`/run_sweep`·`/variants_{add,reset_one,remove,clear_all}`·`/watch_{add,remove}`·`/fav_set`(마킹 아이콘 지정/이동/해제 → `state/sim/favorites.json`) (그 외 읽기전용) - Portfolio data: `memory/portfolio.json` (v2 스키마 참고용 스냅샷, `accounts.{일반,ISA}.positions`), `state/portfolio_daily_snapshot.json`, `state/kiwoom_tokens/{일반,ISA}.json`, `state/stock_codes.json`(키움 ka10099 lazy 캐시), `state/watchlist_alerts.json`(알림 중복 방지), `state/ipo_calendar_sync.json`, `state/behive_*.json`, `state/fnguide_cache/{code}.json`(FnGuide 펀더멘털 12h), `state/wisereport_cache/{code}.json`·`{code}_reports.json`(컨센서스 12h·리포트 6h), `state/stock_reports//`(분석 보고서 HTML) ## Scheduled Jobs diff --git a/agents/stock/workspace/MEMORY.md b/agents/stock/workspace/MEMORY.md index 99b4471..0538e4f 100644 --- a/agents/stock/workspace/MEMORY.md +++ b/agents/stock/workspace/MEMORY.md @@ -50,8 +50,8 @@ | `holiday-sync` | 매주 일요일 03:00 | `holiday_sync.py` | investing.com → `state/market_holidays.json`. 실패 시 기존 파일 보존 | | `behive-web` | 상시 (`KeepAlive`) | `behive_web.py serve` | 3-탭 워치리스트 웹뷰. Tailscale `100.75.148.12:18790` → `https://stock.hyowons.net/`(Synology reverse proxy). 코드 변경 후 bootout/bootstrap 필요 | | `trade-journal` | 평일 21:00 (스크립트가 휴장일 self-skip) | `trade_journal.py collect` | ka10170 당일매매일지 4계좌 → `state/trade_journal.jsonl` 누적. NXT 야간 마감 후 발화. 키움이 기간 거래내역 API 미제공이라 일자별 적재만이 유일. `briefing-fallback-2100`(21:00)과 같은 시각이지만 둘 다 read-only 충돌 없음. 재실행 시 (date,account) 단위 idempotent. **시드**: 2026-05-13 1회 `trade_journal.py seed` 로 적재 시작일 이전 보유분을 현재 평단가×(qty - tdy_buyq + tdy_sellq)로 단일 시드 행 압축(28건, seed=true 플래그, `*` 마커). 시드는 가중평균이라 과거 매수 단가와 정확히 일치 X. CLI: `collect`/`seed`/`show `/`query --from --to --account --code` | -| `sim-scan` | 평일 09:00–15:30 **매 5분** (`StartCalendarInterval` 79엔트리, 엔진이 장외/휴장 self-skip) ⚠️2026-06-09 15분→5분 단축 + `StartInterval` 900s→`StartCalendarInterval` 전환(StartInterval은 GUI세션 idle/디스플레이 sleep 시 timer coalescing으로 발화 보류돼 장중 안 돎. calendar는 git-autopush가 새벽 02:00 정상발화로 검증됨) | `python3 -m sim scan` (내부 `scan_all` — 메인+병렬변이 동시) | **자동매매 시뮬(페이퍼)** 1회 스캔. 가상자본 1억(2026-06-10 1천만→1억), 규칙 엔진(LLM 미경유). universe=비하이브 워치+관심+보유(**ETF/ETN은 2026-06-09부터 자동매수 제외** — 애널 방향성 부재로 전략 부정합, `universe.is_etf()` 프리픽스 판별, 보유분은 청산까지 추적). 방향=애널 약한게이트+가점, 타이밍=수급·기술(2026-06-09 시장강약 필터: 하드차단→소프트게이트+장중 실시간 상승비율 + **지수추세 이중확인**). **2026-06-09 4종 추가**: 리스크 기반 사이징(`signals.target_value` 수량=자산×`RISK_PER_TRADE_PCT`÷손절폭, 균등비중 캡)·RSI 필터(돌파 과열/눌림목 과매도 보류)·**시장 국면 6단계**(`market_regime_map`→`engine.REGIME`: 🔥강세·📈반등·🌤완만상승=매수허용 / ➖혼조·📉약세·❄️급락=보류. 상승비율+지수추세+당일등락 조합. market_ok·시장탭 공용. 강세/약세 2단계가 84% 반등을 약세로 오판해 세분화)·**약세장 매수모드**(`BEAR_ENTRY_MODE` 0현금화/1돌파만/2눌림허용, market_ok False일 때 signals 분기. backtest는 시장중립이라 무영향→병렬변이로 라이브 비교. 2026-06-09 메인(mode1)+약세현금화·약세눌림허용 변이로 비교군 구성)·시간손절(`MAX_HOLD_DAYS` 미진전 청산)·**추세 질 보강**(2026-06-09 trend_ok 게이트에 ①20일선 우상향 기울기 ②5>60 중기정배열 추가〔종목데이터, backtest 반영〕 + ③상대강도〔종목−지수 N일수익률, 라이브 전용 체크〕). 사이징·시간손절은 엔진·백테스트 공용 헬퍼. TUNABLE 27개. **2026-06-10 코드리뷰 보강**: ①수급DB 일일증분(trade-journal 21시 묶음 3번째 명령 `-m sim.backfill_flow --pages 1 --force` — stale시 백테스트 수급게이트 중립화됨) ②일별 성과이력 `state/sim/equity_history.json`(EOD 덮어쓰기, ph=파라미터해시) ③당일 재진입 쿨다운(`Portfolio.last_exit`, backtest 동일) ④장중 거래량 하루치 환산(`vol_time_frac` — 이전엔 오전 돌파 불가). ⑤백테스트 체결 현실화(당일종가 판단→다음날 시가 체결 pending큐 + `BT_SLIPPAGE` 0.2% — 낙관분 ~5%p 제거) ⑥3분할 꾸준함 순위(`worst_ret` 1순위 — 한 구간 운빨 배제) ⑧**기준전략(M) 폐지**(2026-06-10 — scan_all 메인 패스 execute=False 판단전용·계좌 동결, 비교/매매는 변이 36개만, 메인 제외 규칙 삭제, ⭐즐겨찾기 `favorites.json`+`/fav_toggle`, 관심종목 기본 시각=첫⭐→1위) ⑦비교군 동기화는 **수동 전용**(2026-06-10 자동 동기화 끔 — sweep은 결과 파일만 갱신, 비교군 변경은 관리자님 명시 요청 시만 `python3 -m sim variants sync`. `sync_label_tops`=유형(~36종)별 1위 동기화, 동일params 계좌 유지. 백테스트 탭은 유형별 대표 읽기전용 요약, 수동 추가/제거·튜닝적용 버튼 제거). 잔여 한계: 검증 데이터가 여전히 ~1년 강세 위주(진짜 하락장 검증은 라이브 누적)·생존편향 universe(의도된 설계). 매수=돌파 즉시/눌림목 지정가, 매도=손절·2:1 후 트레일링·추세수급 이탈. 결과 `state/sim/`(portfolio.json·trades.jsonl·last_scan.json). 실주문 `orders/` 불가침. 일봉은 캐시 우선 읽기(ka10081 rate limit 회피). cwd=`agents/stock/workspace` | -| `sim-web` | 상시 (`KeepAlive`) | `python3 -m sim.sim_web serve` | 시뮬 대시보드 **별도 서버 포트 18792** (behive-web 18790과 분리). `sim.hyowons.net` → mac:18792 (Synology reverse proxy, **관리자님 수동 등록 대기**). Tailnet 한정 무인증. ⚠️ 18791은 node 점유라 18792. **5탭**: 내 계좌·관심종목·시장(지수/ADR/투자자)·튜닝(파라미터 저장 → `params.json`)·백테스트(스윕 순위표+적용). 읽기전용 원칙이나 `do_POST /save_params`만 쓰기. 시장 탭은 장중엔 네이버 m.stock 실시간(지수+상승하락·ADR·투자자 순매수, `_get_live_market` 60s 캐시), 장외엔 EOD jsonl 폴백 (2026-06-09: 이전엔 상승하락·투자자가 EOD 고정이라 장중 안 바뀌던 것 수정) | +| `sim-scan` | 평일 09:00–15:30 **매 5분** (`StartCalendarInterval` 79엔트리, 엔진이 장외/휴장 self-skip) ⚠️2026-06-09 15분→5분 단축 + `StartInterval` 900s→`StartCalendarInterval` 전환(StartInterval은 GUI세션 idle/디스플레이 sleep 시 timer coalescing으로 발화 보류돼 장중 안 돎. calendar는 git-autopush가 새벽 02:00 정상발화로 검증됨) | `python3 -m sim scan` (내부 `scan_all` — 메인+병렬변이 동시) | **자동매매 시뮬(페이퍼)** 1회 스캔. 가상자본 1억(2026-06-10 1천만→1억), 규칙 엔진(LLM 미경유). universe=비하이브 워치+관심+보유(**ETF/ETN은 2026-06-09부터 자동매수 제외** — 애널 방향성 부재로 전략 부정합, `universe.is_etf()` 프리픽스 판별, 보유분은 청산까지 추적). 방향=애널 약한게이트+가점, 타이밍=수급·기술(2026-06-09 시장강약 필터: 하드차단→소프트게이트+장중 실시간 상승비율 + **지수추세 이중확인**). **2026-06-09 4종 추가**: 리스크 기반 사이징(`signals.target_value` 수량=자산×`RISK_PER_TRADE_PCT`÷손절폭, 균등비중 캡)·RSI 필터(돌파 과열/눌림목 과매도 보류)·**시장 국면 6단계**(`market_regime_map`→`engine.REGIME`: 🔥강세·📈반등·🌤완만상승=매수허용 / ➖혼조·📉약세·❄️급락=보류. 상승비율+지수추세+당일등락 조합. market_ok·시장탭 공용. 강세/약세 2단계가 84% 반등을 약세로 오판해 세분화)·**약세장 매수모드**(`BEAR_ENTRY_MODE` 0현금화/1돌파만/2눌림허용, market_ok False일 때 signals 분기. backtest는 시장중립이라 무영향→병렬변이로 라이브 비교. 2026-06-10 **유형36×모드3=108변이 풀매트릭스**로 확장, 첫 라이브 2026-06-11)·시간손절(`MAX_HOLD_DAYS` 미진전 청산)·**추세 질 보강**(2026-06-09 trend_ok 게이트에 ①20일선 우상향 기울기 ②5>60 중기정배열 추가〔종목데이터, backtest 반영〕 + ③상대강도〔종목−지수 N일수익률, 라이브 전용 체크〕). 사이징·시간손절은 엔진·백테스트 공용 헬퍼. TUNABLE 27개. **2026-06-10 코드리뷰 보강**: ①수급DB 일일증분(trade-journal 21시 묶음 3번째 명령 `-m sim.backfill_flow --pages 1 --force` — stale시 백테스트 수급게이트 중립화됨) ②일별 성과이력 `state/sim/equity_history.json`(EOD 덮어쓰기, ph=파라미터해시) ③당일 재진입 쿨다운(`Portfolio.last_exit`, backtest 동일) ④장중 거래량 하루치 환산(`vol_time_frac` — 이전엔 오전 돌파 불가). ⑤백테스트 체결 현실화(당일종가 판단→다음날 시가 체결 pending큐 + `BT_SLIPPAGE` 0.2% — 낙관분 ~5%p 제거) ⑥3분할 꾸준함 순위(`worst_ret` 1순위 — 한 구간 운빨 배제) ⑧**기준전략(M) 폐지**(2026-06-10 — scan_all 메인 패스 execute=False 판단전용·계좌 동결, 비교/매매는 변이 36개만, 메인 제외 규칙 삭제, 마킹 아이콘 6종 `favorites.json {아이콘:vid}`+`/fav_set`〔2026-06-11 ☆토글→아이콘 피커, 아이콘당 전략 1개〕, 관심종목 기본 시각=첫 마킹→1위) ⑦비교군 동기화는 **수동 전용**(2026-06-10 자동 동기화 끔 — sweep은 결과 파일만 갱신, 비교군 변경은 관리자님 명시 요청 시만 `python3 -m sim variants sync`. `sync_label_tops`=유형(~36종)별 1위 동기화, 동일params 계좌 유지. 백테스트 탭은 유형별 대표 읽기전용 요약, 수동 추가/제거·튜닝적용 버튼 제거). 잔여 한계: 검증 데이터가 여전히 ~1년 강세 위주(진짜 하락장 검증은 라이브 누적)·생존편향 universe(의도된 설계). 매수=돌파 즉시/눌림목 지정가, 매도=손절·2:1 후 트레일링·추세수급 이탈. 결과 `state/sim/`(portfolio.json·trades.jsonl·last_scan.json). 실주문 `orders/` 불가침. 일봉은 캐시 우선 읽기(ka10081 rate limit 회피). cwd=`agents/stock/workspace` | +| `sim-web` | 상시 (`KeepAlive`) | `python3 -m sim.sim_web serve` | 시뮬 대시보드 **별도 서버 포트 18792** (behive-web 18790과 분리). `sim.hyowons.net` → mac:18792 (Synology reverse proxy, **관리자님 수동 등록 대기**). Tailnet 한정 무인증. ⚠️ 18791은 node 점유라 18792. **3탭**(2026-06-10~11 개편, 내계좌·튜닝 탭 삭제): **전략**(기본=비교만, 서브탭 버튼 없음 — 백테스트 순위표는 [📊 모의결과보기] 토글)·**관심종목**(전 전략 합산 상태그룹 + 시각 드롭다운 + 👁토스트 맨 위 '▶ 시각' 판단 표시)·**시장**(지수/ADR/투자자). 비교 행 표기: 순위배지 `N위` → 약세장대처 칩(회피/안정/적극 — 2026-06-11 '돌파'→'안정' 개명, 칩 클릭=설명 토스트) → 고유번호 `#N` → 짧은 유형명(`상승장·빠른·공격·추세추종`) → 마킹 아이콘(6종 ⭐🔥💎🎯👀🚀, **아이콘당 전략 1개**, `favorites.json {아이콘:vid}`, `/fav_set`). 펼침 body: 유형(ⓘ=시장적합)→약세장대처(ⓘ)→성적→모의평가(`btN위/36` — 약세모드 3형제는 같은 bt등수 공유). **108변이 = 유형36 × 약세모드3**(2026-06-10 풀매트릭스, v37/38=bt1위의 회피/적극 쌍 순서). 새로고침 탭 보존(라디오↔URL 동기화 + `Cache-Control: no-store`, 2026-06-11). 읽기전용 원칙, 쓰기는 `do_POST` save_params/run_sweep/variants_*/watch_*/fav_set만. 시장 탭은 장중엔 네이버 m.stock 실시간(지수+상승하락·ADR·투자자 순매수, `_get_live_market` 60s 캐시), 장외엔 EOD jsonl 폴백 (2026-06-09: 이전엔 상승하락·투자자가 EOD 고정이라 장중 안 바뀌던 것 수정) | | (트리거 없음) | on-demand | `python3 -m sim {sweep\|backtest}` | 튜닝 비교용 백테스트 스윕. signals.py 재사용·과거 일봉 되감기. 9파라미터(RR·STOP·SMA·PULLBACK·VOLUME + RSI과열/과매도·시간손절·리스크비율) 1152조합 학습/검증 분리 → `state/sim/backtest_results.json`. ⚡멀티프로세싱(2026-06-10 spawn, 워커=코어−2)+일봉/수급 프로세스 메모이즈 → 1152조합 44분→~5-7분. 데이터는 sqlite캐시 전용(키움API 0), 병목은 지표 재계산이라 캐싱 아닌 병렬화가 답. GRID 곱셈 폭발 주의. ⚠️ 종가체결·생존편향 → **상대순위**로만. 2026-06-09 스윕: 핵심 레버 `VOLUME_BREAKOUT=1.3`, 신규4종은 강세창선 미미(하락장 보험). 균형값 params.json 적용(RISK 0.01 유지). 수급은 `backfill_flow.py`(ka10059 다년치 → `flow_history.sqlite`, 2026-06-08 54종목 3만행 적재)로 반영됨(`flow_used:true`). 런타임 튜닝은 `params.json`이 config 기본값 오버라이드(엔진 매 스캔 새프로세스라 즉시 반영). **병렬 페이퍼**: `variants.json`+`state/sim/variants//` — 스윕 상위 튜닝을 각자 가상계좌로 실시간 동시 운영, 같은 라이브 시세에 다른 파라미터(애널 게이트까지 실반영), `variants_compare.json`→웹 비교 탭. `python3 -m sim variants seed N`. sim-scan이 매 스캔 메인+변이 함께 갱신 | 휴장일 self-skip·당일 평가손익 ground truth·3-탭 개편 배경은 일지(2026-05-04·05-06)와 `behive_web.py` 주석 참조. 사고 이력은 `memory/2026-05-07-behive-dup-mail.md` 등. diff --git a/agents/stock/workspace/sim/sim_web.py b/agents/stock/workspace/sim/sim_web.py index faf5d5a..3ba452b 100644 --- a/agents/stock/workspace/sim/sim_web.py +++ b/agents/stock/workspace/sim/sim_web.py @@ -8,6 +8,7 @@ sim state 파일(last_scan.json·portfolio.json·trades.jsonl)만 읽어 렌더. """ from __future__ import annotations +import hashlib import html import json import subprocess @@ -57,7 +58,7 @@ PTR_HTML = """ document.addEventListener('touchend',function(){ if(!pull)return;pull=false; var d=dy*0.55;if(d>MAX)d=MAX;dy=0; - if(d>T){c.style.transform='translateY('+(T+15)+'px)';p.style.opacity='1';if(arrow)arrow.style.transform='';p.classList.add('spinning');location.reload();} + if(d>T){c.style.transform='translateY('+(T+15)+'px)';p.style.opacity='1';if(arrow)arrow.style.transform='';p.classList.add('spinning');location.href=(window._simURL?window._simURL():location.href);} else{reset();} }); })(); @@ -74,6 +75,16 @@ REFRESH_JS = """ if(t==='acct'||t==='tune')t='lab'; /* 삭제된 탭 하위호환 */ if(t){var r=document.getElementById('tab-'+t); if(r)r.checked=true;} if(s){var rs=document.getElementById('sub-'+s); if(rs)rs.checked=true;} + /* 탭 라디오 ↔ URL 동기화 — 어떤 새로고침(당겨서/브라우저/reload)이든 보던 탭으로 돌아오게 */ + function simURL(){ + var cur=TABS.find(function(x){var e=document.getElementById('tab-'+x);return e&&e.checked;}); + var sub=SUBS.find(function(x){var e=document.getElementById('sub-'+x);return e&&e.checked;}); + return '/?t='+(cur||'lab')+(cur==='lab'?'&s='+(sub||'cmp'):'')+((cur==='watch'&&vw)?'&view='+encodeURIComponent(vw):''); + } + window._simURL=simURL; + function syncUrl(){try{history.replaceState(null,'',simURL());}catch(e){}} + document.querySelectorAll('input[name="tab"],input[name="subtab"]').forEach(function(r2){r2.addEventListener('change',syncUrl);}); + syncUrl(); function banner(msg,color){var b=document.createElement('div');b.className='saved-banner'; if(color)b.style.background=color;b.textContent=msg;document.body.appendChild(b); setTimeout(function(){b.remove();},2800);} @@ -281,7 +292,7 @@ _CHK_HELP = { '상승여력': {'t': '상승여력 (목표가 대비)', 'd': '애널리스트 평균 목표주가가 지금 가격보다 몇 % 높은지예요. +20%면 전문가들이 20% 더 오를 여지를 본다는 의미예요. 이미 목표가 근처라 여력이 적으면 매력이 줄어요.'}, '목표가리비전': {'t': '목표가 리비전 (상향/하향)', 'd': '최근 애널리스트들이 목표주가를 올리는 중인지 내리는 중인지 봐요. "상향"이면 회사 전망이 좋아지는 방향이라 긍정 신호예요. "하향"이면 반대고요.'}, '어닝서프라이즈': {'t': '어닝 서프라이즈', 'd': '가장 최근 실적이 시장이 예상했던 것(컨센서스)보다 좋았는지(+) 나빴는지(−)예요. 예상보다 잘 나오면(서프라이즈 +) 주가에 긍정적으로 작용하는 경우가 많아요.'}, - '시장강세': {'t': '시장 강세 (장 전체 분위기)', 'd': '그날 시장 전체에서 오른 종목의 비율이에요. 오른 종목이 기준(15%) 이상이면 "강세장"으로 봐요. 시장이 무너지는 날엔 좋은 종목도 같이 빠지기 쉬워서, 약세장에선 바닥잡기 매수는 잠깐 미루고 강한 돌파만 허용해요.'}, + '시장강세': {'t': '시장 강세 (장 전체 분위기)', 'd': '그날 시장 전체 분위기(상승비율+지수추세+당일등락 조합)예요. 시장이 무너지는 날엔 좋은 종목도 같이 빠지기 쉬워서 참고하는데, 이 항목 하나로 매수가 막히는 건 아니에요 — 전략의 "약세장대처" 모드에 따라 갈려요. 회피=약세면 안 삼 · 안정(기본)=돌파만 삼 · 적극=눌림목도 삼. 그래서 약세(!)인데도 적극 전략은 정상적으로 매수할 수 있어요.'}, '과열': {'t': '과열 아님 (회전율)', 'd': '그날 거래 회전율(거래량을 상장주식 수로 나눈 값)이 평소 평균보다 지나치게(3배 이상) 높지 않은지 봐요. 너무 과열되면 단기 꼭대기일 위험이 커서, 그럴 땐 신규매수를 잠깐 보류해요.'}, '돌파': {'t': '돌파 (전고점)', 'd': '현재가가 최근 고점을 뚫고 올라갔는지예요. 전고점 돌파는 새로운 상승의 출발 신호로 봐요. 거래량·회전율 급증이 함께 나오면 "진짜 돌파"로 판단해 바로 매수합니다.'}, '거래량': {'t': '거래량 급증', 'd': '그날 거래량이 평소 평균보다 크게 많은지 봐요. 거래가 확 늘었다는 건 사람들의 관심이 몰렸다는 뜻이라, 돌파에 힘이 실렸는지 확인하는 신호예요.'}, @@ -317,9 +328,15 @@ def _chips(checks) -> str: def chip(c): k = _chk_key(c.get('label')) info = f'' if k else '' + ok = c.get('ok') + mark, color = _check_mark(ok), _check_color(ok) + # 시장 강세는 그 자체로 매수를 막는 필수조건이 아니라 약세장대처 모드로 분기되는 + # 소프트 게이트 — 미충족이어도 빨간 ✗(위반 인상) 대신 노란 ! (참고) + if c.get('label') == '시장 강세' and ok is False: + mark, color = '!', '#eab308' return ( - f'' - f'{_check_mark(c.get("ok"))} {_esc(c.get("label"))}' + f'' + f'{mark} {_esc(c.get("label"))}' f'{_esc(c.get("detail"))}{info}' ) @@ -726,14 +743,14 @@ def _market_fit_words(p: dict) -> str: # 약세장 모드 단어 칩 — 비교군 행·드롭다운에서 한눈에 구분 (긴 접미사 대신). -_BEAR_WORD = {0: '회피', 1: '돌파', 2: '적극'} -_BEAR_NAME = {0: '회피 (현금화)', 1: '돌파 (기본)', 2: '적극 (눌림허용)'} +_BEAR_WORD = {0: '회피', 1: '안정', 2: '적극'} +_BEAR_NAME = {0: '회피 (현금화)', 1: '안정 (돌파만·기본)', 2: '적극 (눌림허용)'} _BEAR_DESC = { 0: '이 전략은 시장이 약세 국면(혼조·약세·급락)이면 아무것도 안 사고 현금을 지켜요.', 1: '이 전략은 시장이 약세 국면이어도 강하게 치고 오르는 돌파 종목만 사요. 바닥잡기(눌림목 매수)는 안 해요.', 2: '이 전략은 시장이 약세 국면이어도 눌림목 저가매수까지 해요. 셋 중 가장 적극적이에요.', } -_BEAR_LEGEND = '\n\n회피=약세장 매수 안 함 · 돌파=돌파만 매수(기본) · 적극=눌림목 저가매수도 함' +_BEAR_LEGEND = '\n\n회피=약세장 매수 안 함 · 안정=돌파만 매수(기본) · 적극=눌림목 저가매수도 함' def _bear_mode(p) -> int: @@ -943,17 +960,14 @@ def _compare_panel() -> str: scanned = _load(config.LAST_SCAN_PATH, {}).get('scanned_at', '')[:16].replace('T', ' ') head = (f'
실시간 누적 비교 · 마지막 스캔 {scanned or "—"} ' - f'· {len(rows_data)}개 (메인 포함)
' - '
⚠ 같은 라이브 시세에 서로 다른 튜닝 동시 운영. ' - '기간 길수록·거래 많을수록 신뢰 · 비교군 변경은 수동(코디에게 요청)
' - '
약세장대처: 회피매수 안 함 · ' - '돌파돌파만(기본) · ' - '적극눌림목도 매수 — 칩 클릭 시 설명
') + f'· 전략 {len(rows_data)}개') clear_btn = ('' if not defs else '
' f'
') - title = f'

병렬 페이퍼 비교{clear_btn}

' + bt_btn = ('') + title = f'

병렬 페이퍼 비교{clear_btn}{bt_btn}

' rows = '' for i, v in enumerate(rows_data): s = v['summary'] @@ -982,12 +996,17 @@ def _compare_panel() -> str: f'onsubmit="return confirm(\'이 변이를 삭제할까요?\')">' f'' f'') - actions = f'
{reset_btn}{del_btn}
' + det_btn = (f'📈 자세히보기') + actions = f'
{det_btn}{reset_btn}{del_btn}
' vid = v['id'] _vk = _btkey(v.get('params') or {}) bt = bt_map.get(_vk) gr = bt_grank.get(_vk) - bt_attr = gr if gr else 9999 + # 평가순 정렬 키 = 고유번호 오름차순 (#1→#108) — 번호 자체가 평가순 부여라 그대로가 가장 직관적. + # bt 미매칭 변이만 뒤로. (등수×1000+번호 방식은 #1·#37·#38… 로 보여 뒤섞인 인상 — 2026-06-11 단순화) + _vnum = int(vid[1:]) if vid[1:].isdigit() else 999 + bt_attr = _vnum if (bt and gr) else 900000 + _vnum if bt and gr: bw = f"{bt['worst']:+g}%" if bt['worst'] is not None else '—' bt_row = (f'
모의평가' @@ -1020,7 +1039,7 @@ def _compare_panel() -> str: f'{bt_row}' f'
📦 보유종목 ({s.get("open_positions",0)})' f'
{_pos_table(v["pf"])}
' - f'
📋 거래내역 ({s.get("closed_trades",0)}청산)' + f'
📋 거래내역 ({_trade_count(v["tpath"])}건 · {s.get("closed_trades",0)}청산)' f'
{_trades_table(_read_trades(v["tpath"]))}
' f'
🎯 관심종목 ({len(w)})' f'
{watch_html}
' @@ -1028,7 +1047,7 @@ def _compare_panel() -> str: f'
' ) sortbar = ('
' - '' + '' '' '' '
') @@ -1058,7 +1077,7 @@ def _compare_panel() -> str: function post(vid, icon){ fetch('/fav_set',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'}, body:'id='+encodeURIComponent(vid)+'&icon='+encodeURIComponent(icon)}) - .then(function(){location.reload();}); + .then(function(){location.href=(window._simURL?window._simURL():location.href);}); } document.addEventListener('click',function(e){ var b=e.target.closest('.fav-b'); if(!b) return; @@ -1100,6 +1119,246 @@ def _compare_panel() -> str: return title + head + sortbar + f'
{rows}
' + sort_js + fav_js +def _ret_chart_svg(series, idx_series) -> str: + """일별 누적수익률 라인차트 — 전략(실선) vs KOSPI(회색 점선, 같은 구간 등락률). + + series=[(yyyymmdd, ret%)], idx_series=[ret%|None] (series와 같은 길이).""" + if not series: + return '
아직 수익률 이력이 없어요 — 매 거래일 하나씩 쌓입니다
' + w, h = 720, 230 + pl, pr, pt, pb = 50, 14, 16, 28 + rets = [r for _, r in series] + vals = rets + [r for r in idx_series if r is not None] + [0] + lo, hi = min(vals), max(vals) + span = (hi - lo) or 1.0 + lo -= span * 0.15; hi += span * 0.15; span = hi - lo + n = len(series) + + def X(i): return pl + (w - pl - pr) * (i / max(n - 1, 1)) + def Y(v): return pt + (h - pt - pb) * (1 - (v - lo) / span) + + color = '#22c55e' if rets[-1] >= 0 else '#ef4444' + parts = [f''] + # 0% 기준선 + y축 라벨 + parts.append(f'') + for v in {round(hi - span * 0.15, 1), 0.0, round(lo + span * 0.15, 1)}: + parts.append(f'{v:+g}%') + # KOSPI 점선 + ipts = [(i, r) for i, r in enumerate(idx_series) if r is not None] + if len(ipts) >= 2: + d = ' '.join(f'{X(i):.1f},{Y(r):.1f}' for i, r in ipts) + parts.append(f'') + # 전략 실선 + 점 + if n >= 2: + d = ' '.join(f'{X(i):.1f},{Y(r):.1f}' for i, r in enumerate(rets)) + parts.append(f'') + for i, r in enumerate(rets): + parts.append(f'') + parts.append(f'{rets[-1]:+g}%') + # x축 날짜 (처음·끝, 5개 이상이면 중간도) + ticks = sorted({0, n - 1} | ({n // 2} if n >= 5 else set())) + for i in ticks: + dt = series[i][0] + parts.append(f'{dt[4:6]}/{dt[6:8]}') + parts.append('') + legend = (f'
━ 이 전략' + + (' · ┅ KOSPI(같은 구간)' if len(ipts) >= 2 else '') + '
') + return ''.join(parts) + legend + + +def _strategy_page(vid: str) -> str: + """전략 1개 자세히보기 — 수익률 차트 + 분석. /strategy?id=vN""" + from . import variants as vmod, benchmark + defs = vmod.load_variants() + v = next((x for x in defs if x['id'] == vid), None) + back = '← 비교로' + style = """""" + if not v: + return (f'' + f'{style}' + f'
{back}
전략 {_esc(vid)}을 찾을 수 없어요 (삭제됐을 수 있음)
') + params = v.get('params') or {} + bm = _bear_mode(params) + pp, tp = vmod.variant_paths(vid) + pf = Portfolio.load(pp, tp) + s = pf.summary() + ret = s.get('total_return_pct', 0) or 0 + today = datetime.now(config.KST).strftime('%Y%m%d') + bench = benchmark.compare(ret, benchmark.norm_date(pf.created_at), today) + + # 순위·마킹·관심종목 (비교 스냅샷) + cv = [c for c in (_load(vmod.COMPARE_PATH, {}) or {}).get('variants', []) if c.get('id') != 'main'] + ranked = sorted(cv, key=lambda c: c['summary'].get('total_return_pct', 0) or 0, reverse=True) + rank = {c['id']: n + 1 for n, c in enumerate(ranked)}.get(vid) + watching = next((c.get('watching', []) or [] for c in cv if c.get('id') == vid), []) + icon = {vv: ic for ic, vv in _load_favs().items()}.get(vid, '') + + # 모의평가(백테스트 등록 근거) — 비교탭과 동일 매칭(swept만) + btres = _load(config.STATE_DIR / 'backtest_results.json', None) or {} + swept = btres.get('swept_params') or [] + key = _pkey({k: params[k] for k in swept if k in params} if swept else params) + bt, _rk, _seen = None, 0, set() + for r in btres.get('results', []): + kk = _pkey(r['params']) + if kk in _seen: + continue + _seen.add(kk); _rk += 1 + if kk == key: + bt = {**r, 'rank': _rk} + break + + # 수익률 이력 (id+파라미터해시 매칭 — id 재사용 오염 방지) + KOSPI 같은 구간 + ph = hashlib.md5(json.dumps(params, sort_keys=True).encode()).hexdigest()[:8] + eh = _load(config.STATE_DIR / 'equity_history.json', {}) or {} + series = [(d, e.get('ret', 0)) for d in sorted(eh) for e in eh[d] + if e.get('id') == vid and e.get('ph') == ph] + kospi = (_load(config.STATE_DIR / 'index_history.json', {}) or {}).get('KOSPI', {}) + idx_series = [] + base = kospi.get(series[0][0]) if series else None + for d, _ in series: + c = kospi.get(d) + idx_series.append(round((c / base - 1) * 100, 2) if (c and base) else None) + + # 종합 코멘트 (결정론 — LLM 미경유) + notes = [] + rk_s = f'#{rank}위/{len(ranked)}' if rank else '순위 산정 전' + notes.append(f'운영 {len(series) or 1}일째 · 현재 {rk_s} · 누적 {ret:+.2f}%') + ak = (bench.get('KOSPI') or {}).get('alpha') + if ak is not None: + notes.append(f'같은 기간 KOSPI 대비 {ak:+.2f}%p — ' + + ('지수를 이기고 있어요' if ak > 0 else '아직 지수에 못 미쳐요' if ak < 0 else '지수와 동률')) + nt, npos = s.get('closed_trades', 0) or 0, s.get('open_positions', 0) or 0 + if not nt and not npos: + notes.append('아직 거래가 없어요 — 진입 조건 충족을 기다리는 중') + else: + if npos: + notes.append(f'현재 {npos}종목 보유 중 (주식 {s.get("held_value", 0):,}원)') + if nt: + notes.append(f'청산 {nt}건 · 승률 {s.get("win_rate_pct")}%' + + (' — 표본이 적어 아직 참고만' if nt < 5 else '')) + if bt: + tr_, te_ = bt['train'].get('total_return_pct', 0), bt['test'].get('total_return_pct', 0) + if (tr_ - te_) > 40: + notes.append('⚠ 백테스트 학습-검증 격차가 커요 — 과최적 가능성, 라이브 성적을 더 지켜봐야') + notes_html = '
    ' + ''.join(f'
  • {x}
  • ' for x in notes) + '
' + + # 모의평가 카드 + if bt: + wins = ' / '.join((f"{w['ret']:+g}%" if w.get('ret') is not None else '—') for w in bt.get('windows', [])) + worst = bt.get('worst_ret') + bt_html = ( + _kvline('전체 순위', f'#{bt["rank"]}위 (고유 조합 기준)') + + _kvline('검증 수익 / 학습 수익', f'{bt["test"].get("total_return_pct"):+g}% / {bt["train"].get("total_return_pct"):+g}%') + + _kvline('3분할 구간 수익', wins or '—') + + _kvline('최악 구간', f'{worst:+g}%' if worst is not None else '—') + + _kvline('검증 MDD / 승률 / PF', + f'{bt["test"].get("mdd_pct")}% · {bt["test"].get("win_rate_pct")}% · {bt["test"].get("profit_factor")}') + + '
과거 데이터 모의평가 — 다음날 시가 체결·슬리피지 반영, 절대수익이 아닌 상대 비교용
') + else: + bt_html = '
백테스트 기록 없음 (등록 이후 스윕 미실행)
' + + # 파라미터 표 + prow = '' + for k in sorted(params): + hlp = _TUNE_HELP.get(k, {}) + prow += (f'{_esc(hlp.get("t", k))}
{_esc(k)}' + f'{params[k]:g}') + mf_t, mf_b = _market_fit(params) + watch_html = ''.join( + f'
{_esc(it.get("name", ""))}' + f'{_esc(it.get("reason", ""))[:34]}
' + for it in watching) or '
노리는 종목 없음
' + rc = '#22c55e' if ret >= 0 else '#ef4444' + alpha_html = _alpha_inline(bench) + + return f""" + +{_esc(vid)} 전략 상세{style}
+{back} +

{rank or "—"}위 {_vid_disp(vid)} {_esc(_market_fit_words(params))} +{_BEAR_WORD[bm]} {icon}

+
{_esc(_market_fit_summary(params))} · 약세장대처: {_BEAR_NAME[bm]}
+ +
{notes_html}
+ +

📈 수익률 추이

+
{_ret_chart_svg(series, idx_series)}
+ +

현재 성적

+
+{_kvline('평가자산', f'{s.get("equity", 0):,}원')} +{_kvline('수익률', f'{ret:+.2f}%')} +{_kvline('예수금 / 주식', f'{s.get("cash", 0):,} / {s.get("held_value", 0):,}')} +{_kvline('실현손익', f'{s.get("realized_pnl", 0):,}원')} +{_kvline('거래 / 승률', f'{s.get("closed_trades", 0)}건 · {s.get("win_rate_pct")}%')} +{_kvline('MDD / 보유', f'{s.get("max_drawdown_pct", 0)}% · {s.get("open_positions", 0)}종목')} +{_kvline('지수대비(알파)', alpha_html)} +
+ +

모의평가 (등록 근거)

+
{bt_html}
+ +

전략 성격 — 어떤 시장에 강한가

+
{_esc(mf_b)}
+ +

약세장대처 — {_BEAR_NAME[bm]}

+
{_esc(_BEAR_DESC[bm])}
+ +

파라미터 ({len(params)}개)

+
{prow}
항목
+ +

보유·관심·거래

+
+
📦 보유종목 ({s.get("open_positions", 0)}){_pos_table(pf)}
+
🎯 관심종목 ({len(watching)}){watch_html}
+
📋 거래내역 ({_trade_count(tp)}건 · {s.get("closed_trades", 0)}청산){_trades_table(_read_trades(tp))}
+
+
수익률 이력은 매 거래일 EOD 기준 1점씩 누적 · 분석은 규칙 기반(LLM 미경유)
+
+{_CHK_HELP_JS} +""" + + def _engine_status(snap, asset_line) -> tuple[str, str]: """스캔 엔진 헬스 → (점 클래스 ok/idle/bad, 토스트 상세). 장중 최근스캔=초록, 장중 멈춤=빨강, 장외=대기.""" now = datetime.now(config.KST) @@ -1157,6 +1416,14 @@ def _pos_table(pf) -> str: return rows or '
보유 종목 없음
' +def _trade_count(path) -> int: + """거래로그(jsonl) 총 건수 (매수+매도).""" + try: + return sum(1 for ln in path.read_text().splitlines() if ln.strip()) + except Exception: + return 0 + + def _read_trades(path, limit=30) -> list: """거래로그(jsonl) 최근 limit건, 최신순.""" out = [] @@ -1468,6 +1735,7 @@ h3.grp{{font-size:13px;margin:16px 0 8px;color:#cbd5e1}} .bt-type .bt-type-d{{display:block;font-size:11px;font-weight:400;color:#9ca3af;margin-top:2px}} .cmp-title{{display:flex;align-items:center}} .cmp-clear{{background:#3a1518;color:#fca5a5;border:1px solid #7f1d1d;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600;cursor:pointer}} +.cmp-btlink{{background:#0f2a3f;color:#7dd3fc;border:1px solid #1e3a5f;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600;cursor:pointer;margin-left:8px;display:inline-block}} #judge-view{{background:#141b24;border:1px solid #2a3142;color:#e5e7eb;border-radius:6px;padding:3px 6px;font-size:10px;max-width:88%}} .fav-b{{background:none;border:none;font-size:13px;cursor:pointer;padding:0 2px;line-height:1;flex:0 0 auto}} .fav-none{{opacity:.35;filter:grayscale(1)}} @@ -1594,9 +1862,8 @@ input[name="tab"],input[name="subtab"]{{display:none}}

시장 동향

{market_html}
-
{cmp_html}
-

백테스트 순위표

{bt_html}
+

백테스트 순위표

{bt_html}
60초 자동 새로고침 · 당겨서 새로고침 · sim/ 가상 엔진 (실주문 아님)
@@ -1625,6 +1892,16 @@ class Handler(BaseHTTPRequestHandler): self.end_headers() self.wfile.write(body) return + if path == '/strategy': + vid = (urllib.parse.parse_qs(parsed.query).get('id') or [''])[0] + body = _strategy_page(vid).encode('utf-8') + self.send_response(200) + self.send_header('Content-Type', 'text/html; charset=utf-8') + self.send_header('Cache-Control', 'no-store') + self.send_header('Content-Length', str(len(body))) + self.end_headers() + self.wfile.write(body) + return if path not in ('/', '/index.html'): self.send_response(404) self.end_headers() @@ -1633,6 +1910,8 @@ class Handler(BaseHTTPRequestHandler): body = render_html(view=_view).encode('utf-8') self.send_response(200) self.send_header('Content-Type', 'text/html; charset=utf-8') + # 캐시 금지 — Safari 휴리스틱 캐싱이 옛 HTML/JS를 재사용해 탭 복원 로직이 구버전으로 돌던 문제 방지 + self.send_header('Cache-Control', 'no-store') self.send_header('Content-Length', str(len(body))) self.end_headers() self.wfile.write(body) diff --git a/agents/stock/workspace/state/market_indicators_history.jsonl b/agents/stock/workspace/state/market_indicators_history.jsonl index 524f3b1..a1c24c6 100644 --- a/agents/stock/workspace/state/market_indicators_history.jsonl +++ b/agents/stock/workspace/state/market_indicators_history.jsonl @@ -26,3 +26,5 @@ {"date": "2026-06-09", "market": "KOSPI", "market_label": "코스피", "rise": 774, "upper": 1, "fall": 133, "lower": 1, "steady": 15, "adr": 578.36, "personal": -6167, "foreign": -20064, "institutional": 25048, "captured_at": "2026-06-09T21:00:02.663326+09:00"} {"date": "2026-06-10", "market": "KOSDAQ", "market_label": "코스닥", "rise": 499, "upper": 6, "fall": 1176, "lower": 1, "steady": 61, "adr": 42.91, "personal": 1167, "foreign": 1420, "institutional": -1125, "captured_at": "2026-06-10T21:00:04.276904+09:00"} {"date": "2026-06-10", "market": "KOSPI", "market_label": "코스피", "rise": 343, "upper": 2, "fall": 550, "lower": 0, "steady": 28, "adr": 62.73, "personal": 48643, "foreign": -27754, "institutional": -22665, "captured_at": "2026-06-10T21:00:04.276904+09:00"} +{"date": "2026-06-11", "market": "KOSDAQ", "market_label": "코스닥", "rise": 1219, "upper": 10, "fall": 457, "lower": 0, "steady": 59, "adr": 268.93, "personal": -3634, "foreign": -3601, "institutional": 7149, "captured_at": "2026-06-11T21:00:01.845336+09:00"} +{"date": "2026-06-11", "market": "KOSPI", "market_label": "코스피", "rise": 576, "upper": 3, "fall": 320, "lower": 0, "steady": 25, "adr": 180.94, "personal": 20803, "foreign": -14640, "institutional": -7561, "captured_at": "2026-06-11T21:00:01.845336+09:00"} diff --git a/agents/stock/workspace/state/sim/equity_history.json b/agents/stock/workspace/state/sim/equity_history.json index 2b8f50f..8f47f5e 100644 --- a/agents/stock/workspace/state/sim/equity_history.json +++ b/agents/stock/workspace/state/sim/equity_history.json @@ -1 +1 @@ -{"20260610": [{"id": "main", "ph": "48693b1f", "equity": 100000000, "ret": 0.0}, {"id": "v1", "ph": "bab0fc2c", "equity": 100000000, "ret": 0.0}, {"id": "v2", "ph": "81d17cca", "equity": 100000000, "ret": 0.0}, {"id": "v3", "ph": "b6219595", "equity": 100000000, "ret": 0.0}, {"id": "v4", "ph": "ec2eb05a", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "e96ce9e2", "equity": 100000000, "ret": 0.0}, {"id": "v6", "ph": "de835eae", "equity": 100000000, "ret": 0.0}, {"id": "v7", "ph": "18c6740b", "equity": 100000000, "ret": 0.0}, {"id": "v8", "ph": "141268ab", "equity": 100000000, "ret": 0.0}, {"id": "v9", "ph": "e48c1012", "equity": 100000000, "ret": 0.0}, {"id": "v10", "ph": "e4bb2e3e", "equity": 100000000, "ret": 0.0}, {"id": "v11", "ph": "f166fb0e", "equity": 100000000, "ret": 0.0}, {"id": "v12", "ph": "8dd96f86", "equity": 100000000, "ret": 0.0}, {"id": "v13", "ph": "71a9d284", "equity": 100000000, "ret": 0.0}, {"id": "v14", "ph": "df7ce821", "equity": 100000000, "ret": 0.0}, {"id": "v15", "ph": "6294a5b8", "equity": 100000000, "ret": 0.0}, {"id": "v16", "ph": "dd1d2c77", "equity": 100000000, "ret": 0.0}, {"id": "v17", "ph": "7c8fe03d", "equity": 100000000, "ret": 0.0}, {"id": "v18", "ph": "e36cfa41", "equity": 100000000, "ret": 0.0}, {"id": "v19", "ph": "2bc2ecf2", "equity": 100000000, "ret": 0.0}, {"id": "v20", "ph": "bcc12830", "equity": 100000000, "ret": 0.0}, {"id": "v21", "ph": "956b3b16", "equity": 100000000, "ret": 0.0}, {"id": "v22", "ph": "aec632b1", "equity": 100000000, "ret": 0.0}, {"id": "v23", "ph": "9beb8c05", "equity": 100000000, "ret": 0.0}, {"id": "v24", "ph": "00b59557", "equity": 100000000, "ret": 0.0}, {"id": "v25", "ph": "2e5f3fac", "equity": 100000000, "ret": 0.0}, {"id": "v26", "ph": "33d43bc6", "equity": 100000000, "ret": 0.0}, {"id": "v27", "ph": "28e87677", "equity": 100000000, "ret": 0.0}, {"id": "v28", "ph": "e46149f5", "equity": 100000000, "ret": 0.0}, {"id": "v29", "ph": "df71f475", "equity": 100000000, "ret": 0.0}, {"id": "v30", "ph": "3dc99490", "equity": 100000000, "ret": 0.0}, {"id": "v31", "ph": "153055e6", "equity": 100000000, "ret": 0.0}, {"id": "v32", "ph": "97ad2410", "equity": 100000000, "ret": 0.0}, {"id": "v33", "ph": "d77f522d", "equity": 100000000, "ret": 0.0}, {"id": "v34", "ph": "6a183375", "equity": 100000000, "ret": 0.0}, {"id": "v35", "ph": "feebff1a", "equity": 100000000, "ret": 0.0}], "20260611": [{"id": "v62", "ph": "c6ddc17b", "equity": 100163437, "ret": 0.16}, {"id": "v64", "ph": "15b83273", "equity": 100163437, "ret": 0.16}, {"id": "v66", "ph": "db0e70a4", "equity": 100163437, "ret": 0.16}, {"id": "v68", "ph": "38c84625", "equity": 100083327, "ret": 0.08}, {"id": "v70", "ph": "6c4d4125", "equity": 100083327, "ret": 0.08}, {"id": "v72", "ph": "b8d74129", "equity": 100083327, "ret": 0.08}, {"id": "v74", "ph": "35a8e955", "equity": 100083327, "ret": 0.08}, {"id": "v76", "ph": "178928cb", "equity": 100083327, "ret": 0.08}, {"id": "v78", "ph": "655e082d", "equity": 100083327, "ret": 0.08}, {"id": "v80", "ph": "b2d56c47", "equity": 100083327, "ret": 0.08}, {"id": "v84", "ph": "95794738", "equity": 100083327, "ret": 0.08}, {"id": "v86", "ph": "935c5a1c", "equity": 100083327, "ret": 0.08}, {"id": "v1", "ph": "4874f4c9", "equity": 100000000, "ret": 0.0}, {"id": "v2", "ph": "bab0fc2c", "equity": 100000000, "ret": 0.0}, {"id": "v3", "ph": "81d17cca", "equity": 100000000, "ret": 0.0}, {"id": "v4", "ph": "b6219595", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "ec2eb05a", "equity": 100000000, "ret": 0.0}, {"id": "v6", "ph": "e96ce9e2", "equity": 100000000, "ret": 0.0}, {"id": "v7", "ph": "de835eae", "equity": 100000000, "ret": 0.0}, {"id": "v8", "ph": "18c6740b", "equity": 100000000, "ret": 0.0}, {"id": "v9", "ph": "141268ab", "equity": 100000000, "ret": 0.0}, {"id": "v10", "ph": "e48c1012", "equity": 100000000, "ret": 0.0}, {"id": "v11", "ph": "e4bb2e3e", "equity": 100000000, "ret": 0.0}, {"id": "v12", "ph": "f166fb0e", "equity": 100000000, "ret": 0.0}, {"id": "v13", "ph": "8dd96f86", "equity": 100000000, "ret": 0.0}, {"id": "v14", "ph": "71a9d284", "equity": 100000000, "ret": 0.0}, {"id": "v15", "ph": "df7ce821", "equity": 100000000, "ret": 0.0}, {"id": "v16", "ph": "6294a5b8", "equity": 100000000, "ret": 0.0}, {"id": "v17", "ph": "dd1d2c77", "equity": 100000000, "ret": 0.0}, {"id": "v18", "ph": "7c8fe03d", "equity": 100000000, "ret": 0.0}, {"id": "v19", "ph": "e36cfa41", "equity": 100000000, "ret": 0.0}, {"id": "v20", "ph": "2bc2ecf2", "equity": 100000000, "ret": 0.0}, {"id": "v21", "ph": "bcc12830", "equity": 100000000, "ret": 0.0}, {"id": "v22", "ph": "956b3b16", "equity": 100000000, "ret": 0.0}, {"id": "v23", "ph": "aec632b1", "equity": 100000000, "ret": 0.0}, {"id": "v24", "ph": "9beb8c05", "equity": 100000000, "ret": 0.0}, {"id": "v25", "ph": "00b59557", "equity": 100000000, "ret": 0.0}, {"id": "v26", "ph": "2e5f3fac", "equity": 100000000, "ret": 0.0}, {"id": "v27", "ph": "33d43bc6", "equity": 100000000, "ret": 0.0}, {"id": "v28", "ph": "28e87677", "equity": 100000000, "ret": 0.0}, {"id": "v29", "ph": "e46149f5", "equity": 100000000, "ret": 0.0}, {"id": "v30", "ph": "df71f475", "equity": 100000000, "ret": 0.0}, {"id": "v31", "ph": "3dc99490", "equity": 100000000, "ret": 0.0}, {"id": "v32", "ph": "153055e6", "equity": 100000000, "ret": 0.0}, {"id": "v33", "ph": "97ad2410", "equity": 100000000, "ret": 0.0}, {"id": "v34", "ph": "d77f522d", "equity": 100000000, "ret": 0.0}, {"id": "v35", "ph": "6a183375", "equity": 100000000, "ret": 0.0}, {"id": "v36", "ph": "feebff1a", "equity": 100000000, "ret": 0.0}, {"id": "v37", "ph": "fb2247aa", "equity": 100000000, "ret": 0.0}, {"id": "v38", "ph": "9b9083ae", "equity": 100000000, "ret": 0.0}, {"id": "v39", "ph": "11c27236", "equity": 100000000, "ret": 0.0}, {"id": "v41", "ph": "e9d84e84", "equity": 100000000, "ret": 0.0}, {"id": "v43", "ph": "94ea3b53", "equity": 100000000, "ret": 0.0}, {"id": "v45", "ph": "964276a8", "equity": 100000000, "ret": 0.0}, {"id": "v46", "ph": "7dc0e360", "equity": 100000000, "ret": 0.0}, {"id": "v47", "ph": "ed758fcf", "equity": 100000000, "ret": 0.0}, {"id": "v49", "ph": "cdba73e0", "equity": 100000000, "ret": 0.0}, {"id": "v50", "ph": "690a50b5", "equity": 100000000, "ret": 0.0}, {"id": "v51", "ph": "21a98e46", "equity": 100000000, "ret": 0.0}, {"id": "v52", "ph": "c1939d0b", "equity": 100000000, "ret": 0.0}, {"id": "v53", "ph": "2391ee16", "equity": 100000000, "ret": 0.0}, {"id": "v54", "ph": "b975742e", "equity": 100000000, "ret": 0.0}, {"id": "v55", "ph": "2c44de9b", "equity": 100000000, "ret": 0.0}, {"id": "v56", "ph": "5d99704f", "equity": 100000000, "ret": 0.0}, {"id": "v57", "ph": "e7e98b6d", "equity": 100000000, "ret": 0.0}, {"id": "v58", "ph": "f1e52f55", "equity": 100000000, "ret": 0.0}, {"id": "v59", "ph": "1858e2ec", "equity": 100000000, "ret": 0.0}, {"id": "v60", "ph": "52560b06", "equity": 100000000, "ret": 0.0}, {"id": "v61", "ph": "6e870d25", "equity": 100000000, "ret": 0.0}, {"id": "v63", "ph": "9698b6a4", "equity": 100000000, "ret": 0.0}, {"id": "v65", "ph": "5b96fe5c", "equity": 100000000, "ret": 0.0}, {"id": "v67", "ph": "811c76b7", "equity": 100000000, "ret": 0.0}, {"id": "v69", "ph": "b896a0b0", "equity": 100000000, "ret": 0.0}, {"id": "v71", "ph": "900a188c", "equity": 100000000, "ret": 0.0}, {"id": "v73", "ph": "2d287be4", "equity": 100000000, "ret": 0.0}, {"id": "v75", "ph": "14f10e78", "equity": 100000000, "ret": 0.0}, {"id": "v77", "ph": "86dadea0", "equity": 100000000, "ret": 0.0}, {"id": "v79", "ph": "61b964d8", "equity": 100000000, "ret": 0.0}, {"id": "v81", "ph": "a6eac1e4", "equity": 100000000, "ret": 0.0}, {"id": "v82", "ph": "01847af6", "equity": 100000000, "ret": 0.0}, {"id": "v83", "ph": "1b98a0fc", "equity": 100000000, "ret": 0.0}, {"id": "v85", "ph": "5ca17df0", "equity": 100000000, "ret": 0.0}, {"id": "v87", "ph": "c0be98c0", "equity": 100000000, "ret": 0.0}, {"id": "v88", "ph": "733579ce", "equity": 100000000, "ret": 0.0}, {"id": "v89", "ph": "c49d5680", "equity": 100000000, "ret": 0.0}, {"id": "v91", "ph": "5674a3d7", "equity": 100000000, "ret": 0.0}, {"id": "v92", "ph": "14a13097", "equity": 100000000, "ret": 0.0}, {"id": "v93", "ph": "f10d4e45", "equity": 100000000, "ret": 0.0}, {"id": "v94", "ph": "3e5d6b8a", "equity": 100000000, "ret": 0.0}, {"id": "v95", "ph": "7e28e756", "equity": 100000000, "ret": 0.0}, {"id": "v96", "ph": "095b119f", "equity": 100000000, "ret": 0.0}, {"id": "v97", "ph": "ebf31977", "equity": 100000000, "ret": 0.0}, {"id": "v99", "ph": "fb39409b", "equity": 100000000, "ret": 0.0}, {"id": "v100", "ph": "ffa9571a", "equity": 100000000, "ret": 0.0}, {"id": "v101", "ph": "c4354346", "equity": 100000000, "ret": 0.0}, {"id": "v102", "ph": "e1601afe", "equity": 100000000, "ret": 0.0}, {"id": "v103", "ph": "75b0a37c", "equity": 100000000, "ret": 0.0}, {"id": "v104", "ph": "013c3fde", "equity": 100000000, "ret": 0.0}, {"id": "v105", "ph": "88395429", "equity": 100000000, "ret": 0.0}, {"id": "v107", "ph": "be5cd36b", "equity": 100000000, "ret": 0.0}, {"id": "v108", "ph": "67a6679a", "equity": 100000000, "ret": 0.0}, {"id": "v48", "ph": "18854c6a", "equity": 99919458, "ret": -0.08}, {"id": "v90", "ph": "86e09c47", "equity": 99919458, "ret": -0.08}, {"id": "v98", "ph": "266fc53f", "equity": 99919458, "ret": -0.08}, {"id": "v106", "ph": "d0f5fbc1", "equity": 99919458, "ret": -0.08}, {"id": "v40", "ph": "70731d89", "equity": 99864085, "ret": -0.14}, {"id": "v42", "ph": "f36fddc6", "equity": 99864085, "ret": -0.14}, {"id": "v44", "ph": "364ea434", "equity": 99864085, "ret": -0.14}]} \ No newline at end of file +{"20260610": [{"id": "main", "ph": "48693b1f", "equity": 100000000, "ret": 0.0}, {"id": "v1", "ph": "bab0fc2c", "equity": 100000000, "ret": 0.0}, {"id": "v2", "ph": "81d17cca", "equity": 100000000, "ret": 0.0}, {"id": "v3", "ph": "b6219595", "equity": 100000000, "ret": 0.0}, {"id": "v4", "ph": "ec2eb05a", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "e96ce9e2", "equity": 100000000, "ret": 0.0}, {"id": "v6", "ph": "de835eae", "equity": 100000000, "ret": 0.0}, {"id": "v7", "ph": "18c6740b", "equity": 100000000, "ret": 0.0}, {"id": "v8", "ph": "141268ab", "equity": 100000000, "ret": 0.0}, {"id": "v9", "ph": "e48c1012", "equity": 100000000, "ret": 0.0}, {"id": "v10", "ph": "e4bb2e3e", "equity": 100000000, "ret": 0.0}, {"id": "v11", "ph": "f166fb0e", "equity": 100000000, "ret": 0.0}, {"id": "v12", "ph": "8dd96f86", "equity": 100000000, "ret": 0.0}, {"id": "v13", "ph": "71a9d284", "equity": 100000000, "ret": 0.0}, {"id": "v14", "ph": "df7ce821", "equity": 100000000, "ret": 0.0}, {"id": "v15", "ph": "6294a5b8", "equity": 100000000, "ret": 0.0}, {"id": "v16", "ph": "dd1d2c77", "equity": 100000000, "ret": 0.0}, {"id": "v17", "ph": "7c8fe03d", "equity": 100000000, "ret": 0.0}, {"id": "v18", "ph": "e36cfa41", "equity": 100000000, "ret": 0.0}, {"id": "v19", "ph": "2bc2ecf2", "equity": 100000000, "ret": 0.0}, {"id": "v20", "ph": "bcc12830", "equity": 100000000, "ret": 0.0}, {"id": "v21", "ph": "956b3b16", "equity": 100000000, "ret": 0.0}, {"id": "v22", "ph": "aec632b1", "equity": 100000000, "ret": 0.0}, {"id": "v23", "ph": "9beb8c05", "equity": 100000000, "ret": 0.0}, {"id": "v24", "ph": "00b59557", "equity": 100000000, "ret": 0.0}, {"id": "v25", "ph": "2e5f3fac", "equity": 100000000, "ret": 0.0}, {"id": "v26", "ph": "33d43bc6", "equity": 100000000, "ret": 0.0}, {"id": "v27", "ph": "28e87677", "equity": 100000000, "ret": 0.0}, {"id": "v28", "ph": "e46149f5", "equity": 100000000, "ret": 0.0}, {"id": "v29", "ph": "df71f475", "equity": 100000000, "ret": 0.0}, {"id": "v30", "ph": "3dc99490", "equity": 100000000, "ret": 0.0}, {"id": "v31", "ph": "153055e6", "equity": 100000000, "ret": 0.0}, {"id": "v32", "ph": "97ad2410", "equity": 100000000, "ret": 0.0}, {"id": "v33", "ph": "d77f522d", "equity": 100000000, "ret": 0.0}, {"id": "v34", "ph": "6a183375", "equity": 100000000, "ret": 0.0}, {"id": "v35", "ph": "feebff1a", "equity": 100000000, "ret": 0.0}], "20260611": [{"id": "v62", "ph": "c6ddc17b", "equity": 100304837, "ret": 0.3}, {"id": "v64", "ph": "15b83273", "equity": 100304837, "ret": 0.3}, {"id": "v66", "ph": "db0e70a4", "equity": 100304837, "ret": 0.3}, {"id": "v68", "ph": "38c84625", "equity": 100159127, "ret": 0.16}, {"id": "v70", "ph": "6c4d4125", "equity": 100159127, "ret": 0.16}, {"id": "v72", "ph": "b8d74129", "equity": 100159127, "ret": 0.16}, {"id": "v74", "ph": "35a8e955", "equity": 100159127, "ret": 0.16}, {"id": "v76", "ph": "178928cb", "equity": 100159127, "ret": 0.16}, {"id": "v78", "ph": "655e082d", "equity": 100159127, "ret": 0.16}, {"id": "v80", "ph": "b2d56c47", "equity": 100159127, "ret": 0.16}, {"id": "v84", "ph": "95794738", "equity": 100159127, "ret": 0.16}, {"id": "v86", "ph": "935c5a1c", "equity": 100159127, "ret": 0.16}, {"id": "v22", "ph": "956b3b16", "equity": 100008869, "ret": 0.01}, {"id": "v24", "ph": "9beb8c05", "equity": 100008869, "ret": 0.01}, {"id": "v25", "ph": "00b59557", "equity": 100008869, "ret": 0.01}, {"id": "v79", "ph": "61b964d8", "equity": 100008869, "ret": 0.01}, {"id": "v83", "ph": "1b98a0fc", "equity": 100008869, "ret": 0.01}, {"id": "v85", "ph": "5ca17df0", "equity": 100008869, "ret": 0.01}, {"id": "v1", "ph": "4874f4c9", "equity": 100000000, "ret": 0.0}, {"id": "v2", "ph": "bab0fc2c", "equity": 100000000, "ret": 0.0}, {"id": "v3", "ph": "81d17cca", "equity": 100000000, "ret": 0.0}, {"id": "v4", "ph": "b6219595", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "ec2eb05a", "equity": 100000000, "ret": 0.0}, {"id": "v6", "ph": "e96ce9e2", "equity": 100000000, "ret": 0.0}, {"id": "v7", "ph": "de835eae", "equity": 100000000, "ret": 0.0}, {"id": "v8", "ph": "18c6740b", "equity": 100000000, "ret": 0.0}, {"id": "v9", "ph": "141268ab", "equity": 100000000, "ret": 0.0}, {"id": "v10", "ph": "e48c1012", "equity": 100000000, "ret": 0.0}, {"id": "v11", "ph": "e4bb2e3e", "equity": 100000000, "ret": 0.0}, {"id": "v12", "ph": "f166fb0e", "equity": 100000000, "ret": 0.0}, {"id": "v13", "ph": "8dd96f86", "equity": 100000000, "ret": 0.0}, {"id": "v14", "ph": "71a9d284", "equity": 100000000, "ret": 0.0}, {"id": "v15", "ph": "df7ce821", "equity": 100000000, "ret": 0.0}, {"id": "v16", "ph": "6294a5b8", "equity": 100000000, "ret": 0.0}, {"id": "v17", "ph": "dd1d2c77", "equity": 100000000, "ret": 0.0}, {"id": "v18", "ph": "7c8fe03d", "equity": 100000000, "ret": 0.0}, {"id": "v19", "ph": "e36cfa41", "equity": 100000000, "ret": 0.0}, {"id": "v20", "ph": "2bc2ecf2", "equity": 100000000, "ret": 0.0}, {"id": "v21", "ph": "bcc12830", "equity": 100000000, "ret": 0.0}, {"id": "v23", "ph": "aec632b1", "equity": 100000000, "ret": 0.0}, {"id": "v26", "ph": "2e5f3fac", "equity": 100000000, "ret": 0.0}, {"id": "v27", "ph": "33d43bc6", "equity": 100000000, "ret": 0.0}, {"id": "v28", "ph": "28e87677", "equity": 100000000, "ret": 0.0}, {"id": "v29", "ph": "e46149f5", "equity": 100000000, "ret": 0.0}, {"id": "v30", "ph": "df71f475", "equity": 100000000, "ret": 0.0}, {"id": "v31", "ph": "3dc99490", "equity": 100000000, "ret": 0.0}, {"id": "v32", "ph": "153055e6", "equity": 100000000, "ret": 0.0}, {"id": "v33", "ph": "97ad2410", "equity": 100000000, "ret": 0.0}, {"id": "v34", "ph": "d77f522d", "equity": 100000000, "ret": 0.0}, {"id": "v35", "ph": "6a183375", "equity": 100000000, "ret": 0.0}, {"id": "v36", "ph": "feebff1a", "equity": 100000000, "ret": 0.0}, {"id": "v37", "ph": "fb2247aa", "equity": 100000000, "ret": 0.0}, {"id": "v38", "ph": "9b9083ae", "equity": 100000000, "ret": 0.0}, {"id": "v39", "ph": "11c27236", "equity": 100000000, "ret": 0.0}, {"id": "v41", "ph": "e9d84e84", "equity": 100000000, "ret": 0.0}, {"id": "v43", "ph": "94ea3b53", "equity": 100000000, "ret": 0.0}, {"id": "v45", "ph": "964276a8", "equity": 100000000, "ret": 0.0}, {"id": "v46", "ph": "7dc0e360", "equity": 100000000, "ret": 0.0}, {"id": "v47", "ph": "ed758fcf", "equity": 100000000, "ret": 0.0}, {"id": "v49", "ph": "cdba73e0", "equity": 100000000, "ret": 0.0}, {"id": "v50", "ph": "690a50b5", "equity": 100000000, "ret": 0.0}, {"id": "v51", "ph": "21a98e46", "equity": 100000000, "ret": 0.0}, {"id": "v52", "ph": "c1939d0b", "equity": 100000000, "ret": 0.0}, {"id": "v53", "ph": "2391ee16", "equity": 100000000, "ret": 0.0}, {"id": "v54", "ph": "b975742e", "equity": 100000000, "ret": 0.0}, {"id": "v55", "ph": "2c44de9b", "equity": 100000000, "ret": 0.0}, {"id": "v56", "ph": "5d99704f", "equity": 100000000, "ret": 0.0}, {"id": "v57", "ph": "e7e98b6d", "equity": 100000000, "ret": 0.0}, {"id": "v58", "ph": "f1e52f55", "equity": 100000000, "ret": 0.0}, {"id": "v59", "ph": "1858e2ec", "equity": 100000000, "ret": 0.0}, {"id": "v60", "ph": "52560b06", "equity": 100000000, "ret": 0.0}, {"id": "v61", "ph": "6e870d25", "equity": 100000000, "ret": 0.0}, {"id": "v63", "ph": "9698b6a4", "equity": 100000000, "ret": 0.0}, {"id": "v65", "ph": "5b96fe5c", "equity": 100000000, "ret": 0.0}, {"id": "v67", "ph": "811c76b7", "equity": 100000000, "ret": 0.0}, {"id": "v69", "ph": "b896a0b0", "equity": 100000000, "ret": 0.0}, {"id": "v71", "ph": "900a188c", "equity": 100000000, "ret": 0.0}, {"id": "v73", "ph": "2d287be4", "equity": 100000000, "ret": 0.0}, {"id": "v75", "ph": "14f10e78", "equity": 100000000, "ret": 0.0}, {"id": "v77", "ph": "86dadea0", "equity": 100000000, "ret": 0.0}, {"id": "v81", "ph": "a6eac1e4", "equity": 100000000, "ret": 0.0}, {"id": "v82", "ph": "01847af6", "equity": 100000000, "ret": 0.0}, {"id": "v87", "ph": "c0be98c0", "equity": 100000000, "ret": 0.0}, {"id": "v88", "ph": "733579ce", "equity": 100000000, "ret": 0.0}, {"id": "v89", "ph": "c49d5680", "equity": 100000000, "ret": 0.0}, {"id": "v91", "ph": "5674a3d7", "equity": 100000000, "ret": 0.0}, {"id": "v92", "ph": "14a13097", "equity": 100000000, "ret": 0.0}, {"id": "v93", "ph": "f10d4e45", "equity": 100000000, "ret": 0.0}, {"id": "v94", "ph": "3e5d6b8a", "equity": 100000000, "ret": 0.0}, {"id": "v95", "ph": "7e28e756", "equity": 100000000, "ret": 0.0}, {"id": "v96", "ph": "095b119f", "equity": 100000000, "ret": 0.0}, {"id": "v97", "ph": "ebf31977", "equity": 100000000, "ret": 0.0}, {"id": "v99", "ph": "fb39409b", "equity": 100000000, "ret": 0.0}, {"id": "v100", "ph": "ffa9571a", "equity": 100000000, "ret": 0.0}, {"id": "v101", "ph": "c4354346", "equity": 100000000, "ret": 0.0}, {"id": "v102", "ph": "e1601afe", "equity": 100000000, "ret": 0.0}, {"id": "v103", "ph": "75b0a37c", "equity": 100000000, "ret": 0.0}, {"id": "v104", "ph": "013c3fde", "equity": 100000000, "ret": 0.0}, {"id": "v105", "ph": "88395429", "equity": 100000000, "ret": 0.0}, {"id": "v107", "ph": "be5cd36b", "equity": 100000000, "ret": 0.0}, {"id": "v108", "ph": "67a6679a", "equity": 100000000, "ret": 0.0}, {"id": "v48", "ph": "18854c6a", "equity": 99935458, "ret": -0.06}, {"id": "v90", "ph": "86e09c47", "equity": 99935458, "ret": -0.06}, {"id": "v98", "ph": "266fc53f", "equity": 99935458, "ret": -0.06}, {"id": "v106", "ph": "d0f5fbc1", "equity": 99935458, "ret": -0.06}, {"id": "v40", "ph": "70731d89", "equity": 99891085, "ret": -0.11}, {"id": "v42", "ph": "f36fddc6", "equity": 99891085, "ret": -0.11}, {"id": "v44", "ph": "364ea434", "equity": 99891085, "ret": -0.11}]} \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/index_history.json b/agents/stock/workspace/state/sim/index_history.json index f25a118..bb50012 100644 --- a/agents/stock/workspace/state/sim/index_history.json +++ b/agents/stock/workspace/state/sim/index_history.json @@ -1 +1 @@ -{"KOSPI": {"20260608": 7484.41, "20260605": 8160.59, "20260604": 8639.41, "20260602": 8801.49, "20260601": 8788.38, "20260529": 8476.15, "20260528": 8185.29, "20260527": 8228.7, "20260526": 8047.51, "20260522": 7847.71, "20260521": 7815.59, "20260520": 7208.95, "20260519": 7271.66, "20260518": 7516.04, "20260515": 7493.18, "20260514": 7981.41, "20260513": 7844.01, "20260512": 7643.15, "20260511": 7822.24, "20260508": 7498.0, "20260507": 7490.05, "20260506": 7384.56, "20260504": 6936.99, "20260430": 6598.87, "20260429": 6690.9, "20260428": 6641.02, "20260427": 6615.03, "20260424": 6475.63, "20260423": 6475.81, "20260422": 6417.93, "20260421": 6388.47, "20260420": 6219.09, "20260417": 6191.92, "20260416": 6226.05, "20260415": 6091.39, "20260414": 5967.75, "20260413": 5808.62, "20260410": 5858.87, "20260409": 5778.01, "20260408": 5872.34, "20260407": 5494.78, "20260406": 5450.33, "20260403": 5377.3, "20260402": 5234.05, "20260401": 5478.7, "20260331": 5052.46, "20260330": 5277.3, "20260327": 5438.87, "20260326": 5460.46, "20260325": 5642.21, "20260324": 5553.92, "20260323": 5405.75, "20260320": 5781.2, "20260319": 5763.22, "20260318": 5925.03, "20260317": 5640.48, "20260316": 5549.85, "20260313": 5487.24, "20260312": 5583.25, "20260311": 5609.95, "20260310": 5532.59, "20260309": 5251.87, "20260306": 5584.87, "20260305": 5583.9, "20260304": 5093.54, "20260303": 5791.91, "20260227": 6244.13, "20260226": 6307.27, "20260225": 6083.86, "20260224": 5969.64, "20260223": 5846.09, "20260220": 5808.53, "20260219": 5677.25, "20260213": 5507.01, "20260212": 5522.27, "20260211": 5354.49, "20260210": 5301.69, "20260209": 5298.04, "20260206": 5089.14, "20260205": 5163.57, "20260204": 5371.1, "20260203": 5288.08, "20260202": 4949.67, "20260130": 5224.36, "20260129": 5221.25, "20260128": 5170.81, "20260127": 5084.85, "20260126": 4949.59, "20260123": 4990.07, "20260122": 4952.53, "20260121": 4909.93, "20260120": 4885.75, "20260119": 4904.66, "20260116": 4840.74, "20260115": 4797.55, "20260114": 4723.1, "20260113": 4692.64, "20260112": 4624.79, "20260109": 4586.32, "20260108": 4552.37, "20260107": 4551.06, "20260106": 4525.48, "20260105": 4457.52, "20260102": 4309.63, "20251230": 4214.17, "20251229": 4220.56, "20251226": 4129.68, "20251224": 4108.62, "20251223": 4117.32, "20251222": 4105.93, "20251219": 4020.55, "20251218": 3994.51, "20251217": 4056.41, "20251216": 3999.13, "20251215": 4090.59, "20251212": 4167.16, "20251211": 4110.62, "20251210": 4135.0, "20251209": 4143.55, "20251208": 4154.85, "20251205": 4100.05, "20251204": 4028.51, "20251203": 4036.3, "20251202": 3994.93, "20251201": 3920.37, "20251128": 3926.59, "20251127": 3986.91, "20251126": 3960.87, "20251125": 3857.78, "20251124": 3846.06, "20251121": 3853.26, "20251120": 4004.85, "20251119": 3929.51, "20251118": 3953.62, "20251117": 4089.25, "20251114": 4011.57, "20251113": 4170.63, "20251112": 4150.39, "20251111": 4106.39, "20251110": 4073.24, "20251107": 3953.76, "20251106": 4026.45, "20251105": 4004.42, "20251104": 4121.74, "20251103": 4221.87, "20251031": 4107.5, "20251030": 4086.89, "20251029": 4081.15, "20251028": 4010.41, "20251027": 4042.83, "20251024": 3941.59, "20251023": 3845.56, "20251022": 3883.68, "20251021": 3823.84, "20251020": 3814.69, "20251017": 3748.89, "20251016": 3748.37, "20251015": 3657.28, "20251014": 3561.81, "20251013": 3584.55, "20251010": 3610.6, "20251002": 3549.21, "20251001": 3455.83, "20250930": 3424.6, "20250929": 3431.21, "20250926": 3386.05, "20250925": 3471.11, "20250924": 3472.14, "20250923": 3486.19, "20250922": 3468.65, "20250919": 3445.24, "20250918": 3461.3, "20250917": 3413.4, "20250916": 3449.62, "20250915": 3407.31, "20250912": 3395.54, "20250911": 3344.2, "20250910": 3314.53, "20250909": 3260.05, "20250908": 3219.59, "20250905": 3205.12, "20250904": 3200.83, "20250903": 3184.42, "20250902": 3172.35, "20250901": 3142.93, "20250829": 3186.01, "20250828": 3196.32, "20250827": 3187.16, "20250826": 3179.36, "20250825": 3209.86, "20250822": 3168.73, "20250821": 3141.74, "20250820": 3130.09, "20250819": 3151.56, "20250818": 3177.28, "20250814": 3225.66, "20250813": 3224.37, "20250812": 3189.91, "20250811": 3206.77, "20250808": 3210.01, "20250807": 3227.68, "20250806": 3198.14, "20250805": 3198.0, "20250804": 3147.75, "20250801": 3119.41, "20250731": 3245.44, "20250730": 3254.47, "20250729": 3230.57, "20250728": 3209.52, "20250725": 3196.05, "20250724": 3190.45, "20250723": 3183.77, "20250722": 3169.94, "20250721": 3210.81, "20250718": 3188.07, "20250717": 3192.29, "20250716": 3186.38, "20250715": 3215.28, "20250714": 3202.03, "20250711": 3175.77, "20250710": 3183.23, "20250709": 3133.74, "20250708": 3114.95, "20250707": 3059.47, "20250704": 3054.28, "20250703": 3116.27, "20250702": 3075.06, "20250701": 3089.65, "20250630": 3071.7, "20250627": 3055.94, "20250626": 3079.56, "20250625": 3108.25, "20250624": 3103.64, "20250623": 3014.47, "20250620": 3021.84, "20250619": 2977.74, "20250618": 2972.19, "20250617": 2950.3, "20250616": 2946.66, "20250613": 2894.62, "20250612": 2920.03, "20250611": 2907.04, "20250610": 2871.85, "20250609": 2855.77, "20250605": 2812.05, "20250604": 2770.84, "20250602": 2698.97, "20250530": 2697.67, "20250529": 2720.64, "20250528": 2670.15, "20250527": 2637.22, "20250526": 2644.4, "20250523": 2592.09, "20250522": 2593.67, "20250521": 2625.58, "20250520": 2601.8, "20250519": 2603.42, "20250516": 2626.87, "20250515": 2621.36, "20250514": 2640.57, "20250513": 2608.42, "20250512": 2607.33, "20250509": 2577.27, "20250508": 2579.48, "20250507": 2573.8, "20250502": 2559.79, "20250430": 2556.61, "20250429": 2565.42, "20250428": 2548.86, "20250425": 2546.3, "20250424": 2522.33, "20250423": 2525.56, "20250422": 2486.64, "20250421": 2488.42, "20250418": 2483.42, "20250417": 2470.41, "20250416": 2447.43, "20250415": 2477.41, "20250414": 2455.89, "20250411": 2432.72, "20250410": 2445.06, "20250409": 2293.7, "20250408": 2334.23, "20250407": 2328.2, "20250404": 2465.42, "20250403": 2486.7, "20250402": 2505.86, "20250401": 2521.39, "20250331": 2481.12, "20250328": 2557.98, "20250327": 2607.15, "20250326": 2643.94, "20250325": 2615.81, "20250324": 2632.07, "20250321": 2643.13, "20250320": 2637.1, "20250319": 2628.62, "20250318": 2612.34, "20250317": 2610.69, "20250314": 2566.36, "20250313": 2573.64, "20250312": 2574.82, "20250311": 2537.6, "20250310": 2570.39, "20250307": 2563.48, "20250306": 2576.16, "20250305": 2558.13, "20250304": 2528.92, "20250228": 2532.78, "20250227": 2621.75, "20250226": 2641.09, "20250225": 2630.29, "20250224": 2645.27, "20250221": 2654.58, "20250220": 2654.06, "20250219": 2671.52, "20250218": 2626.81, "20250217": 2610.42, "20250214": 2591.05, "20250213": 2583.17, "20250212": 2548.39, "20250211": 2539.05, "20250210": 2521.27, "20250207": 2521.92, "20250206": 2536.75, "20250205": 2509.27, "20250204": 2481.69, "20250203": 2453.95, "20250131": 2517.37, "20250124": 2536.8, "20250123": 2515.49, "20250122": 2547.06, "20250121": 2518.03, "20250120": 2520.05, "20250117": 2523.55, "20250116": 2527.49, "20250115": 2496.81, "20250114": 2497.4, "20250113": 2489.56, "20250110": 2515.78, "20250109": 2521.9, "20250108": 2521.05, "20250107": 2492.1, "20250106": 2488.64, "20250103": 2441.92, "20250102": 2398.94, "20241230": 2399.49, "20241227": 2404.77, "20241226": 2429.67, "20241224": 2440.52, "20241223": 2442.01, "20241220": 2404.15, "20241219": 2435.93, "20241218": 2484.43, "20241217": 2456.81, "20241216": 2488.97, "20241213": 2494.46, "20241212": 2482.12, "20241211": 2442.51, "20241210": 2417.84, "20241209": 2360.58, "20241206": 2428.16, "20241205": 2441.85, "20241204": 2464.0, "20241203": 2500.1, "20241202": 2454.48, "20241129": 2455.91, "20241128": 2504.67, "20241127": 2503.06, "20241126": 2520.36, "20241125": 2534.34, "20241122": 2501.24, "20241121": 2480.63, "20241120": 2482.29, "20241119": 2471.95, "20241118": 2469.07, "20241115": 2416.86, "20241114": 2418.86, "20241113": 2417.08, "20241112": 2482.57, "20241111": 2531.66, "20241108": 2561.15, "20241107": 2564.63, "20241106": 2563.51, "20241105": 2576.88, "20241104": 2588.97, "20241101": 2542.36, "20241031": 2556.15, "20241030": 2593.79, "20241029": 2617.8, "20241028": 2612.43, "20241025": 2583.27, "20241024": 2581.03, "20241023": 2599.62, "20241022": 2570.7, "20241021": 2604.92, "20241018": 2593.82, "20241017": 2609.3, "20241016": 2610.36, "20241015": 2633.45, "20260609": 8096.93, "20260610": 7730.82, "20260611": 7600.32}, "KOSDAQ": {"20260608": 911.39, "20260605": 1002.44, "20260604": 1049.73, "20260602": 1026.03, "20260601": 1050.03, "20260529": 1074.8, "20260528": 1104.36, "20260527": 1133.13, "20260526": 1172.52, "20260522": 1161.13, "20260521": 1105.97, "20260520": 1056.07, "20260519": 1084.36, "20260518": 1111.09, "20260515": 1129.82, "20260514": 1191.09, "20260513": 1176.93, "20260512": 1179.29, "20260511": 1207.34, "20260508": 1207.72, "20260507": 1199.18, "20260506": 1210.17, "20260504": 1213.74, "20260430": 1192.35, "20260429": 1220.26, "20260428": 1215.58, "20260427": 1226.18, "20260424": 1203.84, "20260423": 1174.31, "20260422": 1181.12, "20260421": 1179.03, "20260420": 1174.85, "20260417": 1170.04, "20260416": 1162.97, "20260415": 1152.43, "20260414": 1121.88, "20260413": 1099.84, "20260410": 1093.63, "20260409": 1076.0, "20260408": 1089.85, "20260407": 1036.73, "20260406": 1047.37, "20260403": 1063.75, "20260402": 1056.34, "20260401": 1116.18, "20260331": 1052.39, "20260330": 1107.05, "20260327": 1141.51, "20260326": 1136.64, "20260325": 1159.55, "20260324": 1121.44, "20260323": 1096.89, "20260320": 1161.52, "20260319": 1143.48, "20260318": 1164.38, "20260317": 1136.94, "20260316": 1138.29, "20260313": 1152.96, "20260312": 1148.4, "20260311": 1136.83, "20260310": 1137.68, "20260309": 1102.28, "20260306": 1154.67, "20260305": 1116.41, "20260304": 978.44, "20260303": 1137.7, "20260227": 1192.78, "20260226": 1188.15, "20260225": 1165.25, "20260224": 1165.0, "20260223": 1151.99, "20260220": 1154.0, "20260219": 1160.71, "20260213": 1106.08, "20260212": 1125.99, "20260211": 1114.87, "20260210": 1115.2, "20260209": 1127.55, "20260206": 1080.77, "20260205": 1108.41, "20260204": 1149.43, "20260203": 1144.33, "20260202": 1098.36, "20260130": 1149.44, "20260129": 1164.41, "20260128": 1133.52, "20260127": 1082.59, "20260126": 1064.41, "20260123": 993.93, "20260122": 970.35, "20260121": 951.29, "20260120": 976.37, "20260119": 968.36, "20260116": 954.59, "20260115": 951.16, "20260114": 942.18, "20260113": 948.98, "20260112": 949.81, "20260109": 947.92, "20260108": 944.06, "20260107": 947.39, "20260106": 955.97, "20260105": 957.5, "20260102": 945.57, "20251230": 925.47, "20251229": 932.59, "20251226": 919.67, "20251224": 915.2, "20251223": 919.56, "20251222": 929.14, "20251219": 915.27, "20251218": 901.33, "20251217": 911.07, "20251216": 916.11, "20251215": 938.83, "20251212": 937.34, "20251211": 934.64, "20251210": 935.0, "20251209": 931.35, "20251208": 927.79, "20251205": 924.74, "20251204": 929.83, "20251203": 932.01, "20251202": 928.42, "20251201": 922.38, "20251128": 912.67, "20251127": 880.06, "20251126": 877.32, "20251125": 856.03, "20251124": 856.44, "20251121": 863.95, "20251120": 891.94, "20251119": 871.32, "20251118": 878.7, "20251117": 902.67, "20251114": 897.9, "20251113": 918.37, "20251112": 906.51, "20251111": 884.27, "20251110": 888.35, "20251107": 876.81, "20251106": 898.17, "20251105": 901.89, "20251104": 926.57, "20251103": 914.55, "20251031": 900.42, "20251030": 890.86, "20251029": 901.59, "20251028": 903.3, "20251027": 902.7, "20251024": 883.08, "20251023": 872.03, "20251022": 879.15, "20251021": 872.5, "20251020": 875.77, "20251017": 859.54, "20251016": 865.41, "20251015": 864.72, "20251014": 847.96, "20251013": 860.49, "20251010": 859.49, "20251002": 854.25, "20251001": 845.34, "20250930": 841.99, "20250929": 846.71, "20250926": 835.19, "20250925": 852.48, "20250924": 860.94, "20250923": 872.21, "20250922": 874.36, "20250919": 863.11, "20250918": 857.11, "20250917": 845.53, "20250916": 851.84, "20250915": 852.69, "20250912": 847.08, "20250911": 834.76, "20250910": 833.0, "20250909": 824.82, "20250908": 818.6, "20250905": 811.4, "20250904": 805.42, "20250903": 796.81, "20250902": 794.0, "20250901": 785.0, "20250829": 796.91, "20250828": 798.43, "20250827": 801.72, "20250826": 801.66, "20250825": 798.02, "20250822": 782.51, "20250821": 777.24, "20250820": 777.61, "20250819": 787.96, "20250818": 798.05, "20250814": 815.26, "20250813": 814.1, "20250812": 807.19, "20250811": 811.85, "20250808": 809.27, "20250807": 805.81, "20250806": 803.49, "20250805": 798.6, "20250804": 784.06, "20250801": 772.79, "20250731": 805.24, "20250730": 803.67, "20250729": 804.45, "20250728": 804.4, "20250725": 806.95, "20250724": 809.89, "20250723": 813.56, "20250722": 812.97, "20250721": 821.69, "20250718": 820.67, "20250717": 818.27, "20250716": 812.23, "20250715": 812.88, "20250714": 799.37, "20250711": 800.47, "20250710": 797.7, "20250709": 790.36, "20250708": 784.24, "20250707": 778.46, "20250704": 775.8, "20250703": 793.33, "20250702": 782.17, "20250701": 783.67, "20250630": 781.5, "20250627": 781.56, "20250626": 787.95, "20250625": 798.21, "20250624": 800.93, "20250623": 784.79, "20250620": 791.53, "20250619": 782.51, "20250618": 779.73, "20250617": 775.65, "20250616": 777.26, "20250613": 768.86, "20250612": 789.45, "20250611": 786.29, "20250610": 771.2, "20250609": 764.21, "20250605": 756.23, "20250604": 750.21, "20250602": 740.29, "20250530": 734.35, "20250529": 736.29, "20250528": 728.79, "20250527": 727.11, "20250526": 725.27, "20250523": 715.98, "20250522": 717.67, "20250521": 723.62, "20250520": 715.55, "20250519": 713.75, "20250516": 725.07, "20250515": 733.23, "20250514": 739.05, "20250513": 731.88, "20250512": 725.4, "20250509": 722.52, "20250508": 729.59, "20250507": 722.81, "20250502": 721.86, "20250430": 717.24, "20250429": 726.46, "20250428": 719.41, "20250425": 729.69, "20250424": 726.08, "20250423": 726.08, "20250422": 716.12, "20250421": 715.45, "20250418": 717.77, "20250417": 711.75, "20250416": 699.11, "20250415": 711.92, "20250414": 708.98, "20250411": 695.59, "20250410": 681.79, "20250409": 643.39, "20250408": 658.45, "20250407": 651.3, "20250404": 687.39, "20250403": 683.49, "20250402": 684.85, "20250401": 691.45, "20250331": 672.85, "20250328": 693.76, "20250327": 707.49, "20250326": 716.48, "20250325": 711.26, "20250324": 720.22, "20250321": 719.41, "20250320": 725.15, "20250319": 738.35, "20250318": 745.54, "20250317": 743.51, "20250314": 734.26, "20250313": 722.8, "20250312": 729.49, "20250311": 721.5, "20250310": 725.82, "20250307": 727.7, "20250306": 734.92, "20250305": 746.95, "20250304": 737.9, "20250228": 743.96, "20250227": 770.85, "20250226": 771.41, "20250225": 769.43, "20250224": 773.33, "20250221": 774.65, "20250220": 768.27, "20250219": 778.27, "20250218": 773.65, "20250217": 768.48, "20250214": 756.32, "20250213": 749.28, "20250212": 745.18, "20250211": 749.59, "20250210": 749.67, "20250207": 742.9, "20250206": 740.32, "20250205": 730.98, "20250204": 719.92, "20250203": 703.8, "20250131": 728.29, "20250124": 728.74, "20250123": 724.01, "20250122": 732.31, "20250121": 726.07, "20250120": 727.66, "20250117": 724.69, "20250116": 724.24, "20250115": 711.61, "20250114": 718.04, "20250113": 708.21, "20250110": 717.89, "20250109": 723.52, "20250108": 719.63, "20250107": 718.29, "20250106": 717.96, "20250103": 705.76, "20250102": 686.63, "20241230": 678.19, "20241227": 665.97, "20241226": 675.64, "20241224": 680.11, "20241223": 679.24, "20241220": 668.31, "20241219": 684.36, "20241218": 697.57, "20241217": 694.47, "20241216": 698.53, "20241213": 693.73, "20241212": 683.35, "20241211": 675.92, "20241210": 661.59, "20241209": 627.01, "20241206": 661.33, "20241205": 670.94, "20241204": 677.15, "20241203": 690.8, "20241202": 675.84, "20241129": 678.19, "20241128": 694.39, "20241127": 692.0, "20241126": 693.15, "20241125": 696.83, "20241122": 677.01, "20241121": 680.67, "20241120": 682.91, "20241119": 686.12, "20241118": 689.55, "20241115": 685.42, "20241114": 681.56, "20241113": 689.65, "20241112": 710.52, "20241111": 728.84, "20241108": 743.38, "20241107": 733.52, "20241106": 743.31, "20241105": 751.81, "20241104": 754.08, "20241101": 729.05, "20241031": 743.06, "20241030": 738.19, "20241029": 744.18, "20241028": 740.48, "20241025": 727.41, "20241024": 734.59, "20241023": 745.19, "20241022": 738.34, "20241021": 759.95, "20241018": 753.22, "20241017": 765.06, "20241016": 765.79, "20241015": 773.81, "20260609": 967.81, "20260610": 951.63, "20260611": 960.35}} \ No newline at end of file +{"KOSPI": {"20260608": 7484.41, "20260605": 8160.59, "20260604": 8639.41, "20260602": 8801.49, "20260601": 8788.38, "20260529": 8476.15, "20260528": 8185.29, "20260527": 8228.7, "20260526": 8047.51, "20260522": 7847.71, "20260521": 7815.59, "20260520": 7208.95, "20260519": 7271.66, "20260518": 7516.04, "20260515": 7493.18, "20260514": 7981.41, "20260513": 7844.01, "20260512": 7643.15, "20260511": 7822.24, "20260508": 7498.0, "20260507": 7490.05, "20260506": 7384.56, "20260504": 6936.99, "20260430": 6598.87, "20260429": 6690.9, "20260428": 6641.02, "20260427": 6615.03, "20260424": 6475.63, "20260423": 6475.81, "20260422": 6417.93, "20260421": 6388.47, "20260420": 6219.09, "20260417": 6191.92, "20260416": 6226.05, "20260415": 6091.39, "20260414": 5967.75, "20260413": 5808.62, "20260410": 5858.87, "20260409": 5778.01, "20260408": 5872.34, "20260407": 5494.78, "20260406": 5450.33, "20260403": 5377.3, "20260402": 5234.05, "20260401": 5478.7, "20260331": 5052.46, "20260330": 5277.3, "20260327": 5438.87, "20260326": 5460.46, "20260325": 5642.21, "20260324": 5553.92, "20260323": 5405.75, "20260320": 5781.2, "20260319": 5763.22, "20260318": 5925.03, "20260317": 5640.48, "20260316": 5549.85, "20260313": 5487.24, "20260312": 5583.25, "20260311": 5609.95, "20260310": 5532.59, "20260309": 5251.87, "20260306": 5584.87, "20260305": 5583.9, "20260304": 5093.54, "20260303": 5791.91, "20260227": 6244.13, "20260226": 6307.27, "20260225": 6083.86, "20260224": 5969.64, "20260223": 5846.09, "20260220": 5808.53, "20260219": 5677.25, "20260213": 5507.01, "20260212": 5522.27, "20260211": 5354.49, "20260210": 5301.69, "20260209": 5298.04, "20260206": 5089.14, "20260205": 5163.57, "20260204": 5371.1, "20260203": 5288.08, "20260202": 4949.67, "20260130": 5224.36, "20260129": 5221.25, "20260128": 5170.81, "20260127": 5084.85, "20260126": 4949.59, "20260123": 4990.07, "20260122": 4952.53, "20260121": 4909.93, "20260120": 4885.75, "20260119": 4904.66, "20260116": 4840.74, "20260115": 4797.55, "20260114": 4723.1, "20260113": 4692.64, "20260112": 4624.79, "20260109": 4586.32, "20260108": 4552.37, "20260107": 4551.06, "20260106": 4525.48, "20260105": 4457.52, "20260102": 4309.63, "20251230": 4214.17, "20251229": 4220.56, "20251226": 4129.68, "20251224": 4108.62, "20251223": 4117.32, "20251222": 4105.93, "20251219": 4020.55, "20251218": 3994.51, "20251217": 4056.41, "20251216": 3999.13, "20251215": 4090.59, "20251212": 4167.16, "20251211": 4110.62, "20251210": 4135.0, "20251209": 4143.55, "20251208": 4154.85, "20251205": 4100.05, "20251204": 4028.51, "20251203": 4036.3, "20251202": 3994.93, "20251201": 3920.37, "20251128": 3926.59, "20251127": 3986.91, "20251126": 3960.87, "20251125": 3857.78, "20251124": 3846.06, "20251121": 3853.26, "20251120": 4004.85, "20251119": 3929.51, "20251118": 3953.62, "20251117": 4089.25, "20251114": 4011.57, "20251113": 4170.63, "20251112": 4150.39, "20251111": 4106.39, "20251110": 4073.24, "20251107": 3953.76, "20251106": 4026.45, "20251105": 4004.42, "20251104": 4121.74, "20251103": 4221.87, "20251031": 4107.5, "20251030": 4086.89, "20251029": 4081.15, "20251028": 4010.41, "20251027": 4042.83, "20251024": 3941.59, "20251023": 3845.56, "20251022": 3883.68, "20251021": 3823.84, "20251020": 3814.69, "20251017": 3748.89, "20251016": 3748.37, "20251015": 3657.28, "20251014": 3561.81, "20251013": 3584.55, "20251010": 3610.6, "20251002": 3549.21, "20251001": 3455.83, "20250930": 3424.6, "20250929": 3431.21, "20250926": 3386.05, "20250925": 3471.11, "20250924": 3472.14, "20250923": 3486.19, "20250922": 3468.65, "20250919": 3445.24, "20250918": 3461.3, "20250917": 3413.4, "20250916": 3449.62, "20250915": 3407.31, "20250912": 3395.54, "20250911": 3344.2, "20250910": 3314.53, "20250909": 3260.05, "20250908": 3219.59, "20250905": 3205.12, "20250904": 3200.83, "20250903": 3184.42, "20250902": 3172.35, "20250901": 3142.93, "20250829": 3186.01, "20250828": 3196.32, "20250827": 3187.16, "20250826": 3179.36, "20250825": 3209.86, "20250822": 3168.73, "20250821": 3141.74, "20250820": 3130.09, "20250819": 3151.56, "20250818": 3177.28, "20250814": 3225.66, "20250813": 3224.37, "20250812": 3189.91, "20250811": 3206.77, "20250808": 3210.01, "20250807": 3227.68, "20250806": 3198.14, "20250805": 3198.0, "20250804": 3147.75, "20250801": 3119.41, "20250731": 3245.44, "20250730": 3254.47, "20250729": 3230.57, "20250728": 3209.52, "20250725": 3196.05, "20250724": 3190.45, "20250723": 3183.77, "20250722": 3169.94, "20250721": 3210.81, "20250718": 3188.07, "20250717": 3192.29, "20250716": 3186.38, "20250715": 3215.28, "20250714": 3202.03, "20250711": 3175.77, "20250710": 3183.23, "20250709": 3133.74, "20250708": 3114.95, "20250707": 3059.47, "20250704": 3054.28, "20250703": 3116.27, "20250702": 3075.06, "20250701": 3089.65, "20250630": 3071.7, "20250627": 3055.94, "20250626": 3079.56, "20250625": 3108.25, "20250624": 3103.64, "20250623": 3014.47, "20250620": 3021.84, "20250619": 2977.74, "20250618": 2972.19, "20250617": 2950.3, "20250616": 2946.66, "20250613": 2894.62, "20250612": 2920.03, "20250611": 2907.04, "20250610": 2871.85, "20250609": 2855.77, "20250605": 2812.05, "20250604": 2770.84, "20250602": 2698.97, "20250530": 2697.67, "20250529": 2720.64, "20250528": 2670.15, "20250527": 2637.22, "20250526": 2644.4, "20250523": 2592.09, "20250522": 2593.67, "20250521": 2625.58, "20250520": 2601.8, "20250519": 2603.42, "20250516": 2626.87, "20250515": 2621.36, "20250514": 2640.57, "20250513": 2608.42, "20250512": 2607.33, "20250509": 2577.27, "20250508": 2579.48, "20250507": 2573.8, "20250502": 2559.79, "20250430": 2556.61, "20250429": 2565.42, "20250428": 2548.86, "20250425": 2546.3, "20250424": 2522.33, "20250423": 2525.56, "20250422": 2486.64, "20250421": 2488.42, "20250418": 2483.42, "20250417": 2470.41, "20250416": 2447.43, "20250415": 2477.41, "20250414": 2455.89, "20250411": 2432.72, "20250410": 2445.06, "20250409": 2293.7, "20250408": 2334.23, "20250407": 2328.2, "20250404": 2465.42, "20250403": 2486.7, "20250402": 2505.86, "20250401": 2521.39, "20250331": 2481.12, "20250328": 2557.98, "20250327": 2607.15, "20250326": 2643.94, "20250325": 2615.81, "20250324": 2632.07, "20250321": 2643.13, "20250320": 2637.1, "20250319": 2628.62, "20250318": 2612.34, "20250317": 2610.69, "20250314": 2566.36, "20250313": 2573.64, "20250312": 2574.82, "20250311": 2537.6, "20250310": 2570.39, "20250307": 2563.48, "20250306": 2576.16, "20250305": 2558.13, "20250304": 2528.92, "20250228": 2532.78, "20250227": 2621.75, "20250226": 2641.09, "20250225": 2630.29, "20250224": 2645.27, "20250221": 2654.58, "20250220": 2654.06, "20250219": 2671.52, "20250218": 2626.81, "20250217": 2610.42, "20250214": 2591.05, "20250213": 2583.17, "20250212": 2548.39, "20250211": 2539.05, "20250210": 2521.27, "20250207": 2521.92, "20250206": 2536.75, "20250205": 2509.27, "20250204": 2481.69, "20250203": 2453.95, "20250131": 2517.37, "20250124": 2536.8, "20250123": 2515.49, "20250122": 2547.06, "20250121": 2518.03, "20250120": 2520.05, "20250117": 2523.55, "20250116": 2527.49, "20250115": 2496.81, "20250114": 2497.4, "20250113": 2489.56, "20250110": 2515.78, "20250109": 2521.9, "20250108": 2521.05, "20250107": 2492.1, "20250106": 2488.64, "20250103": 2441.92, "20250102": 2398.94, "20241230": 2399.49, "20241227": 2404.77, "20241226": 2429.67, "20241224": 2440.52, "20241223": 2442.01, "20241220": 2404.15, "20241219": 2435.93, "20241218": 2484.43, "20241217": 2456.81, "20241216": 2488.97, "20241213": 2494.46, "20241212": 2482.12, "20241211": 2442.51, "20241210": 2417.84, "20241209": 2360.58, "20241206": 2428.16, "20241205": 2441.85, "20241204": 2464.0, "20241203": 2500.1, "20241202": 2454.48, "20241129": 2455.91, "20241128": 2504.67, "20241127": 2503.06, "20241126": 2520.36, "20241125": 2534.34, "20241122": 2501.24, "20241121": 2480.63, "20241120": 2482.29, "20241119": 2471.95, "20241118": 2469.07, "20241115": 2416.86, "20241114": 2418.86, "20241113": 2417.08, "20241112": 2482.57, "20241111": 2531.66, "20241108": 2561.15, "20241107": 2564.63, "20241106": 2563.51, "20241105": 2576.88, "20241104": 2588.97, "20241101": 2542.36, "20241031": 2556.15, "20241030": 2593.79, "20241029": 2617.8, "20241028": 2612.43, "20241025": 2583.27, "20241024": 2581.03, "20241023": 2599.62, "20241022": 2570.7, "20241021": 2604.92, "20241018": 2593.82, "20241017": 2609.3, "20241016": 2610.36, "20241015": 2633.45, "20260609": 8096.93, "20260610": 7730.82, "20260611": 7756.02}, "KOSDAQ": {"20260608": 911.39, "20260605": 1002.44, "20260604": 1049.73, "20260602": 1026.03, "20260601": 1050.03, "20260529": 1074.8, "20260528": 1104.36, "20260527": 1133.13, "20260526": 1172.52, "20260522": 1161.13, "20260521": 1105.97, "20260520": 1056.07, "20260519": 1084.36, "20260518": 1111.09, "20260515": 1129.82, "20260514": 1191.09, "20260513": 1176.93, "20260512": 1179.29, "20260511": 1207.34, "20260508": 1207.72, "20260507": 1199.18, "20260506": 1210.17, "20260504": 1213.74, "20260430": 1192.35, "20260429": 1220.26, "20260428": 1215.58, "20260427": 1226.18, "20260424": 1203.84, "20260423": 1174.31, "20260422": 1181.12, "20260421": 1179.03, "20260420": 1174.85, "20260417": 1170.04, "20260416": 1162.97, "20260415": 1152.43, "20260414": 1121.88, "20260413": 1099.84, "20260410": 1093.63, "20260409": 1076.0, "20260408": 1089.85, "20260407": 1036.73, "20260406": 1047.37, "20260403": 1063.75, "20260402": 1056.34, "20260401": 1116.18, "20260331": 1052.39, "20260330": 1107.05, "20260327": 1141.51, "20260326": 1136.64, "20260325": 1159.55, "20260324": 1121.44, "20260323": 1096.89, "20260320": 1161.52, "20260319": 1143.48, "20260318": 1164.38, "20260317": 1136.94, "20260316": 1138.29, "20260313": 1152.96, "20260312": 1148.4, "20260311": 1136.83, "20260310": 1137.68, "20260309": 1102.28, "20260306": 1154.67, "20260305": 1116.41, "20260304": 978.44, "20260303": 1137.7, "20260227": 1192.78, "20260226": 1188.15, "20260225": 1165.25, "20260224": 1165.0, "20260223": 1151.99, "20260220": 1154.0, "20260219": 1160.71, "20260213": 1106.08, "20260212": 1125.99, "20260211": 1114.87, "20260210": 1115.2, "20260209": 1127.55, "20260206": 1080.77, "20260205": 1108.41, "20260204": 1149.43, "20260203": 1144.33, "20260202": 1098.36, "20260130": 1149.44, "20260129": 1164.41, "20260128": 1133.52, "20260127": 1082.59, "20260126": 1064.41, "20260123": 993.93, "20260122": 970.35, "20260121": 951.29, "20260120": 976.37, "20260119": 968.36, "20260116": 954.59, "20260115": 951.16, "20260114": 942.18, "20260113": 948.98, "20260112": 949.81, "20260109": 947.92, "20260108": 944.06, "20260107": 947.39, "20260106": 955.97, "20260105": 957.5, "20260102": 945.57, "20251230": 925.47, "20251229": 932.59, "20251226": 919.67, "20251224": 915.2, "20251223": 919.56, "20251222": 929.14, "20251219": 915.27, "20251218": 901.33, "20251217": 911.07, "20251216": 916.11, "20251215": 938.83, "20251212": 937.34, "20251211": 934.64, "20251210": 935.0, "20251209": 931.35, "20251208": 927.79, "20251205": 924.74, "20251204": 929.83, "20251203": 932.01, "20251202": 928.42, "20251201": 922.38, "20251128": 912.67, "20251127": 880.06, "20251126": 877.32, "20251125": 856.03, "20251124": 856.44, "20251121": 863.95, "20251120": 891.94, "20251119": 871.32, "20251118": 878.7, "20251117": 902.67, "20251114": 897.9, "20251113": 918.37, "20251112": 906.51, "20251111": 884.27, "20251110": 888.35, "20251107": 876.81, "20251106": 898.17, "20251105": 901.89, "20251104": 926.57, "20251103": 914.55, "20251031": 900.42, "20251030": 890.86, "20251029": 901.59, "20251028": 903.3, "20251027": 902.7, "20251024": 883.08, "20251023": 872.03, "20251022": 879.15, "20251021": 872.5, "20251020": 875.77, "20251017": 859.54, "20251016": 865.41, "20251015": 864.72, "20251014": 847.96, "20251013": 860.49, "20251010": 859.49, "20251002": 854.25, "20251001": 845.34, "20250930": 841.99, "20250929": 846.71, "20250926": 835.19, "20250925": 852.48, "20250924": 860.94, "20250923": 872.21, "20250922": 874.36, "20250919": 863.11, "20250918": 857.11, "20250917": 845.53, "20250916": 851.84, "20250915": 852.69, "20250912": 847.08, "20250911": 834.76, "20250910": 833.0, "20250909": 824.82, "20250908": 818.6, "20250905": 811.4, "20250904": 805.42, "20250903": 796.81, "20250902": 794.0, "20250901": 785.0, "20250829": 796.91, "20250828": 798.43, "20250827": 801.72, "20250826": 801.66, "20250825": 798.02, "20250822": 782.51, "20250821": 777.24, "20250820": 777.61, "20250819": 787.96, "20250818": 798.05, "20250814": 815.26, "20250813": 814.1, "20250812": 807.19, "20250811": 811.85, "20250808": 809.27, "20250807": 805.81, "20250806": 803.49, "20250805": 798.6, "20250804": 784.06, "20250801": 772.79, "20250731": 805.24, "20250730": 803.67, "20250729": 804.45, "20250728": 804.4, "20250725": 806.95, "20250724": 809.89, "20250723": 813.56, "20250722": 812.97, "20250721": 821.69, "20250718": 820.67, "20250717": 818.27, "20250716": 812.23, "20250715": 812.88, "20250714": 799.37, "20250711": 800.47, "20250710": 797.7, "20250709": 790.36, "20250708": 784.24, "20250707": 778.46, "20250704": 775.8, "20250703": 793.33, "20250702": 782.17, "20250701": 783.67, "20250630": 781.5, "20250627": 781.56, "20250626": 787.95, "20250625": 798.21, "20250624": 800.93, "20250623": 784.79, "20250620": 791.53, "20250619": 782.51, "20250618": 779.73, "20250617": 775.65, "20250616": 777.26, "20250613": 768.86, "20250612": 789.45, "20250611": 786.29, "20250610": 771.2, "20250609": 764.21, "20250605": 756.23, "20250604": 750.21, "20250602": 740.29, "20250530": 734.35, "20250529": 736.29, "20250528": 728.79, "20250527": 727.11, "20250526": 725.27, "20250523": 715.98, "20250522": 717.67, "20250521": 723.62, "20250520": 715.55, "20250519": 713.75, "20250516": 725.07, "20250515": 733.23, "20250514": 739.05, "20250513": 731.88, "20250512": 725.4, "20250509": 722.52, "20250508": 729.59, "20250507": 722.81, "20250502": 721.86, "20250430": 717.24, "20250429": 726.46, "20250428": 719.41, "20250425": 729.69, "20250424": 726.08, "20250423": 726.08, "20250422": 716.12, "20250421": 715.45, "20250418": 717.77, "20250417": 711.75, "20250416": 699.11, "20250415": 711.92, "20250414": 708.98, "20250411": 695.59, "20250410": 681.79, "20250409": 643.39, "20250408": 658.45, "20250407": 651.3, "20250404": 687.39, "20250403": 683.49, "20250402": 684.85, "20250401": 691.45, "20250331": 672.85, "20250328": 693.76, "20250327": 707.49, "20250326": 716.48, "20250325": 711.26, "20250324": 720.22, "20250321": 719.41, "20250320": 725.15, "20250319": 738.35, "20250318": 745.54, "20250317": 743.51, "20250314": 734.26, "20250313": 722.8, "20250312": 729.49, "20250311": 721.5, "20250310": 725.82, "20250307": 727.7, "20250306": 734.92, "20250305": 746.95, "20250304": 737.9, "20250228": 743.96, "20250227": 770.85, "20250226": 771.41, "20250225": 769.43, "20250224": 773.33, "20250221": 774.65, "20250220": 768.27, "20250219": 778.27, "20250218": 773.65, "20250217": 768.48, "20250214": 756.32, "20250213": 749.28, "20250212": 745.18, "20250211": 749.59, "20250210": 749.67, "20250207": 742.9, "20250206": 740.32, "20250205": 730.98, "20250204": 719.92, "20250203": 703.8, "20250131": 728.29, "20250124": 728.74, "20250123": 724.01, "20250122": 732.31, "20250121": 726.07, "20250120": 727.66, "20250117": 724.69, "20250116": 724.24, "20250115": 711.61, "20250114": 718.04, "20250113": 708.21, "20250110": 717.89, "20250109": 723.52, "20250108": 719.63, "20250107": 718.29, "20250106": 717.96, "20250103": 705.76, "20250102": 686.63, "20241230": 678.19, "20241227": 665.97, "20241226": 675.64, "20241224": 680.11, "20241223": 679.24, "20241220": 668.31, "20241219": 684.36, "20241218": 697.57, "20241217": 694.47, "20241216": 698.53, "20241213": 693.73, "20241212": 683.35, "20241211": 675.92, "20241210": 661.59, "20241209": 627.01, "20241206": 661.33, "20241205": 670.94, "20241204": 677.15, "20241203": 690.8, "20241202": 675.84, "20241129": 678.19, "20241128": 694.39, "20241127": 692.0, "20241126": 693.15, "20241125": 696.83, "20241122": 677.01, "20241121": 680.67, "20241120": 682.91, "20241119": 686.12, "20241118": 689.55, "20241115": 685.42, "20241114": 681.56, "20241113": 689.65, "20241112": 710.52, "20241111": 728.84, "20241108": 743.38, "20241107": 733.52, "20241106": 743.31, "20241105": 751.81, "20241104": 754.08, "20241101": 729.05, "20241031": 743.06, "20241030": 738.19, "20241029": 744.18, "20241028": 740.48, "20241025": 727.41, "20241024": 734.59, "20241023": 745.19, "20241022": 738.34, "20241021": 759.95, "20241018": 753.22, "20241017": 765.06, "20241016": 765.79, "20241015": 773.81, "20260609": 967.81, "20260610": 951.63, "20260611": 993.95}} \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v1/portfolio.json b/agents/stock/workspace/state/sim/variants/v1/portfolio.json index 1d5c285..d00712b 100644 --- a/agents/stock/workspace/state/sim/variants/v1/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v1/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943184+09:00", - "updated_at": "2026-06-11T11:20:01.454247+09:00" + "updated_at": "2026-06-11T15:25:06.464885+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v10/portfolio.json b/agents/stock/workspace/state/sim/variants/v10/portfolio.json index 3b815ed..b95e0ce 100644 --- a/agents/stock/workspace/state/sim/variants/v10/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v10/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943289+09:00", - "updated_at": "2026-06-11T11:20:01.482275+09:00" + "updated_at": "2026-06-11T15:25:06.550097+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v100/portfolio.json b/agents/stock/workspace/state/sim/variants/v100/portfolio.json index 2b52a53..706a118 100644 --- a/agents/stock/workspace/state/sim/variants/v100/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v100/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944222+09:00", - "updated_at": "2026-06-11T11:20:02.415842+09:00" + "updated_at": "2026-06-11T15:25:07.503889+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v101/portfolio.json b/agents/stock/workspace/state/sim/variants/v101/portfolio.json index eba3d8e..18ae719 100644 --- a/agents/stock/workspace/state/sim/variants/v101/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v101/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944232+09:00", - "updated_at": "2026-06-11T11:20:02.416974+09:00" + "updated_at": "2026-06-11T15:25:07.505039+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v102/portfolio.json b/agents/stock/workspace/state/sim/variants/v102/portfolio.json index 022dcef..263db9c 100644 --- a/agents/stock/workspace/state/sim/variants/v102/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v102/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944241+09:00", - "updated_at": "2026-06-11T11:20:02.418131+09:00" + "updated_at": "2026-06-11T15:25:07.506218+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v103/portfolio.json b/agents/stock/workspace/state/sim/variants/v103/portfolio.json index aab6599..ba3e86e 100644 --- a/agents/stock/workspace/state/sim/variants/v103/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v103/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944251+09:00", - "updated_at": "2026-06-11T11:20:02.419264+09:00" + "updated_at": "2026-06-11T15:25:07.507372+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v104/portfolio.json b/agents/stock/workspace/state/sim/variants/v104/portfolio.json index 13df7ba..4a7fd9f 100644 --- a/agents/stock/workspace/state/sim/variants/v104/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v104/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944261+09:00", - "updated_at": "2026-06-11T11:20:02.420394+09:00" + "updated_at": "2026-06-11T15:25:07.508515+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v105/portfolio.json b/agents/stock/workspace/state/sim/variants/v105/portfolio.json index 0ff883a..18fc219 100644 --- a/agents/stock/workspace/state/sim/variants/v105/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v105/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944270+09:00", - "updated_at": "2026-06-11T11:20:02.421522+09:00" + "updated_at": "2026-06-11T15:25:07.509676+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v106/portfolio.json b/agents/stock/workspace/state/sim/variants/v106/portfolio.json index f746ed0..d290f0a 100644 --- a/agents/stock/workspace/state/sim/variants/v106/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v106/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 3741721.8543046354, "last_add_price": 226000 @@ -28,8 +28,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.0008054240000000596, + "max_drawdown": 0.0010454240000000595, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944280+09:00", - "updated_at": "2026-06-11T11:20:02.422680+09:00" + "updated_at": "2026-06-11T15:25:07.510844+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v107/portfolio.json b/agents/stock/workspace/state/sim/variants/v107/portfolio.json index a52734f..5d7af24 100644 --- a/agents/stock/workspace/state/sim/variants/v107/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v107/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944290+09:00", - "updated_at": "2026-06-11T11:20:02.423836+09:00" + "updated_at": "2026-06-11T15:25:07.512007+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v108/portfolio.json b/agents/stock/workspace/state/sim/variants/v108/portfolio.json index 3abdf12..7650a19 100644 --- a/agents/stock/workspace/state/sim/variants/v108/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v108/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944300+09:00", - "updated_at": "2026-06-11T11:20:02.424970+09:00" + "updated_at": "2026-06-11T15:25:07.513155+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v11/portfolio.json b/agents/stock/workspace/state/sim/variants/v11/portfolio.json index f593cc3..7b2cdc0 100644 --- a/agents/stock/workspace/state/sim/variants/v11/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v11/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943299+09:00", - "updated_at": "2026-06-11T11:20:01.484250+09:00" + "updated_at": "2026-06-11T15:25:06.552450+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v12/portfolio.json b/agents/stock/workspace/state/sim/variants/v12/portfolio.json index 718a7f4..4b595b0 100644 --- a/agents/stock/workspace/state/sim/variants/v12/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v12/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943310+09:00", - "updated_at": "2026-06-11T11:20:01.486076+09:00" + "updated_at": "2026-06-11T15:25:06.554689+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v13/portfolio.json b/agents/stock/workspace/state/sim/variants/v13/portfolio.json index b180f5d..abf37da 100644 --- a/agents/stock/workspace/state/sim/variants/v13/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v13/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943320+09:00", - "updated_at": "2026-06-11T11:20:02.273225+09:00" + "updated_at": "2026-06-11T15:25:07.358839+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v14/portfolio.json b/agents/stock/workspace/state/sim/variants/v14/portfolio.json index 1b0cfc6..9f7aad5 100644 --- a/agents/stock/workspace/state/sim/variants/v14/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v14/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943331+09:00", - "updated_at": "2026-06-11T11:20:02.280336+09:00" + "updated_at": "2026-06-11T15:25:07.366171+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v15/portfolio.json b/agents/stock/workspace/state/sim/variants/v15/portfolio.json index 315ef3e..0b39cf5 100644 --- a/agents/stock/workspace/state/sim/variants/v15/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v15/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943342+09:00", - "updated_at": "2026-06-11T11:20:02.285017+09:00" + "updated_at": "2026-06-11T15:25:07.370543+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v16/portfolio.json b/agents/stock/workspace/state/sim/variants/v16/portfolio.json index ebb8fc7..174e7df 100644 --- a/agents/stock/workspace/state/sim/variants/v16/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v16/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943352+09:00", - "updated_at": "2026-06-11T11:20:02.288698+09:00" + "updated_at": "2026-06-11T15:25:07.374468+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v17/portfolio.json b/agents/stock/workspace/state/sim/variants/v17/portfolio.json index 9511e01..b13c0c2 100644 --- a/agents/stock/workspace/state/sim/variants/v17/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v17/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943361+09:00", - "updated_at": "2026-06-11T11:20:02.291899+09:00" + "updated_at": "2026-06-11T15:25:07.377881+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v18/portfolio.json b/agents/stock/workspace/state/sim/variants/v18/portfolio.json index eed896b..a6e3bc4 100644 --- a/agents/stock/workspace/state/sim/variants/v18/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v18/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943371+09:00", - "updated_at": "2026-06-11T11:20:02.294962+09:00" + "updated_at": "2026-06-11T15:25:07.381990+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v19/portfolio.json b/agents/stock/workspace/state/sim/variants/v19/portfolio.json index aae7dcb..4cf39e8 100644 --- a/agents/stock/workspace/state/sim/variants/v19/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v19/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943381+09:00", - "updated_at": "2026-06-11T11:20:02.298815+09:00" + "updated_at": "2026-06-11T15:25:07.385291+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v2/portfolio.json b/agents/stock/workspace/state/sim/variants/v2/portfolio.json index 98f1c02..eced9ce 100644 --- a/agents/stock/workspace/state/sim/variants/v2/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v2/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943203+09:00", - "updated_at": "2026-06-11T11:20:01.463659+09:00" + "updated_at": "2026-06-11T15:25:06.526338+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v20/portfolio.json b/agents/stock/workspace/state/sim/variants/v20/portfolio.json index 960cae2..896bb9a 100644 --- a/agents/stock/workspace/state/sim/variants/v20/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v20/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943391+09:00", - "updated_at": "2026-06-11T11:20:02.301973+09:00" + "updated_at": "2026-06-11T15:25:07.388354+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v21/portfolio.json b/agents/stock/workspace/state/sim/variants/v21/portfolio.json index 7df69db..5cb64af 100644 --- a/agents/stock/workspace/state/sim/variants/v21/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v21/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943400+09:00", - "updated_at": "2026-06-11T11:20:02.304954+09:00" + "updated_at": "2026-06-11T15:25:07.391455+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v22/portfolio.json b/agents/stock/workspace/state/sim/variants/v22/portfolio.json index a596eae..05d1fc8 100644 --- a/agents/stock/workspace/state/sim/variants/v22/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v22/portfolio.json @@ -1,13 +1,35 @@ { - "cash": 100000000, + "cash": 95790868.725, "initial": 100000000, - "positions": {}, + "positions": { + "035420": { + "code": "035420", + "name": "NAVER", + "sources": [ + "interest" + ], + "qty": 19, + "entry_price": 221500, + "entry_at": "2026-06-11T12:45:02.417933+09:00", + "stop": 195800, + "target": 272900, + "peak": 224000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 232,280 도달", + "cur_price": 222000, + "tranches": 1, + "tranche_value": 4309338.521400778, + "last_add_price": 221500 + } + }, "realized_pnl": 0.0, "closed_trades": 0, "wins": 0, - "peak_equity": 100000000, - "max_drawdown": 0.0, + "peak_equity": 100046868.725, + "max_drawdown": 0.0004747774778495448, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943410+09:00", - "updated_at": "2026-06-11T11:20:02.307938+09:00" + "updated_at": "2026-06-11T15:25:07.394259+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v22/trades.jsonl b/agents/stock/workspace/state/sim/variants/v22/trades.jsonl new file mode 100644 index 0000000..2daa219 --- /dev/null +++ b/agents/stock/workspace/state/sim/variants/v22/trades.jsonl @@ -0,0 +1 @@ +{"ts": "2026-06-11T12:45:02.417938+09:00", "side": "BUY", "code": "035420", "name": "NAVER", "price": 221500, "qty": 19, "cost": 4209131, "path": "pullback", "reason": "눌림목 지정가 232,280 도달", "stop": 195800, "target": 272900, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "221,000 vs 218,048"}, {"label": "정배열(5>20)", "ok": true, "detail": "256,000 / 218,048"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "256,000 / 215,415"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+3.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -132 · 기 +1,200 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.39% (환산) vs 평균 2.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 304,000"}, {"label": "거래량 급증", "ok": false, "detail": "5,311,497 (환산) vs 평균 3,404,288"}, {"label": "회전율 급증", "ok": true, "detail": "3.39% (환산) vs 평균 2.17%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 232,280 (현재 221,000)"}]} diff --git a/agents/stock/workspace/state/sim/variants/v23/portfolio.json b/agents/stock/workspace/state/sim/variants/v23/portfolio.json index f1785a6..946e2ba 100644 --- a/agents/stock/workspace/state/sim/variants/v23/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v23/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943420+09:00", - "updated_at": "2026-06-11T11:20:02.310478+09:00" + "updated_at": "2026-06-11T15:25:07.396835+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v24/portfolio.json b/agents/stock/workspace/state/sim/variants/v24/portfolio.json index 7ccd75d..8ad6a61 100644 --- a/agents/stock/workspace/state/sim/variants/v24/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v24/portfolio.json @@ -1,13 +1,35 @@ { - "cash": 100000000, + "cash": 95790868.725, "initial": 100000000, - "positions": {}, + "positions": { + "035420": { + "code": "035420", + "name": "NAVER", + "sources": [ + "interest" + ], + "qty": 19, + "entry_price": 221500, + "entry_at": "2026-06-11T12:45:02.424478+09:00", + "stop": 195800, + "target": 272900, + "peak": 224000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 232,280 도달", + "cur_price": 222000, + "tranches": 1, + "tranche_value": 4309338.521400778, + "last_add_price": 221500 + } + }, "realized_pnl": 0.0, "closed_trades": 0, "wins": 0, - "peak_equity": 100000000, - "max_drawdown": 0.0, + "peak_equity": 100046868.725, + "max_drawdown": 0.0004747774778495448, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943430+09:00", - "updated_at": "2026-06-11T11:20:02.313039+09:00" + "updated_at": "2026-06-11T15:25:07.399194+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v24/trades.jsonl b/agents/stock/workspace/state/sim/variants/v24/trades.jsonl new file mode 100644 index 0000000..423d422 --- /dev/null +++ b/agents/stock/workspace/state/sim/variants/v24/trades.jsonl @@ -0,0 +1 @@ +{"ts": "2026-06-11T12:45:02.424482+09:00", "side": "BUY", "code": "035420", "name": "NAVER", "price": 221500, "qty": 19, "cost": 4209131, "path": "pullback", "reason": "눌림목 지정가 232,280 도달", "stop": 195800, "target": 272900, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "221,000 vs 218,048"}, {"label": "정배열(5>20)", "ok": true, "detail": "256,000 / 218,048"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "256,000 / 215,415"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+3.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -132 · 기 +1,200 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.39% (환산) vs 평균 2.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 304,000"}, {"label": "거래량 급증", "ok": false, "detail": "5,311,497 (환산) vs 평균 3,404,288"}, {"label": "회전율 급증", "ok": true, "detail": "3.39% (환산) vs 평균 2.17%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 232,280 (현재 221,000)"}]} diff --git a/agents/stock/workspace/state/sim/variants/v25/portfolio.json b/agents/stock/workspace/state/sim/variants/v25/portfolio.json index efbc1e3..4f18c51 100644 --- a/agents/stock/workspace/state/sim/variants/v25/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v25/portfolio.json @@ -1,13 +1,35 @@ { - "cash": 100000000, + "cash": 95790868.725, "initial": 100000000, - "positions": {}, + "positions": { + "035420": { + "code": "035420", + "name": "NAVER", + "sources": [ + "interest" + ], + "qty": 19, + "entry_price": 221500, + "entry_at": "2026-06-11T12:45:02.427828+09:00", + "stop": 195800, + "target": 260050, + "peak": 224000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 232,280 도달", + "cur_price": 222000, + "tranches": 1, + "tranche_value": 4309338.521400778, + "last_add_price": 221500 + } + }, "realized_pnl": 0.0, "closed_trades": 0, "wins": 0, - "peak_equity": 100000000, - "max_drawdown": 0.0, + "peak_equity": 100046868.725, + "max_drawdown": 0.0004747774778495448, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943440+09:00", - "updated_at": "2026-06-11T11:20:02.315363+09:00" + "updated_at": "2026-06-11T15:25:07.401623+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v25/trades.jsonl b/agents/stock/workspace/state/sim/variants/v25/trades.jsonl new file mode 100644 index 0000000..c12db17 --- /dev/null +++ b/agents/stock/workspace/state/sim/variants/v25/trades.jsonl @@ -0,0 +1 @@ +{"ts": "2026-06-11T12:45:02.427830+09:00", "side": "BUY", "code": "035420", "name": "NAVER", "price": 221500, "qty": 19, "cost": 4209131, "path": "pullback", "reason": "눌림목 지정가 232,280 도달", "stop": 195800, "target": 260050, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "221,000 vs 218,048"}, {"label": "정배열(5>20)", "ok": true, "detail": "256,000 / 218,048"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "256,000 / 215,415"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+3.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -132 · 기 +1,200 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.39% (환산) vs 평균 2.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 304,000"}, {"label": "거래량 급증", "ok": false, "detail": "5,311,497 (환산) vs 평균 3,404,288"}, {"label": "회전율 급증", "ok": true, "detail": "3.39% (환산) vs 평균 2.17%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 232,280 (현재 221,000)"}]} diff --git a/agents/stock/workspace/state/sim/variants/v26/portfolio.json b/agents/stock/workspace/state/sim/variants/v26/portfolio.json index 5e0d171..b5f012f 100644 --- a/agents/stock/workspace/state/sim/variants/v26/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v26/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943450+09:00", - "updated_at": "2026-06-11T11:20:02.317659+09:00" + "updated_at": "2026-06-11T15:25:07.403888+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v27/portfolio.json b/agents/stock/workspace/state/sim/variants/v27/portfolio.json index 4ea81a2..2650cc4 100644 --- a/agents/stock/workspace/state/sim/variants/v27/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v27/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943460+09:00", - "updated_at": "2026-06-11T11:20:02.319824+09:00" + "updated_at": "2026-06-11T15:25:07.406120+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v28/portfolio.json b/agents/stock/workspace/state/sim/variants/v28/portfolio.json index 32719e5..da84269 100644 --- a/agents/stock/workspace/state/sim/variants/v28/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v28/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943470+09:00", - "updated_at": "2026-06-11T11:20:02.321996+09:00" + "updated_at": "2026-06-11T15:25:07.408165+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v29/portfolio.json b/agents/stock/workspace/state/sim/variants/v29/portfolio.json index e7d50f9..4865af7 100644 --- a/agents/stock/workspace/state/sim/variants/v29/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v29/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943480+09:00", - "updated_at": "2026-06-11T11:20:02.324000+09:00" + "updated_at": "2026-06-11T15:25:07.410164+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v3/portfolio.json b/agents/stock/workspace/state/sim/variants/v3/portfolio.json index 31b0bcc..8d27211 100644 --- a/agents/stock/workspace/state/sim/variants/v3/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v3/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943216+09:00", - "updated_at": "2026-06-11T11:20:01.466664+09:00" + "updated_at": "2026-06-11T15:25:06.530101+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v30/portfolio.json b/agents/stock/workspace/state/sim/variants/v30/portfolio.json index 10063d1..fb521e9 100644 --- a/agents/stock/workspace/state/sim/variants/v30/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v30/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943489+09:00", - "updated_at": "2026-06-11T11:20:02.325961+09:00" + "updated_at": "2026-06-11T15:25:07.412089+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v31/portfolio.json b/agents/stock/workspace/state/sim/variants/v31/portfolio.json index 9d629d8..6355a75 100644 --- a/agents/stock/workspace/state/sim/variants/v31/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v31/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943499+09:00", - "updated_at": "2026-06-11T11:20:02.327802+09:00" + "updated_at": "2026-06-11T15:25:07.413928+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v32/portfolio.json b/agents/stock/workspace/state/sim/variants/v32/portfolio.json index 535e178..a74a012 100644 --- a/agents/stock/workspace/state/sim/variants/v32/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v32/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943509+09:00", - "updated_at": "2026-06-11T11:20:02.329561+09:00" + "updated_at": "2026-06-11T15:25:07.415765+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v33/portfolio.json b/agents/stock/workspace/state/sim/variants/v33/portfolio.json index d8409c1..ae9a1d6 100644 --- a/agents/stock/workspace/state/sim/variants/v33/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v33/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943518+09:00", - "updated_at": "2026-06-11T11:20:02.331301+09:00" + "updated_at": "2026-06-11T15:25:07.417573+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v34/portfolio.json b/agents/stock/workspace/state/sim/variants/v34/portfolio.json index 2bd94d6..2c298b9 100644 --- a/agents/stock/workspace/state/sim/variants/v34/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v34/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943528+09:00", - "updated_at": "2026-06-11T11:20:02.332925+09:00" + "updated_at": "2026-06-11T15:25:07.419366+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v35/portfolio.json b/agents/stock/workspace/state/sim/variants/v35/portfolio.json index b5c542e..84acf13 100644 --- a/agents/stock/workspace/state/sim/variants/v35/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v35/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943540+09:00", - "updated_at": "2026-06-11T11:20:02.334560+09:00" + "updated_at": "2026-06-11T15:25:07.421149+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v36/portfolio.json b/agents/stock/workspace/state/sim/variants/v36/portfolio.json index 712e8da..fb7b562 100644 --- a/agents/stock/workspace/state/sim/variants/v36/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v36/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943551+09:00", - "updated_at": "2026-06-11T11:20:02.336195+09:00" + "updated_at": "2026-06-11T15:25:07.422820+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v37/portfolio.json b/agents/stock/workspace/state/sim/variants/v37/portfolio.json index d099d75..34ff33a 100644 --- a/agents/stock/workspace/state/sim/variants/v37/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v37/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943560+09:00", - "updated_at": "2026-06-11T11:20:02.337809+09:00" + "updated_at": "2026-06-11T15:25:07.424521+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v38/portfolio.json b/agents/stock/workspace/state/sim/variants/v38/portfolio.json index e1afa31..043ae7b 100644 --- a/agents/stock/workspace/state/sim/variants/v38/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v38/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943570+09:00", - "updated_at": "2026-06-11T11:20:02.339489+09:00" + "updated_at": "2026-06-11T15:25:07.426135+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v39/portfolio.json b/agents/stock/workspace/state/sim/variants/v39/portfolio.json index 8bbef6a..90a9c26 100644 --- a/agents/stock/workspace/state/sim/variants/v39/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v39/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943580+09:00", - "updated_at": "2026-06-11T11:20:02.341022+09:00" + "updated_at": "2026-06-11T15:25:07.427703+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v4/portfolio.json b/agents/stock/workspace/state/sim/variants/v4/portfolio.json index 6fba660..f2d1be8 100644 --- a/agents/stock/workspace/state/sim/variants/v4/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v4/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943227+09:00", - "updated_at": "2026-06-11T11:20:01.469146+09:00" + "updated_at": "2026-06-11T15:25:06.533738+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v40/portfolio.json b/agents/stock/workspace/state/sim/variants/v40/portfolio.json index a165d0d..7377ada 100644 --- a/agents/stock/workspace/state/sim/variants/v40/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v40/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 6250000.0, "last_add_price": 226000 @@ -28,8 +28,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.0013591529999999702, + "max_drawdown": 0.0017641529999999702, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943590+09:00", - "updated_at": "2026-06-11T11:20:02.342568+09:00" + "updated_at": "2026-06-11T15:25:07.429284+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v41/portfolio.json b/agents/stock/workspace/state/sim/variants/v41/portfolio.json index 122ba2c..da6c0bd 100644 --- a/agents/stock/workspace/state/sim/variants/v41/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v41/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943599+09:00", - "updated_at": "2026-06-11T11:20:02.344126+09:00" + "updated_at": "2026-06-11T15:25:07.430807+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v42/portfolio.json b/agents/stock/workspace/state/sim/variants/v42/portfolio.json index 32bb174..c4c50bb 100644 --- a/agents/stock/workspace/state/sim/variants/v42/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v42/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 6250000.0, "last_add_price": 226000 @@ -28,8 +28,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.0013591529999999702, + "max_drawdown": 0.0017641529999999702, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943609+09:00", - "updated_at": "2026-06-11T11:20:02.345749+09:00" + "updated_at": "2026-06-11T15:25:07.432382+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v43/portfolio.json b/agents/stock/workspace/state/sim/variants/v43/portfolio.json index 0ccccc4..b7f970a 100644 --- a/agents/stock/workspace/state/sim/variants/v43/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v43/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943619+09:00", - "updated_at": "2026-06-11T11:20:02.347238+09:00" + "updated_at": "2026-06-11T15:25:07.433821+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v44/portfolio.json b/agents/stock/workspace/state/sim/variants/v44/portfolio.json index b42f60d..e6b3a64 100644 --- a/agents/stock/workspace/state/sim/variants/v44/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v44/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 6250000.0, "last_add_price": 226000 @@ -28,8 +28,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.0013591529999999702, + "max_drawdown": 0.0017641529999999702, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943633+09:00", - "updated_at": "2026-06-11T11:20:02.348704+09:00" + "updated_at": "2026-06-11T15:25:07.435257+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v45/portfolio.json b/agents/stock/workspace/state/sim/variants/v45/portfolio.json index 70d370e..5bccc8d 100644 --- a/agents/stock/workspace/state/sim/variants/v45/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v45/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943643+09:00", - "updated_at": "2026-06-11T11:20:02.350094+09:00" + "updated_at": "2026-06-11T15:25:07.436643+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v46/portfolio.json b/agents/stock/workspace/state/sim/variants/v46/portfolio.json index 278c70c..bce7a21 100644 --- a/agents/stock/workspace/state/sim/variants/v46/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v46/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943653+09:00", - "updated_at": "2026-06-11T11:20:02.351439+09:00" + "updated_at": "2026-06-11T15:25:07.438026+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v47/portfolio.json b/agents/stock/workspace/state/sim/variants/v47/portfolio.json index 04ee526..ced9dc7 100644 --- a/agents/stock/workspace/state/sim/variants/v47/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v47/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943663+09:00", - "updated_at": "2026-06-11T11:20:02.352795+09:00" + "updated_at": "2026-06-11T15:25:07.439417+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v48/portfolio.json b/agents/stock/workspace/state/sim/variants/v48/portfolio.json index 2f6ae68..84064a8 100644 --- a/agents/stock/workspace/state/sim/variants/v48/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v48/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 3741721.8543046354, "last_add_price": 226000 @@ -28,8 +28,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.0008054240000000596, + "max_drawdown": 0.0010454240000000595, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943673+09:00", - "updated_at": "2026-06-11T11:20:02.354131+09:00" + "updated_at": "2026-06-11T15:25:07.440747+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v49/portfolio.json b/agents/stock/workspace/state/sim/variants/v49/portfolio.json index 0d7153e..c9d9f00 100644 --- a/agents/stock/workspace/state/sim/variants/v49/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v49/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943683+09:00", - "updated_at": "2026-06-11T11:20:02.355430+09:00" + "updated_at": "2026-06-11T15:25:07.442090+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v5/portfolio.json b/agents/stock/workspace/state/sim/variants/v5/portfolio.json index fba58d9..9918bb9 100644 --- a/agents/stock/workspace/state/sim/variants/v5/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v5/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943238+09:00", - "updated_at": "2026-06-11T11:20:01.471616+09:00" + "updated_at": "2026-06-11T15:25:06.536744+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v50/portfolio.json b/agents/stock/workspace/state/sim/variants/v50/portfolio.json index d7bb3ca..a97011f 100644 --- a/agents/stock/workspace/state/sim/variants/v50/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v50/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943693+09:00", - "updated_at": "2026-06-11T11:20:02.356726+09:00" + "updated_at": "2026-06-11T15:25:07.443439+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v51/portfolio.json b/agents/stock/workspace/state/sim/variants/v51/portfolio.json index 162783a..bdeaf8c 100644 --- a/agents/stock/workspace/state/sim/variants/v51/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v51/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943703+09:00", - "updated_at": "2026-06-11T11:20:02.358010+09:00" + "updated_at": "2026-06-11T15:25:07.444730+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v52/portfolio.json b/agents/stock/workspace/state/sim/variants/v52/portfolio.json index 935d784..c196328 100644 --- a/agents/stock/workspace/state/sim/variants/v52/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v52/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943713+09:00", - "updated_at": "2026-06-11T11:20:02.359272+09:00" + "updated_at": "2026-06-11T15:25:07.445992+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v53/portfolio.json b/agents/stock/workspace/state/sim/variants/v53/portfolio.json index 1205eef..3753da7 100644 --- a/agents/stock/workspace/state/sim/variants/v53/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v53/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943722+09:00", - "updated_at": "2026-06-11T11:20:02.360501+09:00" + "updated_at": "2026-06-11T15:25:07.447250+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v54/portfolio.json b/agents/stock/workspace/state/sim/variants/v54/portfolio.json index 966b5fc..d0757ca 100644 --- a/agents/stock/workspace/state/sim/variants/v54/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v54/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943732+09:00", - "updated_at": "2026-06-11T11:20:02.361737+09:00" + "updated_at": "2026-06-11T15:25:07.448510+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v55/portfolio.json b/agents/stock/workspace/state/sim/variants/v55/portfolio.json index 4d1d76a..4974fd5 100644 --- a/agents/stock/workspace/state/sim/variants/v55/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v55/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943741+09:00", - "updated_at": "2026-06-11T11:20:02.362969+09:00" + "updated_at": "2026-06-11T15:25:07.449695+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v56/portfolio.json b/agents/stock/workspace/state/sim/variants/v56/portfolio.json index 8c4d744..b0d00d9 100644 --- a/agents/stock/workspace/state/sim/variants/v56/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v56/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943751+09:00", - "updated_at": "2026-06-11T11:20:02.364127+09:00" + "updated_at": "2026-06-11T15:25:07.450870+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v57/portfolio.json b/agents/stock/workspace/state/sim/variants/v57/portfolio.json index 5c474d6..30385e1 100644 --- a/agents/stock/workspace/state/sim/variants/v57/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v57/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943761+09:00", - "updated_at": "2026-06-11T11:20:02.365282+09:00" + "updated_at": "2026-06-11T15:25:07.452053+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v58/portfolio.json b/agents/stock/workspace/state/sim/variants/v58/portfolio.json index 8301d1c..c0426a0 100644 --- a/agents/stock/workspace/state/sim/variants/v58/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v58/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943771+09:00", - "updated_at": "2026-06-11T11:20:02.366441+09:00" + "updated_at": "2026-06-11T15:25:07.453242+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v59/portfolio.json b/agents/stock/workspace/state/sim/variants/v59/portfolio.json index 6f3bfbc..8584dda 100644 --- a/agents/stock/workspace/state/sim/variants/v59/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v59/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943780+09:00", - "updated_at": "2026-06-11T11:20:02.367584+09:00" + "updated_at": "2026-06-11T15:25:07.454393+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v6/portfolio.json b/agents/stock/workspace/state/sim/variants/v6/portfolio.json index e27b511..39455bb 100644 --- a/agents/stock/workspace/state/sim/variants/v6/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v6/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943248+09:00", - "updated_at": "2026-06-11T11:20:01.473813+09:00" + "updated_at": "2026-06-11T15:25:06.539716+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v60/portfolio.json b/agents/stock/workspace/state/sim/variants/v60/portfolio.json index f5ee4f4..ead6673 100644 --- a/agents/stock/workspace/state/sim/variants/v60/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v60/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943790+09:00", - "updated_at": "2026-06-11T11:20:02.368722+09:00" + "updated_at": "2026-06-11T15:25:07.455538+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v61/portfolio.json b/agents/stock/workspace/state/sim/variants/v61/portfolio.json index 184c42a..adce98b 100644 --- a/agents/stock/workspace/state/sim/variants/v61/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v61/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943802+09:00", - "updated_at": "2026-06-11T11:20:02.369915+09:00" + "updated_at": "2026-06-11T15:25:07.456761+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v62/portfolio.json b/agents/stock/workspace/state/sim/variants/v62/portfolio.json index 055053b..6818714 100644 --- a/agents/stock/workspace/state/sim/variants/v62/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v62/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 6250000.0, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 5607543.004772153, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100454286.63000001, - "max_drawdown": 0.0028953468264751934, + "max_drawdown": 0.0037524531072368034, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943812+09:00", - "updated_at": "2026-06-11T11:20:02.371103+09:00" + "updated_at": "2026-06-11T15:25:07.457973+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v63/portfolio.json b/agents/stock/workspace/state/sim/variants/v63/portfolio.json index bcc5437..f60ffda 100644 --- a/agents/stock/workspace/state/sim/variants/v63/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v63/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943822+09:00", - "updated_at": "2026-06-11T11:20:02.372328+09:00" + "updated_at": "2026-06-11T15:25:07.459214+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v64/portfolio.json b/agents/stock/workspace/state/sim/variants/v64/portfolio.json index e844c83..6459557 100644 --- a/agents/stock/workspace/state/sim/variants/v64/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v64/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 6250000.0, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 5607543.004772153, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100454286.63000001, - "max_drawdown": 0.0028953468264751934, + "max_drawdown": 0.0037524531072368034, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943832+09:00", - "updated_at": "2026-06-11T11:20:02.373529+09:00" + "updated_at": "2026-06-11T15:25:07.460431+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v65/portfolio.json b/agents/stock/workspace/state/sim/variants/v65/portfolio.json index ad88133..2fc7585 100644 --- a/agents/stock/workspace/state/sim/variants/v65/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v65/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943843+09:00", - "updated_at": "2026-06-11T11:20:02.374735+09:00" + "updated_at": "2026-06-11T15:25:07.461661+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v66/portfolio.json b/agents/stock/workspace/state/sim/variants/v66/portfolio.json index 29939c9..977223c 100644 --- a/agents/stock/workspace/state/sim/variants/v66/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v66/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 6250000.0, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 5607543.004772153, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100454286.63000001, - "max_drawdown": 0.0028953468264751934, + "max_drawdown": 0.0037524531072368034, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943852+09:00", - "updated_at": "2026-06-11T11:20:02.375923+09:00" + "updated_at": "2026-06-11T15:25:07.462900+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v67/portfolio.json b/agents/stock/workspace/state/sim/variants/v67/portfolio.json index 812c9ee..b977e95 100644 --- a/agents/stock/workspace/state/sim/variants/v67/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v67/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943862+09:00", - "updated_at": "2026-06-11T11:20:02.377134+09:00" + "updated_at": "2026-06-11T15:25:07.464153+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v68/portfolio.json b/agents/stock/workspace/state/sim/variants/v68/portfolio.json index fe35089..e170e4b 100644 --- a/agents/stock/workspace/state/sim/variants/v68/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v68/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943872+09:00", - "updated_at": "2026-06-11T11:20:02.378346+09:00" + "updated_at": "2026-06-11T15:25:07.465388+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v69/portfolio.json b/agents/stock/workspace/state/sim/variants/v69/portfolio.json index 13e63e9..134d522 100644 --- a/agents/stock/workspace/state/sim/variants/v69/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v69/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943883+09:00", - "updated_at": "2026-06-11T11:20:02.379559+09:00" + "updated_at": "2026-06-11T15:25:07.466634+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v7/portfolio.json b/agents/stock/workspace/state/sim/variants/v7/portfolio.json index e6778bb..fdaa8fb 100644 --- a/agents/stock/workspace/state/sim/variants/v7/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v7/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943259+09:00", - "updated_at": "2026-06-11T11:20:01.475995+09:00" + "updated_at": "2026-06-11T15:25:06.542556+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v70/portfolio.json b/agents/stock/workspace/state/sim/variants/v70/portfolio.json index 7551920..369f88e 100644 --- a/agents/stock/workspace/state/sim/variants/v70/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v70/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943893+09:00", - "updated_at": "2026-06-11T11:20:02.380743+09:00" + "updated_at": "2026-06-11T15:25:07.467855+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v71/portfolio.json b/agents/stock/workspace/state/sim/variants/v71/portfolio.json index 188195e..8675263 100644 --- a/agents/stock/workspace/state/sim/variants/v71/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v71/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943903+09:00", - "updated_at": "2026-06-11T11:20:02.381985+09:00" + "updated_at": "2026-06-11T15:25:07.469116+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v72/portfolio.json b/agents/stock/workspace/state/sim/variants/v72/portfolio.json index 56d69a2..46c83ba 100644 --- a/agents/stock/workspace/state/sim/variants/v72/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v72/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943912+09:00", - "updated_at": "2026-06-11T11:20:02.383177+09:00" + "updated_at": "2026-06-11T15:25:07.470341+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v73/portfolio.json b/agents/stock/workspace/state/sim/variants/v73/portfolio.json index 99b79dc..9d0ba7a 100644 --- a/agents/stock/workspace/state/sim/variants/v73/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v73/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943922+09:00", - "updated_at": "2026-06-11T11:20:02.384385+09:00" + "updated_at": "2026-06-11T15:25:07.471570+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v74/portfolio.json b/agents/stock/workspace/state/sim/variants/v74/portfolio.json index 6c4267c..9d8c7f0 100644 --- a/agents/stock/workspace/state/sim/variants/v74/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v74/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943932+09:00", - "updated_at": "2026-06-11T11:20:02.385575+09:00" + "updated_at": "2026-06-11T15:25:07.472796+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v75/portfolio.json b/agents/stock/workspace/state/sim/variants/v75/portfolio.json index e5878e7..f9bfc19 100644 --- a/agents/stock/workspace/state/sim/variants/v75/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v75/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943941+09:00", - "updated_at": "2026-06-11T11:20:02.386784+09:00" + "updated_at": "2026-06-11T15:25:07.474083+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v76/portfolio.json b/agents/stock/workspace/state/sim/variants/v76/portfolio.json index 094a00f..7616354 100644 --- a/agents/stock/workspace/state/sim/variants/v76/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v76/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943951+09:00", - "updated_at": "2026-06-11T11:20:02.387970+09:00" + "updated_at": "2026-06-11T15:25:07.475332+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v77/portfolio.json b/agents/stock/workspace/state/sim/variants/v77/portfolio.json index 3942325..1505290 100644 --- a/agents/stock/workspace/state/sim/variants/v77/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v77/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943960+09:00", - "updated_at": "2026-06-11T11:20:02.389225+09:00" + "updated_at": "2026-06-11T15:25:07.476584+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v78/portfolio.json b/agents/stock/workspace/state/sim/variants/v78/portfolio.json index b4fcb52..c60b2db 100644 --- a/agents/stock/workspace/state/sim/variants/v78/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v78/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 219,919 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 96,991 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943970+09:00", - "updated_at": "2026-06-11T11:20:02.390424+09:00" + "updated_at": "2026-06-11T15:25:07.477814+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v79/portfolio.json b/agents/stock/workspace/state/sim/variants/v79/portfolio.json index 0e5a992..e763f5f 100644 --- a/agents/stock/workspace/state/sim/variants/v79/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v79/portfolio.json @@ -1,13 +1,35 @@ { - "cash": 100000000, + "cash": 95790868.725, "initial": 100000000, - "positions": {}, + "positions": { + "035420": { + "code": "035420", + "name": "NAVER", + "sources": [ + "interest" + ], + "qty": 19, + "entry_price": 221500, + "entry_at": "2026-06-11T12:45:02.509411+09:00", + "stop": 195800, + "target": 272900, + "peak": 224000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 232,280 도달", + "cur_price": 222000, + "tranches": 1, + "tranche_value": 4309338.521400778, + "last_add_price": 221500 + } + }, "realized_pnl": 0.0, "closed_trades": 0, "wins": 0, - "peak_equity": 100000000, - "max_drawdown": 0.0, + "peak_equity": 100046868.725, + "max_drawdown": 0.0004747774778495448, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943979+09:00", - "updated_at": "2026-06-11T11:20:02.391632+09:00" + "updated_at": "2026-06-11T15:25:07.479069+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v79/trades.jsonl b/agents/stock/workspace/state/sim/variants/v79/trades.jsonl new file mode 100644 index 0000000..cc32275 --- /dev/null +++ b/agents/stock/workspace/state/sim/variants/v79/trades.jsonl @@ -0,0 +1 @@ +{"ts": "2026-06-11T12:45:02.509412+09:00", "side": "BUY", "code": "035420", "name": "NAVER", "price": 221500, "qty": 19, "cost": 4209131, "path": "pullback", "reason": "눌림목 지정가 232,280 도달", "stop": 195800, "target": 272900, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "221,000 vs 218,048"}, {"label": "정배열(5>20)", "ok": true, "detail": "256,000 / 218,048"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "256,000 / 215,415"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+3.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -132 · 기 +1,200 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.39% (환산) vs 평균 2.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 304,000"}, {"label": "거래량 급증", "ok": false, "detail": "5,311,497 (환산) vs 평균 3,404,288"}, {"label": "회전율 급증", "ok": true, "detail": "3.39% (환산) vs 평균 2.17%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 232,280 (현재 221,000)"}]} diff --git a/agents/stock/workspace/state/sim/variants/v8/portfolio.json b/agents/stock/workspace/state/sim/variants/v8/portfolio.json index e083967..d0aad59 100644 --- a/agents/stock/workspace/state/sim/variants/v8/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v8/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943269+09:00", - "updated_at": "2026-06-11T11:20:01.478170+09:00" + "updated_at": "2026-06-11T15:25:06.545085+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v80/portfolio.json b/agents/stock/workspace/state/sim/variants/v80/portfolio.json index 536a45c..9ea5471 100644 --- a/agents/stock/workspace/state/sim/variants/v80/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v80/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 103,828 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943989+09:00", - "updated_at": "2026-06-11T11:20:02.392814+09:00" + "updated_at": "2026-06-11T15:25:07.480320+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v81/portfolio.json b/agents/stock/workspace/state/sim/variants/v81/portfolio.json index 9ee4061..40ec153 100644 --- a/agents/stock/workspace/state/sim/variants/v81/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v81/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943999+09:00", - "updated_at": "2026-06-11T11:20:02.393989+09:00" + "updated_at": "2026-06-11T15:25:07.481515+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v82/portfolio.json b/agents/stock/workspace/state/sim/variants/v82/portfolio.json index 84451ae..a009181 100644 --- a/agents/stock/workspace/state/sim/variants/v82/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v82/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944008+09:00", - "updated_at": "2026-06-11T11:20:02.395158+09:00" + "updated_at": "2026-06-11T15:25:07.482690+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v83/portfolio.json b/agents/stock/workspace/state/sim/variants/v83/portfolio.json index b28b1d9..bef2bbc 100644 --- a/agents/stock/workspace/state/sim/variants/v83/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v83/portfolio.json @@ -1,13 +1,35 @@ { - "cash": 100000000, + "cash": 95790868.725, "initial": 100000000, - "positions": {}, + "positions": { + "035420": { + "code": "035420", + "name": "NAVER", + "sources": [ + "interest" + ], + "qty": 19, + "entry_price": 221500, + "entry_at": "2026-06-11T12:45:02.514448+09:00", + "stop": 195800, + "target": 272900, + "peak": 224000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 232,280 도달", + "cur_price": 222000, + "tranches": 1, + "tranche_value": 4309338.521400778, + "last_add_price": 221500 + } + }, "realized_pnl": 0.0, "closed_trades": 0, "wins": 0, - "peak_equity": 100000000, - "max_drawdown": 0.0, + "peak_equity": 100046868.725, + "max_drawdown": 0.0004747774778495448, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944018+09:00", - "updated_at": "2026-06-11T11:20:02.396332+09:00" + "updated_at": "2026-06-11T15:25:07.483905+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v83/trades.jsonl b/agents/stock/workspace/state/sim/variants/v83/trades.jsonl new file mode 100644 index 0000000..141dd99 --- /dev/null +++ b/agents/stock/workspace/state/sim/variants/v83/trades.jsonl @@ -0,0 +1 @@ +{"ts": "2026-06-11T12:45:02.514449+09:00", "side": "BUY", "code": "035420", "name": "NAVER", "price": 221500, "qty": 19, "cost": 4209131, "path": "pullback", "reason": "눌림목 지정가 232,280 도달", "stop": 195800, "target": 272900, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "221,000 vs 218,048"}, {"label": "정배열(5>20)", "ok": true, "detail": "256,000 / 218,048"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "256,000 / 215,415"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+3.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -132 · 기 +1,200 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.39% (환산) vs 평균 2.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 304,000"}, {"label": "거래량 급증", "ok": false, "detail": "5,311,497 (환산) vs 평균 3,404,288"}, {"label": "회전율 급증", "ok": true, "detail": "3.39% (환산) vs 평균 2.17%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 232,280 (현재 221,000)"}]} diff --git a/agents/stock/workspace/state/sim/variants/v84/portfolio.json b/agents/stock/workspace/state/sim/variants/v84/portfolio.json index 9b75dbd..f35ae8d 100644 --- a/agents/stock/workspace/state/sim/variants/v84/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v84/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 103,828 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944028+09:00", - "updated_at": "2026-06-11T11:20:02.397509+09:00" + "updated_at": "2026-06-11T15:25:07.485128+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v85/portfolio.json b/agents/stock/workspace/state/sim/variants/v85/portfolio.json index 9c4bea5..37c677f 100644 --- a/agents/stock/workspace/state/sim/variants/v85/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v85/portfolio.json @@ -1,13 +1,35 @@ { - "cash": 100000000, + "cash": 95790868.725, "initial": 100000000, - "positions": {}, + "positions": { + "035420": { + "code": "035420", + "name": "NAVER", + "sources": [ + "interest" + ], + "qty": 19, + "entry_price": 221500, + "entry_at": "2026-06-11T12:45:02.517055+09:00", + "stop": 195800, + "target": 260050, + "peak": 224000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 232,280 도달", + "cur_price": 222000, + "tranches": 1, + "tranche_value": 4309338.521400778, + "last_add_price": 221500 + } + }, "realized_pnl": 0.0, "closed_trades": 0, "wins": 0, - "peak_equity": 100000000, - "max_drawdown": 0.0, + "peak_equity": 100046868.725, + "max_drawdown": 0.0004747774778495448, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944038+09:00", - "updated_at": "2026-06-11T11:20:02.398731+09:00" + "updated_at": "2026-06-11T15:25:07.486390+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v85/trades.jsonl b/agents/stock/workspace/state/sim/variants/v85/trades.jsonl new file mode 100644 index 0000000..8533ed1 --- /dev/null +++ b/agents/stock/workspace/state/sim/variants/v85/trades.jsonl @@ -0,0 +1 @@ +{"ts": "2026-06-11T12:45:02.517056+09:00", "side": "BUY", "code": "035420", "name": "NAVER", "price": 221500, "qty": 19, "cost": 4209131, "path": "pullback", "reason": "눌림목 지정가 232,280 도달", "stop": 195800, "target": 260050, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "221,000 vs 218,048"}, {"label": "정배열(5>20)", "ok": true, "detail": "256,000 / 218,048"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "256,000 / 215,415"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+3.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -132 · 기 +1,200 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.39% (환산) vs 평균 2.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 304,000"}, {"label": "거래량 급증", "ok": false, "detail": "5,311,497 (환산) vs 평균 3,404,288"}, {"label": "회전율 급증", "ok": true, "detail": "3.39% (환산) vs 평균 2.17%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 232,280 (현재 221,000)"}]} diff --git a/agents/stock/workspace/state/sim/variants/v86/portfolio.json b/agents/stock/workspace/state/sim/variants/v86/portfolio.json index 29ad448..cbb575a 100644 --- a/agents/stock/workspace/state/sim/variants/v86/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v86/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 4463562.753036438, "last_add_price": 220500 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 103,828 도달", - "cur_price": 91000, + "cur_price": 92800, "tranches": 1, "tranche_value": 2803778.9212341774, "last_add_price": 88600 @@ -49,8 +49,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100263776.51, - "max_drawdown": 0.0017997526752047133, + "max_drawdown": 0.0023153925383694886, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944049+09:00", - "updated_at": "2026-06-11T11:20:02.399908+09:00" + "updated_at": "2026-06-11T15:25:07.487613+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v87/portfolio.json b/agents/stock/workspace/state/sim/variants/v87/portfolio.json index fc1e4d8..2de8971 100644 --- a/agents/stock/workspace/state/sim/variants/v87/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v87/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944063+09:00", - "updated_at": "2026-06-11T11:20:02.401056+09:00" + "updated_at": "2026-06-11T15:25:07.488789+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v88/portfolio.json b/agents/stock/workspace/state/sim/variants/v88/portfolio.json index 1dfbdff..6bb3132 100644 --- a/agents/stock/workspace/state/sim/variants/v88/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v88/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944073+09:00", - "updated_at": "2026-06-11T11:20:02.402194+09:00" + "updated_at": "2026-06-11T15:25:07.489954+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v89/portfolio.json b/agents/stock/workspace/state/sim/variants/v89/portfolio.json index 9624d05..895af62 100644 --- a/agents/stock/workspace/state/sim/variants/v89/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v89/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944112+09:00", - "updated_at": "2026-06-11T11:20:02.403315+09:00" + "updated_at": "2026-06-11T15:25:07.491121+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v9/portfolio.json b/agents/stock/workspace/state/sim/variants/v9/portfolio.json index 653c655..7a5a3be 100644 --- a/agents/stock/workspace/state/sim/variants/v9/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v9/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.943279+09:00", - "updated_at": "2026-06-11T11:20:01.480324+09:00" + "updated_at": "2026-06-11T15:25:06.547588+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v90/portfolio.json b/agents/stock/workspace/state/sim/variants/v90/portfolio.json index 2a5e5e7..a857fdd 100644 --- a/agents/stock/workspace/state/sim/variants/v90/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v90/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 3741721.8543046354, "last_add_price": 226000 @@ -28,8 +28,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.0008054240000000596, + "max_drawdown": 0.0010454240000000595, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944122+09:00", - "updated_at": "2026-06-11T11:20:02.404454+09:00" + "updated_at": "2026-06-11T15:25:07.492287+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v91/portfolio.json b/agents/stock/workspace/state/sim/variants/v91/portfolio.json index 52c8bc3..df85bfe 100644 --- a/agents/stock/workspace/state/sim/variants/v91/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v91/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944132+09:00", - "updated_at": "2026-06-11T11:20:02.405593+09:00" + "updated_at": "2026-06-11T15:25:07.493455+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v92/portfolio.json b/agents/stock/workspace/state/sim/variants/v92/portfolio.json index 6d845d5..f3879e8 100644 --- a/agents/stock/workspace/state/sim/variants/v92/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v92/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944142+09:00", - "updated_at": "2026-06-11T11:20:02.406730+09:00" + "updated_at": "2026-06-11T15:25:07.494615+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v93/portfolio.json b/agents/stock/workspace/state/sim/variants/v93/portfolio.json index 77d951b..ac6c481 100644 --- a/agents/stock/workspace/state/sim/variants/v93/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v93/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944152+09:00", - "updated_at": "2026-06-11T11:20:02.407864+09:00" + "updated_at": "2026-06-11T15:25:07.495771+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v94/portfolio.json b/agents/stock/workspace/state/sim/variants/v94/portfolio.json index 8a6671f..866f6a4 100644 --- a/agents/stock/workspace/state/sim/variants/v94/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v94/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944162+09:00", - "updated_at": "2026-06-11T11:20:02.409000+09:00" + "updated_at": "2026-06-11T15:25:07.496925+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v95/portfolio.json b/agents/stock/workspace/state/sim/variants/v95/portfolio.json index 80f7b57..23ea0a9 100644 --- a/agents/stock/workspace/state/sim/variants/v95/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v95/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944172+09:00", - "updated_at": "2026-06-11T11:20:02.410126+09:00" + "updated_at": "2026-06-11T15:25:07.498090+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v96/portfolio.json b/agents/stock/workspace/state/sim/variants/v96/portfolio.json index 2af1ac7..0490baf 100644 --- a/agents/stock/workspace/state/sim/variants/v96/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v96/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944181+09:00", - "updated_at": "2026-06-11T11:20:02.411262+09:00" + "updated_at": "2026-06-11T15:25:07.499252+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v97/portfolio.json b/agents/stock/workspace/state/sim/variants/v97/portfolio.json index c928899..9431779 100644 --- a/agents/stock/workspace/state/sim/variants/v97/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v97/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944191+09:00", - "updated_at": "2026-06-11T11:20:02.412392+09:00" + "updated_at": "2026-06-11T15:25:07.500418+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v98/portfolio.json b/agents/stock/workspace/state/sim/variants/v98/portfolio.json index 3ad2343..0e8c312 100644 --- a/agents/stock/workspace/state/sim/variants/v98/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v98/portfolio.json @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 232,280 도달", - "cur_price": 221000, + "cur_price": 222000, "tranches": 1, "tranche_value": 3741721.8543046354, "last_add_price": 226000 @@ -28,8 +28,8 @@ "closed_trades": 0, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.0008054240000000596, + "max_drawdown": 0.0010454240000000595, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944200+09:00", - "updated_at": "2026-06-11T11:20:02.413542+09:00" + "updated_at": "2026-06-11T15:25:07.501582+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v99/portfolio.json b/agents/stock/workspace/state/sim/variants/v99/portfolio.json index e2bab84..726da7b 100644 --- a/agents/stock/workspace/state/sim/variants/v99/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v99/portfolio.json @@ -9,5 +9,5 @@ "max_drawdown": 0.0, "last_exit": {}, "created_at": "2026-06-11T09:00:01.944212+09:00", - "updated_at": "2026-06-11T11:20:02.414692+09:00" + "updated_at": "2026-06-11T15:25:07.502735+09:00" } \ No newline at end of file