From a5f6b0ecd89f9dc04bd3e97bcfa3cb4756c7132b Mon Sep 17 00:00:00 2001 From: hyowons Date: Thu, 30 Jul 2026 02:00:02 +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-07-30=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 | 9 +- TASKS.md | 1 + agents/stock/workspace/MEMORY.md | 1 + agents/stock/workspace/scripts/behive_web.py | 408 ++++++++++++++-- .../workspace/scripts/fomc_calendar_sync.py | 341 +++++++++++++ .../workspace/scripts/investment_principal.py | 449 ++++++++++++++++++ .../stock/workspace/scripts/kiwoom_client.py | 62 ++- .../scripts/stock_portfolio_report.py | 113 ++--- .../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 | 79 +-- .../state/sim/variants/v1/trades.jsonl | 7 + .../state/sim/variants/v101/portfolio.json | 97 ++-- .../state/sim/variants/v101/trades.jsonl | 9 + .../state/sim/variants/v103/portfolio.json | 138 ++---- .../state/sim/variants/v103/trades.jsonl | 10 + .../state/sim/variants/v105/portfolio.json | 103 ++-- .../state/sim/variants/v105/trades.jsonl | 8 + .../state/sim/variants/v107/portfolio.json | 106 ++--- .../state/sim/variants/v107/trades.jsonl | 8 + .../state/sim/variants/v147/portfolio.json | 131 ++--- .../state/sim/variants/v147/trades.jsonl | 9 + .../state/sim/variants/v149/portfolio.json | 126 ++--- .../state/sim/variants/v149/trades.jsonl | 10 + .../state/sim/variants/v151/portfolio.json | 129 ++--- .../state/sim/variants/v151/trades.jsonl | 9 + .../state/sim/variants/v155/portfolio.json | 108 ++--- .../state/sim/variants/v155/trades.jsonl | 8 + .../state/sim/variants/v157/portfolio.json | 97 ++-- .../state/sim/variants/v157/trades.jsonl | 9 + .../state/sim/variants/v159/portfolio.json | 127 +---- .../state/sim/variants/v159/trades.jsonl | 10 + .../state/sim/variants/v161/portfolio.json | 105 ++-- .../state/sim/variants/v161/trades.jsonl | 11 + .../state/sim/variants/v165/portfolio.json | 105 ++-- .../state/sim/variants/v165/trades.jsonl | 11 + .../state/sim/variants/v167/portfolio.json | 120 ++--- .../state/sim/variants/v167/trades.jsonl | 10 + .../state/sim/variants/v189/portfolio.json | 127 +---- .../state/sim/variants/v189/trades.jsonl | 10 + .../state/sim/variants/v195/portfolio.json | 125 ++--- .../state/sim/variants/v195/trades.jsonl | 10 + .../state/sim/variants/v197/portfolio.json | 80 ++-- .../state/sim/variants/v197/trades.jsonl | 9 + .../state/sim/variants/v199/portfolio.json | 86 ++-- .../state/sim/variants/v199/trades.jsonl | 10 + .../state/sim/variants/v201/portfolio.json | 125 ++--- .../state/sim/variants/v201/trades.jsonl | 10 + .../state/sim/variants/v203/portfolio.json | 90 +--- .../state/sim/variants/v203/trades.jsonl | 8 + .../state/sim/variants/v205/portfolio.json | 82 ++-- .../state/sim/variants/v205/trades.jsonl | 8 + .../state/sim/variants/v207/portfolio.json | 82 ++-- .../state/sim/variants/v207/trades.jsonl | 10 + .../state/sim/variants/v209/portfolio.json | 97 ++-- .../state/sim/variants/v209/trades.jsonl | 9 + .../state/sim/variants/v211/portfolio.json | 138 ++---- .../state/sim/variants/v211/trades.jsonl | 10 + .../state/sim/variants/v213/portfolio.json | 103 ++-- .../state/sim/variants/v213/trades.jsonl | 8 + .../state/sim/variants/v215/portfolio.json | 106 ++--- .../state/sim/variants/v215/trades.jsonl | 8 + .../state/sim/variants/v217/portfolio.json | 109 ++--- .../state/sim/variants/v217/trades.jsonl | 10 + .../state/sim/variants/v218/portfolio.json | 133 +++--- .../state/sim/variants/v218/trades.jsonl | 14 + .../state/sim/variants/v223/portfolio.json | 102 ++-- .../state/sim/variants/v223/trades.jsonl | 9 + .../state/sim/variants/v224/portfolio.json | 142 +++--- .../state/sim/variants/v224/trades.jsonl | 13 + .../state/sim/variants/v229/portfolio.json | 109 ++--- .../state/sim/variants/v229/trades.jsonl | 10 + .../state/sim/variants/v230/portfolio.json | 133 +++--- .../state/sim/variants/v230/trades.jsonl | 14 + .../state/sim/variants/v235/portfolio.json | 102 ++-- .../state/sim/variants/v235/trades.jsonl | 9 + .../state/sim/variants/v236/portfolio.json | 142 +++--- .../state/sim/variants/v236/trades.jsonl | 13 + .../state/sim/variants/v265/portfolio.json | 102 ++-- .../state/sim/variants/v265/trades.jsonl | 9 + .../state/sim/variants/v266/portfolio.json | 142 +++--- .../state/sim/variants/v266/trades.jsonl | 13 + .../state/sim/variants/v271/portfolio.json | 102 ++-- .../state/sim/variants/v271/trades.jsonl | 9 + .../state/sim/variants/v272/portfolio.json | 142 +++--- .../state/sim/variants/v272/trades.jsonl | 13 + .../state/sim/variants/v277/portfolio.json | 109 ++--- .../state/sim/variants/v277/trades.jsonl | 10 + .../state/sim/variants/v278/portfolio.json | 133 +++--- .../state/sim/variants/v278/trades.jsonl | 14 + .../state/sim/variants/v283/portfolio.json | 109 ++--- .../state/sim/variants/v283/trades.jsonl | 10 + .../state/sim/variants/v284/portfolio.json | 133 +++--- .../state/sim/variants/v284/trades.jsonl | 14 + .../state/sim/variants/v296/portfolio.json | 70 +-- .../state/sim/variants/v296/trades.jsonl | 5 + .../state/sim/variants/v298/portfolio.json | 80 ++-- .../state/sim/variants/v298/trades.jsonl | 7 + .../state/sim/variants/v299/portfolio.json | 71 +-- .../state/sim/variants/v299/trades.jsonl | 4 + .../state/sim/variants/v300/portfolio.json | 122 +---- .../state/sim/variants/v300/trades.jsonl | 10 + .../state/sim/variants/v301/portfolio.json | 88 ++-- .../state/sim/variants/v301/trades.jsonl | 8 + .../state/sim/variants/v302/portfolio.json | 59 ++- .../state/sim/variants/v302/trades.jsonl | 5 + .../state/sim/variants/v303/portfolio.json | 87 ++-- .../state/sim/variants/v303/trades.jsonl | 9 + .../state/sim/variants/v304/portfolio.json | 164 ++----- .../state/sim/variants/v304/trades.jsonl | 11 + .../state/sim/variants/v305/portfolio.json | 92 ++-- .../state/sim/variants/v305/trades.jsonl | 10 + .../state/sim/variants/v306/portfolio.json | 104 +++- .../state/sim/variants/v306/trades.jsonl | 8 + .../state/sim/variants/v307/portfolio.json | 80 +--- .../state/sim/variants/v307/trades.jsonl | 8 + .../state/sim/variants/v308/portfolio.json | 114 ++--- .../state/sim/variants/v308/trades.jsonl | 9 + .../state/sim/variants/v309/portfolio.json | 98 ++-- .../state/sim/variants/v309/trades.jsonl | 11 + .../state/sim/variants/v310/portfolio.json | 66 ++- .../state/sim/variants/v310/trades.jsonl | 11 + .../state/sim/variants/v311/portfolio.json | 67 ++- .../state/sim/variants/v311/trades.jsonl | 7 + .../state/sim/variants/v312/portfolio.json | 86 +++- .../state/sim/variants/v312/trades.jsonl | 11 + .../state/sim/variants/v313/portfolio.json | 118 ++--- .../state/sim/variants/v313/trades.jsonl | 8 + .../state/sim/variants/v314/portfolio.json | 82 +--- .../state/sim/variants/v314/trades.jsonl | 6 + .../state/sim/variants/v315/portfolio.json | 60 ++- .../state/sim/variants/v315/trades.jsonl | 6 + .../state/sim/variants/v316/portfolio.json | 65 ++- .../state/sim/variants/v316/trades.jsonl | 9 + .../state/sim/variants/v317/portfolio.json | 71 ++- .../state/sim/variants/v317/trades.jsonl | 8 + .../state/sim/variants/v318/portfolio.json | 65 ++- .../state/sim/variants/v318/trades.jsonl | 9 + .../state/sim/variants/v319/portfolio.json | 64 +-- .../state/sim/variants/v319/trades.jsonl | 6 + .../state/sim/variants/v320/portfolio.json | 67 +-- .../state/sim/variants/v320/trades.jsonl | 9 + .../state/sim/variants/v321/portfolio.json | 74 ++- .../state/sim/variants/v321/trades.jsonl | 8 + .../state/sim/variants/v4/portfolio.json | 90 ++-- .../state/sim/variants/v4/trades.jsonl | 5 + .../state/sim/variants/v40/portfolio.json | 78 +-- .../state/sim/variants/v40/trades.jsonl | 6 + .../state/sim/variants/v41/portfolio.json | 80 ++-- .../state/sim/variants/v41/trades.jsonl | 8 + .../state/sim/variants/v47/portfolio.json | 111 ++--- .../state/sim/variants/v47/trades.jsonl | 6 + .../state/sim/variants/v49/portfolio.json | 98 ++-- .../state/sim/variants/v49/trades.jsonl | 7 + .../state/sim/variants/v51/portfolio.json | 106 +---- .../state/sim/variants/v51/trades.jsonl | 7 + .../state/sim/variants/v57/portfolio.json | 106 ++--- .../state/sim/variants/v57/trades.jsonl | 9 + .../state/sim/variants/v59/portfolio.json | 121 ++--- .../state/sim/variants/v59/trades.jsonl | 8 + .../state/sim/variants/v81/portfolio.json | 103 +--- .../state/sim/variants/v81/trades.jsonl | 9 + .../state/sim/variants/v87/portfolio.json | 125 ++--- .../state/sim/variants/v87/trades.jsonl | 10 + .../state/sim/variants/v89/portfolio.json | 106 ++--- .../state/sim/variants/v89/trades.jsonl | 8 + .../state/sim/variants/v91/portfolio.json | 78 +-- .../state/sim/variants/v91/trades.jsonl | 8 + .../state/sim/variants/v93/portfolio.json | 125 ++--- .../state/sim/variants/v93/trades.jsonl | 10 + .../state/sim/variants/v95/portfolio.json | 88 +--- .../state/sim/variants/v95/trades.jsonl | 8 + .../state/sim/variants/v97/portfolio.json | 103 ++-- .../state/sim/variants/v97/trades.jsonl | 9 + .../state/sim/variants/v99/portfolio.json | 82 ++-- .../state/sim/variants/v99/trades.jsonl | 10 + .../stock/workspace/state/trade_journal.jsonl | 3 + ...85892f1062a6e702a1cc16e9e2e7d87d8.attested | 2 +- ...58e47d1a42e88eb41d71e9539d3077451.attested | 2 +- ...7fa713ba87c5b1c125db2c01f477eb8d3.attested | 2 +- 181 files changed, 5372 insertions(+), 5251 deletions(-) create mode 100644 agents/stock/workspace/scripts/fomc_calendar_sync.py create mode 100644 agents/stock/workspace/scripts/investment_principal.py diff --git a/CLAUDE.md b/CLAUDE.md index f72df2b..df8a61c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -76,7 +76,7 @@ Budget agent skills (`agents/budget/workspace/skills/`): - **monthly-settlement** — 매월 1일 05:00 cron으로 전월 결산 리포트 생성 Stock agent skills (`agents/stock/workspace/skills/`): -- **kiwoom-rest** — 키움증권 REST API 조회 전용 클라이언트 (잔고·보유종목·계좌평가·실시간 시세·당일매매일지·종목코드 매핑·미체결 조회). 주문(매수/매도/정정/취소)은 별도 `orders/kiwoom_order.py`. `scripts/kiwoom_client.py {token|summary|balance|positions|quote|resolve|refresh-codes|journal|open}`. ka10170 당일매매일지로 round-trip·풀매도 거래까지 포착 (kt00018 잔고만으로는 누락됨). 다종목 시세는 `get_watchlist_quotes(codes)` ka10095 한 콜로 처리 (단건 ka10001 × N 대비 100배 빠름). ka10075 미체결 조회로 정정/취소 대상 자동 추출 +- **kiwoom-rest** — 키움증권 REST API 조회 전용 클라이언트 (잔고·보유종목·계좌평가·실시간 시세·당일매매일지·종목코드 매핑·미체결 조회). 주문(매수/매도/정정/취소)은 별도 `orders/kiwoom_order.py`. `scripts/kiwoom_client.py {token|summary|balance|positions|quote|resolve|refresh-codes|journal|open}`. ka10170 당일매매일지로 round-trip·풀매도 거래까지 포착 (kt00018 잔고만으로는 누락됨). 다종목 시세는 `get_watchlist_quotes(codes)` ka10095 한 콜로 처리 (단건 ka10001 × N 대비 100배 빠름). ka10075 미체결 조회로 정정/취소 대상 자동 추출. kt00016 기간 계좌수익률(`get_period_return`)로 기간내 총입금·총출금 조회 → 투자원금 산출(`investment_principal.py`) - **stock-agent** — Daily portfolio report (키움 REST 기반, owner 그룹(본인/가희)별 블록 표시, `--by-account`는 계좌별 추가 분리) via `scripts/stock_portfolio_report.py {run|send} [--by-account]` - **behive-watchlist** — 비하이브 종목분석 요약·이메일·텔레그램 알림 + 수동 워치리스트 추가(`add`) + 장중 15분 간격 시세 모니터링(`scripts/watchlist_monitor.py check` — buy/target/stop 트리거 → 레이 텔레그램, LLM 경유 없음) + 웹 뷰(`scripts/behive_web.py serve` — `https://stock.hyowons.net/`, launchd 상시, 페이지 로드 시점에 키움 호출. CSS 라디오 탭으로 `감시종목 / 관리자 / 가희` 3개 패널: 워치리스트, 본인·가희 계좌현황(KPI·예수금·당일정산·보유종목 — stock.briefing 메일과 동일 데이터). day_change 정확도용 ka10001 보정은 web 경로에선 생략, kt00018 raw 사용) @@ -89,15 +89,17 @@ Main workspace (`workspace/scripts/`), run with `python3`: Stock agent (`agents/stock/workspace/scripts/`), run with `python3`: - `kiwoom_client.py` — 키움 REST API 조회 전용 클라이언트 (본인 2계좌 일반/ISA + 가희 2계좌 가희_일반/가희_ISA, 토큰 캐싱, 주문 함수 없음). CLI: `token | summary | balance | positions | quote | resolve | refresh-codes | journal` +- `investment_principal.py` — **투자원금(누적 입금−출금) 집계**. 조회 전용. `순자산 − 투자원금 = 진짜 총수익`(실현+미실현+배당) — kt00018 평가손익은 현재 보유분 미실현만이라 누적 실현손익·배당을 놓친다(실측 본인 619만·가희 232만 누락). 데이터원은 kt00016 기간내총입금·총출금(합계) + kt00015 tp='1'(입출금 행 단위). ⚠️ **둘 다 조회기간 1년 제한**(kt00016 `505221` / kt00015 `501058`)이라 연도별 창으로 쪼개 누적 — `_fetch_year`가 창당 2콜. ⚠️ **kt00015 tp='1' 입금엔 배당금·예탁금이용료(이자)·수익분배금·공모주환불금·단주매각대금·쿠폰현금지급이 섞여 있다** — 그대로 합치면 원금 과대계상. **kt00016의 총입금/총출금은 이걸 이미 제외한 순수 외부 이체액**이다(전 계좌·연도 실증). 행 단위 분류는 `is_principal_flow` = 적요에 **이체/대체/인증** 포함 여부 → 이 분류 합이 kt00016 합계와 **18개 (계좌,연도) 구간 전부 오차 0**으로 일치 확인(추측 아님). 새 적요가 등장하면 창별 `rec=False`로 드러나 모달에 경고가 뜬다. ⚠️ 응답의 `invt_bsamt`는 "투자원금**평잔**"(기간 평균잔고)이라 누적 원금이 아님 — 이름이 비슷해 오용 주의. 항등식 `순자산초 + 입금 − 출금 + 평가손익 = 순자산말`이 전 연도·계좌에서 오차 0으로 성립(자체 검증용, `show`가 출력). 캐시 `state/investment_principal.json` = `frozen`(지난 연도=확정값, 재조회 X) + `current`(올해 창, 갱신 대상) + `seen`(마지막 갱신 시점 당일 입출금 — 이벤트 감지 기준). **별도 트리거 없음** — behive_web 렌더 경로가 이미 조회 중인 kt00015 당일 입출금이 `seen`과 다를 때만 올해 창 재조회(계좌당 1콜), 입출금 없는 평시엔 kt00016 콜 0. 안전망으로 7일 초과 시 강제 갱신. 캐시 없으면 `needs_refresh`가 False·`get_principal`이 None → 페이지를 68콜로 막지 않고 KPI 2행만 조용히 생략. `bootstrap`은 FLOOR_YEAR(2010)~올해 전수 조회(4계좌×17년=68콜 ≈25초, 조기종료 없음 — 휴면 연도가 끼어도 앞 연도 안 놓침) **1회성 CLI 전용, 렌더 경로 호출 금지**. 주식 입출고(타사대체 `termin_tot_inq/outq`)가 있으면 현금 기준 원금이 과소계상 → `qty_flow` 플래그로 KPI에 ⚠️ 표시(현재 전 계좌 0). CLI: `python3 scripts/investment_principal.py {bootstrap|refresh|show}` - `fnguide_client.py` — FnGuide 컴퍼니가이드 펀더멘털 조회 (조회 전용, 키움에 없는 데이터 보강). `Snapshot_all/{code}.xml`(EUC-KR, JS 미경유 직접 파싱) 1콜 → 연간 재무 시계열·매출/EPS/영업이익 증가율·컨센서스(목표주가·투자의견·추정EPS/PER·참여기관수). `get_fundamentals(code)`, `state/fnguide_cache/{code}.json` 12h 캐시, 실패·ETF는 None (절대 raise X). ⚠️ FnGuide 저작권 회색지대 → 보유·관심 종목 on-demand만. ⚠️ 현재 피드는 forward 추정 EPS가 trailing 대비 크게 높게 나옴(예 하이닉스 2025 58,955→2026E 297,725) — 추정 PER이 현재 PER보다 훨씬 낮은 건 이익 급증 기대 반영이지 버그 아님. CLI: `python3 fnguide_client.py [--fresh]` - `wisereport_client.py` — WISEreport(comp.wisereport.co.kr, FnGuide 계열 동일 벤더) 컨센서스·증권사 리포트 조회 (순수 JSON, encparam 불필요). `get_consensus(code)`: 연도별 추정 재무(IFRS연결 A실적/E추정, `c1050001_data.aspx flag=2`)·목표주가+추정EPS 3개월 리비전 추이(`cF5001`)·어닝 서프라이즈(`flag=5` 매출/영익 실적 vs 직전 컨센서스 괴리율). `get_reports(code)`: 최근 증권사 분석리포트(`c1080001_data.aspx` — 날짜·증권사·제목·목표가+상향/하향 액션·투자의견·애널리스트·요약 bullet, PDF 원문은 게이팅·저작권으로 제외). `state/wisereport_cache/` 캐시(컨센서스 12h·리포트 6h), 실패·ETF는 None. 동일 벤더 회색지대. CLI: ` [--fresh] [--reports]` - `stock_analysis.py` — 종목 분석 보고서 엔진 (behive_web `/stock/`가 import, CLI 없음). 키움 기본정보·일봉·수급 + LLM 코멘트 + SVG 차트 + 투자의견 게이지 → 종목별 HTML 보고서(`state/stock_reports//`). FnGuide 성장성·컨센서스 + WISEreport 추정·리비전·서프라이즈 섹션 포함(LLM 데이터블록에도 주입). 레이아웃: 결론(투자의견) 최상단 + 보조 섹션 2단 그리드(`.rpt-cols`), 지표마다 평이한 캡션(`.rpt-cap`) + ⓘ 탭 설명(`_KV_HINTS`/`_lbl`). `enqueue` / `render_stock_page` / `add_peer`. 새 섹션은 신규 생성 보고서부터 반영(기존 저장본은 옛 구조). - `stock_portfolio_report.py` — Daily portfolio report. 키움 `kt00018`(보유)·`kt00001`(예수금)·`ka10170`(당일매매일지) ground truth. `--by-account`로 계좌 분리 뷰. 당일정산(round-trip·풀매도)은 잔고에 없어 별도 [당일정산] 카드로 표시 - `ipo_calendar_sync.py` — Sync IPO subscription/listing dates to Google Calendar +- `fomc_calendar_sync.py` — 미 연준 FOMC 회의 일정 → Google Calendar (`ipo_calendar_sync.py` 구조 복제, 조회+등록 전용). 출처 `federalreserve.gov/monetarypolicy/fomccalendars.htm`(인증 불필요) — `fomc-meeting__month`/`fomc-meeting__date` div 파싱, 날짜 끝 `*`=SEP(경제전망·점도표) 회의. 제목 `[FOMC] YYYY-MM 회의`(+` (SEP)`)는 **2026-03-23 관리자님이 일괄 등록한 기존 표기를 그대로 승계** — 덕분에 기존 항목이 중복 없이 흡수됨. `state_key`=시작월 `YYYY-MM`(FOMC는 한 달에 두 번 안 열려 고유). **이벤트 기간 = 회의 시작일(ET) ~ 발표일(KST)**로 3일짜리 종일 이벤트(`cal_start`/`cal_end`). 성명 발표는 회의 마지막날 `America/New_York` 14:00 = KST 익일 03:00(EDT)·04:00(EST)이라, ET 회의날짜만 넣으면 **정작 한국 장이 결과를 반영하는 날에 캘린더가 비어 브리핑 '오늘 일정'에도 안 뜬다** — 그래서 발표일까지 덮는다(2026-07-29 관리자님 지적으로 수정, 그전엔 2일짜리였음). 제목·description은 ET 회의날짜 기준 유지(뉴스·시황 표기와 일치). ⚠️ `parse_meetings`의 미래 판정 기준도 `start_date`가 아니라 **`cal_end > today`** — ET 회의가 끝났어도 한국 발표일이 남았으면 갱신 대상이다. ⚠️ `--event-color` **미지정** — 기존 colorId 9(블루베리) 보존. 안전장치: 스크래핑 실패로 목록이 비면 cleanup 전체 스킵 / 조회·삭제 범위는 `오늘 이후`로 한정 + **삭제 루프가 `old_start <= today`를 건너뜀**(진행 중이거나 지난 회의는 파싱 대상에서 빠질 뿐인데 stale로 오인돼 지워지는 걸 막음). CLI: `--list`(파싱 결과만, gog 미호출 — 인증 없는 환경에서 파서 검증용) / `--dry-run` / 무인자=실반영. 캐시 `state/fomc_calendar_sync.json` - `holiday_sync.py` — investing.com에서 한국(KRX) 휴장일 fetch → `state/market_holidays.json`. behive_web.py 자동갱신 토글이 휴장일·평일·시간대로 비활성 판정. CLI: `python3 holiday_sync.py [--show]` - `behive_youtube_digest.py` — 비하이브 YouTube 종목분석 수집·요약·발송 + 수동 워치리스트 추가(`add`)/조회·삭제 - `watchlist_monitor.py` — 워치리스트 종목 장중 15분 시세 감시, buy/target/stop 트리거 발생 시 레이 텔레그램 알림 (LLM 없이 동작). 미보유 종목은 ka10095 batch 1콜 + 단건 ka10001 fallback. 보유 종목은 kt00018 재활용 -- `behive_web.py` — 워치리스트 실시간 웹 뷰 + 매매 진입점. `serve`(launchd, Tailscale IP 100.75.148.12:18790 바인드, 페이지 GET마다 키움 ka10095 batch 1콜로 워치리스트 시세 + kt00018·kt00001·ka10170 병렬 호출 후 HTML 응답. RENDER 캐시 10s, 종목별 quote 캐시 30s) / `render`(디버깅용 1회 렌더). 외부 노출은 NAS Synology reverse proxy(`stock.hyowons.net` → mac:18790) 경유. 인증 없음 — Tailnet 내부망 한정 운영. **빌드 버전 자동 리로드**(2026-07-03): 이 앱은 `location.reload` 없이 fetch로만 갱신해 코드 수정+재시작 후에도 열려있던 페이지는 옛 인라인 JS/CSS를 계속 씀. `BUILD`(파일 mtime, import 시 1회) 상수를 shell `window.__build`와 `/api/panels` 응답 `build`에 실어, `apply()`가 불일치(옛 페이지=`__build` 없음 포함) 감지 시 `sessionStorage` 가드로 build당 1회 자동 리로드 → 최신 JS/CSS 반영(리로드로도 안 맞으면 루프 없이 포기). 보유종목 day_change 보정은 brifing 과 동일 A-4 정책. KPI 순서·라벨도 stock_portfolio_report 와 통일. 보유종목 행마다 `📋 거래내역` + `💰 거래` + `📝 메모` 버튼. 자산정보 탭 sub-tab 3개 (자산보기·차트보기·시장정보) + 우측 별도 `[💰 거래]` 버튼 (본인 첫 보유종목 자동 선택). 관심·감시종목 행에도 `💰 거래` (보유 모드면 매도 default). +- `behive_web.py` — 워치리스트 실시간 웹 뷰 + 매매 진입점. `serve`(launchd, Tailscale IP 100.75.148.12:18790 바인드, 페이지 GET마다 키움 ka10095 batch 1콜로 워치리스트 시세 + kt00018·kt00001·ka10170 병렬 호출 후 HTML 응답. RENDER 캐시 10s, 종목별 quote 캐시 30s) / `render`(디버깅용 1회 렌더). 외부 노출은 NAS Synology reverse proxy(`stock.hyowons.net` → mac:18790) 경유. 인증 없음 — Tailnet 내부망 한정 운영. **빌드 버전 자동 리로드**(2026-07-03): 이 앱은 `location.reload` 없이 fetch로만 갱신해 코드 수정+재시작 후에도 열려있던 페이지는 옛 인라인 JS/CSS를 계속 씀. `BUILD`(파일 mtime, import 시 1회) 상수를 shell `window.__build`와 `/api/panels` 응답 `build`에 실어, `apply()`가 불일치(옛 페이지=`__build` 없음 포함) 감지 시 `sessionStorage` 가드로 build당 1회 자동 리로드 → 최신 JS/CSS 반영(리로드로도 안 맞으면 루프 없이 포기). 보유종목 day_change 보정은 brifing 과 동일 A-4 정책. **KPI 라벨 규칙**(2026-07-29): **'총'은 계좌 전체(현금 포함) 기준일 때만 쓴다** — `총자산`(=평가금액+예수금)·`총수익`(=총자산−투자원금)만 '총'을 갖고, 보유종목 한정인 `평가금액`·`매입금액`·`평가손익`은 안 붙인다. 이름만으로 관계식이 읽히게 한 정리(구 라벨: 총 평가금액→평가금액, 순자산→**총자산**, 총 매입금액→매입금액, 총 평가손익→평가손익, `총수익 (원금 대비)`→총수익). 헷갈리던 세 쌍을 분리한 결과 — ①평가금액 vs 총자산(차이=예수금) ②매입금액 vs 투자원금(전자는 현 보유분 매입원가, 후자는 실제 입금액) ③평가손익 vs 총수익(전자는 보유분 미실현만, 후자는 실현·배당 포함). `_render_owner_kpi`·`_render_account_kpi`·**`stock_portfolio_report`(HTML·평문·텔레그램)**·순자산 차트 표시문(`NET_WORTH_MODE_PRESETS`·차트 제목·aria·툴팁 행) 전부 통일. ⚠️ 평문 리포트 라벨은 **표시폭 17칸 정렬**(한글 2칸) — 라벨 바꿀 때 공백 수 재계산 필요. ⚠️ `_rtk` 실시간 매핑 키가 라벨 문자열이라 라벨 변경 시 함께 고쳐야 한다. ⚠️ PBR 설명문의 '회사 순자산'은 뜻이 다르니 건드리지 않는다. ⚠️ `render`는 **셸 HTML만** 생성(데이터 fetch 없음) — 패널 내용 검증은 `_build_panels_payload()` 직접 호출이나 `/api/panels` curl로 해야 한다. **KPI 행 순서**(2026-07-29, 관리자님 지정): 합산 owner 카드(`_render_owner_kpi`)는 **구분선·그룹 없는 단일 목록** — `총자산 · **투자원금** · 매입금액 · 평가금액 · 평가손익 · 예수금 · [당일 입출금] · 보유종목/당일매매 · 당일 평가손익` + 조건부 `당일 실현손익`(non-compact) + 맨 아래 `총수익`. `당일 입출금`은 예수금 바로 아래(현금 잔액↔그날 현금 이동)이고 입출금 없는 날은 행 자체가 없다. 투자원금은 총자산 바로 아래(전체 자산↔넣은 돈 대비), 총수익은 맨 아래 결론. 원금 미집계(부트스트랩 전)면 **두 행 모두** 사라진다. 보유종목·당일매매는 **한 행 결합**(`3개 / 2개`) — compact에도 당일매매가 함께 보인다. 평문 리포트에서 `보유종목/당일매매`는 표시폭이 정확히 17칸이라 패딩 없이 콜론이 맞는다. 같은 순서·라벨을 `_render_account_kpi`와 `stock_portfolio_report`(HTML 소유자별·전체합계, 평문)에도 적용. ⚠️ 2026-07-29 중 4그룹(자산/보유/누적/당일) 구분선 방식을 거쳤다가 단일 목록으로 되돌림 — `.kpi-gtop` CSS는 제거됨. `_rtk` 실시간 매핑(value/profit/net/daypl/totret)은 라벨 기준이라 그룹화와 무관하게 동작. 계좌별 pane(`_render_account_kpi`)은 평면 유지(관리자님 선택). ⚠️ 그룹화로 stock_portfolio_report 메일의 평면 순서와는 배치가 갈렸다(라벨은 동일). **투자원금·총수익 KPI**(2026-07-29): `누적 성과` 그룹 2행 — `투자원금`(값은 금액만, **라벨 옆 작은 원형 `[!]` 버튼**) / `총수익`. 버튼을 값(td)이 아니라 라벨(th)에 두는 이유 — 금액 뒤에 붙이면 숫자 우측정렬이 흐트러진다. `kpis` 튜플의 **3번째 원소**가 라벨 뒤 HTML(escape 대상 아님)로 렌더된다. **KPI 상세 팝업은 공용 1개**(`kpi-modal` + `openKpiModal(src,title)`): 라벨 옆 `.kpi-more-btn`이 `data-kpi-src`(엔드포인트)·`data-kpi-title`을 들고 있고, 위임 핸들러가 그걸 읽어 fetch → 본문 innerHTML. 버튼 생성은 `_kpi_more_button(src, title)`. 본문은 **서버가 HTML로 조립**하므로 새 [!] 버튼을 늘릴 때 JS·모달 추가가 필요 없다 — 렌더 함수 + 엔드포인트 분기만 더하면 된다. 현재 2개: `/api/principal?owner=`(`_render_principal_body` — 투자원금·누적 입금/출금·계좌별 + 입출금 내역 233행) / `/api/cashflow?owner=`(`_render_cashflow_body` — 당일 입금/출금 합계 + 건별 내역, kt00015 계좌당 1콜 재조회). 두 팝업 모두 `.pm-*` CSS 공유. ⚠️ 순액과 합계가 같아지는 중복 표시 금지 — 당일 입출금은 **한쪽 방향뿐이면 `순 입출금` 행을 생략**한다(`+3,000,000원 · 입금 3,000,000원` 같은 군더더기가 KPI 행·메일·텔레그램 4곳에 있었음, 2026-07-29 제거). 모달 셸은 shell HTML 직속이라 panels swap 영향 없음. 내역은 `ip.get_flows` 캐시 읽기라 **키움 콜 0**. 내역 233행 중 대부분이 배당·이자라 실제 입금이 묻히므로 **기본은 원금 반영분만 보이고**(본인 49/140·가희 15/93) 체크박스로 나머지를 펼친다 — `.pm-all-cb:not(:checked) ~ .pm-list .pm-row.other{display:none}` **CSS-only, JS 없음**. 개념 설명문은 넣지 않는다(관리자님 지시). ⚠️ 계좌 간 대체(내 일반↔ISA)가 있으면 owner 합계는 상쇄되지만 **계좌별 금액은 왜곡**되므로 안내문(`.pm-note-in`)을 띄운다(실측 본인 6,000,000·가희 1,000,000 각각 상쇄). `순자산 − 원금` 관계가 눈으로 읽히게 붙여 놓고, 위쪽 `총 평가손익`(보유분 미실현)과 혼동되지 않게 라벨에 "원금 대비"를 명시. 데이터는 `investment_principal.get_principal(lbls)`(캐시 읽기, 콜 0) → `_build_owner_data`가 `principal`·`principal_cash_in/out`·`principal_qty_flow`로 주입, None이면 2행 생략. 순자산이 WS 틱마다 움직이므로 총수익도 같이 갱신 — 카드 `data-rt-principal` + td `data-rt-kpi="totret"`를 `setOwnerKpis`가 읽어 `T.net − principal` 재계산(`updateScopes`/`T` 구조 무변경). 계좌별 pane(`_render_account_kpi`)은 미적용. 보유종목 행마다 `📋 거래내역` + `💰 거래` + `📝 메모` 버튼. 자산정보 탭 sub-tab 3개 (자산보기·차트보기·시장정보) + 우측 별도 `[💰 거래]` 버튼 (본인 첫 보유종목 자동 선택). 관심·감시종목 행에도 `💰 거래` (보유 모드면 매도 default). **거래 모달 시스템 (`order-modal` + `pin-modal` + `open-orders-modal`)** — 매매 진입점. 흐름: 종목 select(상단, 보유/관심/감시 통합) → 매수·매도 토글 → 호가창(ka10004 10단계, 1초 polling, visibility 가드) + 입력(계좌·주문유형 LIMIT/MARKET·단가·금액(매수만 양방향)·수량) → 매수/매도 버튼 → propose → PIN 모달(modal-top z-index) 카드 요약 + PIN 입력(`autocomplete="one-time-code"`) + 만료 카운트다운 → verify → 결과 토스트 + 자동 닫기. `[📋 진행중]` 탭은 활성 PIN 카드 → PIN 모달, 미체결만 → open-orders 모달(4계좌 통합 + 행별 취소). 매수 시 금액↔수량 양방향 자동(programmatic .value, 무한루프 X). 매도 토글 시 수량 자동 100%(max_qty). 시장 phase 라벨 + NXT 시간대+`nxt_enable=false` 시 `📵 NXT 거래불가` + 매수/매도 버튼 disable. 우상단 X 없음 — 하단 [닫기]/[취소] + overlay 클릭. **2계좌 동시 매도**(2026-06-12): 매도 버튼 시 **전량매도(입력 수량=max_qty)** 이고 같은 소유자 그룹(본인 일반↔ISA / 가희끼리)의 다른 계좌에도 같은 종목 보유(`accStatus.trde_able_qty>0`)면 `sell-choice-modal` 팝업 — [두 계좌 모두 매도](두 계좌 모두 매도가능 전량, 단가 동일) / [선택 계좌만] / [취소]. 일부매도는 팝업 없이 단일 진행. 매도 정보영역은 그룹 내 다른 계좌도 보유 시 `보유: 141주 / 전체 280주` 병기. 모두 매도는 `POST /api/order/propose_multi` → `handler.propose_trade_multi`(레그별 독립 검증, SELL+LIMIT/MARKET 한정, 같은 그룹만) → **카드 1장+PIN 1개**(iMessage `매도(2계좌)`)가 두 레그 승인 → verify 시 `_submit_multi_legs`가 레그 독립 제출(idem_hash 계좌별 분리)·독립 fill_watcher, 한 레그 실패해도 나머지 시도(ok=하나라도 접수). @@ -124,7 +126,7 @@ Stock agent (`agents/stock/workspace/scripts/`), run with `python3`: - **수급 백필** (`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 돌파만·기본, 2026-06-11 '돌파'→'안정' 개명 — 적극과 혼동)/적극(2 눌림허용) 색 칩(`_BEAR_WORD`/`_bear_chip_html`, 클릭 시 설명 토스트. 아이콘→단어는 관리자님 요청). **전략 이름 = 4카테고리 두글자**(2026-06-15 `_cat_name`/`_cat_labels` — 추세〔민감10/표준20/둔감40/장기60〕·진입〔적극 vol≤1.5/신중〕·매도〔한방 RR≥2.5/균형/단타 RR≤1.5〕·베팅〔집중 risk≥2%/분산〕. 예 '표준·적극·균형·분산'). 비교 행·드롭다운·상세 헤더에 적용. 펼침/상세에 **`_cat_detail_html`** 4요소 풀이(라벨+실제값+쉬운설명). 긴 문장형 `_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 패널 상단 [← 비교로]로 복귀. 그 옆 **[📋 거래목록]**(`sub-day`/`_day_trades_panel(sel_date)` — 전 전략 거래를 **달력형 날짜 선택**(`_DAY_CAL_JS` — 거래일만 밝게·클릭가능, 비거래일 어둡게, 월 이동 JS 클라이언트〔범위 밖 ‹›disabled〕, 오늘 강조. 컴팩트 max-width 300px. 날짜 클릭 시 **달력 안 닫고 fetch로 #day-rows·#day-sub·라벨만 갱신**〔history.replaceState로 `?d=` 보존〕, 별도 [닫기] 버튼. 접이식 details, **기본=오늘(거래 없어도 자동선택·클릭가능, `today-open` 점선 셀)**, 2026-06-15. 빈 날도 #day-rows 컨테이너 유지해 fetch 전환 정상)으로 **(종목,방향)별 아이템**(같은 종목 매수·매도 동시면 2아이템 분리, 요약=종목명+🟢매수/🔴매도 배지+전략수)으로 집계: 전략수·전략번호칩(상세링크)·가격대·평균손익·사유. 날짜는 simURL이 `&d=`로 보존). `?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를 재사용해 탭 복원이 안 먹던 문제). **깜빡임 제거**(2026-06-12): 활성 탭/서브탭을 `render_html(tab,sub)`이 라디오 `checked`로 서버에서 미리 박음(GET이 `?t/?s` 파싱+레거시 보정) — 이전엔 기본탭 렌더→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) +- 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/fomc_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 @@ -149,6 +151,7 @@ OpenClaw 자동화는 두 갈래로 동작한다 (모두 Asia/Seoul): - **stock.briefing-fallback-2100** — 평일 21:00 — **무조건 fresh fetch로 스냅샷 갱신** (`briefing_fallback.py force` → 스냅샷 있으면 `stock_portfolio_report.py run` 메일·텔레그램 X, 없으면 `send` 폴백 + 실패 시 알림). 20:10 데이터 부정확 케이스 보완용 - **stock.watchlist-monitor** — 평일 10:00 / 12:00 / 14:00 — 워치리스트 buy/target/stop 알림 (2026-05-12: 15분 간격 → 3회로 축소) - **stock.ipo-calendar-sync** — 매주 금요일 17:00 — IPO 청약·상장 일정 캘린더 등록 +- **stock.fomc-calendar-sync** — 매월 1일 09:10 — `fomc_calendar_sync.py`: 연준 FOMC 회의 일정 캘린더 등록·갱신. 연준이 1년 이상 앞서 공표하고 변경이 거의 없어 월 1회로 충분(폴백 트리거 없음). LLM 미경유. 로그 `logs/fomc-calendar-sync.{log,err.log}` - **stock.holiday-sync** — 매주 일요일 03:00 — investing.com KRX 휴장일 → `state/market_holidays.json` (behive_web 자동갱신 토글이 참조) - **stock.send-balance** — 매월 1일 04:30 — 본인 잔액 → 골디 inbox (`securities_balance`) - **stock.trade-journal** — 평일 21:00 — EOD 데이터 누적 묶음. ProgramArguments는 `/bin/sh -c` wrapper로 세 명령 sequential 실행: ①`trade_journal.py collect` (ka10170 4계좌 → `state/trade_journal.jsonl`) ②`market_indicators_sync.py collect` (네이버 m.stock KOSPI/KOSDAQ ADR·투자자별 매매 → `state/market_indicators_history.jsonl`) ③`cd workspace && python3 -m sim.backfill_flow --pages 1 --force` (수급 DB `flow_history.sqlite` 일일 증분 — 2026-06-10 추가, 1회성 백필 후 stale해져 백테스트 수급게이트가 중립으로 비활성되던 문제 해소. INSERT OR REPLACE idempotent, 행수기준 skip이라 `--force` 필수) ④`python3 -m sim universe all` (2026-06-15 추가 — sim 관찰목록 자동편입+자동제외. 키움 순위정보 ka90009 외인·기관 순매수 + ka10023 거래량급증 상위에서 ETF·하락·급증률 이상치 제외하고 각 15개·총 120 상한 편입(origin='auto'), origin=auto·미보유·10거래일 무신호는 자동 제외. 보유·watch·interest·manual은 불가침. 신호추적은 scan_all이 `universe.mark_signals`로 `state/sim/auto_seen.json`에 기록). 하나 실패해도 나머지 시도. 로그는 `logs/stock-trade-journal.{log,err.log}` 한 곳에 합쳐짐. diff --git a/TASKS.md b/TASKS.md index cabb0e7..f99ae36 100644 --- a/TASKS.md +++ b/TASKS.md @@ -19,6 +19,7 @@ | **골디 inbox 처리** (단독) | `python3 ~/.openclaw/agents/budget/workspace/skills/monthly-settlement/scripts/inbox_handler.py [--dry-run]` | 트리거 없음 — 월간결산 cron 진입부에서 자동 호출. 수동 점검·재처리용 | | **워치리스트 모니터링** | `python3 ~/.openclaw/agents/stock/workspace/scripts/watchlist_monitor.py check` | launchd `ai.openclaw.stock.watchlist-monitor` (평일 09–15시 매 15분) | | **공모주 캘린더 동기화** | `python3 ~/.openclaw/agents/stock/workspace/scripts/ipo_calendar_sync.py` | launchd `ai.openclaw.stock.ipo-calendar-sync` (매월 1일 09:00) | +| **FOMC 캘린더 동기화** | `python3 ~/.openclaw/agents/stock/workspace/scripts/fomc_calendar_sync.py [--list\|--dry-run]` | launchd `ai.openclaw.stock.fomc-calendar-sync` (매월 1일 09:10). 연준 공식 일정표 → `[FOMC] YYYY-MM 회의` 종일 일정(회의 시작일 ET ~ 발표일 KST). `--list`는 파싱 결과만(캘린더 미접근) | | **휴장일 동기화** | `python3 ~/.openclaw/agents/stock/workspace/scripts/holiday_sync.py [--show]` | launchd `ai.openclaw.stock.holiday-sync` (매주 일요일 03:00) | | **Gmail 라벨 분류** | `python3 ~/.openclaw/workspace/scripts/gmail_label_classify.py [--dry-run]` | launchd `ai.openclaw.gmail-label-classify` (매일 01:00). self-sent 브리핑·종목분석·주식 리포트 메일 라벨링 + 24h 테스트메일 휴지통. LLM 미경유(`gog` CLI). 2026-06-26 cron→launchd 이관 | | **매매 기록 적재** | `python3 ~/.openclaw/agents/stock/workspace/scripts/trade_journal.py {collect\|seed\|show\|query} ...` | launchd `ai.openclaw.stock.trade-journal` (평일 21:00 — NXT 야간 마감 후 ka10170 4계좌 적재). `seed`는 적재 시작일 이전 보유분을 현재 평단가로 1회 시드 (idempotent) | diff --git a/agents/stock/workspace/MEMORY.md b/agents/stock/workspace/MEMORY.md index a2f6183..8244045 100644 --- a/agents/stock/workspace/MEMORY.md +++ b/agents/stock/workspace/MEMORY.md @@ -47,6 +47,7 @@ | `briefing-fallback-2100` | 평일 21:00 (휴장일 self-skip) | `briefing_fallback.py final` | 마지막 폴백. 실패 시 레이 텔레그램 알림 | | `send-balance` | 매월 1일 04:30 | `send_balance_to_budget.py` | 본인 계좌(가희 제외) → 골디 inbox `securities_balance`. 골디 결산 30분 전 | | `ipo-calendar-sync` | 매주 금요일 17:00 | `ipo_calendar_sync.py` | IPO 청약·상장 일정 → Google Calendar | +| `fomc-calendar-sync` | 매월 1일 09:10 | `fomc_calendar_sync.py` | 연준 FOMC 회의 일정 → Google Calendar `[FOMC] YYYY-MM 회의`(+` (SEP)`). 2026-07-29 신설. **캘린더엔 2026-03-23 관리자님이 2027-12까지 11건을 이미 손으로 등록해 두셨고 날짜도 정확** — 스크립트는 그 표기를 승계해 흡수했으므로 당분간 실제 신규 등록은 2028년분부터. **이벤트 기간 = 회의 시작일(ET) ~ 발표일(KST)** 3일 — 성명 발표가 KST로는 회의 종료 다음날 새벽(EDT 03:00·EST 04:00)이라, ET 날짜만 넣으면 한국 장이 결과를 반영하는 날에 캘린더가 비어 브리핑 '오늘 일정'에 안 뜬다(2026-07-29 관리자님 지적으로 수정). colorId 9 보존(`--event-color` 미지정). 삭제 루프가 `old_start <= today`를 건너뛰어 지난 회의는 안 지움. `--list`=파싱만(gog 미호출) | | `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`. **2026-06-15 4번째 명령 추가**: `python3 -m sim universe all` — sim 관찰목록 자동편입/제외. 키움 순위정보(ka90009 외인·기관순매수 + ka10023 거래량급증)에서 ETF·하락·급증률 이상치 거르고 각 15·총 120 상한 편입(origin='auto'), origin=auto·미보유·10거래일 무신호만 자동제외(보유/watch/interest/manual 불가침). 신호추적=scan_all `universe.mark_signals`→`auto_seen.json` | diff --git a/agents/stock/workspace/scripts/behive_web.py b/agents/stock/workspace/scripts/behive_web.py index ec0945b..338015a 100644 --- a/agents/stock/workspace/scripts/behive_web.py +++ b/agents/stock/workspace/scripts/behive_web.py @@ -71,7 +71,7 @@ NET_WORTH_ALLOWED_UNITS_BY_DAYS: dict[int, tuple[str, ...]] = { } # 차트 표시 모드 — 'pnl'=시작점 baseline=0 누적손익(기본), 'net'=순자산 시계열. # 'pnl'=시작점 baseline=0 누적손익(전부 누적), 'period'=각 점이 그 기간(일/주/월/연) 자체 손익, 'net'=순자산 시계열. -NET_WORTH_MODE_PRESETS = [('순자산', 'net'), ('손익누적', 'pnl'), ('기간손익', 'period')] +NET_WORTH_MODE_PRESETS = [('총자산', 'net'), ('손익누적', 'pnl'), ('기간손익', 'period')] NET_WORTH_CHART_MODE = 'pnl' KST = ZoneInfo('Asia/Seoul') BIND_HOST = '' # 모든 인터페이스 (Tailscale + LAN). 외부망 직접 차단은 공유기 NAT가 담당. @@ -1234,6 +1234,16 @@ def _build_owner_data(positions_by_acc: dict, balances: dict, journal_by_label: day_pl_total = None day_pl_reason = 'closed' + # 투자원금(누적 입금−출금) — 캐시 파일 읽기만 (키움 콜 0). + # principal None = 미집계(부트스트랩 전) → KPI 2행 미표시. + try: + import investment_principal as ip + pr = ip.get_principal(lbls) + except Exception as e: + sys.stderr.write(f'principal load failed: {e}\n') + pr = {'principal': None, 'cash_in': None, 'cash_out': None, + 'qty_flow': False, 'by_label': {}} + owner_data[owner] = { 'labels': lbls, 'consolidated': consolidated, @@ -1254,6 +1264,11 @@ def _build_owner_data(positions_by_acc: dict, balances: dict, journal_by_label: 'cash_out': cash_out, 'net_cash_flow': net_cash_flow, 'cash_flows': owner_cash_flows, + 'principal': pr['principal'], + 'principal_cash_in': pr['cash_in'], + 'principal_cash_out': pr['cash_out'], + 'principal_qty_flow': pr['qty_flow'], + 'principal_by_label': pr['by_label'], } # 당일정산(phantom) 종목에 현재가 주입 — 매도 시점과 시장 종가 비교용. @@ -1457,6 +1472,15 @@ def _fetch_all_data(entries: list[dict], only_owner: str | None = None) -> dict: sys.stderr.write(f'cash flow fetch failed: {e}\n') cash_flow_by_label = {} + # 투자원금 — 방금 받은 당일 입출금이 캐시에 미반영일 때만 올해 창 재조회(kt00016 라벨당 1콜). + # 입출금 없는 평시엔 캐시 읽기만 하고 호출 0. 부트스트랩 전이면 needs_refresh가 False. + try: + import investment_principal as ip + if ip.needs_refresh(labels, cash_flow_by_label): + ip.refresh_current(labels, cash_flow_by_label) + except Exception as e: + sys.stderr.write(f'principal refresh failed: {e}\n') + # 미체결 → owner별 + 전역 코드 keyed pending map # pending_by_owner[owner][code] = {'buy_qty': N, 'sell_qty': M, 'orders': [...]} # pending_global[code] = {'buy_qty': N, 'sell_qty': M, 'orders': [...]} @@ -2990,8 +3014,186 @@ def _profit_class(value: int) -> str: return 'neutral' +# 이 라벨 행 아래에 구분선을 넣는다 (KPI 카드 공용). 라벨 기준이라 순서를 바꿔도 따라간다. +# 총수익 = 전체 요약 묶음(총자산·투자원금·총수익)의 끝. +_KPI_SEP_AFTER = {'총수익'} + + +def _urlq(s: str) -> str: + """쿼리스트링용 URL 인코딩 (owner 이름이 한글이라 필요).""" + from urllib.parse import quote + return quote(s, safe='') + + +def _kpi_more_button(src: str, title: str) -> str: + """KPI 라벨 옆 [!] 버튼 — kpi-modal 을 열고 src를 fetch해 본문을 innerHTML. + + 값이 아니라 라벨(th) 쪽에 붙는다 — 금액 뒤에 두면 숫자 우측정렬이 흐트러진다. + src는 `{'html': '...'}` 를 주는 엔드포인트 (본문 조립은 서버 몫, JS는 삽입만). + """ + s = html.escape(src, quote=True) + t = html.escape(title, quote=True) + return (f'') + + +def _acct_short(label: str) -> str: + """모달 안에서는 owner가 이미 정해져 있으니 '가희_' 접두를 떼고 상품만 보인다.""" + return label[3:] if label.startswith('가희_') else label + + +def _render_principal_body(owner: str) -> str: + """투자원금 팝업 본문 — 요약 + 입출금 내역. 캐시만 읽어 키움 콜 0. + + 내역은 kt00015 tp='1' 전체인데 대부분이 배당·이자라 실제 입금이 묻힌다 + → 기본은 원금 반영분만 보이고, 체크박스로 나머지까지 펼친다(CSS-only, JS 없음). + """ + import investment_principal as ip + from stock_portfolio_report import derive_owner + import kiwoom_client as kc + + labels = [a['label'] for a in kc.list_accounts() if derive_owner(a['label']) == owner] + pr = ip.get_principal(labels) + if pr['principal'] is None: + return '
투자원금이 아직 집계되지 않았어요.
' + fl = ip.get_flows(labels) + + def srow(label: str, value: str, cls: str = '') -> str: + return (f'
{html.escape(label)}' + f'{value}
') + + head = [ + srow('투자원금', f'{pr["principal"]:,}원', ' strong'), + srow('누적 입금', f'{pr["cash_in"]:,}원'), + srow('누적 출금', f'{pr["cash_out"]:,}원'), + ] + if len(pr['by_label']) > 1: + head.append('
계좌별
') + head += [srow(_acct_short(lb), f'{v:,}원') for lb, v in pr['by_label'].items()] + # 계좌 간 대체(내 일반↔ISA)는 owner 합계에선 상쇄되지만 계좌별 수치는 밀어놓는다. + # 합계는 정확하니 계좌별만 오해하지 않게 알린다. + if any('대체' in (r['rmrk'] or '') for r in fl['rows']): + head.append('
계좌 간 이동(대체)이 있어 계좌별 금액은 ' + '실제 외부 입금과 다를 수 있어요. 합계는 정확합니다.
') + if pr['qty_flow']: + head.append('
⚠️ 주식 입출고(타사대체) 있음 — ' + '현금 기준 원금이 실제보다 작을 수 있어요.
') + if not fl['reconciled']: + head.append('
⚠️ 분류되지 않은 새 적요가 있어요 — ' + '내역 합계와 원금이 어긋날 수 있습니다.
') + + if not fl['available']: + return (f'
{"".join(head)}
' + f'
입출금 내역은 아직 수집되지 않았어요.
') + + n_pr = sum(1 for r in fl['rows'] if r['principal']) + n_ot = len(fl['rows']) - n_pr + items = [] + for r in fl['rows']: + sign = '+' if r['io'] == 'IN' else '−' + acls = 'in' if r['io'] == 'IN' else 'out' + dt = r['date'] + dsp = f'{dt[:4]}.{dt[4:6]}.{dt[6:8]}' if len(dt) == 8 else dt + items.append( + f'
' + f'{html.escape(dsp)}' + f'{html.escape(r["rmrk"] or "-")}' + f'{html.escape(_acct_short(r["label"]))}' + f'{sign}{r["amount"]:,}' + f'
' + ) + other_note = '' + if fl['other_in'] or fl['other_out']: + parts = [] + if fl['other_in']: + parts.append(f'입금 {fl["other_in"]:,}원') + if fl['other_out']: + parts.append(f'출금 {fl["other_out"]:,}원') + other_note = (f'
배당·이자 등 {n_ot}건 ({" · ".join(parts)})은 ' + f'투자 성과라서 원금에 넣지 않아요.
') + return ( + f'
{"".join(head)}
' + f'{other_note}' + f'
입출금 내역 · 원금 {n_pr}건
' + f'' + f'' + f'
{"".join(items)}
' + ) + + +def _render_cashflow_body(owner: str) -> str: + """당일 입출금 팝업 본문 — 입금/출금 합계 + 건별 내역 (kt00015 tp='1' 당일). + + 렌더 경로가 이미 부르는 조회지만 팝업은 드물게 열리므로 그때 다시 부른다(계좌당 1콜). + """ + from stock_portfolio_report import derive_owner + import kiwoom_client as kc + + labels = [a['label'] for a in kc.list_accounts() if derive_owner(a['label']) == owner] + by_label = kc.get_cash_flow_all(None, labels) + rows = [{**f, 'label': lb} for lb, fl in by_label.items() for f in (fl or [])] + if not rows: + return '
오늘 입출금이 없어요.
' + rows.sort(key=lambda r: (r.get('time') or '', r['label'])) + + cash_in = sum(r['amount'] for r in rows if r['io_tp'] == 'IN') + cash_out = sum(r['amount'] for r in rows if r['io_tp'] == 'OUT') + + def srow(label: str, value: str, cls: str = '') -> str: + return f'
{html.escape(label)}{value}
' + + head = [] + if cash_in: + head.append(srow('입금', f'{cash_in:,}원')) + if cash_out: + head.append(srow('출금', f'{cash_out:,}원')) + # 순액은 양방향 다 있을 때만 — 한쪽뿐이면 위 합계와 같은 값이다. + if cash_in and cash_out: + net = cash_in - cash_out + head.append(srow('순 입출금', f'{net:+,}원', ' strong')) + + items = [] + for r in rows: + sign = '+' if r['io_tp'] == 'IN' else '−' + acls = 'in' if r['io_tp'] == 'IN' else 'out' + tm = (r.get('time') or '')[:5] + items.append( + f'
' + f'{html.escape(tm)}' + f'{html.escape(r.get("rmrk") or "-")}' + f'{html.escape(_acct_short(r["label"]))}' + f'{sign}{r["amount"]:,}' + f'
' + ) + return ( + f'
{"".join(head)}
' + f'
내역 · {len(rows)}건
' + f'
{"".join(items)}
' + ) + + +def _render_kpi_modal() -> str: + """KPI 상세 공용 팝업 (투자원금·당일 입출금 등). shell HTML 직속이라 panels swap 영향 없음. + 라벨 옆 [!] 클릭 → 버튼의 data-kpi-src fetch → 본문 innerHTML.""" + return ( + '' + ) + + def _render_owner_kpi(owner: str, d: dict, owner_label_text: str, compact: bool = False) -> str: - """owner 블록 상단 KPI 카드 (총 평가/손익/예수금/순자산 + 계좌별 예수금). + """owner 블록 상단 KPI 카드 (총자산/평가금액/예수금 + 매입·손익 + 원금·총수익 + 당일). compact=True: 자산정보 탭용 — 당일 매매·당일 실현손익 행 생략. """ @@ -3029,45 +3231,71 @@ def _render_owner_kpi(owner: str, d: dict, owner_label_text: str, compact: bool deposit_locked_html = ( f' · 매수 묶임 {locked:,}원' if locked > 0 else '' ) + # 구분 없는 단일 목록 (관리자님 지정 순서). + # 라벨 규칙: '총'은 계좌 전체(현금 포함) 기준일 때만 쓴다. + # 총자산 = 평가금액 + 예수금 / 총수익 = 총자산 − 투자원금 + # 평가금액·매입금액·평가손익은 보유종목 한정이라 '총'을 붙이지 않는다. + # 맨 위는 계좌 전체 요약 3행 — 총자산(가진 돈) / 투자원금(넣은 돈) / 총수익(그 차이). + # 아래 구분선은 이 묶음 끝(총수익)에 붙는다. 원금 미집계면 뒤 두 행과 선이 함께 사라진다. + principal = d.get('principal') kpis = [ - ('총 평가금액', f'{d["total_value"]:,}원'), - ('총 매입금액', f'{d["total_cost"]:,}원'), - ('총 평가손익', f'{sign}{profit:,}원 ({sign}{profit_rate:.2f}%)'), - ('당일 평가손익', day_pl_html), - ('예수금', f'{deposit_pct_html}{d["deposit"]:,}원{deposit_locked_html}'), - ('순자산', f'{d["total_net"]:,}원'), + ('총자산', f'{d["total_net"]:,}원'), ] + if principal: + total_ret = d['total_net'] - principal + tcls = _profit_class(total_ret) + tsign = '+' if total_ret >= 0 else '' + tpct = total_ret / principal * 100 + # 값은 금액만, 상세는 라벨 옆 [!] 버튼 → 팝업. (3번째 원소 = 라벨 뒤 HTML) + kpis.append(('투자원금', f'{principal:,}원', + _kpi_more_button(f'/api/principal?owner={_urlq(owner)}', '투자원금'))) + kpis.append(('총수익', + f'{tsign}{total_ret:,}원 ({tsign}{tpct:.2f}%)')) + # 당일 입출금은 예수금 바로 아래 (현금 잔액 ↔ 그날 현금 이동). 없으면 행 자체가 없다. cash_in = d.get('cash_in', 0) cash_out = d.get('cash_out', 0) + cashflow_row = None if cash_in or cash_out: net = cash_in - cash_out ncls = _profit_class(net) nsign = '+' if net >= 0 else '' - cf_detail = [] - if cash_in: - cf_detail.append(f'입금 {cash_in:,}원') - if cash_out: - cf_detail.append(f'출금 {cash_out:,}원') - cf_detail_html = f' · {" · ".join(cf_detail)}' - kpis.append(('당일 입출금', f'{nsign}{net:,}원{cf_detail_html}')) - if compact: - kpis.append(('보유 종목', f'{held_count}개')) - else: - traded_count = len(d["traded_today"]) - kpis.append(('보유종목/당일매매', f'{held_count}개 / {traded_count}개')) + # 값은 순액만 — 입금/출금 쪼갠 내역과 건별 목록은 라벨 옆 [!] 팝업으로. + cashflow_row = ('당일 입출금', + f'{nsign}{net:,}원', + _kpi_more_button(f'/api/cashflow?owner={_urlq(owner)}', '당일 입출금')) + + kpis += [ + ('매입금액', f'{d["total_cost"]:,}원'), + ('평가금액', f'{d["total_value"]:,}원'), + ('평가손익', f'{sign}{profit:,}원 ({sign}{profit_rate:.2f}%)'), + ('당일 평가손익', day_pl_html), + ('예수금', f'{deposit_pct_html}{d["deposit"]:,}원{deposit_locked_html}'), + ] + if cashflow_row: + kpis.append(cashflow_row) + kpis.append(('보유종목/당일매매', f'{held_count}개 / {len(d["traded_today"])}개')) + if not compact: realized_pl = d.get('realized_pl_total', 0) realized_fees = d.get('realized_fees_total', 0) if d.get('traded_today') and (realized_pl or realized_fees): rcls = _profit_class(realized_pl) rsign = '+' if realized_pl >= 0 else '' fee_html = f' · 수수료·세금 {realized_fees:,}원' if realized_fees else '' - realized_html = f'{rsign}{realized_pl:,}원{fee_html}' - kpis.append(('당일 실현손익', realized_html)) - _rtk = {'총 평가금액': 'value', '총 평가손익': 'profit', '순자산': 'net', '당일 평가손익': 'daypl'} + kpis.append(('당일 실현손익', + f'{rsign}{realized_pl:,}원{fee_html}')) + + _rtk ={'평가금액': 'value', '평가손익': 'profit', '총자산': 'net', '당일 평가손익': 'daypl', + '총수익': 'totret'} _row_list = [] - for k, v in kpis: + for i, item in enumerate(kpis): + k, v = item[0], item[1] + lbl_suffix = item[2] if len(item) > 2 else '' # 라벨 뒤 버튼 등 (escape 대상 아님) attr = f' data-rt-kpi="{_rtk[k]}"' if k in _rtk else '' - _row_list.append(f'{html.escape(k)}{v}') + # 라벨 기준이라 조건부 행이 빠져도 선이 엉뚱한 데 붙지 않는다. 마지막 행엔 안 붙임. + cls = ' class="kpi-sep"' if (k in _KPI_SEP_AFTER and i < len(kpis) - 1) else '' + _row_list.append( + f'{html.escape(k)}{lbl_suffix}{v}' + ) rows = ''.join(_row_list) trade_btn_html = '' if not compact: @@ -3078,12 +3306,12 @@ def _render_owner_kpi(owner: str, d: dict, owner_label_text: str, compact: bool f'data-trade-owner="{owner_attr}" data-trade-stock="{label_attr}">' f'📋 전체 거래내역' ) - return f'''
+ # data-rt-principal — setOwnerKpis가 순자산 틱마다 총수익을 재계산하는 데 쓴다(0=미집계). + return f'''
-
{html.escape(owner_label_text)}
+
{html.escape(owner_label_text)}· {html.escape(labels_disp)}
{trade_btn_html}
-
{html.escape(labels_disp)}
{rows}
''' @@ -3139,14 +3367,15 @@ def _render_account_kpi(owner: str, label: str, owner_d: dict, balances: dict, j f' · 매수 묶임 {locked:,}원' if locked > 0 else '' ) + # 라벨·순서는 _render_owner_kpi와 통일 ('총'=현금 포함 전체). kpis = [ - ('총 평가금액', f'{total_value:,}원'), - ('총 매입금액', f'{total_cost:,}원'), - ('총 평가손익', f'{sign}{total_profit:,}원 ({sign}{total_profit_rate:.2f}%)'), + ('총자산', f'{total_net:,}원'), + ('매입금액', f'{total_cost:,}원'), + ('평가금액', f'{total_value:,}원'), + ('평가손익', f'{sign}{total_profit:,}원 ({sign}{total_profit_rate:.2f}%)'), ('당일 평가손익', day_pl_html), ('예수금', f'{deposit_pct_html}{deposit:,}원{deposit_locked_html}'), - ('순자산', f'{total_net:,}원'), - ('보유 종목', f'{held_count}개'), + ('보유종목/당일매매', f'{held_count}개 / {len(traded_today_codes)}개'), ] if traded_today_codes and (realized_pl or realized_fees): rcls = _profit_class(realized_pl) @@ -3154,15 +3383,16 @@ def _render_account_kpi(owner: str, label: str, owner_d: dict, balances: dict, j fee_html = f' · 수수료·세금 {realized_fees:,}원' if realized_fees else '' kpis.append(('당일 실현손익', f'{rsign}{realized_pl:,}원{fee_html}')) - rows_html = ''.join( - f'{html.escape(k)}{v}' for k, v in kpis - ) + _rows = [] + for i, (k, v) in enumerate(kpis): + cls = ' class="kpi-sep"' if (k in _KPI_SEP_AFTER and i < len(kpis) - 1) else '' + _rows.append(f'{html.escape(k)}{v}') + rows_html = ''.join(_rows) sub_text = label_disp if label_disp is not None else label return f'''
-
{html.escape(owner_label_text)}
+
{html.escape(owner_label_text)}· {html.escape(sub_text)}
-
{html.escape(sub_text)}
{rows_html}
''' @@ -4361,7 +4591,7 @@ def _render_net_worth_chart(series: list[tuple[str, int]], current_net: int | No elif selected_unit == 'year': empty_msg = '연별 차트는 2년 이상의 데이터가 필요합니다.' else: - _empty_metric = '기간손익' if per_period else ('손익누적' if is_pnl else '순자산') + _empty_metric = '기간손익' if per_period else ('손익누적' if is_pnl else '총자산') empty_msg = f'최근 {_empty_metric} 추이 데이터가 부족합니다.' def _empty(msg: str) -> str: @@ -4552,7 +4782,7 @@ def _render_net_worth_chart(series: list[tuple[str, int]], current_net: int | No else: title_n = len(series) _unit_word = {'week': '주', 'month': '월', 'year': '연'}.get(selected_unit, '영업일') - _title_metric = '손익' if per_period else ('손익누적' if is_pnl else '순자산') + _title_metric = '손익' if per_period else ('손익누적' if is_pnl else '총자산') title = f'최근 {title_n}{_unit_word} {_title_metric}' + (' · 오늘 잠정' if has_live else '') # 영역 채우기는 종가 구간만 (실선 영역). 점선 구간은 area 미적용. @@ -4665,7 +4895,7 @@ def _render_net_worth_chart(series: list[tuple[str, int]], current_net: int | No svg_parts = [ f'', + f'aria-label="총자산 추이 {html.escape(range_label)}">', '' f'' f'' @@ -4750,7 +4980,7 @@ def _render_net_worth_chart(series: list[tuple[str, int]], current_net: int | No '
' f'
{html.escape(_day_label)}
' '
누적 손익
' - f'
순자산
' + f'
총자산
' # 입출금 행 — 클라이언트 JS가 cf_net 있을 때만 display 토글 (pnl 모드에선 영구 hidden). f'
입출금
' '' @@ -5624,7 +5854,7 @@ body.modal-open { position: fixed; left: 0; right: 0; width: 100%; overflow: hid border-top: 6px solid #1c2230; } .stock-name-tip.below::after { top: -6px; bottom: auto; border-top: 0; border-bottom: 6px solid #1c2230; } -.owner-title-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-bottom: 2px; } +.owner-title-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; } .btn-trades-all { background: #14171f; color: #c9ccd3; border: 1px solid rgba(201,204,211,0.28); border-radius: 8px; padding: 5px 10px; font-size: 11px; font-weight: 600; cursor: pointer; font-family: inherit; flex: 0 0 auto; } .btn-trades-all:hover { background: rgba(201,204,211,0.06); border-color: #6aa9ff; color: #6aa9ff; } .btn-trades-all:active { transform: translateY(1px); } @@ -5689,7 +5919,8 @@ section.tab-content { min-height: calc(100dvh - 110px); } border-radius: 10px; } .owner-title { font-size: 15px; font-weight: 600; color: #f0f0f0; letter-spacing: -0.01em; } -.owner-sub { font-size: 11px; color: #5a5f6c; margin-top: 2px; margin-bottom: 10px; } +/* 계좌 라벨 — owner-title 안 인라인(제목과 한 줄). 하단 여백은 owner-title-row가 갖는다. */ +.owner-sub { margin-left: 6px; font-size: 11px; font-weight: 400; letter-spacing: 0; color: #5a5f6c; white-space: nowrap; } .owner-card table.kpi { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; } .owner-card table.kpi th { text-align: left; font-weight: 400; color: #8b8f9a; @@ -5701,6 +5932,47 @@ section.tab-content { min-height: calc(100dvh - 110px); } .owner-card table.kpi td .up { color: #ff4d5e; font-weight: 600; } .owner-card table.kpi td .down { color: #4a8cf0; font-weight: 600; } .owner-card table.kpi td .neutral { color: #c9ccd3; } +/* KPI 행 구분선 — 표시한 행 아래에 선 (_KPI_SEP_AFTER: 투자원금·보유종목/당일매매) */ +.owner-card table.kpi tr.kpi-sep > th, +.owner-card table.kpi tr.kpi-sep > td { border-bottom: 1px solid #1f2330; padding-bottom: 9px; } +.owner-card table.kpi tr.kpi-sep + tr > th, +.owner-card table.kpi tr.kpi-sep + tr > td { padding-top: 9px; } + +/* KPI 라벨 옆 작은 [!] — kpi-modal 팝업 (투자원금·당일 입출금) */ +.owner-card table.kpi th .kpi-more-btn { display: inline-block; margin-left: 5px; width: 15px; height: 15px; padding: 0; border-radius: 50%; font-size: 10px; font-weight: 700; line-height: 13px; text-align: center; color: #5a5f6c; background: transparent; border: 1px solid rgba(120,124,135,0.35); cursor: pointer; font-family: inherit; vertical-align: middle; } +.owner-card table.kpi th .kpi-more-btn:hover { color: #d6b34a; border-color: rgba(214,179,74,0.55); } +.owner-card table.kpi th .kpi-more-btn:active { transform: translateY(1px); } + +/* ── 투자원금 팝업 ── */ +.principal-body { font-variant-numeric: tabular-nums; } +.pm-sum { padding: 10px 12px; background: #11141c; border: 1px solid #1f2330; border-radius: 8px; } +.pm-srow { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; line-height: 2; } +.pm-srow span { color: #8b8f9a; } +.pm-srow b { color: #d7dae1; font-weight: 500; } +.pm-srow.strong { font-size: 14px; padding-bottom: 4px; margin-bottom: 4px; border-bottom: 1px solid #1f2330; } +.pm-srow.strong span { color: #c9ccd3; } +.pm-srow.strong b { color: #f0f0f0; font-weight: 600; } +.pm-shead { margin-top: 6px; padding-top: 6px; border-top: 1px solid #1f2330; font-size: 10px; color: #6b7080; } +.pm-warn { margin-top: 8px; font-size: 11px; line-height: 1.5; color: #d6b34a; } +.pm-note { margin: 10px 2px 0; font-size: 11px; line-height: 1.55; color: #6b7080; } +.pm-note-in { margin: 6px 0 0; } /* 요약 박스 안쪽 주석 */ +.pm-empty { margin-top: 12px; } +.pm-listhead { margin: 14px 2px 8px; font-size: 12px; font-weight: 600; color: #c9ccd3; } +/* 배당·이자 등 포함 토글 — 체크박스 + 형제 선택자로 JS 없이 필터 */ +.pm-all-cb { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; } +.pm-all-lb { display: inline-block; margin: 0 2px 8px; padding: 3px 9px; border-radius: 5px; font-size: 11px; color: #5a5f6c; border: 1px dashed rgba(120,124,135,0.30); cursor: pointer; } +.pm-all-lb:hover { color: #d6b34a; border-color: rgba(214,179,74,0.45); } +.pm-all-cb:checked ~ .pm-all-lb { color: #d6b34a; border-color: rgba(214,179,74,0.45); border-style: solid; } +.pm-all-cb:not(:checked) ~ .pm-list .pm-row.other { display: none; } +.pm-list { display: flex; flex-direction: column; max-height: 46dvh; overflow-y: auto; } +.pm-row { display: grid; grid-template-columns: 74px 1fr auto auto; gap: 8px; align-items: baseline; padding: 6px 2px; border-bottom: 1px solid #14171f; font-size: 11px; } +.pm-row.other { opacity: 0.55; } +.pm-row .pm-d { color: #6b7080; } +.pm-row .pm-rk { color: #c9ccd3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.pm-row .pm-ac { color: #5a5f6c; font-size: 10px; } +.pm-row .pm-amt { font-weight: 600; white-space: nowrap; } +.pm-row .pm-amt.in { color: #ff4d5e; } +.pm-row .pm-amt.out { color: #4a8cf0; } .cash-list { list-style: none; margin: 4px 14px 12px; padding: 8px 12px; background: #0d1018; border: 1px solid #14171f; border-radius: 8px; font-size: 12px; color: #c9ccd3; font-variant-numeric: tabular-nums; } .cash-list li { padding: 2px 0; } @@ -9874,6 +10146,7 @@ def render_html() -> str: group_assign_modal_html = _render_group_assign_modal() group_manage_modal_html = _render_group_manage_modal() trade_modal_html = _render_trade_modal() + kpi_modal_html = _render_kpi_modal() info_modal_html = _render_info_modal() info_desc_modal_html = _render_info_desc_modal() advice_modal_html = _render_advice_modal() @@ -10324,6 +10597,24 @@ def render_html() -> str: 'loadInfoSymbols();' 'infoRenderBody();' '}' + # KPI 상세 공용 팝업 — 서버가 본문 HTML을 만들어 주므로 여기선 innerHTML만. + 'function openKpiModal(src,title){' + 'var m=document.getElementById("kpi-modal");if(!m||!src)return;' + 'var t=m.querySelector("[data-kpi-title]");' + 'if(t)t.textContent=title||"상세";' + 'var b=m.querySelector("[data-kpi-body]");' + 'if(b)b.innerHTML=\'
불러오는 중…
\';' + 'm.classList.remove("hidden");m.setAttribute("aria-hidden","false");' + 'lockScroll();' + 'fetch(src,{credentials:"same-origin"})' + '.then(function(r){return r.json();})' + '.then(function(j){' + 'if(!b)return;' + 'if(!j||j.error||!j.html){b.innerHTML=\'
불러오기 실패
\';return;}' + 'b.innerHTML=j.html;' + '})' + '.catch(function(){if(b)b.innerHTML=\'
네트워크 오류
\';});' + '}' 'function openTradeModal(code,name,owner){' 'var m=document.getElementById("trade-modal");if(!m)return;' 'var ownerMode=!code && !!owner;' @@ -10571,6 +10862,13 @@ def render_html() -> str: 'openInfoModal(infoBtn.getAttribute("data-info-code")||"",infoBtn.getAttribute("data-info-stock")||"");' 'return;' '}' + 'var prBtn=t.closest&&t.closest(".kpi-more-btn");' + 'if(prBtn){' + 'e.preventDefault();' + 'e.stopPropagation();' + 'openKpiModal(prBtn.getAttribute("data-kpi-src")||"",prBtn.getAttribute("data-kpi-title")||"");' + 'return;' + '}' 'var infoQ=t.closest&&t.closest(".info-q");' 'if(infoQ){' 'e.preventDefault();' @@ -12260,6 +12558,11 @@ window.openPinModal = openPinModal; var td=card.querySelector('[data-rt-kpi="daypl"]'); if(td) td.innerHTML=''+sgn(T.daypl)+'원'+(T.dpct!==null?' ('+(T.dpct>=0?'+':'')+T.dpct.toFixed(2)+'%)':'')+''; } + // 총수익 = 순자산 − 투자원금. 순자산이 틱마다 움직이니 같이 갱신해야 두 값이 어긋나지 않는다. + var pr=parseFloat(card.getAttribute('data-rt-principal')||'0'); + var tr=card.querySelector('[data-rt-kpi="totret"]'); + if(tr&&pr){var v=T.net-pr,p=v/pr*100; + tr.innerHTML=''+sgn(v)+'원 ('+(p>=0?'+':'')+p.toFixed(2)+'%)';} }); // 순자산 차트 오늘(장중) 포인트 — 값 라벨 + SVG 점·마지막 선분을 1초마다 함께 이동(라벨↔점 불일치 제거). document.querySelectorAll('.net-chart-last[data-rt-nw-owner="'+owner+'"][data-rt-nw-live="1"]').forEach(function(el){ @@ -12528,6 +12831,7 @@ window.openPinModal = openPinModal; {group_manage_modal_html} {candidate_modal_html} {trade_modal_html} + {kpi_modal_html} {info_modal_html} {info_desc_modal_html} {advice_modal_html} @@ -12801,6 +13105,22 @@ class Handler(BaseHTTPRequestHandler): pass self._send_json(200, {'connected': connected, 'sub_count': sub_count, 'quotes': quotes, 'vi': vi, 'fill_seq': fill_seq}) return + # KPI 라벨 [!] 팝업 본문 — 서버가 HTML 조립, 클라이언트는 innerHTML만. + if parsed.path in ('/api/principal', '/api/cashflow'): + qs = parse_qs(parsed.query) + owner_q = (qs.get('owner') or [''])[0].strip() + if not owner_q: + self._send_json(400, {'error': 'owner required'}) + return + render = (_render_principal_body if parsed.path == '/api/principal' + else _render_cashflow_body) + try: + self._send_json(200, {'html': render(owner_q)}) + except Exception as e: + sys.stderr.write(f'{parsed.path} failed: {e}\n') + self._send_json(500, {'error': str(e)}) + return + if parsed.path == '/api/trades': qs = parse_qs(parsed.query) code = (qs.get('code') or [''])[0].strip() diff --git a/agents/stock/workspace/scripts/fomc_calendar_sync.py b/agents/stock/workspace/scripts/fomc_calendar_sync.py new file mode 100644 index 0000000..8e38401 --- /dev/null +++ b/agents/stock/workspace/scripts/fomc_calendar_sync.py @@ -0,0 +1,341 @@ +#!/usr/bin/env python3 +"""미 연준 FOMC 회의 일정 → Google 캘린더 동기화 (조회+등록 전용). + +출처: federalreserve.gov 공식 FOMC 일정표. 회의 날짜는 미 동부 기준 그대로 등록한다 +(기존 수동 등록분·시황 자막 관례와 동일). +""" +from __future__ import annotations + +import argparse +import json +import re +import subprocess +import urllib.request +from dataclasses import dataclass +from datetime import date, datetime, timedelta +from pathlib import Path +from zoneinfo import ZoneInfo + +KST = ZoneInfo('Asia/Seoul') +ET = ZoneInfo('America/New_York') +CALENDAR_ID = 'mini.snowoyh@gmail.com' +WORKSPACE = Path('/Users/snowoyh/.openclaw/agents/stock/workspace') +STATE_DIR = WORKSPACE / 'state' +STATE_DIR.mkdir(parents=True, exist_ok=True) +STATE_FILE = STATE_DIR / 'fomc_calendar_sync.json' +SOURCE_URL = 'https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm' + +MONTHS = { + 'january': 1, 'february': 2, 'march': 3, 'april': 4, 'may': 5, 'june': 6, + 'july': 7, 'august': 8, 'september': 9, 'october': 10, 'november': 11, 'december': 12, +} + +YEAR_PANEL_RE = re.compile(r'(\d{4})\s+FOMC\s+Meetings') +MEETING_ROW_RE = re.compile( + r'fomc-meeting__month[^>]*>\s*(?:)?(.*?)(?:)?\s*' + r'.*?fomc-meeting__date[^>]*>\s*(.*?)\s*', + re.S, +) + + +@dataclass +class Meeting: + start_date: date # 회의 시작 (미 동부) + end_date: date # 회의 종료 (미 동부, inclusive) + is_sep: bool + + @property + def state_key(self) -> str: + # FOMC는 한 달에 두 번 열리지 않으므로 시작월이 고유 키 + return f'{self.start_date:%Y-%m}' + + @property + def summary(self) -> str: + base = f'[FOMC] {self.state_key} 회의' + return f'{base} (SEP)' if self.is_sep else base + + @property + def announce_kst(self) -> datetime: + """성명 발표 = 회의 마지막날 미 동부 14:00. 서머타임은 zoneinfo가 처리.""" + et = datetime(self.end_date.year, self.end_date.month, self.end_date.day, 14, 0, tzinfo=ET) + return et.astimezone(KST) + + @property + def cal_start(self) -> date: + return self.start_date + + @property + def cal_end(self) -> date: + """캘린더 이벤트 마지막날 = 발표일(KST). 미 동부 회의 종료 다음날이라 + 한국 장이 결과를 반영하는 날까지 일정이 덮인다.""" + return self.announce_kst.date() + + @property + def description(self) -> str: + if self.start_date == self.end_date: + days = self.start_date.isoformat() + else: + days = f'{self.start_date.isoformat()} ~ {self.end_date.isoformat()}' + lines = [ + f'회의일(미 동부): {days}', + f'성명 발표: {self.announce_kst:%Y-%m-%d %H:%M} KST (한국 장 반영일)', + ] + if self.is_sep: + lines.append('경제전망(SEP)·점도표 공개 회의') + lines.append(f'출처: {SOURCE_URL}') + return '\n'.join(lines) + + +def run(cmd: list[str]) -> str: + p = subprocess.run(cmd, capture_output=True, text=True) + if p.returncode != 0: + raise RuntimeError(p.stderr.strip() or p.stdout.strip() or 'command failed') + return p.stdout + + +def fetch(url: str) -> str: + req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'}) + with urllib.request.urlopen(req, timeout=30) as r: + return r.read().decode('utf-8', 'ignore') + + +def parse_meetings(html: str, after: date) -> list[Meeting]: + """연도 패널별로 회의 행을 훑어 캘린더 기간이 아직 안 끝난 회의만 반환. + + 기준을 회의 시작일이 아니라 `cal_end`(발표일 KST)로 두는 이유: 미 동부 회의가 + 끝났어도 한국 장 반영일이 남아 있으면 아직 관리 대상이다. + """ + panels = [(m.group(1), m.start()) for m in YEAR_PANEL_RE.finditer(html)] + if not panels: + return [] + bounds = panels + [('', len(html))] + + meetings: list[Meeting] = [] + for (year_raw, start), (_, end) in zip(bounds[:-1], bounds[1:]): + year = int(year_raw) + if year < after.year: + continue + for row in MEETING_ROW_RE.finditer(html[start:end]): + month_txt = re.sub(r'<[^>]+>', '', row.group(1)).strip() + day_txt = re.sub(r'<[^>]+>', '', row.group(2)).strip() + m = parse_row(year, month_txt, day_txt) + if m and m.cal_end > after: + meetings.append(m) + meetings.sort(key=lambda m: m.start_date) + return meetings + + +def parse_row(year: int, month_txt: str, day_txt: str) -> Meeting | None: + """'April/May' + '28-1*' 같은 월 경계 표기까지 처리.""" + months = [MONTHS[p.strip().lower()] for p in month_txt.split('/') if p.strip().lower() in MONTHS] + if not months: + return None + + is_sep = '*' in day_txt + days = [int(d) for d in re.findall(r'\d+', day_txt)] + if not days: + return None + + start_month = months[0] + end_month = months[-1] + start_year = year + end_year = year if end_month >= start_month else year + 1 # 12월/1월 회의 대비 + + try: + start = date(start_year, start_month, days[0]) + end = date(end_year, end_month, days[-1]) + except ValueError: + return None + if end < start: + return None + return Meeting(start, end, is_sep) + + +def load_state() -> dict: + if STATE_FILE.exists(): + try: + return json.loads(STATE_FILE.read_text()) + except Exception: + return {} + return {} + + +def save_state(state: dict): + STATE_FILE.write_text(json.dumps(state, ensure_ascii=False, indent=2)) + + +def state_key_from_summary(summary: str) -> str | None: + m = re.match(r'\[FOMC\]\s*(\d{4}-\d{2})\b', (summary or '').strip()) + return m.group(1) if m else None + + +def fetch_existing_events(start_date: date, end_date: date) -> dict[str, list[dict]]: + start_dt = datetime(start_date.year, start_date.month, start_date.day, 0, 0, tzinfo=KST) + end_dt = datetime(end_date.year, end_date.month, end_date.day, 0, 0, tzinfo=KST) + out = run([ + 'gog', 'calendar', 'events', CALENDAR_ID, + '--from', start_dt.isoformat(), '--to', end_dt.isoformat(), + '--all-pages', '--max', '250', '--json' + ]) + data = json.loads(out) + existing: dict[str, list[dict]] = {} + for ev in data.get('events', []): + key = state_key_from_summary(ev.get('summary', '')) + if key: + existing.setdefault(key, []).append(ev) + return existing + + +def create_event(m: Meeting, dry_run: bool = False): + start = m.cal_start.isoformat() + end = (m.cal_end + timedelta(days=1)).isoformat() # 종일 이벤트의 end는 exclusive + if dry_run: + print(json.dumps({'create': m.summary, 'from': start, 'to': m.cal_end.isoformat()}, ensure_ascii=False)) + return + # --event-color 미지정: 기존 이벤트에 지정된 색을 덮어쓰지 않는다 + run([ + 'gog', 'calendar', 'create', CALENDAR_ID, + '--summary', m.summary, + '--description', m.description, + '--from', start, + '--to', end, + '--all-day', + ]) + + +def update_event(event_id: str, m: Meeting, dry_run: bool = False) -> str: + start = m.cal_start.isoformat() + end = (m.cal_end + timedelta(days=1)).isoformat() + if dry_run: + print(json.dumps({'update': m.summary, 'event_id': event_id, 'from': start, 'to': m.cal_end.isoformat()}, ensure_ascii=False)) + return 'updated' + try: + run([ + 'gog', 'calendar', 'update', CALENDAR_ID, event_id, + '--summary', m.summary, + '--description', m.description, + '--from', start, + '--to', end, + '--all-day', + ]) + return 'updated' + except Exception: + run(['gog', 'calendar', 'delete', CALENDAR_ID, event_id, '--force', '--no-input']) + create_event(m, dry_run=False) + return 'recreated' + + +def delete_event(event_id: str, dry_run: bool = False): + if dry_run: + print(json.dumps({'delete_event_id': event_id}, ensure_ascii=False)) + return + run(['gog', 'calendar', 'delete', CALENDAR_ID, event_id, '--force', '--no-input']) + + +def event_date_range(ev: dict) -> tuple[str, str]: + start_info = ev.get('start', {}) + end_info = ev.get('end', {}) + start = start_info.get('date') or start_info.get('dateTime', '')[:10] + end_excl = end_info.get('date') or end_info.get('dateTime', '')[:10] + end = '' + if end_excl: + end = (date.fromisoformat(end_excl) - timedelta(days=1)).isoformat() + return start, end + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--dry-run', action='store_true') + parser.add_argument('--list', action='store_true', help='파싱 결과만 출력 (캘린더 미접근)') + args = parser.parse_args() + + today = datetime.now(KST).date() + meetings = parse_meetings(fetch(SOURCE_URL), today) + + if args.list: + print(json.dumps({ + 'today': today.isoformat(), + 'total': len(meetings), + 'meetings': [ + {'key': m.state_key, 'summary': m.summary, + 'meeting_et': f'{m.start_date.isoformat()}~{m.end_date.isoformat()}', + 'announce_kst': m.announce_kst.strftime('%Y-%m-%d %H:%M'), + 'cal_start': m.cal_start.isoformat(), 'cal_end': m.cal_end.isoformat()} + for m in meetings + ], + }, ensure_ascii=False, indent=2)) + return + + state = load_state() + end_date = max((m.cal_end for m in meetings), default=today) + timedelta(days=1) + # 스크래핑 실패 시 기존 일정이 몰살되는 사고 방지 — meetings 비면 cleanup 스킵 + # 조회 시작이 today인 건 오늘 걸쳐 있는 진행 중 회의도 갱신 대상이기 때문 + existing = {} if not meetings else fetch_existing_events(today, end_date) + + created, updated, recreated, deleted, duplicates_removed = [], [], [], [], [] + unchanged = 0 + changes = [] + keys = {m.state_key for m in meetings} + + for m in meetings: + existing_list = existing.get(m.state_key, []) + # 같은 키로 여러 건이면 가장 최근 created를 남기고 나머지 삭제 + if len(existing_list) > 1: + existing_list.sort(key=lambda e: e.get('created', ''), reverse=True) + for dup in existing_list[1:]: + delete_event(dup['id'], dry_run=args.dry_run) + duplicates_removed.append(m.state_key) + changes.append({'key': m.state_key, 'action': 'duplicate_removed', 'event_id': dup['id']}) + + existing_ev = existing_list[0] if existing_list else None + + if not existing_ev: + create_event(m, dry_run=args.dry_run) + created.append(m.state_key) + changes.append({'key': m.state_key, 'action': 'created', + 'new_date': f'{m.cal_start.isoformat()}~{m.cal_end.isoformat()}'}) + continue + + existing_start, existing_end = event_date_range(existing_ev) + desired_start, desired_end = m.cal_start.isoformat(), m.cal_end.isoformat() + same_summary = (existing_ev.get('summary') or '').strip() == m.summary + same_desc = (existing_ev.get('description') or '').strip() == m.description.strip() + + if existing_start != desired_start or existing_end != desired_end or not same_summary or not same_desc: + result = update_event(existing_ev['id'], m, dry_run=args.dry_run) + (recreated if result == 'recreated' else updated).append(m.state_key) + changes.append({'key': m.state_key, 'action': result, + 'old_date': f'{existing_start}~{existing_end}', + 'new_date': f'{desired_start}~{desired_end}'}) + else: + unchanged += 1 + + # 연준 일정표에서 사라진 미래 회의는 캘린더에서도 삭제 (meetings 비면 existing이 빈 dict라 자동 스킵) + for key, existing_list in existing.items(): + if key in keys: + continue + for stale in existing_list: + old_start, old_end = event_date_range(stale) + # 오늘 진행 중이거나 지난 회의는 parse 대상(오늘 이후)에서 빠져 있을 뿐이므로 삭제 금지 + if old_start and old_start <= today.isoformat(): + continue + delete_event(stale['id'], dry_run=args.dry_run) + deleted.append(key) + changes.append({'key': key, 'action': 'deleted', 'event_id': stale['id'], + 'old_date': f'{old_start}~{old_end}'}) + + state['last_changes'] = changes + state['last_run_at'] = datetime.now(KST).isoformat() + if not args.dry_run: + save_state(state) + + print(json.dumps({ + 'today': today.isoformat(), 'total_found': len(meetings), + 'newly_created': len(created), 'updated': len(updated), 'recreated': len(recreated), + 'deleted': len(deleted), 'duplicates_removed': len(duplicates_removed), + 'unchanged': unchanged, 'dry_run': args.dry_run, 'changes': changes, + }, ensure_ascii=False)) + + +if __name__ == '__main__': + main() diff --git a/agents/stock/workspace/scripts/investment_principal.py b/agents/stock/workspace/scripts/investment_principal.py new file mode 100644 index 0000000..d8d0f67 --- /dev/null +++ b/agents/stock/workspace/scripts/investment_principal.py @@ -0,0 +1,449 @@ +#!/usr/bin/env python3 +"""투자원금(순입금) 집계 — 조회 전용. + +투자원금 = 계좌 개설 이후 누적 입금 − 누적 출금. "내 돈 얼마 넣었나"이며, +`총 매입금액`(현재 보유종목 매입원가)이나 `예수금`(남은 현금)과 전혀 다른 값이다. +이 값이 있어야 `순자산 − 투자원금 = 진짜 총수익`(실현+미실현+배당)이 나온다. +키움 kt00018의 평가손익은 현재 보유분 미실현만 잡아 누적 실현손익·배당을 놓친다. + +데이터원은 kt00016(일별계좌수익률상세현황)의 기간내총입금·총출금. +⚠️ kt00016은 **조회기간 1년 제한**이라 연도별 창으로 쪼개 누적한다. + +캐시 `state/investment_principal.json`: + - frozen : 지난 연도 = 확정값. 한 번 적재 후 재조회 안 함 (0인 연도는 저장 생략) + - current: 올해 창(0101~오늘) 누적. 갱신 대상은 이것뿐 → 계좌당 1콜 + - seen : 마지막 갱신 시점의 "당일 입출금" 스냅샷 — 이벤트 감지 기준 + +갱신은 별도 트리거 없이 behive_web 렌더 경로에서 이벤트로만 일어난다. +당일 입출금(이미 kt00015로 조회 중)이 seen과 다를 때만 올해 창을 재조회하므로 +입출금 없는 평시에는 kt00016 호출이 0이다. 안전망으로 7일 초과 시 강제 갱신. + +CLI: python3 scripts/investment_principal.py {bootstrap|refresh|show} +""" +from __future__ import annotations + +import json +import os +import sys +import time +from contextlib import contextmanager +from datetime import datetime, timedelta, timezone +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +import kiwoom_client as kc + +KST = timezone(timedelta(hours=9)) +WORKSPACE = Path('/Users/snowoyh/.openclaw/agents/stock/workspace') +STATE_FILE = WORKSPACE / 'state' / 'investment_principal.json' + +# 부트스트랩 하한 연도. 계좌 개설 전 기간은 kt00016이 에러 없이 전 필드 0을 주므로 +# 넉넉히 잡아도 안전하다 (현재 최고(最古) 계좌는 2018년 개설). +FLOOR_YEAR = 2010 +PACE_SEC = 0.35 # 연속 조회 rate limit 페이싱 +STALE_DAYS = 7 # 이벤트 감지가 못 잡은 경우의 안전망 + +# 적요에 이 중 하나가 들어가면 '내가 넣은/뺀 돈'(원금 반영), 아니면 투자 성과(원금 무관). +# 원금 반영 : 이체입금(지급결제)·이체오픈뱅킹입금·이체입금·대체입금·소액이체인증입금 +# ·ISA가입인증입금 / 이체출금·대체출금 +# 원금 무관 : 배당금입금·수익분배금입금·예탁금이용료(이자)입금·공모주환불금입금 +# ·쿠폰현금지급(국내)입금·단주매각대금입금·대여수수료입금 +# / 공모불입출금·청약수수료출금 +# ⚠️ 추측이 아니라 실증된 규칙 — 이 분류의 합이 kt00016 기간내총입금/총출금과 +# 4계좌 18개 (계좌,연도) 구간 전부에서 오차 0으로 일치했다(2026-07-29). +# 새 적요가 등장하면 reconciled=False로 드러나므로 조용히 틀리지 않는다. +_PRINCIPAL_RMRK_KEYS = ('이체', '대체', '인증') + + +def is_principal_flow(rmrk: str) -> bool: + """적요가 투자원금에 반영되는 외부 입출금인지. 배당·이자 등은 False.""" + return any(k in (rmrk or '') for k in _PRINCIPAL_RMRK_KEYS) + + +# ---- 캐시 I/O ---- + +@contextmanager +def _lock(): + """STATE_FILE 직렬화 — behive_web _stock_notes_lock 과 동일 패턴, 별도 lock 파일.""" + import fcntl + lock_path = STATE_FILE.with_suffix(STATE_FILE.suffix + '.lock') + lock_path.parent.mkdir(parents=True, exist_ok=True) + f = open(lock_path, 'a') + try: + fcntl.flock(f.fileno(), fcntl.LOCK_EX) + yield + finally: + try: + fcntl.flock(f.fileno(), fcntl.LOCK_UN) + finally: + f.close() + + +def _load() -> dict | None: + """캐시 로드. 파일 없거나 깨졌으면 None (호출측이 '미집계'로 처리).""" + if not STATE_FILE.exists(): + return None + try: + d = json.loads(STATE_FILE.read_text()) + except Exception: + return None + if not isinstance(d, dict) or 'current' not in d: + return None + d.setdefault('frozen', {}) + d.setdefault('seen', {}) + d['current'].setdefault('labels', {}) + return d + + +def _save(d: dict) -> None: + d['refreshed_at'] = datetime.now(KST).isoformat(timespec='seconds') + STATE_FILE.parent.mkdir(parents=True, exist_ok=True) + tmp = STATE_FILE.with_suffix('.json.tmp') + tmp.write_text(json.dumps(d, ensure_ascii=False, indent=2)) + os.replace(tmp, STATE_FILE) + + +# ---- 조회 ---- + +def _today_str() -> str: + return datetime.now(KST).strftime('%Y%m%d') + + +def _this_year() -> int: + return datetime.now(KST).year + + +def _window(year: int) -> tuple[str, str]: + """연도별 조회 창. 올해는 오늘까지, 지난 연도는 12/31까지 (1년 제한 내).""" + if year == _this_year(): + return f'{year}0101', _today_str() + return f'{year}0101', f'{year}1231' + + +def _fetch_year(label: str, year: int) -> dict: + """한 (계좌, 연도) 창의 합계(kt00016) + 입출금 행(kt00015). 2콜. + + flows 행의 `pr`은 원금 반영 여부. 분류 합이 kt00016 합계와 맞는지 `rec`에 남겨 + 새 적요가 등장해 분류가 어긋나면 화면에서 드러나게 한다. + """ + fr, to = _window(year) + r = kc.get_period_return(label, fr, to) + time.sleep(PACE_SEC) + try: + raw = kc.get_cash_flow(label, strt_dt=fr, end_dt=to) + except Exception as e: + sys.stderr.write(f'cash flow {label} {year} 실패: {e}\n') + raw = None + flows = None if raw is None else [ + {'d': f['date'], 'io': f['io_tp'], 'amt': f['amount'], + 'rk': f['rmrk'], 'pr': is_principal_flow(f['rmrk'])} + for f in raw + ] + rec = None + if flows is not None: + pin = sum(f['amt'] for f in flows if f['io'] == 'IN' and f['pr']) + pout = sum(f['amt'] for f in flows if f['io'] == 'OUT' and f['pr']) + rec = (pin == r['cash_in'] and pout == r['cash_out']) + return { + 'in': r['cash_in'], 'out': r['cash_out'], + 'qin': r['qty_in'], 'qout': r['qty_out'], + 'nf': r['net_fr'], 'nt': r['net_to'], 'pl': r['eval_pl'], + 'flows': flows, 'rec': rec, + } + + +def _is_empty(y: dict) -> bool: + """계좌 개설 전(또는 전면 무활동) 연도 — 저장 생략 대상.""" + return not any(y[k] for k in ('in', 'out', 'qin', 'qout', 'nf', 'nt', 'pl')) + + +def _labels(labels: list[str] | None = None) -> list[str]: + all_lb = [a['label'] for a in kc.list_accounts()] + if labels is None: + return all_lb + wanted = set(labels) + return [lb for lb in all_lb if lb in wanted] + + +def _flow_totals(cash_flow_by_label: dict) -> dict: + """behive_web의 kt00015 당일 입출금 → {label: {'in': n, 'out': n}}.""" + out: dict[str, dict] = {} + for lb, flows in (cash_flow_by_label or {}).items(): + ci = sum(f['amount'] for f in (flows or []) if f.get('io_tp') == 'IN') + co = sum(f['amount'] for f in (flows or []) if f.get('io_tp') == 'OUT') + out[lb] = {'in': ci, 'out': co} + return out + + +# ---- 공개 API ---- + +def bootstrap(labels: list[str] | None = None) -> dict: + """FLOOR_YEAR ~ 올해 전수 조회로 캐시를 새로 만든다 (계좌×연도, 4×17≈68콜 ≈ 25초). + + 조기 종료 없음 — 잔고가 0으로 비었던 휴면 연도가 중간에 끼어도 그 앞 연도를 놓치지 않는다. + ⚠️ 1회성 CLI 전용. 렌더 경로에서 절대 호출하지 말 것. + """ + lbs = _labels(labels) + this_year = _this_year() + frozen: dict[str, dict] = {} + current: dict[str, dict] = {} + for lb in lbs: + frozen[lb] = {} + for year in range(FLOOR_YEAR, this_year + 1): + y = _fetch_year(lb, year) + time.sleep(PACE_SEC) + if year == this_year: + current[lb] = y + elif not _is_empty(y): + frozen[lb][year_key(year)] = y + with _lock(): + d = _load() or {} + d['frozen'] = {**(d.get('frozen') or {}), **frozen} + cur = d.get('current') or {} + if cur.get('year') != this_year: + cur = {'year': this_year, 'labels': {}} + cur['labels'] = {**(cur.get('labels') or {}), **current} + d['current'] = cur + d['seen'] = {**(d.get('seen') or {}), **_seen_now(lbs)} + _save(d) + return _load() + + +def year_key(year: int) -> str: + return str(year) + + +def _seen_now(labels: list[str]) -> dict: + """현재 당일 입출금을 seen 형식으로. (CLI refresh/bootstrap 용 — kt00015 계좌당 1콜)""" + today = datetime.now(KST).strftime('%Y-%m-%d') + totals = _flow_totals(kc.get_cash_flow_all(None, labels)) + return {lb: {'date': today, **totals.get(lb, {'in': 0, 'out': 0})} for lb in labels} + + +def refresh_current(labels: list[str], cash_flow_by_label: dict | None = None) -> None: + """올해 창만 재조회 (라벨당 1콜) + 연도 롤오버 시 작년을 확정값으로 이관. + + cash_flow_by_label: 호출측이 이미 들고 있는 kt00015 당일 입출금. + None이면 직접 조회. seen 기록에 쓴다 — kt00016 호출 **전** 시점의 값이어야 + 그 사이 들어온 입금이 seen에 앞서 반영돼 영구 미갱신되는 일이 없다. + """ + lbs = _labels(labels) + if not lbs: + return + if cash_flow_by_label is None: + seen = _seen_now(lbs) + else: + today = datetime.now(KST).strftime('%Y-%m-%d') + totals = _flow_totals(cash_flow_by_label) + seen = {lb: {'date': today, **totals.get(lb, {'in': 0, 'out': 0})} for lb in lbs} + + this_year = _this_year() + with _lock(): + d = _load() + if d is None: + return # 부트스트랩 전 — 렌더 경로를 68콜로 막지 않는다 + cur = d['current'] + prev_year = cur.get('year') + # 연도 롤오버: current에 담긴 작년치는 to_dt가 12/31이 아니라 미완결이므로 + # 전체 창(0101~1231)으로 다시 받아 확정 이관한다. + if prev_year and prev_year != this_year: + for lb in lbs: + y = _fetch_year(lb, prev_year) + time.sleep(PACE_SEC) + if not _is_empty(y): + d['frozen'].setdefault(lb, {})[year_key(prev_year)] = y + cur = {'year': this_year, 'labels': {}} + for lb in lbs: + cur['labels'][lb] = _fetch_year(lb, this_year) + time.sleep(PACE_SEC) + cur['year'] = this_year + d['current'] = cur + d['seen'].update(seen) + _save(d) + + +def needs_refresh(labels: list[str], cash_flow_by_label: dict) -> bool: + """올해 창 재조회가 필요한지 판정 — 순수 캐시 읽기(키움 콜 0). + + 캐시가 없으면 False — 부트스트랩 미실행 상태에서 페이지 로드를 68콜로 막지 않는다. + """ + d = _load() + if d is None: + return False + if d['current'].get('year') != _this_year(): + return True + today = datetime.now(KST).strftime('%Y-%m-%d') + totals = _flow_totals(cash_flow_by_label) + for lb in labels: + if lb not in totals: + continue # owner 부분 갱신 — 조회 안 된 계좌는 판단 보류 + s = d['seen'].get(lb) or {} + base = s if s.get('date') == today else {'in': 0, 'out': 0} + if totals[lb]['in'] != base.get('in', 0) or totals[lb]['out'] != base.get('out', 0): + return True + ts = d.get('refreshed_at') + if not ts: + return True + try: + age = datetime.now(KST) - datetime.fromisoformat(ts) + except Exception: + return True + return age > timedelta(days=STALE_DAYS) + + +def get_principal(labels: list[str]) -> dict: + """캐시만 읽어 누적 원금 산출 (키움 콜 0). + + 반환 principal이 None이면 '미집계' — 요청 라벨 중 부트스트랩 안 된 계좌가 있다는 뜻. + (0으로 떨어뜨리면 그 계좌 입금이 조용히 빠져 원금이 과소계상된다.) + qty_flow=True는 주식 입출고(타사대체) 이력 — 현금 기준 원금이 과소계상됨을 알림. + by_label은 계좌별 순입금 {label: 원} — 자세히보기 토스트용. + """ + miss = {'principal': None, 'cash_in': None, 'cash_out': None, + 'qty_flow': False, 'by_label': {}} + d = _load() + if d is None: + return miss + cur = d['current']['labels'] + total_in = total_out = 0 + qty_flow = False + by_label: dict[str, int] = {} + for lb in labels: + if lb not in cur: + return miss + recs = list((d['frozen'].get(lb) or {}).values()) + [cur[lb]] + lb_in = lb_out = 0 + for y in recs: + lb_in += y.get('in', 0) + lb_out += y.get('out', 0) + qty_flow = qty_flow or bool(y.get('qin') or y.get('qout')) + by_label[lb] = lb_in - lb_out + total_in += lb_in + total_out += lb_out + return { + 'principal': total_in - total_out, + 'cash_in': total_in, + 'cash_out': total_out, + 'qty_flow': qty_flow, + 'by_label': by_label, + } + + +def get_flows(labels: list[str]) -> dict: + """입출금 내역 (최신순) — 캐시만 읽는다 (키움 콜 0). + + 반환: + - rows: [{date, io('IN'|'OUT'), amount, rmrk, principal(bool), label}] 최신순 + - other_in / other_out: 원금 무관 입출금 합계 (배당·이자 등) + - reconciled: 전 구간에서 적요 분류 합이 kt00016 합계와 일치했는지 + False면 새 적요가 등장해 분류가 어긋났다는 신호 + - available: 내역이 캐시에 있는지 (부트스트랩 전 or 조회 실패 시 False) + """ + d = _load() + if d is None: + return {'rows': [], 'other_in': 0, 'other_out': 0, + 'reconciled': True, 'available': False} + cur = d['current']['labels'] + rows: list[dict] = [] + reconciled = True + available = False + for lb in labels: + recs = list((d['frozen'].get(lb) or {}).values()) + if lb in cur: + recs.append(cur[lb]) + for y in recs: + flows = y.get('flows') + if flows is None: + continue + available = True + if y.get('rec') is False: + reconciled = False + for f in flows: + rows.append({'date': f['d'], 'io': f['io'], 'amount': f['amt'], + 'rmrk': f['rk'], 'principal': f['pr'], 'label': lb}) + rows.sort(key=lambda r: (r['date'], r['label']), reverse=True) + return { + 'rows': rows, + 'other_in': sum(r['amount'] for r in rows if r['io'] == 'IN' and not r['principal']), + 'other_out': sum(r['amount'] for r in rows if r['io'] == 'OUT' and not r['principal']), + 'reconciled': reconciled, + 'available': available, + } + + +# ---- CLI ---- + +def _show() -> int: + d = _load() + if d is None: + print(f'캐시 없음: {STATE_FILE}\n → python3 scripts/investment_principal.py bootstrap') + return 1 + from stock_portfolio_report import derive_owner + + print(f'갱신: {d.get("refreshed_at")} (올해 창 {d["current"].get("year")})\n') + lbs = list(d['current']['labels'].keys()) + bad = 0 + for lb in lbs: + years = sorted((d['frozen'].get(lb) or {}).items()) + years.append((year_key(d['current']['year']), d['current']['labels'][lb])) + print(f'===== {lb} =====') + tin = tout = 0 + for yk, y in years: + # 항등식: 순자산초 + 입금 − 출금 + 평가손익 = 순자산말 + err = y['nf'] + y['in'] - y['out'] + y['pl'] - y['nt'] + bad += 1 if err else 0 + tin += y['in'] + tout += y['out'] + q = f' 입고 {y["qin"]:,} 출고 {y["qout"]:,}' if (y['qin'] or y['qout']) else '' + nf = len(y.get('flows') or []) if y.get('flows') is not None else None + rc = {True: '분류OK', False: '분류불일치!', None: '내역없음'}[y.get('rec')] + print(f' {yk}: 입금 {y["in"]:>12,} 출금 {y["out"]:>11,} ' + f'순자산 {y["nf"]:>12,}→{y["nt"]:>12,} 손익 {y["pl"]:>12,} ' + f'항등식오차 {err:,} 내역 {nf if nf is not None else "-":>3}행 {rc}{q}') + print(f' >> 누적 입금 {tin:,} − 출금 {tout:,} = 순입금 {tin - tout:,}\n') + + print('항등식 검증:', '전 행 오차 0 ✅' if not bad else f'⚠️ 오차 있는 행 {bad}개') + fl = get_flows(lbs) + print(f'적요 분류 검증: {"전 구간 일치 ✅" if fl["reconciled"] else "⚠️ 불일치 구간 있음 — 새 적요 확인 필요"}' + f' (내역 {len(fl["rows"])}행, 원금무관 입금 {fl["other_in"]:,}원 / 출금 {fl["other_out"]:,}원)') + + # 라이브 교차검증 — 원금 대비 총수익 vs 실제 순자산 + print('\n===== 원금 대비 총수익 (라이브 교차검증) =====') + owners: dict[str, list[str]] = {} + for lb in lbs: + owners.setdefault(derive_owner(lb), []).append(lb) + for owner, olbs in owners.items(): + pr = get_principal(olbs) + net = 0 + for lb in olbs: + net += sum(p['evlt_amt'] for p in kc.get_positions(lb)) + kc.get_balance(lb)['d2_entra'] + p = pr['principal'] + ret = net - p + warn = ' ⚠️ 주식 입출고 있음(원금 과소계상)' if pr['qty_flow'] else '' + print(f'[{owner}] 투자원금 {p:,}원 (입금 {pr["cash_in"]:,} − 출금 {pr["cash_out"]:,}){warn}') + print(f' 순자산 {net:,}원 → 총수익 {ret:+,}원 ({ret / p * 100:+.2f}%)' if p else ' 원금 0') + return 0 if not bad else 1 + + +def main(argv: list[str]) -> int: + cmd = argv[1] if len(argv) > 1 else 'show' + if cmd == 'bootstrap': + lbs = _labels() + n = len(lbs) * (_this_year() - FLOOR_YEAR + 1) + print(f'{len(lbs)}계좌 × {_this_year() - FLOOR_YEAR + 1}년 = {n}콜 (약 {n * PACE_SEC:.0f}초)...') + bootstrap() + print(f'완료 → {STATE_FILE}\n') + return _show() + if cmd == 'refresh': + refresh_current(_labels()) + print(f'올해 창 갱신 완료 → {STATE_FILE}\n') + return _show() + if cmd == 'show': + return _show() + print(__doc__) + return 2 + + +if __name__ == '__main__': + raise SystemExit(main(sys.argv)) diff --git a/agents/stock/workspace/scripts/kiwoom_client.py b/agents/stock/workspace/scripts/kiwoom_client.py index bb296c0..ca78e4a 100644 --- a/agents/stock/workspace/scripts/kiwoom_client.py +++ b/agents/stock/workspace/scripts/kiwoom_client.py @@ -39,6 +39,7 @@ ENDPOINT_RKINFO = '/api/dostk/rkinfo' # 순위정보 — ka10023 거래량급 TR_DEPOSIT = 'kt00001' # 예수금상세현황요청 TR_ACNT_EVAL = 'kt00004' # 계좌평가현황요청 (acnt_nm·brch_nm 포함) TR_TRUST_TRADE = 'kt00015' # 위탁종합거래내역요청 (tp='1' 입출금 — 당일 추가입금/인출 추출용) +TR_ACNT_RETURN = 'kt00016' # 일별계좌수익률상세현황요청 (기간내총입금·총출금 — 투자원금 산출용) TR_POSITIONS = 'kt00018' # 계좌평가잔고내역요청 (종목별 상세, 수수료·세금 포함) TR_TRADE_DIARY = 'ka10170' # 당일매매일지요청 (round-trip·풀매도 포함, 잔고에 없는 거래도 잡힘) TR_ORDER_EXEC = 'kt00007' # 계좌별주문체결내역상세 (주문번호·시각·체결가·체결수량 단위, REST/영웅문 출처 구분) @@ -431,25 +432,39 @@ def get_trade_journal_all(base_dt: str | None = None, labels: list[str] | None = return {a['label']: get_trade_journal(a['label'], base_dt) for a in accs} -def get_cash_flow(account_label: str, base_dt: str | None = None) -> list[dict]: - """당일 입출금 내역 (kt00015 tp='1'). +def get_cash_flow(account_label: str, base_dt: str | None = None, + strt_dt: str | None = None, end_dt: str | None = None) -> list[dict]: + """입출금 내역 (kt00015 tp='1'). base_dt: YYYYMMDD (None이면 KST 오늘). 시작/종료 동일 → 그날치만. + strt_dt/end_dt: 둘 다 주면 기간 조회 (base_dt 무시). + ⚠️ **조회기간 1년 제한** — 넘기면 `[2000](501058:조회기간은 1년 이내로만 가능합니다.)`. + 다년치는 연도별로 쪼개 호출한다 (investment_principal.py 참조). tp='1'(입출금)·gds_tp='0'(전체)로 매매·환전 등은 제외. KRW만 필터. + ⚠️ tp='1' 입금에는 **배당금·예탁금이용료(이자)·수익분배금·공모주환불금·단주매각대금**이 + 섞여 들어온다. 이건 '내가 넣은 돈'이 아니므로 투자원금 합산에 그대로 쓰면 과대계상된다. + kt00016의 기간내총입금/총출금은 이걸 이미 제외한 순수 외부 이체액이다 (전 계좌·연도 실증). + 적요 기준 분류는 `investment_principal.is_principal_flow`. + 반환 행: + - date: 'YYYYMMDD' (trde_dt) - time: 'HH:MM:SS' (proc_tm 앞 8자리) - io_tp: 'IN' | 'OUT' - amount: 거래금액 (원, 양수) - signed: +amount (입금) / -amount (출금) — 합산으로 net cash flow 산출 - - rmrk: 적요명 (예: '타사대체입금', '은행이체출금') + - rmrk: 적요명 (예: '이체입금(지급결제)', '배당금입금', '이체출금') - balance: 거래 후 예수금잔고 (entra_remn) """ - if base_dt is None: - base_dt = datetime.now(KST).strftime('%Y%m%d') + if strt_dt and end_dt: + fr, to = strt_dt, end_dt + else: + if base_dt is None: + base_dt = datetime.now(KST).strftime('%Y%m%d') + fr = to = base_dt body = { - 'strt_dt': base_dt, - 'end_dt': base_dt, + 'strt_dt': fr, + 'end_dt': to, 'tp': '1', 'stk_cd': '', 'crnc_cd': '', @@ -478,6 +493,7 @@ def get_cash_flow(account_label: str, base_dt: str | None = None) -> list[dict]: continue proc_tm = (it.get('proc_tm') or '').strip() out.append({ + 'date': (it.get('trde_dt') or '').strip(), 'time': proc_tm[:8], 'io_tp': io_tp, 'amount': amount, @@ -497,6 +513,38 @@ def get_cash_flow_all(base_dt: str | None = None, labels: list[str] | None = Non return {a['label']: get_cash_flow(a['label'], base_dt) for a in accs} +def get_period_return(account_label: str, fr_dt: str, to_dt: str) -> dict: + """기간 계좌수익률 상세 (kt00016) — 기간내 총입금·총출금 포함. + + ⚠️ **조회기간 1년 제한** — 넘기면 `[2000](505221:조회기간은 1년이내로만 가능합니다.)`. + 전체기간 투자원금은 연도별 창으로 쪼개 누적해야 한다 (investment_principal.py 참조). + + ⚠️ 응답의 `invt_bsamt`는 "투자원금**평잔**"(기간 평균잔고)이라 누적 투자원금이 아니다 — + 이름이 비슷해 오용하기 쉬우니 반환하지 않는다. 누적 원금은 cash_in − cash_out. + + 계좌 개설 전 기간은 에러 없이 전 필드 0으로 응답한다. + 항등식 `net_fr + cash_in − cash_out + eval_pl == net_to` 가 성립 (자체 검증용). + + 반환: + - cash_in/cash_out: 기간내 총입금/총출금 (원) + - qty_in/qty_out: 기간내 총입고/총출고 (주식 대체 — 0이 아니면 현금 기준 원금이 과소계상) + - net_fr/net_to: 순자산액계 기초/기말 + - eval_pl: 평가손익 + """ + resp = _call(account_label, TR_ACNT_RETURN, {'fr_dt': fr_dt, 'to_dt': to_dt}) + return { + 'label': account_label, + 'cash_in': _to_int(resp.get('termin_tot_trns')), # 기간내총입금 + 'cash_out': _to_int(resp.get('termin_tot_pymn')), # 기간내총출금 + 'qty_in': _to_int(resp.get('termin_tot_inq')), # 기간내총입고 + 'qty_out': _to_int(resp.get('termin_tot_outq')), # 기간내총출고 + 'net_fr': _to_int(resp.get('tot_amt_fr')), # 순자산액계_초 + 'net_to': _to_int(resp.get('tot_amt_to')), # 순자산액계_말 + 'eval_pl': _to_int(resp.get('evltv_prft')), # 평가손익 + 'raw': resp, + } + + def get_order_executions(account_label: str, base_dt: str | None = None) -> list[dict]: """계좌별 주문체결내역 (kt00007) — 주문번호·시각 단위 행 리스트. diff --git a/agents/stock/workspace/scripts/stock_portfolio_report.py b/agents/stock/workspace/scripts/stock_portfolio_report.py index 10a1b03..8e18e8a 100755 --- a/agents/stock/workspace/scripts/stock_portfolio_report.py +++ b/agents/stock/workspace/scripts/stock_portfolio_report.py @@ -520,14 +520,34 @@ def _render_html_owner(idx: int, owner: str, d: dict, balances: dict, prev_key, ) # behive_web _render_owner_kpi 와 동일한 순서·라벨로 통일. - # 1) 총평가 → 2) 총매입 → 3) 총평가손익 → 4) 당일평가손익 → 5) 예수금 → 6) 순자산 → 7) 보유 종목 → 8) 당일 매매 + # '총'은 계좌 전체(현금 포함)일 때만: 총자산 = 평가금액 + 예수금. + # 총자산 → 매입금액 → 평가금액 → 평가손익 → 예수금 → [당일 입출금] → 보유종목/당일매매 → 당일 평가손익 held = [r for r in d['consolidated'] if not r.get('phantom')] - parts.append(kpi('총 평가금액', f'{d["total_value"]:,}원')) - parts.append(kpi('총 매입금액', f'{d["total_cost"]:,}원')) + parts.append(kpi('총자산', f'{d["total_net"]:,}원')) + parts.append(kpi('매입금액', f'{d["total_cost"]:,}원')) + parts.append(kpi('평가금액', f'{d["total_value"]:,}원')) parts.append(kpi( - '총 평가손익', + '평가손익', f'{_signed(d["total_profit"])} ({_signed_pct(d["total_profit_rate"])})' )) + parts.append(kpi('예수금', f'{d["deposit"]:,}원')) + # 당일 입출금은 예수금 바로 아래 (현금 잔액 ↔ 그날 현금 이동) + cash_in = d.get('cash_in', 0) + cash_out = d.get('cash_out', 0) + if cash_in or cash_out: + net = cash_in - cash_out + nsign = '+' if net >= 0 else '' + ncolor = '#0a7' if net > 0 else ('#d33' if net < 0 else '#666') + # 한쪽만 있으면 순액과 같은 값이라 생략 (둘 다 있을 때만 쪼갠다) + detail = '' + if cash_in and cash_out: + detail = (f' ' + f'· 입금 {cash_in:,}원 · 출금 {cash_out:,}원') + parts.append(kpi( + '당일 입출금', + f'{nsign}{net:,}원{detail}' + )) + parts.append(kpi('보유종목/당일매매', f'{len(held)}개 / {len(d["traded_today"])}개')) day_pl_total = d.get('day_pl_total') if day_pl_total is None: if prev_key: @@ -540,26 +560,6 @@ def _render_html_owner(idx: int, owner: str, d: dict, balances: dict, prev_key, pct_html = f' ({_signed_pct(pct)})' suffix = f' · {prev_key} 대비' if prev_key else '' parts.append(kpi('당일 평가손익', f'{_signed(day_pl_total)}{pct_html}{suffix}')) - parts.append(kpi('예수금', f'{d["deposit"]:,}원')) - parts.append(kpi('순자산', f'{d["total_net"]:,}원')) - cash_in = d.get('cash_in', 0) - cash_out = d.get('cash_out', 0) - if cash_in or cash_out: - net = cash_in - cash_out - nsign = '+' if net >= 0 else '' - ncolor = '#0a7' if net > 0 else ('#d33' if net < 0 else '#666') - detail_parts = [] - if cash_in: - detail_parts.append(f'입금 {cash_in:,}원') - if cash_out: - detail_parts.append(f'출금 {cash_out:,}원') - detail = f' · {" · ".join(detail_parts)}' if detail_parts else '' - parts.append(kpi( - '당일 입출금', - f'{nsign}{net:,}원{detail}' - )) - parts.append(kpi('보유 종목', f'{len(held)}개')) - parts.append(kpi('당일 매매', f'{len(d["traded_today"])}개')) realized_pl = d.get('realized_pl_total', 0) realized_fees = d.get('realized_fees_total', 0) if d.get('traded_today') and (realized_pl or realized_fees): @@ -710,13 +710,29 @@ def _render_html_body(owner_data: dict, ordered: list, balances: dict, today_key f'{value_html}' ) - # behive_web KPI 순서로 통일 - parts.append(kpi('총 평가금액', f'{grand_value:,}원')) - parts.append(kpi('총 매입금액', f'{grand_cost:,}원')) + # behive_web KPI 순서·라벨로 통일 (블록 자체가 전체 합산이라 '총' 중복 접두 제거) + parts.append(kpi('총자산', f'{grand_net:,}원')) + parts.append(kpi('매입금액', f'{grand_cost:,}원')) + parts.append(kpi('평가금액', f'{grand_value:,}원')) parts.append(kpi( - '총 평가손익', + '평가손익', f'{_signed(grand_profit)} ({_signed_pct(grand_rate)})' )) + parts.append(kpi('예수금', f'{grand_deposit:,}원')) + # 당일 입출금은 예수금 바로 아래 + if grand_cash_in or grand_cash_out: + gn = grand_net_cash_flow + gsign = '+' if gn >= 0 else '' + gcolor = '#0a7' if gn > 0 else ('#d33' if gn < 0 else '#666') + # 한쪽만 있으면 순액과 같은 값이라 생략 + gdetail = '' + if grand_cash_in and grand_cash_out: + gdetail = (f' ' + f'· 입금 {grand_cash_in:,}원 · 출금 {grand_cash_out:,}원') + parts.append(kpi( + '당일 입출금', + f'{gsign}{gn:,}원{gdetail}' + )) if grand_day_pl_total is not None: pct_html = '' if grand_prev_net: @@ -726,22 +742,6 @@ def _render_html_body(owner_data: dict, ordered: list, balances: dict, today_key parts.append(kpi('당일 평가손익', f'{_signed(grand_day_pl_total)}{pct_html}{suffix}')) elif prev_key: parts.append(kpi('당일 평가손익', '전날 스냅샷 없음')) - parts.append(kpi('총 예수금', f'{grand_deposit:,}원')) - parts.append(kpi('총 순자산', f'{grand_net:,}원')) - if grand_cash_in or grand_cash_out: - gn = grand_net_cash_flow - gsign = '+' if gn >= 0 else '' - gcolor = '#0a7' if gn > 0 else ('#d33' if gn < 0 else '#666') - gd = [] - if grand_cash_in: - gd.append(f'입금 {grand_cash_in:,}원') - if grand_cash_out: - gd.append(f'출금 {grand_cash_out:,}원') - gdetail = f' · {" · ".join(gd)}' - parts.append(kpi( - '당일 입출금', - f'{gsign}{gn:,}원{gdetail}' - )) grand_realized_pl = sum(d.get('realized_pl_total', 0) for d in owner_data.values()) grand_realized_fees = sum(d.get('realized_fees_total', 0) for d in owner_data.values()) if any(d.get('traded_today') for d in owner_data.values()) and (grand_realized_pl or grand_realized_fees): @@ -1012,14 +1012,18 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]: title = OWNER_LABELS.get(owner, f'{owner} 자산') labels_disp = ' + '.join(d['labels']) held = [r for r in d['consolidated'] if not r.get('phantom')] - # behive_web KPI 순서·라벨로 통일 + # behive_web KPI 순서·라벨로 통일. 라벨은 표시폭 17칸 정렬(한글 2칸 기준). lines += [ '==============================', f"{idx}) {title} ({labels_disp})", '==============================', - f'총 평가금액 : {d["total_value"]:,}원', - f'총 매입금액 : {d["total_cost"]:,}원', - f'총 평가손익 : {d["total_profit"]:+,}원 ({d["total_profit_rate"]:+.2f}%)', + f'총자산 : {d["total_net"]:,}원', + f'매입금액 : {d["total_cost"]:,}원', + f'평가금액 : {d["total_value"]:,}원', + f'평가손익 : {d["total_profit"]:+,}원 ({d["total_profit_rate"]:+.2f}%)', + f'예수금 : {d["deposit"]:,}원', + # '보유종목/당일매매'는 표시폭이 정확히 17칸이라 패딩 없이 콜론이 맞는다. + f'보유종목/당일매매: {len(held)}개 / {len(d["traded_today"])}개', ] day_pl = d.get('day_pl_total') if day_pl is not None: @@ -1029,10 +1033,6 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]: lines.append(f'당일 평가손익 : {day_pl:+,}원 ({pct:+.2f}%){suffix}') elif prev_key: lines.append(f'당일 평가손익 : 전날 스냅샷 없음 ({prev_key})') - lines.append(f'예수금 : {d["deposit"]:,}원') - lines.append(f'순자산 : {d["total_net"]:,}원') - lines.append(f'보유 종목 : {len(held)}개') - lines.append(f'당일 매매 : {len(d["traded_today"])}개') if d.get('traded_today') and (d.get('realized_pl_total', 0) or d.get('realized_fees_total', 0)): fee = d.get('realized_fees_total', 0) fee_part = f' (수수료·세금 {fee:,}원)' if fee else '' @@ -1126,7 +1126,7 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]: tg_lines = [f'📊 주식 리포트 | {today_key} 20:00'] tg_lines.append('') tg_lines.append(f'평가 {grand_value:,}원 · 예수금 {grand_deposit:,}원') - tg_lines.append(f'순자산 {grand_net:,}원') + tg_lines.append(f'총자산 {grand_net:,}원') tg_lines.append(f'{grand_profit:+,}원 ({grand_rate:+.2f}%)') if grand_day_pl_total is not None: tg_lines.append(f'당일 평가손익 {grand_day_pl_total:+,}원 ({prev_key} 대비)') @@ -1135,7 +1135,10 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]: elif owner_data: tg_lines.append('전날 이전 스냅샷 없음') if grand_cash_in or grand_cash_out: - tg_lines.append(f'당일 입출금 {grand_net_cash_flow:+,}원 (입금 {grand_cash_in:,}원 · 출금 {grand_cash_out:,}원)') + # 한쪽만 있으면 순액과 같은 값이라 괄호 생략 + _brk = (f' (입금 {grand_cash_in:,}원 · 출금 {grand_cash_out:,}원)' + if (grand_cash_in and grand_cash_out) else '') + tg_lines.append(f'당일 입출금 {grand_net_cash_flow:+,}원{_brk}') grand_realized_pl = sum(d.get('realized_pl_total', 0) for d in owner_data.values()) if any(d.get('traded_today') for d in owner_data.values()) and grand_realized_pl: tg_lines.append(f'당일 실현 {grand_realized_pl:+,}원') @@ -1144,7 +1147,7 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]: for owner in ordered: d = owner_data[owner] title = OWNER_LABELS.get(owner, owner).replace(' 자산', '') - tg_lines.append(f'• {title} 순자산 {d["total_net"]:,}원') + tg_lines.append(f'• {title} 총자산 {d["total_net"]:,}원') tg_lines.append(f' 평가 {d["total_value"]:,}원 · 예수금 {d["deposit"]:,}원') tg_lines.append(f' {d["total_profit"]:+,}원 ({d["total_profit_rate"]:+.2f}%)') if d.get('day_pl_total') is not None: diff --git a/agents/stock/workspace/state/market_indicators_history.jsonl b/agents/stock/workspace/state/market_indicators_history.jsonl index b75f78c..fb85012 100644 --- a/agents/stock/workspace/state/market_indicators_history.jsonl +++ b/agents/stock/workspace/state/market_indicators_history.jsonl @@ -92,3 +92,5 @@ {"date": "2026-07-27", "market": "KOSPI", "market_label": "코스피", "rise": 497, "upper": 0, "fall": 372, "lower": 2, "steady": 47, "adr": 132.89, "personal": 19788, "foreign": -28811, "institutional": 8595, "captured_at": "2026-07-27T21:00:02.567797+09:00"} {"date": "2026-07-28", "market": "KOSDAQ", "market_label": "코스닥", "rise": 140, "upper": 11, "fall": 1557, "lower": 2, "steady": 38, "adr": 9.69, "personal": 480, "foreign": 860, "institutional": -1345, "captured_at": "2026-07-28T21:00:02.094342+09:00"} {"date": "2026-07-28", "market": "KOSPI", "market_label": "코스피", "rise": 36, "upper": 3, "fall": 878, "lower": 2, "steady": 3, "adr": 4.43, "personal": 43152, "foreign": -45009, "institutional": 1830, "captured_at": "2026-07-28T21:00:02.094342+09:00"} +{"date": "2026-07-29", "market": "KOSDAQ", "market_label": "코스닥", "rise": 141, "upper": 4, "fall": 1554, "lower": 3, "steady": 35, "adr": 9.31, "personal": -4579, "foreign": 3082, "institutional": 1474, "captured_at": "2026-07-29T21:00:04.833116+09:00"} +{"date": "2026-07-29", "market": "KOSPI", "market_label": "코스피", "rise": 91, "upper": 1, "fall": 805, "lower": 1, "steady": 21, "adr": 11.41, "personal": -19701, "foreign": -12502, "institutional": 31769, "captured_at": "2026-07-29T21:00:04.833116+09:00"} diff --git a/agents/stock/workspace/state/sim/equity_history.json b/agents/stock/workspace/state/sim/equity_history.json index 536d987..2ec9f71 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": 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}], "20260612": [{"id": "v62", "ph": "c6ddc17b", "equity": 101131990, "ret": 1.13}, {"id": "v64", "ph": "15b83273", "equity": 101131990, "ret": 1.13}, {"id": "v66", "ph": "db0e70a4", "equity": 101131990, "ret": 1.13}, {"id": "v68", "ph": "38c84625", "equity": 100815744, "ret": 0.82}, {"id": "v70", "ph": "6c4d4125", "equity": 100815744, "ret": 0.82}, {"id": "v72", "ph": "b8d74129", "equity": 100815744, "ret": 0.82}, {"id": "v74", "ph": "35a8e955", "equity": 100815744, "ret": 0.82}, {"id": "v76", "ph": "178928cb", "equity": 100815744, "ret": 0.82}, {"id": "v78", "ph": "655e082d", "equity": 100815744, "ret": 0.82}, {"id": "v80", "ph": "b2d56c47", "equity": 100815744, "ret": 0.82}, {"id": "v84", "ph": "95794738", "equity": 100815744, "ret": 0.82}, {"id": "v86", "ph": "935c5a1c", "equity": 100815744, "ret": 0.82}, {"id": "v40", "ph": "70731d89", "equity": 100812655, "ret": 0.81}, {"id": "v42", "ph": "f36fddc6", "equity": 100812655, "ret": 0.81}, {"id": "v44", "ph": "364ea434", "equity": 100812655, "ret": 0.81}, {"id": "v22", "ph": "956b3b16", "equity": 100762741, "ret": 0.76}, {"id": "v24", "ph": "9beb8c05", "equity": 100762741, "ret": 0.76}, {"id": "v25", "ph": "00b59557", "equity": 100762741, "ret": 0.76}, {"id": "v79", "ph": "61b964d8", "equity": 100762741, "ret": 0.76}, {"id": "v83", "ph": "1b98a0fc", "equity": 100762741, "ret": 0.76}, {"id": "v85", "ph": "5ca17df0", "equity": 100762741, "ret": 0.76}, {"id": "v48", "ph": "18854c6a", "equity": 100477921, "ret": 0.48}, {"id": "v90", "ph": "86e09c47", "equity": 100477921, "ret": 0.48}, {"id": "v98", "ph": "266fc53f", "equity": 100477921, "ret": 0.48}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100477921, "ret": 0.48}, {"id": "v2", "ph": "bab0fc2c", "equity": 100463176, "ret": 0.46}, {"id": "v3", "ph": "81d17cca", "equity": 100463176, "ret": 0.46}, {"id": "v4", "ph": "b6219595", "equity": 100463176, "ret": 0.46}, {"id": "v39", "ph": "11c27236", "equity": 100463176, "ret": 0.46}, {"id": "v41", "ph": "e9d84e84", "equity": 100463176, "ret": 0.46}, {"id": "v43", "ph": "94ea3b53", "equity": 100463176, "ret": 0.46}, {"id": "v6", "ph": "e96ce9e2", "equity": 100248035, "ret": 0.25}, {"id": "v35", "ph": "6a183375", "equity": 100248035, "ret": 0.25}, {"id": "v47", "ph": "ed758fcf", "equity": 100248035, "ret": 0.25}, {"id": "v105", "ph": "88395429", "equity": 100248035, "ret": 0.25}, {"id": "v27", "ph": "33d43bc6", "equity": 100230107, "ret": 0.23}, {"id": "v31", "ph": "3dc99490", "equity": 100230107, "ret": 0.23}, {"id": "v89", "ph": "c49d5680", "equity": 100230107, "ret": 0.23}, {"id": "v97", "ph": "ebf31977", "equity": 100230107, "ret": 0.23}, {"id": "v1", "ph": "4874f4c9", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "ec2eb05a", "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": "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": "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": "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": "v45", "ph": "964276a8", "equity": 100000000, "ret": 0.0}, {"id": "v46", "ph": "7dc0e360", "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": "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": "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": "v107", "ph": "be5cd36b", "equity": 100000000, "ret": 0.0}, {"id": "v108", "ph": "67a6679a", "equity": 100000000, "ret": 0.0}], "20260615": [{"id": "v62", "ph": "c6ddc17b", "equity": 101695590, "ret": 1.7}, {"id": "v64", "ph": "15b83273", "equity": 101695590, "ret": 1.7}, {"id": "v66", "ph": "db0e70a4", "equity": 101695590, "ret": 1.7}, {"id": "v68", "ph": "38c84625", "equity": 101110494, "ret": 1.11}, {"id": "v70", "ph": "6c4d4125", "equity": 101110494, "ret": 1.11}, {"id": "v72", "ph": "b8d74129", "equity": 101110494, "ret": 1.11}, {"id": "v74", "ph": "35a8e955", "equity": 101110494, "ret": 1.11}, {"id": "v76", "ph": "178928cb", "equity": 101110494, "ret": 1.11}, {"id": "v78", "ph": "655e082d", "equity": 101110494, "ret": 1.11}, {"id": "v80", "ph": "b2d56c47", "equity": 101110494, "ret": 1.11}, {"id": "v84", "ph": "95794738", "equity": 101110494, "ret": 1.11}, {"id": "v86", "ph": "935c5a1c", "equity": 101110494, "ret": 1.11}, {"id": "v40", "ph": "70731d89", "equity": 100878905, "ret": 0.88}, {"id": "v42", "ph": "f36fddc6", "equity": 100878905, "ret": 0.88}, {"id": "v44", "ph": "364ea434", "equity": 100878905, "ret": 0.88}, {"id": "v22", "ph": "956b3b16", "equity": 100808991, "ret": 0.81}, {"id": "v24", "ph": "9beb8c05", "equity": 100808991, "ret": 0.81}, {"id": "v25", "ph": "00b59557", "equity": 100808991, "ret": 0.81}, {"id": "v79", "ph": "61b964d8", "equity": 100808991, "ret": 0.81}, {"id": "v83", "ph": "1b98a0fc", "equity": 100808991, "ret": 0.81}, {"id": "v85", "ph": "5ca17df0", "equity": 100808991, "ret": 0.81}, {"id": "v2", "ph": "bab0fc2c", "equity": 100526926, "ret": 0.53}, {"id": "v3", "ph": "81d17cca", "equity": 100526926, "ret": 0.53}, {"id": "v4", "ph": "b6219595", "equity": 100526926, "ret": 0.53}, {"id": "v39", "ph": "11c27236", "equity": 100526926, "ret": 0.53}, {"id": "v41", "ph": "e9d84e84", "equity": 100526926, "ret": 0.53}, {"id": "v43", "ph": "94ea3b53", "equity": 100526926, "ret": 0.53}, {"id": "v48", "ph": "18854c6a", "equity": 100516671, "ret": 0.52}, {"id": "v90", "ph": "86e09c47", "equity": 100516671, "ret": 0.52}, {"id": "v98", "ph": "266fc53f", "equity": 100516671, "ret": 0.52}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100516671, "ret": 0.52}, {"id": "v6", "ph": "e96ce9e2", "equity": 100281785, "ret": 0.28}, {"id": "v35", "ph": "6a183375", "equity": 100281785, "ret": 0.28}, {"id": "v47", "ph": "ed758fcf", "equity": 100281785, "ret": 0.28}, {"id": "v105", "ph": "88395429", "equity": 100281785, "ret": 0.28}, {"id": "v27", "ph": "33d43bc6", "equity": 100261357, "ret": 0.26}, {"id": "v31", "ph": "3dc99490", "equity": 100261357, "ret": 0.26}, {"id": "v89", "ph": "c49d5680", "equity": 100261357, "ret": 0.26}, {"id": "v97", "ph": "ebf31977", "equity": 100261357, "ret": 0.26}, {"id": "v1", "ph": "4874f4c9", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "ec2eb05a", "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": "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": "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": "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": "v45", "ph": "964276a8", "equity": 100000000, "ret": 0.0}, {"id": "v46", "ph": "7dc0e360", "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": "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": "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": "v107", "ph": "be5cd36b", "equity": 100000000, "ret": 0.0}, {"id": "v108", "ph": "67a6679a", "equity": 100000000, "ret": 0.0}, {"id": "v109", "ph": "4c69fc95", "equity": 100000000, "ret": 0.0}, {"id": "v110", "ph": "8164d748", "equity": 100000000, "ret": 0.0}, {"id": "v111", "ph": "826e3d17", "equity": 100000000, "ret": 0.0}, {"id": "v112", "ph": "4cd47646", "equity": 100000000, "ret": 0.0}, {"id": "v113", "ph": "5b43d0bc", "equity": 100000000, "ret": 0.0}, {"id": "v114", "ph": "8686c36c", "equity": 100000000, "ret": 0.0}, {"id": "v115", "ph": "e1790a5a", "equity": 100000000, "ret": 0.0}, {"id": "v116", "ph": "e73fef98", "equity": 100000000, "ret": 0.0}, {"id": "v117", "ph": "c4ae8a11", "equity": 100000000, "ret": 0.0}, {"id": "v118", "ph": "538b63b9", "equity": 100000000, "ret": 0.0}, {"id": "v119", "ph": "ed2208f1", "equity": 100000000, "ret": 0.0}, {"id": "v120", "ph": "d25ca8b0", "equity": 100000000, "ret": 0.0}, {"id": "v121", "ph": "ae8797c1", "equity": 100000000, "ret": 0.0}, {"id": "v122", "ph": "b12ecb8e", "equity": 100000000, "ret": 0.0}, {"id": "v123", "ph": "6ee459af", "equity": 100000000, "ret": 0.0}, {"id": "v124", "ph": "47d22489", "equity": 100000000, "ret": 0.0}, {"id": "v125", "ph": "d2cf659a", "equity": 100000000, "ret": 0.0}, {"id": "v126", "ph": "d9a13cde", "equity": 100000000, "ret": 0.0}, {"id": "v127", "ph": "eff26306", "equity": 100000000, "ret": 0.0}, {"id": "v128", "ph": "e9482821", "equity": 100000000, "ret": 0.0}, {"id": "v129", "ph": "58ddcc3c", "equity": 100000000, "ret": 0.0}, {"id": "v130", "ph": "e91870c6", "equity": 100000000, "ret": 0.0}, {"id": "v131", "ph": "5f8c7082", "equity": 100000000, "ret": 0.0}, {"id": "v132", "ph": "0945c49a", "equity": 100000000, "ret": 0.0}, {"id": "v133", "ph": "78be8034", "equity": 100000000, "ret": 0.0}, {"id": "v134", "ph": "afbb4ab8", "equity": 100000000, "ret": 0.0}, {"id": "v135", "ph": "53f4c78c", "equity": 100000000, "ret": 0.0}, {"id": "v136", "ph": "ceb32a66", "equity": 100000000, "ret": 0.0}, {"id": "v137", "ph": "60ec806f", "equity": 100000000, "ret": 0.0}, {"id": "v138", "ph": "e3acb223", "equity": 100000000, "ret": 0.0}, {"id": "v139", "ph": "cfbc79a5", "equity": 100000000, "ret": 0.0}, {"id": "v140", "ph": "52175b2b", "equity": 100000000, "ret": 0.0}, {"id": "v141", "ph": "47f30434", "equity": 100000000, "ret": 0.0}, {"id": "v142", "ph": "44fae695", "equity": 100000000, "ret": 0.0}, {"id": "v143", "ph": "5cf8f13a", "equity": 100000000, "ret": 0.0}, {"id": "v144", "ph": "6ffe4183", "equity": 100000000, "ret": 0.0}, {"id": "v145", "ph": "a89d85fc", "equity": 100000000, "ret": 0.0}, {"id": "v146", "ph": "071b9cb1", "equity": 100000000, "ret": 0.0}, {"id": "v147", "ph": "2fbeeedb", "equity": 100000000, "ret": 0.0}, {"id": "v148", "ph": "ada71802", "equity": 100000000, "ret": 0.0}, {"id": "v149", "ph": "c5329f8d", "equity": 100000000, "ret": 0.0}, {"id": "v150", "ph": "be41b974", "equity": 100000000, "ret": 0.0}, {"id": "v151", "ph": "2eb1dd06", "equity": 100000000, "ret": 0.0}, {"id": "v152", "ph": "5d2df346", "equity": 100000000, "ret": 0.0}, {"id": "v153", "ph": "49fd09d9", "equity": 100000000, "ret": 0.0}, {"id": "v154", "ph": "7a3a7788", "equity": 100000000, "ret": 0.0}, {"id": "v155", "ph": "31c0d84e", "equity": 100000000, "ret": 0.0}, {"id": "v156", "ph": "3f7bcd1b", "equity": 100000000, "ret": 0.0}, {"id": "v157", "ph": "80f3e23b", "equity": 100000000, "ret": 0.0}, {"id": "v158", "ph": "7e56eae3", "equity": 100000000, "ret": 0.0}, {"id": "v159", "ph": "af80c67a", "equity": 100000000, "ret": 0.0}, {"id": "v160", "ph": "b03f5295", "equity": 100000000, "ret": 0.0}, {"id": "v161", "ph": "ed5677e6", "equity": 100000000, "ret": 0.0}, {"id": "v162", "ph": "b8f71c74", "equity": 100000000, "ret": 0.0}, {"id": "v163", "ph": "452ab819", "equity": 100000000, "ret": 0.0}, {"id": "v164", "ph": "331cec1f", "equity": 100000000, "ret": 0.0}, {"id": "v165", "ph": "8f862b27", "equity": 100000000, "ret": 0.0}, {"id": "v166", "ph": "f684401e", "equity": 100000000, "ret": 0.0}, {"id": "v167", "ph": "b6d6aed8", "equity": 100000000, "ret": 0.0}, {"id": "v168", "ph": "81099b26", "equity": 100000000, "ret": 0.0}, {"id": "v169", "ph": "d595e4fb", "equity": 100000000, "ret": 0.0}, {"id": "v170", "ph": "afd652fd", "equity": 100000000, "ret": 0.0}, {"id": "v171", "ph": "faa4e138", "equity": 100000000, "ret": 0.0}, {"id": "v172", "ph": "98d8acda", "equity": 100000000, "ret": 0.0}, {"id": "v173", "ph": "2ea88e58", "equity": 100000000, "ret": 0.0}, {"id": "v174", "ph": "d8b7e234", "equity": 100000000, "ret": 0.0}, {"id": "v175", "ph": "9b6b3d9c", "equity": 100000000, "ret": 0.0}, {"id": "v176", "ph": "b710fab4", "equity": 100000000, "ret": 0.0}, {"id": "v177", "ph": "87955d67", "equity": 100000000, "ret": 0.0}, {"id": "v178", "ph": "b7ad4c2d", "equity": 100000000, "ret": 0.0}, {"id": "v179", "ph": "bedf0e90", "equity": 100000000, "ret": 0.0}, {"id": "v180", "ph": "4e41501e", "equity": 100000000, "ret": 0.0}, {"id": "v181", "ph": "4614bd55", "equity": 100000000, "ret": 0.0}, {"id": "v182", "ph": "9a4e525e", "equity": 100000000, "ret": 0.0}, {"id": "v183", "ph": "84faca4b", "equity": 100000000, "ret": 0.0}, {"id": "v184", "ph": "3b78ae9c", "equity": 100000000, "ret": 0.0}, {"id": "v185", "ph": "6b7399b9", "equity": 100000000, "ret": 0.0}, {"id": "v186", "ph": "898d23ea", "equity": 100000000, "ret": 0.0}, {"id": "v187", "ph": "7a03131d", "equity": 100000000, "ret": 0.0}, {"id": "v188", "ph": "29798ffd", "equity": 100000000, "ret": 0.0}, {"id": "v189", "ph": "dfdbd0c8", "equity": 100000000, "ret": 0.0}, {"id": "v190", "ph": "e14af339", "equity": 100000000, "ret": 0.0}, {"id": "v191", "ph": "9bb12946", "equity": 100000000, "ret": 0.0}, {"id": "v192", "ph": "96fbbd1c", "equity": 100000000, "ret": 0.0}, {"id": "v193", "ph": "5dd1f4df", "equity": 100000000, "ret": 0.0}, {"id": "v194", "ph": "31aada19", "equity": 100000000, "ret": 0.0}, {"id": "v195", "ph": "dd89cf59", "equity": 100000000, "ret": 0.0}, {"id": "v196", "ph": "a44aeef1", "equity": 100000000, "ret": 0.0}, {"id": "v197", "ph": "5c290a32", "equity": 100000000, "ret": 0.0}, {"id": "v198", "ph": "ffd1ee88", "equity": 100000000, "ret": 0.0}, {"id": "v199", "ph": "390bfab3", "equity": 100000000, "ret": 0.0}, {"id": "v200", "ph": "8bbb6ec7", "equity": 100000000, "ret": 0.0}, {"id": "v201", "ph": "cb8a413e", "equity": 100000000, "ret": 0.0}, {"id": "v202", "ph": "a528b806", "equity": 100000000, "ret": 0.0}, {"id": "v203", "ph": "2071defa", "equity": 100000000, "ret": 0.0}, {"id": "v204", "ph": "434e2f7a", "equity": 100000000, "ret": 0.0}, {"id": "v205", "ph": "02e5a3f5", "equity": 100000000, "ret": 0.0}, {"id": "v206", "ph": "16f62ab7", "equity": 100000000, "ret": 0.0}, {"id": "v207", "ph": "0f6601a0", "equity": 100000000, "ret": 0.0}, {"id": "v208", "ph": "445623de", "equity": 100000000, "ret": 0.0}, {"id": "v209", "ph": "8730802d", "equity": 100000000, "ret": 0.0}, {"id": "v210", "ph": "6f533a9b", "equity": 100000000, "ret": 0.0}, {"id": "v211", "ph": "9227673c", "equity": 100000000, "ret": 0.0}, {"id": "v212", "ph": "b9e1e8d1", "equity": 100000000, "ret": 0.0}, {"id": "v213", "ph": "0e1d8e45", "equity": 100000000, "ret": 0.0}, {"id": "v214", "ph": "0fb624bf", "equity": 100000000, "ret": 0.0}, {"id": "v215", "ph": "a904a49d", "equity": 100000000, "ret": 0.0}, {"id": "v216", "ph": "ee298bd3", "equity": 100000000, "ret": 0.0}, {"id": "v217", "ph": "4c547a61", "equity": 100000000, "ret": 0.0}, {"id": "v218", "ph": "7304d2d4", "equity": 100000000, "ret": 0.0}, {"id": "v219", "ph": "426d3834", "equity": 100000000, "ret": 0.0}, {"id": "v220", "ph": "565c27a7", "equity": 100000000, "ret": 0.0}, {"id": "v221", "ph": "cd2eef94", "equity": 100000000, "ret": 0.0}, {"id": "v222", "ph": "55de9eca", "equity": 100000000, "ret": 0.0}, {"id": "v223", "ph": "b57356b8", "equity": 100000000, "ret": 0.0}, {"id": "v224", "ph": "888ab069", "equity": 100000000, "ret": 0.0}, {"id": "v225", "ph": "e9f40f62", "equity": 100000000, "ret": 0.0}, {"id": "v226", "ph": "98fd37a4", "equity": 100000000, "ret": 0.0}, {"id": "v227", "ph": "9454b07a", "equity": 100000000, "ret": 0.0}, {"id": "v228", "ph": "caa54387", "equity": 100000000, "ret": 0.0}, {"id": "v229", "ph": "d9261dfb", "equity": 100000000, "ret": 0.0}, {"id": "v230", "ph": "141579fe", "equity": 100000000, "ret": 0.0}, {"id": "v231", "ph": "cd9469fa", "equity": 100000000, "ret": 0.0}, {"id": "v232", "ph": "6de1fffa", "equity": 100000000, "ret": 0.0}, {"id": "v233", "ph": "941006e0", "equity": 100000000, "ret": 0.0}, {"id": "v234", "ph": "9a289d18", "equity": 100000000, "ret": 0.0}, {"id": "v235", "ph": "3e6c1666", "equity": 100000000, "ret": 0.0}, {"id": "v236", "ph": "f9c75560", "equity": 100000000, "ret": 0.0}, {"id": "v237", "ph": "a10d68cf", "equity": 100000000, "ret": 0.0}, {"id": "v238", "ph": "f1a74611", "equity": 100000000, "ret": 0.0}, {"id": "v239", "ph": "96e693c4", "equity": 100000000, "ret": 0.0}, {"id": "v240", "ph": "db1869eb", "equity": 100000000, "ret": 0.0}, {"id": "v241", "ph": "52162002", "equity": 100000000, "ret": 0.0}, {"id": "v242", "ph": "e6c70cac", "equity": 100000000, "ret": 0.0}, {"id": "v243", "ph": "fa7a545a", "equity": 100000000, "ret": 0.0}, {"id": "v244", "ph": "520c5a65", "equity": 100000000, "ret": 0.0}, {"id": "v245", "ph": "ac84324f", "equity": 100000000, "ret": 0.0}, {"id": "v246", "ph": "618ddf71", "equity": 100000000, "ret": 0.0}, {"id": "v247", "ph": "ba973fa6", "equity": 100000000, "ret": 0.0}, {"id": "v248", "ph": "9ca5e3dc", "equity": 100000000, "ret": 0.0}, {"id": "v249", "ph": "36a32ca0", "equity": 100000000, "ret": 0.0}, {"id": "v250", "ph": "b37976b8", "equity": 100000000, "ret": 0.0}, {"id": "v251", "ph": "8c5a06da", "equity": 100000000, "ret": 0.0}, {"id": "v252", "ph": "381a65d1", "equity": 100000000, "ret": 0.0}, {"id": "v253", "ph": "87bd57d6", "equity": 100000000, "ret": 0.0}, {"id": "v254", "ph": "75e53118", "equity": 100000000, "ret": 0.0}, {"id": "v255", "ph": "92e3c5e0", "equity": 100000000, "ret": 0.0}, {"id": "v256", "ph": "e583f1dd", "equity": 100000000, "ret": 0.0}, {"id": "v257", "ph": "7fa33f5b", "equity": 100000000, "ret": 0.0}, {"id": "v258", "ph": "0b19bb06", "equity": 100000000, "ret": 0.0}, {"id": "v259", "ph": "178a1fe3", "equity": 100000000, "ret": 0.0}, {"id": "v260", "ph": "bab317db", "equity": 100000000, "ret": 0.0}, {"id": "v261", "ph": "965786e6", "equity": 100000000, "ret": 0.0}, {"id": "v262", "ph": "e07faa54", "equity": 100000000, "ret": 0.0}, {"id": "v263", "ph": "ca392811", "equity": 100000000, "ret": 0.0}, {"id": "v264", "ph": "8c65e60d", "equity": 100000000, "ret": 0.0}, {"id": "v265", "ph": "7faed59d", "equity": 100000000, "ret": 0.0}, {"id": "v266", "ph": "c133b585", "equity": 100000000, "ret": 0.0}, {"id": "v267", "ph": "766c47d7", "equity": 100000000, "ret": 0.0}, {"id": "v268", "ph": "9736502d", "equity": 100000000, "ret": 0.0}, {"id": "v269", "ph": "c0c861c4", "equity": 100000000, "ret": 0.0}, {"id": "v270", "ph": "1ce9fd2b", "equity": 100000000, "ret": 0.0}, {"id": "v271", "ph": "2b9ccdcd", "equity": 100000000, "ret": 0.0}, {"id": "v272", "ph": "2ed2027f", "equity": 100000000, "ret": 0.0}, {"id": "v273", "ph": "c726e8d5", "equity": 100000000, "ret": 0.0}, {"id": "v274", "ph": "62b011c8", "equity": 100000000, "ret": 0.0}, {"id": "v275", "ph": "3ebf0d91", "equity": 100000000, "ret": 0.0}, {"id": "v276", "ph": "51425eab", "equity": 100000000, "ret": 0.0}, {"id": "v277", "ph": "488b612a", "equity": 100000000, "ret": 0.0}, {"id": "v278", "ph": "861fb42b", "equity": 100000000, "ret": 0.0}, {"id": "v279", "ph": "37e203bb", "equity": 100000000, "ret": 0.0}, {"id": "v280", "ph": "60411037", "equity": 100000000, "ret": 0.0}, {"id": "v281", "ph": "7d9e5a9d", "equity": 100000000, "ret": 0.0}, {"id": "v282", "ph": "9ddd111d", "equity": 100000000, "ret": 0.0}, {"id": "v283", "ph": "479e4b25", "equity": 100000000, "ret": 0.0}, {"id": "v284", "ph": "261c5d58", "equity": 100000000, "ret": 0.0}, {"id": "v285", "ph": "962e35cd", "equity": 100000000, "ret": 0.0}, {"id": "v286", "ph": "4f6101e9", "equity": 100000000, "ret": 0.0}, {"id": "v287", "ph": "3bf14815", "equity": 100000000, "ret": 0.0}, {"id": "v288", "ph": "1c732194", "equity": 100000000, "ret": 0.0}], "20260616": [{"id": "v40", "ph": "70731d89", "equity": 100839155, "ret": 0.84}, {"id": "v42", "ph": "f36fddc6", "equity": 100839155, "ret": 0.84}, {"id": "v44", "ph": "364ea434", "equity": 100839155, "ret": 0.84}, {"id": "v2", "ph": "bab0fc2c", "equity": 100488676, "ret": 0.49}, {"id": "v3", "ph": "81d17cca", "equity": 100488676, "ret": 0.49}, {"id": "v4", "ph": "b6219595", "equity": 100488676, "ret": 0.49}, {"id": "v39", "ph": "11c27236", "equity": 100488676, "ret": 0.49}, {"id": "v41", "ph": "e9d84e84", "equity": 100488676, "ret": 0.49}, {"id": "v43", "ph": "94ea3b53", "equity": 100488676, "ret": 0.49}, {"id": "v48", "ph": "18854c6a", "equity": 100493421, "ret": 0.49}, {"id": "v90", "ph": "86e09c47", "equity": 100493421, "ret": 0.49}, {"id": "v98", "ph": "266fc53f", "equity": 100493421, "ret": 0.49}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100493421, "ret": 0.49}, {"id": "v6", "ph": "e96ce9e2", "equity": 100261535, "ret": 0.26}, {"id": "v35", "ph": "6a183375", "equity": 100261535, "ret": 0.26}, {"id": "v47", "ph": "ed758fcf", "equity": 100261535, "ret": 0.26}, {"id": "v105", "ph": "88395429", "equity": 100261535, "ret": 0.26}, {"id": "v27", "ph": "33d43bc6", "equity": 100242607, "ret": 0.24}, {"id": "v31", "ph": "3dc99490", "equity": 100242607, "ret": 0.24}, {"id": "v89", "ph": "c49d5680", "equity": 100242607, "ret": 0.24}, {"id": "v97", "ph": "ebf31977", "equity": 100242607, "ret": 0.24}, {"id": "v1", "ph": "4874f4c9", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "ec2eb05a", "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": "v23", "ph": "aec632b1", "equity": 100000000, "ret": 0.0}, {"id": "v26", "ph": "2e5f3fac", "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": "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": "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": "v45", "ph": "964276a8", "equity": 100000000, "ret": 0.0}, {"id": "v46", "ph": "7dc0e360", "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": "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": "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": "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": "v107", "ph": "be5cd36b", "equity": 100000000, "ret": 0.0}, {"id": "v108", "ph": "67a6679a", "equity": 100000000, "ret": 0.0}, {"id": "v109", "ph": "4c69fc95", "equity": 100000000, "ret": 0.0}, {"id": "v110", "ph": "8164d748", "equity": 100000000, "ret": 0.0}, {"id": "v111", "ph": "826e3d17", "equity": 100000000, "ret": 0.0}, {"id": "v112", "ph": "4cd47646", "equity": 100000000, "ret": 0.0}, {"id": "v113", "ph": "5b43d0bc", "equity": 100000000, "ret": 0.0}, {"id": "v114", "ph": "8686c36c", "equity": 100000000, "ret": 0.0}, {"id": "v115", "ph": "e1790a5a", "equity": 100000000, "ret": 0.0}, {"id": "v116", "ph": "e73fef98", "equity": 100000000, "ret": 0.0}, {"id": "v117", "ph": "c4ae8a11", "equity": 100000000, "ret": 0.0}, {"id": "v118", "ph": "538b63b9", "equity": 100000000, "ret": 0.0}, {"id": "v119", "ph": "ed2208f1", "equity": 100000000, "ret": 0.0}, {"id": "v120", "ph": "d25ca8b0", "equity": 100000000, "ret": 0.0}, {"id": "v131", "ph": "5f8c7082", "equity": 100000000, "ret": 0.0}, {"id": "v134", "ph": "afbb4ab8", "equity": 100000000, "ret": 0.0}, {"id": "v135", "ph": "53f4c78c", "equity": 100000000, "ret": 0.0}, {"id": "v136", "ph": "ceb32a66", "equity": 100000000, "ret": 0.0}, {"id": "v137", "ph": "60ec806f", "equity": 100000000, "ret": 0.0}, {"id": "v138", "ph": "e3acb223", "equity": 100000000, "ret": 0.0}, {"id": "v139", "ph": "cfbc79a5", "equity": 100000000, "ret": 0.0}, {"id": "v140", "ph": "52175b2b", "equity": 100000000, "ret": 0.0}, {"id": "v141", "ph": "47f30434", "equity": 100000000, "ret": 0.0}, {"id": "v142", "ph": "44fae695", "equity": 100000000, "ret": 0.0}, {"id": "v143", "ph": "5cf8f13a", "equity": 100000000, "ret": 0.0}, {"id": "v144", "ph": "6ffe4183", "equity": 100000000, "ret": 0.0}, {"id": "v145", "ph": "a89d85fc", "equity": 100000000, "ret": 0.0}, {"id": "v146", "ph": "071b9cb1", "equity": 100000000, "ret": 0.0}, {"id": "v147", "ph": "2fbeeedb", "equity": 100000000, "ret": 0.0}, {"id": "v148", "ph": "ada71802", "equity": 100000000, "ret": 0.0}, {"id": "v149", "ph": "c5329f8d", "equity": 100000000, "ret": 0.0}, {"id": "v150", "ph": "be41b974", "equity": 100000000, "ret": 0.0}, {"id": "v151", "ph": "2eb1dd06", "equity": 100000000, "ret": 0.0}, {"id": "v152", "ph": "5d2df346", "equity": 100000000, "ret": 0.0}, {"id": "v153", "ph": "49fd09d9", "equity": 100000000, "ret": 0.0}, {"id": "v154", "ph": "7a3a7788", "equity": 100000000, "ret": 0.0}, {"id": "v155", "ph": "31c0d84e", "equity": 100000000, "ret": 0.0}, {"id": "v156", "ph": "3f7bcd1b", "equity": 100000000, "ret": 0.0}, {"id": "v157", "ph": "80f3e23b", "equity": 100000000, "ret": 0.0}, {"id": "v158", "ph": "7e56eae3", "equity": 100000000, "ret": 0.0}, {"id": "v159", "ph": "af80c67a", "equity": 100000000, "ret": 0.0}, {"id": "v160", "ph": "b03f5295", "equity": 100000000, "ret": 0.0}, {"id": "v161", "ph": "ed5677e6", "equity": 100000000, "ret": 0.0}, {"id": "v162", "ph": "b8f71c74", "equity": 100000000, "ret": 0.0}, {"id": "v163", "ph": "452ab819", "equity": 100000000, "ret": 0.0}, {"id": "v164", "ph": "331cec1f", "equity": 100000000, "ret": 0.0}, {"id": "v165", "ph": "8f862b27", "equity": 100000000, "ret": 0.0}, {"id": "v166", "ph": "f684401e", "equity": 100000000, "ret": 0.0}, {"id": "v167", "ph": "b6d6aed8", "equity": 100000000, "ret": 0.0}, {"id": "v168", "ph": "81099b26", "equity": 100000000, "ret": 0.0}, {"id": "v189", "ph": "dfdbd0c8", "equity": 100000000, "ret": 0.0}, {"id": "v190", "ph": "e14af339", "equity": 100000000, "ret": 0.0}, {"id": "v195", "ph": "dd89cf59", "equity": 100000000, "ret": 0.0}, {"id": "v196", "ph": "a44aeef1", "equity": 100000000, "ret": 0.0}, {"id": "v197", "ph": "5c290a32", "equity": 100000000, "ret": 0.0}, {"id": "v198", "ph": "ffd1ee88", "equity": 100000000, "ret": 0.0}, {"id": "v199", "ph": "390bfab3", "equity": 100000000, "ret": 0.0}, {"id": "v200", "ph": "8bbb6ec7", "equity": 100000000, "ret": 0.0}, {"id": "v201", "ph": "cb8a413e", "equity": 100000000, "ret": 0.0}, {"id": "v202", "ph": "a528b806", "equity": 100000000, "ret": 0.0}, {"id": "v203", "ph": "2071defa", "equity": 100000000, "ret": 0.0}, {"id": "v204", "ph": "434e2f7a", "equity": 100000000, "ret": 0.0}, {"id": "v205", "ph": "02e5a3f5", "equity": 100000000, "ret": 0.0}, {"id": "v206", "ph": "16f62ab7", "equity": 100000000, "ret": 0.0}, {"id": "v207", "ph": "0f6601a0", "equity": 100000000, "ret": 0.0}, {"id": "v208", "ph": "445623de", "equity": 100000000, "ret": 0.0}, {"id": "v209", "ph": "8730802d", "equity": 100000000, "ret": 0.0}, {"id": "v210", "ph": "6f533a9b", "equity": 100000000, "ret": 0.0}, {"id": "v211", "ph": "9227673c", "equity": 100000000, "ret": 0.0}, {"id": "v212", "ph": "b9e1e8d1", "equity": 100000000, "ret": 0.0}, {"id": "v213", "ph": "0e1d8e45", "equity": 100000000, "ret": 0.0}, {"id": "v214", "ph": "0fb624bf", "equity": 100000000, "ret": 0.0}, {"id": "v215", "ph": "a904a49d", "equity": 100000000, "ret": 0.0}, {"id": "v216", "ph": "ee298bd3", "equity": 100000000, "ret": 0.0}, {"id": "v217", "ph": "4c547a61", "equity": 100000000, "ret": 0.0}, {"id": "v218", "ph": "7304d2d4", "equity": 100000000, "ret": 0.0}, {"id": "v219", "ph": "426d3834", "equity": 100000000, "ret": 0.0}, {"id": "v220", "ph": "565c27a7", "equity": 100000000, "ret": 0.0}, {"id": "v221", "ph": "cd2eef94", "equity": 100000000, "ret": 0.0}, {"id": "v222", "ph": "55de9eca", "equity": 100000000, "ret": 0.0}, {"id": "v223", "ph": "b57356b8", "equity": 100000000, "ret": 0.0}, {"id": "v224", "ph": "888ab069", "equity": 100000000, "ret": 0.0}, {"id": "v225", "ph": "e9f40f62", "equity": 100000000, "ret": 0.0}, {"id": "v226", "ph": "98fd37a4", "equity": 100000000, "ret": 0.0}, {"id": "v227", "ph": "9454b07a", "equity": 100000000, "ret": 0.0}, {"id": "v228", "ph": "caa54387", "equity": 100000000, "ret": 0.0}, {"id": "v229", "ph": "d9261dfb", "equity": 100000000, "ret": 0.0}, {"id": "v230", "ph": "141579fe", "equity": 100000000, "ret": 0.0}, {"id": "v231", "ph": "cd9469fa", "equity": 100000000, "ret": 0.0}, {"id": "v232", "ph": "6de1fffa", "equity": 100000000, "ret": 0.0}, {"id": "v233", "ph": "941006e0", "equity": 100000000, "ret": 0.0}, {"id": "v234", "ph": "9a289d18", "equity": 100000000, "ret": 0.0}, {"id": "v235", "ph": "3e6c1666", "equity": 100000000, "ret": 0.0}, {"id": "v236", "ph": "f9c75560", "equity": 100000000, "ret": 0.0}, {"id": "v237", "ph": "a10d68cf", "equity": 100000000, "ret": 0.0}, {"id": "v238", "ph": "f1a74611", "equity": 100000000, "ret": 0.0}, {"id": "v239", "ph": "96e693c4", "equity": 100000000, "ret": 0.0}, {"id": "v240", "ph": "db1869eb", "equity": 100000000, "ret": 0.0}, {"id": "v241", "ph": "52162002", "equity": 100000000, "ret": 0.0}, {"id": "v242", "ph": "e6c70cac", "equity": 100000000, "ret": 0.0}, {"id": "v243", "ph": "fa7a545a", "equity": 100000000, "ret": 0.0}, {"id": "v244", "ph": "520c5a65", "equity": 100000000, "ret": 0.0}, {"id": "v245", "ph": "ac84324f", "equity": 100000000, "ret": 0.0}, {"id": "v246", "ph": "618ddf71", "equity": 100000000, "ret": 0.0}, {"id": "v247", "ph": "ba973fa6", "equity": 100000000, "ret": 0.0}, {"id": "v248", "ph": "9ca5e3dc", "equity": 100000000, "ret": 0.0}, {"id": "v249", "ph": "36a32ca0", "equity": 100000000, "ret": 0.0}, {"id": "v250", "ph": "b37976b8", "equity": 100000000, "ret": 0.0}, {"id": "v251", "ph": "8c5a06da", "equity": 100000000, "ret": 0.0}, {"id": "v252", "ph": "381a65d1", "equity": 100000000, "ret": 0.0}, {"id": "v253", "ph": "87bd57d6", "equity": 100000000, "ret": 0.0}, {"id": "v254", "ph": "75e53118", "equity": 100000000, "ret": 0.0}, {"id": "v255", "ph": "92e3c5e0", "equity": 100000000, "ret": 0.0}, {"id": "v256", "ph": "e583f1dd", "equity": 100000000, "ret": 0.0}, {"id": "v257", "ph": "7fa33f5b", "equity": 100000000, "ret": 0.0}, {"id": "v258", "ph": "0b19bb06", "equity": 100000000, "ret": 0.0}, {"id": "v259", "ph": "178a1fe3", "equity": 100000000, "ret": 0.0}, {"id": "v260", "ph": "bab317db", "equity": 100000000, "ret": 0.0}, {"id": "v261", "ph": "965786e6", "equity": 100000000, "ret": 0.0}, {"id": "v262", "ph": "e07faa54", "equity": 100000000, "ret": 0.0}, {"id": "v263", "ph": "ca392811", "equity": 100000000, "ret": 0.0}, {"id": "v264", "ph": "8c65e60d", "equity": 100000000, "ret": 0.0}, {"id": "v265", "ph": "7faed59d", "equity": 100000000, "ret": 0.0}, {"id": "v266", "ph": "c133b585", "equity": 100000000, "ret": 0.0}, {"id": "v267", "ph": "766c47d7", "equity": 100000000, "ret": 0.0}, {"id": "v268", "ph": "9736502d", "equity": 100000000, "ret": 0.0}, {"id": "v269", "ph": "c0c861c4", "equity": 100000000, "ret": 0.0}, {"id": "v270", "ph": "1ce9fd2b", "equity": 100000000, "ret": 0.0}, {"id": "v271", "ph": "2b9ccdcd", "equity": 100000000, "ret": 0.0}, {"id": "v272", "ph": "2ed2027f", "equity": 100000000, "ret": 0.0}, {"id": "v273", "ph": "c726e8d5", "equity": 100000000, "ret": 0.0}, {"id": "v274", "ph": "62b011c8", "equity": 100000000, "ret": 0.0}, {"id": "v275", "ph": "3ebf0d91", "equity": 100000000, "ret": 0.0}, {"id": "v276", "ph": "51425eab", "equity": 100000000, "ret": 0.0}, {"id": "v277", "ph": "488b612a", "equity": 100000000, "ret": 0.0}, {"id": "v278", "ph": "861fb42b", "equity": 100000000, "ret": 0.0}, {"id": "v279", "ph": "37e203bb", "equity": 100000000, "ret": 0.0}, {"id": "v280", "ph": "60411037", "equity": 100000000, "ret": 0.0}, {"id": "v281", "ph": "7d9e5a9d", "equity": 100000000, "ret": 0.0}, {"id": "v282", "ph": "9ddd111d", "equity": 100000000, "ret": 0.0}, {"id": "v283", "ph": "479e4b25", "equity": 100000000, "ret": 0.0}, {"id": "v284", "ph": "261c5d58", "equity": 100000000, "ret": 0.0}, {"id": "v285", "ph": "962e35cd", "equity": 100000000, "ret": 0.0}, {"id": "v286", "ph": "4f6101e9", "equity": 100000000, "ret": 0.0}, {"id": "v287", "ph": "3bf14815", "equity": 100000000, "ret": 0.0}, {"id": "v288", "ph": "1c732194", "equity": 100000000, "ret": 0.0}, {"id": "v300", "ph": "c6ddc17b", "equity": 100000000, "ret": 0.0}, {"id": "v301", "ph": "30da2021", "equity": 100000000, "ret": 0.0}, {"id": "v302", "ph": "3f30502d", "equity": 100000000, "ret": 0.0}, {"id": "v303", "ph": "1a084164", "equity": 100000000, "ret": 0.0}, {"id": "v296", "ph": "4c554378", "equity": 99588927, "ret": -0.41}, {"id": "v298", "ph": "5d4bbec0", "equity": 99481601, "ret": -0.52}, {"id": "v299", "ph": "25046b1a", "equity": 98593265, "ret": -1.41}], "20260617": [{"id": "v40", "ph": "70731d89", "equity": 100652033, "ret": 0.65}, {"id": "v42", "ph": "f36fddc6", "equity": 100652033, "ret": 0.65}, {"id": "v44", "ph": "364ea434", "equity": 100652033, "ret": 0.65}, {"id": "v48", "ph": "18854c6a", "equity": 100383529, "ret": 0.38}, {"id": "v90", "ph": "86e09c47", "equity": 100383642, "ret": 0.38}, {"id": "v98", "ph": "266fc53f", "equity": 100383642, "ret": 0.38}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100383529, "ret": 0.38}, {"id": "v2", "ph": "bab0fc2c", "equity": 100309506, "ret": 0.31}, {"id": "v3", "ph": "81d17cca", "equity": 100309506, "ret": 0.31}, {"id": "v4", "ph": "b6219595", "equity": 100309506, "ret": 0.31}, {"id": "v39", "ph": "11c27236", "equity": 100309506, "ret": 0.31}, {"id": "v41", "ph": "e9d84e84", "equity": 100309506, "ret": 0.31}, {"id": "v43", "ph": "94ea3b53", "equity": 100309506, "ret": 0.31}, {"id": "v6", "ph": "e96ce9e2", "equity": 100166592, "ret": 0.17}, {"id": "v35", "ph": "6a183375", "equity": 100166592, "ret": 0.17}, {"id": "v47", "ph": "ed758fcf", "equity": 100166592, "ret": 0.17}, {"id": "v105", "ph": "88395429", "equity": 100166592, "ret": 0.17}, {"id": "v27", "ph": "33d43bc6", "equity": 100154776, "ret": 0.15}, {"id": "v31", "ph": "3dc99490", "equity": 100154776, "ret": 0.15}, {"id": "v89", "ph": "c49d5680", "equity": 100154776, "ret": 0.15}, {"id": "v97", "ph": "ebf31977", "equity": 100154776, "ret": 0.15}, {"id": "v7", "ph": "de835eae", "equity": 100000000, "ret": 0.0}, {"id": "v8", "ph": "18c6740b", "equity": 100000000, "ret": 0.0}, {"id": "v23", "ph": "aec632b1", "equity": 100000000, "ret": 0.0}, {"id": "v28", "ph": "28e87677", "equity": 100000000, "ret": 0.0}, {"id": "v30", "ph": "df71f475", "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": "v81", "ph": "a6eac1e4", "equity": 100000000, "ret": 0.0}, {"id": "v82", "ph": "01847af6", "equity": 100000000, "ret": 0.0}, {"id": "v91", "ph": "5674a3d7", "equity": 100000000, "ret": 0.0}, {"id": "v92", "ph": "14a13097", "equity": 100000000, "ret": 0.0}, {"id": "v95", "ph": "7e28e756", "equity": 100000000, "ret": 0.0}, {"id": "v96", "ph": "095b119f", "equity": 100000000, "ret": 0.0}, {"id": "v300", "ph": "c6ddc17b", "equity": 99999065, "ret": -0.0}, {"id": "v302", "ph": "3f30502d", "equity": 100000000, "ret": 0.0}, {"id": "v9", "ph": "141268ab", "equity": 99870054, "ret": -0.13}, {"id": "v11", "ph": "e4bb2e3e", "equity": 99870054, "ret": -0.13}, {"id": "v12", "ph": "f166fb0e", "equity": 99870054, "ret": -0.13}, {"id": "v26", "ph": "2e5f3fac", "equity": 99869724, "ret": -0.13}, {"id": "v29", "ph": "e46149f5", "equity": 99869724, "ret": -0.13}, {"id": "v32", "ph": "153055e6", "equity": 99870054, "ret": -0.13}, {"id": "v33", "ph": "97ad2410", "equity": 99870054, "ret": -0.13}, {"id": "v34", "ph": "d77f522d", "equity": 99869724, "ret": -0.13}, {"id": "v53", "ph": "2391ee16", "equity": 99870054, "ret": -0.13}, {"id": "v54", "ph": "b975742e", "equity": 99870054, "ret": -0.13}, {"id": "v57", "ph": "e7e98b6d", "equity": 99870054, "ret": -0.13}, {"id": "v58", "ph": "f1e52f55", "equity": 99870054, "ret": -0.13}, {"id": "v59", "ph": "1858e2ec", "equity": 99870054, "ret": -0.13}, {"id": "v60", "ph": "52560b06", "equity": 99870054, "ret": -0.13}, {"id": "v87", "ph": "c0be98c0", "equity": 99869724, "ret": -0.13}, {"id": "v88", "ph": "733579ce", "equity": 99868788, "ret": -0.13}, {"id": "v93", "ph": "f10d4e45", "equity": 99869724, "ret": -0.13}, {"id": "v94", "ph": "3e5d6b8a", "equity": 99868788, "ret": -0.13}, {"id": "v99", "ph": "fb39409b", "equity": 99870054, "ret": -0.13}, {"id": "v100", "ph": "ffa9571a", "equity": 99870054, "ret": -0.13}, {"id": "v101", "ph": "c4354346", "equity": 99870054, "ret": -0.13}, {"id": "v102", "ph": "e1601afe", "equity": 99870054, "ret": -0.13}, {"id": "v103", "ph": "75b0a37c", "equity": 99869724, "ret": -0.13}, {"id": "v104", "ph": "013c3fde", "equity": 99868788, "ret": -0.13}, {"id": "v117", "ph": "c4ae8a11", "equity": 99869288, "ret": -0.13}, {"id": "v119", "ph": "ed2208f1", "equity": 99869288, "ret": -0.13}, {"id": "v120", "ph": "d25ca8b0", "equity": 99869288, "ret": -0.13}, {"id": "v134", "ph": "afbb4ab8", "equity": 99868958, "ret": -0.13}, {"id": "v135", "ph": "53f4c78c", "equity": 99868958, "ret": -0.13}, {"id": "v136", "ph": "ceb32a66", "equity": 99869288, "ret": -0.13}, {"id": "v137", "ph": "60ec806f", "equity": 99868958, "ret": -0.13}, {"id": "v139", "ph": "cfbc79a5", "equity": 99868958, "ret": -0.13}, {"id": "v140", "ph": "52175b2b", "equity": 99869288, "ret": -0.13}, {"id": "v141", "ph": "47f30434", "equity": 99869288, "ret": -0.13}, {"id": "v142", "ph": "44fae695", "equity": 99868958, "ret": -0.13}, {"id": "v161", "ph": "ed5677e6", "equity": 99870054, "ret": -0.13}, {"id": "v162", "ph": "b8f71c74", "equity": 99869288, "ret": -0.13}, {"id": "v165", "ph": "8f862b27", "equity": 99870054, "ret": -0.13}, {"id": "v166", "ph": "f684401e", "equity": 99869288, "ret": -0.13}, {"id": "v167", "ph": "b6d6aed8", "equity": 99870054, "ret": -0.13}, {"id": "v168", "ph": "81099b26", "equity": 99869288, "ret": -0.13}, {"id": "v195", "ph": "dd89cf59", "equity": 99869724, "ret": -0.13}, {"id": "v196", "ph": "a44aeef1", "equity": 99868022, "ret": -0.13}, {"id": "v197", "ph": "5c290a32", "equity": 99869724, "ret": -0.13}, {"id": "v198", "ph": "ffd1ee88", "equity": 99868022, "ret": -0.13}, {"id": "v199", "ph": "390bfab3", "equity": 99870054, "ret": -0.13}, {"id": "v200", "ph": "8bbb6ec7", "equity": 99869288, "ret": -0.13}, {"id": "v201", "ph": "cb8a413e", "equity": 99869724, "ret": -0.13}, {"id": "v202", "ph": "a528b806", "equity": 99868022, "ret": -0.13}, {"id": "v205", "ph": "02e5a3f5", "equity": 99869724, "ret": -0.13}, {"id": "v206", "ph": "16f62ab7", "equity": 99868022, "ret": -0.13}, {"id": "v207", "ph": "0f6601a0", "equity": 99870054, "ret": -0.13}, {"id": "v208", "ph": "445623de", "equity": 99869288, "ret": -0.13}, {"id": "v209", "ph": "8730802d", "equity": 99870054, "ret": -0.13}, {"id": "v210", "ph": "6f533a9b", "equity": 99869288, "ret": -0.13}, {"id": "v211", "ph": "9227673c", "equity": 99869724, "ret": -0.13}, {"id": "v212", "ph": "b9e1e8d1", "equity": 99868022, "ret": -0.13}, {"id": "v217", "ph": "4c547a61", "equity": 99870054, "ret": -0.13}, {"id": "v218", "ph": "7304d2d4", "equity": 99870054, "ret": -0.13}, {"id": "v219", "ph": "426d3834", "equity": 99869288, "ret": -0.13}, {"id": "v220", "ph": "565c27a7", "equity": 99869288, "ret": -0.13}, {"id": "v221", "ph": "cd2eef94", "equity": 99869288, "ret": -0.13}, {"id": "v222", "ph": "55de9eca", "equity": 99869288, "ret": -0.13}, {"id": "v223", "ph": "b57356b8", "equity": 99870054, "ret": -0.13}, {"id": "v224", "ph": "888ab069", "equity": 99870054, "ret": -0.13}, {"id": "v225", "ph": "e9f40f62", "equity": 99869288, "ret": -0.13}, {"id": "v226", "ph": "98fd37a4", "equity": 99869288, "ret": -0.13}, {"id": "v227", "ph": "9454b07a", "equity": 99869288, "ret": -0.13}, {"id": "v228", "ph": "caa54387", "equity": 99869288, "ret": -0.13}, {"id": "v229", "ph": "d9261dfb", "equity": 99870054, "ret": -0.13}, {"id": "v230", "ph": "141579fe", "equity": 99870054, "ret": -0.13}, {"id": "v231", "ph": "cd9469fa", "equity": 99869288, "ret": -0.13}, {"id": "v232", "ph": "6de1fffa", "equity": 99869288, "ret": -0.13}, {"id": "v233", "ph": "941006e0", "equity": 99869288, "ret": -0.13}, {"id": "v234", "ph": "9a289d18", "equity": 99869288, "ret": -0.13}, {"id": "v235", "ph": "3e6c1666", "equity": 99870054, "ret": -0.13}, {"id": "v236", "ph": "f9c75560", "equity": 99870054, "ret": -0.13}, {"id": "v237", "ph": "a10d68cf", "equity": 99869288, "ret": -0.13}, {"id": "v238", "ph": "f1a74611", "equity": 99869288, "ret": -0.13}, {"id": "v239", "ph": "96e693c4", "equity": 99869288, "ret": -0.13}, {"id": "v240", "ph": "db1869eb", "equity": 99869288, "ret": -0.13}, {"id": "v265", "ph": "7faed59d", "equity": 99870054, "ret": -0.13}, {"id": "v266", "ph": "c133b585", "equity": 99870054, "ret": -0.13}, {"id": "v267", "ph": "766c47d7", "equity": 99869288, "ret": -0.13}, {"id": "v268", "ph": "9736502d", "equity": 99869288, "ret": -0.13}, {"id": "v269", "ph": "c0c861c4", "equity": 99869288, "ret": -0.13}, {"id": "v270", "ph": "1ce9fd2b", "equity": 99869288, "ret": -0.13}, {"id": "v271", "ph": "2b9ccdcd", "equity": 99870054, "ret": -0.13}, {"id": "v272", "ph": "2ed2027f", "equity": 99870054, "ret": -0.13}, {"id": "v273", "ph": "c726e8d5", "equity": 99869288, "ret": -0.13}, {"id": "v274", "ph": "62b011c8", "equity": 99869288, "ret": -0.13}, {"id": "v275", "ph": "3ebf0d91", "equity": 99869288, "ret": -0.13}, {"id": "v276", "ph": "51425eab", "equity": 99869288, "ret": -0.13}, {"id": "v277", "ph": "488b612a", "equity": 99870054, "ret": -0.13}, {"id": "v278", "ph": "861fb42b", "equity": 99870054, "ret": -0.13}, {"id": "v279", "ph": "37e203bb", "equity": 99869288, "ret": -0.13}, {"id": "v280", "ph": "60411037", "equity": 99869288, "ret": -0.13}, {"id": "v281", "ph": "7d9e5a9d", "equity": 99869288, "ret": -0.13}, {"id": "v282", "ph": "9ddd111d", "equity": 99869288, "ret": -0.13}, {"id": "v283", "ph": "479e4b25", "equity": 99870054, "ret": -0.13}, {"id": "v284", "ph": "261c5d58", "equity": 99870054, "ret": -0.13}, {"id": "v285", "ph": "962e35cd", "equity": 99869288, "ret": -0.13}, {"id": "v286", "ph": "4f6101e9", "equity": 99869288, "ret": -0.13}, {"id": "v287", "ph": "3bf14815", "equity": 99869288, "ret": -0.13}, {"id": "v288", "ph": "1c732194", "equity": 99869288, "ret": -0.13}, {"id": "v301", "ph": "30da2021", "equity": 99870054, "ret": -0.13}, {"id": "v303", "ph": "1a084164", "equity": 99869305, "ret": -0.13}, {"id": "v1", "ph": "4874f4c9", "equity": 99839277, "ret": -0.16}, {"id": "v5", "ph": "ec2eb05a", "equity": 99839277, "ret": -0.16}, {"id": "v10", "ph": "e48c1012", "equity": 99839277, "ret": -0.16}, {"id": "v36", "ph": "feebff1a", "equity": 99838834, "ret": -0.16}, {"id": "v37", "ph": "fb2247aa", "equity": 99839277, "ret": -0.16}, {"id": "v38", "ph": "9b9083ae", "equity": 99839277, "ret": -0.16}, {"id": "v45", "ph": "964276a8", "equity": 99839277, "ret": -0.16}, {"id": "v46", "ph": "7dc0e360", "equity": 99839277, "ret": -0.16}, {"id": "v55", "ph": "2c44de9b", "equity": 99839277, "ret": -0.16}, {"id": "v56", "ph": "5d99704f", "equity": 99839277, "ret": -0.16}, {"id": "v107", "ph": "be5cd36b", "equity": 99838834, "ret": -0.16}, {"id": "v108", "ph": "67a6679a", "equity": 99837901, "ret": -0.16}, {"id": "v109", "ph": "4c69fc95", "equity": 99838342, "ret": -0.16}, {"id": "v110", "ph": "8164d748", "equity": 99837673, "ret": -0.16}, {"id": "v111", "ph": "826e3d17", "equity": 99837673, "ret": -0.16}, {"id": "v112", "ph": "4cd47646", "equity": 99837673, "ret": -0.16}, {"id": "v113", "ph": "5b43d0bc", "equity": 99838342, "ret": -0.16}, {"id": "v114", "ph": "8686c36c", "equity": 99837899, "ret": -0.16}, {"id": "v115", "ph": "e1790a5a", "equity": 99838342, "ret": -0.16}, {"id": "v116", "ph": "e73fef98", "equity": 99838342, "ret": -0.16}, {"id": "v118", "ph": "538b63b9", "equity": 99838342, "ret": -0.16}, {"id": "v131", "ph": "5f8c7082", "equity": 99838342, "ret": -0.16}, {"id": "v138", "ph": "e3acb223", "equity": 99838342, "ret": -0.16}, {"id": "v143", "ph": "5cf8f13a", "equity": 99837899, "ret": -0.16}, {"id": "v144", "ph": "6ffe4183", "equity": 99837899, "ret": -0.16}, {"id": "v145", "ph": "a89d85fc", "equity": 99839277, "ret": -0.16}, {"id": "v146", "ph": "071b9cb1", "equity": 99838342, "ret": -0.16}, {"id": "v147", "ph": "2fbeeedb", "equity": 99838607, "ret": -0.16}, {"id": "v148", "ph": "ada71802", "equity": 99836740, "ret": -0.16}, {"id": "v149", "ph": "c5329f8d", "equity": 99838607, "ret": -0.16}, {"id": "v150", "ph": "be41b974", "equity": 99836740, "ret": -0.16}, {"id": "v151", "ph": "2eb1dd06", "equity": 99838607, "ret": -0.16}, {"id": "v152", "ph": "5d2df346", "equity": 99836740, "ret": -0.16}, {"id": "v153", "ph": "49fd09d9", "equity": 99839277, "ret": -0.16}, {"id": "v154", "ph": "7a3a7788", "equity": 99838342, "ret": -0.16}, {"id": "v155", "ph": "31c0d84e", "equity": 99838834, "ret": -0.16}, {"id": "v156", "ph": "3f7bcd1b", "equity": 99836966, "ret": -0.16}, {"id": "v157", "ph": "80f3e23b", "equity": 99839277, "ret": -0.16}, {"id": "v158", "ph": "7e56eae3", "equity": 99838342, "ret": -0.16}, {"id": "v159", "ph": "af80c67a", "equity": 99839277, "ret": -0.16}, {"id": "v160", "ph": "b03f5295", "equity": 99838342, "ret": -0.16}, {"id": "v163", "ph": "452ab819", "equity": 99839277, "ret": -0.16}, {"id": "v164", "ph": "331cec1f", "equity": 99838342, "ret": -0.16}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99839277, "ret": -0.16}, {"id": "v190", "ph": "e14af339", "equity": 99838342, "ret": -0.16}, {"id": "v203", "ph": "2071defa", "equity": 99839277, "ret": -0.16}, {"id": "v204", "ph": "434e2f7a", "equity": 99838342, "ret": -0.16}, {"id": "v213", "ph": "0e1d8e45", "equity": 99838834, "ret": -0.16}, {"id": "v214", "ph": "0fb624bf", "equity": 99836966, "ret": -0.16}, {"id": "v215", "ph": "a904a49d", "equity": 99838834, "ret": -0.16}, {"id": "v216", "ph": "ee298bd3", "equity": 99836966, "ret": -0.16}, {"id": "v241", "ph": "52162002", "equity": 99839277, "ret": -0.16}, {"id": "v242", "ph": "e6c70cac", "equity": 99839277, "ret": -0.16}, {"id": "v243", "ph": "fa7a545a", "equity": 99838342, "ret": -0.16}, {"id": "v244", "ph": "520c5a65", "equity": 99838342, "ret": -0.16}, {"id": "v245", "ph": "ac84324f", "equity": 99838342, "ret": -0.16}, {"id": "v246", "ph": "618ddf71", "equity": 99838342, "ret": -0.16}, {"id": "v247", "ph": "ba973fa6", "equity": 99839277, "ret": -0.16}, {"id": "v248", "ph": "9ca5e3dc", "equity": 99839277, "ret": -0.16}, {"id": "v249", "ph": "36a32ca0", "equity": 99838342, "ret": -0.16}, {"id": "v250", "ph": "b37976b8", "equity": 99838342, "ret": -0.16}, {"id": "v251", "ph": "8c5a06da", "equity": 99838342, "ret": -0.16}, {"id": "v252", "ph": "381a65d1", "equity": 99838342, "ret": -0.16}, {"id": "v253", "ph": "87bd57d6", "equity": 99839277, "ret": -0.16}, {"id": "v254", "ph": "75e53118", "equity": 99839277, "ret": -0.16}, {"id": "v255", "ph": "92e3c5e0", "equity": 99838342, "ret": -0.16}, {"id": "v256", "ph": "e583f1dd", "equity": 99838342, "ret": -0.16}, {"id": "v257", "ph": "7fa33f5b", "equity": 99838342, "ret": -0.16}, {"id": "v258", "ph": "0b19bb06", "equity": 99838342, "ret": -0.16}, {"id": "v259", "ph": "178a1fe3", "equity": 99839277, "ret": -0.16}, {"id": "v260", "ph": "bab317db", "equity": 99839277, "ret": -0.16}, {"id": "v261", "ph": "965786e6", "equity": 99838342, "ret": -0.16}, {"id": "v262", "ph": "e07faa54", "equity": 99838342, "ret": -0.16}, {"id": "v263", "ph": "ca392811", "equity": 99838342, "ret": -0.16}, {"id": "v264", "ph": "8c65e60d", "equity": 99838342, "ret": -0.16}, {"id": "v298", "ph": "5d4bbec0", "equity": 99278910, "ret": -0.72}, {"id": "v299", "ph": "25046b1a", "equity": 99269453, "ret": -0.73}, {"id": "v296", "ph": "4c554378", "equity": 98793078, "ret": -1.21}], "20260618": [{"id": "v299", "ph": "25046b1a", "equity": 100522238, "ret": 0.52}, {"id": "v40", "ph": "70731d89", "equity": 100349540, "ret": 0.35}, {"id": "v42", "ph": "f36fddc6", "equity": 100349540, "ret": 0.35}, {"id": "v44", "ph": "364ea434", "equity": 100349540, "ret": 0.35}, {"id": "v48", "ph": "18854c6a", "equity": 100115675, "ret": 0.12}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100115675, "ret": 0.12}, {"id": "v148", "ph": "ada71802", "equity": 100083234, "ret": 0.08}, {"id": "v150", "ph": "be41b974", "equity": 100083234, "ret": 0.08}, {"id": "v152", "ph": "5d2df346", "equity": 100083234, "ret": 0.08}, {"id": "v90", "ph": "86e09c47", "equity": 100043354, "ret": 0.04}, {"id": "v98", "ph": "266fc53f", "equity": 100043354, "ret": 0.04}, {"id": "v49", "ph": "cdba73e0", "equity": 100000000, "ret": 0.0}, {"id": "v51", "ph": "21a98e46", "equity": 100000000, "ret": 0.0}, {"id": "v81", "ph": "a6eac1e4", "equity": 100000000, "ret": 0.0}, {"id": "v91", "ph": "5674a3d7", "equity": 100000000, "ret": 0.0}, {"id": "v95", "ph": "7e28e756", "equity": 100000000, "ret": 0.0}, {"id": "v302", "ph": "3f30502d", "equity": 99947951, "ret": -0.05}, {"id": "v28", "ph": "28e87677", "equity": 99943690, "ret": -0.06}, {"id": "v7", "ph": "de835eae", "equity": 99934863, "ret": -0.07}, {"id": "v8", "ph": "18c6740b", "equity": 99934863, "ret": -0.07}, {"id": "v23", "ph": "aec632b1", "equity": 99934863, "ret": -0.07}, {"id": "v30", "ph": "df71f475", "equity": 99934863, "ret": -0.07}, {"id": "v156", "ph": "3f7bcd1b", "equity": 99921725, "ret": -0.08}, {"id": "v214", "ph": "0fb624bf", "equity": 99921725, "ret": -0.08}, {"id": "v108", "ph": "67a6679a", "equity": 99911859, "ret": -0.09}, {"id": "v9", "ph": "141268ab", "equity": 99866254, "ret": -0.13}, {"id": "v11", "ph": "e4bb2e3e", "equity": 99866254, "ret": -0.13}, {"id": "v12", "ph": "f166fb0e", "equity": 99866254, "ret": -0.13}, {"id": "v32", "ph": "153055e6", "equity": 99866254, "ret": -0.13}, {"id": "v33", "ph": "97ad2410", "equity": 99866254, "ret": -0.13}, {"id": "v53", "ph": "2391ee16", "equity": 99866254, "ret": -0.13}, {"id": "v57", "ph": "e7e98b6d", "equity": 99866254, "ret": -0.13}, {"id": "v59", "ph": "1858e2ec", "equity": 99866254, "ret": -0.13}, {"id": "v99", "ph": "fb39409b", "equity": 99866254, "ret": -0.13}, {"id": "v101", "ph": "c4354346", "equity": 99866254, "ret": -0.13}, {"id": "v136", "ph": "ceb32a66", "equity": 99874338, "ret": -0.13}, {"id": "v161", "ph": "ed5677e6", "equity": 99866254, "ret": -0.13}, {"id": "v165", "ph": "8f862b27", "equity": 99866254, "ret": -0.13}, {"id": "v167", "ph": "b6d6aed8", "equity": 99866254, "ret": -0.13}, {"id": "v198", "ph": "ffd1ee88", "equity": 99869669, "ret": -0.13}, {"id": "v199", "ph": "390bfab3", "equity": 99866254, "ret": -0.13}, {"id": "v206", "ph": "16f62ab7", "equity": 99869669, "ret": -0.13}, {"id": "v207", "ph": "0f6601a0", "equity": 99866254, "ret": -0.13}, {"id": "v209", "ph": "8730802d", "equity": 99866254, "ret": -0.13}, {"id": "v217", "ph": "4c547a61", "equity": 99866254, "ret": -0.13}, {"id": "v218", "ph": "7304d2d4", "equity": 99866254, "ret": -0.13}, {"id": "v223", "ph": "b57356b8", "equity": 99866254, "ret": -0.13}, {"id": "v224", "ph": "888ab069", "equity": 99866254, "ret": -0.13}, {"id": "v229", "ph": "d9261dfb", "equity": 99866254, "ret": -0.13}, {"id": "v230", "ph": "141579fe", "equity": 99866254, "ret": -0.13}, {"id": "v235", "ph": "3e6c1666", "equity": 99866254, "ret": -0.13}, {"id": "v236", "ph": "f9c75560", "equity": 99866254, "ret": -0.13}, {"id": "v265", "ph": "7faed59d", "equity": 99866254, "ret": -0.13}, {"id": "v266", "ph": "c133b585", "equity": 99866254, "ret": -0.13}, {"id": "v271", "ph": "2b9ccdcd", "equity": 99866254, "ret": -0.13}, {"id": "v272", "ph": "2ed2027f", "equity": 99866254, "ret": -0.13}, {"id": "v277", "ph": "488b612a", "equity": 99866254, "ret": -0.13}, {"id": "v278", "ph": "861fb42b", "equity": 99866254, "ret": -0.13}, {"id": "v283", "ph": "479e4b25", "equity": 99866254, "ret": -0.13}, {"id": "v284", "ph": "261c5d58", "equity": 99866254, "ret": -0.13}, {"id": "v301", "ph": "30da2021", "equity": 99866254, "ret": -0.13}, {"id": "v88", "ph": "733579ce", "equity": 99861585, "ret": -0.14}, {"id": "v94", "ph": "3e5d6b8a", "equity": 99861585, "ret": -0.14}, {"id": "v104", "ph": "013c3fde", "equity": 99861585, "ret": -0.14}, {"id": "v115", "ph": "e1790a5a", "equity": 99844442, "ret": -0.16}, {"id": "v116", "ph": "e73fef98", "equity": 99844442, "ret": -0.16}, {"id": "v131", "ph": "5f8c7082", "equity": 99844442, "ret": -0.16}, {"id": "v138", "ph": "e3acb223", "equity": 99844442, "ret": -0.16}, {"id": "v1", "ph": "4874f4c9", "equity": 99834577, "ret": -0.17}, {"id": "v5", "ph": "ec2eb05a", "equity": 99834577, "ret": -0.17}, {"id": "v10", "ph": "e48c1012", "equity": 99834577, "ret": -0.17}, {"id": "v37", "ph": "fb2247aa", "equity": 99834577, "ret": -0.17}, {"id": "v45", "ph": "964276a8", "equity": 99834577, "ret": -0.17}, {"id": "v55", "ph": "2c44de9b", "equity": 99834577, "ret": -0.17}, {"id": "v145", "ph": "a89d85fc", "equity": 99834577, "ret": -0.17}, {"id": "v153", "ph": "49fd09d9", "equity": 99834577, "ret": -0.17}, {"id": "v157", "ph": "80f3e23b", "equity": 99834577, "ret": -0.17}, {"id": "v159", "ph": "af80c67a", "equity": 99834577, "ret": -0.17}, {"id": "v163", "ph": "452ab819", "equity": 99834577, "ret": -0.17}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99834577, "ret": -0.17}, {"id": "v203", "ph": "2071defa", "equity": 99834577, "ret": -0.17}, {"id": "v241", "ph": "52162002", "equity": 99834577, "ret": -0.17}, {"id": "v242", "ph": "e6c70cac", "equity": 99834577, "ret": -0.17}, {"id": "v247", "ph": "ba973fa6", "equity": 99834577, "ret": -0.17}, {"id": "v248", "ph": "9ca5e3dc", "equity": 99834577, "ret": -0.17}, {"id": "v253", "ph": "87bd57d6", "equity": 99834577, "ret": -0.17}, {"id": "v254", "ph": "75e53118", "equity": 99834577, "ret": -0.17}, {"id": "v259", "ph": "178a1fe3", "equity": 99834577, "ret": -0.17}, {"id": "v260", "ph": "bab317db", "equity": 99834577, "ret": -0.17}, {"id": "v89", "ph": "c49d5680", "equity": 99817776, "ret": -0.18}, {"id": "v97", "ph": "ebf31977", "equity": 99817776, "ret": -0.18}, {"id": "v47", "ph": "ed758fcf", "equity": 99773192, "ret": -0.23}, {"id": "v105", "ph": "88395429", "equity": 99773192, "ret": -0.23}, {"id": "v27", "ph": "33d43bc6", "equity": 99761770, "ret": -0.24}, {"id": "v31", "ph": "3dc99490", "equity": 99761770, "ret": -0.24}, {"id": "v135", "ph": "53f4c78c", "equity": 99762008, "ret": -0.24}, {"id": "v139", "ph": "cfbc79a5", "equity": 99762008, "ret": -0.24}, {"id": "v26", "ph": "2e5f3fac", "equity": 99753924, "ret": -0.25}, {"id": "v29", "ph": "e46149f5", "equity": 99753924, "ret": -0.25}, {"id": "v34", "ph": "d77f522d", "equity": 99753924, "ret": -0.25}, {"id": "v87", "ph": "c0be98c0", "equity": 99753924, "ret": -0.25}, {"id": "v93", "ph": "f10d4e45", "equity": 99753924, "ret": -0.25}, {"id": "v103", "ph": "75b0a37c", "equity": 99753924, "ret": -0.25}, {"id": "v195", "ph": "dd89cf59", "equity": 99753924, "ret": -0.25}, {"id": "v197", "ph": "5c290a32", "equity": 99753924, "ret": -0.25}, {"id": "v201", "ph": "cb8a413e", "equity": 99753924, "ret": -0.25}, {"id": "v205", "ph": "02e5a3f5", "equity": 99753924, "ret": -0.25}, {"id": "v211", "ph": "9227673c", "equity": 99753924, "ret": -0.25}, {"id": "v6", "ph": "e96ce9e2", "equity": 99708359, "ret": -0.29}, {"id": "v35", "ph": "6a183375", "equity": 99708359, "ret": -0.29}, {"id": "v114", "ph": "8686c36c", "equity": 99693599, "ret": -0.31}, {"id": "v143", "ph": "5cf8f13a", "equity": 99693599, "ret": -0.31}, {"id": "v36", "ph": "feebff1a", "equity": 99683734, "ret": -0.32}, {"id": "v107", "ph": "be5cd36b", "equity": 99683734, "ret": -0.32}, {"id": "v155", "ph": "31c0d84e", "equity": 99683734, "ret": -0.32}, {"id": "v213", "ph": "0e1d8e45", "equity": 99683734, "ret": -0.32}, {"id": "v215", "ph": "a904a49d", "equity": 99683734, "ret": -0.32}, {"id": "v39", "ph": "11c27236", "equity": 99623306, "ret": -0.38}, {"id": "v41", "ph": "e9d84e84", "equity": 99623306, "ret": -0.38}, {"id": "v43", "ph": "94ea3b53", "equity": 99623306, "ret": -0.38}, {"id": "v110", "ph": "8164d748", "equity": 99616573, "ret": -0.38}, {"id": "v111", "ph": "826e3d17", "equity": 99616573, "ret": -0.38}, {"id": "v112", "ph": "4cd47646", "equity": 99616573, "ret": -0.38}, {"id": "v147", "ph": "2fbeeedb", "equity": 99606707, "ret": -0.39}, {"id": "v149", "ph": "c5329f8d", "equity": 99606707, "ret": -0.39}, {"id": "v151", "ph": "2eb1dd06", "equity": 99606707, "ret": -0.39}, {"id": "v2", "ph": "bab0fc2c", "equity": 99558474, "ret": -0.44}, {"id": "v3", "ph": "81d17cca", "equity": 99558474, "ret": -0.44}, {"id": "v4", "ph": "b6219595", "equity": 99558474, "ret": -0.44}, {"id": "v92", "ph": "14a13097", "equity": 99557044, "ret": -0.44}, {"id": "v200", "ph": "8bbb6ec7", "equity": 99487901, "ret": -0.51}, {"id": "v54", "ph": "b975742e", "equity": 99479817, "ret": -0.52}, {"id": "v58", "ph": "f1e52f55", "equity": 99479817, "ret": -0.52}, {"id": "v60", "ph": "52560b06", "equity": 99479817, "ret": -0.52}, {"id": "v100", "ph": "ffa9571a", "equity": 99479817, "ret": -0.52}, {"id": "v102", "ph": "e1601afe", "equity": 99479817, "ret": -0.52}, {"id": "v50", "ph": "690a50b5", "equity": 99473000, "ret": -0.53}, {"id": "v52", "ph": "c1939d0b", "equity": 99473000, "ret": -0.53}, {"id": "v82", "ph": "01847af6", "equity": 99473000, "ret": -0.53}, {"id": "v96", "ph": "095b119f", "equity": 99473000, "ret": -0.53}, {"id": "v117", "ph": "c4ae8a11", "equity": 99411094, "ret": -0.59}, {"id": "v119", "ph": "ed2208f1", "equity": 99411094, "ret": -0.59}, {"id": "v120", "ph": "d25ca8b0", "equity": 99411094, "ret": -0.59}, {"id": "v140", "ph": "52175b2b", "equity": 99411094, "ret": -0.59}, {"id": "v141", "ph": "47f30434", "equity": 99411094, "ret": -0.59}, {"id": "v196", "ph": "a44aeef1", "equity": 99406425, "ret": -0.59}, {"id": "v202", "ph": "a528b806", "equity": 99406425, "ret": -0.59}, {"id": "v212", "ph": "b9e1e8d1", "equity": 99406425, "ret": -0.59}, {"id": "v219", "ph": "426d3834", "equity": 99411094, "ret": -0.59}, {"id": "v220", "ph": "565c27a7", "equity": 99411094, "ret": -0.59}, {"id": "v225", "ph": "e9f40f62", "equity": 99411094, "ret": -0.59}, {"id": "v226", "ph": "98fd37a4", "equity": 99411094, "ret": -0.59}, {"id": "v231", "ph": "cd9469fa", "equity": 99411094, "ret": -0.59}, {"id": "v232", "ph": "6de1fffa", "equity": 99411094, "ret": -0.59}, {"id": "v237", "ph": "a10d68cf", "equity": 99411094, "ret": -0.59}, {"id": "v238", "ph": "f1a74611", "equity": 99411094, "ret": -0.59}, {"id": "v267", "ph": "766c47d7", "equity": 99411094, "ret": -0.59}, {"id": "v268", "ph": "9736502d", "equity": 99411094, "ret": -0.59}, {"id": "v273", "ph": "c726e8d5", "equity": 99411094, "ret": -0.59}, {"id": "v274", "ph": "62b011c8", "equity": 99411094, "ret": -0.59}, {"id": "v279", "ph": "37e203bb", "equity": 99411094, "ret": -0.59}, {"id": "v280", "ph": "60411037", "equity": 99411094, "ret": -0.59}, {"id": "v285", "ph": "962e35cd", "equity": 99411094, "ret": -0.59}, {"id": "v286", "ph": "4f6101e9", "equity": 99411094, "ret": -0.59}, {"id": "v303", "ph": "1a084164", "equity": 99410912, "ret": -0.59}, {"id": "v158", "ph": "7e56eae3", "equity": 99382788, "ret": -0.62}, {"id": "v160", "ph": "b03f5295", "equity": 99382788, "ret": -0.62}, {"id": "v190", "ph": "e14af339", "equity": 99382788, "ret": -0.62}, {"id": "v204", "ph": "434e2f7a", "equity": 99382788, "ret": -0.62}, {"id": "v134", "ph": "afbb4ab8", "equity": 99298764, "ret": -0.7}, {"id": "v137", "ph": "60ec806f", "equity": 99298764, "ret": -0.7}, {"id": "v142", "ph": "44fae695", "equity": 99298764, "ret": -0.7}, {"id": "v216", "ph": "ee298bd3", "equity": 99295527, "ret": -0.7}, {"id": "v38", "ph": "9b9083ae", "equity": 99223798, "ret": -0.78}, {"id": "v46", "ph": "7dc0e360", "equity": 99223798, "ret": -0.78}, {"id": "v56", "ph": "5d99704f", "equity": 99223798, "ret": -0.78}, {"id": "v221", "ph": "cd2eef94", "equity": 99186752, "ret": -0.81}, {"id": "v227", "ph": "9454b07a", "equity": 99186752, "ret": -0.81}, {"id": "v233", "ph": "941006e0", "equity": 99186752, "ret": -0.81}, {"id": "v239", "ph": "96e693c4", "equity": 99186752, "ret": -0.81}, {"id": "v269", "ph": "c0c861c4", "equity": 99186752, "ret": -0.81}, {"id": "v275", "ph": "3ebf0d91", "equity": 99186752, "ret": -0.81}, {"id": "v281", "ph": "7d9e5a9d", "equity": 99186752, "ret": -0.81}, {"id": "v287", "ph": "3bf14815", "equity": 99186752, "ret": -0.81}, {"id": "v144", "ph": "6ffe4183", "equity": 99068189, "ret": -0.93}, {"id": "v109", "ph": "4c69fc95", "equity": 99020588, "ret": -0.98}, {"id": "v113", "ph": "5b43d0bc", "equity": 99020588, "ret": -0.98}, {"id": "v118", "ph": "538b63b9", "equity": 99020588, "ret": -0.98}, {"id": "v162", "ph": "b8f71c74", "equity": 99024658, "ret": -0.98}, {"id": "v166", "ph": "f684401e", "equity": 99024658, "ret": -0.98}, {"id": "v168", "ph": "81099b26", "equity": 99024658, "ret": -0.98}, {"id": "v208", "ph": "445623de", "equity": 99024658, "ret": -0.98}, {"id": "v210", "ph": "6f533a9b", "equity": 99024658, "ret": -0.98}, {"id": "v222", "ph": "55de9eca", "equity": 99024658, "ret": -0.98}, {"id": "v228", "ph": "caa54387", "equity": 99024658, "ret": -0.98}, {"id": "v234", "ph": "9a289d18", "equity": 99024658, "ret": -0.98}, {"id": "v240", "ph": "db1869eb", "equity": 99024658, "ret": -0.98}, {"id": "v243", "ph": "fa7a545a", "equity": 99020588, "ret": -0.98}, {"id": "v244", "ph": "520c5a65", "equity": 99020588, "ret": -0.98}, {"id": "v249", "ph": "36a32ca0", "equity": 99020588, "ret": -0.98}, {"id": "v250", "ph": "b37976b8", "equity": 99020588, "ret": -0.98}, {"id": "v255", "ph": "92e3c5e0", "equity": 99020588, "ret": -0.98}, {"id": "v256", "ph": "e583f1dd", "equity": 99020588, "ret": -0.98}, {"id": "v261", "ph": "965786e6", "equity": 99020588, "ret": -0.98}, {"id": "v262", "ph": "e07faa54", "equity": 99020588, "ret": -0.98}, {"id": "v270", "ph": "1ce9fd2b", "equity": 99024658, "ret": -0.98}, {"id": "v276", "ph": "51425eab", "equity": 99024658, "ret": -0.98}, {"id": "v282", "ph": "9ddd111d", "equity": 99024658, "ret": -0.98}, {"id": "v288", "ph": "1c732194", "equity": 99024658, "ret": -0.98}, {"id": "v245", "ph": "ac84324f", "equity": 98570594, "ret": -1.43}, {"id": "v251", "ph": "8c5a06da", "equity": 98570594, "ret": -1.43}, {"id": "v257", "ph": "7fa33f5b", "equity": 98570594, "ret": -1.43}, {"id": "v263", "ph": "ca392811", "equity": 98570594, "ret": -1.43}, {"id": "v146", "ph": "071b9cb1", "equity": 98408500, "ret": -1.59}, {"id": "v154", "ph": "7a3a7788", "equity": 98408500, "ret": -1.59}, {"id": "v164", "ph": "331cec1f", "equity": 98408500, "ret": -1.59}, {"id": "v246", "ph": "618ddf71", "equity": 98408500, "ret": -1.59}, {"id": "v252", "ph": "381a65d1", "equity": 98408500, "ret": -1.59}, {"id": "v258", "ph": "0b19bb06", "equity": 98408500, "ret": -1.59}, {"id": "v264", "ph": "8c65e60d", "equity": 98408500, "ret": -1.59}, {"id": "v300", "ph": "c6ddc17b", "equity": 98414155, "ret": -1.59}, {"id": "v296", "ph": "4c554378", "equity": 98369185, "ret": -1.63}, {"id": "v298", "ph": "5d4bbec0", "equity": 97903330, "ret": -2.1}], "20260619": [{"id": "v81", "ph": "a6eac1e4", "equity": 100012103, "ret": 0.01}, {"id": "v91", "ph": "5674a3d7", "equity": 100012103, "ret": 0.01}, {"id": "v95", "ph": "7e28e756", "equity": 100012103, "ret": 0.01}, {"id": "v49", "ph": "cdba73e0", "equity": 99771263, "ret": -0.23}, {"id": "v51", "ph": "21a98e46", "equity": 99771263, "ret": -0.23}, {"id": "v99", "ph": "fb39409b", "equity": 99699720, "ret": -0.3}, {"id": "v101", "ph": "c4354346", "equity": 99699720, "ret": -0.3}, {"id": "v199", "ph": "390bfab3", "equity": 99699720, "ret": -0.3}, {"id": "v207", "ph": "0f6601a0", "equity": 99699720, "ret": -0.3}, {"id": "v209", "ph": "8730802d", "equity": 99699720, "ret": -0.3}, {"id": "v28", "ph": "28e87677", "equity": 99582892, "ret": -0.42}, {"id": "v32", "ph": "153055e6", "equity": 99539606, "ret": -0.46}, {"id": "v33", "ph": "97ad2410", "equity": 99539606, "ret": -0.46}, {"id": "v89", "ph": "c49d5680", "equity": 99535129, "ret": -0.46}, {"id": "v97", "ph": "ebf31977", "equity": 99535129, "ret": -0.46}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99539444, "ret": -0.46}, {"id": "v203", "ph": "2071defa", "equity": 99539444, "ret": -0.46}, {"id": "v302", "ph": "3f30502d", "equity": 99534056, "ret": -0.47}, {"id": "v9", "ph": "141268ab", "equity": 99523104, "ret": -0.48}, {"id": "v11", "ph": "e4bb2e3e", "equity": 99523104, "ret": -0.48}, {"id": "v12", "ph": "f166fb0e", "equity": 99523104, "ret": -0.48}, {"id": "v53", "ph": "2391ee16", "equity": 99523104, "ret": -0.48}, {"id": "v57", "ph": "e7e98b6d", "equity": 99523104, "ret": -0.48}, {"id": "v59", "ph": "1858e2ec", "equity": 99523104, "ret": -0.48}, {"id": "v161", "ph": "ed5677e6", "equity": 99523104, "ret": -0.48}, {"id": "v165", "ph": "8f862b27", "equity": 99523104, "ret": -0.48}, {"id": "v167", "ph": "b6d6aed8", "equity": 99523104, "ret": -0.48}, {"id": "v217", "ph": "4c547a61", "equity": 99511038, "ret": -0.49}, {"id": "v218", "ph": "7304d2d4", "equity": 99511038, "ret": -0.49}, {"id": "v23", "ph": "aec632b1", "equity": 99482492, "ret": -0.52}, {"id": "v30", "ph": "df71f475", "equity": 99482492, "ret": -0.52}, {"id": "v301", "ph": "30da2021", "equity": 99470408, "ret": -0.53}, {"id": "v7", "ph": "de835eae", "equity": 99459988, "ret": -0.54}, {"id": "v8", "ph": "18c6740b", "equity": 99459988, "ret": -0.54}, {"id": "v87", "ph": "c0be98c0", "equity": 99461390, "ret": -0.54}, {"id": "v93", "ph": "f10d4e45", "equity": 99461390, "ret": -0.54}, {"id": "v103", "ph": "75b0a37c", "equity": 99461390, "ret": -0.54}, {"id": "v195", "ph": "dd89cf59", "equity": 99461390, "ret": -0.54}, {"id": "v197", "ph": "5c290a32", "equity": 99461390, "ret": -0.54}, {"id": "v201", "ph": "cb8a413e", "equity": 99461390, "ret": -0.54}, {"id": "v205", "ph": "02e5a3f5", "equity": 99461390, "ret": -0.54}, {"id": "v211", "ph": "9227673c", "equity": 99461390, "ret": -0.54}, {"id": "v223", "ph": "b57356b8", "equity": 99438670, "ret": -0.56}, {"id": "v224", "ph": "888ab069", "equity": 99438670, "ret": -0.56}, {"id": "v229", "ph": "d9261dfb", "equity": 99438670, "ret": -0.56}, {"id": "v230", "ph": "141579fe", "equity": 99438670, "ret": -0.56}, {"id": "v235", "ph": "3e6c1666", "equity": 99438670, "ret": -0.56}, {"id": "v236", "ph": "f9c75560", "equity": 99438670, "ret": -0.56}, {"id": "v265", "ph": "7faed59d", "equity": 99438670, "ret": -0.56}, {"id": "v266", "ph": "c133b585", "equity": 99438670, "ret": -0.56}, {"id": "v271", "ph": "2b9ccdcd", "equity": 99438670, "ret": -0.56}, {"id": "v272", "ph": "2ed2027f", "equity": 99438670, "ret": -0.56}, {"id": "v277", "ph": "488b612a", "equity": 99438670, "ret": -0.56}, {"id": "v278", "ph": "861fb42b", "equity": 99438670, "ret": -0.56}, {"id": "v283", "ph": "479e4b25", "equity": 99438670, "ret": -0.56}, {"id": "v284", "ph": "261c5d58", "equity": 99438670, "ret": -0.56}, {"id": "v105", "ph": "88395429", "equity": 99433845, "ret": -0.57}, {"id": "v1", "ph": "4874f4c9", "equity": 99368847, "ret": -0.63}, {"id": "v5", "ph": "ec2eb05a", "equity": 99368847, "ret": -0.63}, {"id": "v10", "ph": "e48c1012", "equity": 99368847, "ret": -0.63}, {"id": "v37", "ph": "fb2247aa", "equity": 99368847, "ret": -0.63}, {"id": "v45", "ph": "964276a8", "equity": 99368847, "ret": -0.63}, {"id": "v55", "ph": "2c44de9b", "equity": 99368847, "ret": -0.63}, {"id": "v145", "ph": "a89d85fc", "equity": 99368847, "ret": -0.63}, {"id": "v153", "ph": "49fd09d9", "equity": 99368847, "ret": -0.63}, {"id": "v163", "ph": "452ab819", "equity": 99368847, "ret": -0.63}, {"id": "v136", "ph": "ceb32a66", "equity": 99344140, "ret": -0.66}, {"id": "v26", "ph": "2e5f3fac", "equity": 99301276, "ret": -0.7}, {"id": "v29", "ph": "e46149f5", "equity": 99301276, "ret": -0.7}, {"id": "v34", "ph": "d77f522d", "equity": 99301276, "ret": -0.7}, {"id": "v157", "ph": "80f3e23b", "equity": 99298604, "ret": -0.7}, {"id": "v159", "ph": "af80c67a", "equity": 99298604, "ret": -0.7}, {"id": "v241", "ph": "52162002", "equity": 99284413, "ret": -0.72}, {"id": "v242", "ph": "e6c70cac", "equity": 99284413, "ret": -0.72}, {"id": "v247", "ph": "ba973fa6", "equity": 99284413, "ret": -0.72}, {"id": "v248", "ph": "9ca5e3dc", "equity": 99284413, "ret": -0.72}, {"id": "v253", "ph": "87bd57d6", "equity": 99284413, "ret": -0.72}, {"id": "v254", "ph": "75e53118", "equity": 99284413, "ret": -0.72}, {"id": "v259", "ph": "178a1fe3", "equity": 99284413, "ret": -0.72}, {"id": "v260", "ph": "bab317db", "equity": 99284413, "ret": -0.72}, {"id": "v107", "ph": "be5cd36b", "equity": 99219401, "ret": -0.78}, {"id": "v213", "ph": "0e1d8e45", "equity": 99219401, "ret": -0.78}, {"id": "v215", "ph": "a904a49d", "equity": 99219401, "ret": -0.78}, {"id": "v47", "ph": "ed758fcf", "equity": 99193004, "ret": -0.81}, {"id": "v299", "ph": "25046b1a", "equity": 99138724, "ret": -0.86}, {"id": "v27", "ph": "33d43bc6", "equity": 99107373, "ret": -0.89}, {"id": "v31", "ph": "3dc99490", "equity": 99107373, "ret": -0.89}, {"id": "v135", "ph": "53f4c78c", "equity": 99105810, "ret": -0.89}, {"id": "v139", "ph": "cfbc79a5", "equity": 99105810, "ret": -0.89}, {"id": "v131", "ph": "5f8c7082", "equity": 99082573, "ret": -0.92}, {"id": "v138", "ph": "e3acb223", "equity": 99082573, "ret": -0.92}, {"id": "v115", "ph": "e1790a5a", "equity": 99060069, "ret": -0.94}, {"id": "v116", "ph": "e73fef98", "equity": 99060069, "ret": -0.94}, {"id": "v36", "ph": "feebff1a", "equity": 99001064, "ret": -1.0}, {"id": "v155", "ph": "31c0d84e", "equity": 98978560, "ret": -1.02}, {"id": "v92", "ph": "14a13097", "equity": 98940531, "ret": -1.06}, {"id": "v35", "ph": "6a183375", "equity": 98905688, "ret": -1.09}, {"id": "v88", "ph": "733579ce", "equity": 98898771, "ret": -1.1}, {"id": "v94", "ph": "3e5d6b8a", "equity": 98898771, "ret": -1.1}, {"id": "v100", "ph": "ffa9571a", "equity": 98896303, "ret": -1.1}, {"id": "v102", "ph": "e1601afe", "equity": 98896303, "ret": -1.1}, {"id": "v104", "ph": "013c3fde", "equity": 98898771, "ret": -1.1}, {"id": "v147", "ph": "2fbeeedb", "equity": 98885377, "ret": -1.11}, {"id": "v149", "ph": "c5329f8d", "equity": 98885377, "ret": -1.11}, {"id": "v151", "ph": "2eb1dd06", "equity": 98885377, "ret": -1.11}, {"id": "v6", "ph": "e96ce9e2", "equity": 98883184, "ret": -1.12}, {"id": "v54", "ph": "b975742e", "equity": 98879801, "ret": -1.12}, {"id": "v58", "ph": "f1e52f55", "equity": 98879801, "ret": -1.12}, {"id": "v60", "ph": "52560b06", "equity": 98879801, "ret": -1.12}, {"id": "v90", "ph": "86e09c47", "equity": 98830140, "ret": -1.17}, {"id": "v98", "ph": "266fc53f", "equity": 98830140, "ret": -1.17}, {"id": "v39", "ph": "11c27236", "equity": 98778663, "ret": -1.22}, {"id": "v41", "ph": "e9d84e84", "equity": 98778663, "ret": -1.22}, {"id": "v43", "ph": "94ea3b53", "equity": 98778663, "ret": -1.22}, {"id": "v143", "ph": "5cf8f13a", "equity": 98762492, "ret": -1.24}, {"id": "v114", "ph": "8686c36c", "equity": 98739989, "ret": -1.26}, {"id": "v198", "ph": "ffd1ee88", "equity": 98703305, "ret": -1.3}, {"id": "v200", "ph": "8bbb6ec7", "equity": 98700837, "ret": -1.3}, {"id": "v206", "ph": "16f62ab7", "equity": 98703305, "ret": -1.3}, {"id": "v82", "ph": "01847af6", "equity": 98682113, "ret": -1.32}, {"id": "v96", "ph": "095b119f", "equity": 98682113, "ret": -1.32}, {"id": "v50", "ph": "690a50b5", "equity": 98659610, "ret": -1.34}, {"id": "v52", "ph": "c1939d0b", "equity": 98659610, "ret": -1.34}, {"id": "v110", "ph": "8164d748", "equity": 98646805, "ret": -1.35}, {"id": "v111", "ph": "826e3d17", "equity": 98646805, "ret": -1.35}, {"id": "v112", "ph": "4cd47646", "equity": 98646805, "ret": -1.35}, {"id": "v106", "ph": "d0f5fbc1", "equity": 98511272, "ret": -1.49}, {"id": "v48", "ph": "18854c6a", "equity": 98488769, "ret": -1.51}, {"id": "v2", "ph": "bab0fc2c", "equity": 98468880, "ret": -1.53}, {"id": "v3", "ph": "81d17cca", "equity": 98468880, "ret": -1.53}, {"id": "v4", "ph": "b6219595", "equity": 98468880, "ret": -1.53}, {"id": "v108", "ph": "67a6679a", "equity": 98463181, "ret": -1.54}, {"id": "v140", "ph": "52175b2b", "equity": 98333401, "ret": -1.67}, {"id": "v141", "ph": "47f30434", "equity": 98333401, "ret": -1.67}, {"id": "v117", "ph": "c4ae8a11", "equity": 98316898, "ret": -1.68}, {"id": "v119", "ph": "ed2208f1", "equity": 98316898, "ret": -1.68}, {"id": "v120", "ph": "d25ca8b0", "equity": 98316898, "ret": -1.68}, {"id": "v190", "ph": "e14af339", "equity": 98281253, "ret": -1.72}, {"id": "v204", "ph": "434e2f7a", "equity": 98281253, "ret": -1.72}, {"id": "v38", "ph": "9b9083ae", "equity": 98256402, "ret": -1.74}, {"id": "v46", "ph": "7dc0e360", "equity": 98256402, "ret": -1.74}, {"id": "v56", "ph": "5d99704f", "equity": 98256402, "ret": -1.74}, {"id": "v158", "ph": "7e56eae3", "equity": 98258749, "ret": -1.74}, {"id": "v160", "ph": "b03f5295", "equity": 98258749, "ret": -1.74}, {"id": "v303", "ph": "1a084164", "equity": 98252307, "ret": -1.75}, {"id": "v40", "ph": "70731d89", "equity": 98226593, "ret": -1.77}, {"id": "v42", "ph": "f36fddc6", "equity": 98226593, "ret": -1.77}, {"id": "v44", "ph": "364ea434", "equity": 98226593, "ret": -1.77}, {"id": "v219", "ph": "426d3834", "equity": 98233635, "ret": -1.77}, {"id": "v220", "ph": "565c27a7", "equity": 98233635, "ret": -1.77}, {"id": "v225", "ph": "e9f40f62", "equity": 98233635, "ret": -1.77}, {"id": "v226", "ph": "98fd37a4", "equity": 98233635, "ret": -1.77}, {"id": "v231", "ph": "cd9469fa", "equity": 98233635, "ret": -1.77}, {"id": "v232", "ph": "6de1fffa", "equity": 98233635, "ret": -1.77}, {"id": "v237", "ph": "a10d68cf", "equity": 98233635, "ret": -1.77}, {"id": "v238", "ph": "f1a74611", "equity": 98233635, "ret": -1.77}, {"id": "v267", "ph": "766c47d7", "equity": 98233635, "ret": -1.77}, {"id": "v268", "ph": "9736502d", "equity": 98233635, "ret": -1.77}, {"id": "v273", "ph": "c726e8d5", "equity": 98233635, "ret": -1.77}, {"id": "v274", "ph": "62b011c8", "equity": 98233635, "ret": -1.77}, {"id": "v279", "ph": "37e203bb", "equity": 98233635, "ret": -1.77}, {"id": "v280", "ph": "60411037", "equity": 98233635, "ret": -1.77}, {"id": "v285", "ph": "962e35cd", "equity": 98233635, "ret": -1.77}, {"id": "v286", "ph": "4f6101e9", "equity": 98233635, "ret": -1.77}, {"id": "v214", "ph": "0fb624bf", "equity": 98224647, "ret": -1.78}, {"id": "v156", "ph": "3f7bcd1b", "equity": 98202143, "ret": -1.8}, {"id": "v148", "ph": "ada71802", "equity": 98105237, "ret": -1.89}, {"id": "v150", "ph": "be41b974", "equity": 98105237, "ret": -1.89}, {"id": "v152", "ph": "5d2df346", "equity": 98105237, "ret": -1.89}, {"id": "v134", "ph": "afbb4ab8", "equity": 98095071, "ret": -1.9}, {"id": "v137", "ph": "60ec806f", "equity": 98095071, "ret": -1.9}, {"id": "v142", "ph": "44fae695", "equity": 98095071, "ret": -1.9}, {"id": "v221", "ph": "cd2eef94", "equity": 97811265, "ret": -2.19}, {"id": "v227", "ph": "9454b07a", "equity": 97811265, "ret": -2.19}, {"id": "v233", "ph": "941006e0", "equity": 97811265, "ret": -2.19}, {"id": "v239", "ph": "96e693c4", "equity": 97811265, "ret": -2.19}, {"id": "v269", "ph": "c0c861c4", "equity": 97811265, "ret": -2.19}, {"id": "v275", "ph": "3ebf0d91", "equity": 97811265, "ret": -2.19}, {"id": "v281", "ph": "7d9e5a9d", "equity": 97811265, "ret": -2.19}, {"id": "v287", "ph": "3bf14815", "equity": 97811265, "ret": -2.19}, {"id": "v144", "ph": "6ffe4183", "equity": 97714288, "ret": -2.29}, {"id": "v196", "ph": "a44aeef1", "equity": 97692640, "ret": -2.31}, {"id": "v202", "ph": "a528b806", "equity": 97692640, "ret": -2.31}, {"id": "v208", "ph": "445623de", "equity": 97690172, "ret": -2.31}, {"id": "v210", "ph": "6f533a9b", "equity": 97690172, "ret": -2.31}, {"id": "v212", "ph": "b9e1e8d1", "equity": 97692640, "ret": -2.31}, {"id": "v162", "ph": "b8f71c74", "equity": 97673670, "ret": -2.33}, {"id": "v166", "ph": "f684401e", "equity": 97673670, "ret": -2.33}, {"id": "v168", "ph": "81099b26", "equity": 97673670, "ret": -2.33}, {"id": "v222", "ph": "55de9eca", "equity": 97649183, "ret": -2.35}, {"id": "v228", "ph": "caa54387", "equity": 97649183, "ret": -2.35}, {"id": "v234", "ph": "9a289d18", "equity": 97649183, "ret": -2.35}, {"id": "v240", "ph": "db1869eb", "equity": 97649183, "ret": -2.35}, {"id": "v270", "ph": "1ce9fd2b", "equity": 97649183, "ret": -2.35}, {"id": "v276", "ph": "51425eab", "equity": 97649183, "ret": -2.35}, {"id": "v282", "ph": "9ddd111d", "equity": 97649183, "ret": -2.35}, {"id": "v288", "ph": "1c732194", "equity": 97649183, "ret": -2.35}, {"id": "v109", "ph": "4c69fc95", "equity": 97333763, "ret": -2.67}, {"id": "v113", "ph": "5b43d0bc", "equity": 97333763, "ret": -2.67}, {"id": "v118", "ph": "538b63b9", "equity": 97333763, "ret": -2.67}, {"id": "v296", "ph": "4c554378", "equity": 97307249, "ret": -2.69}, {"id": "v243", "ph": "fa7a545a", "equity": 97250574, "ret": -2.75}, {"id": "v244", "ph": "520c5a65", "equity": 97250574, "ret": -2.75}, {"id": "v249", "ph": "36a32ca0", "equity": 97250574, "ret": -2.75}, {"id": "v250", "ph": "b37976b8", "equity": 97250574, "ret": -2.75}, {"id": "v255", "ph": "92e3c5e0", "equity": 97250574, "ret": -2.75}, {"id": "v256", "ph": "e583f1dd", "equity": 97250574, "ret": -2.75}, {"id": "v261", "ph": "965786e6", "equity": 97250574, "ret": -2.75}, {"id": "v262", "ph": "e07faa54", "equity": 97250574, "ret": -2.75}, {"id": "v216", "ph": "ee298bd3", "equity": 97177429, "ret": -2.82}, {"id": "v300", "ph": "c6ddc17b", "equity": 96771577, "ret": -3.23}, {"id": "v245", "ph": "ac84324f", "equity": 96386213, "ret": -3.61}, {"id": "v251", "ph": "8c5a06da", "equity": 96386213, "ret": -3.61}, {"id": "v257", "ph": "7fa33f5b", "equity": 96386213, "ret": -3.61}, {"id": "v263", "ph": "ca392811", "equity": 96386213, "ret": -3.61}, {"id": "v146", "ph": "071b9cb1", "equity": 96216557, "ret": -3.78}, {"id": "v154", "ph": "7a3a7788", "equity": 96216557, "ret": -3.78}, {"id": "v164", "ph": "331cec1f", "equity": 96216557, "ret": -3.78}, {"id": "v246", "ph": "618ddf71", "equity": 96224131, "ret": -3.78}, {"id": "v252", "ph": "381a65d1", "equity": 96224131, "ret": -3.78}, {"id": "v258", "ph": "0b19bb06", "equity": 96224131, "ret": -3.78}, {"id": "v264", "ph": "8c65e60d", "equity": 96224131, "ret": -3.78}, {"id": "v298", "ph": "5d4bbec0", "equity": 95473086, "ret": -4.53}], "20260622": [{"id": "v308", "ph": "cb12dd0b", "equity": 100110463, "ret": 0.11}, {"id": "v304", "ph": "96c7e8e1", "equity": 99999382, "ret": -0.0}, {"id": "v305", "ph": "8cc4eea6", "equity": 99999253, "ret": -0.0}, {"id": "v306", "ph": "6966b8f6", "equity": 100000000, "ret": 0.0}, {"id": "v307", "ph": "6abce93d", "equity": 100000000, "ret": 0.0}, {"id": "v313", "ph": "b9f4ee72", "equity": 100000000, "ret": 0.0}, {"id": "v314", "ph": "7511570e", "equity": 100000000, "ret": 0.0}, {"id": "v315", "ph": "e6d5b283", "equity": 100000000, "ret": 0.0}, {"id": "v316", "ph": "8dc1d197", "equity": 99999482, "ret": -0.0}, {"id": "v317", "ph": "51f8ee6d", "equity": 100000000, "ret": 0.0}, {"id": "v319", "ph": "ca25f043", "equity": 99999612, "ret": -0.0}, {"id": "v320", "ph": "48d6a9ef", "equity": 99999353, "ret": -0.0}, {"id": "v321", "ph": "e82de49b", "equity": 100000000, "ret": 0.0}, {"id": "v311", "ph": "8409c6e5", "equity": 99975492, "ret": -0.02}, {"id": "v81", "ph": "a6eac1e4", "equity": 99862143, "ret": -0.14}, {"id": "v91", "ph": "5674a3d7", "equity": 99862143, "ret": -0.14}, {"id": "v95", "ph": "7e28e756", "equity": 99862143, "ret": -0.14}, {"id": "v312", "ph": "4c23846f", "equity": 99850935, "ret": -0.15}, {"id": "v309", "ph": "07610040", "equity": 99839047, "ret": -0.16}, {"id": "v310", "ph": "ec9dd55c", "equity": 99823142, "ret": -0.18}, {"id": "v318", "ph": "c99872ef", "equity": 99752651, "ret": -0.25}, {"id": "v299", "ph": "25046b1a", "equity": 99624684, "ret": -0.38}, {"id": "v49", "ph": "cdba73e0", "equity": 99546303, "ret": -0.45}, {"id": "v51", "ph": "21a98e46", "equity": 99546303, "ret": -0.45}, {"id": "v40", "ph": "70731d89", "equity": 99480770, "ret": -0.52}, {"id": "v99", "ph": "fb39409b", "equity": 99432420, "ret": -0.57}, {"id": "v101", "ph": "c4354346", "equity": 99432420, "ret": -0.57}, {"id": "v199", "ph": "390bfab3", "equity": 99432420, "ret": -0.57}, {"id": "v207", "ph": "0f6601a0", "equity": 99432420, "ret": -0.57}, {"id": "v209", "ph": "8730802d", "equity": 99432420, "ret": -0.57}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99389944, "ret": -0.61}, {"id": "v203", "ph": "2071defa", "equity": 99389944, "ret": -0.61}, {"id": "v89", "ph": "c49d5680", "equity": 99365419, "ret": -0.63}, {"id": "v97", "ph": "ebf31977", "equity": 99365419, "ret": -0.63}, {"id": "v217", "ph": "4c547a61", "equity": 99338238, "ret": -0.66}, {"id": "v218", "ph": "7304d2d4", "equity": 99338238, "ret": -0.66}, {"id": "v87", "ph": "c0be98c0", "equity": 99330590, "ret": -0.67}, {"id": "v93", "ph": "f10d4e45", "equity": 99330590, "ret": -0.67}, {"id": "v103", "ph": "75b0a37c", "equity": 99330590, "ret": -0.67}, {"id": "v195", "ph": "dd89cf59", "equity": 99330590, "ret": -0.67}, {"id": "v197", "ph": "5c290a32", "equity": 99330590, "ret": -0.67}, {"id": "v201", "ph": "cb8a413e", "equity": 99330590, "ret": -0.67}, {"id": "v205", "ph": "02e5a3f5", "equity": 99330590, "ret": -0.67}, {"id": "v211", "ph": "9227673c", "equity": 99330590, "ret": -0.67}, {"id": "v105", "ph": "88395429", "equity": 99298435, "ret": -0.7}, {"id": "v223", "ph": "b57356b8", "equity": 99265870, "ret": -0.73}, {"id": "v224", "ph": "888ab069", "equity": 99265870, "ret": -0.73}, {"id": "v229", "ph": "d9261dfb", "equity": 99265870, "ret": -0.73}, {"id": "v230", "ph": "141579fe", "equity": 99265870, "ret": -0.73}, {"id": "v235", "ph": "3e6c1666", "equity": 99265870, "ret": -0.73}, {"id": "v236", "ph": "f9c75560", "equity": 99265870, "ret": -0.73}, {"id": "v265", "ph": "7faed59d", "equity": 99265870, "ret": -0.73}, {"id": "v266", "ph": "c133b585", "equity": 99265870, "ret": -0.73}, {"id": "v271", "ph": "2b9ccdcd", "equity": 99265870, "ret": -0.73}, {"id": "v272", "ph": "2ed2027f", "equity": 99265870, "ret": -0.73}, {"id": "v277", "ph": "488b612a", "equity": 99265870, "ret": -0.73}, {"id": "v278", "ph": "861fb42b", "equity": 99265870, "ret": -0.73}, {"id": "v283", "ph": "479e4b25", "equity": 99265870, "ret": -0.73}, {"id": "v284", "ph": "261c5d58", "equity": 99265870, "ret": -0.73}, {"id": "v107", "ph": "be5cd36b", "equity": 99253201, "ret": -0.75}, {"id": "v213", "ph": "0e1d8e45", "equity": 99253201, "ret": -0.75}, {"id": "v215", "ph": "a904a49d", "equity": 99253201, "ret": -0.75}, {"id": "v302", "ph": "3f30502d", "equity": 99230216, "ret": -0.77}, {"id": "v57", "ph": "e7e98b6d", "equity": 99200804, "ret": -0.8}, {"id": "v59", "ph": "1858e2ec", "equity": 99200804, "ret": -0.8}, {"id": "v161", "ph": "ed5677e6", "equity": 99200804, "ret": -0.8}, {"id": "v165", "ph": "8f862b27", "equity": 99200804, "ret": -0.8}, {"id": "v167", "ph": "b6d6aed8", "equity": 99200804, "ret": -0.8}, {"id": "v301", "ph": "30da2021", "equity": 99168468, "ret": -0.83}, {"id": "v157", "ph": "80f3e23b", "equity": 99074104, "ret": -0.93}, {"id": "v159", "ph": "af80c67a", "equity": 99074104, "ret": -0.93}, {"id": "v1", "ph": "4874f4c9", "equity": 98993647, "ret": -1.01}, {"id": "v47", "ph": "ed758fcf", "equity": 98982594, "ret": -1.02}, {"id": "v155", "ph": "31c0d84e", "equity": 98937360, "ret": -1.06}, {"id": "v147", "ph": "2fbeeedb", "equity": 98787077, "ret": -1.21}, {"id": "v149", "ph": "c5329f8d", "equity": 98787077, "ret": -1.21}, {"id": "v151", "ph": "2eb1dd06", "equity": 98787077, "ret": -1.21}, {"id": "v41", "ph": "e9d84e84", "equity": 98506853, "ret": -1.49}, {"id": "v4", "ph": "b6219595", "equity": 98047970, "ret": -1.95}, {"id": "v303", "ph": "1a084164", "equity": 97958407, "ret": -2.04}, {"id": "v300", "ph": "c6ddc17b", "equity": 97936863, "ret": -2.06}, {"id": "v296", "ph": "4c554378", "equity": 96948991, "ret": -3.05}, {"id": "v298", "ph": "5d4bbec0", "equity": 95566672, "ret": -4.43}], "20260623": [{"id": "v306", "ph": "6966b8f6", "equity": 100000000, "ret": 0.0}, {"id": "v307", "ph": "6abce93d", "equity": 100000000, "ret": 0.0}, {"id": "v313", "ph": "b9f4ee72", "equity": 100000000, "ret": 0.0}, {"id": "v314", "ph": "7511570e", "equity": 100000000, "ret": 0.0}, {"id": "v315", "ph": "e6d5b283", "equity": 100000000, "ret": 0.0}, {"id": "v317", "ph": "51f8ee6d", "equity": 100000000, "ret": 0.0}, {"id": "v321", "ph": "e82de49b", "equity": 100000000, "ret": 0.0}, {"id": "v81", "ph": "a6eac1e4", "equity": 99876259, "ret": -0.12}, {"id": "v91", "ph": "5674a3d7", "equity": 99876259, "ret": -0.12}, {"id": "v95", "ph": "7e28e756", "equity": 99876259, "ret": -0.12}, {"id": "v319", "ph": "ca25f043", "equity": 99660626, "ret": -0.34}, {"id": "v316", "ph": "8dc1d197", "equity": 99602340, "ret": -0.4}, {"id": "v304", "ph": "96c7e8e1", "equity": 99583541, "ret": -0.42}, {"id": "v320", "ph": "48d6a9ef", "equity": 99522538, "ret": -0.48}, {"id": "v308", "ph": "cb12dd0b", "equity": 99484063, "ret": -0.52}, {"id": "v305", "ph": "8cc4eea6", "equity": 99455619, "ret": -0.54}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99404017, "ret": -0.6}, {"id": "v203", "ph": "2071defa", "equity": 99404017, "ret": -0.6}, {"id": "v99", "ph": "fb39409b", "equity": 99365571, "ret": -0.63}, {"id": "v101", "ph": "c4354346", "equity": 99365571, "ret": -0.63}, {"id": "v199", "ph": "390bfab3", "equity": 99365571, "ret": -0.63}, {"id": "v207", "ph": "0f6601a0", "equity": 99365571, "ret": -0.63}, {"id": "v209", "ph": "8730802d", "equity": 99365571, "ret": -0.63}, {"id": "v49", "ph": "cdba73e0", "equity": 99355488, "ret": -0.64}, {"id": "v51", "ph": "21a98e46", "equity": 99355488, "ret": -0.64}, {"id": "v87", "ph": "c0be98c0", "equity": 99018741, "ret": -0.98}, {"id": "v93", "ph": "f10d4e45", "equity": 99018741, "ret": -0.98}, {"id": "v103", "ph": "75b0a37c", "equity": 99018741, "ret": -0.98}, {"id": "v195", "ph": "dd89cf59", "equity": 99018741, "ret": -0.98}, {"id": "v197", "ph": "5c290a32", "equity": 99018741, "ret": -0.98}, {"id": "v201", "ph": "cb8a413e", "equity": 99018741, "ret": -0.98}, {"id": "v205", "ph": "02e5a3f5", "equity": 99018741, "ret": -0.98}, {"id": "v211", "ph": "9227673c", "equity": 99018741, "ret": -0.98}, {"id": "v217", "ph": "4c547a61", "equity": 99002738, "ret": -1.0}, {"id": "v218", "ph": "7304d2d4", "equity": 99002738, "ret": -1.0}, {"id": "v223", "ph": "b57356b8", "equity": 98930370, "ret": -1.07}, {"id": "v224", "ph": "888ab069", "equity": 98930370, "ret": -1.07}, {"id": "v229", "ph": "d9261dfb", "equity": 98930370, "ret": -1.07}, {"id": "v230", "ph": "141579fe", "equity": 98930370, "ret": -1.07}, {"id": "v235", "ph": "3e6c1666", "equity": 98930370, "ret": -1.07}, {"id": "v236", "ph": "f9c75560", "equity": 98930370, "ret": -1.07}, {"id": "v265", "ph": "7faed59d", "equity": 98930370, "ret": -1.07}, {"id": "v266", "ph": "c133b585", "equity": 98930370, "ret": -1.07}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98930370, "ret": -1.07}, {"id": "v272", "ph": "2ed2027f", "equity": 98930370, "ret": -1.07}, {"id": "v277", "ph": "488b612a", "equity": 98930370, "ret": -1.07}, {"id": "v278", "ph": "861fb42b", "equity": 98930370, "ret": -1.07}, {"id": "v283", "ph": "479e4b25", "equity": 98930370, "ret": -1.07}, {"id": "v284", "ph": "261c5d58", "equity": 98930370, "ret": -1.07}, {"id": "v57", "ph": "e7e98b6d", "equity": 98879376, "ret": -1.12}, {"id": "v59", "ph": "1858e2ec", "equity": 98879376, "ret": -1.12}, {"id": "v157", "ph": "80f3e23b", "equity": 98883246, "ret": -1.12}, {"id": "v159", "ph": "af80c67a", "equity": 98883246, "ret": -1.12}, {"id": "v161", "ph": "ed5677e6", "equity": 98879376, "ret": -1.12}, {"id": "v165", "ph": "8f862b27", "equity": 98879376, "ret": -1.12}, {"id": "v167", "ph": "b6d6aed8", "equity": 98879376, "ret": -1.12}, {"id": "v302", "ph": "3f30502d", "equity": 98829145, "ret": -1.17}, {"id": "v107", "ph": "be5cd36b", "equity": 98682584, "ret": -1.32}, {"id": "v213", "ph": "0e1d8e45", "equity": 98682584, "ret": -1.32}, {"id": "v215", "ph": "a904a49d", "equity": 98682584, "ret": -1.32}, {"id": "v89", "ph": "c49d5680", "equity": 98634536, "ret": -1.37}, {"id": "v97", "ph": "ebf31977", "equity": 98634536, "ret": -1.37}, {"id": "v318", "ph": "c99872ef", "equity": 98484983, "ret": -1.52}, {"id": "v105", "ph": "88395429", "equity": 98446363, "ret": -1.55}, {"id": "v310", "ph": "ec9dd55c", "equity": 98385145, "ret": -1.61}, {"id": "v301", "ph": "30da2021", "equity": 98256277, "ret": -1.74}, {"id": "v155", "ph": "31c0d84e", "equity": 98161814, "ret": -1.84}, {"id": "v1", "ph": "4874f4c9", "equity": 97995717, "ret": -2.0}, {"id": "v47", "ph": "ed758fcf", "equity": 97925592, "ret": -2.07}, {"id": "v311", "ph": "8409c6e5", "equity": 97922048, "ret": -2.08}, {"id": "v147", "ph": "2fbeeedb", "equity": 97833766, "ret": -2.17}, {"id": "v149", "ph": "c5329f8d", "equity": 97833766, "ret": -2.17}, {"id": "v151", "ph": "2eb1dd06", "equity": 97833766, "ret": -2.17}, {"id": "v303", "ph": "1a084164", "equity": 97432486, "ret": -2.57}, {"id": "v312", "ph": "4c23846f", "equity": 96768473, "ret": -3.23}, {"id": "v41", "ph": "e9d84e84", "equity": 96633673, "ret": -3.37}, {"id": "v309", "ph": "07610040", "equity": 96389485, "ret": -3.61}, {"id": "v4", "ph": "b6219595", "equity": 96036004, "ret": -3.96}, {"id": "v40", "ph": "70731d89", "equity": 95687271, "ret": -4.31}, {"id": "v296", "ph": "4c554378", "equity": 95071919, "ret": -4.93}, {"id": "v300", "ph": "c6ddc17b", "equity": 93918078, "ret": -6.08}, {"id": "v299", "ph": "25046b1a", "equity": 93683292, "ret": -6.32}, {"id": "v298", "ph": "5d4bbec0", "equity": 92518385, "ret": -7.48}], "20260624": [{"id": "v321", "ph": "e82de49b", "equity": 100085854, "ret": 0.09}, {"id": "v317", "ph": "51f8ee6d", "equity": 100060486, "ret": 0.06}, {"id": "v306", "ph": "6966b8f6", "equity": 100000522, "ret": 0.0}, {"id": "v315", "ph": "e6d5b283", "equity": 99883355, "ret": -0.12}, {"id": "v313", "ph": "b9f4ee72", "equity": 99826917, "ret": -0.17}, {"id": "v307", "ph": "6abce93d", "equity": 99802993, "ret": -0.2}, {"id": "v314", "ph": "7511570e", "equity": 99792429, "ret": -0.21}, {"id": "v91", "ph": "5674a3d7", "equity": 99663265, "ret": -0.34}, {"id": "v81", "ph": "a6eac1e4", "equity": 99636149, "ret": -0.36}, {"id": "v95", "ph": "7e28e756", "equity": 99636149, "ret": -0.36}, {"id": "v308", "ph": "cb12dd0b", "equity": 99546904, "ret": -0.45}, {"id": "v304", "ph": "96c7e8e1", "equity": 99355993, "ret": -0.64}, {"id": "v319", "ph": "ca25f043", "equity": 99288100, "ret": -0.71}, {"id": "v316", "ph": "8dc1d197", "equity": 99193213, "ret": -0.81}, {"id": "v305", "ph": "8cc4eea6", "equity": 99183211, "ret": -0.82}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99163907, "ret": -0.84}, {"id": "v203", "ph": "2071defa", "equity": 99163907, "ret": -0.84}, {"id": "v99", "ph": "fb39409b", "equity": 99152577, "ret": -0.85}, {"id": "v101", "ph": "c4354346", "equity": 99152577, "ret": -0.85}, {"id": "v199", "ph": "390bfab3", "equity": 99152577, "ret": -0.85}, {"id": "v207", "ph": "0f6601a0", "equity": 99152577, "ret": -0.85}, {"id": "v209", "ph": "8730802d", "equity": 99152577, "ret": -0.85}, {"id": "v49", "ph": "cdba73e0", "equity": 99115378, "ret": -0.88}, {"id": "v51", "ph": "21a98e46", "equity": 99115378, "ret": -0.88}, {"id": "v320", "ph": "48d6a9ef", "equity": 99096561, "ret": -0.9}, {"id": "v87", "ph": "c0be98c0", "equity": 99066109, "ret": -0.93}, {"id": "v93", "ph": "f10d4e45", "equity": 99066109, "ret": -0.93}, {"id": "v103", "ph": "75b0a37c", "equity": 99066109, "ret": -0.93}, {"id": "v197", "ph": "5c290a32", "equity": 99066109, "ret": -0.93}, {"id": "v205", "ph": "02e5a3f5", "equity": 99066109, "ret": -0.93}, {"id": "v195", "ph": "dd89cf59", "equity": 98899102, "ret": -1.1}, {"id": "v201", "ph": "cb8a413e", "equity": 98899102, "ret": -1.1}, {"id": "v211", "ph": "9227673c", "equity": 98899102, "ret": -1.1}, {"id": "v107", "ph": "be5cd36b", "equity": 98777904, "ret": -1.22}, {"id": "v213", "ph": "0e1d8e45", "equity": 98777904, "ret": -1.22}, {"id": "v57", "ph": "e7e98b6d", "equity": 98666382, "ret": -1.33}, {"id": "v59", "ph": "1858e2ec", "equity": 98666382, "ret": -1.33}, {"id": "v161", "ph": "ed5677e6", "equity": 98666382, "ret": -1.33}, {"id": "v165", "ph": "8f862b27", "equity": 98666382, "ret": -1.33}, {"id": "v167", "ph": "b6d6aed8", "equity": 98666382, "ret": -1.33}, {"id": "v217", "ph": "4c547a61", "equity": 98672158, "ret": -1.33}, {"id": "v218", "ph": "7304d2d4", "equity": 98672158, "ret": -1.33}, {"id": "v157", "ph": "80f3e23b", "equity": 98643136, "ret": -1.36}, {"id": "v159", "ph": "af80c67a", "equity": 98643136, "ret": -1.36}, {"id": "v89", "ph": "c49d5680", "equity": 98615759, "ret": -1.38}, {"id": "v97", "ph": "ebf31977", "equity": 98615759, "ret": -1.38}, {"id": "v105", "ph": "88395429", "equity": 98597406, "ret": -1.4}, {"id": "v223", "ph": "b57356b8", "equity": 98599790, "ret": -1.4}, {"id": "v224", "ph": "888ab069", "equity": 98599790, "ret": -1.4}, {"id": "v229", "ph": "d9261dfb", "equity": 98599790, "ret": -1.4}, {"id": "v230", "ph": "141579fe", "equity": 98599790, "ret": -1.4}, {"id": "v235", "ph": "3e6c1666", "equity": 98599790, "ret": -1.4}, {"id": "v236", "ph": "f9c75560", "equity": 98599790, "ret": -1.4}, {"id": "v265", "ph": "7faed59d", "equity": 98599790, "ret": -1.4}, {"id": "v266", "ph": "c133b585", "equity": 98599790, "ret": -1.4}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98599790, "ret": -1.4}, {"id": "v272", "ph": "2ed2027f", "equity": 98599790, "ret": -1.4}, {"id": "v277", "ph": "488b612a", "equity": 98599790, "ret": -1.4}, {"id": "v278", "ph": "861fb42b", "equity": 98599790, "ret": -1.4}, {"id": "v283", "ph": "479e4b25", "equity": 98599790, "ret": -1.4}, {"id": "v284", "ph": "261c5d58", "equity": 98599790, "ret": -1.4}, {"id": "v215", "ph": "a904a49d", "equity": 98584893, "ret": -1.42}, {"id": "v302", "ph": "3f30502d", "equity": 98415182, "ret": -1.58}, {"id": "v155", "ph": "31c0d84e", "equity": 98262712, "ret": -1.74}, {"id": "v47", "ph": "ed758fcf", "equity": 98075491, "ret": -1.92}, {"id": "v318", "ph": "c99872ef", "equity": 98060011, "ret": -1.94}, {"id": "v147", "ph": "2fbeeedb", "equity": 97921225, "ret": -2.08}, {"id": "v149", "ph": "c5329f8d", "equity": 97921225, "ret": -2.08}, {"id": "v151", "ph": "2eb1dd06", "equity": 97921225, "ret": -2.08}, {"id": "v311", "ph": "8409c6e5", "equity": 97891655, "ret": -2.11}, {"id": "v301", "ph": "30da2021", "equity": 97750914, "ret": -2.25}, {"id": "v310", "ph": "ec9dd55c", "equity": 97639577, "ret": -2.36}, {"id": "v1", "ph": "4874f4c9", "equity": 97475814, "ret": -2.52}, {"id": "v303", "ph": "1a084164", "equity": 97118111, "ret": -2.88}, {"id": "v41", "ph": "e9d84e84", "equity": 96580621, "ret": -3.42}, {"id": "v4", "ph": "b6219595", "equity": 95980663, "ret": -4.02}, {"id": "v312", "ph": "4c23846f", "equity": 95969821, "ret": -4.03}, {"id": "v309", "ph": "07610040", "equity": 95955384, "ret": -4.04}, {"id": "v40", "ph": "70731d89", "equity": 95748230, "ret": -4.25}, {"id": "v296", "ph": "4c554378", "equity": 94163911, "ret": -5.84}, {"id": "v300", "ph": "c6ddc17b", "equity": 93696621, "ret": -6.3}, {"id": "v299", "ph": "25046b1a", "equity": 93194033, "ret": -6.81}, {"id": "v298", "ph": "5d4bbec0", "equity": 92404552, "ret": -7.6}], "20260625": [{"id": "v317", "ph": "51f8ee6d", "equity": 99993632, "ret": -0.01}, {"id": "v321", "ph": "e82de49b", "equity": 99982218, "ret": -0.02}, {"id": "v315", "ph": "e6d5b283", "equity": 99958954, "ret": -0.04}, {"id": "v306", "ph": "6966b8f6", "equity": 99920351, "ret": -0.08}, {"id": "v314", "ph": "7511570e", "equity": 99898729, "ret": -0.1}, {"id": "v313", "ph": "b9f4ee72", "equity": 99812686, "ret": -0.19}, {"id": "v81", "ph": "a6eac1e4", "equity": 99778449, "ret": -0.22}, {"id": "v91", "ph": "5674a3d7", "equity": 99775565, "ret": -0.22}, {"id": "v95", "ph": "7e28e756", "equity": 99778449, "ret": -0.22}, {"id": "v307", "ph": "6abce93d", "equity": 99783177, "ret": -0.22}, {"id": "v308", "ph": "cb12dd0b", "equity": 99549413, "ret": -0.45}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99326774, "ret": -0.67}, {"id": "v203", "ph": "2071defa", "equity": 99326774, "ret": -0.67}, {"id": "v199", "ph": "390bfab3", "equity": 99282766, "ret": -0.72}, {"id": "v207", "ph": "0f6601a0", "equity": 99282766, "ret": -0.72}, {"id": "v209", "ph": "8730802d", "equity": 99282766, "ret": -0.72}, {"id": "v49", "ph": "cdba73e0", "equity": 99257678, "ret": -0.74}, {"id": "v51", "ph": "21a98e46", "equity": 99257678, "ret": -0.74}, {"id": "v99", "ph": "fb39409b", "equity": 99264877, "ret": -0.74}, {"id": "v101", "ph": "c4354346", "equity": 99264877, "ret": -0.74}, {"id": "v319", "ph": "ca25f043", "equity": 99151697, "ret": -0.85}, {"id": "v304", "ph": "96c7e8e1", "equity": 99087927, "ret": -0.91}, {"id": "v316", "ph": "8dc1d197", "equity": 99064791, "ret": -0.94}, {"id": "v197", "ph": "5c290a32", "equity": 99022763, "ret": -0.98}, {"id": "v205", "ph": "02e5a3f5", "equity": 99022763, "ret": -0.98}, {"id": "v87", "ph": "c0be98c0", "equity": 99004874, "ret": -1.0}, {"id": "v93", "ph": "f10d4e45", "equity": 99004874, "ret": -1.0}, {"id": "v103", "ph": "75b0a37c", "equity": 99004874, "ret": -1.0}, {"id": "v320", "ph": "48d6a9ef", "equity": 98966439, "ret": -1.03}, {"id": "v305", "ph": "8cc4eea6", "equity": 98834032, "ret": -1.17}, {"id": "v157", "ph": "80f3e23b", "equity": 98805812, "ret": -1.19}, {"id": "v159", "ph": "af80c67a", "equity": 98805812, "ret": -1.19}, {"id": "v161", "ph": "ed5677e6", "equity": 98796476, "ret": -1.2}, {"id": "v165", "ph": "8f862b27", "equity": 98796476, "ret": -1.2}, {"id": "v167", "ph": "b6d6aed8", "equity": 98796476, "ret": -1.2}, {"id": "v195", "ph": "dd89cf59", "equity": 98801518, "ret": -1.2}, {"id": "v201", "ph": "cb8a413e", "equity": 98801518, "ret": -1.2}, {"id": "v211", "ph": "9227673c", "equity": 98801518, "ret": -1.2}, {"id": "v57", "ph": "e7e98b6d", "equity": 98778682, "ret": -1.22}, {"id": "v59", "ph": "1858e2ec", "equity": 98778682, "ret": -1.22}, {"id": "v89", "ph": "c49d5680", "equity": 98647719, "ret": -1.35}, {"id": "v97", "ph": "ebf31977", "equity": 98647719, "ret": -1.35}, {"id": "v302", "ph": "3f30502d", "equity": 98641582, "ret": -1.36}, {"id": "v217", "ph": "4c547a61", "equity": 98614246, "ret": -1.39}, {"id": "v218", "ph": "7304d2d4", "equity": 98614246, "ret": -1.39}, {"id": "v213", "ph": "0e1d8e45", "equity": 98585038, "ret": -1.41}, {"id": "v107", "ph": "be5cd36b", "equity": 98564470, "ret": -1.44}, {"id": "v223", "ph": "b57356b8", "equity": 98541878, "ret": -1.46}, {"id": "v224", "ph": "888ab069", "equity": 98541878, "ret": -1.46}, {"id": "v229", "ph": "d9261dfb", "equity": 98541878, "ret": -1.46}, {"id": "v230", "ph": "141579fe", "equity": 98541878, "ret": -1.46}, {"id": "v235", "ph": "3e6c1666", "equity": 98541878, "ret": -1.46}, {"id": "v236", "ph": "f9c75560", "equity": 98541878, "ret": -1.46}, {"id": "v265", "ph": "7faed59d", "equity": 98541878, "ret": -1.46}, {"id": "v266", "ph": "c133b585", "equity": 98541878, "ret": -1.46}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98541878, "ret": -1.46}, {"id": "v272", "ph": "2ed2027f", "equity": 98541878, "ret": -1.46}, {"id": "v277", "ph": "488b612a", "equity": 98541878, "ret": -1.46}, {"id": "v278", "ph": "861fb42b", "equity": 98541878, "ret": -1.46}, {"id": "v283", "ph": "479e4b25", "equity": 98541878, "ret": -1.46}, {"id": "v284", "ph": "261c5d58", "equity": 98541878, "ret": -1.46}, {"id": "v318", "ph": "c99872ef", "equity": 98448234, "ret": -1.55}, {"id": "v105", "ph": "88395429", "equity": 98368172, "ret": -1.63}, {"id": "v215", "ph": "a904a49d", "equity": 98337789, "ret": -1.66}, {"id": "v155", "ph": "31c0d84e", "equity": 98064390, "ret": -1.94}, {"id": "v301", "ph": "30da2021", "equity": 97971314, "ret": -2.03}, {"id": "v310", "ph": "ec9dd55c", "equity": 97969177, "ret": -2.03}, {"id": "v47", "ph": "ed758fcf", "equity": 97846897, "ret": -2.15}, {"id": "v147", "ph": "2fbeeedb", "equity": 97810659, "ret": -2.19}, {"id": "v149", "ph": "c5329f8d", "equity": 97810659, "ret": -2.19}, {"id": "v151", "ph": "2eb1dd06", "equity": 97810659, "ret": -2.19}, {"id": "v1", "ph": "4874f4c9", "equity": 97699714, "ret": -2.3}, {"id": "v311", "ph": "8409c6e5", "equity": 97612070, "ret": -2.39}, {"id": "v40", "ph": "70731d89", "equity": 97128790, "ret": -2.87}, {"id": "v312", "ph": "4c23846f", "equity": 97086568, "ret": -2.91}, {"id": "v303", "ph": "1a084164", "equity": 97078943, "ret": -2.92}, {"id": "v41", "ph": "e9d84e84", "equity": 96647542, "ret": -3.35}, {"id": "v309", "ph": "07610040", "equity": 96637545, "ret": -3.36}, {"id": "v4", "ph": "b6219595", "equity": 96048864, "ret": -3.95}, {"id": "v296", "ph": "4c554378", "equity": 95720669, "ret": -4.28}, {"id": "v299", "ph": "25046b1a", "equity": 95394672, "ret": -4.61}, {"id": "v300", "ph": "c6ddc17b", "equity": 94713522, "ret": -5.29}, {"id": "v298", "ph": "5d4bbec0", "equity": 94020155, "ret": -5.98}], "20260626": [{"id": "v314", "ph": "7511570e", "equity": 99900880, "ret": -0.1}, {"id": "v315", "ph": "e6d5b283", "equity": 99816609, "ret": -0.18}, {"id": "v81", "ph": "a6eac1e4", "equity": 99807451, "ret": -0.19}, {"id": "v95", "ph": "7e28e756", "equity": 99807451, "ret": -0.19}, {"id": "v321", "ph": "e82de49b", "equity": 99813711, "ret": -0.19}, {"id": "v91", "ph": "5674a3d7", "equity": 99782191, "ret": -0.22}, {"id": "v313", "ph": "b9f4ee72", "equity": 99685397, "ret": -0.31}, {"id": "v307", "ph": "6abce93d", "equity": 99640613, "ret": -0.36}, {"id": "v306", "ph": "6966b8f6", "equity": 99583813, "ret": -0.42}, {"id": "v317", "ph": "51f8ee6d", "equity": 99551515, "ret": -0.45}, {"id": "v49", "ph": "cdba73e0", "equity": 99286680, "ret": -0.71}, {"id": "v51", "ph": "21a98e46", "equity": 99286680, "ret": -0.71}, {"id": "v308", "ph": "cb12dd0b", "equity": 99293485, "ret": -0.71}, {"id": "v99", "ph": "fb39409b", "equity": 99271503, "ret": -0.73}, {"id": "v101", "ph": "c4354346", "equity": 99271503, "ret": -0.73}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99108526, "ret": -0.89}, {"id": "v203", "ph": "2071defa", "equity": 99108526, "ret": -0.89}, {"id": "v199", "ph": "390bfab3", "equity": 99074342, "ret": -0.93}, {"id": "v207", "ph": "0f6601a0", "equity": 99074342, "ret": -0.93}, {"id": "v209", "ph": "8730802d", "equity": 99074342, "ret": -0.93}, {"id": "v87", "ph": "c0be98c0", "equity": 98896181, "ret": -1.1}, {"id": "v93", "ph": "f10d4e45", "equity": 98896181, "ret": -1.1}, {"id": "v103", "ph": "75b0a37c", "equity": 98896181, "ret": -1.1}, {"id": "v319", "ph": "ca25f043", "equity": 98901880, "ret": -1.1}, {"id": "v304", "ph": "96c7e8e1", "equity": 98807436, "ret": -1.19}, {"id": "v57", "ph": "e7e98b6d", "equity": 98785308, "ret": -1.21}, {"id": "v59", "ph": "1858e2ec", "equity": 98785308, "ret": -1.21}, {"id": "v316", "ph": "8dc1d197", "equity": 98720505, "ret": -1.28}, {"id": "v197", "ph": "5c290a32", "equity": 98699020, "ret": -1.3}, {"id": "v205", "ph": "02e5a3f5", "equity": 98699020, "ret": -1.3}, {"id": "v302", "ph": "3f30502d", "equity": 98665893, "ret": -1.33}, {"id": "v157", "ph": "80f3e23b", "equity": 98589864, "ret": -1.41}, {"id": "v159", "ph": "af80c67a", "equity": 98589864, "ret": -1.41}, {"id": "v161", "ph": "ed5677e6", "equity": 98589202, "ret": -1.41}, {"id": "v165", "ph": "8f862b27", "equity": 98589202, "ret": -1.41}, {"id": "v167", "ph": "b6d6aed8", "equity": 98589202, "ret": -1.41}, {"id": "v320", "ph": "48d6a9ef", "equity": 98583273, "ret": -1.42}, {"id": "v89", "ph": "c49d5680", "equity": 98542206, "ret": -1.46}, {"id": "v97", "ph": "ebf31977", "equity": 98542206, "ret": -1.46}, {"id": "v195", "ph": "dd89cf59", "equity": 98454369, "ret": -1.55}, {"id": "v201", "ph": "cb8a413e", "equity": 98454369, "ret": -1.55}, {"id": "v211", "ph": "9227673c", "equity": 98454369, "ret": -1.55}, {"id": "v305", "ph": "8cc4eea6", "equity": 98401081, "ret": -1.6}, {"id": "v217", "ph": "4c547a61", "equity": 98351778, "ret": -1.65}, {"id": "v218", "ph": "7304d2d4", "equity": 98351778, "ret": -1.65}, {"id": "v223", "ph": "b57356b8", "equity": 98279410, "ret": -1.72}, {"id": "v224", "ph": "888ab069", "equity": 98279410, "ret": -1.72}, {"id": "v229", "ph": "d9261dfb", "equity": 98279410, "ret": -1.72}, {"id": "v230", "ph": "141579fe", "equity": 98279410, "ret": -1.72}, {"id": "v235", "ph": "3e6c1666", "equity": 98279410, "ret": -1.72}, {"id": "v236", "ph": "f9c75560", "equity": 98279410, "ret": -1.72}, {"id": "v265", "ph": "7faed59d", "equity": 98279410, "ret": -1.72}, {"id": "v266", "ph": "c133b585", "equity": 98279410, "ret": -1.72}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98279410, "ret": -1.72}, {"id": "v272", "ph": "2ed2027f", "equity": 98279410, "ret": -1.72}, {"id": "v277", "ph": "488b612a", "equity": 98279410, "ret": -1.72}, {"id": "v278", "ph": "861fb42b", "equity": 98279410, "ret": -1.72}, {"id": "v283", "ph": "479e4b25", "equity": 98279410, "ret": -1.72}, {"id": "v284", "ph": "261c5d58", "equity": 98279410, "ret": -1.72}, {"id": "v105", "ph": "88395429", "equity": 98222164, "ret": -1.78}, {"id": "v107", "ph": "be5cd36b", "equity": 98198994, "ret": -1.8}, {"id": "v301", "ph": "30da2021", "equity": 97988925, "ret": -2.01}, {"id": "v213", "ph": "0e1d8e45", "equity": 97972312, "ret": -2.03}, {"id": "v1", "ph": "4874f4c9", "equity": 97711838, "ret": -2.29}, {"id": "v47", "ph": "ed758fcf", "equity": 97704069, "ret": -2.3}, {"id": "v215", "ph": "a904a49d", "equity": 97701657, "ret": -2.3}, {"id": "v155", "ph": "31c0d84e", "equity": 97449295, "ret": -2.55}, {"id": "v318", "ph": "c99872ef", "equity": 97391096, "ret": -2.61}, {"id": "v147", "ph": "2fbeeedb", "equity": 97369471, "ret": -2.63}, {"id": "v149", "ph": "c5329f8d", "equity": 97369471, "ret": -2.63}, {"id": "v151", "ph": "2eb1dd06", "equity": 97369471, "ret": -2.63}, {"id": "v311", "ph": "8409c6e5", "equity": 96938905, "ret": -3.06}, {"id": "v303", "ph": "1a084164", "equity": 96838921, "ret": -3.16}, {"id": "v310", "ph": "ec9dd55c", "equity": 96814041, "ret": -3.19}, {"id": "v41", "ph": "e9d84e84", "equity": 96436419, "ret": -3.56}, {"id": "v40", "ph": "70731d89", "equity": 96034565, "ret": -3.97}, {"id": "v309", "ph": "07610040", "equity": 95970701, "ret": -4.03}, {"id": "v4", "ph": "b6219595", "equity": 95844101, "ret": -4.16}, {"id": "v312", "ph": "4c23846f", "equity": 94932436, "ret": -5.07}, {"id": "v296", "ph": "4c554378", "equity": 93944044, "ret": -6.06}, {"id": "v300", "ph": "c6ddc17b", "equity": 93694239, "ret": -6.31}, {"id": "v298", "ph": "5d4bbec0", "equity": 92024557, "ret": -7.98}, {"id": "v299", "ph": "25046b1a", "equity": 91806294, "ret": -8.19}], "20260629": [{"id": "v306", "ph": "6966b8f6", "equity": 100300459, "ret": 0.3}, {"id": "v321", "ph": "e82de49b", "equity": 100189547, "ret": 0.19}, {"id": "v308", "ph": "cb12dd0b", "equity": 99999961, "ret": -0.0}, {"id": "v314", "ph": "7511570e", "equity": 99813480, "ret": -0.19}, {"id": "v313", "ph": "b9f4ee72", "equity": 99730074, "ret": -0.27}, {"id": "v307", "ph": "6abce93d", "equity": 99697202, "ret": -0.3}, {"id": "v317", "ph": "51f8ee6d", "equity": 99696555, "ret": -0.3}, {"id": "v91", "ph": "5674a3d7", "equity": 99687191, "ret": -0.31}, {"id": "v81", "ph": "a6eac1e4", "equity": 99674451, "ret": -0.33}, {"id": "v95", "ph": "7e28e756", "equity": 99674451, "ret": -0.33}, {"id": "v315", "ph": "e6d5b283", "equity": 99654810, "ret": -0.35}, {"id": "v87", "ph": "c0be98c0", "equity": 99491935, "ret": -0.51}, {"id": "v93", "ph": "f10d4e45", "equity": 99491935, "ret": -0.51}, {"id": "v103", "ph": "75b0a37c", "equity": 99491935, "ret": -0.51}, {"id": "v197", "ph": "5c290a32", "equity": 99388275, "ret": -0.61}, {"id": "v205", "ph": "02e5a3f5", "equity": 99388275, "ret": -0.61}, {"id": "v99", "ph": "fb39409b", "equity": 99176503, "ret": -0.82}, {"id": "v101", "ph": "c4354346", "equity": 99176503, "ret": -0.82}, {"id": "v49", "ph": "cdba73e0", "equity": 99153680, "ret": -0.85}, {"id": "v51", "ph": "21a98e46", "equity": 99153680, "ret": -0.85}, {"id": "v195", "ph": "dd89cf59", "equity": 99143624, "ret": -0.86}, {"id": "v201", "ph": "cb8a413e", "equity": 99143624, "ret": -0.86}, {"id": "v211", "ph": "9227673c", "equity": 99143624, "ret": -0.86}, {"id": "v89", "ph": "c49d5680", "equity": 99133820, "ret": -0.87}, {"id": "v97", "ph": "ebf31977", "equity": 99133820, "ret": -0.87}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99083026, "ret": -0.92}, {"id": "v203", "ph": "2071defa", "equity": 99083026, "ret": -0.92}, {"id": "v199", "ph": "390bfab3", "equity": 99072842, "ret": -0.93}, {"id": "v207", "ph": "0f6601a0", "equity": 99072842, "ret": -0.93}, {"id": "v209", "ph": "8730802d", "equity": 99072842, "ret": -0.93}, {"id": "v319", "ph": "ca25f043", "equity": 99052498, "ret": -0.95}, {"id": "v105", "ph": "88395429", "equity": 99012940, "ret": -0.99}, {"id": "v107", "ph": "be5cd36b", "equity": 98985970, "ret": -1.01}, {"id": "v316", "ph": "8dc1d197", "equity": 98925942, "ret": -1.07}, {"id": "v304", "ph": "96c7e8e1", "equity": 98923153, "ret": -1.08}, {"id": "v213", "ph": "0e1d8e45", "equity": 98866788, "ret": -1.13}, {"id": "v320", "ph": "48d6a9ef", "equity": 98801732, "ret": -1.2}, {"id": "v305", "ph": "8cc4eea6", "equity": 98794030, "ret": -1.21}, {"id": "v57", "ph": "e7e98b6d", "equity": 98690308, "ret": -1.31}, {"id": "v59", "ph": "1858e2ec", "equity": 98690308, "ret": -1.31}, {"id": "v147", "ph": "2fbeeedb", "equity": 98693892, "ret": -1.31}, {"id": "v149", "ph": "c5329f8d", "equity": 98693892, "ret": -1.31}, {"id": "v151", "ph": "2eb1dd06", "equity": 98693892, "ret": -1.31}, {"id": "v215", "ph": "a904a49d", "equity": 98596133, "ret": -1.4}, {"id": "v161", "ph": "ed5677e6", "equity": 98587202, "ret": -1.41}, {"id": "v165", "ph": "8f862b27", "equity": 98587202, "ret": -1.41}, {"id": "v167", "ph": "b6d6aed8", "equity": 98587202, "ret": -1.41}, {"id": "v157", "ph": "80f3e23b", "equity": 98563364, "ret": -1.44}, {"id": "v159", "ph": "af80c67a", "equity": 98563364, "ret": -1.44}, {"id": "v302", "ph": "3f30502d", "equity": 98543843, "ret": -1.46}, {"id": "v47", "ph": "ed758fcf", "equity": 98490705, "ret": -1.51}, {"id": "v217", "ph": "4c547a61", "equity": 98406867, "ret": -1.59}, {"id": "v218", "ph": "7304d2d4", "equity": 98406867, "ret": -1.59}, {"id": "v155", "ph": "31c0d84e", "equity": 98342931, "ret": -1.66}, {"id": "v223", "ph": "b57356b8", "equity": 98334499, "ret": -1.67}, {"id": "v224", "ph": "888ab069", "equity": 98334499, "ret": -1.67}, {"id": "v229", "ph": "d9261dfb", "equity": 98334499, "ret": -1.67}, {"id": "v230", "ph": "141579fe", "equity": 98334499, "ret": -1.67}, {"id": "v235", "ph": "3e6c1666", "equity": 98334499, "ret": -1.67}, {"id": "v236", "ph": "f9c75560", "equity": 98334499, "ret": -1.67}, {"id": "v265", "ph": "7faed59d", "equity": 98334499, "ret": -1.67}, {"id": "v266", "ph": "c133b585", "equity": 98334499, "ret": -1.67}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98334499, "ret": -1.67}, {"id": "v272", "ph": "2ed2027f", "equity": 98334499, "ret": -1.67}, {"id": "v277", "ph": "488b612a", "equity": 98334499, "ret": -1.67}, {"id": "v278", "ph": "861fb42b", "equity": 98334499, "ret": -1.67}, {"id": "v283", "ph": "479e4b25", "equity": 98334499, "ret": -1.67}, {"id": "v284", "ph": "261c5d58", "equity": 98334499, "ret": -1.67}, {"id": "v301", "ph": "30da2021", "equity": 97870675, "ret": -2.13}, {"id": "v41", "ph": "e9d84e84", "equity": 97642337, "ret": -2.36}, {"id": "v1", "ph": "4874f4c9", "equity": 97618226, "ret": -2.38}, {"id": "v4", "ph": "b6219595", "equity": 97133478, "ret": -2.87}, {"id": "v40", "ph": "70731d89", "equity": 97128027, "ret": -2.87}, {"id": "v303", "ph": "1a084164", "equity": 96941008, "ret": -3.06}, {"id": "v310", "ph": "ec9dd55c", "equity": 96874396, "ret": -3.13}, {"id": "v318", "ph": "c99872ef", "equity": 96778920, "ret": -3.22}, {"id": "v311", "ph": "8409c6e5", "equity": 96345178, "ret": -3.65}, {"id": "v309", "ph": "07610040", "equity": 95447771, "ret": -4.55}, {"id": "v300", "ph": "c6ddc17b", "equity": 94255949, "ret": -5.74}, {"id": "v296", "ph": "4c554378", "equity": 93871964, "ret": -6.13}, {"id": "v312", "ph": "4c23846f", "equity": 93604983, "ret": -6.4}, {"id": "v298", "ph": "5d4bbec0", "equity": 91385783, "ret": -8.61}, {"id": "v299", "ph": "25046b1a", "equity": 91015801, "ret": -8.98}], "20260630": [{"id": "v308", "ph": "cb12dd0b", "equity": 102469206, "ret": 2.47}, {"id": "v147", "ph": "2fbeeedb", "equity": 102192163, "ret": 2.19}, {"id": "v149", "ph": "c5329f8d", "equity": 102192163, "ret": 2.19}, {"id": "v151", "ph": "2eb1dd06", "equity": 102192163, "ret": 2.19}, {"id": "v306", "ph": "6966b8f6", "equity": 102132719, "ret": 2.13}, {"id": "v40", "ph": "70731d89", "equity": 101679673, "ret": 1.68}, {"id": "v321", "ph": "e82de49b", "equity": 101535047, "ret": 1.54}, {"id": "v41", "ph": "e9d84e84", "equity": 101160969, "ret": 1.16}, {"id": "v105", "ph": "88395429", "equity": 101130434, "ret": 1.13}, {"id": "v107", "ph": "be5cd36b", "equity": 101112564, "ret": 1.11}, {"id": "v87", "ph": "c0be98c0", "equity": 101073595, "ret": 1.07}, {"id": "v93", "ph": "f10d4e45", "equity": 101073595, "ret": 1.07}, {"id": "v103", "ph": "75b0a37c", "equity": 101073595, "ret": 1.07}, {"id": "v47", "ph": "ed758fcf", "equity": 100911006, "ret": 0.91}, {"id": "v4", "ph": "b6219595", "equity": 100843214, "ret": 0.84}, {"id": "v197", "ph": "5c290a32", "equity": 100829685, "ret": 0.83}, {"id": "v205", "ph": "02e5a3f5", "equity": 100829685, "ret": 0.83}, {"id": "v213", "ph": "0e1d8e45", "equity": 100832132, "ret": 0.83}, {"id": "v89", "ph": "c49d5680", "equity": 100713689, "ret": 0.71}, {"id": "v97", "ph": "ebf31977", "equity": 100713689, "ret": 0.71}, {"id": "v155", "ph": "31c0d84e", "equity": 100602732, "ret": 0.6}, {"id": "v195", "ph": "dd89cf59", "equity": 100586342, "ret": 0.59}, {"id": "v201", "ph": "cb8a413e", "equity": 100586342, "ret": 0.59}, {"id": "v211", "ph": "9227673c", "equity": 100586342, "ret": 0.59}, {"id": "v215", "ph": "a904a49d", "equity": 100561477, "ret": 0.56}, {"id": "v317", "ph": "51f8ee6d", "equity": 100498339, "ret": 0.5}, {"id": "v315", "ph": "e6d5b283", "equity": 100458935, "ret": 0.46}, {"id": "v314", "ph": "7511570e", "equity": 100173078, "ret": 0.17}, {"id": "v81", "ph": "a6eac1e4", "equity": 99935386, "ret": -0.06}, {"id": "v95", "ph": "7e28e756", "equity": 99935386, "ret": -0.06}, {"id": "v91", "ph": "5674a3d7", "equity": 99861051, "ret": -0.14}, {"id": "v307", "ph": "6abce93d", "equity": 99777709, "ret": -0.22}, {"id": "v305", "ph": "8cc4eea6", "equity": 99743065, "ret": -0.26}, {"id": "v313", "ph": "b9f4ee72", "equity": 99742527, "ret": -0.26}, {"id": "v49", "ph": "cdba73e0", "equity": 99721831, "ret": -0.28}, {"id": "v51", "ph": "21a98e46", "equity": 99721831, "ret": -0.28}, {"id": "v316", "ph": "8dc1d197", "equity": 99373992, "ret": -0.63}, {"id": "v302", "ph": "3f30502d", "equity": 99359071, "ret": -0.64}, {"id": "v99", "ph": "fb39409b", "equity": 99351671, "ret": -0.65}, {"id": "v101", "ph": "c4354346", "equity": 99351671, "ret": -0.65}, {"id": "v304", "ph": "96c7e8e1", "equity": 99275158, "ret": -0.72}, {"id": "v320", "ph": "48d6a9ef", "equity": 99264932, "ret": -0.74}, {"id": "v319", "ph": "ca25f043", "equity": 99228748, "ret": -0.77}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99184020, "ret": -0.82}, {"id": "v203", "ph": "2071defa", "equity": 99184020, "ret": -0.82}, {"id": "v199", "ph": "390bfab3", "equity": 99107760, "ret": -0.89}, {"id": "v207", "ph": "0f6601a0", "equity": 99107760, "ret": -0.89}, {"id": "v209", "ph": "8730802d", "equity": 99107760, "ret": -0.89}, {"id": "v57", "ph": "e7e98b6d", "equity": 99089809, "ret": -0.91}, {"id": "v59", "ph": "1858e2ec", "equity": 99089809, "ret": -0.91}, {"id": "v157", "ph": "80f3e23b", "equity": 98971766, "ret": -1.03}, {"id": "v159", "ph": "af80c67a", "equity": 98971766, "ret": -1.03}, {"id": "v161", "ph": "ed5677e6", "equity": 98847202, "ret": -1.15}, {"id": "v165", "ph": "8f862b27", "equity": 98847202, "ret": -1.15}, {"id": "v167", "ph": "b6d6aed8", "equity": 98847202, "ret": -1.15}, {"id": "v311", "ph": "8409c6e5", "equity": 98788881, "ret": -1.21}, {"id": "v301", "ph": "30da2021", "equity": 98678112, "ret": -1.32}, {"id": "v1", "ph": "4874f4c9", "equity": 98537662, "ret": -1.46}, {"id": "v217", "ph": "4c547a61", "equity": 98541610, "ret": -1.46}, {"id": "v218", "ph": "7304d2d4", "equity": 98541610, "ret": -1.46}, {"id": "v309", "ph": "07610040", "equity": 98525429, "ret": -1.47}, {"id": "v310", "ph": "ec9dd55c", "equity": 98512835, "ret": -1.49}, {"id": "v223", "ph": "b57356b8", "equity": 98469242, "ret": -1.53}, {"id": "v224", "ph": "888ab069", "equity": 98469242, "ret": -1.53}, {"id": "v229", "ph": "d9261dfb", "equity": 98469242, "ret": -1.53}, {"id": "v230", "ph": "141579fe", "equity": 98469242, "ret": -1.53}, {"id": "v235", "ph": "3e6c1666", "equity": 98469242, "ret": -1.53}, {"id": "v236", "ph": "f9c75560", "equity": 98469242, "ret": -1.53}, {"id": "v265", "ph": "7faed59d", "equity": 98469242, "ret": -1.53}, {"id": "v266", "ph": "c133b585", "equity": 98469242, "ret": -1.53}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98469242, "ret": -1.53}, {"id": "v272", "ph": "2ed2027f", "equity": 98469242, "ret": -1.53}, {"id": "v277", "ph": "488b612a", "equity": 98469242, "ret": -1.53}, {"id": "v278", "ph": "861fb42b", "equity": 98469242, "ret": -1.53}, {"id": "v283", "ph": "479e4b25", "equity": 98469242, "ret": -1.53}, {"id": "v284", "ph": "261c5d58", "equity": 98469242, "ret": -1.53}, {"id": "v318", "ph": "c99872ef", "equity": 97999020, "ret": -2.0}, {"id": "v303", "ph": "1a084164", "equity": 97258359, "ret": -2.74}, {"id": "v300", "ph": "c6ddc17b", "equity": 96532942, "ret": -3.47}, {"id": "v312", "ph": "4c23846f", "equity": 96196017, "ret": -3.8}, {"id": "v298", "ph": "5d4bbec0", "equity": 94827463, "ret": -5.17}, {"id": "v296", "ph": "4c554378", "equity": 94813548, "ret": -5.19}, {"id": "v299", "ph": "25046b1a", "equity": 93333201, "ret": -6.67}], "20260701": [{"id": "v308", "ph": "cb12dd0b", "equity": 101360932, "ret": 1.36}, {"id": "v306", "ph": "6966b8f6", "equity": 101023539, "ret": 1.02}, {"id": "v321", "ph": "e82de49b", "equity": 100836847, "ret": 0.84}, {"id": "v315", "ph": "e6d5b283", "equity": 100570300, "ret": 0.57}, {"id": "v314", "ph": "7511570e", "equity": 100059178, "ret": 0.06}, {"id": "v87", "ph": "c0be98c0", "equity": 99918552, "ret": -0.08}, {"id": "v93", "ph": "f10d4e45", "equity": 99918552, "ret": -0.08}, {"id": "v103", "ph": "75b0a37c", "equity": 99860630, "ret": -0.14}, {"id": "v317", "ph": "51f8ee6d", "equity": 99859195, "ret": -0.14}, {"id": "v81", "ph": "a6eac1e4", "equity": 99804200, "ret": -0.2}, {"id": "v95", "ph": "7e28e756", "equity": 99804200, "ret": -0.2}, {"id": "v91", "ph": "5674a3d7", "equity": 99732447, "ret": -0.27}, {"id": "v147", "ph": "2fbeeedb", "equity": 99693486, "ret": -0.31}, {"id": "v151", "ph": "2eb1dd06", "equity": 99693486, "ret": -0.31}, {"id": "v49", "ph": "cdba73e0", "equity": 99613131, "ret": -0.39}, {"id": "v51", "ph": "21a98e46", "equity": 99613131, "ret": -0.39}, {"id": "v197", "ph": "5c290a32", "equity": 99601051, "ret": -0.4}, {"id": "v149", "ph": "c5329f8d", "equity": 99575229, "ret": -0.42}, {"id": "v89", "ph": "c49d5680", "equity": 99567185, "ret": -0.43}, {"id": "v105", "ph": "88395429", "equity": 99565829, "ret": -0.43}, {"id": "v107", "ph": "be5cd36b", "equity": 99546459, "ret": -0.45}, {"id": "v205", "ph": "02e5a3f5", "equity": 99543130, "ret": -0.46}, {"id": "v97", "ph": "ebf31977", "equity": 99509263, "ret": -0.49}, {"id": "v195", "ph": "dd89cf59", "equity": 99462748, "ret": -0.54}, {"id": "v201", "ph": "cb8a413e", "equity": 99462748, "ret": -0.54}, {"id": "v211", "ph": "9227673c", "equity": 99404827, "ret": -0.6}, {"id": "v47", "ph": "ed758fcf", "equity": 99370627, "ret": -0.63}, {"id": "v99", "ph": "fb39409b", "equity": 99226467, "ret": -0.77}, {"id": "v101", "ph": "c4354346", "equity": 99226467, "ret": -0.77}, {"id": "v213", "ph": "0e1d8e45", "equity": 99196638, "ret": -0.8}, {"id": "v302", "ph": "3f30502d", "equity": 99089671, "ret": -0.91}, {"id": "v40", "ph": "70731d89", "equity": 99078373, "ret": -0.92}, {"id": "v313", "ph": "b9f4ee72", "equity": 99063825, "ret": -0.94}, {"id": "v215", "ph": "a904a49d", "equity": 99027622, "ret": -0.97}, {"id": "v207", "ph": "0f6601a0", "equity": 99015662, "ret": -0.98}, {"id": "v209", "ph": "8730802d", "equity": 99015662, "ret": -0.98}, {"id": "v155", "ph": "31c0d84e", "equity": 98992814, "ret": -1.01}, {"id": "v189", "ph": "dfdbd0c8", "equity": 98988762, "ret": -1.01}, {"id": "v203", "ph": "2071defa", "equity": 98988762, "ret": -1.01}, {"id": "v57", "ph": "e7e98b6d", "equity": 98982309, "ret": -1.02}, {"id": "v59", "ph": "1858e2ec", "equity": 98982309, "ret": -1.02}, {"id": "v199", "ph": "390bfab3", "equity": 98915940, "ret": -1.08}, {"id": "v307", "ph": "6abce93d", "equity": 98890484, "ret": -1.11}, {"id": "v319", "ph": "ca25f043", "equity": 98830572, "ret": -1.17}, {"id": "v157", "ph": "80f3e23b", "equity": 98795294, "ret": -1.2}, {"id": "v159", "ph": "af80c67a", "equity": 98795294, "ret": -1.2}, {"id": "v161", "ph": "ed5677e6", "equity": 98767602, "ret": -1.23}, {"id": "v165", "ph": "8f862b27", "equity": 98767602, "ret": -1.23}, {"id": "v167", "ph": "b6d6aed8", "equity": 98767602, "ret": -1.23}, {"id": "v316", "ph": "8dc1d197", "equity": 98752327, "ret": -1.25}, {"id": "v41", "ph": "e9d84e84", "equity": 98699639, "ret": -1.3}, {"id": "v305", "ph": "8cc4eea6", "equity": 98581531, "ret": -1.42}, {"id": "v304", "ph": "96c7e8e1", "equity": 98559814, "ret": -1.44}, {"id": "v320", "ph": "48d6a9ef", "equity": 98556948, "ret": -1.44}, {"id": "v4", "ph": "b6219595", "equity": 98505594, "ret": -1.49}, {"id": "v301", "ph": "30da2021", "equity": 98413612, "ret": -1.59}, {"id": "v1", "ph": "4874f4c9", "equity": 98294162, "ret": -1.71}, {"id": "v310", "ph": "ec9dd55c", "equity": 97841463, "ret": -2.16}, {"id": "v217", "ph": "4c547a61", "equity": 97681778, "ret": -2.32}, {"id": "v218", "ph": "7304d2d4", "equity": 97681778, "ret": -2.32}, {"id": "v223", "ph": "b57356b8", "equity": 97609410, "ret": -2.39}, {"id": "v224", "ph": "888ab069", "equity": 97609410, "ret": -2.39}, {"id": "v229", "ph": "d9261dfb", "equity": 97609410, "ret": -2.39}, {"id": "v230", "ph": "141579fe", "equity": 97609410, "ret": -2.39}, {"id": "v235", "ph": "3e6c1666", "equity": 97609410, "ret": -2.39}, {"id": "v236", "ph": "f9c75560", "equity": 97609410, "ret": -2.39}, {"id": "v265", "ph": "7faed59d", "equity": 97609410, "ret": -2.39}, {"id": "v266", "ph": "c133b585", "equity": 97609410, "ret": -2.39}, {"id": "v271", "ph": "2b9ccdcd", "equity": 97609410, "ret": -2.39}, {"id": "v272", "ph": "2ed2027f", "equity": 97609410, "ret": -2.39}, {"id": "v277", "ph": "488b612a", "equity": 97609410, "ret": -2.39}, {"id": "v278", "ph": "861fb42b", "equity": 97609410, "ret": -2.39}, {"id": "v283", "ph": "479e4b25", "equity": 97609410, "ret": -2.39}, {"id": "v284", "ph": "261c5d58", "equity": 97609410, "ret": -2.39}, {"id": "v309", "ph": "07610040", "equity": 97561429, "ret": -2.44}, {"id": "v311", "ph": "8409c6e5", "equity": 97339411, "ret": -2.66}, {"id": "v318", "ph": "c99872ef", "equity": 96866665, "ret": -3.13}, {"id": "v303", "ph": "1a084164", "equity": 96567001, "ret": -3.43}, {"id": "v312", "ph": "4c23846f", "equity": 94754537, "ret": -5.25}, {"id": "v300", "ph": "c6ddc17b", "equity": 93711266, "ret": -6.29}, {"id": "v296", "ph": "4c554378", "equity": 93238208, "ret": -6.76}, {"id": "v298", "ph": "5d4bbec0", "equity": 91885138, "ret": -8.11}, {"id": "v299", "ph": "25046b1a", "equity": 90740541, "ret": -9.26}], "20260702": [{"id": "v321", "ph": "e82de49b", "equity": 98791447, "ret": -1.21}, {"id": "v319", "ph": "ca25f043", "equity": 98585872, "ret": -1.41}, {"id": "v313", "ph": "b9f4ee72", "equity": 98254344, "ret": -1.75}, {"id": "v317", "ph": "51f8ee6d", "equity": 98083547, "ret": -1.92}, {"id": "v316", "ph": "8dc1d197", "equity": 97958697, "ret": -2.04}, {"id": "v306", "ph": "6966b8f6", "equity": 97799665, "ret": -2.2}, {"id": "v320", "ph": "48d6a9ef", "equity": 97726108, "ret": -2.27}, {"id": "v314", "ph": "7511570e", "equity": 97620794, "ret": -2.38}, {"id": "v307", "ph": "6abce93d", "equity": 97389674, "ret": -2.61}, {"id": "v205", "ph": "02e5a3f5", "equity": 97246999, "ret": -2.75}, {"id": "v91", "ph": "5674a3d7", "equity": 97234833, "ret": -2.77}, {"id": "v81", "ph": "a6eac1e4", "equity": 96929027, "ret": -3.07}, {"id": "v95", "ph": "7e28e756", "equity": 96929027, "ret": -3.07}, {"id": "v99", "ph": "fb39409b", "equity": 96779933, "ret": -3.22}, {"id": "v101", "ph": "c4354346", "equity": 96779933, "ret": -3.22}, {"id": "v49", "ph": "cdba73e0", "equity": 96739834, "ret": -3.26}, {"id": "v51", "ph": "21a98e46", "equity": 96739834, "ret": -3.26}, {"id": "v199", "ph": "390bfab3", "equity": 96631456, "ret": -3.37}, {"id": "v304", "ph": "96c7e8e1", "equity": 96611170, "ret": -3.39}, {"id": "v197", "ph": "5c290a32", "equity": 96566014, "ret": -3.43}, {"id": "v207", "ph": "0f6601a0", "equity": 96572081, "ret": -3.43}, {"id": "v209", "ph": "8730802d", "equity": 96572081, "ret": -3.43}, {"id": "v57", "ph": "e7e98b6d", "equity": 96539505, "ret": -3.46}, {"id": "v59", "ph": "1858e2ec", "equity": 96539505, "ret": -3.46}, {"id": "v103", "ph": "75b0a37c", "equity": 96385631, "ret": -3.61}, {"id": "v161", "ph": "ed5677e6", "equity": 96318491, "ret": -3.68}, {"id": "v165", "ph": "8f862b27", "equity": 96318491, "ret": -3.68}, {"id": "v167", "ph": "b6d6aed8", "equity": 96318491, "ret": -3.68}, {"id": "v315", "ph": "e6d5b283", "equity": 96255988, "ret": -3.74}, {"id": "v195", "ph": "dd89cf59", "equity": 96182658, "ret": -3.82}, {"id": "v201", "ph": "cb8a413e", "equity": 96182658, "ret": -3.82}, {"id": "v189", "ph": "dfdbd0c8", "equity": 96136966, "ret": -3.86}, {"id": "v203", "ph": "2071defa", "equity": 96136966, "ret": -3.86}, {"id": "v217", "ph": "4c547a61", "equity": 96094928, "ret": -3.91}, {"id": "v218", "ph": "7304d2d4", "equity": 96094928, "ret": -3.91}, {"id": "v305", "ph": "8cc4eea6", "equity": 96059397, "ret": -3.94}, {"id": "v308", "ph": "cb12dd0b", "equity": 96046199, "ret": -3.95}, {"id": "v223", "ph": "b57356b8", "equity": 96022560, "ret": -3.98}, {"id": "v224", "ph": "888ab069", "equity": 96022560, "ret": -3.98}, {"id": "v229", "ph": "d9261dfb", "equity": 96022560, "ret": -3.98}, {"id": "v230", "ph": "141579fe", "equity": 96022560, "ret": -3.98}, {"id": "v235", "ph": "3e6c1666", "equity": 96022560, "ret": -3.98}, {"id": "v236", "ph": "f9c75560", "equity": 96022560, "ret": -3.98}, {"id": "v265", "ph": "7faed59d", "equity": 96022560, "ret": -3.98}, {"id": "v266", "ph": "c133b585", "equity": 96022560, "ret": -3.98}, {"id": "v271", "ph": "2b9ccdcd", "equity": 96022560, "ret": -3.98}, {"id": "v272", "ph": "2ed2027f", "equity": 96022560, "ret": -3.98}, {"id": "v277", "ph": "488b612a", "equity": 96022560, "ret": -3.98}, {"id": "v278", "ph": "861fb42b", "equity": 96022560, "ret": -3.98}, {"id": "v283", "ph": "479e4b25", "equity": 96022560, "ret": -3.98}, {"id": "v284", "ph": "261c5d58", "equity": 96022560, "ret": -3.98}, {"id": "v97", "ph": "ebf31977", "equity": 95995095, "ret": -4.0}, {"id": "v157", "ph": "80f3e23b", "equity": 95937374, "ret": -4.06}, {"id": "v159", "ph": "af80c67a", "equity": 95937374, "ret": -4.06}, {"id": "v211", "ph": "9227673c", "equity": 95933695, "ret": -4.07}, {"id": "v87", "ph": "c0be98c0", "equity": 95582492, "ret": -4.42}, {"id": "v93", "ph": "f10d4e45", "equity": 95582492, "ret": -4.42}, {"id": "v302", "ph": "3f30502d", "equity": 95445187, "ret": -4.55}, {"id": "v105", "ph": "88395429", "equity": 95443794, "ret": -4.56}, {"id": "v107", "ph": "be5cd36b", "equity": 95420371, "ret": -4.58}, {"id": "v47", "ph": "ed758fcf", "equity": 95248102, "ret": -4.75}, {"id": "v89", "ph": "c49d5680", "equity": 95191756, "ret": -4.81}, {"id": "v213", "ph": "0e1d8e45", "equity": 95032623, "ret": -4.97}, {"id": "v303", "ph": "1a084164", "equity": 94973975, "ret": -5.03}, {"id": "v301", "ph": "30da2021", "equity": 94918817, "ret": -5.08}, {"id": "v155", "ph": "31c0d84e", "equity": 94884928, "ret": -5.12}, {"id": "v149", "ph": "c5329f8d", "equity": 94835485, "ret": -5.16}, {"id": "v215", "ph": "a904a49d", "equity": 94714687, "ret": -5.29}, {"id": "v310", "ph": "ec9dd55c", "equity": 94667951, "ret": -5.33}, {"id": "v1", "ph": "4874f4c9", "equity": 94529504, "ret": -5.47}, {"id": "v318", "ph": "c99872ef", "equity": 94498663, "ret": -5.5}, {"id": "v147", "ph": "2fbeeedb", "equity": 93309835, "ret": -6.69}, {"id": "v151", "ph": "2eb1dd06", "equity": 93309835, "ret": -6.69}, {"id": "v41", "ph": "e9d84e84", "equity": 92888798, "ret": -7.11}, {"id": "v309", "ph": "07610040", "equity": 92000675, "ret": -8.0}, {"id": "v311", "ph": "8409c6e5", "equity": 91855356, "ret": -8.14}, {"id": "v4", "ph": "b6219595", "equity": 91060410, "ret": -8.94}, {"id": "v40", "ph": "70731d89", "equity": 90588484, "ret": -9.41}, {"id": "v312", "ph": "4c23846f", "equity": 90083317, "ret": -9.92}, {"id": "v296", "ph": "4c554378", "equity": 89998698, "ret": -10.0}, {"id": "v300", "ph": "c6ddc17b", "equity": 85532266, "ret": -14.47}, {"id": "v299", "ph": "25046b1a", "equity": 84271313, "ret": -15.73}, {"id": "v298", "ph": "5d4bbec0", "equity": 84062899, "ret": -15.94}], "20260703": [{"id": "v319", "ph": "ca25f043", "equity": 98425166, "ret": -1.57}, {"id": "v321", "ph": "e82de49b", "equity": 98254043, "ret": -1.75}, {"id": "v313", "ph": "b9f4ee72", "equity": 98201465, "ret": -1.8}, {"id": "v316", "ph": "8dc1d197", "equity": 97685295, "ret": -2.31}, {"id": "v317", "ph": "51f8ee6d", "equity": 97525130, "ret": -2.47}, {"id": "v320", "ph": "48d6a9ef", "equity": 97485037, "ret": -2.51}, {"id": "v314", "ph": "7511570e", "equity": 97275856, "ret": -2.72}, {"id": "v307", "ph": "6abce93d", "equity": 97013909, "ret": -2.99}, {"id": "v205", "ph": "02e5a3f5", "equity": 96883635, "ret": -3.12}, {"id": "v91", "ph": "5674a3d7", "equity": 96607445, "ret": -3.39}, {"id": "v306", "ph": "6966b8f6", "equity": 96557673, "ret": -3.44}, {"id": "v199", "ph": "390bfab3", "equity": 96554368, "ret": -3.45}, {"id": "v304", "ph": "96c7e8e1", "equity": 96441037, "ret": -3.56}, {"id": "v197", "ph": "5c290a32", "equity": 96399937, "ret": -3.6}, {"id": "v99", "ph": "fb39409b", "equity": 96145358, "ret": -3.85}, {"id": "v101", "ph": "c4354346", "equity": 96145358, "ret": -3.85}, {"id": "v207", "ph": "0f6601a0", "equity": 96048256, "ret": -3.95}, {"id": "v209", "ph": "8730802d", "equity": 96048256, "ret": -3.95}, {"id": "v57", "ph": "e7e98b6d", "equity": 95904930, "ret": -4.1}, {"id": "v59", "ph": "1858e2ec", "equity": 95904930, "ret": -4.1}, {"id": "v315", "ph": "e6d5b283", "equity": 95877764, "ret": -4.12}, {"id": "v103", "ph": "75b0a37c", "equity": 95790009, "ret": -4.21}, {"id": "v161", "ph": "ed5677e6", "equity": 95776078, "ret": -4.22}, {"id": "v165", "ph": "8f862b27", "equity": 95776078, "ret": -4.22}, {"id": "v167", "ph": "b6d6aed8", "equity": 95776078, "ret": -4.22}, {"id": "v49", "ph": "cdba73e0", "equity": 95750950, "ret": -4.25}, {"id": "v51", "ph": "21a98e46", "equity": 95750950, "ret": -4.25}, {"id": "v195", "ph": "dd89cf59", "equity": 95673198, "ret": -4.33}, {"id": "v201", "ph": "cb8a413e", "equity": 95673198, "ret": -4.33}, {"id": "v217", "ph": "4c547a61", "equity": 95667983, "ret": -4.33}, {"id": "v218", "ph": "7304d2d4", "equity": 95667983, "ret": -4.33}, {"id": "v81", "ph": "a6eac1e4", "equity": 95606729, "ret": -4.39}, {"id": "v95", "ph": "7e28e756", "equity": 95606729, "ret": -4.39}, {"id": "v223", "ph": "b57356b8", "equity": 95595615, "ret": -4.4}, {"id": "v224", "ph": "888ab069", "equity": 95595615, "ret": -4.4}, {"id": "v229", "ph": "d9261dfb", "equity": 95595615, "ret": -4.4}, {"id": "v230", "ph": "141579fe", "equity": 95595615, "ret": -4.4}, {"id": "v235", "ph": "3e6c1666", "equity": 95595615, "ret": -4.4}, {"id": "v236", "ph": "f9c75560", "equity": 95595615, "ret": -4.4}, {"id": "v265", "ph": "7faed59d", "equity": 95595615, "ret": -4.4}, {"id": "v266", "ph": "c133b585", "equity": 95595615, "ret": -4.4}, {"id": "v271", "ph": "2b9ccdcd", "equity": 95595615, "ret": -4.4}, {"id": "v272", "ph": "2ed2027f", "equity": 95595615, "ret": -4.4}, {"id": "v277", "ph": "488b612a", "equity": 95595615, "ret": -4.4}, {"id": "v278", "ph": "861fb42b", "equity": 95595615, "ret": -4.4}, {"id": "v283", "ph": "479e4b25", "equity": 95595615, "ret": -4.4}, {"id": "v284", "ph": "261c5d58", "equity": 95595615, "ret": -4.4}, {"id": "v305", "ph": "8cc4eea6", "equity": 95541925, "ret": -4.46}, {"id": "v211", "ph": "9227673c", "equity": 95426636, "ret": -4.57}, {"id": "v157", "ph": "80f3e23b", "equity": 95415410, "ret": -4.58}, {"id": "v159", "ph": "af80c67a", "equity": 95415410, "ret": -4.58}, {"id": "v189", "ph": "dfdbd0c8", "equity": 95279466, "ret": -4.72}, {"id": "v203", "ph": "2071defa", "equity": 95279466, "ret": -4.72}, {"id": "v97", "ph": "ebf31977", "equity": 95090844, "ret": -4.91}, {"id": "v87", "ph": "c0be98c0", "equity": 94984959, "ret": -5.02}, {"id": "v93", "ph": "f10d4e45", "equity": 94984959, "ret": -5.02}, {"id": "v308", "ph": "cb12dd0b", "equity": 94777607, "ret": -5.22}, {"id": "v302", "ph": "3f30502d", "equity": 94528879, "ret": -5.47}, {"id": "v303", "ph": "1a084164", "equity": 94528920, "ret": -5.47}, {"id": "v310", "ph": "ec9dd55c", "equity": 94363260, "ret": -5.64}, {"id": "v107", "ph": "be5cd36b", "equity": 94341505, "ret": -5.66}, {"id": "v89", "ph": "c49d5680", "equity": 94285756, "ret": -5.71}, {"id": "v155", "ph": "31c0d84e", "equity": 94292507, "ret": -5.71}, {"id": "v47", "ph": "ed758fcf", "equity": 94188860, "ret": -5.81}, {"id": "v213", "ph": "0e1d8e45", "equity": 94106686, "ret": -5.89}, {"id": "v105", "ph": "88395429", "equity": 94051138, "ret": -5.95}, {"id": "v301", "ph": "30da2021", "equity": 94001763, "ret": -6.0}, {"id": "v149", "ph": "c5329f8d", "equity": 93961371, "ret": -6.04}, {"id": "v318", "ph": "c99872ef", "equity": 93732003, "ret": -6.27}, {"id": "v215", "ph": "a904a49d", "equity": 93655835, "ret": -6.34}, {"id": "v1", "ph": "4874f4c9", "equity": 93473178, "ret": -6.53}, {"id": "v147", "ph": "2fbeeedb", "equity": 92615293, "ret": -7.38}, {"id": "v151", "ph": "2eb1dd06", "equity": 92615293, "ret": -7.38}, {"id": "v309", "ph": "07610040", "equity": 91881104, "ret": -8.12}, {"id": "v41", "ph": "e9d84e84", "equity": 91480991, "ret": -8.52}, {"id": "v311", "ph": "8409c6e5", "equity": 91180769, "ret": -8.82}, {"id": "v312", "ph": "4c23846f", "equity": 89938849, "ret": -10.06}, {"id": "v296", "ph": "4c554378", "equity": 89823803, "ret": -10.18}, {"id": "v4", "ph": "b6219595", "equity": 89703610, "ret": -10.3}, {"id": "v40", "ph": "70731d89", "equity": 89146216, "ret": -10.85}, {"id": "v300", "ph": "c6ddc17b", "equity": 84388306, "ret": -15.61}, {"id": "v298", "ph": "5d4bbec0", "equity": 83997991, "ret": -16.0}, {"id": "v299", "ph": "25046b1a", "equity": 83603796, "ret": -16.4}], "20260706": [{"id": "v319", "ph": "ca25f043", "equity": 98197566, "ret": -1.8}, {"id": "v313", "ph": "b9f4ee72", "equity": 97603564, "ret": -2.4}, {"id": "v316", "ph": "8dc1d197", "equity": 97234734, "ret": -2.77}, {"id": "v321", "ph": "e82de49b", "equity": 97144508, "ret": -2.86}, {"id": "v317", "ph": "51f8ee6d", "equity": 96840895, "ret": -3.16}, {"id": "v320", "ph": "48d6a9ef", "equity": 96760128, "ret": -3.24}, {"id": "v307", "ph": "6abce93d", "equity": 96230218, "ret": -3.77}, {"id": "v314", "ph": "7511570e", "equity": 95751362, "ret": -4.25}, {"id": "v205", "ph": "02e5a3f5", "equity": 95544491, "ret": -4.46}, {"id": "v91", "ph": "5674a3d7", "equity": 95510977, "ret": -4.49}, {"id": "v199", "ph": "390bfab3", "equity": 95397379, "ret": -4.6}, {"id": "v304", "ph": "96c7e8e1", "equity": 95339874, "ret": -4.66}, {"id": "v99", "ph": "fb39409b", "equity": 95236824, "ret": -4.76}, {"id": "v101", "ph": "c4354346", "equity": 95236824, "ret": -4.76}, {"id": "v207", "ph": "0f6601a0", "equity": 95075567, "ret": -4.92}, {"id": "v209", "ph": "8730802d", "equity": 95075567, "ret": -4.92}, {"id": "v81", "ph": "a6eac1e4", "equity": 95007002, "ret": -4.99}, {"id": "v95", "ph": "7e28e756", "equity": 95007002, "ret": -4.99}, {"id": "v197", "ph": "5c290a32", "equity": 94741409, "ret": -5.26}, {"id": "v57", "ph": "e7e98b6d", "equity": 94699077, "ret": -5.3}, {"id": "v59", "ph": "1858e2ec", "equity": 94699077, "ret": -5.3}, {"id": "v103", "ph": "75b0a37c", "equity": 94668122, "ret": -5.33}, {"id": "v306", "ph": "6966b8f6", "equity": 94605287, "ret": -5.39}, {"id": "v161", "ph": "ed5677e6", "equity": 94496826, "ret": -5.5}, {"id": "v165", "ph": "8f862b27", "equity": 94496826, "ret": -5.5}, {"id": "v167", "ph": "b6d6aed8", "equity": 94496826, "ret": -5.5}, {"id": "v189", "ph": "dfdbd0c8", "equity": 94488662, "ret": -5.51}, {"id": "v203", "ph": "2071defa", "equity": 94488662, "ret": -5.51}, {"id": "v217", "ph": "4c547a61", "equity": 94426233, "ret": -5.57}, {"id": "v218", "ph": "7304d2d4", "equity": 94426233, "ret": -5.57}, {"id": "v49", "ph": "cdba73e0", "equity": 94406113, "ret": -5.59}, {"id": "v51", "ph": "21a98e46", "equity": 94406113, "ret": -5.59}, {"id": "v223", "ph": "b57356b8", "equity": 94355882, "ret": -5.64}, {"id": "v224", "ph": "888ab069", "equity": 94355882, "ret": -5.64}, {"id": "v229", "ph": "d9261dfb", "equity": 94355882, "ret": -5.64}, {"id": "v230", "ph": "141579fe", "equity": 94355882, "ret": -5.64}, {"id": "v235", "ph": "3e6c1666", "equity": 94355882, "ret": -5.64}, {"id": "v236", "ph": "f9c75560", "equity": 94355882, "ret": -5.64}, {"id": "v265", "ph": "7faed59d", "equity": 94355882, "ret": -5.64}, {"id": "v266", "ph": "c133b585", "equity": 94355882, "ret": -5.64}, {"id": "v271", "ph": "2b9ccdcd", "equity": 94355882, "ret": -5.64}, {"id": "v272", "ph": "2ed2027f", "equity": 94355882, "ret": -5.64}, {"id": "v277", "ph": "488b612a", "equity": 94355882, "ret": -5.64}, {"id": "v278", "ph": "861fb42b", "equity": 94355882, "ret": -5.64}, {"id": "v283", "ph": "479e4b25", "equity": 94355882, "ret": -5.64}, {"id": "v284", "ph": "261c5d58", "equity": 94355882, "ret": -5.64}, {"id": "v211", "ph": "9227673c", "equity": 94235871, "ret": -5.76}, {"id": "v305", "ph": "8cc4eea6", "equity": 94224669, "ret": -5.78}, {"id": "v195", "ph": "dd89cf59", "equity": 94212019, "ret": -5.79}, {"id": "v201", "ph": "cb8a413e", "equity": 94212019, "ret": -5.79}, {"id": "v157", "ph": "80f3e23b", "equity": 93957691, "ret": -6.04}, {"id": "v159", "ph": "af80c67a", "equity": 93957691, "ret": -6.04}, {"id": "v310", "ph": "ec9dd55c", "equity": 93938789, "ret": -6.06}, {"id": "v107", "ph": "be5cd36b", "equity": 93866495, "ret": -6.13}, {"id": "v97", "ph": "ebf31977", "equity": 93770220, "ret": -6.23}, {"id": "v315", "ph": "e6d5b283", "equity": 93711754, "ret": -6.29}, {"id": "v87", "ph": "c0be98c0", "equity": 93450916, "ret": -6.55}, {"id": "v93", "ph": "f10d4e45", "equity": 93450916, "ret": -6.55}, {"id": "v303", "ph": "1a084164", "equity": 93378687, "ret": -6.62}, {"id": "v105", "ph": "88395429", "equity": 93223229, "ret": -6.78}, {"id": "v213", "ph": "0e1d8e45", "equity": 93085970, "ret": -6.91}, {"id": "v215", "ph": "a904a49d", "equity": 92982818, "ret": -7.02}, {"id": "v308", "ph": "cb12dd0b", "equity": 92964903, "ret": -7.04}, {"id": "v318", "ph": "c99872ef", "equity": 92867651, "ret": -7.13}, {"id": "v47", "ph": "ed758fcf", "equity": 92618653, "ret": -7.38}, {"id": "v155", "ph": "31c0d84e", "equity": 92607149, "ret": -7.39}, {"id": "v302", "ph": "3f30502d", "equity": 92518208, "ret": -7.48}, {"id": "v89", "ph": "c49d5680", "equity": 92511480, "ret": -7.49}, {"id": "v301", "ph": "30da2021", "equity": 92319361, "ret": -7.68}, {"id": "v1", "ph": "4874f4c9", "equity": 91573111, "ret": -8.43}, {"id": "v149", "ph": "c5329f8d", "equity": 91557578, "ret": -8.44}, {"id": "v147", "ph": "2fbeeedb", "equity": 89660568, "ret": -10.34}, {"id": "v151", "ph": "2eb1dd06", "equity": 89660568, "ret": -10.34}, {"id": "v309", "ph": "07610040", "equity": 89431315, "ret": -10.57}, {"id": "v311", "ph": "8409c6e5", "equity": 89401928, "ret": -10.6}, {"id": "v296", "ph": "4c554378", "equity": 89247261, "ret": -10.75}, {"id": "v41", "ph": "e9d84e84", "equity": 88846484, "ret": -11.15}, {"id": "v312", "ph": "4c23846f", "equity": 88019396, "ret": -11.98}, {"id": "v4", "ph": "b6219595", "equity": 86554007, "ret": -13.45}, {"id": "v40", "ph": "70731d89", "equity": 85831302, "ret": -14.17}, {"id": "v300", "ph": "c6ddc17b", "equity": 82944532, "ret": -17.06}, {"id": "v298", "ph": "5d4bbec0", "equity": 81095511, "ret": -18.9}, {"id": "v299", "ph": "25046b1a", "equity": 80278493, "ret": -19.72}], "20260707": [{"id": "v319", "ph": "ca25f043", "equity": 98693670, "ret": -1.31}, {"id": "v316", "ph": "8dc1d197", "equity": 98305505, "ret": -1.69}, {"id": "v313", "ph": "b9f4ee72", "equity": 98262263, "ret": -1.74}, {"id": "v320", "ph": "48d6a9ef", "equity": 98247893, "ret": -1.75}, {"id": "v317", "ph": "51f8ee6d", "equity": 97707033, "ret": -2.29}, {"id": "v314", "ph": "7511570e", "equity": 97509493, "ret": -2.49}, {"id": "v91", "ph": "5674a3d7", "equity": 97333001, "ret": -2.67}, {"id": "v199", "ph": "390bfab3", "equity": 97277991, "ret": -2.72}, {"id": "v321", "ph": "e82de49b", "equity": 97253215, "ret": -2.75}, {"id": "v81", "ph": "a6eac1e4", "equity": 97049213, "ret": -2.95}, {"id": "v95", "ph": "7e28e756", "equity": 97050436, "ret": -2.95}, {"id": "v306", "ph": "6966b8f6", "equity": 96847146, "ret": -3.15}, {"id": "v307", "ph": "6abce93d", "equity": 96696164, "ret": -3.3}, {"id": "v189", "ph": "dfdbd0c8", "equity": 96556561, "ret": -3.44}, {"id": "v203", "ph": "2071defa", "equity": 96557781, "ret": -3.44}, {"id": "v99", "ph": "fb39409b", "equity": 96461789, "ret": -3.54}, {"id": "v101", "ph": "c4354346", "equity": 96462037, "ret": -3.54}, {"id": "v205", "ph": "02e5a3f5", "equity": 96453452, "ret": -3.55}, {"id": "v304", "ph": "96c7e8e1", "equity": 96428577, "ret": -3.57}, {"id": "v305", "ph": "8cc4eea6", "equity": 96418011, "ret": -3.58}, {"id": "v103", "ph": "75b0a37c", "equity": 96298247, "ret": -3.7}, {"id": "v49", "ph": "cdba73e0", "equity": 96002579, "ret": -4.0}, {"id": "v51", "ph": "21a98e46", "equity": 96001353, "ret": -4.0}, {"id": "v107", "ph": "be5cd36b", "equity": 95993990, "ret": -4.01}, {"id": "v197", "ph": "5c290a32", "equity": 95968207, "ret": -4.03}, {"id": "v302", "ph": "3f30502d", "equity": 95614631, "ret": -4.39}, {"id": "v157", "ph": "80f3e23b", "equity": 95569082, "ret": -4.43}, {"id": "v159", "ph": "af80c67a", "equity": 95567859, "ret": -4.43}, {"id": "v57", "ph": "e7e98b6d", "equity": 95554443, "ret": -4.45}, {"id": "v59", "ph": "1858e2ec", "equity": 95554690, "ret": -4.45}, {"id": "v207", "ph": "0f6601a0", "equity": 95525632, "ret": -4.47}, {"id": "v209", "ph": "8730802d", "equity": 95525880, "ret": -4.47}, {"id": "v217", "ph": "4c547a61", "equity": 95450761, "ret": -4.55}, {"id": "v218", "ph": "7304d2d4", "equity": 95450761, "ret": -4.55}, {"id": "v223", "ph": "b57356b8", "equity": 95388809, "ret": -4.61}, {"id": "v224", "ph": "888ab069", "equity": 95388809, "ret": -4.61}, {"id": "v229", "ph": "d9261dfb", "equity": 95388809, "ret": -4.61}, {"id": "v230", "ph": "141579fe", "equity": 95388809, "ret": -4.61}, {"id": "v235", "ph": "3e6c1666", "equity": 95388809, "ret": -4.61}, {"id": "v236", "ph": "f9c75560", "equity": 95388809, "ret": -4.61}, {"id": "v265", "ph": "7faed59d", "equity": 95388809, "ret": -4.61}, {"id": "v266", "ph": "c133b585", "equity": 95388809, "ret": -4.61}, {"id": "v271", "ph": "2b9ccdcd", "equity": 95388809, "ret": -4.61}, {"id": "v272", "ph": "2ed2027f", "equity": 95388809, "ret": -4.61}, {"id": "v277", "ph": "488b612a", "equity": 95388809, "ret": -4.61}, {"id": "v278", "ph": "861fb42b", "equity": 95388809, "ret": -4.61}, {"id": "v283", "ph": "479e4b25", "equity": 95388809, "ret": -4.61}, {"id": "v284", "ph": "261c5d58", "equity": 95388809, "ret": -4.61}, {"id": "v105", "ph": "88395429", "equity": 95282295, "ret": -4.72}, {"id": "v87", "ph": "c0be98c0", "equity": 95222534, "ret": -4.78}, {"id": "v93", "ph": "f10d4e45", "equity": 95222534, "ret": -4.78}, {"id": "v195", "ph": "dd89cf59", "equity": 95180923, "ret": -4.82}, {"id": "v201", "ph": "cb8a413e", "equity": 95180923, "ret": -4.82}, {"id": "v213", "ph": "0e1d8e45", "equity": 95176202, "ret": -4.82}, {"id": "v211", "ph": "9227673c", "equity": 95089597, "ret": -4.91}, {"id": "v308", "ph": "cb12dd0b", "equity": 94879582, "ret": -5.12}, {"id": "v303", "ph": "1a084164", "equity": 94738991, "ret": -5.26}, {"id": "v97", "ph": "ebf31977", "equity": 94655179, "ret": -5.34}, {"id": "v161", "ph": "ed5677e6", "equity": 94577324, "ret": -5.42}, {"id": "v165", "ph": "8f862b27", "equity": 94577324, "ret": -5.42}, {"id": "v167", "ph": "b6d6aed8", "equity": 94577572, "ret": -5.42}, {"id": "v155", "ph": "31c0d84e", "equity": 94245039, "ret": -5.75}, {"id": "v47", "ph": "ed758fcf", "equity": 94237190, "ret": -5.76}, {"id": "v215", "ph": "a904a49d", "equity": 94242294, "ret": -5.76}, {"id": "v301", "ph": "30da2021", "equity": 93978996, "ret": -6.02}, {"id": "v310", "ph": "ec9dd55c", "equity": 93711421, "ret": -6.29}, {"id": "v89", "ph": "c49d5680", "equity": 93531243, "ret": -6.47}, {"id": "v315", "ph": "e6d5b283", "equity": 93396771, "ret": -6.6}, {"id": "v1", "ph": "4874f4c9", "equity": 93346275, "ret": -6.65}, {"id": "v149", "ph": "c5329f8d", "equity": 92610472, "ret": -7.39}, {"id": "v318", "ph": "c99872ef", "equity": 91695304, "ret": -8.3}, {"id": "v147", "ph": "2fbeeedb", "equity": 91607410, "ret": -8.39}, {"id": "v151", "ph": "2eb1dd06", "equity": 91608014, "ret": -8.39}, {"id": "v41", "ph": "e9d84e84", "equity": 89790563, "ret": -10.21}, {"id": "v311", "ph": "8409c6e5", "equity": 89611335, "ret": -10.39}, {"id": "v309", "ph": "07610040", "equity": 89551113, "ret": -10.45}, {"id": "v4", "ph": "b6219595", "equity": 88521115, "ret": -11.48}, {"id": "v296", "ph": "4c554378", "equity": 88093113, "ret": -11.91}, {"id": "v40", "ph": "70731d89", "equity": 87995606, "ret": -12.0}, {"id": "v312", "ph": "4c23846f", "equity": 86480137, "ret": -13.52}, {"id": "v300", "ph": "c6ddc17b", "equity": 85099596, "ret": -14.9}, {"id": "v298", "ph": "5d4bbec0", "equity": 81378493, "ret": -18.62}, {"id": "v299", "ph": "25046b1a", "equity": 81031423, "ret": -18.97}], "20260708": [{"id": "v319", "ph": "ca25f043", "equity": 97470051, "ret": -2.53}, {"id": "v321", "ph": "e82de49b", "equity": 95863837, "ret": -4.14}, {"id": "v313", "ph": "b9f4ee72", "equity": 95481223, "ret": -4.52}, {"id": "v101", "ph": "c4354346", "equity": 94493731, "ret": -5.51}, {"id": "v317", "ph": "51f8ee6d", "equity": 94450610, "ret": -5.55}, {"id": "v209", "ph": "8730802d", "equity": 94203324, "ret": -5.8}, {"id": "v59", "ph": "1858e2ec", "equity": 93894385, "ret": -6.11}, {"id": "v307", "ph": "6abce93d", "equity": 93837086, "ret": -6.16}, {"id": "v316", "ph": "8dc1d197", "equity": 93831128, "ret": -6.17}, {"id": "v99", "ph": "fb39409b", "equity": 93816583, "ret": -6.18}, {"id": "v167", "ph": "b6d6aed8", "equity": 93564546, "ret": -6.44}, {"id": "v207", "ph": "0f6601a0", "equity": 93526176, "ret": -6.47}, {"id": "v315", "ph": "e6d5b283", "equity": 93303825, "ret": -6.7}, {"id": "v205", "ph": "02e5a3f5", "equity": 93270613, "ret": -6.73}, {"id": "v57", "ph": "e7e98b6d", "equity": 93217237, "ret": -6.78}, {"id": "v320", "ph": "48d6a9ef", "equity": 93176307, "ret": -6.82}, {"id": "v161", "ph": "ed5677e6", "equity": 92887398, "ret": -7.11}, {"id": "v165", "ph": "8f862b27", "equity": 92887398, "ret": -7.11}, {"id": "v103", "ph": "75b0a37c", "equity": 92752222, "ret": -7.25}, {"id": "v314", "ph": "7511570e", "equity": 92717172, "ret": -7.28}, {"id": "v197", "ph": "5c290a32", "equity": 92525434, "ret": -7.47}, {"id": "v304", "ph": "96c7e8e1", "equity": 92465058, "ret": -7.53}, {"id": "v95", "ph": "7e28e756", "equity": 92376183, "ret": -7.62}, {"id": "v91", "ph": "5674a3d7", "equity": 92342374, "ret": -7.66}, {"id": "v211", "ph": "9227673c", "equity": 92194352, "ret": -7.81}, {"id": "v199", "ph": "390bfab3", "equity": 91895564, "ret": -8.1}, {"id": "v97", "ph": "ebf31977", "equity": 91886112, "ret": -8.11}, {"id": "v306", "ph": "6966b8f6", "equity": 91650241, "ret": -8.35}, {"id": "v195", "ph": "dd89cf59", "equity": 91566277, "ret": -8.43}, {"id": "v201", "ph": "cb8a413e", "equity": 91566277, "ret": -8.43}, {"id": "v49", "ph": "cdba73e0", "equity": 91326648, "ret": -8.67}, {"id": "v203", "ph": "2071defa", "equity": 91153904, "ret": -8.85}, {"id": "v107", "ph": "be5cd36b", "equity": 91033303, "ret": -8.97}, {"id": "v87", "ph": "c0be98c0", "equity": 90966948, "ret": -9.03}, {"id": "v93", "ph": "f10d4e45", "equity": 90966948, "ret": -9.03}, {"id": "v81", "ph": "a6eac1e4", "equity": 90865296, "ret": -9.13}, {"id": "v301", "ph": "30da2021", "equity": 90473273, "ret": -9.53}, {"id": "v318", "ph": "c99872ef", "equity": 90470932, "ret": -9.53}, {"id": "v157", "ph": "80f3e23b", "equity": 90163528, "ret": -9.84}, {"id": "v310", "ph": "ec9dd55c", "equity": 89945372, "ret": -10.05}, {"id": "v217", "ph": "4c547a61", "equity": 89912014, "ret": -10.09}, {"id": "v218", "ph": "7304d2d4", "equity": 89912014, "ret": -10.09}, {"id": "v223", "ph": "b57356b8", "equity": 89843062, "ret": -10.16}, {"id": "v224", "ph": "888ab069", "equity": 89843062, "ret": -10.16}, {"id": "v229", "ph": "d9261dfb", "equity": 89843062, "ret": -10.16}, {"id": "v230", "ph": "141579fe", "equity": 89843062, "ret": -10.16}, {"id": "v235", "ph": "3e6c1666", "equity": 89843062, "ret": -10.16}, {"id": "v236", "ph": "f9c75560", "equity": 89843062, "ret": -10.16}, {"id": "v265", "ph": "7faed59d", "equity": 89843062, "ret": -10.16}, {"id": "v266", "ph": "c133b585", "equity": 89843062, "ret": -10.16}, {"id": "v271", "ph": "2b9ccdcd", "equity": 89843062, "ret": -10.16}, {"id": "v272", "ph": "2ed2027f", "equity": 89843062, "ret": -10.16}, {"id": "v277", "ph": "488b612a", "equity": 89843062, "ret": -10.16}, {"id": "v278", "ph": "861fb42b", "equity": 89843062, "ret": -10.16}, {"id": "v283", "ph": "479e4b25", "equity": 89843062, "ret": -10.16}, {"id": "v284", "ph": "261c5d58", "equity": 89843062, "ret": -10.16}, {"id": "v1", "ph": "4874f4c9", "equity": 89831124, "ret": -10.17}, {"id": "v51", "ph": "21a98e46", "equity": 89813662, "ret": -10.19}, {"id": "v89", "ph": "c49d5680", "equity": 89757086, "ret": -10.24}, {"id": "v189", "ph": "dfdbd0c8", "equity": 89645117, "ret": -10.35}, {"id": "v303", "ph": "1a084164", "equity": 89566981, "ret": -10.43}, {"id": "v308", "ph": "cb12dd0b", "equity": 89416268, "ret": -10.58}, {"id": "v305", "ph": "8cc4eea6", "equity": 89391615, "ret": -10.61}, {"id": "v215", "ph": "a904a49d", "equity": 89291041, "ret": -10.71}, {"id": "v105", "ph": "88395429", "equity": 88899445, "ret": -11.1}, {"id": "v159", "ph": "af80c67a", "equity": 88652641, "ret": -11.35}, {"id": "v149", "ph": "c5329f8d", "equity": 88050190, "ret": -11.95}, {"id": "v213", "ph": "0e1d8e45", "equity": 88053066, "ret": -11.95}, {"id": "v47", "ph": "ed758fcf", "equity": 87850567, "ret": -12.15}, {"id": "v302", "ph": "3f30502d", "equity": 87442505, "ret": -12.56}, {"id": "v155", "ph": "31c0d84e", "equity": 87118129, "ret": -12.88}, {"id": "v296", "ph": "4c554378", "equity": 86292842, "ret": -13.71}, {"id": "v311", "ph": "8409c6e5", "equity": 86084678, "ret": -13.92}, {"id": "v151", "ph": "2eb1dd06", "equity": 86032047, "ret": -13.97}, {"id": "v312", "ph": "4c23846f", "equity": 85522576, "ret": -14.48}, {"id": "v41", "ph": "e9d84e84", "equity": 85291413, "ret": -14.71}, {"id": "v309", "ph": "07610040", "equity": 85107529, "ret": -14.89}, {"id": "v147", "ph": "2fbeeedb", "equity": 84376797, "ret": -15.62}, {"id": "v4", "ph": "b6219595", "equity": 82925280, "ret": -17.07}, {"id": "v40", "ph": "70731d89", "equity": 81170051, "ret": -18.83}, {"id": "v298", "ph": "5d4bbec0", "equity": 79196319, "ret": -20.8}, {"id": "v299", "ph": "25046b1a", "equity": 76919853, "ret": -23.08}, {"id": "v300", "ph": "c6ddc17b", "equity": 73167500, "ret": -26.83}], "20260709": [{"id": "v319", "ph": "ca25f043", "equity": 97029426, "ret": -2.97}, {"id": "v321", "ph": "e82de49b", "equity": 95372120, "ret": -4.63}, {"id": "v313", "ph": "b9f4ee72", "equity": 94897989, "ret": -5.1}, {"id": "v101", "ph": "c4354346", "equity": 94371518, "ret": -5.63}, {"id": "v317", "ph": "51f8ee6d", "equity": 94152545, "ret": -5.85}, {"id": "v99", "ph": "fb39409b", "equity": 93694369, "ret": -6.31}, {"id": "v59", "ph": "1858e2ec", "equity": 93648469, "ret": -6.35}, {"id": "v209", "ph": "8730802d", "equity": 93379392, "ret": -6.62}, {"id": "v316", "ph": "8dc1d197", "equity": 93225309, "ret": -6.77}, {"id": "v307", "ph": "6abce93d", "equity": 93189093, "ret": -6.81}, {"id": "v57", "ph": "e7e98b6d", "equity": 92971321, "ret": -7.03}, {"id": "v103", "ph": "75b0a37c", "equity": 92831928, "ret": -7.17}, {"id": "v207", "ph": "0f6601a0", "equity": 92702244, "ret": -7.3}, {"id": "v167", "ph": "b6d6aed8", "equity": 92619115, "ret": -7.38}, {"id": "v205", "ph": "02e5a3f5", "equity": 92574760, "ret": -7.43}, {"id": "v95", "ph": "7e28e756", "equity": 92521583, "ret": -7.48}, {"id": "v320", "ph": "48d6a9ef", "equity": 92421366, "ret": -7.58}, {"id": "v91", "ph": "5674a3d7", "equity": 92146760, "ret": -7.85}, {"id": "v315", "ph": "e6d5b283", "equity": 92046625, "ret": -7.95}, {"id": "v161", "ph": "ed5677e6", "equity": 91941966, "ret": -8.06}, {"id": "v165", "ph": "8f862b27", "equity": 91941966, "ret": -8.06}, {"id": "v314", "ph": "7511570e", "equity": 91879039, "ret": -8.12}, {"id": "v304", "ph": "96c7e8e1", "equity": 91855794, "ret": -8.14}, {"id": "v197", "ph": "5c290a32", "equity": 91841551, "ret": -8.16}, {"id": "v97", "ph": "ebf31977", "equity": 91705949, "ret": -8.29}, {"id": "v211", "ph": "9227673c", "equity": 91570738, "ret": -8.43}, {"id": "v49", "ph": "cdba73e0", "equity": 91460358, "ret": -8.54}, {"id": "v203", "ph": "2071defa", "equity": 91259889, "ret": -8.74}, {"id": "v199", "ph": "390bfab3", "equity": 91193283, "ret": -8.81}, {"id": "v87", "ph": "c0be98c0", "equity": 91057754, "ret": -8.94}, {"id": "v93", "ph": "f10d4e45", "equity": 91057754, "ret": -8.94}, {"id": "v81", "ph": "a6eac1e4", "equity": 91014210, "ret": -8.99}, {"id": "v195", "ph": "dd89cf59", "equity": 90952863, "ret": -9.05}, {"id": "v201", "ph": "cb8a413e", "equity": 90952863, "ret": -9.05}, {"id": "v107", "ph": "be5cd36b", "equity": 90911509, "ret": -9.09}, {"id": "v306", "ph": "6966b8f6", "equity": 90826472, "ret": -9.17}, {"id": "v157", "ph": "80f3e23b", "equity": 90259699, "ret": -9.74}, {"id": "v318", "ph": "c99872ef", "equity": 89956910, "ret": -10.04}, {"id": "v51", "ph": "21a98e46", "equity": 89951186, "ret": -10.05}, {"id": "v89", "ph": "c49d5680", "equity": 89823123, "ret": -10.18}, {"id": "v189", "ph": "dfdbd0c8", "equity": 89754616, "ret": -10.25}, {"id": "v301", "ph": "30da2021", "equity": 89630173, "ret": -10.37}, {"id": "v215", "ph": "a904a49d", "equity": 89171184, "ret": -10.83}, {"id": "v217", "ph": "4c547a61", "equity": 89102440, "ret": -10.9}, {"id": "v218", "ph": "7304d2d4", "equity": 89102440, "ret": -10.9}, {"id": "v223", "ph": "b57356b8", "equity": 89036088, "ret": -10.96}, {"id": "v224", "ph": "888ab069", "equity": 89036088, "ret": -10.96}, {"id": "v229", "ph": "d9261dfb", "equity": 89036088, "ret": -10.96}, {"id": "v230", "ph": "141579fe", "equity": 89036088, "ret": -10.96}, {"id": "v235", "ph": "3e6c1666", "equity": 89036088, "ret": -10.96}, {"id": "v236", "ph": "f9c75560", "equity": 89036088, "ret": -10.96}, {"id": "v265", "ph": "7faed59d", "equity": 89036088, "ret": -10.96}, {"id": "v266", "ph": "c133b585", "equity": 89036088, "ret": -10.96}, {"id": "v271", "ph": "2b9ccdcd", "equity": 89036088, "ret": -10.96}, {"id": "v272", "ph": "2ed2027f", "equity": 89036088, "ret": -10.96}, {"id": "v277", "ph": "488b612a", "equity": 89036088, "ret": -10.96}, {"id": "v278", "ph": "861fb42b", "equity": 89036088, "ret": -10.96}, {"id": "v283", "ph": "479e4b25", "equity": 89036088, "ret": -10.96}, {"id": "v284", "ph": "261c5d58", "equity": 89036088, "ret": -10.96}, {"id": "v1", "ph": "4874f4c9", "equity": 88779474, "ret": -11.22}, {"id": "v105", "ph": "88395429", "equity": 88758699, "ret": -11.24}, {"id": "v159", "ph": "af80c67a", "equity": 88749577, "ret": -11.25}, {"id": "v305", "ph": "8cc4eea6", "equity": 88509485, "ret": -11.49}, {"id": "v308", "ph": "cb12dd0b", "equity": 88508656, "ret": -11.49}, {"id": "v303", "ph": "1a084164", "equity": 88400399, "ret": -11.6}, {"id": "v310", "ph": "ec9dd55c", "equity": 88282336, "ret": -11.72}, {"id": "v213", "ph": "0e1d8e45", "equity": 87872908, "ret": -12.13}, {"id": "v47", "ph": "ed758fcf", "equity": 87700307, "ret": -12.3}, {"id": "v149", "ph": "c5329f8d", "equity": 87295308, "ret": -12.7}, {"id": "v302", "ph": "3f30502d", "equity": 87005003, "ret": -12.99}, {"id": "v155", "ph": "31c0d84e", "equity": 86926728, "ret": -13.07}, {"id": "v311", "ph": "8409c6e5", "equity": 85710417, "ret": -14.29}, {"id": "v151", "ph": "2eb1dd06", "equity": 85488465, "ret": -14.51}, {"id": "v41", "ph": "e9d84e84", "equity": 85404189, "ret": -14.6}, {"id": "v312", "ph": "4c23846f", "equity": 84462620, "ret": -15.54}, {"id": "v296", "ph": "4c554378", "equity": 84397596, "ret": -15.6}, {"id": "v309", "ph": "07610040", "equity": 84155459, "ret": -15.84}, {"id": "v147", "ph": "2fbeeedb", "equity": 83834534, "ret": -16.17}, {"id": "v4", "ph": "b6219595", "equity": 82094579, "ret": -17.91}, {"id": "v40", "ph": "70731d89", "equity": 80360480, "ret": -19.64}, {"id": "v298", "ph": "5d4bbec0", "equity": 78505369, "ret": -21.49}, {"id": "v299", "ph": "25046b1a", "equity": 75857462, "ret": -24.14}, {"id": "v300", "ph": "c6ddc17b", "equity": 73074500, "ret": -26.93}], "20260710": [{"id": "v321", "ph": "e82de49b", "equity": 98078466, "ret": -1.92}, {"id": "v319", "ph": "ca25f043", "equity": 97310052, "ret": -2.69}, {"id": "v313", "ph": "b9f4ee72", "equity": 97070899, "ret": -2.93}, {"id": "v317", "ph": "51f8ee6d", "equity": 96658854, "ret": -3.34}, {"id": "v307", "ph": "6abce93d", "equity": 95735759, "ret": -4.26}, {"id": "v316", "ph": "8dc1d197", "equity": 95238005, "ret": -4.76}, {"id": "v320", "ph": "48d6a9ef", "equity": 95010028, "ret": -4.99}, {"id": "v205", "ph": "02e5a3f5", "equity": 94946029, "ret": -5.05}, {"id": "v197", "ph": "5c290a32", "equity": 94826304, "ret": -5.17}, {"id": "v95", "ph": "7e28e756", "equity": 94712823, "ret": -5.29}, {"id": "v101", "ph": "c4354346", "equity": 94284391, "ret": -5.72}, {"id": "v203", "ph": "2071defa", "equity": 94078563, "ret": -5.92}, {"id": "v103", "ph": "75b0a37c", "equity": 94044661, "ret": -5.96}, {"id": "v91", "ph": "5674a3d7", "equity": 94024918, "ret": -5.98}, {"id": "v314", "ph": "7511570e", "equity": 93928332, "ret": -6.07}, {"id": "v199", "ph": "390bfab3", "equity": 93733922, "ret": -6.27}, {"id": "v59", "ph": "1858e2ec", "equity": 93680067, "ret": -6.32}, {"id": "v99", "ph": "fb39409b", "equity": 93607255, "ret": -6.39}, {"id": "v49", "ph": "cdba73e0", "equity": 93559466, "ret": -6.44}, {"id": "v306", "ph": "6966b8f6", "equity": 93513081, "ret": -6.49}, {"id": "v97", "ph": "ebf31977", "equity": 93408327, "ret": -6.59}, {"id": "v209", "ph": "8730802d", "equity": 93286824, "ret": -6.71}, {"id": "v81", "ph": "a6eac1e4", "equity": 93172304, "ret": -6.83}, {"id": "v304", "ph": "96c7e8e1", "equity": 93155434, "ret": -6.84}, {"id": "v157", "ph": "80f3e23b", "equity": 93020895, "ret": -6.98}, {"id": "v57", "ph": "e7e98b6d", "equity": 93002931, "ret": -7.0}, {"id": "v211", "ph": "9227673c", "equity": 92778517, "ret": -7.22}, {"id": "v207", "ph": "0f6601a0", "equity": 92609916, "ret": -7.39}, {"id": "v167", "ph": "b6d6aed8", "equity": 92577084, "ret": -7.42}, {"id": "v189", "ph": "dfdbd0c8", "equity": 92540144, "ret": -7.46}, {"id": "v315", "ph": "e6d5b283", "equity": 92532857, "ret": -7.47}, {"id": "v87", "ph": "c0be98c0", "equity": 92305303, "ret": -7.69}, {"id": "v93", "ph": "f10d4e45", "equity": 92305303, "ret": -7.69}, {"id": "v217", "ph": "4c547a61", "equity": 92223428, "ret": -7.78}, {"id": "v218", "ph": "7304d2d4", "equity": 92223428, "ret": -7.78}, {"id": "v195", "ph": "dd89cf59", "equity": 92194654, "ret": -7.81}, {"id": "v201", "ph": "cb8a413e", "equity": 92194654, "ret": -7.81}, {"id": "v223", "ph": "b57356b8", "equity": 92151976, "ret": -7.85}, {"id": "v224", "ph": "888ab069", "equity": 92151976, "ret": -7.85}, {"id": "v229", "ph": "d9261dfb", "equity": 92151976, "ret": -7.85}, {"id": "v230", "ph": "141579fe", "equity": 92151976, "ret": -7.85}, {"id": "v235", "ph": "3e6c1666", "equity": 92151976, "ret": -7.85}, {"id": "v236", "ph": "f9c75560", "equity": 92151976, "ret": -7.85}, {"id": "v265", "ph": "7faed59d", "equity": 92151976, "ret": -7.85}, {"id": "v266", "ph": "c133b585", "equity": 92151976, "ret": -7.85}, {"id": "v271", "ph": "2b9ccdcd", "equity": 92151976, "ret": -7.85}, {"id": "v272", "ph": "2ed2027f", "equity": 92151976, "ret": -7.85}, {"id": "v277", "ph": "488b612a", "equity": 92151976, "ret": -7.85}, {"id": "v278", "ph": "861fb42b", "equity": 92151976, "ret": -7.85}, {"id": "v283", "ph": "479e4b25", "equity": 92151976, "ret": -7.85}, {"id": "v284", "ph": "261c5d58", "equity": 92151976, "ret": -7.85}, {"id": "v89", "ph": "c49d5680", "equity": 92126436, "ret": -7.87}, {"id": "v51", "ph": "21a98e46", "equity": 92016918, "ret": -7.98}, {"id": "v161", "ph": "ed5677e6", "equity": 91902967, "ret": -8.1}, {"id": "v165", "ph": "8f862b27", "equity": 91902967, "ret": -8.1}, {"id": "v107", "ph": "be5cd36b", "equity": 91871987, "ret": -8.13}, {"id": "v305", "ph": "8cc4eea6", "equity": 91737647, "ret": -8.26}, {"id": "v159", "ph": "af80c67a", "equity": 91478297, "ret": -8.52}, {"id": "v303", "ph": "1a084164", "equity": 91467512, "ret": -8.53}, {"id": "v318", "ph": "c99872ef", "equity": 91229350, "ret": -8.77}, {"id": "v308", "ph": "cb12dd0b", "equity": 91016667, "ret": -8.98}, {"id": "v105", "ph": "88395429", "equity": 91002544, "ret": -9.0}, {"id": "v310", "ph": "ec9dd55c", "equity": 90929061, "ret": -9.07}, {"id": "v213", "ph": "0e1d8e45", "equity": 90733969, "ret": -9.27}, {"id": "v149", "ph": "c5329f8d", "equity": 90683014, "ret": -9.32}, {"id": "v215", "ph": "a904a49d", "equity": 90127065, "ret": -9.87}, {"id": "v302", "ph": "3f30502d", "equity": 90012486, "ret": -9.99}, {"id": "v301", "ph": "30da2021", "equity": 89977588, "ret": -10.02}, {"id": "v47", "ph": "ed758fcf", "equity": 89839040, "ret": -10.16}, {"id": "v155", "ph": "31c0d84e", "equity": 89712039, "ret": -10.29}, {"id": "v151", "ph": "2eb1dd06", "equity": 89274993, "ret": -10.73}, {"id": "v1", "ph": "4874f4c9", "equity": 89233426, "ret": -10.77}, {"id": "v311", "ph": "8409c6e5", "equity": 88466825, "ret": -11.53}, {"id": "v41", "ph": "e9d84e84", "equity": 88070920, "ret": -11.93}, {"id": "v147", "ph": "2fbeeedb", "equity": 87599302, "ret": -12.4}, {"id": "v312", "ph": "4c23846f", "equity": 86750962, "ret": -13.25}, {"id": "v309", "ph": "07610040", "equity": 86198031, "ret": -13.8}, {"id": "v296", "ph": "4c554378", "equity": 86036993, "ret": -13.96}, {"id": "v4", "ph": "b6219595", "equity": 85584881, "ret": -14.42}, {"id": "v40", "ph": "70731d89", "equity": 83785743, "ret": -16.21}, {"id": "v298", "ph": "5d4bbec0", "equity": 81408367, "ret": -18.59}, {"id": "v299", "ph": "25046b1a", "equity": 78985821, "ret": -21.01}, {"id": "v300", "ph": "c6ddc17b", "equity": 75750936, "ret": -24.25}], "20260713": [{"id": "v321", "ph": "e82de49b", "equity": 97993285, "ret": -2.01}, {"id": "v319", "ph": "ca25f043", "equity": 97450702, "ret": -2.55}, {"id": "v317", "ph": "51f8ee6d", "equity": 96646823, "ret": -3.35}, {"id": "v313", "ph": "b9f4ee72", "equity": 95903205, "ret": -4.1}, {"id": "v205", "ph": "02e5a3f5", "equity": 94889018, "ret": -5.11}, {"id": "v307", "ph": "6abce93d", "equity": 94694981, "ret": -5.31}, {"id": "v197", "ph": "5c290a32", "equity": 94654242, "ret": -5.35}, {"id": "v316", "ph": "8dc1d197", "equity": 94551424, "ret": -5.45}, {"id": "v320", "ph": "48d6a9ef", "equity": 94356057, "ret": -5.64}, {"id": "v95", "ph": "7e28e756", "equity": 94208212, "ret": -5.79}, {"id": "v203", "ph": "2071defa", "equity": 94145780, "ret": -5.85}, {"id": "v103", "ph": "75b0a37c", "equity": 94078397, "ret": -5.92}, {"id": "v199", "ph": "390bfab3", "equity": 93659485, "ret": -6.34}, {"id": "v101", "ph": "c4354346", "equity": 93648515, "ret": -6.35}, {"id": "v306", "ph": "6966b8f6", "equity": 93424603, "ret": -6.58}, {"id": "v91", "ph": "5674a3d7", "equity": 93323862, "ret": -6.68}, {"id": "v59", "ph": "1858e2ec", "equity": 93231925, "ret": -6.77}, {"id": "v157", "ph": "80f3e23b", "equity": 93198393, "ret": -6.8}, {"id": "v49", "ph": "cdba73e0", "equity": 93181463, "ret": -6.82}, {"id": "v314", "ph": "7511570e", "equity": 93184031, "ret": -6.82}, {"id": "v99", "ph": "fb39409b", "equity": 92972759, "ret": -7.03}, {"id": "v211", "ph": "9227673c", "equity": 92963129, "ret": -7.04}, {"id": "v97", "ph": "ebf31977", "equity": 92725192, "ret": -7.27}, {"id": "v304", "ph": "96c7e8e1", "equity": 92687756, "ret": -7.31}, {"id": "v81", "ph": "a6eac1e4", "equity": 92677068, "ret": -7.32}, {"id": "v189", "ph": "dfdbd0c8", "equity": 92628577, "ret": -7.37}, {"id": "v209", "ph": "8730802d", "equity": 92592451, "ret": -7.41}, {"id": "v57", "ph": "e7e98b6d", "equity": 92556169, "ret": -7.44}, {"id": "v315", "ph": "e6d5b283", "equity": 92418791, "ret": -7.58}, {"id": "v195", "ph": "dd89cf59", "equity": 92402967, "ret": -7.6}, {"id": "v201", "ph": "cb8a413e", "equity": 92402967, "ret": -7.6}, {"id": "v87", "ph": "c0be98c0", "equity": 92365980, "ret": -7.63}, {"id": "v93", "ph": "f10d4e45", "equity": 92365980, "ret": -7.63}, {"id": "v167", "ph": "b6d6aed8", "equity": 92215482, "ret": -7.78}, {"id": "v107", "ph": "be5cd36b", "equity": 91987442, "ret": -8.01}, {"id": "v318", "ph": "c99872ef", "equity": 91961004, "ret": -8.04}, {"id": "v207", "ph": "0f6601a0", "equity": 91936002, "ret": -8.06}, {"id": "v51", "ph": "21a98e46", "equity": 91665291, "ret": -8.33}, {"id": "v159", "ph": "af80c67a", "equity": 91669242, "ret": -8.33}, {"id": "v161", "ph": "ed5677e6", "equity": 91538846, "ret": -8.46}, {"id": "v165", "ph": "8f862b27", "equity": 91538846, "ret": -8.46}, {"id": "v89", "ph": "c49d5680", "equity": 91454254, "ret": -8.55}, {"id": "v217", "ph": "4c547a61", "equity": 90753087, "ret": -9.25}, {"id": "v218", "ph": "7304d2d4", "equity": 90753087, "ret": -9.25}, {"id": "v213", "ph": "0e1d8e45", "equity": 90711698, "ret": -9.29}, {"id": "v223", "ph": "b57356b8", "equity": 90682636, "ret": -9.32}, {"id": "v224", "ph": "888ab069", "equity": 90682636, "ret": -9.32}, {"id": "v229", "ph": "d9261dfb", "equity": 90682636, "ret": -9.32}, {"id": "v230", "ph": "141579fe", "equity": 90682636, "ret": -9.32}, {"id": "v235", "ph": "3e6c1666", "equity": 90682636, "ret": -9.32}, {"id": "v236", "ph": "f9c75560", "equity": 90682636, "ret": -9.32}, {"id": "v265", "ph": "7faed59d", "equity": 90682636, "ret": -9.32}, {"id": "v266", "ph": "c133b585", "equity": 90682636, "ret": -9.32}, {"id": "v271", "ph": "2b9ccdcd", "equity": 90682636, "ret": -9.32}, {"id": "v272", "ph": "2ed2027f", "equity": 90682636, "ret": -9.32}, {"id": "v277", "ph": "488b612a", "equity": 90682636, "ret": -9.32}, {"id": "v278", "ph": "861fb42b", "equity": 90682636, "ret": -9.32}, {"id": "v283", "ph": "479e4b25", "equity": 90682636, "ret": -9.32}, {"id": "v284", "ph": "261c5d58", "equity": 90682636, "ret": -9.32}, {"id": "v308", "ph": "cb12dd0b", "equity": 90558789, "ret": -9.44}, {"id": "v215", "ph": "a904a49d", "equity": 90427248, "ret": -9.57}, {"id": "v303", "ph": "1a084164", "equity": 90424464, "ret": -9.58}, {"id": "v105", "ph": "88395429", "equity": 90398777, "ret": -9.6}, {"id": "v310", "ph": "ec9dd55c", "equity": 90385822, "ret": -9.61}, {"id": "v305", "ph": "8cc4eea6", "equity": 90346041, "ret": -9.65}, {"id": "v149", "ph": "c5329f8d", "equity": 90280128, "ret": -9.72}, {"id": "v301", "ph": "30da2021", "equity": 89786566, "ret": -10.21}, {"id": "v155", "ph": "31c0d84e", "equity": 89782507, "ret": -10.22}, {"id": "v47", "ph": "ed758fcf", "equity": 89371696, "ret": -10.63}, {"id": "v302", "ph": "3f30502d", "equity": 89344229, "ret": -10.66}, {"id": "v1", "ph": "4874f4c9", "equity": 89166050, "ret": -10.83}, {"id": "v151", "ph": "2eb1dd06", "equity": 89091286, "ret": -10.91}, {"id": "v311", "ph": "8409c6e5", "equity": 88615165, "ret": -11.38}, {"id": "v312", "ph": "4c23846f", "equity": 88055182, "ret": -11.94}, {"id": "v309", "ph": "07610040", "equity": 87642331, "ret": -12.36}, {"id": "v147", "ph": "2fbeeedb", "equity": 87432951, "ret": -12.57}, {"id": "v41", "ph": "e9d84e84", "equity": 87023320, "ret": -12.98}, {"id": "v4", "ph": "b6219595", "equity": 85761199, "ret": -14.24}, {"id": "v296", "ph": "4c554378", "equity": 84594910, "ret": -15.41}, {"id": "v40", "ph": "70731d89", "equity": 83960853, "ret": -16.04}, {"id": "v298", "ph": "5d4bbec0", "equity": 82134287, "ret": -17.87}, {"id": "v299", "ph": "25046b1a", "equity": 78453749, "ret": -21.55}, {"id": "v300", "ph": "c6ddc17b", "equity": 74901773, "ret": -25.1}], "20260714": [{"id": "v321", "ph": "e82de49b", "equity": 97789385, "ret": -2.21}, {"id": "v319", "ph": "ca25f043", "equity": 97582805, "ret": -2.42}, {"id": "v317", "ph": "51f8ee6d", "equity": 96466283, "ret": -3.53}, {"id": "v313", "ph": "b9f4ee72", "equity": 95558095, "ret": -4.44}, {"id": "v205", "ph": "02e5a3f5", "equity": 94974938, "ret": -5.03}, {"id": "v316", "ph": "8dc1d197", "equity": 94811844, "ret": -5.19}, {"id": "v197", "ph": "5c290a32", "equity": 94781792, "ret": -5.22}, {"id": "v320", "ph": "48d6a9ef", "equity": 94552797, "ret": -5.45}, {"id": "v307", "ph": "6abce93d", "equity": 94443551, "ret": -5.56}, {"id": "v103", "ph": "75b0a37c", "equity": 94273847, "ret": -5.73}, {"id": "v203", "ph": "2071defa", "equity": 94162800, "ret": -5.84}, {"id": "v199", "ph": "390bfab3", "equity": 93730535, "ret": -6.27}, {"id": "v95", "ph": "7e28e756", "equity": 93688530, "ret": -6.31}, {"id": "v306", "ph": "6966b8f6", "equity": 93128874, "ret": -6.87}, {"id": "v157", "ph": "80f3e23b", "equity": 93099933, "ret": -6.9}, {"id": "v101", "ph": "c4354346", "equity": 93085645, "ret": -6.91}, {"id": "v91", "ph": "5674a3d7", "equity": 93035902, "ret": -6.96}, {"id": "v211", "ph": "9227673c", "equity": 92979319, "ret": -7.02}, {"id": "v314", "ph": "7511570e", "equity": 92922331, "ret": -7.08}, {"id": "v49", "ph": "cdba73e0", "equity": 92903643, "ret": -7.1}, {"id": "v59", "ph": "1858e2ec", "equity": 92684865, "ret": -7.32}, {"id": "v189", "ph": "dfdbd0c8", "equity": 92671757, "ret": -7.33}, {"id": "v304", "ph": "96c7e8e1", "equity": 92642276, "ret": -7.36}, {"id": "v87", "ph": "c0be98c0", "equity": 92587920, "ret": -7.41}, {"id": "v93", "ph": "f10d4e45", "equity": 92587920, "ret": -7.41}, {"id": "v97", "ph": "ebf31977", "equity": 92465332, "ret": -7.53}, {"id": "v195", "ph": "dd89cf59", "equity": 92445067, "ret": -7.55}, {"id": "v201", "ph": "cb8a413e", "equity": 92445067, "ret": -7.55}, {"id": "v99", "ph": "fb39409b", "equity": 92410299, "ret": -7.59}, {"id": "v318", "ph": "c99872ef", "equity": 92219004, "ret": -7.78}, {"id": "v81", "ph": "a6eac1e4", "equity": 92177746, "ret": -7.82}, {"id": "v57", "ph": "e7e98b6d", "equity": 92009519, "ret": -7.99}, {"id": "v107", "ph": "be5cd36b", "equity": 92000429, "ret": -8.0}, {"id": "v209", "ph": "8730802d", "equity": 91790701, "ret": -8.21}, {"id": "v159", "ph": "af80c67a", "equity": 91582652, "ret": -8.42}, {"id": "v167", "ph": "b6d6aed8", "equity": 91427362, "ret": -8.57}, {"id": "v51", "ph": "21a98e46", "equity": 91402341, "ret": -8.6}, {"id": "v89", "ph": "c49d5680", "equity": 91243384, "ret": -8.76}, {"id": "v315", "ph": "e6d5b283", "equity": 91168571, "ret": -8.83}, {"id": "v207", "ph": "0f6601a0", "equity": 91144662, "ret": -8.86}, {"id": "v161", "ph": "ed5677e6", "equity": 90748936, "ret": -9.25}, {"id": "v165", "ph": "8f862b27", "equity": 90748936, "ret": -9.25}, {"id": "v310", "ph": "ec9dd55c", "equity": 90753202, "ret": -9.25}, {"id": "v213", "ph": "0e1d8e45", "equity": 90718328, "ret": -9.28}, {"id": "v217", "ph": "4c547a61", "equity": 90375417, "ret": -9.62}, {"id": "v218", "ph": "7304d2d4", "equity": 90375417, "ret": -9.62}, {"id": "v149", "ph": "c5329f8d", "equity": 90342768, "ret": -9.66}, {"id": "v223", "ph": "b57356b8", "equity": 90306266, "ret": -9.69}, {"id": "v224", "ph": "888ab069", "equity": 90306266, "ret": -9.69}, {"id": "v229", "ph": "d9261dfb", "equity": 90306266, "ret": -9.69}, {"id": "v230", "ph": "141579fe", "equity": 90306266, "ret": -9.69}, {"id": "v235", "ph": "3e6c1666", "equity": 90306266, "ret": -9.69}, {"id": "v236", "ph": "f9c75560", "equity": 90306266, "ret": -9.69}, {"id": "v265", "ph": "7faed59d", "equity": 90306266, "ret": -9.69}, {"id": "v266", "ph": "c133b585", "equity": 90306266, "ret": -9.69}, {"id": "v271", "ph": "2b9ccdcd", "equity": 90306266, "ret": -9.69}, {"id": "v272", "ph": "2ed2027f", "equity": 90306266, "ret": -9.69}, {"id": "v277", "ph": "488b612a", "equity": 90306266, "ret": -9.69}, {"id": "v278", "ph": "861fb42b", "equity": 90306266, "ret": -9.69}, {"id": "v283", "ph": "479e4b25", "equity": 90306266, "ret": -9.69}, {"id": "v284", "ph": "261c5d58", "equity": 90306266, "ret": -9.69}, {"id": "v215", "ph": "a904a49d", "equity": 90240432, "ret": -9.76}, {"id": "v308", "ph": "cb12dd0b", "equity": 90214089, "ret": -9.79}, {"id": "v305", "ph": "8cc4eea6", "equity": 90063781, "ret": -9.94}, {"id": "v303", "ph": "1a084164", "equity": 89879294, "ret": -10.12}, {"id": "v105", "ph": "88395429", "equity": 89867245, "ret": -10.13}, {"id": "v155", "ph": "31c0d84e", "equity": 89637757, "ret": -10.36}, {"id": "v151", "ph": "2eb1dd06", "equity": 89445646, "ret": -10.55}, {"id": "v302", "ph": "3f30502d", "equity": 89306717, "ret": -10.69}, {"id": "v47", "ph": "ed758fcf", "equity": 89082566, "ret": -10.92}, {"id": "v301", "ph": "30da2021", "equity": 88985970, "ret": -11.01}, {"id": "v312", "ph": "4c23846f", "equity": 88434822, "ret": -11.57}, {"id": "v1", "ph": "4874f4c9", "equity": 88164415, "ret": -11.84}, {"id": "v311", "ph": "8409c6e5", "equity": 88024704, "ret": -11.98}, {"id": "v147", "ph": "2fbeeedb", "equity": 87818641, "ret": -12.18}, {"id": "v309", "ph": "07610040", "equity": 87561431, "ret": -12.44}, {"id": "v41", "ph": "e9d84e84", "equity": 87034620, "ret": -12.97}, {"id": "v4", "ph": "b6219595", "equity": 85775725, "ret": -14.22}, {"id": "v296", "ph": "4c554378", "equity": 84158665, "ret": -15.84}, {"id": "v40", "ph": "70731d89", "equity": 83965736, "ret": -16.03}, {"id": "v298", "ph": "5d4bbec0", "equity": 83302908, "ret": -16.7}, {"id": "v299", "ph": "25046b1a", "equity": 78333222, "ret": -21.67}, {"id": "v300", "ph": "c6ddc17b", "equity": 75953953, "ret": -24.05}], "20260715": [{"id": "v321", "ph": "e82de49b", "equity": 97881585, "ret": -2.12}, {"id": "v319", "ph": "ca25f043", "equity": 96941125, "ret": -3.06}, {"id": "v317", "ph": "51f8ee6d", "equity": 96721623, "ret": -3.28}, {"id": "v205", "ph": "02e5a3f5", "equity": 96494865, "ret": -3.51}, {"id": "v197", "ph": "5c290a32", "equity": 96288031, "ret": -3.71}, {"id": "v313", "ph": "b9f4ee72", "equity": 96177243, "ret": -3.82}, {"id": "v203", "ph": "2071defa", "equity": 95945420, "ret": -4.05}, {"id": "v103", "ph": "75b0a37c", "equity": 95590478, "ret": -4.41}, {"id": "v307", "ph": "6abce93d", "equity": 95511253, "ret": -4.49}, {"id": "v199", "ph": "390bfab3", "equity": 95234481, "ret": -4.77}, {"id": "v95", "ph": "7e28e756", "equity": 95172330, "ret": -4.83}, {"id": "v157", "ph": "80f3e23b", "equity": 94561247, "ret": -5.44}, {"id": "v316", "ph": "8dc1d197", "equity": 94512037, "ret": -5.49}, {"id": "v49", "ph": "cdba73e0", "equity": 94452030, "ret": -5.55}, {"id": "v320", "ph": "48d6a9ef", "equity": 94452811, "ret": -5.55}, {"id": "v189", "ph": "dfdbd0c8", "equity": 94413537, "ret": -5.59}, {"id": "v211", "ph": "9227673c", "equity": 94345283, "ret": -5.65}, {"id": "v91", "ph": "5674a3d7", "equity": 94341738, "ret": -5.66}, {"id": "v101", "ph": "c4354346", "equity": 94241434, "ret": -5.76}, {"id": "v314", "ph": "7511570e", "equity": 94137586, "ret": -5.86}, {"id": "v59", "ph": "1858e2ec", "equity": 94073717, "ret": -5.93}, {"id": "v87", "ph": "c0be98c0", "equity": 93886718, "ret": -6.11}, {"id": "v93", "ph": "f10d4e45", "equity": 93886718, "ret": -6.11}, {"id": "v195", "ph": "dd89cf59", "equity": 93793440, "ret": -6.21}, {"id": "v201", "ph": "cb8a413e", "equity": 93793440, "ret": -6.21}, {"id": "v97", "ph": "ebf31977", "equity": 93769938, "ret": -6.23}, {"id": "v306", "ph": "6966b8f6", "equity": 93693114, "ret": -6.31}, {"id": "v81", "ph": "a6eac1e4", "equity": 93645606, "ret": -6.35}, {"id": "v99", "ph": "fb39409b", "equity": 93565198, "ret": -6.43}, {"id": "v107", "ph": "be5cd36b", "equity": 93472999, "ret": -6.53}, {"id": "v57", "ph": "e7e98b6d", "equity": 93396997, "ret": -6.6}, {"id": "v318", "ph": "c99872ef", "equity": 93105804, "ret": -6.89}, {"id": "v159", "ph": "af80c67a", "equity": 93021557, "ret": -6.98}, {"id": "v209", "ph": "8730802d", "equity": 92996410, "ret": -7.0}, {"id": "v51", "ph": "21a98e46", "equity": 92918693, "ret": -7.08}, {"id": "v304", "ph": "96c7e8e1", "equity": 92841909, "ret": -7.16}, {"id": "v167", "ph": "b6d6aed8", "equity": 92783723, "ret": -7.22}, {"id": "v89", "ph": "c49d5680", "equity": 92506353, "ret": -7.49}, {"id": "v213", "ph": "0e1d8e45", "equity": 92448858, "ret": -7.55}, {"id": "v207", "ph": "0f6601a0", "equity": 92322401, "ret": -7.68}, {"id": "v161", "ph": "ed5677e6", "equity": 92101406, "ret": -7.9}, {"id": "v165", "ph": "8f862b27", "equity": 92101406, "ret": -7.9}, {"id": "v149", "ph": "c5329f8d", "equity": 92091172, "ret": -7.91}, {"id": "v217", "ph": "4c547a61", "equity": 92083378, "ret": -7.92}, {"id": "v218", "ph": "7304d2d4", "equity": 92083378, "ret": -7.92}, {"id": "v223", "ph": "b57356b8", "equity": 92014227, "ret": -7.99}, {"id": "v224", "ph": "888ab069", "equity": 92014227, "ret": -7.99}, {"id": "v229", "ph": "d9261dfb", "equity": 92014227, "ret": -7.99}, {"id": "v230", "ph": "141579fe", "equity": 92014227, "ret": -7.99}, {"id": "v235", "ph": "3e6c1666", "equity": 92014227, "ret": -7.99}, {"id": "v236", "ph": "f9c75560", "equity": 92014227, "ret": -7.99}, {"id": "v265", "ph": "7faed59d", "equity": 92014227, "ret": -7.99}, {"id": "v266", "ph": "c133b585", "equity": 92014227, "ret": -7.99}, {"id": "v271", "ph": "2b9ccdcd", "equity": 92014227, "ret": -7.99}, {"id": "v272", "ph": "2ed2027f", "equity": 92014227, "ret": -7.99}, {"id": "v277", "ph": "488b612a", "equity": 92014227, "ret": -7.99}, {"id": "v278", "ph": "861fb42b", "equity": 92014227, "ret": -7.99}, {"id": "v283", "ph": "479e4b25", "equity": 92014227, "ret": -7.99}, {"id": "v284", "ph": "261c5d58", "equity": 92014227, "ret": -7.99}, {"id": "v315", "ph": "e6d5b283", "equity": 91954633, "ret": -8.05}, {"id": "v215", "ph": "a904a49d", "equity": 91742192, "ret": -8.26}, {"id": "v308", "ph": "cb12dd0b", "equity": 91602089, "ret": -8.4}, {"id": "v310", "ph": "ec9dd55c", "equity": 91437214, "ret": -8.56}, {"id": "v305", "ph": "8cc4eea6", "equity": 91318887, "ret": -8.68}, {"id": "v105", "ph": "88395429", "equity": 91294695, "ret": -8.71}, {"id": "v303", "ph": "1a084164", "equity": 91280975, "ret": -8.72}, {"id": "v151", "ph": "2eb1dd06", "equity": 91151628, "ret": -8.85}, {"id": "v155", "ph": "31c0d84e", "equity": 91066702, "ret": -8.93}, {"id": "v302", "ph": "3f30502d", "equity": 90999999, "ret": -9.0}, {"id": "v47", "ph": "ed758fcf", "equity": 90556310, "ret": -9.44}, {"id": "v301", "ph": "30da2021", "equity": 90510544, "ret": -9.49}, {"id": "v1", "ph": "4874f4c9", "equity": 89753670, "ret": -10.25}, {"id": "v312", "ph": "4c23846f", "equity": 89629262, "ret": -10.37}, {"id": "v147", "ph": "2fbeeedb", "equity": 89491453, "ret": -10.51}, {"id": "v41", "ph": "e9d84e84", "equity": 89149905, "ret": -10.85}, {"id": "v309", "ph": "07610040", "equity": 88927631, "ret": -11.07}, {"id": "v311", "ph": "8409c6e5", "equity": 88877600, "ret": -11.12}, {"id": "v4", "ph": "b6219595", "equity": 86786797, "ret": -13.21}, {"id": "v40", "ph": "70731d89", "equity": 84949022, "ret": -15.05}, {"id": "v296", "ph": "4c554378", "equity": 84318050, "ret": -15.68}, {"id": "v298", "ph": "5d4bbec0", "equity": 84182209, "ret": -15.82}, {"id": "v299", "ph": "25046b1a", "equity": 79402935, "ret": -20.6}, {"id": "v300", "ph": "c6ddc17b", "equity": 77045856, "ret": -22.95}], "20260716": [{"id": "v321", "ph": "e82de49b", "equity": 97662800, "ret": -2.34}, {"id": "v317", "ph": "51f8ee6d", "equity": 96342751, "ret": -3.66}, {"id": "v205", "ph": "02e5a3f5", "equity": 96098532, "ret": -3.9}, {"id": "v319", "ph": "ca25f043", "equity": 95637660, "ret": -4.36}, {"id": "v197", "ph": "5c290a32", "equity": 95579791, "ret": -4.42}, {"id": "v203", "ph": "2071defa", "equity": 95582104, "ret": -4.42}, {"id": "v103", "ph": "75b0a37c", "equity": 95449502, "ret": -4.55}, {"id": "v313", "ph": "b9f4ee72", "equity": 95008900, "ret": -4.99}, {"id": "v95", "ph": "7e28e756", "equity": 94748728, "ret": -5.25}, {"id": "v199", "ph": "390bfab3", "equity": 94565021, "ret": -5.43}, {"id": "v307", "ph": "6abce93d", "equity": 94270692, "ret": -5.73}, {"id": "v101", "ph": "c4354346", "equity": 94237231, "ret": -5.76}, {"id": "v59", "ph": "1858e2ec", "equity": 94226283, "ret": -5.77}, {"id": "v157", "ph": "80f3e23b", "equity": 94217123, "ret": -5.78}, {"id": "v49", "ph": "cdba73e0", "equity": 94125926, "ret": -5.87}, {"id": "v211", "ph": "9227673c", "equity": 94095386, "ret": -5.9}, {"id": "v189", "ph": "dfdbd0c8", "equity": 93681511, "ret": -6.32}, {"id": "v314", "ph": "7511570e", "equity": 93578380, "ret": -6.42}, {"id": "v99", "ph": "fb39409b", "equity": 93562035, "ret": -6.44}, {"id": "v316", "ph": "8dc1d197", "equity": 93564398, "ret": -6.44}, {"id": "v57", "ph": "e7e98b6d", "equity": 93550050, "ret": -6.45}, {"id": "v91", "ph": "5674a3d7", "equity": 93540268, "ret": -6.46}, {"id": "v107", "ph": "be5cd36b", "equity": 93475030, "ret": -6.52}, {"id": "v87", "ph": "c0be98c0", "equity": 93437735, "ret": -6.56}, {"id": "v93", "ph": "f10d4e45", "equity": 93437735, "ret": -6.56}, {"id": "v306", "ph": "6966b8f6", "equity": 93314376, "ret": -6.69}, {"id": "v320", "ph": "48d6a9ef", "equity": 93302940, "ret": -6.7}, {"id": "v97", "ph": "ebf31977", "equity": 93246574, "ret": -6.75}, {"id": "v195", "ph": "dd89cf59", "equity": 93233458, "ret": -6.77}, {"id": "v201", "ph": "cb8a413e", "equity": 93233458, "ret": -6.77}, {"id": "v318", "ph": "c99872ef", "equity": 92972504, "ret": -7.03}, {"id": "v209", "ph": "8730802d", "equity": 92923788, "ret": -7.08}, {"id": "v81", "ph": "a6eac1e4", "equity": 92858315, "ret": -7.14}, {"id": "v167", "ph": "b6d6aed8", "equity": 92804598, "ret": -7.2}, {"id": "v159", "ph": "af80c67a", "equity": 92313584, "ret": -7.69}, {"id": "v304", "ph": "96c7e8e1", "equity": 92306951, "ret": -7.69}, {"id": "v207", "ph": "0f6601a0", "equity": 92265672, "ret": -7.73}, {"id": "v51", "ph": "21a98e46", "equity": 92228353, "ret": -7.77}, {"id": "v315", "ph": "e6d5b283", "equity": 92176927, "ret": -7.82}, {"id": "v161", "ph": "ed5677e6", "equity": 92123621, "ret": -7.88}, {"id": "v165", "ph": "8f862b27", "equity": 92123621, "ret": -7.88}, {"id": "v213", "ph": "0e1d8e45", "equity": 92105005, "ret": -7.89}, {"id": "v89", "ph": "c49d5680", "equity": 91672443, "ret": -8.33}, {"id": "v215", "ph": "a904a49d", "equity": 91600859, "ret": -8.4}, {"id": "v149", "ph": "c5329f8d", "equity": 91348894, "ret": -8.65}, {"id": "v308", "ph": "cb12dd0b", "equity": 91129257, "ret": -8.87}, {"id": "v105", "ph": "88395429", "equity": 90897351, "ret": -9.1}, {"id": "v155", "ph": "31c0d84e", "equity": 90751770, "ret": -9.25}, {"id": "v217", "ph": "4c547a61", "equity": 90452057, "ret": -9.55}, {"id": "v218", "ph": "7304d2d4", "equity": 90452057, "ret": -9.55}, {"id": "v223", "ph": "b57356b8", "equity": 90381905, "ret": -9.62}, {"id": "v224", "ph": "888ab069", "equity": 90381905, "ret": -9.62}, {"id": "v229", "ph": "d9261dfb", "equity": 90381905, "ret": -9.62}, {"id": "v230", "ph": "141579fe", "equity": 90381905, "ret": -9.62}, {"id": "v235", "ph": "3e6c1666", "equity": 90381905, "ret": -9.62}, {"id": "v236", "ph": "f9c75560", "equity": 90381905, "ret": -9.62}, {"id": "v265", "ph": "7faed59d", "equity": 90381905, "ret": -9.62}, {"id": "v266", "ph": "c133b585", "equity": 90381905, "ret": -9.62}, {"id": "v271", "ph": "2b9ccdcd", "equity": 90381905, "ret": -9.62}, {"id": "v272", "ph": "2ed2027f", "equity": 90381905, "ret": -9.62}, {"id": "v277", "ph": "488b612a", "equity": 90381905, "ret": -9.62}, {"id": "v278", "ph": "861fb42b", "equity": 90381905, "ret": -9.62}, {"id": "v283", "ph": "479e4b25", "equity": 90381905, "ret": -9.62}, {"id": "v284", "ph": "261c5d58", "equity": 90381905, "ret": -9.62}, {"id": "v301", "ph": "30da2021", "equity": 90291973, "ret": -9.71}, {"id": "v47", "ph": "ed758fcf", "equity": 90254293, "ret": -9.75}, {"id": "v305", "ph": "8cc4eea6", "equity": 90139532, "ret": -9.86}, {"id": "v310", "ph": "ec9dd55c", "equity": 89818318, "ret": -10.18}, {"id": "v303", "ph": "1a084164", "equity": 89794120, "ret": -10.21}, {"id": "v151", "ph": "2eb1dd06", "equity": 89703330, "ret": -10.3}, {"id": "v1", "ph": "4874f4c9", "equity": 89683916, "ret": -10.32}, {"id": "v302", "ph": "3f30502d", "equity": 89587578, "ret": -10.41}, {"id": "v312", "ph": "4c23846f", "equity": 89359819, "ret": -10.64}, {"id": "v309", "ph": "07610040", "equity": 88934323, "ret": -11.07}, {"id": "v311", "ph": "8409c6e5", "equity": 88468299, "ret": -11.53}, {"id": "v41", "ph": "e9d84e84", "equity": 88438727, "ret": -11.56}, {"id": "v147", "ph": "2fbeeedb", "equity": 88051474, "ret": -11.95}, {"id": "v4", "ph": "b6219595", "equity": 85931638, "ret": -14.07}, {"id": "v40", "ph": "70731d89", "equity": 84117298, "ret": -15.88}, {"id": "v296", "ph": "4c554378", "equity": 82994880, "ret": -17.01}, {"id": "v298", "ph": "5d4bbec0", "equity": 82799229, "ret": -17.2}, {"id": "v299", "ph": "25046b1a", "equity": 79039512, "ret": -20.96}, {"id": "v300", "ph": "c6ddc17b", "equity": 75498773, "ret": -24.5}], "20260720": [{"id": "v321", "ph": "e82de49b", "equity": 96303358, "ret": -3.7}, {"id": "v319", "ph": "ca25f043", "equity": 96044191, "ret": -3.96}, {"id": "v317", "ph": "51f8ee6d", "equity": 95288497, "ret": -4.71}, {"id": "v103", "ph": "75b0a37c", "equity": 93981281, "ret": -6.02}, {"id": "v205", "ph": "02e5a3f5", "equity": 93885806, "ret": -6.11}, {"id": "v203", "ph": "2071defa", "equity": 93581916, "ret": -6.42}, {"id": "v313", "ph": "b9f4ee72", "equity": 93201667, "ret": -6.8}, {"id": "v95", "ph": "7e28e756", "equity": 93141972, "ret": -6.86}, {"id": "v101", "ph": "c4354346", "equity": 92822611, "ret": -7.18}, {"id": "v197", "ph": "5c290a32", "equity": 92785025, "ret": -7.21}, {"id": "v107", "ph": "be5cd36b", "equity": 92365156, "ret": -7.63}, {"id": "v211", "ph": "9227673c", "equity": 92222608, "ret": -7.78}, {"id": "v59", "ph": "1858e2ec", "equity": 92203842, "ret": -7.8}, {"id": "v99", "ph": "fb39409b", "equity": 92148835, "ret": -7.85}, {"id": "v49", "ph": "cdba73e0", "equity": 92068274, "ret": -7.93}, {"id": "v316", "ph": "8dc1d197", "equity": 92048108, "ret": -7.95}, {"id": "v307", "ph": "6abce93d", "equity": 91964764, "ret": -8.04}, {"id": "v157", "ph": "80f3e23b", "equity": 91915976, "ret": -8.08}, {"id": "v199", "ph": "390bfab3", "equity": 91829052, "ret": -8.17}, {"id": "v318", "ph": "c99872ef", "equity": 91722878, "ret": -8.28}, {"id": "v57", "ph": "e7e98b6d", "equity": 91530428, "ret": -8.47}, {"id": "v320", "ph": "48d6a9ef", "equity": 91403769, "ret": -8.6}, {"id": "v87", "ph": "c0be98c0", "equity": 91390375, "ret": -8.61}, {"id": "v93", "ph": "f10d4e45", "equity": 91390375, "ret": -8.61}, {"id": "v97", "ph": "ebf31977", "equity": 91306098, "ret": -8.69}, {"id": "v304", "ph": "96c7e8e1", "equity": 91190931, "ret": -8.81}, {"id": "v189", "ph": "dfdbd0c8", "equity": 91179391, "ret": -8.82}, {"id": "v91", "ph": "5674a3d7", "equity": 91038152, "ret": -8.96}, {"id": "v209", "ph": "8730802d", "equity": 90834039, "ret": -9.17}, {"id": "v195", "ph": "dd89cf59", "equity": 90778699, "ret": -9.22}, {"id": "v201", "ph": "cb8a413e", "equity": 90778699, "ret": -9.22}, {"id": "v314", "ph": "7511570e", "equity": 90564147, "ret": -9.44}, {"id": "v81", "ph": "a6eac1e4", "equity": 90539154, "ret": -9.46}, {"id": "v306", "ph": "6966b8f6", "equity": 90332758, "ret": -9.67}, {"id": "v167", "ph": "b6d6aed8", "equity": 90306583, "ret": -9.69}, {"id": "v207", "ph": "0f6601a0", "equity": 90235466, "ret": -9.76}, {"id": "v215", "ph": "a904a49d", "equity": 90166566, "ret": -9.83}, {"id": "v213", "ph": "0e1d8e45", "equity": 90160174, "ret": -9.84}, {"id": "v161", "ph": "ed5677e6", "equity": 89630326, "ret": -10.37}, {"id": "v165", "ph": "8f862b27", "equity": 89630326, "ret": -10.37}, {"id": "v159", "ph": "af80c67a", "equity": 89531050, "ret": -10.47}, {"id": "v51", "ph": "21a98e46", "equity": 89486279, "ret": -10.51}, {"id": "v315", "ph": "e6d5b283", "equity": 89455929, "ret": -10.54}, {"id": "v105", "ph": "88395429", "equity": 89360548, "ret": -10.64}, {"id": "v89", "ph": "c49d5680", "equity": 89150562, "ret": -10.85}, {"id": "v308", "ph": "cb12dd0b", "equity": 88841934, "ret": -11.16}, {"id": "v310", "ph": "ec9dd55c", "equity": 88693215, "ret": -11.31}, {"id": "v155", "ph": "31c0d84e", "equity": 88538444, "ret": -11.46}, {"id": "v47", "ph": "ed758fcf", "equity": 88311396, "ret": -11.69}, {"id": "v305", "ph": "8cc4eea6", "equity": 87805982, "ret": -12.19}, {"id": "v149", "ph": "c5329f8d", "equity": 87377221, "ret": -12.62}, {"id": "v301", "ph": "30da2021", "equity": 87115160, "ret": -12.88}, {"id": "v312", "ph": "4c23846f", "equity": 86824419, "ret": -13.18}, {"id": "v217", "ph": "4c547a61", "equity": 86727416, "ret": -13.27}, {"id": "v218", "ph": "7304d2d4", "equity": 86727416, "ret": -13.27}, {"id": "v223", "ph": "b57356b8", "equity": 86665159, "ret": -13.33}, {"id": "v224", "ph": "888ab069", "equity": 86665159, "ret": -13.33}, {"id": "v229", "ph": "d9261dfb", "equity": 86665159, "ret": -13.33}, {"id": "v230", "ph": "141579fe", "equity": 86665159, "ret": -13.33}, {"id": "v235", "ph": "3e6c1666", "equity": 86665159, "ret": -13.33}, {"id": "v236", "ph": "f9c75560", "equity": 86665159, "ret": -13.33}, {"id": "v265", "ph": "7faed59d", "equity": 86665159, "ret": -13.33}, {"id": "v266", "ph": "c133b585", "equity": 86665159, "ret": -13.33}, {"id": "v271", "ph": "2b9ccdcd", "equity": 86665159, "ret": -13.33}, {"id": "v272", "ph": "2ed2027f", "equity": 86665159, "ret": -13.33}, {"id": "v277", "ph": "488b612a", "equity": 86665159, "ret": -13.33}, {"id": "v278", "ph": "861fb42b", "equity": 86665159, "ret": -13.33}, {"id": "v283", "ph": "479e4b25", "equity": 86665159, "ret": -13.33}, {"id": "v284", "ph": "261c5d58", "equity": 86665159, "ret": -13.33}, {"id": "v1", "ph": "4874f4c9", "equity": 86623058, "ret": -13.38}, {"id": "v309", "ph": "07610040", "equity": 86303983, "ret": -13.7}, {"id": "v311", "ph": "8409c6e5", "equity": 86212810, "ret": -13.79}, {"id": "v303", "ph": "1a084164", "equity": 86195681, "ret": -13.8}, {"id": "v151", "ph": "2eb1dd06", "equity": 85016045, "ret": -14.98}, {"id": "v41", "ph": "e9d84e84", "equity": 84517336, "ret": -15.48}, {"id": "v302", "ph": "3f30502d", "equity": 84451669, "ret": -15.55}, {"id": "v147", "ph": "2fbeeedb", "equity": 83598548, "ret": -16.4}, {"id": "v4", "ph": "b6219595", "equity": 81621988, "ret": -18.38}, {"id": "v296", "ph": "4c554378", "equity": 80332295, "ret": -19.67}, {"id": "v40", "ph": "70731d89", "equity": 79967856, "ret": -20.03}, {"id": "v298", "ph": "5d4bbec0", "equity": 78569163, "ret": -21.43}, {"id": "v299", "ph": "25046b1a", "equity": 74944589, "ret": -25.06}, {"id": "v300", "ph": "c6ddc17b", "equity": 71115223, "ret": -28.88}], "20260721": [{"id": "v321", "ph": "e82de49b", "equity": 96591994, "ret": -3.41}, {"id": "v319", "ph": "ca25f043", "equity": 96446024, "ret": -3.55}, {"id": "v317", "ph": "51f8ee6d", "equity": 95147797, "ret": -4.85}, {"id": "v103", "ph": "75b0a37c", "equity": 93883981, "ret": -6.12}, {"id": "v205", "ph": "02e5a3f5", "equity": 93630760, "ret": -6.37}, {"id": "v313", "ph": "b9f4ee72", "equity": 93214559, "ret": -6.79}, {"id": "v203", "ph": "2071defa", "equity": 93087341, "ret": -6.91}, {"id": "v101", "ph": "c4354346", "equity": 92722111, "ret": -7.28}, {"id": "v197", "ph": "5c290a32", "equity": 92429405, "ret": -7.57}, {"id": "v95", "ph": "7e28e756", "equity": 92395930, "ret": -7.6}, {"id": "v59", "ph": "1858e2ec", "equity": 92162442, "ret": -7.84}, {"id": "v211", "ph": "9227673c", "equity": 92124448, "ret": -7.88}, {"id": "v99", "ph": "fb39409b", "equity": 92048335, "ret": -7.95}, {"id": "v316", "ph": "8dc1d197", "equity": 92025212, "ret": -7.97}, {"id": "v107", "ph": "be5cd36b", "equity": 91820632, "ret": -8.18}, {"id": "v307", "ph": "6abce93d", "equity": 91510486, "ret": -8.49}, {"id": "v57", "ph": "e7e98b6d", "equity": 91488608, "ret": -8.51}, {"id": "v49", "ph": "cdba73e0", "equity": 91443759, "ret": -8.56}, {"id": "v157", "ph": "80f3e23b", "equity": 91414714, "ret": -8.59}, {"id": "v320", "ph": "48d6a9ef", "equity": 91379973, "ret": -8.62}, {"id": "v199", "ph": "390bfab3", "equity": 91374084, "ret": -8.63}, {"id": "v318", "ph": "c99872ef", "equity": 91356580, "ret": -8.64}, {"id": "v97", "ph": "ebf31977", "equity": 91347946, "ret": -8.65}, {"id": "v304", "ph": "96c7e8e1", "equity": 91228811, "ret": -8.77}, {"id": "v87", "ph": "c0be98c0", "equity": 91188775, "ret": -8.81}, {"id": "v93", "ph": "f10d4e45", "equity": 91188775, "ret": -8.81}, {"id": "v91", "ph": "5674a3d7", "equity": 90877452, "ret": -9.12}, {"id": "v209", "ph": "8730802d", "equity": 90733539, "ret": -9.27}, {"id": "v195", "ph": "dd89cf59", "equity": 90576255, "ret": -9.42}, {"id": "v201", "ph": "cb8a413e", "equity": 90576255, "ret": -9.42}, {"id": "v189", "ph": "dfdbd0c8", "equity": 90513367, "ret": -9.49}, {"id": "v314", "ph": "7511570e", "equity": 90457850, "ret": -9.54}, {"id": "v306", "ph": "6966b8f6", "equity": 90451761, "ret": -9.55}, {"id": "v167", "ph": "b6d6aed8", "equity": 90194183, "ret": -9.81}, {"id": "v207", "ph": "0f6601a0", "equity": 90128866, "ret": -9.87}, {"id": "v213", "ph": "0e1d8e45", "equity": 89791224, "ret": -10.21}, {"id": "v81", "ph": "a6eac1e4", "equity": 89684613, "ret": -10.32}, {"id": "v215", "ph": "a904a49d", "equity": 89631706, "ret": -10.37}, {"id": "v161", "ph": "ed5677e6", "equity": 89518526, "ret": -10.48}, {"id": "v165", "ph": "8f862b27", "equity": 89518526, "ret": -10.48}, {"id": "v315", "ph": "e6d5b283", "equity": 89479409, "ret": -10.52}, {"id": "v89", "ph": "c49d5680", "equity": 89096535, "ret": -10.9}, {"id": "v159", "ph": "af80c67a", "equity": 88860327, "ret": -11.14}, {"id": "v51", "ph": "21a98e46", "equity": 88745286, "ret": -11.25}, {"id": "v105", "ph": "88395429", "equity": 88751830, "ret": -11.25}, {"id": "v308", "ph": "cb12dd0b", "equity": 88706257, "ret": -11.29}, {"id": "v310", "ph": "ec9dd55c", "equity": 88585915, "ret": -11.41}, {"id": "v155", "ph": "31c0d84e", "equity": 88148500, "ret": -11.85}, {"id": "v305", "ph": "8cc4eea6", "equity": 87864506, "ret": -12.14}, {"id": "v47", "ph": "ed758fcf", "equity": 87810183, "ret": -12.19}, {"id": "v301", "ph": "30da2021", "equity": 87082070, "ret": -12.92}, {"id": "v312", "ph": "4c23846f", "equity": 87081619, "ret": -12.92}, {"id": "v149", "ph": "c5329f8d", "equity": 86977446, "ret": -13.02}, {"id": "v1", "ph": "4874f4c9", "equity": 86563348, "ret": -13.44}, {"id": "v309", "ph": "07610040", "equity": 86463979, "ret": -13.54}, {"id": "v311", "ph": "8409c6e5", "equity": 86101230, "ret": -13.9}, {"id": "v217", "ph": "4c547a61", "equity": 86090367, "ret": -13.91}, {"id": "v218", "ph": "7304d2d4", "equity": 86090367, "ret": -13.91}, {"id": "v223", "ph": "b57356b8", "equity": 86028111, "ret": -13.97}, {"id": "v224", "ph": "888ab069", "equity": 86028111, "ret": -13.97}, {"id": "v229", "ph": "d9261dfb", "equity": 86028111, "ret": -13.97}, {"id": "v230", "ph": "141579fe", "equity": 86028111, "ret": -13.97}, {"id": "v235", "ph": "3e6c1666", "equity": 86028111, "ret": -13.97}, {"id": "v236", "ph": "f9c75560", "equity": 86028111, "ret": -13.97}, {"id": "v265", "ph": "7faed59d", "equity": 86028111, "ret": -13.97}, {"id": "v266", "ph": "c133b585", "equity": 86028111, "ret": -13.97}, {"id": "v271", "ph": "2b9ccdcd", "equity": 86028111, "ret": -13.97}, {"id": "v272", "ph": "2ed2027f", "equity": 86028111, "ret": -13.97}, {"id": "v277", "ph": "488b612a", "equity": 86028111, "ret": -13.97}, {"id": "v278", "ph": "861fb42b", "equity": 86028111, "ret": -13.97}, {"id": "v283", "ph": "479e4b25", "equity": 86028111, "ret": -13.97}, {"id": "v284", "ph": "261c5d58", "equity": 86028111, "ret": -13.97}, {"id": "v303", "ph": "1a084164", "equity": 85800353, "ret": -14.2}, {"id": "v151", "ph": "2eb1dd06", "equity": 84317520, "ret": -15.68}, {"id": "v302", "ph": "3f30502d", "equity": 84240679, "ret": -15.76}, {"id": "v41", "ph": "e9d84e84", "equity": 84181614, "ret": -15.82}, {"id": "v147", "ph": "2fbeeedb", "equity": 82857327, "ret": -17.14}, {"id": "v4", "ph": "b6219595", "equity": 81505657, "ret": -18.49}, {"id": "v296", "ph": "4c554378", "equity": 80029835, "ret": -19.97}, {"id": "v40", "ph": "70731d89", "equity": 79724166, "ret": -20.28}, {"id": "v298", "ph": "5d4bbec0", "equity": 78134788, "ret": -21.87}, {"id": "v299", "ph": "25046b1a", "equity": 75186062, "ret": -24.81}, {"id": "v300", "ph": "c6ddc17b", "equity": 70909523, "ret": -29.09}], "20260722": [{"id": "v319", "ph": "ca25f043", "equity": 96641404, "ret": -3.36}, {"id": "v321", "ph": "e82de49b", "equity": 95537377, "ret": -4.46}, {"id": "v317", "ph": "51f8ee6d", "equity": 94531711, "ret": -5.47}, {"id": "v103", "ph": "75b0a37c", "equity": 93201324, "ret": -6.8}, {"id": "v313", "ph": "b9f4ee72", "equity": 92977447, "ret": -7.02}, {"id": "v203", "ph": "2071defa", "equity": 92580836, "ret": -7.42}, {"id": "v101", "ph": "c4354346", "equity": 92115111, "ret": -7.88}, {"id": "v205", "ph": "02e5a3f5", "equity": 92057986, "ret": -7.94}, {"id": "v95", "ph": "7e28e756", "equity": 91889124, "ret": -8.11}, {"id": "v59", "ph": "1858e2ec", "equity": 91558042, "ret": -8.44}, {"id": "v316", "ph": "8dc1d197", "equity": 91493287, "ret": -8.51}, {"id": "v99", "ph": "fb39409b", "equity": 91441335, "ret": -8.56}, {"id": "v211", "ph": "9227673c", "equity": 91363538, "ret": -8.64}, {"id": "v107", "ph": "be5cd36b", "equity": 91245339, "ret": -8.75}, {"id": "v49", "ph": "cdba73e0", "equity": 90956284, "ret": -9.04}, {"id": "v57", "ph": "e7e98b6d", "equity": 90884208, "ret": -9.12}, {"id": "v157", "ph": "80f3e23b", "equity": 90863739, "ret": -9.14}, {"id": "v320", "ph": "48d6a9ef", "equity": 90822660, "ret": -9.18}, {"id": "v307", "ph": "6abce93d", "equity": 90804817, "ret": -9.2}, {"id": "v199", "ph": "390bfab3", "equity": 90742209, "ret": -9.26}, {"id": "v197", "ph": "5c290a32", "equity": 90666801, "ret": -9.33}, {"id": "v318", "ph": "c99872ef", "equity": 90516380, "ret": -9.48}, {"id": "v87", "ph": "c0be98c0", "equity": 90307213, "ret": -9.69}, {"id": "v93", "ph": "f10d4e45", "equity": 90307213, "ret": -9.69}, {"id": "v304", "ph": "96c7e8e1", "equity": 90277144, "ret": -9.72}, {"id": "v209", "ph": "8730802d", "equity": 90126539, "ret": -9.87}, {"id": "v91", "ph": "5674a3d7", "equity": 90021177, "ret": -9.98}, {"id": "v314", "ph": "7511570e", "equity": 89783375, "ret": -10.22}, {"id": "v189", "ph": "dfdbd0c8", "equity": 89633593, "ret": -10.37}, {"id": "v195", "ph": "dd89cf59", "equity": 89617275, "ret": -10.38}, {"id": "v201", "ph": "cb8a413e", "equity": 89617275, "ret": -10.38}, {"id": "v167", "ph": "b6d6aed8", "equity": 89610883, "ret": -10.39}, {"id": "v97", "ph": "ebf31977", "equity": 89568560, "ret": -10.43}, {"id": "v207", "ph": "0f6601a0", "equity": 89545866, "ret": -10.45}, {"id": "v215", "ph": "a904a49d", "equity": 88987147, "ret": -11.01}, {"id": "v161", "ph": "ed5677e6", "equity": 88936526, "ret": -11.06}, {"id": "v165", "ph": "8f862b27", "equity": 88936526, "ret": -11.06}, {"id": "v81", "ph": "a6eac1e4", "equity": 88933538, "ret": -11.07}, {"id": "v315", "ph": "e6d5b283", "equity": 88851609, "ret": -11.15}, {"id": "v306", "ph": "6966b8f6", "equity": 88712580, "ret": -11.29}, {"id": "v213", "ph": "0e1d8e45", "equity": 88203339, "ret": -11.8}, {"id": "v310", "ph": "ec9dd55c", "equity": 88037815, "ret": -11.96}, {"id": "v51", "ph": "21a98e46", "equity": 88001642, "ret": -12.0}, {"id": "v159", "ph": "af80c67a", "equity": 87978483, "ret": -12.02}, {"id": "v105", "ph": "88395429", "equity": 87164209, "ret": -12.84}, {"id": "v89", "ph": "c49d5680", "equity": 87152293, "ret": -12.85}, {"id": "v308", "ph": "cb12dd0b", "equity": 86987617, "ret": -13.01}, {"id": "v305", "ph": "8cc4eea6", "equity": 86676626, "ret": -13.32}, {"id": "v155", "ph": "31c0d84e", "equity": 86517483, "ret": -13.48}, {"id": "v301", "ph": "30da2021", "equity": 86299570, "ret": -13.7}, {"id": "v47", "ph": "ed758fcf", "equity": 86262582, "ret": -13.74}, {"id": "v312", "ph": "4c23846f", "equity": 85729419, "ret": -14.27}, {"id": "v1", "ph": "4874f4c9", "equity": 85660548, "ret": -14.34}, {"id": "v149", "ph": "c5329f8d", "equity": 85242679, "ret": -14.76}, {"id": "v303", "ph": "1a084164", "equity": 85186241, "ret": -14.81}, {"id": "v311", "ph": "8409c6e5", "equity": 85184230, "ret": -14.82}, {"id": "v218", "ph": "7304d2d4", "equity": 85145383, "ret": -14.85}, {"id": "v217", "ph": "4c547a61", "equity": 85097376, "ret": -14.9}, {"id": "v223", "ph": "b57356b8", "equity": 85083127, "ret": -14.92}, {"id": "v224", "ph": "888ab069", "equity": 85083127, "ret": -14.92}, {"id": "v229", "ph": "d9261dfb", "equity": 85083127, "ret": -14.92}, {"id": "v230", "ph": "141579fe", "equity": 85083127, "ret": -14.92}, {"id": "v235", "ph": "3e6c1666", "equity": 85083127, "ret": -14.92}, {"id": "v236", "ph": "f9c75560", "equity": 85083127, "ret": -14.92}, {"id": "v265", "ph": "7faed59d", "equity": 85083127, "ret": -14.92}, {"id": "v266", "ph": "c133b585", "equity": 85083127, "ret": -14.92}, {"id": "v271", "ph": "2b9ccdcd", "equity": 85083127, "ret": -14.92}, {"id": "v272", "ph": "2ed2027f", "equity": 85083127, "ret": -14.92}, {"id": "v277", "ph": "488b612a", "equity": 85083127, "ret": -14.92}, {"id": "v278", "ph": "861fb42b", "equity": 85083127, "ret": -14.92}, {"id": "v283", "ph": "479e4b25", "equity": 85083127, "ret": -14.92}, {"id": "v284", "ph": "261c5d58", "equity": 85083127, "ret": -14.92}, {"id": "v309", "ph": "07610040", "equity": 84801897, "ret": -15.2}, {"id": "v302", "ph": "3f30502d", "equity": 82984780, "ret": -17.02}, {"id": "v41", "ph": "e9d84e84", "equity": 82442562, "ret": -17.56}, {"id": "v151", "ph": "2eb1dd06", "equity": 82206766, "ret": -17.79}, {"id": "v147", "ph": "2fbeeedb", "equity": 80675705, "ret": -19.32}, {"id": "v4", "ph": "b6219595", "equity": 79163178, "ret": -20.84}, {"id": "v296", "ph": "4c554378", "equity": 79015755, "ret": -20.98}, {"id": "v40", "ph": "70731d89", "equity": 77413917, "ret": -22.59}, {"id": "v298", "ph": "5d4bbec0", "equity": 77045963, "ret": -22.95}, {"id": "v299", "ph": "25046b1a", "equity": 73699362, "ret": -26.3}, {"id": "v300", "ph": "c6ddc17b", "equity": 70020634, "ret": -29.98}], "20260723": [{"id": "v319", "ph": "ca25f043", "equity": 97344281, "ret": -2.66}, {"id": "v321", "ph": "e82de49b", "equity": 96850290, "ret": -3.15}, {"id": "v317", "ph": "51f8ee6d", "equity": 95483411, "ret": -4.52}, {"id": "v103", "ph": "75b0a37c", "equity": 94719243, "ret": -5.28}, {"id": "v203", "ph": "2071defa", "equity": 94158254, "ret": -5.84}, {"id": "v313", "ph": "b9f4ee72", "equity": 93714884, "ret": -6.29}, {"id": "v101", "ph": "c4354346", "equity": 93675266, "ret": -6.32}, {"id": "v95", "ph": "7e28e756", "equity": 93472137, "ret": -6.53}, {"id": "v205", "ph": "02e5a3f5", "equity": 93469960, "ret": -6.53}, {"id": "v59", "ph": "1858e2ec", "equity": 93262679, "ret": -6.74}, {"id": "v99", "ph": "fb39409b", "equity": 92998776, "ret": -7.0}, {"id": "v211", "ph": "9227673c", "equity": 92839096, "ret": -7.16}, {"id": "v107", "ph": "be5cd36b", "equity": 92768400, "ret": -7.23}, {"id": "v49", "ph": "cdba73e0", "equity": 92637002, "ret": -7.36}, {"id": "v57", "ph": "e7e98b6d", "equity": 92587857, "ret": -7.41}, {"id": "v157", "ph": "80f3e23b", "equity": 92198402, "ret": -7.8}, {"id": "v197", "ph": "5c290a32", "equity": 92020162, "ret": -7.98}, {"id": "v318", "ph": "c99872ef", "equity": 91922879, "ret": -8.08}, {"id": "v199", "ph": "390bfab3", "equity": 91822113, "ret": -8.18}, {"id": "v87", "ph": "c0be98c0", "equity": 91746796, "ret": -8.25}, {"id": "v93", "ph": "f10d4e45", "equity": 91746796, "ret": -8.25}, {"id": "v316", "ph": "8dc1d197", "equity": 91739958, "ret": -8.26}, {"id": "v209", "ph": "8730802d", "equity": 91679109, "ret": -8.32}, {"id": "v307", "ph": "6abce93d", "equity": 91621406, "ret": -8.38}, {"id": "v91", "ph": "5674a3d7", "equity": 91420862, "ret": -8.58}, {"id": "v167", "ph": "b6d6aed8", "equity": 91099221, "ret": -8.9}, {"id": "v320", "ph": "48d6a9ef", "equity": 91086838, "ret": -8.91}, {"id": "v207", "ph": "0f6601a0", "equity": 91055209, "ret": -8.94}, {"id": "v315", "ph": "e6d5b283", "equity": 91044857, "ret": -8.96}, {"id": "v195", "ph": "dd89cf59", "equity": 91023841, "ret": -8.98}, {"id": "v201", "ph": "cb8a413e", "equity": 91023841, "ret": -8.98}, {"id": "v189", "ph": "dfdbd0c8", "equity": 90930405, "ret": -9.07}, {"id": "v97", "ph": "ebf31977", "equity": 90916706, "ret": -9.08}, {"id": "v304", "ph": "96c7e8e1", "equity": 90835706, "ret": -9.16}, {"id": "v314", "ph": "7511570e", "equity": 90554102, "ret": -9.45}, {"id": "v215", "ph": "a904a49d", "equity": 90456632, "ret": -9.54}, {"id": "v161", "ph": "ed5677e6", "equity": 90423951, "ret": -9.58}, {"id": "v165", "ph": "8f862b27", "equity": 90423951, "ret": -9.58}, {"id": "v81", "ph": "a6eac1e4", "equity": 90376813, "ret": -9.62}, {"id": "v306", "ph": "6966b8f6", "equity": 90321719, "ret": -9.68}, {"id": "v213", "ph": "0e1d8e45", "equity": 89961686, "ret": -10.04}, {"id": "v51", "ph": "21a98e46", "equity": 89571712, "ret": -10.43}, {"id": "v159", "ph": "af80c67a", "equity": 89135465, "ret": -10.86}, {"id": "v105", "ph": "88395429", "equity": 88920614, "ret": -11.08}, {"id": "v310", "ph": "ec9dd55c", "equity": 88699473, "ret": -11.3}, {"id": "v308", "ph": "cb12dd0b", "equity": 88514255, "ret": -11.49}, {"id": "v89", "ph": "c49d5680", "equity": 88441737, "ret": -11.56}, {"id": "v301", "ph": "30da2021", "equity": 88202693, "ret": -11.8}, {"id": "v1", "ph": "4874f4c9", "equity": 88009125, "ret": -11.99}, {"id": "v47", "ph": "ed758fcf", "equity": 87718830, "ret": -12.28}, {"id": "v312", "ph": "4c23846f", "equity": 87724114, "ret": -12.28}, {"id": "v305", "ph": "8cc4eea6", "equity": 87671213, "ret": -12.33}, {"id": "v155", "ph": "31c0d84e", "equity": 87570429, "ret": -12.43}, {"id": "v309", "ph": "07610040", "equity": 86809577, "ret": -13.19}, {"id": "v311", "ph": "8409c6e5", "equity": 86747172, "ret": -13.25}, {"id": "v149", "ph": "c5329f8d", "equity": 86595308, "ret": -13.4}, {"id": "v303", "ph": "1a084164", "equity": 86502167, "ret": -13.5}, {"id": "v217", "ph": "4c547a61", "equity": 86319467, "ret": -13.68}, {"id": "v223", "ph": "b57356b8", "equity": 86305218, "ret": -13.69}, {"id": "v229", "ph": "d9261dfb", "equity": 86305218, "ret": -13.69}, {"id": "v235", "ph": "3e6c1666", "equity": 86305218, "ret": -13.69}, {"id": "v265", "ph": "7faed59d", "equity": 86305218, "ret": -13.69}, {"id": "v271", "ph": "2b9ccdcd", "equity": 86305218, "ret": -13.69}, {"id": "v277", "ph": "488b612a", "equity": 86305218, "ret": -13.69}, {"id": "v283", "ph": "479e4b25", "equity": 86305218, "ret": -13.69}, {"id": "v218", "ph": "7304d2d4", "equity": 86106155, "ret": -13.89}, {"id": "v224", "ph": "888ab069", "equity": 86043899, "ret": -13.96}, {"id": "v230", "ph": "141579fe", "equity": 86043899, "ret": -13.96}, {"id": "v236", "ph": "f9c75560", "equity": 86043899, "ret": -13.96}, {"id": "v266", "ph": "c133b585", "equity": 86043899, "ret": -13.96}, {"id": "v272", "ph": "2ed2027f", "equity": 86043899, "ret": -13.96}, {"id": "v278", "ph": "861fb42b", "equity": 86043899, "ret": -13.96}, {"id": "v284", "ph": "261c5d58", "equity": 86043899, "ret": -13.96}, {"id": "v302", "ph": "3f30502d", "equity": 84642676, "ret": -15.36}, {"id": "v41", "ph": "e9d84e84", "equity": 84069115, "ret": -15.93}, {"id": "v151", "ph": "2eb1dd06", "equity": 83455339, "ret": -16.54}, {"id": "v147", "ph": "2fbeeedb", "equity": 81819890, "ret": -18.18}, {"id": "v4", "ph": "b6219595", "equity": 81192265, "ret": -18.81}, {"id": "v296", "ph": "4c554378", "equity": 80153572, "ret": -19.85}, {"id": "v298", "ph": "5d4bbec0", "equity": 79608330, "ret": -20.39}, {"id": "v40", "ph": "70731d89", "equity": 79425329, "ret": -20.57}, {"id": "v299", "ph": "25046b1a", "equity": 75593122, "ret": -24.41}, {"id": "v300", "ph": "c6ddc17b", "equity": 70280913, "ret": -29.72}], "20260724": [{"id": "v321", "ph": "e82de49b", "equity": 96237233, "ret": -3.76}, {"id": "v319", "ph": "ca25f043", "equity": 96203069, "ret": -3.8}, {"id": "v317", "ph": "51f8ee6d", "equity": 95142012, "ret": -4.86}, {"id": "v103", "ph": "75b0a37c", "equity": 94389132, "ret": -5.61}, {"id": "v203", "ph": "2071defa", "equity": 94123912, "ret": -5.88}, {"id": "v101", "ph": "c4354346", "equity": 93837838, "ret": -6.16}, {"id": "v59", "ph": "1858e2ec", "equity": 93439966, "ret": -6.56}, {"id": "v95", "ph": "7e28e756", "equity": 93440053, "ret": -6.56}, {"id": "v99", "ph": "fb39409b", "equity": 93161488, "ret": -6.84}, {"id": "v313", "ph": "b9f4ee72", "equity": 93040980, "ret": -6.96}, {"id": "v57", "ph": "e7e98b6d", "equity": 92766145, "ret": -7.23}, {"id": "v205", "ph": "02e5a3f5", "equity": 92735433, "ret": -7.26}, {"id": "v49", "ph": "cdba73e0", "equity": 92627409, "ret": -7.37}, {"id": "v211", "ph": "9227673c", "equity": 92514138, "ret": -7.49}, {"id": "v157", "ph": "80f3e23b", "equity": 92321501, "ret": -7.68}, {"id": "v107", "ph": "be5cd36b", "equity": 92301034, "ret": -7.7}, {"id": "v318", "ph": "c99872ef", "equity": 92080434, "ret": -7.92}, {"id": "v209", "ph": "8730802d", "equity": 91841028, "ret": -8.16}, {"id": "v87", "ph": "c0be98c0", "equity": 91427126, "ret": -8.57}, {"id": "v93", "ph": "f10d4e45", "equity": 91427126, "ret": -8.57}, {"id": "v199", "ph": "390bfab3", "equity": 91380551, "ret": -8.62}, {"id": "v167", "ph": "b6d6aed8", "equity": 91262815, "ret": -8.74}, {"id": "v207", "ph": "0f6601a0", "equity": 91216803, "ret": -8.78}, {"id": "v197", "ph": "5c290a32", "equity": 91077525, "ret": -8.92}, {"id": "v316", "ph": "8dc1d197", "equity": 91062293, "ret": -8.94}, {"id": "v91", "ph": "5674a3d7", "equity": 91042619, "ret": -8.96}, {"id": "v307", "ph": "6abce93d", "equity": 90976224, "ret": -9.02}, {"id": "v315", "ph": "e6d5b283", "equity": 90845783, "ret": -9.15}, {"id": "v195", "ph": "dd89cf59", "equity": 90706261, "ret": -9.29}, {"id": "v201", "ph": "cb8a413e", "equity": 90706261, "ret": -9.29}, {"id": "v161", "ph": "ed5677e6", "equity": 90585528, "ret": -9.41}, {"id": "v165", "ph": "8f862b27", "equity": 90585528, "ret": -9.41}, {"id": "v189", "ph": "dfdbd0c8", "equity": 90470422, "ret": -9.53}, {"id": "v320", "ph": "48d6a9ef", "equity": 90368822, "ret": -9.63}, {"id": "v314", "ph": "7511570e", "equity": 90252487, "ret": -9.75}, {"id": "v304", "ph": "96c7e8e1", "equity": 90177917, "ret": -9.82}, {"id": "v97", "ph": "ebf31977", "equity": 90152329, "ret": -9.85}, {"id": "v215", "ph": "a904a49d", "equity": 90016445, "ret": -9.98}, {"id": "v81", "ph": "a6eac1e4", "equity": 89712670, "ret": -10.29}, {"id": "v306", "ph": "6966b8f6", "equity": 89501964, "ret": -10.5}, {"id": "v213", "ph": "0e1d8e45", "equity": 89150614, "ret": -10.85}, {"id": "v51", "ph": "21a98e46", "equity": 88932420, "ret": -11.07}, {"id": "v159", "ph": "af80c67a", "equity": 88745758, "ret": -11.25}, {"id": "v301", "ph": "30da2021", "equity": 88250018, "ret": -11.75}, {"id": "v1", "ph": "4874f4c9", "equity": 88118722, "ret": -11.88}, {"id": "v105", "ph": "88395429", "equity": 88117432, "ret": -11.88}, {"id": "v310", "ph": "ec9dd55c", "equity": 88076730, "ret": -11.92}, {"id": "v308", "ph": "cb12dd0b", "equity": 87474376, "ret": -12.53}, {"id": "v312", "ph": "4c23846f", "equity": 87471024, "ret": -12.53}, {"id": "v89", "ph": "c49d5680", "equity": 87455787, "ret": -12.54}, {"id": "v305", "ph": "8cc4eea6", "equity": 86976768, "ret": -13.02}, {"id": "v47", "ph": "ed758fcf", "equity": 86781583, "ret": -13.22}, {"id": "v309", "ph": "07610040", "equity": 86727542, "ret": -13.27}, {"id": "v155", "ph": "31c0d84e", "equity": 86636675, "ret": -13.36}, {"id": "v311", "ph": "8409c6e5", "equity": 86322712, "ret": -13.68}, {"id": "v303", "ph": "1a084164", "equity": 85646622, "ret": -14.35}, {"id": "v217", "ph": "4c547a61", "equity": 85578880, "ret": -14.42}, {"id": "v223", "ph": "b57356b8", "equity": 85564631, "ret": -14.44}, {"id": "v229", "ph": "d9261dfb", "equity": 85564631, "ret": -14.44}, {"id": "v235", "ph": "3e6c1666", "equity": 85564631, "ret": -14.44}, {"id": "v265", "ph": "7faed59d", "equity": 85564631, "ret": -14.44}, {"id": "v271", "ph": "2b9ccdcd", "equity": 85564631, "ret": -14.44}, {"id": "v277", "ph": "488b612a", "equity": 85564631, "ret": -14.44}, {"id": "v283", "ph": "479e4b25", "equity": 85564631, "ret": -14.44}, {"id": "v149", "ph": "c5329f8d", "equity": 85370732, "ret": -14.63}, {"id": "v218", "ph": "7304d2d4", "equity": 85156011, "ret": -14.84}, {"id": "v224", "ph": "888ab069", "equity": 85093755, "ret": -14.91}, {"id": "v230", "ph": "141579fe", "equity": 85093755, "ret": -14.91}, {"id": "v236", "ph": "f9c75560", "equity": 85093755, "ret": -14.91}, {"id": "v266", "ph": "c133b585", "equity": 85093755, "ret": -14.91}, {"id": "v272", "ph": "2ed2027f", "equity": 85093755, "ret": -14.91}, {"id": "v278", "ph": "861fb42b", "equity": 85093755, "ret": -14.91}, {"id": "v284", "ph": "261c5d58", "equity": 85093755, "ret": -14.91}, {"id": "v302", "ph": "3f30502d", "equity": 83847192, "ret": -16.15}, {"id": "v41", "ph": "e9d84e84", "equity": 82899458, "ret": -17.1}, {"id": "v151", "ph": "2eb1dd06", "equity": 81773497, "ret": -18.23}, {"id": "v147", "ph": "2fbeeedb", "equity": 80283719, "ret": -19.72}, {"id": "v296", "ph": "4c554378", "equity": 79663192, "ret": -20.34}, {"id": "v4", "ph": "b6219595", "equity": 79399957, "ret": -20.6}, {"id": "v298", "ph": "5d4bbec0", "equity": 79128726, "ret": -20.87}, {"id": "v40", "ph": "70731d89", "equity": 77672758, "ret": -22.33}, {"id": "v299", "ph": "25046b1a", "equity": 74613187, "ret": -25.39}, {"id": "v300", "ph": "c6ddc17b", "equity": 68893661, "ret": -31.11}], "20260727": [{"id": "v319", "ph": "ca25f043", "equity": 96215398, "ret": -3.78}, {"id": "v321", "ph": "e82de49b", "equity": 96119353, "ret": -3.88}, {"id": "v317", "ph": "51f8ee6d", "equity": 94365997, "ret": -5.63}, {"id": "v313", "ph": "b9f4ee72", "equity": 92087348, "ret": -7.91}, {"id": "v205", "ph": "02e5a3f5", "equity": 91566888, "ret": -8.43}, {"id": "v103", "ph": "75b0a37c", "equity": 91527732, "ret": -8.47}, {"id": "v318", "ph": "c99872ef", "equity": 91436234, "ret": -8.56}, {"id": "v101", "ph": "c4354346", "equity": 91386557, "ret": -8.61}, {"id": "v316", "ph": "8dc1d197", "equity": 91315493, "ret": -8.68}, {"id": "v203", "ph": "2071defa", "equity": 91263472, "ret": -8.74}, {"id": "v59", "ph": "1858e2ec", "equity": 91203098, "ret": -8.8}, {"id": "v99", "ph": "fb39409b", "equity": 90724166, "ret": -9.28}, {"id": "v95", "ph": "7e28e756", "equity": 90643772, "ret": -9.36}, {"id": "v320", "ph": "48d6a9ef", "equity": 90640222, "ret": -9.36}, {"id": "v57", "ph": "e7e98b6d", "equity": 90538996, "ret": -9.46}, {"id": "v304", "ph": "96c7e8e1", "equity": 90010466, "ret": -9.99}, {"id": "v197", "ph": "5c290a32", "equity": 89994081, "ret": -10.01}, {"id": "v49", "ph": "cdba73e0", "equity": 89967305, "ret": -10.03}, {"id": "v307", "ph": "6abce93d", "equity": 89797098, "ret": -10.2}, {"id": "v211", "ph": "9227673c", "equity": 89696806, "ret": -10.3}, {"id": "v157", "ph": "80f3e23b", "equity": 89520572, "ret": -10.48}, {"id": "v97", "ph": "ebf31977", "equity": 89499524, "ret": -10.5}, {"id": "v209", "ph": "8730802d", "equity": 89427970, "ret": -10.57}, {"id": "v315", "ph": "e6d5b283", "equity": 89407562, "ret": -10.59}, {"id": "v314", "ph": "7511570e", "equity": 89232014, "ret": -10.77}, {"id": "v199", "ph": "390bfab3", "equity": 89136479, "ret": -10.86}, {"id": "v107", "ph": "be5cd36b", "equity": 88997031, "ret": -11.0}, {"id": "v306", "ph": "6966b8f6", "equity": 88898954, "ret": -11.1}, {"id": "v167", "ph": "b6d6aed8", "equity": 88855562, "ret": -11.14}, {"id": "v91", "ph": "5674a3d7", "equity": 88823953, "ret": -11.18}, {"id": "v207", "ph": "0f6601a0", "equity": 88816070, "ret": -11.18}, {"id": "v87", "ph": "c0be98c0", "equity": 88636523, "ret": -11.36}, {"id": "v93", "ph": "f10d4e45", "equity": 88636523, "ret": -11.36}, {"id": "v161", "ph": "ed5677e6", "equity": 88195113, "ret": -11.8}, {"id": "v165", "ph": "8f862b27", "equity": 88195113, "ret": -11.8}, {"id": "v195", "ph": "dd89cf59", "equity": 87928163, "ret": -12.07}, {"id": "v201", "ph": "cb8a413e", "equity": 87928163, "ret": -12.07}, {"id": "v310", "ph": "ec9dd55c", "equity": 87713974, "ret": -12.29}, {"id": "v189", "ph": "dfdbd0c8", "equity": 87256821, "ret": -12.74}, {"id": "v213", "ph": "0e1d8e45", "equity": 87225882, "ret": -12.77}, {"id": "v89", "ph": "c49d5680", "equity": 86914225, "ret": -13.09}, {"id": "v215", "ph": "a904a49d", "equity": 86794256, "ret": -13.21}, {"id": "v305", "ph": "8cc4eea6", "equity": 86692434, "ret": -13.31}, {"id": "v81", "ph": "a6eac1e4", "equity": 86512696, "ret": -13.49}, {"id": "v308", "ph": "cb12dd0b", "equity": 86242151, "ret": -13.76}, {"id": "v312", "ph": "4c23846f", "equity": 86237324, "ret": -13.76}, {"id": "v105", "ph": "88395429", "equity": 86181944, "ret": -13.82}, {"id": "v47", "ph": "ed758fcf", "equity": 85970426, "ret": -14.03}, {"id": "v51", "ph": "21a98e46", "equity": 85923618, "ret": -14.08}, {"id": "v311", "ph": "8409c6e5", "equity": 85840299, "ret": -14.16}, {"id": "v159", "ph": "af80c67a", "equity": 85556128, "ret": -14.44}, {"id": "v309", "ph": "07610040", "equity": 85212542, "ret": -14.79}, {"id": "v301", "ph": "30da2021", "equity": 85064270, "ret": -14.94}, {"id": "v155", "ph": "31c0d84e", "equity": 84722023, "ret": -15.28}, {"id": "v1", "ph": "4874f4c9", "equity": 84354514, "ret": -15.65}, {"id": "v149", "ph": "c5329f8d", "equity": 84276130, "ret": -15.72}, {"id": "v303", "ph": "1a084164", "equity": 84040178, "ret": -15.96}, {"id": "v223", "ph": "b57356b8", "equity": 83914010, "ret": -16.09}, {"id": "v235", "ph": "3e6c1666", "equity": 83914010, "ret": -16.09}, {"id": "v265", "ph": "7faed59d", "equity": 83914010, "ret": -16.09}, {"id": "v271", "ph": "2b9ccdcd", "equity": 83914010, "ret": -16.09}, {"id": "v217", "ph": "4c547a61", "equity": 83870676, "ret": -16.13}, {"id": "v229", "ph": "d9261dfb", "equity": 83856427, "ret": -16.14}, {"id": "v277", "ph": "488b612a", "equity": 83856427, "ret": -16.14}, {"id": "v283", "ph": "479e4b25", "equity": 83856427, "ret": -16.14}, {"id": "v224", "ph": "888ab069", "equity": 82980608, "ret": -17.02}, {"id": "v236", "ph": "f9c75560", "equity": 82980608, "ret": -17.02}, {"id": "v266", "ph": "c133b585", "equity": 82980608, "ret": -17.02}, {"id": "v272", "ph": "2ed2027f", "equity": 82980608, "ret": -17.02}, {"id": "v218", "ph": "7304d2d4", "equity": 82969395, "ret": -17.03}, {"id": "v230", "ph": "141579fe", "equity": 82907139, "ret": -17.09}, {"id": "v278", "ph": "861fb42b", "equity": 82907139, "ret": -17.09}, {"id": "v284", "ph": "261c5d58", "equity": 82907139, "ret": -17.09}, {"id": "v41", "ph": "e9d84e84", "equity": 81926428, "ret": -18.07}, {"id": "v302", "ph": "3f30502d", "equity": 81093448, "ret": -18.91}, {"id": "v151", "ph": "2eb1dd06", "equity": 80871239, "ret": -19.13}, {"id": "v147", "ph": "2fbeeedb", "equity": 79336726, "ret": -20.66}, {"id": "v296", "ph": "4c554378", "equity": 79038392, "ret": -20.96}, {"id": "v4", "ph": "b6219595", "equity": 78306323, "ret": -21.69}, {"id": "v298", "ph": "5d4bbec0", "equity": 77972386, "ret": -22.03}, {"id": "v40", "ph": "70731d89", "equity": 76598748, "ret": -23.4}, {"id": "v299", "ph": "25046b1a", "equity": 73737330, "ret": -26.26}, {"id": "v300", "ph": "c6ddc17b", "equity": 67419334, "ret": -32.58}], "20260728": [{"id": "v321", "ph": "e82de49b", "equity": 95058610, "ret": -4.94}, {"id": "v319", "ph": "ca25f043", "equity": 94278998, "ret": -5.72}, {"id": "v317", "ph": "51f8ee6d", "equity": 93501993, "ret": -6.5}, {"id": "v318", "ph": "c99872ef", "equity": 90762837, "ret": -9.24}, {"id": "v316", "ph": "8dc1d197", "equity": 90381365, "ret": -9.62}, {"id": "v313", "ph": "b9f4ee72", "equity": 90179251, "ret": -9.82}, {"id": "v320", "ph": "48d6a9ef", "equity": 89554005, "ret": -10.45}, {"id": "v203", "ph": "2071defa", "equity": 89343448, "ret": -10.66}, {"id": "v59", "ph": "1858e2ec", "equity": 89333757, "ret": -10.67}, {"id": "v205", "ph": "02e5a3f5", "equity": 89314987, "ret": -10.69}, {"id": "v95", "ph": "7e28e756", "equity": 89152772, "ret": -10.85}, {"id": "v101", "ph": "c4354346", "equity": 89078335, "ret": -10.92}, {"id": "v103", "ph": "75b0a37c", "equity": 88931347, "ret": -11.07}, {"id": "v57", "ph": "e7e98b6d", "equity": 88674323, "ret": -11.33}, {"id": "v49", "ph": "cdba73e0", "equity": 88478333, "ret": -11.52}, {"id": "v99", "ph": "fb39409b", "equity": 88425192, "ret": -11.57}, {"id": "v307", "ph": "6abce93d", "equity": 88341787, "ret": -11.66}, {"id": "v315", "ph": "e6d5b283", "equity": 88059990, "ret": -11.94}, {"id": "v314", "ph": "7511570e", "equity": 87815919, "ret": -12.18}, {"id": "v197", "ph": "5c290a32", "equity": 87649278, "ret": -12.35}, {"id": "v97", "ph": "ebf31977", "equity": 87494603, "ret": -12.51}, {"id": "v304", "ph": "96c7e8e1", "equity": 87477988, "ret": -12.52}, {"id": "v306", "ph": "6966b8f6", "equity": 87258167, "ret": -12.74}, {"id": "v157", "ph": "80f3e23b", "equity": 87251515, "ret": -12.75}, {"id": "v209", "ph": "8730802d", "equity": 87152019, "ret": -12.85}, {"id": "v211", "ph": "9227673c", "equity": 87129408, "ret": -12.87}, {"id": "v199", "ph": "390bfab3", "equity": 86980353, "ret": -13.02}, {"id": "v91", "ph": "5674a3d7", "equity": 86736102, "ret": -13.26}, {"id": "v167", "ph": "b6d6aed8", "equity": 86572733, "ret": -13.43}, {"id": "v207", "ph": "0f6601a0", "equity": 86559017, "ret": -13.44}, {"id": "v310", "ph": "ec9dd55c", "equity": 86539949, "ret": -13.46}, {"id": "v107", "ph": "be5cd36b", "equity": 86118013, "ret": -13.88}, {"id": "v87", "ph": "c0be98c0", "equity": 86086741, "ret": -13.91}, {"id": "v93", "ph": "f10d4e45", "equity": 86086741, "ret": -13.91}, {"id": "v161", "ph": "ed5677e6", "equity": 85938401, "ret": -14.06}, {"id": "v165", "ph": "8f862b27", "equity": 85938401, "ret": -14.06}, {"id": "v195", "ph": "dd89cf59", "equity": 85385069, "ret": -14.61}, {"id": "v201", "ph": "cb8a413e", "equity": 85385069, "ret": -14.61}, {"id": "v312", "ph": "4c23846f", "equity": 84707127, "ret": -15.29}, {"id": "v213", "ph": "0e1d8e45", "equity": 84620529, "ret": -15.38}, {"id": "v311", "ph": "8409c6e5", "equity": 84620888, "ret": -15.38}, {"id": "v81", "ph": "a6eac1e4", "equity": 84501334, "ret": -15.5}, {"id": "v308", "ph": "cb12dd0b", "equity": 84492044, "ret": -15.51}, {"id": "v89", "ph": "c49d5680", "equity": 84419073, "ret": -15.58}, {"id": "v189", "ph": "dfdbd0c8", "equity": 84299095, "ret": -15.7}, {"id": "v305", "ph": "8cc4eea6", "equity": 84000731, "ret": -16.0}, {"id": "v215", "ph": "a904a49d", "equity": 83983415, "ret": -16.02}, {"id": "v51", "ph": "21a98e46", "equity": 83908507, "ret": -16.09}, {"id": "v47", "ph": "ed758fcf", "equity": 83660987, "ret": -16.34}, {"id": "v105", "ph": "88395429", "equity": 83578935, "ret": -16.42}, {"id": "v309", "ph": "07610040", "equity": 82949428, "ret": -17.05}, {"id": "v159", "ph": "af80c67a", "equity": 82639296, "ret": -17.36}, {"id": "v301", "ph": "30da2021", "equity": 82468997, "ret": -17.53}, {"id": "v155", "ph": "31c0d84e", "equity": 82058836, "ret": -17.94}, {"id": "v1", "ph": "4874f4c9", "equity": 81613783, "ret": -18.39}, {"id": "v223", "ph": "b57356b8", "equity": 81495839, "ret": -18.5}, {"id": "v235", "ph": "3e6c1666", "equity": 81495839, "ret": -18.5}, {"id": "v265", "ph": "7faed59d", "equity": 81495839, "ret": -18.5}, {"id": "v271", "ph": "2b9ccdcd", "equity": 81495839, "ret": -18.5}, {"id": "v303", "ph": "1a084164", "equity": 81241910, "ret": -18.76}, {"id": "v149", "ph": "c5329f8d", "equity": 81219353, "ret": -18.78}, {"id": "v217", "ph": "4c547a61", "equity": 81123906, "ret": -18.88}, {"id": "v229", "ph": "d9261dfb", "equity": 81109656, "ret": -18.89}, {"id": "v277", "ph": "488b612a", "equity": 81109656, "ret": -18.89}, {"id": "v283", "ph": "479e4b25", "equity": 81109656, "ret": -18.89}, {"id": "v224", "ph": "888ab069", "equity": 80452478, "ret": -19.55}, {"id": "v236", "ph": "f9c75560", "equity": 80452478, "ret": -19.55}, {"id": "v266", "ph": "c133b585", "equity": 80452478, "ret": -19.55}, {"id": "v272", "ph": "2ed2027f", "equity": 80452478, "ret": -19.55}, {"id": "v218", "ph": "7304d2d4", "equity": 80079935, "ret": -19.92}, {"id": "v230", "ph": "141579fe", "equity": 80017679, "ret": -19.98}, {"id": "v278", "ph": "861fb42b", "equity": 80017679, "ret": -19.98}, {"id": "v284", "ph": "261c5d58", "equity": 80017679, "ret": -19.98}, {"id": "v41", "ph": "e9d84e84", "equity": 79192636, "ret": -20.81}, {"id": "v302", "ph": "3f30502d", "equity": 78215021, "ret": -21.78}, {"id": "v151", "ph": "2eb1dd06", "equity": 76870364, "ret": -23.13}, {"id": "v296", "ph": "4c554378", "equity": 76753047, "ret": -23.25}, {"id": "v4", "ph": "b6219595", "equity": 75006311, "ret": -24.99}, {"id": "v147", "ph": "2fbeeedb", "equity": 74883917, "ret": -25.12}, {"id": "v298", "ph": "5d4bbec0", "equity": 74713064, "ret": -25.29}, {"id": "v40", "ph": "70731d89", "equity": 73783421, "ret": -26.22}, {"id": "v299", "ph": "25046b1a", "equity": 71014082, "ret": -28.99}, {"id": "v300", "ph": "c6ddc17b", "equity": 63878657, "ret": -36.12}]} \ 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}], "20260612": [{"id": "v62", "ph": "c6ddc17b", "equity": 101131990, "ret": 1.13}, {"id": "v64", "ph": "15b83273", "equity": 101131990, "ret": 1.13}, {"id": "v66", "ph": "db0e70a4", "equity": 101131990, "ret": 1.13}, {"id": "v68", "ph": "38c84625", "equity": 100815744, "ret": 0.82}, {"id": "v70", "ph": "6c4d4125", "equity": 100815744, "ret": 0.82}, {"id": "v72", "ph": "b8d74129", "equity": 100815744, "ret": 0.82}, {"id": "v74", "ph": "35a8e955", "equity": 100815744, "ret": 0.82}, {"id": "v76", "ph": "178928cb", "equity": 100815744, "ret": 0.82}, {"id": "v78", "ph": "655e082d", "equity": 100815744, "ret": 0.82}, {"id": "v80", "ph": "b2d56c47", "equity": 100815744, "ret": 0.82}, {"id": "v84", "ph": "95794738", "equity": 100815744, "ret": 0.82}, {"id": "v86", "ph": "935c5a1c", "equity": 100815744, "ret": 0.82}, {"id": "v40", "ph": "70731d89", "equity": 100812655, "ret": 0.81}, {"id": "v42", "ph": "f36fddc6", "equity": 100812655, "ret": 0.81}, {"id": "v44", "ph": "364ea434", "equity": 100812655, "ret": 0.81}, {"id": "v22", "ph": "956b3b16", "equity": 100762741, "ret": 0.76}, {"id": "v24", "ph": "9beb8c05", "equity": 100762741, "ret": 0.76}, {"id": "v25", "ph": "00b59557", "equity": 100762741, "ret": 0.76}, {"id": "v79", "ph": "61b964d8", "equity": 100762741, "ret": 0.76}, {"id": "v83", "ph": "1b98a0fc", "equity": 100762741, "ret": 0.76}, {"id": "v85", "ph": "5ca17df0", "equity": 100762741, "ret": 0.76}, {"id": "v48", "ph": "18854c6a", "equity": 100477921, "ret": 0.48}, {"id": "v90", "ph": "86e09c47", "equity": 100477921, "ret": 0.48}, {"id": "v98", "ph": "266fc53f", "equity": 100477921, "ret": 0.48}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100477921, "ret": 0.48}, {"id": "v2", "ph": "bab0fc2c", "equity": 100463176, "ret": 0.46}, {"id": "v3", "ph": "81d17cca", "equity": 100463176, "ret": 0.46}, {"id": "v4", "ph": "b6219595", "equity": 100463176, "ret": 0.46}, {"id": "v39", "ph": "11c27236", "equity": 100463176, "ret": 0.46}, {"id": "v41", "ph": "e9d84e84", "equity": 100463176, "ret": 0.46}, {"id": "v43", "ph": "94ea3b53", "equity": 100463176, "ret": 0.46}, {"id": "v6", "ph": "e96ce9e2", "equity": 100248035, "ret": 0.25}, {"id": "v35", "ph": "6a183375", "equity": 100248035, "ret": 0.25}, {"id": "v47", "ph": "ed758fcf", "equity": 100248035, "ret": 0.25}, {"id": "v105", "ph": "88395429", "equity": 100248035, "ret": 0.25}, {"id": "v27", "ph": "33d43bc6", "equity": 100230107, "ret": 0.23}, {"id": "v31", "ph": "3dc99490", "equity": 100230107, "ret": 0.23}, {"id": "v89", "ph": "c49d5680", "equity": 100230107, "ret": 0.23}, {"id": "v97", "ph": "ebf31977", "equity": 100230107, "ret": 0.23}, {"id": "v1", "ph": "4874f4c9", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "ec2eb05a", "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": "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": "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": "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": "v45", "ph": "964276a8", "equity": 100000000, "ret": 0.0}, {"id": "v46", "ph": "7dc0e360", "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": "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": "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": "v107", "ph": "be5cd36b", "equity": 100000000, "ret": 0.0}, {"id": "v108", "ph": "67a6679a", "equity": 100000000, "ret": 0.0}], "20260615": [{"id": "v62", "ph": "c6ddc17b", "equity": 101695590, "ret": 1.7}, {"id": "v64", "ph": "15b83273", "equity": 101695590, "ret": 1.7}, {"id": "v66", "ph": "db0e70a4", "equity": 101695590, "ret": 1.7}, {"id": "v68", "ph": "38c84625", "equity": 101110494, "ret": 1.11}, {"id": "v70", "ph": "6c4d4125", "equity": 101110494, "ret": 1.11}, {"id": "v72", "ph": "b8d74129", "equity": 101110494, "ret": 1.11}, {"id": "v74", "ph": "35a8e955", "equity": 101110494, "ret": 1.11}, {"id": "v76", "ph": "178928cb", "equity": 101110494, "ret": 1.11}, {"id": "v78", "ph": "655e082d", "equity": 101110494, "ret": 1.11}, {"id": "v80", "ph": "b2d56c47", "equity": 101110494, "ret": 1.11}, {"id": "v84", "ph": "95794738", "equity": 101110494, "ret": 1.11}, {"id": "v86", "ph": "935c5a1c", "equity": 101110494, "ret": 1.11}, {"id": "v40", "ph": "70731d89", "equity": 100878905, "ret": 0.88}, {"id": "v42", "ph": "f36fddc6", "equity": 100878905, "ret": 0.88}, {"id": "v44", "ph": "364ea434", "equity": 100878905, "ret": 0.88}, {"id": "v22", "ph": "956b3b16", "equity": 100808991, "ret": 0.81}, {"id": "v24", "ph": "9beb8c05", "equity": 100808991, "ret": 0.81}, {"id": "v25", "ph": "00b59557", "equity": 100808991, "ret": 0.81}, {"id": "v79", "ph": "61b964d8", "equity": 100808991, "ret": 0.81}, {"id": "v83", "ph": "1b98a0fc", "equity": 100808991, "ret": 0.81}, {"id": "v85", "ph": "5ca17df0", "equity": 100808991, "ret": 0.81}, {"id": "v2", "ph": "bab0fc2c", "equity": 100526926, "ret": 0.53}, {"id": "v3", "ph": "81d17cca", "equity": 100526926, "ret": 0.53}, {"id": "v4", "ph": "b6219595", "equity": 100526926, "ret": 0.53}, {"id": "v39", "ph": "11c27236", "equity": 100526926, "ret": 0.53}, {"id": "v41", "ph": "e9d84e84", "equity": 100526926, "ret": 0.53}, {"id": "v43", "ph": "94ea3b53", "equity": 100526926, "ret": 0.53}, {"id": "v48", "ph": "18854c6a", "equity": 100516671, "ret": 0.52}, {"id": "v90", "ph": "86e09c47", "equity": 100516671, "ret": 0.52}, {"id": "v98", "ph": "266fc53f", "equity": 100516671, "ret": 0.52}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100516671, "ret": 0.52}, {"id": "v6", "ph": "e96ce9e2", "equity": 100281785, "ret": 0.28}, {"id": "v35", "ph": "6a183375", "equity": 100281785, "ret": 0.28}, {"id": "v47", "ph": "ed758fcf", "equity": 100281785, "ret": 0.28}, {"id": "v105", "ph": "88395429", "equity": 100281785, "ret": 0.28}, {"id": "v27", "ph": "33d43bc6", "equity": 100261357, "ret": 0.26}, {"id": "v31", "ph": "3dc99490", "equity": 100261357, "ret": 0.26}, {"id": "v89", "ph": "c49d5680", "equity": 100261357, "ret": 0.26}, {"id": "v97", "ph": "ebf31977", "equity": 100261357, "ret": 0.26}, {"id": "v1", "ph": "4874f4c9", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "ec2eb05a", "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": "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": "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": "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": "v45", "ph": "964276a8", "equity": 100000000, "ret": 0.0}, {"id": "v46", "ph": "7dc0e360", "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": "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": "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": "v107", "ph": "be5cd36b", "equity": 100000000, "ret": 0.0}, {"id": "v108", "ph": "67a6679a", "equity": 100000000, "ret": 0.0}, {"id": "v109", "ph": "4c69fc95", "equity": 100000000, "ret": 0.0}, {"id": "v110", "ph": "8164d748", "equity": 100000000, "ret": 0.0}, {"id": "v111", "ph": "826e3d17", "equity": 100000000, "ret": 0.0}, {"id": "v112", "ph": "4cd47646", "equity": 100000000, "ret": 0.0}, {"id": "v113", "ph": "5b43d0bc", "equity": 100000000, "ret": 0.0}, {"id": "v114", "ph": "8686c36c", "equity": 100000000, "ret": 0.0}, {"id": "v115", "ph": "e1790a5a", "equity": 100000000, "ret": 0.0}, {"id": "v116", "ph": "e73fef98", "equity": 100000000, "ret": 0.0}, {"id": "v117", "ph": "c4ae8a11", "equity": 100000000, "ret": 0.0}, {"id": "v118", "ph": "538b63b9", "equity": 100000000, "ret": 0.0}, {"id": "v119", "ph": "ed2208f1", "equity": 100000000, "ret": 0.0}, {"id": "v120", "ph": "d25ca8b0", "equity": 100000000, "ret": 0.0}, {"id": "v121", "ph": "ae8797c1", "equity": 100000000, "ret": 0.0}, {"id": "v122", "ph": "b12ecb8e", "equity": 100000000, "ret": 0.0}, {"id": "v123", "ph": "6ee459af", "equity": 100000000, "ret": 0.0}, {"id": "v124", "ph": "47d22489", "equity": 100000000, "ret": 0.0}, {"id": "v125", "ph": "d2cf659a", "equity": 100000000, "ret": 0.0}, {"id": "v126", "ph": "d9a13cde", "equity": 100000000, "ret": 0.0}, {"id": "v127", "ph": "eff26306", "equity": 100000000, "ret": 0.0}, {"id": "v128", "ph": "e9482821", "equity": 100000000, "ret": 0.0}, {"id": "v129", "ph": "58ddcc3c", "equity": 100000000, "ret": 0.0}, {"id": "v130", "ph": "e91870c6", "equity": 100000000, "ret": 0.0}, {"id": "v131", "ph": "5f8c7082", "equity": 100000000, "ret": 0.0}, {"id": "v132", "ph": "0945c49a", "equity": 100000000, "ret": 0.0}, {"id": "v133", "ph": "78be8034", "equity": 100000000, "ret": 0.0}, {"id": "v134", "ph": "afbb4ab8", "equity": 100000000, "ret": 0.0}, {"id": "v135", "ph": "53f4c78c", "equity": 100000000, "ret": 0.0}, {"id": "v136", "ph": "ceb32a66", "equity": 100000000, "ret": 0.0}, {"id": "v137", "ph": "60ec806f", "equity": 100000000, "ret": 0.0}, {"id": "v138", "ph": "e3acb223", "equity": 100000000, "ret": 0.0}, {"id": "v139", "ph": "cfbc79a5", "equity": 100000000, "ret": 0.0}, {"id": "v140", "ph": "52175b2b", "equity": 100000000, "ret": 0.0}, {"id": "v141", "ph": "47f30434", "equity": 100000000, "ret": 0.0}, {"id": "v142", "ph": "44fae695", "equity": 100000000, "ret": 0.0}, {"id": "v143", "ph": "5cf8f13a", "equity": 100000000, "ret": 0.0}, {"id": "v144", "ph": "6ffe4183", "equity": 100000000, "ret": 0.0}, {"id": "v145", "ph": "a89d85fc", "equity": 100000000, "ret": 0.0}, {"id": "v146", "ph": "071b9cb1", "equity": 100000000, "ret": 0.0}, {"id": "v147", "ph": "2fbeeedb", "equity": 100000000, "ret": 0.0}, {"id": "v148", "ph": "ada71802", "equity": 100000000, "ret": 0.0}, {"id": "v149", "ph": "c5329f8d", "equity": 100000000, "ret": 0.0}, {"id": "v150", "ph": "be41b974", "equity": 100000000, "ret": 0.0}, {"id": "v151", "ph": "2eb1dd06", "equity": 100000000, "ret": 0.0}, {"id": "v152", "ph": "5d2df346", "equity": 100000000, "ret": 0.0}, {"id": "v153", "ph": "49fd09d9", "equity": 100000000, "ret": 0.0}, {"id": "v154", "ph": "7a3a7788", "equity": 100000000, "ret": 0.0}, {"id": "v155", "ph": "31c0d84e", "equity": 100000000, "ret": 0.0}, {"id": "v156", "ph": "3f7bcd1b", "equity": 100000000, "ret": 0.0}, {"id": "v157", "ph": "80f3e23b", "equity": 100000000, "ret": 0.0}, {"id": "v158", "ph": "7e56eae3", "equity": 100000000, "ret": 0.0}, {"id": "v159", "ph": "af80c67a", "equity": 100000000, "ret": 0.0}, {"id": "v160", "ph": "b03f5295", "equity": 100000000, "ret": 0.0}, {"id": "v161", "ph": "ed5677e6", "equity": 100000000, "ret": 0.0}, {"id": "v162", "ph": "b8f71c74", "equity": 100000000, "ret": 0.0}, {"id": "v163", "ph": "452ab819", "equity": 100000000, "ret": 0.0}, {"id": "v164", "ph": "331cec1f", "equity": 100000000, "ret": 0.0}, {"id": "v165", "ph": "8f862b27", "equity": 100000000, "ret": 0.0}, {"id": "v166", "ph": "f684401e", "equity": 100000000, "ret": 0.0}, {"id": "v167", "ph": "b6d6aed8", "equity": 100000000, "ret": 0.0}, {"id": "v168", "ph": "81099b26", "equity": 100000000, "ret": 0.0}, {"id": "v169", "ph": "d595e4fb", "equity": 100000000, "ret": 0.0}, {"id": "v170", "ph": "afd652fd", "equity": 100000000, "ret": 0.0}, {"id": "v171", "ph": "faa4e138", "equity": 100000000, "ret": 0.0}, {"id": "v172", "ph": "98d8acda", "equity": 100000000, "ret": 0.0}, {"id": "v173", "ph": "2ea88e58", "equity": 100000000, "ret": 0.0}, {"id": "v174", "ph": "d8b7e234", "equity": 100000000, "ret": 0.0}, {"id": "v175", "ph": "9b6b3d9c", "equity": 100000000, "ret": 0.0}, {"id": "v176", "ph": "b710fab4", "equity": 100000000, "ret": 0.0}, {"id": "v177", "ph": "87955d67", "equity": 100000000, "ret": 0.0}, {"id": "v178", "ph": "b7ad4c2d", "equity": 100000000, "ret": 0.0}, {"id": "v179", "ph": "bedf0e90", "equity": 100000000, "ret": 0.0}, {"id": "v180", "ph": "4e41501e", "equity": 100000000, "ret": 0.0}, {"id": "v181", "ph": "4614bd55", "equity": 100000000, "ret": 0.0}, {"id": "v182", "ph": "9a4e525e", "equity": 100000000, "ret": 0.0}, {"id": "v183", "ph": "84faca4b", "equity": 100000000, "ret": 0.0}, {"id": "v184", "ph": "3b78ae9c", "equity": 100000000, "ret": 0.0}, {"id": "v185", "ph": "6b7399b9", "equity": 100000000, "ret": 0.0}, {"id": "v186", "ph": "898d23ea", "equity": 100000000, "ret": 0.0}, {"id": "v187", "ph": "7a03131d", "equity": 100000000, "ret": 0.0}, {"id": "v188", "ph": "29798ffd", "equity": 100000000, "ret": 0.0}, {"id": "v189", "ph": "dfdbd0c8", "equity": 100000000, "ret": 0.0}, {"id": "v190", "ph": "e14af339", "equity": 100000000, "ret": 0.0}, {"id": "v191", "ph": "9bb12946", "equity": 100000000, "ret": 0.0}, {"id": "v192", "ph": "96fbbd1c", "equity": 100000000, "ret": 0.0}, {"id": "v193", "ph": "5dd1f4df", "equity": 100000000, "ret": 0.0}, {"id": "v194", "ph": "31aada19", "equity": 100000000, "ret": 0.0}, {"id": "v195", "ph": "dd89cf59", "equity": 100000000, "ret": 0.0}, {"id": "v196", "ph": "a44aeef1", "equity": 100000000, "ret": 0.0}, {"id": "v197", "ph": "5c290a32", "equity": 100000000, "ret": 0.0}, {"id": "v198", "ph": "ffd1ee88", "equity": 100000000, "ret": 0.0}, {"id": "v199", "ph": "390bfab3", "equity": 100000000, "ret": 0.0}, {"id": "v200", "ph": "8bbb6ec7", "equity": 100000000, "ret": 0.0}, {"id": "v201", "ph": "cb8a413e", "equity": 100000000, "ret": 0.0}, {"id": "v202", "ph": "a528b806", "equity": 100000000, "ret": 0.0}, {"id": "v203", "ph": "2071defa", "equity": 100000000, "ret": 0.0}, {"id": "v204", "ph": "434e2f7a", "equity": 100000000, "ret": 0.0}, {"id": "v205", "ph": "02e5a3f5", "equity": 100000000, "ret": 0.0}, {"id": "v206", "ph": "16f62ab7", "equity": 100000000, "ret": 0.0}, {"id": "v207", "ph": "0f6601a0", "equity": 100000000, "ret": 0.0}, {"id": "v208", "ph": "445623de", "equity": 100000000, "ret": 0.0}, {"id": "v209", "ph": "8730802d", "equity": 100000000, "ret": 0.0}, {"id": "v210", "ph": "6f533a9b", "equity": 100000000, "ret": 0.0}, {"id": "v211", "ph": "9227673c", "equity": 100000000, "ret": 0.0}, {"id": "v212", "ph": "b9e1e8d1", "equity": 100000000, "ret": 0.0}, {"id": "v213", "ph": "0e1d8e45", "equity": 100000000, "ret": 0.0}, {"id": "v214", "ph": "0fb624bf", "equity": 100000000, "ret": 0.0}, {"id": "v215", "ph": "a904a49d", "equity": 100000000, "ret": 0.0}, {"id": "v216", "ph": "ee298bd3", "equity": 100000000, "ret": 0.0}, {"id": "v217", "ph": "4c547a61", "equity": 100000000, "ret": 0.0}, {"id": "v218", "ph": "7304d2d4", "equity": 100000000, "ret": 0.0}, {"id": "v219", "ph": "426d3834", "equity": 100000000, "ret": 0.0}, {"id": "v220", "ph": "565c27a7", "equity": 100000000, "ret": 0.0}, {"id": "v221", "ph": "cd2eef94", "equity": 100000000, "ret": 0.0}, {"id": "v222", "ph": "55de9eca", "equity": 100000000, "ret": 0.0}, {"id": "v223", "ph": "b57356b8", "equity": 100000000, "ret": 0.0}, {"id": "v224", "ph": "888ab069", "equity": 100000000, "ret": 0.0}, {"id": "v225", "ph": "e9f40f62", "equity": 100000000, "ret": 0.0}, {"id": "v226", "ph": "98fd37a4", "equity": 100000000, "ret": 0.0}, {"id": "v227", "ph": "9454b07a", "equity": 100000000, "ret": 0.0}, {"id": "v228", "ph": "caa54387", "equity": 100000000, "ret": 0.0}, {"id": "v229", "ph": "d9261dfb", "equity": 100000000, "ret": 0.0}, {"id": "v230", "ph": "141579fe", "equity": 100000000, "ret": 0.0}, {"id": "v231", "ph": "cd9469fa", "equity": 100000000, "ret": 0.0}, {"id": "v232", "ph": "6de1fffa", "equity": 100000000, "ret": 0.0}, {"id": "v233", "ph": "941006e0", "equity": 100000000, "ret": 0.0}, {"id": "v234", "ph": "9a289d18", "equity": 100000000, "ret": 0.0}, {"id": "v235", "ph": "3e6c1666", "equity": 100000000, "ret": 0.0}, {"id": "v236", "ph": "f9c75560", "equity": 100000000, "ret": 0.0}, {"id": "v237", "ph": "a10d68cf", "equity": 100000000, "ret": 0.0}, {"id": "v238", "ph": "f1a74611", "equity": 100000000, "ret": 0.0}, {"id": "v239", "ph": "96e693c4", "equity": 100000000, "ret": 0.0}, {"id": "v240", "ph": "db1869eb", "equity": 100000000, "ret": 0.0}, {"id": "v241", "ph": "52162002", "equity": 100000000, "ret": 0.0}, {"id": "v242", "ph": "e6c70cac", "equity": 100000000, "ret": 0.0}, {"id": "v243", "ph": "fa7a545a", "equity": 100000000, "ret": 0.0}, {"id": "v244", "ph": "520c5a65", "equity": 100000000, "ret": 0.0}, {"id": "v245", "ph": "ac84324f", "equity": 100000000, "ret": 0.0}, {"id": "v246", "ph": "618ddf71", "equity": 100000000, "ret": 0.0}, {"id": "v247", "ph": "ba973fa6", "equity": 100000000, "ret": 0.0}, {"id": "v248", "ph": "9ca5e3dc", "equity": 100000000, "ret": 0.0}, {"id": "v249", "ph": "36a32ca0", "equity": 100000000, "ret": 0.0}, {"id": "v250", "ph": "b37976b8", "equity": 100000000, "ret": 0.0}, {"id": "v251", "ph": "8c5a06da", "equity": 100000000, "ret": 0.0}, {"id": "v252", "ph": "381a65d1", "equity": 100000000, "ret": 0.0}, {"id": "v253", "ph": "87bd57d6", "equity": 100000000, "ret": 0.0}, {"id": "v254", "ph": "75e53118", "equity": 100000000, "ret": 0.0}, {"id": "v255", "ph": "92e3c5e0", "equity": 100000000, "ret": 0.0}, {"id": "v256", "ph": "e583f1dd", "equity": 100000000, "ret": 0.0}, {"id": "v257", "ph": "7fa33f5b", "equity": 100000000, "ret": 0.0}, {"id": "v258", "ph": "0b19bb06", "equity": 100000000, "ret": 0.0}, {"id": "v259", "ph": "178a1fe3", "equity": 100000000, "ret": 0.0}, {"id": "v260", "ph": "bab317db", "equity": 100000000, "ret": 0.0}, {"id": "v261", "ph": "965786e6", "equity": 100000000, "ret": 0.0}, {"id": "v262", "ph": "e07faa54", "equity": 100000000, "ret": 0.0}, {"id": "v263", "ph": "ca392811", "equity": 100000000, "ret": 0.0}, {"id": "v264", "ph": "8c65e60d", "equity": 100000000, "ret": 0.0}, {"id": "v265", "ph": "7faed59d", "equity": 100000000, "ret": 0.0}, {"id": "v266", "ph": "c133b585", "equity": 100000000, "ret": 0.0}, {"id": "v267", "ph": "766c47d7", "equity": 100000000, "ret": 0.0}, {"id": "v268", "ph": "9736502d", "equity": 100000000, "ret": 0.0}, {"id": "v269", "ph": "c0c861c4", "equity": 100000000, "ret": 0.0}, {"id": "v270", "ph": "1ce9fd2b", "equity": 100000000, "ret": 0.0}, {"id": "v271", "ph": "2b9ccdcd", "equity": 100000000, "ret": 0.0}, {"id": "v272", "ph": "2ed2027f", "equity": 100000000, "ret": 0.0}, {"id": "v273", "ph": "c726e8d5", "equity": 100000000, "ret": 0.0}, {"id": "v274", "ph": "62b011c8", "equity": 100000000, "ret": 0.0}, {"id": "v275", "ph": "3ebf0d91", "equity": 100000000, "ret": 0.0}, {"id": "v276", "ph": "51425eab", "equity": 100000000, "ret": 0.0}, {"id": "v277", "ph": "488b612a", "equity": 100000000, "ret": 0.0}, {"id": "v278", "ph": "861fb42b", "equity": 100000000, "ret": 0.0}, {"id": "v279", "ph": "37e203bb", "equity": 100000000, "ret": 0.0}, {"id": "v280", "ph": "60411037", "equity": 100000000, "ret": 0.0}, {"id": "v281", "ph": "7d9e5a9d", "equity": 100000000, "ret": 0.0}, {"id": "v282", "ph": "9ddd111d", "equity": 100000000, "ret": 0.0}, {"id": "v283", "ph": "479e4b25", "equity": 100000000, "ret": 0.0}, {"id": "v284", "ph": "261c5d58", "equity": 100000000, "ret": 0.0}, {"id": "v285", "ph": "962e35cd", "equity": 100000000, "ret": 0.0}, {"id": "v286", "ph": "4f6101e9", "equity": 100000000, "ret": 0.0}, {"id": "v287", "ph": "3bf14815", "equity": 100000000, "ret": 0.0}, {"id": "v288", "ph": "1c732194", "equity": 100000000, "ret": 0.0}], "20260616": [{"id": "v40", "ph": "70731d89", "equity": 100839155, "ret": 0.84}, {"id": "v42", "ph": "f36fddc6", "equity": 100839155, "ret": 0.84}, {"id": "v44", "ph": "364ea434", "equity": 100839155, "ret": 0.84}, {"id": "v2", "ph": "bab0fc2c", "equity": 100488676, "ret": 0.49}, {"id": "v3", "ph": "81d17cca", "equity": 100488676, "ret": 0.49}, {"id": "v4", "ph": "b6219595", "equity": 100488676, "ret": 0.49}, {"id": "v39", "ph": "11c27236", "equity": 100488676, "ret": 0.49}, {"id": "v41", "ph": "e9d84e84", "equity": 100488676, "ret": 0.49}, {"id": "v43", "ph": "94ea3b53", "equity": 100488676, "ret": 0.49}, {"id": "v48", "ph": "18854c6a", "equity": 100493421, "ret": 0.49}, {"id": "v90", "ph": "86e09c47", "equity": 100493421, "ret": 0.49}, {"id": "v98", "ph": "266fc53f", "equity": 100493421, "ret": 0.49}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100493421, "ret": 0.49}, {"id": "v6", "ph": "e96ce9e2", "equity": 100261535, "ret": 0.26}, {"id": "v35", "ph": "6a183375", "equity": 100261535, "ret": 0.26}, {"id": "v47", "ph": "ed758fcf", "equity": 100261535, "ret": 0.26}, {"id": "v105", "ph": "88395429", "equity": 100261535, "ret": 0.26}, {"id": "v27", "ph": "33d43bc6", "equity": 100242607, "ret": 0.24}, {"id": "v31", "ph": "3dc99490", "equity": 100242607, "ret": 0.24}, {"id": "v89", "ph": "c49d5680", "equity": 100242607, "ret": 0.24}, {"id": "v97", "ph": "ebf31977", "equity": 100242607, "ret": 0.24}, {"id": "v1", "ph": "4874f4c9", "equity": 100000000, "ret": 0.0}, {"id": "v5", "ph": "ec2eb05a", "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": "v23", "ph": "aec632b1", "equity": 100000000, "ret": 0.0}, {"id": "v26", "ph": "2e5f3fac", "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": "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": "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": "v45", "ph": "964276a8", "equity": 100000000, "ret": 0.0}, {"id": "v46", "ph": "7dc0e360", "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": "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": "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": "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": "v107", "ph": "be5cd36b", "equity": 100000000, "ret": 0.0}, {"id": "v108", "ph": "67a6679a", "equity": 100000000, "ret": 0.0}, {"id": "v109", "ph": "4c69fc95", "equity": 100000000, "ret": 0.0}, {"id": "v110", "ph": "8164d748", "equity": 100000000, "ret": 0.0}, {"id": "v111", "ph": "826e3d17", "equity": 100000000, "ret": 0.0}, {"id": "v112", "ph": "4cd47646", "equity": 100000000, "ret": 0.0}, {"id": "v113", "ph": "5b43d0bc", "equity": 100000000, "ret": 0.0}, {"id": "v114", "ph": "8686c36c", "equity": 100000000, "ret": 0.0}, {"id": "v115", "ph": "e1790a5a", "equity": 100000000, "ret": 0.0}, {"id": "v116", "ph": "e73fef98", "equity": 100000000, "ret": 0.0}, {"id": "v117", "ph": "c4ae8a11", "equity": 100000000, "ret": 0.0}, {"id": "v118", "ph": "538b63b9", "equity": 100000000, "ret": 0.0}, {"id": "v119", "ph": "ed2208f1", "equity": 100000000, "ret": 0.0}, {"id": "v120", "ph": "d25ca8b0", "equity": 100000000, "ret": 0.0}, {"id": "v131", "ph": "5f8c7082", "equity": 100000000, "ret": 0.0}, {"id": "v134", "ph": "afbb4ab8", "equity": 100000000, "ret": 0.0}, {"id": "v135", "ph": "53f4c78c", "equity": 100000000, "ret": 0.0}, {"id": "v136", "ph": "ceb32a66", "equity": 100000000, "ret": 0.0}, {"id": "v137", "ph": "60ec806f", "equity": 100000000, "ret": 0.0}, {"id": "v138", "ph": "e3acb223", "equity": 100000000, "ret": 0.0}, {"id": "v139", "ph": "cfbc79a5", "equity": 100000000, "ret": 0.0}, {"id": "v140", "ph": "52175b2b", "equity": 100000000, "ret": 0.0}, {"id": "v141", "ph": "47f30434", "equity": 100000000, "ret": 0.0}, {"id": "v142", "ph": "44fae695", "equity": 100000000, "ret": 0.0}, {"id": "v143", "ph": "5cf8f13a", "equity": 100000000, "ret": 0.0}, {"id": "v144", "ph": "6ffe4183", "equity": 100000000, "ret": 0.0}, {"id": "v145", "ph": "a89d85fc", "equity": 100000000, "ret": 0.0}, {"id": "v146", "ph": "071b9cb1", "equity": 100000000, "ret": 0.0}, {"id": "v147", "ph": "2fbeeedb", "equity": 100000000, "ret": 0.0}, {"id": "v148", "ph": "ada71802", "equity": 100000000, "ret": 0.0}, {"id": "v149", "ph": "c5329f8d", "equity": 100000000, "ret": 0.0}, {"id": "v150", "ph": "be41b974", "equity": 100000000, "ret": 0.0}, {"id": "v151", "ph": "2eb1dd06", "equity": 100000000, "ret": 0.0}, {"id": "v152", "ph": "5d2df346", "equity": 100000000, "ret": 0.0}, {"id": "v153", "ph": "49fd09d9", "equity": 100000000, "ret": 0.0}, {"id": "v154", "ph": "7a3a7788", "equity": 100000000, "ret": 0.0}, {"id": "v155", "ph": "31c0d84e", "equity": 100000000, "ret": 0.0}, {"id": "v156", "ph": "3f7bcd1b", "equity": 100000000, "ret": 0.0}, {"id": "v157", "ph": "80f3e23b", "equity": 100000000, "ret": 0.0}, {"id": "v158", "ph": "7e56eae3", "equity": 100000000, "ret": 0.0}, {"id": "v159", "ph": "af80c67a", "equity": 100000000, "ret": 0.0}, {"id": "v160", "ph": "b03f5295", "equity": 100000000, "ret": 0.0}, {"id": "v161", "ph": "ed5677e6", "equity": 100000000, "ret": 0.0}, {"id": "v162", "ph": "b8f71c74", "equity": 100000000, "ret": 0.0}, {"id": "v163", "ph": "452ab819", "equity": 100000000, "ret": 0.0}, {"id": "v164", "ph": "331cec1f", "equity": 100000000, "ret": 0.0}, {"id": "v165", "ph": "8f862b27", "equity": 100000000, "ret": 0.0}, {"id": "v166", "ph": "f684401e", "equity": 100000000, "ret": 0.0}, {"id": "v167", "ph": "b6d6aed8", "equity": 100000000, "ret": 0.0}, {"id": "v168", "ph": "81099b26", "equity": 100000000, "ret": 0.0}, {"id": "v189", "ph": "dfdbd0c8", "equity": 100000000, "ret": 0.0}, {"id": "v190", "ph": "e14af339", "equity": 100000000, "ret": 0.0}, {"id": "v195", "ph": "dd89cf59", "equity": 100000000, "ret": 0.0}, {"id": "v196", "ph": "a44aeef1", "equity": 100000000, "ret": 0.0}, {"id": "v197", "ph": "5c290a32", "equity": 100000000, "ret": 0.0}, {"id": "v198", "ph": "ffd1ee88", "equity": 100000000, "ret": 0.0}, {"id": "v199", "ph": "390bfab3", "equity": 100000000, "ret": 0.0}, {"id": "v200", "ph": "8bbb6ec7", "equity": 100000000, "ret": 0.0}, {"id": "v201", "ph": "cb8a413e", "equity": 100000000, "ret": 0.0}, {"id": "v202", "ph": "a528b806", "equity": 100000000, "ret": 0.0}, {"id": "v203", "ph": "2071defa", "equity": 100000000, "ret": 0.0}, {"id": "v204", "ph": "434e2f7a", "equity": 100000000, "ret": 0.0}, {"id": "v205", "ph": "02e5a3f5", "equity": 100000000, "ret": 0.0}, {"id": "v206", "ph": "16f62ab7", "equity": 100000000, "ret": 0.0}, {"id": "v207", "ph": "0f6601a0", "equity": 100000000, "ret": 0.0}, {"id": "v208", "ph": "445623de", "equity": 100000000, "ret": 0.0}, {"id": "v209", "ph": "8730802d", "equity": 100000000, "ret": 0.0}, {"id": "v210", "ph": "6f533a9b", "equity": 100000000, "ret": 0.0}, {"id": "v211", "ph": "9227673c", "equity": 100000000, "ret": 0.0}, {"id": "v212", "ph": "b9e1e8d1", "equity": 100000000, "ret": 0.0}, {"id": "v213", "ph": "0e1d8e45", "equity": 100000000, "ret": 0.0}, {"id": "v214", "ph": "0fb624bf", "equity": 100000000, "ret": 0.0}, {"id": "v215", "ph": "a904a49d", "equity": 100000000, "ret": 0.0}, {"id": "v216", "ph": "ee298bd3", "equity": 100000000, "ret": 0.0}, {"id": "v217", "ph": "4c547a61", "equity": 100000000, "ret": 0.0}, {"id": "v218", "ph": "7304d2d4", "equity": 100000000, "ret": 0.0}, {"id": "v219", "ph": "426d3834", "equity": 100000000, "ret": 0.0}, {"id": "v220", "ph": "565c27a7", "equity": 100000000, "ret": 0.0}, {"id": "v221", "ph": "cd2eef94", "equity": 100000000, "ret": 0.0}, {"id": "v222", "ph": "55de9eca", "equity": 100000000, "ret": 0.0}, {"id": "v223", "ph": "b57356b8", "equity": 100000000, "ret": 0.0}, {"id": "v224", "ph": "888ab069", "equity": 100000000, "ret": 0.0}, {"id": "v225", "ph": "e9f40f62", "equity": 100000000, "ret": 0.0}, {"id": "v226", "ph": "98fd37a4", "equity": 100000000, "ret": 0.0}, {"id": "v227", "ph": "9454b07a", "equity": 100000000, "ret": 0.0}, {"id": "v228", "ph": "caa54387", "equity": 100000000, "ret": 0.0}, {"id": "v229", "ph": "d9261dfb", "equity": 100000000, "ret": 0.0}, {"id": "v230", "ph": "141579fe", "equity": 100000000, "ret": 0.0}, {"id": "v231", "ph": "cd9469fa", "equity": 100000000, "ret": 0.0}, {"id": "v232", "ph": "6de1fffa", "equity": 100000000, "ret": 0.0}, {"id": "v233", "ph": "941006e0", "equity": 100000000, "ret": 0.0}, {"id": "v234", "ph": "9a289d18", "equity": 100000000, "ret": 0.0}, {"id": "v235", "ph": "3e6c1666", "equity": 100000000, "ret": 0.0}, {"id": "v236", "ph": "f9c75560", "equity": 100000000, "ret": 0.0}, {"id": "v237", "ph": "a10d68cf", "equity": 100000000, "ret": 0.0}, {"id": "v238", "ph": "f1a74611", "equity": 100000000, "ret": 0.0}, {"id": "v239", "ph": "96e693c4", "equity": 100000000, "ret": 0.0}, {"id": "v240", "ph": "db1869eb", "equity": 100000000, "ret": 0.0}, {"id": "v241", "ph": "52162002", "equity": 100000000, "ret": 0.0}, {"id": "v242", "ph": "e6c70cac", "equity": 100000000, "ret": 0.0}, {"id": "v243", "ph": "fa7a545a", "equity": 100000000, "ret": 0.0}, {"id": "v244", "ph": "520c5a65", "equity": 100000000, "ret": 0.0}, {"id": "v245", "ph": "ac84324f", "equity": 100000000, "ret": 0.0}, {"id": "v246", "ph": "618ddf71", "equity": 100000000, "ret": 0.0}, {"id": "v247", "ph": "ba973fa6", "equity": 100000000, "ret": 0.0}, {"id": "v248", "ph": "9ca5e3dc", "equity": 100000000, "ret": 0.0}, {"id": "v249", "ph": "36a32ca0", "equity": 100000000, "ret": 0.0}, {"id": "v250", "ph": "b37976b8", "equity": 100000000, "ret": 0.0}, {"id": "v251", "ph": "8c5a06da", "equity": 100000000, "ret": 0.0}, {"id": "v252", "ph": "381a65d1", "equity": 100000000, "ret": 0.0}, {"id": "v253", "ph": "87bd57d6", "equity": 100000000, "ret": 0.0}, {"id": "v254", "ph": "75e53118", "equity": 100000000, "ret": 0.0}, {"id": "v255", "ph": "92e3c5e0", "equity": 100000000, "ret": 0.0}, {"id": "v256", "ph": "e583f1dd", "equity": 100000000, "ret": 0.0}, {"id": "v257", "ph": "7fa33f5b", "equity": 100000000, "ret": 0.0}, {"id": "v258", "ph": "0b19bb06", "equity": 100000000, "ret": 0.0}, {"id": "v259", "ph": "178a1fe3", "equity": 100000000, "ret": 0.0}, {"id": "v260", "ph": "bab317db", "equity": 100000000, "ret": 0.0}, {"id": "v261", "ph": "965786e6", "equity": 100000000, "ret": 0.0}, {"id": "v262", "ph": "e07faa54", "equity": 100000000, "ret": 0.0}, {"id": "v263", "ph": "ca392811", "equity": 100000000, "ret": 0.0}, {"id": "v264", "ph": "8c65e60d", "equity": 100000000, "ret": 0.0}, {"id": "v265", "ph": "7faed59d", "equity": 100000000, "ret": 0.0}, {"id": "v266", "ph": "c133b585", "equity": 100000000, "ret": 0.0}, {"id": "v267", "ph": "766c47d7", "equity": 100000000, "ret": 0.0}, {"id": "v268", "ph": "9736502d", "equity": 100000000, "ret": 0.0}, {"id": "v269", "ph": "c0c861c4", "equity": 100000000, "ret": 0.0}, {"id": "v270", "ph": "1ce9fd2b", "equity": 100000000, "ret": 0.0}, {"id": "v271", "ph": "2b9ccdcd", "equity": 100000000, "ret": 0.0}, {"id": "v272", "ph": "2ed2027f", "equity": 100000000, "ret": 0.0}, {"id": "v273", "ph": "c726e8d5", "equity": 100000000, "ret": 0.0}, {"id": "v274", "ph": "62b011c8", "equity": 100000000, "ret": 0.0}, {"id": "v275", "ph": "3ebf0d91", "equity": 100000000, "ret": 0.0}, {"id": "v276", "ph": "51425eab", "equity": 100000000, "ret": 0.0}, {"id": "v277", "ph": "488b612a", "equity": 100000000, "ret": 0.0}, {"id": "v278", "ph": "861fb42b", "equity": 100000000, "ret": 0.0}, {"id": "v279", "ph": "37e203bb", "equity": 100000000, "ret": 0.0}, {"id": "v280", "ph": "60411037", "equity": 100000000, "ret": 0.0}, {"id": "v281", "ph": "7d9e5a9d", "equity": 100000000, "ret": 0.0}, {"id": "v282", "ph": "9ddd111d", "equity": 100000000, "ret": 0.0}, {"id": "v283", "ph": "479e4b25", "equity": 100000000, "ret": 0.0}, {"id": "v284", "ph": "261c5d58", "equity": 100000000, "ret": 0.0}, {"id": "v285", "ph": "962e35cd", "equity": 100000000, "ret": 0.0}, {"id": "v286", "ph": "4f6101e9", "equity": 100000000, "ret": 0.0}, {"id": "v287", "ph": "3bf14815", "equity": 100000000, "ret": 0.0}, {"id": "v288", "ph": "1c732194", "equity": 100000000, "ret": 0.0}, {"id": "v300", "ph": "c6ddc17b", "equity": 100000000, "ret": 0.0}, {"id": "v301", "ph": "30da2021", "equity": 100000000, "ret": 0.0}, {"id": "v302", "ph": "3f30502d", "equity": 100000000, "ret": 0.0}, {"id": "v303", "ph": "1a084164", "equity": 100000000, "ret": 0.0}, {"id": "v296", "ph": "4c554378", "equity": 99588927, "ret": -0.41}, {"id": "v298", "ph": "5d4bbec0", "equity": 99481601, "ret": -0.52}, {"id": "v299", "ph": "25046b1a", "equity": 98593265, "ret": -1.41}], "20260617": [{"id": "v40", "ph": "70731d89", "equity": 100652033, "ret": 0.65}, {"id": "v42", "ph": "f36fddc6", "equity": 100652033, "ret": 0.65}, {"id": "v44", "ph": "364ea434", "equity": 100652033, "ret": 0.65}, {"id": "v48", "ph": "18854c6a", "equity": 100383529, "ret": 0.38}, {"id": "v90", "ph": "86e09c47", "equity": 100383642, "ret": 0.38}, {"id": "v98", "ph": "266fc53f", "equity": 100383642, "ret": 0.38}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100383529, "ret": 0.38}, {"id": "v2", "ph": "bab0fc2c", "equity": 100309506, "ret": 0.31}, {"id": "v3", "ph": "81d17cca", "equity": 100309506, "ret": 0.31}, {"id": "v4", "ph": "b6219595", "equity": 100309506, "ret": 0.31}, {"id": "v39", "ph": "11c27236", "equity": 100309506, "ret": 0.31}, {"id": "v41", "ph": "e9d84e84", "equity": 100309506, "ret": 0.31}, {"id": "v43", "ph": "94ea3b53", "equity": 100309506, "ret": 0.31}, {"id": "v6", "ph": "e96ce9e2", "equity": 100166592, "ret": 0.17}, {"id": "v35", "ph": "6a183375", "equity": 100166592, "ret": 0.17}, {"id": "v47", "ph": "ed758fcf", "equity": 100166592, "ret": 0.17}, {"id": "v105", "ph": "88395429", "equity": 100166592, "ret": 0.17}, {"id": "v27", "ph": "33d43bc6", "equity": 100154776, "ret": 0.15}, {"id": "v31", "ph": "3dc99490", "equity": 100154776, "ret": 0.15}, {"id": "v89", "ph": "c49d5680", "equity": 100154776, "ret": 0.15}, {"id": "v97", "ph": "ebf31977", "equity": 100154776, "ret": 0.15}, {"id": "v7", "ph": "de835eae", "equity": 100000000, "ret": 0.0}, {"id": "v8", "ph": "18c6740b", "equity": 100000000, "ret": 0.0}, {"id": "v23", "ph": "aec632b1", "equity": 100000000, "ret": 0.0}, {"id": "v28", "ph": "28e87677", "equity": 100000000, "ret": 0.0}, {"id": "v30", "ph": "df71f475", "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": "v81", "ph": "a6eac1e4", "equity": 100000000, "ret": 0.0}, {"id": "v82", "ph": "01847af6", "equity": 100000000, "ret": 0.0}, {"id": "v91", "ph": "5674a3d7", "equity": 100000000, "ret": 0.0}, {"id": "v92", "ph": "14a13097", "equity": 100000000, "ret": 0.0}, {"id": "v95", "ph": "7e28e756", "equity": 100000000, "ret": 0.0}, {"id": "v96", "ph": "095b119f", "equity": 100000000, "ret": 0.0}, {"id": "v300", "ph": "c6ddc17b", "equity": 99999065, "ret": -0.0}, {"id": "v302", "ph": "3f30502d", "equity": 100000000, "ret": 0.0}, {"id": "v9", "ph": "141268ab", "equity": 99870054, "ret": -0.13}, {"id": "v11", "ph": "e4bb2e3e", "equity": 99870054, "ret": -0.13}, {"id": "v12", "ph": "f166fb0e", "equity": 99870054, "ret": -0.13}, {"id": "v26", "ph": "2e5f3fac", "equity": 99869724, "ret": -0.13}, {"id": "v29", "ph": "e46149f5", "equity": 99869724, "ret": -0.13}, {"id": "v32", "ph": "153055e6", "equity": 99870054, "ret": -0.13}, {"id": "v33", "ph": "97ad2410", "equity": 99870054, "ret": -0.13}, {"id": "v34", "ph": "d77f522d", "equity": 99869724, "ret": -0.13}, {"id": "v53", "ph": "2391ee16", "equity": 99870054, "ret": -0.13}, {"id": "v54", "ph": "b975742e", "equity": 99870054, "ret": -0.13}, {"id": "v57", "ph": "e7e98b6d", "equity": 99870054, "ret": -0.13}, {"id": "v58", "ph": "f1e52f55", "equity": 99870054, "ret": -0.13}, {"id": "v59", "ph": "1858e2ec", "equity": 99870054, "ret": -0.13}, {"id": "v60", "ph": "52560b06", "equity": 99870054, "ret": -0.13}, {"id": "v87", "ph": "c0be98c0", "equity": 99869724, "ret": -0.13}, {"id": "v88", "ph": "733579ce", "equity": 99868788, "ret": -0.13}, {"id": "v93", "ph": "f10d4e45", "equity": 99869724, "ret": -0.13}, {"id": "v94", "ph": "3e5d6b8a", "equity": 99868788, "ret": -0.13}, {"id": "v99", "ph": "fb39409b", "equity": 99870054, "ret": -0.13}, {"id": "v100", "ph": "ffa9571a", "equity": 99870054, "ret": -0.13}, {"id": "v101", "ph": "c4354346", "equity": 99870054, "ret": -0.13}, {"id": "v102", "ph": "e1601afe", "equity": 99870054, "ret": -0.13}, {"id": "v103", "ph": "75b0a37c", "equity": 99869724, "ret": -0.13}, {"id": "v104", "ph": "013c3fde", "equity": 99868788, "ret": -0.13}, {"id": "v117", "ph": "c4ae8a11", "equity": 99869288, "ret": -0.13}, {"id": "v119", "ph": "ed2208f1", "equity": 99869288, "ret": -0.13}, {"id": "v120", "ph": "d25ca8b0", "equity": 99869288, "ret": -0.13}, {"id": "v134", "ph": "afbb4ab8", "equity": 99868958, "ret": -0.13}, {"id": "v135", "ph": "53f4c78c", "equity": 99868958, "ret": -0.13}, {"id": "v136", "ph": "ceb32a66", "equity": 99869288, "ret": -0.13}, {"id": "v137", "ph": "60ec806f", "equity": 99868958, "ret": -0.13}, {"id": "v139", "ph": "cfbc79a5", "equity": 99868958, "ret": -0.13}, {"id": "v140", "ph": "52175b2b", "equity": 99869288, "ret": -0.13}, {"id": "v141", "ph": "47f30434", "equity": 99869288, "ret": -0.13}, {"id": "v142", "ph": "44fae695", "equity": 99868958, "ret": -0.13}, {"id": "v161", "ph": "ed5677e6", "equity": 99870054, "ret": -0.13}, {"id": "v162", "ph": "b8f71c74", "equity": 99869288, "ret": -0.13}, {"id": "v165", "ph": "8f862b27", "equity": 99870054, "ret": -0.13}, {"id": "v166", "ph": "f684401e", "equity": 99869288, "ret": -0.13}, {"id": "v167", "ph": "b6d6aed8", "equity": 99870054, "ret": -0.13}, {"id": "v168", "ph": "81099b26", "equity": 99869288, "ret": -0.13}, {"id": "v195", "ph": "dd89cf59", "equity": 99869724, "ret": -0.13}, {"id": "v196", "ph": "a44aeef1", "equity": 99868022, "ret": -0.13}, {"id": "v197", "ph": "5c290a32", "equity": 99869724, "ret": -0.13}, {"id": "v198", "ph": "ffd1ee88", "equity": 99868022, "ret": -0.13}, {"id": "v199", "ph": "390bfab3", "equity": 99870054, "ret": -0.13}, {"id": "v200", "ph": "8bbb6ec7", "equity": 99869288, "ret": -0.13}, {"id": "v201", "ph": "cb8a413e", "equity": 99869724, "ret": -0.13}, {"id": "v202", "ph": "a528b806", "equity": 99868022, "ret": -0.13}, {"id": "v205", "ph": "02e5a3f5", "equity": 99869724, "ret": -0.13}, {"id": "v206", "ph": "16f62ab7", "equity": 99868022, "ret": -0.13}, {"id": "v207", "ph": "0f6601a0", "equity": 99870054, "ret": -0.13}, {"id": "v208", "ph": "445623de", "equity": 99869288, "ret": -0.13}, {"id": "v209", "ph": "8730802d", "equity": 99870054, "ret": -0.13}, {"id": "v210", "ph": "6f533a9b", "equity": 99869288, "ret": -0.13}, {"id": "v211", "ph": "9227673c", "equity": 99869724, "ret": -0.13}, {"id": "v212", "ph": "b9e1e8d1", "equity": 99868022, "ret": -0.13}, {"id": "v217", "ph": "4c547a61", "equity": 99870054, "ret": -0.13}, {"id": "v218", "ph": "7304d2d4", "equity": 99870054, "ret": -0.13}, {"id": "v219", "ph": "426d3834", "equity": 99869288, "ret": -0.13}, {"id": "v220", "ph": "565c27a7", "equity": 99869288, "ret": -0.13}, {"id": "v221", "ph": "cd2eef94", "equity": 99869288, "ret": -0.13}, {"id": "v222", "ph": "55de9eca", "equity": 99869288, "ret": -0.13}, {"id": "v223", "ph": "b57356b8", "equity": 99870054, "ret": -0.13}, {"id": "v224", "ph": "888ab069", "equity": 99870054, "ret": -0.13}, {"id": "v225", "ph": "e9f40f62", "equity": 99869288, "ret": -0.13}, {"id": "v226", "ph": "98fd37a4", "equity": 99869288, "ret": -0.13}, {"id": "v227", "ph": "9454b07a", "equity": 99869288, "ret": -0.13}, {"id": "v228", "ph": "caa54387", "equity": 99869288, "ret": -0.13}, {"id": "v229", "ph": "d9261dfb", "equity": 99870054, "ret": -0.13}, {"id": "v230", "ph": "141579fe", "equity": 99870054, "ret": -0.13}, {"id": "v231", "ph": "cd9469fa", "equity": 99869288, "ret": -0.13}, {"id": "v232", "ph": "6de1fffa", "equity": 99869288, "ret": -0.13}, {"id": "v233", "ph": "941006e0", "equity": 99869288, "ret": -0.13}, {"id": "v234", "ph": "9a289d18", "equity": 99869288, "ret": -0.13}, {"id": "v235", "ph": "3e6c1666", "equity": 99870054, "ret": -0.13}, {"id": "v236", "ph": "f9c75560", "equity": 99870054, "ret": -0.13}, {"id": "v237", "ph": "a10d68cf", "equity": 99869288, "ret": -0.13}, {"id": "v238", "ph": "f1a74611", "equity": 99869288, "ret": -0.13}, {"id": "v239", "ph": "96e693c4", "equity": 99869288, "ret": -0.13}, {"id": "v240", "ph": "db1869eb", "equity": 99869288, "ret": -0.13}, {"id": "v265", "ph": "7faed59d", "equity": 99870054, "ret": -0.13}, {"id": "v266", "ph": "c133b585", "equity": 99870054, "ret": -0.13}, {"id": "v267", "ph": "766c47d7", "equity": 99869288, "ret": -0.13}, {"id": "v268", "ph": "9736502d", "equity": 99869288, "ret": -0.13}, {"id": "v269", "ph": "c0c861c4", "equity": 99869288, "ret": -0.13}, {"id": "v270", "ph": "1ce9fd2b", "equity": 99869288, "ret": -0.13}, {"id": "v271", "ph": "2b9ccdcd", "equity": 99870054, "ret": -0.13}, {"id": "v272", "ph": "2ed2027f", "equity": 99870054, "ret": -0.13}, {"id": "v273", "ph": "c726e8d5", "equity": 99869288, "ret": -0.13}, {"id": "v274", "ph": "62b011c8", "equity": 99869288, "ret": -0.13}, {"id": "v275", "ph": "3ebf0d91", "equity": 99869288, "ret": -0.13}, {"id": "v276", "ph": "51425eab", "equity": 99869288, "ret": -0.13}, {"id": "v277", "ph": "488b612a", "equity": 99870054, "ret": -0.13}, {"id": "v278", "ph": "861fb42b", "equity": 99870054, "ret": -0.13}, {"id": "v279", "ph": "37e203bb", "equity": 99869288, "ret": -0.13}, {"id": "v280", "ph": "60411037", "equity": 99869288, "ret": -0.13}, {"id": "v281", "ph": "7d9e5a9d", "equity": 99869288, "ret": -0.13}, {"id": "v282", "ph": "9ddd111d", "equity": 99869288, "ret": -0.13}, {"id": "v283", "ph": "479e4b25", "equity": 99870054, "ret": -0.13}, {"id": "v284", "ph": "261c5d58", "equity": 99870054, "ret": -0.13}, {"id": "v285", "ph": "962e35cd", "equity": 99869288, "ret": -0.13}, {"id": "v286", "ph": "4f6101e9", "equity": 99869288, "ret": -0.13}, {"id": "v287", "ph": "3bf14815", "equity": 99869288, "ret": -0.13}, {"id": "v288", "ph": "1c732194", "equity": 99869288, "ret": -0.13}, {"id": "v301", "ph": "30da2021", "equity": 99870054, "ret": -0.13}, {"id": "v303", "ph": "1a084164", "equity": 99869305, "ret": -0.13}, {"id": "v1", "ph": "4874f4c9", "equity": 99839277, "ret": -0.16}, {"id": "v5", "ph": "ec2eb05a", "equity": 99839277, "ret": -0.16}, {"id": "v10", "ph": "e48c1012", "equity": 99839277, "ret": -0.16}, {"id": "v36", "ph": "feebff1a", "equity": 99838834, "ret": -0.16}, {"id": "v37", "ph": "fb2247aa", "equity": 99839277, "ret": -0.16}, {"id": "v38", "ph": "9b9083ae", "equity": 99839277, "ret": -0.16}, {"id": "v45", "ph": "964276a8", "equity": 99839277, "ret": -0.16}, {"id": "v46", "ph": "7dc0e360", "equity": 99839277, "ret": -0.16}, {"id": "v55", "ph": "2c44de9b", "equity": 99839277, "ret": -0.16}, {"id": "v56", "ph": "5d99704f", "equity": 99839277, "ret": -0.16}, {"id": "v107", "ph": "be5cd36b", "equity": 99838834, "ret": -0.16}, {"id": "v108", "ph": "67a6679a", "equity": 99837901, "ret": -0.16}, {"id": "v109", "ph": "4c69fc95", "equity": 99838342, "ret": -0.16}, {"id": "v110", "ph": "8164d748", "equity": 99837673, "ret": -0.16}, {"id": "v111", "ph": "826e3d17", "equity": 99837673, "ret": -0.16}, {"id": "v112", "ph": "4cd47646", "equity": 99837673, "ret": -0.16}, {"id": "v113", "ph": "5b43d0bc", "equity": 99838342, "ret": -0.16}, {"id": "v114", "ph": "8686c36c", "equity": 99837899, "ret": -0.16}, {"id": "v115", "ph": "e1790a5a", "equity": 99838342, "ret": -0.16}, {"id": "v116", "ph": "e73fef98", "equity": 99838342, "ret": -0.16}, {"id": "v118", "ph": "538b63b9", "equity": 99838342, "ret": -0.16}, {"id": "v131", "ph": "5f8c7082", "equity": 99838342, "ret": -0.16}, {"id": "v138", "ph": "e3acb223", "equity": 99838342, "ret": -0.16}, {"id": "v143", "ph": "5cf8f13a", "equity": 99837899, "ret": -0.16}, {"id": "v144", "ph": "6ffe4183", "equity": 99837899, "ret": -0.16}, {"id": "v145", "ph": "a89d85fc", "equity": 99839277, "ret": -0.16}, {"id": "v146", "ph": "071b9cb1", "equity": 99838342, "ret": -0.16}, {"id": "v147", "ph": "2fbeeedb", "equity": 99838607, "ret": -0.16}, {"id": "v148", "ph": "ada71802", "equity": 99836740, "ret": -0.16}, {"id": "v149", "ph": "c5329f8d", "equity": 99838607, "ret": -0.16}, {"id": "v150", "ph": "be41b974", "equity": 99836740, "ret": -0.16}, {"id": "v151", "ph": "2eb1dd06", "equity": 99838607, "ret": -0.16}, {"id": "v152", "ph": "5d2df346", "equity": 99836740, "ret": -0.16}, {"id": "v153", "ph": "49fd09d9", "equity": 99839277, "ret": -0.16}, {"id": "v154", "ph": "7a3a7788", "equity": 99838342, "ret": -0.16}, {"id": "v155", "ph": "31c0d84e", "equity": 99838834, "ret": -0.16}, {"id": "v156", "ph": "3f7bcd1b", "equity": 99836966, "ret": -0.16}, {"id": "v157", "ph": "80f3e23b", "equity": 99839277, "ret": -0.16}, {"id": "v158", "ph": "7e56eae3", "equity": 99838342, "ret": -0.16}, {"id": "v159", "ph": "af80c67a", "equity": 99839277, "ret": -0.16}, {"id": "v160", "ph": "b03f5295", "equity": 99838342, "ret": -0.16}, {"id": "v163", "ph": "452ab819", "equity": 99839277, "ret": -0.16}, {"id": "v164", "ph": "331cec1f", "equity": 99838342, "ret": -0.16}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99839277, "ret": -0.16}, {"id": "v190", "ph": "e14af339", "equity": 99838342, "ret": -0.16}, {"id": "v203", "ph": "2071defa", "equity": 99839277, "ret": -0.16}, {"id": "v204", "ph": "434e2f7a", "equity": 99838342, "ret": -0.16}, {"id": "v213", "ph": "0e1d8e45", "equity": 99838834, "ret": -0.16}, {"id": "v214", "ph": "0fb624bf", "equity": 99836966, "ret": -0.16}, {"id": "v215", "ph": "a904a49d", "equity": 99838834, "ret": -0.16}, {"id": "v216", "ph": "ee298bd3", "equity": 99836966, "ret": -0.16}, {"id": "v241", "ph": "52162002", "equity": 99839277, "ret": -0.16}, {"id": "v242", "ph": "e6c70cac", "equity": 99839277, "ret": -0.16}, {"id": "v243", "ph": "fa7a545a", "equity": 99838342, "ret": -0.16}, {"id": "v244", "ph": "520c5a65", "equity": 99838342, "ret": -0.16}, {"id": "v245", "ph": "ac84324f", "equity": 99838342, "ret": -0.16}, {"id": "v246", "ph": "618ddf71", "equity": 99838342, "ret": -0.16}, {"id": "v247", "ph": "ba973fa6", "equity": 99839277, "ret": -0.16}, {"id": "v248", "ph": "9ca5e3dc", "equity": 99839277, "ret": -0.16}, {"id": "v249", "ph": "36a32ca0", "equity": 99838342, "ret": -0.16}, {"id": "v250", "ph": "b37976b8", "equity": 99838342, "ret": -0.16}, {"id": "v251", "ph": "8c5a06da", "equity": 99838342, "ret": -0.16}, {"id": "v252", "ph": "381a65d1", "equity": 99838342, "ret": -0.16}, {"id": "v253", "ph": "87bd57d6", "equity": 99839277, "ret": -0.16}, {"id": "v254", "ph": "75e53118", "equity": 99839277, "ret": -0.16}, {"id": "v255", "ph": "92e3c5e0", "equity": 99838342, "ret": -0.16}, {"id": "v256", "ph": "e583f1dd", "equity": 99838342, "ret": -0.16}, {"id": "v257", "ph": "7fa33f5b", "equity": 99838342, "ret": -0.16}, {"id": "v258", "ph": "0b19bb06", "equity": 99838342, "ret": -0.16}, {"id": "v259", "ph": "178a1fe3", "equity": 99839277, "ret": -0.16}, {"id": "v260", "ph": "bab317db", "equity": 99839277, "ret": -0.16}, {"id": "v261", "ph": "965786e6", "equity": 99838342, "ret": -0.16}, {"id": "v262", "ph": "e07faa54", "equity": 99838342, "ret": -0.16}, {"id": "v263", "ph": "ca392811", "equity": 99838342, "ret": -0.16}, {"id": "v264", "ph": "8c65e60d", "equity": 99838342, "ret": -0.16}, {"id": "v298", "ph": "5d4bbec0", "equity": 99278910, "ret": -0.72}, {"id": "v299", "ph": "25046b1a", "equity": 99269453, "ret": -0.73}, {"id": "v296", "ph": "4c554378", "equity": 98793078, "ret": -1.21}], "20260618": [{"id": "v299", "ph": "25046b1a", "equity": 100522238, "ret": 0.52}, {"id": "v40", "ph": "70731d89", "equity": 100349540, "ret": 0.35}, {"id": "v42", "ph": "f36fddc6", "equity": 100349540, "ret": 0.35}, {"id": "v44", "ph": "364ea434", "equity": 100349540, "ret": 0.35}, {"id": "v48", "ph": "18854c6a", "equity": 100115675, "ret": 0.12}, {"id": "v106", "ph": "d0f5fbc1", "equity": 100115675, "ret": 0.12}, {"id": "v148", "ph": "ada71802", "equity": 100083234, "ret": 0.08}, {"id": "v150", "ph": "be41b974", "equity": 100083234, "ret": 0.08}, {"id": "v152", "ph": "5d2df346", "equity": 100083234, "ret": 0.08}, {"id": "v90", "ph": "86e09c47", "equity": 100043354, "ret": 0.04}, {"id": "v98", "ph": "266fc53f", "equity": 100043354, "ret": 0.04}, {"id": "v49", "ph": "cdba73e0", "equity": 100000000, "ret": 0.0}, {"id": "v51", "ph": "21a98e46", "equity": 100000000, "ret": 0.0}, {"id": "v81", "ph": "a6eac1e4", "equity": 100000000, "ret": 0.0}, {"id": "v91", "ph": "5674a3d7", "equity": 100000000, "ret": 0.0}, {"id": "v95", "ph": "7e28e756", "equity": 100000000, "ret": 0.0}, {"id": "v302", "ph": "3f30502d", "equity": 99947951, "ret": -0.05}, {"id": "v28", "ph": "28e87677", "equity": 99943690, "ret": -0.06}, {"id": "v7", "ph": "de835eae", "equity": 99934863, "ret": -0.07}, {"id": "v8", "ph": "18c6740b", "equity": 99934863, "ret": -0.07}, {"id": "v23", "ph": "aec632b1", "equity": 99934863, "ret": -0.07}, {"id": "v30", "ph": "df71f475", "equity": 99934863, "ret": -0.07}, {"id": "v156", "ph": "3f7bcd1b", "equity": 99921725, "ret": -0.08}, {"id": "v214", "ph": "0fb624bf", "equity": 99921725, "ret": -0.08}, {"id": "v108", "ph": "67a6679a", "equity": 99911859, "ret": -0.09}, {"id": "v9", "ph": "141268ab", "equity": 99866254, "ret": -0.13}, {"id": "v11", "ph": "e4bb2e3e", "equity": 99866254, "ret": -0.13}, {"id": "v12", "ph": "f166fb0e", "equity": 99866254, "ret": -0.13}, {"id": "v32", "ph": "153055e6", "equity": 99866254, "ret": -0.13}, {"id": "v33", "ph": "97ad2410", "equity": 99866254, "ret": -0.13}, {"id": "v53", "ph": "2391ee16", "equity": 99866254, "ret": -0.13}, {"id": "v57", "ph": "e7e98b6d", "equity": 99866254, "ret": -0.13}, {"id": "v59", "ph": "1858e2ec", "equity": 99866254, "ret": -0.13}, {"id": "v99", "ph": "fb39409b", "equity": 99866254, "ret": -0.13}, {"id": "v101", "ph": "c4354346", "equity": 99866254, "ret": -0.13}, {"id": "v136", "ph": "ceb32a66", "equity": 99874338, "ret": -0.13}, {"id": "v161", "ph": "ed5677e6", "equity": 99866254, "ret": -0.13}, {"id": "v165", "ph": "8f862b27", "equity": 99866254, "ret": -0.13}, {"id": "v167", "ph": "b6d6aed8", "equity": 99866254, "ret": -0.13}, {"id": "v198", "ph": "ffd1ee88", "equity": 99869669, "ret": -0.13}, {"id": "v199", "ph": "390bfab3", "equity": 99866254, "ret": -0.13}, {"id": "v206", "ph": "16f62ab7", "equity": 99869669, "ret": -0.13}, {"id": "v207", "ph": "0f6601a0", "equity": 99866254, "ret": -0.13}, {"id": "v209", "ph": "8730802d", "equity": 99866254, "ret": -0.13}, {"id": "v217", "ph": "4c547a61", "equity": 99866254, "ret": -0.13}, {"id": "v218", "ph": "7304d2d4", "equity": 99866254, "ret": -0.13}, {"id": "v223", "ph": "b57356b8", "equity": 99866254, "ret": -0.13}, {"id": "v224", "ph": "888ab069", "equity": 99866254, "ret": -0.13}, {"id": "v229", "ph": "d9261dfb", "equity": 99866254, "ret": -0.13}, {"id": "v230", "ph": "141579fe", "equity": 99866254, "ret": -0.13}, {"id": "v235", "ph": "3e6c1666", "equity": 99866254, "ret": -0.13}, {"id": "v236", "ph": "f9c75560", "equity": 99866254, "ret": -0.13}, {"id": "v265", "ph": "7faed59d", "equity": 99866254, "ret": -0.13}, {"id": "v266", "ph": "c133b585", "equity": 99866254, "ret": -0.13}, {"id": "v271", "ph": "2b9ccdcd", "equity": 99866254, "ret": -0.13}, {"id": "v272", "ph": "2ed2027f", "equity": 99866254, "ret": -0.13}, {"id": "v277", "ph": "488b612a", "equity": 99866254, "ret": -0.13}, {"id": "v278", "ph": "861fb42b", "equity": 99866254, "ret": -0.13}, {"id": "v283", "ph": "479e4b25", "equity": 99866254, "ret": -0.13}, {"id": "v284", "ph": "261c5d58", "equity": 99866254, "ret": -0.13}, {"id": "v301", "ph": "30da2021", "equity": 99866254, "ret": -0.13}, {"id": "v88", "ph": "733579ce", "equity": 99861585, "ret": -0.14}, {"id": "v94", "ph": "3e5d6b8a", "equity": 99861585, "ret": -0.14}, {"id": "v104", "ph": "013c3fde", "equity": 99861585, "ret": -0.14}, {"id": "v115", "ph": "e1790a5a", "equity": 99844442, "ret": -0.16}, {"id": "v116", "ph": "e73fef98", "equity": 99844442, "ret": -0.16}, {"id": "v131", "ph": "5f8c7082", "equity": 99844442, "ret": -0.16}, {"id": "v138", "ph": "e3acb223", "equity": 99844442, "ret": -0.16}, {"id": "v1", "ph": "4874f4c9", "equity": 99834577, "ret": -0.17}, {"id": "v5", "ph": "ec2eb05a", "equity": 99834577, "ret": -0.17}, {"id": "v10", "ph": "e48c1012", "equity": 99834577, "ret": -0.17}, {"id": "v37", "ph": "fb2247aa", "equity": 99834577, "ret": -0.17}, {"id": "v45", "ph": "964276a8", "equity": 99834577, "ret": -0.17}, {"id": "v55", "ph": "2c44de9b", "equity": 99834577, "ret": -0.17}, {"id": "v145", "ph": "a89d85fc", "equity": 99834577, "ret": -0.17}, {"id": "v153", "ph": "49fd09d9", "equity": 99834577, "ret": -0.17}, {"id": "v157", "ph": "80f3e23b", "equity": 99834577, "ret": -0.17}, {"id": "v159", "ph": "af80c67a", "equity": 99834577, "ret": -0.17}, {"id": "v163", "ph": "452ab819", "equity": 99834577, "ret": -0.17}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99834577, "ret": -0.17}, {"id": "v203", "ph": "2071defa", "equity": 99834577, "ret": -0.17}, {"id": "v241", "ph": "52162002", "equity": 99834577, "ret": -0.17}, {"id": "v242", "ph": "e6c70cac", "equity": 99834577, "ret": -0.17}, {"id": "v247", "ph": "ba973fa6", "equity": 99834577, "ret": -0.17}, {"id": "v248", "ph": "9ca5e3dc", "equity": 99834577, "ret": -0.17}, {"id": "v253", "ph": "87bd57d6", "equity": 99834577, "ret": -0.17}, {"id": "v254", "ph": "75e53118", "equity": 99834577, "ret": -0.17}, {"id": "v259", "ph": "178a1fe3", "equity": 99834577, "ret": -0.17}, {"id": "v260", "ph": "bab317db", "equity": 99834577, "ret": -0.17}, {"id": "v89", "ph": "c49d5680", "equity": 99817776, "ret": -0.18}, {"id": "v97", "ph": "ebf31977", "equity": 99817776, "ret": -0.18}, {"id": "v47", "ph": "ed758fcf", "equity": 99773192, "ret": -0.23}, {"id": "v105", "ph": "88395429", "equity": 99773192, "ret": -0.23}, {"id": "v27", "ph": "33d43bc6", "equity": 99761770, "ret": -0.24}, {"id": "v31", "ph": "3dc99490", "equity": 99761770, "ret": -0.24}, {"id": "v135", "ph": "53f4c78c", "equity": 99762008, "ret": -0.24}, {"id": "v139", "ph": "cfbc79a5", "equity": 99762008, "ret": -0.24}, {"id": "v26", "ph": "2e5f3fac", "equity": 99753924, "ret": -0.25}, {"id": "v29", "ph": "e46149f5", "equity": 99753924, "ret": -0.25}, {"id": "v34", "ph": "d77f522d", "equity": 99753924, "ret": -0.25}, {"id": "v87", "ph": "c0be98c0", "equity": 99753924, "ret": -0.25}, {"id": "v93", "ph": "f10d4e45", "equity": 99753924, "ret": -0.25}, {"id": "v103", "ph": "75b0a37c", "equity": 99753924, "ret": -0.25}, {"id": "v195", "ph": "dd89cf59", "equity": 99753924, "ret": -0.25}, {"id": "v197", "ph": "5c290a32", "equity": 99753924, "ret": -0.25}, {"id": "v201", "ph": "cb8a413e", "equity": 99753924, "ret": -0.25}, {"id": "v205", "ph": "02e5a3f5", "equity": 99753924, "ret": -0.25}, {"id": "v211", "ph": "9227673c", "equity": 99753924, "ret": -0.25}, {"id": "v6", "ph": "e96ce9e2", "equity": 99708359, "ret": -0.29}, {"id": "v35", "ph": "6a183375", "equity": 99708359, "ret": -0.29}, {"id": "v114", "ph": "8686c36c", "equity": 99693599, "ret": -0.31}, {"id": "v143", "ph": "5cf8f13a", "equity": 99693599, "ret": -0.31}, {"id": "v36", "ph": "feebff1a", "equity": 99683734, "ret": -0.32}, {"id": "v107", "ph": "be5cd36b", "equity": 99683734, "ret": -0.32}, {"id": "v155", "ph": "31c0d84e", "equity": 99683734, "ret": -0.32}, {"id": "v213", "ph": "0e1d8e45", "equity": 99683734, "ret": -0.32}, {"id": "v215", "ph": "a904a49d", "equity": 99683734, "ret": -0.32}, {"id": "v39", "ph": "11c27236", "equity": 99623306, "ret": -0.38}, {"id": "v41", "ph": "e9d84e84", "equity": 99623306, "ret": -0.38}, {"id": "v43", "ph": "94ea3b53", "equity": 99623306, "ret": -0.38}, {"id": "v110", "ph": "8164d748", "equity": 99616573, "ret": -0.38}, {"id": "v111", "ph": "826e3d17", "equity": 99616573, "ret": -0.38}, {"id": "v112", "ph": "4cd47646", "equity": 99616573, "ret": -0.38}, {"id": "v147", "ph": "2fbeeedb", "equity": 99606707, "ret": -0.39}, {"id": "v149", "ph": "c5329f8d", "equity": 99606707, "ret": -0.39}, {"id": "v151", "ph": "2eb1dd06", "equity": 99606707, "ret": -0.39}, {"id": "v2", "ph": "bab0fc2c", "equity": 99558474, "ret": -0.44}, {"id": "v3", "ph": "81d17cca", "equity": 99558474, "ret": -0.44}, {"id": "v4", "ph": "b6219595", "equity": 99558474, "ret": -0.44}, {"id": "v92", "ph": "14a13097", "equity": 99557044, "ret": -0.44}, {"id": "v200", "ph": "8bbb6ec7", "equity": 99487901, "ret": -0.51}, {"id": "v54", "ph": "b975742e", "equity": 99479817, "ret": -0.52}, {"id": "v58", "ph": "f1e52f55", "equity": 99479817, "ret": -0.52}, {"id": "v60", "ph": "52560b06", "equity": 99479817, "ret": -0.52}, {"id": "v100", "ph": "ffa9571a", "equity": 99479817, "ret": -0.52}, {"id": "v102", "ph": "e1601afe", "equity": 99479817, "ret": -0.52}, {"id": "v50", "ph": "690a50b5", "equity": 99473000, "ret": -0.53}, {"id": "v52", "ph": "c1939d0b", "equity": 99473000, "ret": -0.53}, {"id": "v82", "ph": "01847af6", "equity": 99473000, "ret": -0.53}, {"id": "v96", "ph": "095b119f", "equity": 99473000, "ret": -0.53}, {"id": "v117", "ph": "c4ae8a11", "equity": 99411094, "ret": -0.59}, {"id": "v119", "ph": "ed2208f1", "equity": 99411094, "ret": -0.59}, {"id": "v120", "ph": "d25ca8b0", "equity": 99411094, "ret": -0.59}, {"id": "v140", "ph": "52175b2b", "equity": 99411094, "ret": -0.59}, {"id": "v141", "ph": "47f30434", "equity": 99411094, "ret": -0.59}, {"id": "v196", "ph": "a44aeef1", "equity": 99406425, "ret": -0.59}, {"id": "v202", "ph": "a528b806", "equity": 99406425, "ret": -0.59}, {"id": "v212", "ph": "b9e1e8d1", "equity": 99406425, "ret": -0.59}, {"id": "v219", "ph": "426d3834", "equity": 99411094, "ret": -0.59}, {"id": "v220", "ph": "565c27a7", "equity": 99411094, "ret": -0.59}, {"id": "v225", "ph": "e9f40f62", "equity": 99411094, "ret": -0.59}, {"id": "v226", "ph": "98fd37a4", "equity": 99411094, "ret": -0.59}, {"id": "v231", "ph": "cd9469fa", "equity": 99411094, "ret": -0.59}, {"id": "v232", "ph": "6de1fffa", "equity": 99411094, "ret": -0.59}, {"id": "v237", "ph": "a10d68cf", "equity": 99411094, "ret": -0.59}, {"id": "v238", "ph": "f1a74611", "equity": 99411094, "ret": -0.59}, {"id": "v267", "ph": "766c47d7", "equity": 99411094, "ret": -0.59}, {"id": "v268", "ph": "9736502d", "equity": 99411094, "ret": -0.59}, {"id": "v273", "ph": "c726e8d5", "equity": 99411094, "ret": -0.59}, {"id": "v274", "ph": "62b011c8", "equity": 99411094, "ret": -0.59}, {"id": "v279", "ph": "37e203bb", "equity": 99411094, "ret": -0.59}, {"id": "v280", "ph": "60411037", "equity": 99411094, "ret": -0.59}, {"id": "v285", "ph": "962e35cd", "equity": 99411094, "ret": -0.59}, {"id": "v286", "ph": "4f6101e9", "equity": 99411094, "ret": -0.59}, {"id": "v303", "ph": "1a084164", "equity": 99410912, "ret": -0.59}, {"id": "v158", "ph": "7e56eae3", "equity": 99382788, "ret": -0.62}, {"id": "v160", "ph": "b03f5295", "equity": 99382788, "ret": -0.62}, {"id": "v190", "ph": "e14af339", "equity": 99382788, "ret": -0.62}, {"id": "v204", "ph": "434e2f7a", "equity": 99382788, "ret": -0.62}, {"id": "v134", "ph": "afbb4ab8", "equity": 99298764, "ret": -0.7}, {"id": "v137", "ph": "60ec806f", "equity": 99298764, "ret": -0.7}, {"id": "v142", "ph": "44fae695", "equity": 99298764, "ret": -0.7}, {"id": "v216", "ph": "ee298bd3", "equity": 99295527, "ret": -0.7}, {"id": "v38", "ph": "9b9083ae", "equity": 99223798, "ret": -0.78}, {"id": "v46", "ph": "7dc0e360", "equity": 99223798, "ret": -0.78}, {"id": "v56", "ph": "5d99704f", "equity": 99223798, "ret": -0.78}, {"id": "v221", "ph": "cd2eef94", "equity": 99186752, "ret": -0.81}, {"id": "v227", "ph": "9454b07a", "equity": 99186752, "ret": -0.81}, {"id": "v233", "ph": "941006e0", "equity": 99186752, "ret": -0.81}, {"id": "v239", "ph": "96e693c4", "equity": 99186752, "ret": -0.81}, {"id": "v269", "ph": "c0c861c4", "equity": 99186752, "ret": -0.81}, {"id": "v275", "ph": "3ebf0d91", "equity": 99186752, "ret": -0.81}, {"id": "v281", "ph": "7d9e5a9d", "equity": 99186752, "ret": -0.81}, {"id": "v287", "ph": "3bf14815", "equity": 99186752, "ret": -0.81}, {"id": "v144", "ph": "6ffe4183", "equity": 99068189, "ret": -0.93}, {"id": "v109", "ph": "4c69fc95", "equity": 99020588, "ret": -0.98}, {"id": "v113", "ph": "5b43d0bc", "equity": 99020588, "ret": -0.98}, {"id": "v118", "ph": "538b63b9", "equity": 99020588, "ret": -0.98}, {"id": "v162", "ph": "b8f71c74", "equity": 99024658, "ret": -0.98}, {"id": "v166", "ph": "f684401e", "equity": 99024658, "ret": -0.98}, {"id": "v168", "ph": "81099b26", "equity": 99024658, "ret": -0.98}, {"id": "v208", "ph": "445623de", "equity": 99024658, "ret": -0.98}, {"id": "v210", "ph": "6f533a9b", "equity": 99024658, "ret": -0.98}, {"id": "v222", "ph": "55de9eca", "equity": 99024658, "ret": -0.98}, {"id": "v228", "ph": "caa54387", "equity": 99024658, "ret": -0.98}, {"id": "v234", "ph": "9a289d18", "equity": 99024658, "ret": -0.98}, {"id": "v240", "ph": "db1869eb", "equity": 99024658, "ret": -0.98}, {"id": "v243", "ph": "fa7a545a", "equity": 99020588, "ret": -0.98}, {"id": "v244", "ph": "520c5a65", "equity": 99020588, "ret": -0.98}, {"id": "v249", "ph": "36a32ca0", "equity": 99020588, "ret": -0.98}, {"id": "v250", "ph": "b37976b8", "equity": 99020588, "ret": -0.98}, {"id": "v255", "ph": "92e3c5e0", "equity": 99020588, "ret": -0.98}, {"id": "v256", "ph": "e583f1dd", "equity": 99020588, "ret": -0.98}, {"id": "v261", "ph": "965786e6", "equity": 99020588, "ret": -0.98}, {"id": "v262", "ph": "e07faa54", "equity": 99020588, "ret": -0.98}, {"id": "v270", "ph": "1ce9fd2b", "equity": 99024658, "ret": -0.98}, {"id": "v276", "ph": "51425eab", "equity": 99024658, "ret": -0.98}, {"id": "v282", "ph": "9ddd111d", "equity": 99024658, "ret": -0.98}, {"id": "v288", "ph": "1c732194", "equity": 99024658, "ret": -0.98}, {"id": "v245", "ph": "ac84324f", "equity": 98570594, "ret": -1.43}, {"id": "v251", "ph": "8c5a06da", "equity": 98570594, "ret": -1.43}, {"id": "v257", "ph": "7fa33f5b", "equity": 98570594, "ret": -1.43}, {"id": "v263", "ph": "ca392811", "equity": 98570594, "ret": -1.43}, {"id": "v146", "ph": "071b9cb1", "equity": 98408500, "ret": -1.59}, {"id": "v154", "ph": "7a3a7788", "equity": 98408500, "ret": -1.59}, {"id": "v164", "ph": "331cec1f", "equity": 98408500, "ret": -1.59}, {"id": "v246", "ph": "618ddf71", "equity": 98408500, "ret": -1.59}, {"id": "v252", "ph": "381a65d1", "equity": 98408500, "ret": -1.59}, {"id": "v258", "ph": "0b19bb06", "equity": 98408500, "ret": -1.59}, {"id": "v264", "ph": "8c65e60d", "equity": 98408500, "ret": -1.59}, {"id": "v300", "ph": "c6ddc17b", "equity": 98414155, "ret": -1.59}, {"id": "v296", "ph": "4c554378", "equity": 98369185, "ret": -1.63}, {"id": "v298", "ph": "5d4bbec0", "equity": 97903330, "ret": -2.1}], "20260619": [{"id": "v81", "ph": "a6eac1e4", "equity": 100012103, "ret": 0.01}, {"id": "v91", "ph": "5674a3d7", "equity": 100012103, "ret": 0.01}, {"id": "v95", "ph": "7e28e756", "equity": 100012103, "ret": 0.01}, {"id": "v49", "ph": "cdba73e0", "equity": 99771263, "ret": -0.23}, {"id": "v51", "ph": "21a98e46", "equity": 99771263, "ret": -0.23}, {"id": "v99", "ph": "fb39409b", "equity": 99699720, "ret": -0.3}, {"id": "v101", "ph": "c4354346", "equity": 99699720, "ret": -0.3}, {"id": "v199", "ph": "390bfab3", "equity": 99699720, "ret": -0.3}, {"id": "v207", "ph": "0f6601a0", "equity": 99699720, "ret": -0.3}, {"id": "v209", "ph": "8730802d", "equity": 99699720, "ret": -0.3}, {"id": "v28", "ph": "28e87677", "equity": 99582892, "ret": -0.42}, {"id": "v32", "ph": "153055e6", "equity": 99539606, "ret": -0.46}, {"id": "v33", "ph": "97ad2410", "equity": 99539606, "ret": -0.46}, {"id": "v89", "ph": "c49d5680", "equity": 99535129, "ret": -0.46}, {"id": "v97", "ph": "ebf31977", "equity": 99535129, "ret": -0.46}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99539444, "ret": -0.46}, {"id": "v203", "ph": "2071defa", "equity": 99539444, "ret": -0.46}, {"id": "v302", "ph": "3f30502d", "equity": 99534056, "ret": -0.47}, {"id": "v9", "ph": "141268ab", "equity": 99523104, "ret": -0.48}, {"id": "v11", "ph": "e4bb2e3e", "equity": 99523104, "ret": -0.48}, {"id": "v12", "ph": "f166fb0e", "equity": 99523104, "ret": -0.48}, {"id": "v53", "ph": "2391ee16", "equity": 99523104, "ret": -0.48}, {"id": "v57", "ph": "e7e98b6d", "equity": 99523104, "ret": -0.48}, {"id": "v59", "ph": "1858e2ec", "equity": 99523104, "ret": -0.48}, {"id": "v161", "ph": "ed5677e6", "equity": 99523104, "ret": -0.48}, {"id": "v165", "ph": "8f862b27", "equity": 99523104, "ret": -0.48}, {"id": "v167", "ph": "b6d6aed8", "equity": 99523104, "ret": -0.48}, {"id": "v217", "ph": "4c547a61", "equity": 99511038, "ret": -0.49}, {"id": "v218", "ph": "7304d2d4", "equity": 99511038, "ret": -0.49}, {"id": "v23", "ph": "aec632b1", "equity": 99482492, "ret": -0.52}, {"id": "v30", "ph": "df71f475", "equity": 99482492, "ret": -0.52}, {"id": "v301", "ph": "30da2021", "equity": 99470408, "ret": -0.53}, {"id": "v7", "ph": "de835eae", "equity": 99459988, "ret": -0.54}, {"id": "v8", "ph": "18c6740b", "equity": 99459988, "ret": -0.54}, {"id": "v87", "ph": "c0be98c0", "equity": 99461390, "ret": -0.54}, {"id": "v93", "ph": "f10d4e45", "equity": 99461390, "ret": -0.54}, {"id": "v103", "ph": "75b0a37c", "equity": 99461390, "ret": -0.54}, {"id": "v195", "ph": "dd89cf59", "equity": 99461390, "ret": -0.54}, {"id": "v197", "ph": "5c290a32", "equity": 99461390, "ret": -0.54}, {"id": "v201", "ph": "cb8a413e", "equity": 99461390, "ret": -0.54}, {"id": "v205", "ph": "02e5a3f5", "equity": 99461390, "ret": -0.54}, {"id": "v211", "ph": "9227673c", "equity": 99461390, "ret": -0.54}, {"id": "v223", "ph": "b57356b8", "equity": 99438670, "ret": -0.56}, {"id": "v224", "ph": "888ab069", "equity": 99438670, "ret": -0.56}, {"id": "v229", "ph": "d9261dfb", "equity": 99438670, "ret": -0.56}, {"id": "v230", "ph": "141579fe", "equity": 99438670, "ret": -0.56}, {"id": "v235", "ph": "3e6c1666", "equity": 99438670, "ret": -0.56}, {"id": "v236", "ph": "f9c75560", "equity": 99438670, "ret": -0.56}, {"id": "v265", "ph": "7faed59d", "equity": 99438670, "ret": -0.56}, {"id": "v266", "ph": "c133b585", "equity": 99438670, "ret": -0.56}, {"id": "v271", "ph": "2b9ccdcd", "equity": 99438670, "ret": -0.56}, {"id": "v272", "ph": "2ed2027f", "equity": 99438670, "ret": -0.56}, {"id": "v277", "ph": "488b612a", "equity": 99438670, "ret": -0.56}, {"id": "v278", "ph": "861fb42b", "equity": 99438670, "ret": -0.56}, {"id": "v283", "ph": "479e4b25", "equity": 99438670, "ret": -0.56}, {"id": "v284", "ph": "261c5d58", "equity": 99438670, "ret": -0.56}, {"id": "v105", "ph": "88395429", "equity": 99433845, "ret": -0.57}, {"id": "v1", "ph": "4874f4c9", "equity": 99368847, "ret": -0.63}, {"id": "v5", "ph": "ec2eb05a", "equity": 99368847, "ret": -0.63}, {"id": "v10", "ph": "e48c1012", "equity": 99368847, "ret": -0.63}, {"id": "v37", "ph": "fb2247aa", "equity": 99368847, "ret": -0.63}, {"id": "v45", "ph": "964276a8", "equity": 99368847, "ret": -0.63}, {"id": "v55", "ph": "2c44de9b", "equity": 99368847, "ret": -0.63}, {"id": "v145", "ph": "a89d85fc", "equity": 99368847, "ret": -0.63}, {"id": "v153", "ph": "49fd09d9", "equity": 99368847, "ret": -0.63}, {"id": "v163", "ph": "452ab819", "equity": 99368847, "ret": -0.63}, {"id": "v136", "ph": "ceb32a66", "equity": 99344140, "ret": -0.66}, {"id": "v26", "ph": "2e5f3fac", "equity": 99301276, "ret": -0.7}, {"id": "v29", "ph": "e46149f5", "equity": 99301276, "ret": -0.7}, {"id": "v34", "ph": "d77f522d", "equity": 99301276, "ret": -0.7}, {"id": "v157", "ph": "80f3e23b", "equity": 99298604, "ret": -0.7}, {"id": "v159", "ph": "af80c67a", "equity": 99298604, "ret": -0.7}, {"id": "v241", "ph": "52162002", "equity": 99284413, "ret": -0.72}, {"id": "v242", "ph": "e6c70cac", "equity": 99284413, "ret": -0.72}, {"id": "v247", "ph": "ba973fa6", "equity": 99284413, "ret": -0.72}, {"id": "v248", "ph": "9ca5e3dc", "equity": 99284413, "ret": -0.72}, {"id": "v253", "ph": "87bd57d6", "equity": 99284413, "ret": -0.72}, {"id": "v254", "ph": "75e53118", "equity": 99284413, "ret": -0.72}, {"id": "v259", "ph": "178a1fe3", "equity": 99284413, "ret": -0.72}, {"id": "v260", "ph": "bab317db", "equity": 99284413, "ret": -0.72}, {"id": "v107", "ph": "be5cd36b", "equity": 99219401, "ret": -0.78}, {"id": "v213", "ph": "0e1d8e45", "equity": 99219401, "ret": -0.78}, {"id": "v215", "ph": "a904a49d", "equity": 99219401, "ret": -0.78}, {"id": "v47", "ph": "ed758fcf", "equity": 99193004, "ret": -0.81}, {"id": "v299", "ph": "25046b1a", "equity": 99138724, "ret": -0.86}, {"id": "v27", "ph": "33d43bc6", "equity": 99107373, "ret": -0.89}, {"id": "v31", "ph": "3dc99490", "equity": 99107373, "ret": -0.89}, {"id": "v135", "ph": "53f4c78c", "equity": 99105810, "ret": -0.89}, {"id": "v139", "ph": "cfbc79a5", "equity": 99105810, "ret": -0.89}, {"id": "v131", "ph": "5f8c7082", "equity": 99082573, "ret": -0.92}, {"id": "v138", "ph": "e3acb223", "equity": 99082573, "ret": -0.92}, {"id": "v115", "ph": "e1790a5a", "equity": 99060069, "ret": -0.94}, {"id": "v116", "ph": "e73fef98", "equity": 99060069, "ret": -0.94}, {"id": "v36", "ph": "feebff1a", "equity": 99001064, "ret": -1.0}, {"id": "v155", "ph": "31c0d84e", "equity": 98978560, "ret": -1.02}, {"id": "v92", "ph": "14a13097", "equity": 98940531, "ret": -1.06}, {"id": "v35", "ph": "6a183375", "equity": 98905688, "ret": -1.09}, {"id": "v88", "ph": "733579ce", "equity": 98898771, "ret": -1.1}, {"id": "v94", "ph": "3e5d6b8a", "equity": 98898771, "ret": -1.1}, {"id": "v100", "ph": "ffa9571a", "equity": 98896303, "ret": -1.1}, {"id": "v102", "ph": "e1601afe", "equity": 98896303, "ret": -1.1}, {"id": "v104", "ph": "013c3fde", "equity": 98898771, "ret": -1.1}, {"id": "v147", "ph": "2fbeeedb", "equity": 98885377, "ret": -1.11}, {"id": "v149", "ph": "c5329f8d", "equity": 98885377, "ret": -1.11}, {"id": "v151", "ph": "2eb1dd06", "equity": 98885377, "ret": -1.11}, {"id": "v6", "ph": "e96ce9e2", "equity": 98883184, "ret": -1.12}, {"id": "v54", "ph": "b975742e", "equity": 98879801, "ret": -1.12}, {"id": "v58", "ph": "f1e52f55", "equity": 98879801, "ret": -1.12}, {"id": "v60", "ph": "52560b06", "equity": 98879801, "ret": -1.12}, {"id": "v90", "ph": "86e09c47", "equity": 98830140, "ret": -1.17}, {"id": "v98", "ph": "266fc53f", "equity": 98830140, "ret": -1.17}, {"id": "v39", "ph": "11c27236", "equity": 98778663, "ret": -1.22}, {"id": "v41", "ph": "e9d84e84", "equity": 98778663, "ret": -1.22}, {"id": "v43", "ph": "94ea3b53", "equity": 98778663, "ret": -1.22}, {"id": "v143", "ph": "5cf8f13a", "equity": 98762492, "ret": -1.24}, {"id": "v114", "ph": "8686c36c", "equity": 98739989, "ret": -1.26}, {"id": "v198", "ph": "ffd1ee88", "equity": 98703305, "ret": -1.3}, {"id": "v200", "ph": "8bbb6ec7", "equity": 98700837, "ret": -1.3}, {"id": "v206", "ph": "16f62ab7", "equity": 98703305, "ret": -1.3}, {"id": "v82", "ph": "01847af6", "equity": 98682113, "ret": -1.32}, {"id": "v96", "ph": "095b119f", "equity": 98682113, "ret": -1.32}, {"id": "v50", "ph": "690a50b5", "equity": 98659610, "ret": -1.34}, {"id": "v52", "ph": "c1939d0b", "equity": 98659610, "ret": -1.34}, {"id": "v110", "ph": "8164d748", "equity": 98646805, "ret": -1.35}, {"id": "v111", "ph": "826e3d17", "equity": 98646805, "ret": -1.35}, {"id": "v112", "ph": "4cd47646", "equity": 98646805, "ret": -1.35}, {"id": "v106", "ph": "d0f5fbc1", "equity": 98511272, "ret": -1.49}, {"id": "v48", "ph": "18854c6a", "equity": 98488769, "ret": -1.51}, {"id": "v2", "ph": "bab0fc2c", "equity": 98468880, "ret": -1.53}, {"id": "v3", "ph": "81d17cca", "equity": 98468880, "ret": -1.53}, {"id": "v4", "ph": "b6219595", "equity": 98468880, "ret": -1.53}, {"id": "v108", "ph": "67a6679a", "equity": 98463181, "ret": -1.54}, {"id": "v140", "ph": "52175b2b", "equity": 98333401, "ret": -1.67}, {"id": "v141", "ph": "47f30434", "equity": 98333401, "ret": -1.67}, {"id": "v117", "ph": "c4ae8a11", "equity": 98316898, "ret": -1.68}, {"id": "v119", "ph": "ed2208f1", "equity": 98316898, "ret": -1.68}, {"id": "v120", "ph": "d25ca8b0", "equity": 98316898, "ret": -1.68}, {"id": "v190", "ph": "e14af339", "equity": 98281253, "ret": -1.72}, {"id": "v204", "ph": "434e2f7a", "equity": 98281253, "ret": -1.72}, {"id": "v38", "ph": "9b9083ae", "equity": 98256402, "ret": -1.74}, {"id": "v46", "ph": "7dc0e360", "equity": 98256402, "ret": -1.74}, {"id": "v56", "ph": "5d99704f", "equity": 98256402, "ret": -1.74}, {"id": "v158", "ph": "7e56eae3", "equity": 98258749, "ret": -1.74}, {"id": "v160", "ph": "b03f5295", "equity": 98258749, "ret": -1.74}, {"id": "v303", "ph": "1a084164", "equity": 98252307, "ret": -1.75}, {"id": "v40", "ph": "70731d89", "equity": 98226593, "ret": -1.77}, {"id": "v42", "ph": "f36fddc6", "equity": 98226593, "ret": -1.77}, {"id": "v44", "ph": "364ea434", "equity": 98226593, "ret": -1.77}, {"id": "v219", "ph": "426d3834", "equity": 98233635, "ret": -1.77}, {"id": "v220", "ph": "565c27a7", "equity": 98233635, "ret": -1.77}, {"id": "v225", "ph": "e9f40f62", "equity": 98233635, "ret": -1.77}, {"id": "v226", "ph": "98fd37a4", "equity": 98233635, "ret": -1.77}, {"id": "v231", "ph": "cd9469fa", "equity": 98233635, "ret": -1.77}, {"id": "v232", "ph": "6de1fffa", "equity": 98233635, "ret": -1.77}, {"id": "v237", "ph": "a10d68cf", "equity": 98233635, "ret": -1.77}, {"id": "v238", "ph": "f1a74611", "equity": 98233635, "ret": -1.77}, {"id": "v267", "ph": "766c47d7", "equity": 98233635, "ret": -1.77}, {"id": "v268", "ph": "9736502d", "equity": 98233635, "ret": -1.77}, {"id": "v273", "ph": "c726e8d5", "equity": 98233635, "ret": -1.77}, {"id": "v274", "ph": "62b011c8", "equity": 98233635, "ret": -1.77}, {"id": "v279", "ph": "37e203bb", "equity": 98233635, "ret": -1.77}, {"id": "v280", "ph": "60411037", "equity": 98233635, "ret": -1.77}, {"id": "v285", "ph": "962e35cd", "equity": 98233635, "ret": -1.77}, {"id": "v286", "ph": "4f6101e9", "equity": 98233635, "ret": -1.77}, {"id": "v214", "ph": "0fb624bf", "equity": 98224647, "ret": -1.78}, {"id": "v156", "ph": "3f7bcd1b", "equity": 98202143, "ret": -1.8}, {"id": "v148", "ph": "ada71802", "equity": 98105237, "ret": -1.89}, {"id": "v150", "ph": "be41b974", "equity": 98105237, "ret": -1.89}, {"id": "v152", "ph": "5d2df346", "equity": 98105237, "ret": -1.89}, {"id": "v134", "ph": "afbb4ab8", "equity": 98095071, "ret": -1.9}, {"id": "v137", "ph": "60ec806f", "equity": 98095071, "ret": -1.9}, {"id": "v142", "ph": "44fae695", "equity": 98095071, "ret": -1.9}, {"id": "v221", "ph": "cd2eef94", "equity": 97811265, "ret": -2.19}, {"id": "v227", "ph": "9454b07a", "equity": 97811265, "ret": -2.19}, {"id": "v233", "ph": "941006e0", "equity": 97811265, "ret": -2.19}, {"id": "v239", "ph": "96e693c4", "equity": 97811265, "ret": -2.19}, {"id": "v269", "ph": "c0c861c4", "equity": 97811265, "ret": -2.19}, {"id": "v275", "ph": "3ebf0d91", "equity": 97811265, "ret": -2.19}, {"id": "v281", "ph": "7d9e5a9d", "equity": 97811265, "ret": -2.19}, {"id": "v287", "ph": "3bf14815", "equity": 97811265, "ret": -2.19}, {"id": "v144", "ph": "6ffe4183", "equity": 97714288, "ret": -2.29}, {"id": "v196", "ph": "a44aeef1", "equity": 97692640, "ret": -2.31}, {"id": "v202", "ph": "a528b806", "equity": 97692640, "ret": -2.31}, {"id": "v208", "ph": "445623de", "equity": 97690172, "ret": -2.31}, {"id": "v210", "ph": "6f533a9b", "equity": 97690172, "ret": -2.31}, {"id": "v212", "ph": "b9e1e8d1", "equity": 97692640, "ret": -2.31}, {"id": "v162", "ph": "b8f71c74", "equity": 97673670, "ret": -2.33}, {"id": "v166", "ph": "f684401e", "equity": 97673670, "ret": -2.33}, {"id": "v168", "ph": "81099b26", "equity": 97673670, "ret": -2.33}, {"id": "v222", "ph": "55de9eca", "equity": 97649183, "ret": -2.35}, {"id": "v228", "ph": "caa54387", "equity": 97649183, "ret": -2.35}, {"id": "v234", "ph": "9a289d18", "equity": 97649183, "ret": -2.35}, {"id": "v240", "ph": "db1869eb", "equity": 97649183, "ret": -2.35}, {"id": "v270", "ph": "1ce9fd2b", "equity": 97649183, "ret": -2.35}, {"id": "v276", "ph": "51425eab", "equity": 97649183, "ret": -2.35}, {"id": "v282", "ph": "9ddd111d", "equity": 97649183, "ret": -2.35}, {"id": "v288", "ph": "1c732194", "equity": 97649183, "ret": -2.35}, {"id": "v109", "ph": "4c69fc95", "equity": 97333763, "ret": -2.67}, {"id": "v113", "ph": "5b43d0bc", "equity": 97333763, "ret": -2.67}, {"id": "v118", "ph": "538b63b9", "equity": 97333763, "ret": -2.67}, {"id": "v296", "ph": "4c554378", "equity": 97307249, "ret": -2.69}, {"id": "v243", "ph": "fa7a545a", "equity": 97250574, "ret": -2.75}, {"id": "v244", "ph": "520c5a65", "equity": 97250574, "ret": -2.75}, {"id": "v249", "ph": "36a32ca0", "equity": 97250574, "ret": -2.75}, {"id": "v250", "ph": "b37976b8", "equity": 97250574, "ret": -2.75}, {"id": "v255", "ph": "92e3c5e0", "equity": 97250574, "ret": -2.75}, {"id": "v256", "ph": "e583f1dd", "equity": 97250574, "ret": -2.75}, {"id": "v261", "ph": "965786e6", "equity": 97250574, "ret": -2.75}, {"id": "v262", "ph": "e07faa54", "equity": 97250574, "ret": -2.75}, {"id": "v216", "ph": "ee298bd3", "equity": 97177429, "ret": -2.82}, {"id": "v300", "ph": "c6ddc17b", "equity": 96771577, "ret": -3.23}, {"id": "v245", "ph": "ac84324f", "equity": 96386213, "ret": -3.61}, {"id": "v251", "ph": "8c5a06da", "equity": 96386213, "ret": -3.61}, {"id": "v257", "ph": "7fa33f5b", "equity": 96386213, "ret": -3.61}, {"id": "v263", "ph": "ca392811", "equity": 96386213, "ret": -3.61}, {"id": "v146", "ph": "071b9cb1", "equity": 96216557, "ret": -3.78}, {"id": "v154", "ph": "7a3a7788", "equity": 96216557, "ret": -3.78}, {"id": "v164", "ph": "331cec1f", "equity": 96216557, "ret": -3.78}, {"id": "v246", "ph": "618ddf71", "equity": 96224131, "ret": -3.78}, {"id": "v252", "ph": "381a65d1", "equity": 96224131, "ret": -3.78}, {"id": "v258", "ph": "0b19bb06", "equity": 96224131, "ret": -3.78}, {"id": "v264", "ph": "8c65e60d", "equity": 96224131, "ret": -3.78}, {"id": "v298", "ph": "5d4bbec0", "equity": 95473086, "ret": -4.53}], "20260622": [{"id": "v308", "ph": "cb12dd0b", "equity": 100110463, "ret": 0.11}, {"id": "v304", "ph": "96c7e8e1", "equity": 99999382, "ret": -0.0}, {"id": "v305", "ph": "8cc4eea6", "equity": 99999253, "ret": -0.0}, {"id": "v306", "ph": "6966b8f6", "equity": 100000000, "ret": 0.0}, {"id": "v307", "ph": "6abce93d", "equity": 100000000, "ret": 0.0}, {"id": "v313", "ph": "b9f4ee72", "equity": 100000000, "ret": 0.0}, {"id": "v314", "ph": "7511570e", "equity": 100000000, "ret": 0.0}, {"id": "v315", "ph": "e6d5b283", "equity": 100000000, "ret": 0.0}, {"id": "v316", "ph": "8dc1d197", "equity": 99999482, "ret": -0.0}, {"id": "v317", "ph": "51f8ee6d", "equity": 100000000, "ret": 0.0}, {"id": "v319", "ph": "ca25f043", "equity": 99999612, "ret": -0.0}, {"id": "v320", "ph": "48d6a9ef", "equity": 99999353, "ret": -0.0}, {"id": "v321", "ph": "e82de49b", "equity": 100000000, "ret": 0.0}, {"id": "v311", "ph": "8409c6e5", "equity": 99975492, "ret": -0.02}, {"id": "v81", "ph": "a6eac1e4", "equity": 99862143, "ret": -0.14}, {"id": "v91", "ph": "5674a3d7", "equity": 99862143, "ret": -0.14}, {"id": "v95", "ph": "7e28e756", "equity": 99862143, "ret": -0.14}, {"id": "v312", "ph": "4c23846f", "equity": 99850935, "ret": -0.15}, {"id": "v309", "ph": "07610040", "equity": 99839047, "ret": -0.16}, {"id": "v310", "ph": "ec9dd55c", "equity": 99823142, "ret": -0.18}, {"id": "v318", "ph": "c99872ef", "equity": 99752651, "ret": -0.25}, {"id": "v299", "ph": "25046b1a", "equity": 99624684, "ret": -0.38}, {"id": "v49", "ph": "cdba73e0", "equity": 99546303, "ret": -0.45}, {"id": "v51", "ph": "21a98e46", "equity": 99546303, "ret": -0.45}, {"id": "v40", "ph": "70731d89", "equity": 99480770, "ret": -0.52}, {"id": "v99", "ph": "fb39409b", "equity": 99432420, "ret": -0.57}, {"id": "v101", "ph": "c4354346", "equity": 99432420, "ret": -0.57}, {"id": "v199", "ph": "390bfab3", "equity": 99432420, "ret": -0.57}, {"id": "v207", "ph": "0f6601a0", "equity": 99432420, "ret": -0.57}, {"id": "v209", "ph": "8730802d", "equity": 99432420, "ret": -0.57}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99389944, "ret": -0.61}, {"id": "v203", "ph": "2071defa", "equity": 99389944, "ret": -0.61}, {"id": "v89", "ph": "c49d5680", "equity": 99365419, "ret": -0.63}, {"id": "v97", "ph": "ebf31977", "equity": 99365419, "ret": -0.63}, {"id": "v217", "ph": "4c547a61", "equity": 99338238, "ret": -0.66}, {"id": "v218", "ph": "7304d2d4", "equity": 99338238, "ret": -0.66}, {"id": "v87", "ph": "c0be98c0", "equity": 99330590, "ret": -0.67}, {"id": "v93", "ph": "f10d4e45", "equity": 99330590, "ret": -0.67}, {"id": "v103", "ph": "75b0a37c", "equity": 99330590, "ret": -0.67}, {"id": "v195", "ph": "dd89cf59", "equity": 99330590, "ret": -0.67}, {"id": "v197", "ph": "5c290a32", "equity": 99330590, "ret": -0.67}, {"id": "v201", "ph": "cb8a413e", "equity": 99330590, "ret": -0.67}, {"id": "v205", "ph": "02e5a3f5", "equity": 99330590, "ret": -0.67}, {"id": "v211", "ph": "9227673c", "equity": 99330590, "ret": -0.67}, {"id": "v105", "ph": "88395429", "equity": 99298435, "ret": -0.7}, {"id": "v223", "ph": "b57356b8", "equity": 99265870, "ret": -0.73}, {"id": "v224", "ph": "888ab069", "equity": 99265870, "ret": -0.73}, {"id": "v229", "ph": "d9261dfb", "equity": 99265870, "ret": -0.73}, {"id": "v230", "ph": "141579fe", "equity": 99265870, "ret": -0.73}, {"id": "v235", "ph": "3e6c1666", "equity": 99265870, "ret": -0.73}, {"id": "v236", "ph": "f9c75560", "equity": 99265870, "ret": -0.73}, {"id": "v265", "ph": "7faed59d", "equity": 99265870, "ret": -0.73}, {"id": "v266", "ph": "c133b585", "equity": 99265870, "ret": -0.73}, {"id": "v271", "ph": "2b9ccdcd", "equity": 99265870, "ret": -0.73}, {"id": "v272", "ph": "2ed2027f", "equity": 99265870, "ret": -0.73}, {"id": "v277", "ph": "488b612a", "equity": 99265870, "ret": -0.73}, {"id": "v278", "ph": "861fb42b", "equity": 99265870, "ret": -0.73}, {"id": "v283", "ph": "479e4b25", "equity": 99265870, "ret": -0.73}, {"id": "v284", "ph": "261c5d58", "equity": 99265870, "ret": -0.73}, {"id": "v107", "ph": "be5cd36b", "equity": 99253201, "ret": -0.75}, {"id": "v213", "ph": "0e1d8e45", "equity": 99253201, "ret": -0.75}, {"id": "v215", "ph": "a904a49d", "equity": 99253201, "ret": -0.75}, {"id": "v302", "ph": "3f30502d", "equity": 99230216, "ret": -0.77}, {"id": "v57", "ph": "e7e98b6d", "equity": 99200804, "ret": -0.8}, {"id": "v59", "ph": "1858e2ec", "equity": 99200804, "ret": -0.8}, {"id": "v161", "ph": "ed5677e6", "equity": 99200804, "ret": -0.8}, {"id": "v165", "ph": "8f862b27", "equity": 99200804, "ret": -0.8}, {"id": "v167", "ph": "b6d6aed8", "equity": 99200804, "ret": -0.8}, {"id": "v301", "ph": "30da2021", "equity": 99168468, "ret": -0.83}, {"id": "v157", "ph": "80f3e23b", "equity": 99074104, "ret": -0.93}, {"id": "v159", "ph": "af80c67a", "equity": 99074104, "ret": -0.93}, {"id": "v1", "ph": "4874f4c9", "equity": 98993647, "ret": -1.01}, {"id": "v47", "ph": "ed758fcf", "equity": 98982594, "ret": -1.02}, {"id": "v155", "ph": "31c0d84e", "equity": 98937360, "ret": -1.06}, {"id": "v147", "ph": "2fbeeedb", "equity": 98787077, "ret": -1.21}, {"id": "v149", "ph": "c5329f8d", "equity": 98787077, "ret": -1.21}, {"id": "v151", "ph": "2eb1dd06", "equity": 98787077, "ret": -1.21}, {"id": "v41", "ph": "e9d84e84", "equity": 98506853, "ret": -1.49}, {"id": "v4", "ph": "b6219595", "equity": 98047970, "ret": -1.95}, {"id": "v303", "ph": "1a084164", "equity": 97958407, "ret": -2.04}, {"id": "v300", "ph": "c6ddc17b", "equity": 97936863, "ret": -2.06}, {"id": "v296", "ph": "4c554378", "equity": 96948991, "ret": -3.05}, {"id": "v298", "ph": "5d4bbec0", "equity": 95566672, "ret": -4.43}], "20260623": [{"id": "v306", "ph": "6966b8f6", "equity": 100000000, "ret": 0.0}, {"id": "v307", "ph": "6abce93d", "equity": 100000000, "ret": 0.0}, {"id": "v313", "ph": "b9f4ee72", "equity": 100000000, "ret": 0.0}, {"id": "v314", "ph": "7511570e", "equity": 100000000, "ret": 0.0}, {"id": "v315", "ph": "e6d5b283", "equity": 100000000, "ret": 0.0}, {"id": "v317", "ph": "51f8ee6d", "equity": 100000000, "ret": 0.0}, {"id": "v321", "ph": "e82de49b", "equity": 100000000, "ret": 0.0}, {"id": "v81", "ph": "a6eac1e4", "equity": 99876259, "ret": -0.12}, {"id": "v91", "ph": "5674a3d7", "equity": 99876259, "ret": -0.12}, {"id": "v95", "ph": "7e28e756", "equity": 99876259, "ret": -0.12}, {"id": "v319", "ph": "ca25f043", "equity": 99660626, "ret": -0.34}, {"id": "v316", "ph": "8dc1d197", "equity": 99602340, "ret": -0.4}, {"id": "v304", "ph": "96c7e8e1", "equity": 99583541, "ret": -0.42}, {"id": "v320", "ph": "48d6a9ef", "equity": 99522538, "ret": -0.48}, {"id": "v308", "ph": "cb12dd0b", "equity": 99484063, "ret": -0.52}, {"id": "v305", "ph": "8cc4eea6", "equity": 99455619, "ret": -0.54}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99404017, "ret": -0.6}, {"id": "v203", "ph": "2071defa", "equity": 99404017, "ret": -0.6}, {"id": "v99", "ph": "fb39409b", "equity": 99365571, "ret": -0.63}, {"id": "v101", "ph": "c4354346", "equity": 99365571, "ret": -0.63}, {"id": "v199", "ph": "390bfab3", "equity": 99365571, "ret": -0.63}, {"id": "v207", "ph": "0f6601a0", "equity": 99365571, "ret": -0.63}, {"id": "v209", "ph": "8730802d", "equity": 99365571, "ret": -0.63}, {"id": "v49", "ph": "cdba73e0", "equity": 99355488, "ret": -0.64}, {"id": "v51", "ph": "21a98e46", "equity": 99355488, "ret": -0.64}, {"id": "v87", "ph": "c0be98c0", "equity": 99018741, "ret": -0.98}, {"id": "v93", "ph": "f10d4e45", "equity": 99018741, "ret": -0.98}, {"id": "v103", "ph": "75b0a37c", "equity": 99018741, "ret": -0.98}, {"id": "v195", "ph": "dd89cf59", "equity": 99018741, "ret": -0.98}, {"id": "v197", "ph": "5c290a32", "equity": 99018741, "ret": -0.98}, {"id": "v201", "ph": "cb8a413e", "equity": 99018741, "ret": -0.98}, {"id": "v205", "ph": "02e5a3f5", "equity": 99018741, "ret": -0.98}, {"id": "v211", "ph": "9227673c", "equity": 99018741, "ret": -0.98}, {"id": "v217", "ph": "4c547a61", "equity": 99002738, "ret": -1.0}, {"id": "v218", "ph": "7304d2d4", "equity": 99002738, "ret": -1.0}, {"id": "v223", "ph": "b57356b8", "equity": 98930370, "ret": -1.07}, {"id": "v224", "ph": "888ab069", "equity": 98930370, "ret": -1.07}, {"id": "v229", "ph": "d9261dfb", "equity": 98930370, "ret": -1.07}, {"id": "v230", "ph": "141579fe", "equity": 98930370, "ret": -1.07}, {"id": "v235", "ph": "3e6c1666", "equity": 98930370, "ret": -1.07}, {"id": "v236", "ph": "f9c75560", "equity": 98930370, "ret": -1.07}, {"id": "v265", "ph": "7faed59d", "equity": 98930370, "ret": -1.07}, {"id": "v266", "ph": "c133b585", "equity": 98930370, "ret": -1.07}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98930370, "ret": -1.07}, {"id": "v272", "ph": "2ed2027f", "equity": 98930370, "ret": -1.07}, {"id": "v277", "ph": "488b612a", "equity": 98930370, "ret": -1.07}, {"id": "v278", "ph": "861fb42b", "equity": 98930370, "ret": -1.07}, {"id": "v283", "ph": "479e4b25", "equity": 98930370, "ret": -1.07}, {"id": "v284", "ph": "261c5d58", "equity": 98930370, "ret": -1.07}, {"id": "v57", "ph": "e7e98b6d", "equity": 98879376, "ret": -1.12}, {"id": "v59", "ph": "1858e2ec", "equity": 98879376, "ret": -1.12}, {"id": "v157", "ph": "80f3e23b", "equity": 98883246, "ret": -1.12}, {"id": "v159", "ph": "af80c67a", "equity": 98883246, "ret": -1.12}, {"id": "v161", "ph": "ed5677e6", "equity": 98879376, "ret": -1.12}, {"id": "v165", "ph": "8f862b27", "equity": 98879376, "ret": -1.12}, {"id": "v167", "ph": "b6d6aed8", "equity": 98879376, "ret": -1.12}, {"id": "v302", "ph": "3f30502d", "equity": 98829145, "ret": -1.17}, {"id": "v107", "ph": "be5cd36b", "equity": 98682584, "ret": -1.32}, {"id": "v213", "ph": "0e1d8e45", "equity": 98682584, "ret": -1.32}, {"id": "v215", "ph": "a904a49d", "equity": 98682584, "ret": -1.32}, {"id": "v89", "ph": "c49d5680", "equity": 98634536, "ret": -1.37}, {"id": "v97", "ph": "ebf31977", "equity": 98634536, "ret": -1.37}, {"id": "v318", "ph": "c99872ef", "equity": 98484983, "ret": -1.52}, {"id": "v105", "ph": "88395429", "equity": 98446363, "ret": -1.55}, {"id": "v310", "ph": "ec9dd55c", "equity": 98385145, "ret": -1.61}, {"id": "v301", "ph": "30da2021", "equity": 98256277, "ret": -1.74}, {"id": "v155", "ph": "31c0d84e", "equity": 98161814, "ret": -1.84}, {"id": "v1", "ph": "4874f4c9", "equity": 97995717, "ret": -2.0}, {"id": "v47", "ph": "ed758fcf", "equity": 97925592, "ret": -2.07}, {"id": "v311", "ph": "8409c6e5", "equity": 97922048, "ret": -2.08}, {"id": "v147", "ph": "2fbeeedb", "equity": 97833766, "ret": -2.17}, {"id": "v149", "ph": "c5329f8d", "equity": 97833766, "ret": -2.17}, {"id": "v151", "ph": "2eb1dd06", "equity": 97833766, "ret": -2.17}, {"id": "v303", "ph": "1a084164", "equity": 97432486, "ret": -2.57}, {"id": "v312", "ph": "4c23846f", "equity": 96768473, "ret": -3.23}, {"id": "v41", "ph": "e9d84e84", "equity": 96633673, "ret": -3.37}, {"id": "v309", "ph": "07610040", "equity": 96389485, "ret": -3.61}, {"id": "v4", "ph": "b6219595", "equity": 96036004, "ret": -3.96}, {"id": "v40", "ph": "70731d89", "equity": 95687271, "ret": -4.31}, {"id": "v296", "ph": "4c554378", "equity": 95071919, "ret": -4.93}, {"id": "v300", "ph": "c6ddc17b", "equity": 93918078, "ret": -6.08}, {"id": "v299", "ph": "25046b1a", "equity": 93683292, "ret": -6.32}, {"id": "v298", "ph": "5d4bbec0", "equity": 92518385, "ret": -7.48}], "20260624": [{"id": "v321", "ph": "e82de49b", "equity": 100085854, "ret": 0.09}, {"id": "v317", "ph": "51f8ee6d", "equity": 100060486, "ret": 0.06}, {"id": "v306", "ph": "6966b8f6", "equity": 100000522, "ret": 0.0}, {"id": "v315", "ph": "e6d5b283", "equity": 99883355, "ret": -0.12}, {"id": "v313", "ph": "b9f4ee72", "equity": 99826917, "ret": -0.17}, {"id": "v307", "ph": "6abce93d", "equity": 99802993, "ret": -0.2}, {"id": "v314", "ph": "7511570e", "equity": 99792429, "ret": -0.21}, {"id": "v91", "ph": "5674a3d7", "equity": 99663265, "ret": -0.34}, {"id": "v81", "ph": "a6eac1e4", "equity": 99636149, "ret": -0.36}, {"id": "v95", "ph": "7e28e756", "equity": 99636149, "ret": -0.36}, {"id": "v308", "ph": "cb12dd0b", "equity": 99546904, "ret": -0.45}, {"id": "v304", "ph": "96c7e8e1", "equity": 99355993, "ret": -0.64}, {"id": "v319", "ph": "ca25f043", "equity": 99288100, "ret": -0.71}, {"id": "v316", "ph": "8dc1d197", "equity": 99193213, "ret": -0.81}, {"id": "v305", "ph": "8cc4eea6", "equity": 99183211, "ret": -0.82}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99163907, "ret": -0.84}, {"id": "v203", "ph": "2071defa", "equity": 99163907, "ret": -0.84}, {"id": "v99", "ph": "fb39409b", "equity": 99152577, "ret": -0.85}, {"id": "v101", "ph": "c4354346", "equity": 99152577, "ret": -0.85}, {"id": "v199", "ph": "390bfab3", "equity": 99152577, "ret": -0.85}, {"id": "v207", "ph": "0f6601a0", "equity": 99152577, "ret": -0.85}, {"id": "v209", "ph": "8730802d", "equity": 99152577, "ret": -0.85}, {"id": "v49", "ph": "cdba73e0", "equity": 99115378, "ret": -0.88}, {"id": "v51", "ph": "21a98e46", "equity": 99115378, "ret": -0.88}, {"id": "v320", "ph": "48d6a9ef", "equity": 99096561, "ret": -0.9}, {"id": "v87", "ph": "c0be98c0", "equity": 99066109, "ret": -0.93}, {"id": "v93", "ph": "f10d4e45", "equity": 99066109, "ret": -0.93}, {"id": "v103", "ph": "75b0a37c", "equity": 99066109, "ret": -0.93}, {"id": "v197", "ph": "5c290a32", "equity": 99066109, "ret": -0.93}, {"id": "v205", "ph": "02e5a3f5", "equity": 99066109, "ret": -0.93}, {"id": "v195", "ph": "dd89cf59", "equity": 98899102, "ret": -1.1}, {"id": "v201", "ph": "cb8a413e", "equity": 98899102, "ret": -1.1}, {"id": "v211", "ph": "9227673c", "equity": 98899102, "ret": -1.1}, {"id": "v107", "ph": "be5cd36b", "equity": 98777904, "ret": -1.22}, {"id": "v213", "ph": "0e1d8e45", "equity": 98777904, "ret": -1.22}, {"id": "v57", "ph": "e7e98b6d", "equity": 98666382, "ret": -1.33}, {"id": "v59", "ph": "1858e2ec", "equity": 98666382, "ret": -1.33}, {"id": "v161", "ph": "ed5677e6", "equity": 98666382, "ret": -1.33}, {"id": "v165", "ph": "8f862b27", "equity": 98666382, "ret": -1.33}, {"id": "v167", "ph": "b6d6aed8", "equity": 98666382, "ret": -1.33}, {"id": "v217", "ph": "4c547a61", "equity": 98672158, "ret": -1.33}, {"id": "v218", "ph": "7304d2d4", "equity": 98672158, "ret": -1.33}, {"id": "v157", "ph": "80f3e23b", "equity": 98643136, "ret": -1.36}, {"id": "v159", "ph": "af80c67a", "equity": 98643136, "ret": -1.36}, {"id": "v89", "ph": "c49d5680", "equity": 98615759, "ret": -1.38}, {"id": "v97", "ph": "ebf31977", "equity": 98615759, "ret": -1.38}, {"id": "v105", "ph": "88395429", "equity": 98597406, "ret": -1.4}, {"id": "v223", "ph": "b57356b8", "equity": 98599790, "ret": -1.4}, {"id": "v224", "ph": "888ab069", "equity": 98599790, "ret": -1.4}, {"id": "v229", "ph": "d9261dfb", "equity": 98599790, "ret": -1.4}, {"id": "v230", "ph": "141579fe", "equity": 98599790, "ret": -1.4}, {"id": "v235", "ph": "3e6c1666", "equity": 98599790, "ret": -1.4}, {"id": "v236", "ph": "f9c75560", "equity": 98599790, "ret": -1.4}, {"id": "v265", "ph": "7faed59d", "equity": 98599790, "ret": -1.4}, {"id": "v266", "ph": "c133b585", "equity": 98599790, "ret": -1.4}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98599790, "ret": -1.4}, {"id": "v272", "ph": "2ed2027f", "equity": 98599790, "ret": -1.4}, {"id": "v277", "ph": "488b612a", "equity": 98599790, "ret": -1.4}, {"id": "v278", "ph": "861fb42b", "equity": 98599790, "ret": -1.4}, {"id": "v283", "ph": "479e4b25", "equity": 98599790, "ret": -1.4}, {"id": "v284", "ph": "261c5d58", "equity": 98599790, "ret": -1.4}, {"id": "v215", "ph": "a904a49d", "equity": 98584893, "ret": -1.42}, {"id": "v302", "ph": "3f30502d", "equity": 98415182, "ret": -1.58}, {"id": "v155", "ph": "31c0d84e", "equity": 98262712, "ret": -1.74}, {"id": "v47", "ph": "ed758fcf", "equity": 98075491, "ret": -1.92}, {"id": "v318", "ph": "c99872ef", "equity": 98060011, "ret": -1.94}, {"id": "v147", "ph": "2fbeeedb", "equity": 97921225, "ret": -2.08}, {"id": "v149", "ph": "c5329f8d", "equity": 97921225, "ret": -2.08}, {"id": "v151", "ph": "2eb1dd06", "equity": 97921225, "ret": -2.08}, {"id": "v311", "ph": "8409c6e5", "equity": 97891655, "ret": -2.11}, {"id": "v301", "ph": "30da2021", "equity": 97750914, "ret": -2.25}, {"id": "v310", "ph": "ec9dd55c", "equity": 97639577, "ret": -2.36}, {"id": "v1", "ph": "4874f4c9", "equity": 97475814, "ret": -2.52}, {"id": "v303", "ph": "1a084164", "equity": 97118111, "ret": -2.88}, {"id": "v41", "ph": "e9d84e84", "equity": 96580621, "ret": -3.42}, {"id": "v4", "ph": "b6219595", "equity": 95980663, "ret": -4.02}, {"id": "v312", "ph": "4c23846f", "equity": 95969821, "ret": -4.03}, {"id": "v309", "ph": "07610040", "equity": 95955384, "ret": -4.04}, {"id": "v40", "ph": "70731d89", "equity": 95748230, "ret": -4.25}, {"id": "v296", "ph": "4c554378", "equity": 94163911, "ret": -5.84}, {"id": "v300", "ph": "c6ddc17b", "equity": 93696621, "ret": -6.3}, {"id": "v299", "ph": "25046b1a", "equity": 93194033, "ret": -6.81}, {"id": "v298", "ph": "5d4bbec0", "equity": 92404552, "ret": -7.6}], "20260625": [{"id": "v317", "ph": "51f8ee6d", "equity": 99993632, "ret": -0.01}, {"id": "v321", "ph": "e82de49b", "equity": 99982218, "ret": -0.02}, {"id": "v315", "ph": "e6d5b283", "equity": 99958954, "ret": -0.04}, {"id": "v306", "ph": "6966b8f6", "equity": 99920351, "ret": -0.08}, {"id": "v314", "ph": "7511570e", "equity": 99898729, "ret": -0.1}, {"id": "v313", "ph": "b9f4ee72", "equity": 99812686, "ret": -0.19}, {"id": "v81", "ph": "a6eac1e4", "equity": 99778449, "ret": -0.22}, {"id": "v91", "ph": "5674a3d7", "equity": 99775565, "ret": -0.22}, {"id": "v95", "ph": "7e28e756", "equity": 99778449, "ret": -0.22}, {"id": "v307", "ph": "6abce93d", "equity": 99783177, "ret": -0.22}, {"id": "v308", "ph": "cb12dd0b", "equity": 99549413, "ret": -0.45}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99326774, "ret": -0.67}, {"id": "v203", "ph": "2071defa", "equity": 99326774, "ret": -0.67}, {"id": "v199", "ph": "390bfab3", "equity": 99282766, "ret": -0.72}, {"id": "v207", "ph": "0f6601a0", "equity": 99282766, "ret": -0.72}, {"id": "v209", "ph": "8730802d", "equity": 99282766, "ret": -0.72}, {"id": "v49", "ph": "cdba73e0", "equity": 99257678, "ret": -0.74}, {"id": "v51", "ph": "21a98e46", "equity": 99257678, "ret": -0.74}, {"id": "v99", "ph": "fb39409b", "equity": 99264877, "ret": -0.74}, {"id": "v101", "ph": "c4354346", "equity": 99264877, "ret": -0.74}, {"id": "v319", "ph": "ca25f043", "equity": 99151697, "ret": -0.85}, {"id": "v304", "ph": "96c7e8e1", "equity": 99087927, "ret": -0.91}, {"id": "v316", "ph": "8dc1d197", "equity": 99064791, "ret": -0.94}, {"id": "v197", "ph": "5c290a32", "equity": 99022763, "ret": -0.98}, {"id": "v205", "ph": "02e5a3f5", "equity": 99022763, "ret": -0.98}, {"id": "v87", "ph": "c0be98c0", "equity": 99004874, "ret": -1.0}, {"id": "v93", "ph": "f10d4e45", "equity": 99004874, "ret": -1.0}, {"id": "v103", "ph": "75b0a37c", "equity": 99004874, "ret": -1.0}, {"id": "v320", "ph": "48d6a9ef", "equity": 98966439, "ret": -1.03}, {"id": "v305", "ph": "8cc4eea6", "equity": 98834032, "ret": -1.17}, {"id": "v157", "ph": "80f3e23b", "equity": 98805812, "ret": -1.19}, {"id": "v159", "ph": "af80c67a", "equity": 98805812, "ret": -1.19}, {"id": "v161", "ph": "ed5677e6", "equity": 98796476, "ret": -1.2}, {"id": "v165", "ph": "8f862b27", "equity": 98796476, "ret": -1.2}, {"id": "v167", "ph": "b6d6aed8", "equity": 98796476, "ret": -1.2}, {"id": "v195", "ph": "dd89cf59", "equity": 98801518, "ret": -1.2}, {"id": "v201", "ph": "cb8a413e", "equity": 98801518, "ret": -1.2}, {"id": "v211", "ph": "9227673c", "equity": 98801518, "ret": -1.2}, {"id": "v57", "ph": "e7e98b6d", "equity": 98778682, "ret": -1.22}, {"id": "v59", "ph": "1858e2ec", "equity": 98778682, "ret": -1.22}, {"id": "v89", "ph": "c49d5680", "equity": 98647719, "ret": -1.35}, {"id": "v97", "ph": "ebf31977", "equity": 98647719, "ret": -1.35}, {"id": "v302", "ph": "3f30502d", "equity": 98641582, "ret": -1.36}, {"id": "v217", "ph": "4c547a61", "equity": 98614246, "ret": -1.39}, {"id": "v218", "ph": "7304d2d4", "equity": 98614246, "ret": -1.39}, {"id": "v213", "ph": "0e1d8e45", "equity": 98585038, "ret": -1.41}, {"id": "v107", "ph": "be5cd36b", "equity": 98564470, "ret": -1.44}, {"id": "v223", "ph": "b57356b8", "equity": 98541878, "ret": -1.46}, {"id": "v224", "ph": "888ab069", "equity": 98541878, "ret": -1.46}, {"id": "v229", "ph": "d9261dfb", "equity": 98541878, "ret": -1.46}, {"id": "v230", "ph": "141579fe", "equity": 98541878, "ret": -1.46}, {"id": "v235", "ph": "3e6c1666", "equity": 98541878, "ret": -1.46}, {"id": "v236", "ph": "f9c75560", "equity": 98541878, "ret": -1.46}, {"id": "v265", "ph": "7faed59d", "equity": 98541878, "ret": -1.46}, {"id": "v266", "ph": "c133b585", "equity": 98541878, "ret": -1.46}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98541878, "ret": -1.46}, {"id": "v272", "ph": "2ed2027f", "equity": 98541878, "ret": -1.46}, {"id": "v277", "ph": "488b612a", "equity": 98541878, "ret": -1.46}, {"id": "v278", "ph": "861fb42b", "equity": 98541878, "ret": -1.46}, {"id": "v283", "ph": "479e4b25", "equity": 98541878, "ret": -1.46}, {"id": "v284", "ph": "261c5d58", "equity": 98541878, "ret": -1.46}, {"id": "v318", "ph": "c99872ef", "equity": 98448234, "ret": -1.55}, {"id": "v105", "ph": "88395429", "equity": 98368172, "ret": -1.63}, {"id": "v215", "ph": "a904a49d", "equity": 98337789, "ret": -1.66}, {"id": "v155", "ph": "31c0d84e", "equity": 98064390, "ret": -1.94}, {"id": "v301", "ph": "30da2021", "equity": 97971314, "ret": -2.03}, {"id": "v310", "ph": "ec9dd55c", "equity": 97969177, "ret": -2.03}, {"id": "v47", "ph": "ed758fcf", "equity": 97846897, "ret": -2.15}, {"id": "v147", "ph": "2fbeeedb", "equity": 97810659, "ret": -2.19}, {"id": "v149", "ph": "c5329f8d", "equity": 97810659, "ret": -2.19}, {"id": "v151", "ph": "2eb1dd06", "equity": 97810659, "ret": -2.19}, {"id": "v1", "ph": "4874f4c9", "equity": 97699714, "ret": -2.3}, {"id": "v311", "ph": "8409c6e5", "equity": 97612070, "ret": -2.39}, {"id": "v40", "ph": "70731d89", "equity": 97128790, "ret": -2.87}, {"id": "v312", "ph": "4c23846f", "equity": 97086568, "ret": -2.91}, {"id": "v303", "ph": "1a084164", "equity": 97078943, "ret": -2.92}, {"id": "v41", "ph": "e9d84e84", "equity": 96647542, "ret": -3.35}, {"id": "v309", "ph": "07610040", "equity": 96637545, "ret": -3.36}, {"id": "v4", "ph": "b6219595", "equity": 96048864, "ret": -3.95}, {"id": "v296", "ph": "4c554378", "equity": 95720669, "ret": -4.28}, {"id": "v299", "ph": "25046b1a", "equity": 95394672, "ret": -4.61}, {"id": "v300", "ph": "c6ddc17b", "equity": 94713522, "ret": -5.29}, {"id": "v298", "ph": "5d4bbec0", "equity": 94020155, "ret": -5.98}], "20260626": [{"id": "v314", "ph": "7511570e", "equity": 99900880, "ret": -0.1}, {"id": "v315", "ph": "e6d5b283", "equity": 99816609, "ret": -0.18}, {"id": "v81", "ph": "a6eac1e4", "equity": 99807451, "ret": -0.19}, {"id": "v95", "ph": "7e28e756", "equity": 99807451, "ret": -0.19}, {"id": "v321", "ph": "e82de49b", "equity": 99813711, "ret": -0.19}, {"id": "v91", "ph": "5674a3d7", "equity": 99782191, "ret": -0.22}, {"id": "v313", "ph": "b9f4ee72", "equity": 99685397, "ret": -0.31}, {"id": "v307", "ph": "6abce93d", "equity": 99640613, "ret": -0.36}, {"id": "v306", "ph": "6966b8f6", "equity": 99583813, "ret": -0.42}, {"id": "v317", "ph": "51f8ee6d", "equity": 99551515, "ret": -0.45}, {"id": "v49", "ph": "cdba73e0", "equity": 99286680, "ret": -0.71}, {"id": "v51", "ph": "21a98e46", "equity": 99286680, "ret": -0.71}, {"id": "v308", "ph": "cb12dd0b", "equity": 99293485, "ret": -0.71}, {"id": "v99", "ph": "fb39409b", "equity": 99271503, "ret": -0.73}, {"id": "v101", "ph": "c4354346", "equity": 99271503, "ret": -0.73}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99108526, "ret": -0.89}, {"id": "v203", "ph": "2071defa", "equity": 99108526, "ret": -0.89}, {"id": "v199", "ph": "390bfab3", "equity": 99074342, "ret": -0.93}, {"id": "v207", "ph": "0f6601a0", "equity": 99074342, "ret": -0.93}, {"id": "v209", "ph": "8730802d", "equity": 99074342, "ret": -0.93}, {"id": "v87", "ph": "c0be98c0", "equity": 98896181, "ret": -1.1}, {"id": "v93", "ph": "f10d4e45", "equity": 98896181, "ret": -1.1}, {"id": "v103", "ph": "75b0a37c", "equity": 98896181, "ret": -1.1}, {"id": "v319", "ph": "ca25f043", "equity": 98901880, "ret": -1.1}, {"id": "v304", "ph": "96c7e8e1", "equity": 98807436, "ret": -1.19}, {"id": "v57", "ph": "e7e98b6d", "equity": 98785308, "ret": -1.21}, {"id": "v59", "ph": "1858e2ec", "equity": 98785308, "ret": -1.21}, {"id": "v316", "ph": "8dc1d197", "equity": 98720505, "ret": -1.28}, {"id": "v197", "ph": "5c290a32", "equity": 98699020, "ret": -1.3}, {"id": "v205", "ph": "02e5a3f5", "equity": 98699020, "ret": -1.3}, {"id": "v302", "ph": "3f30502d", "equity": 98665893, "ret": -1.33}, {"id": "v157", "ph": "80f3e23b", "equity": 98589864, "ret": -1.41}, {"id": "v159", "ph": "af80c67a", "equity": 98589864, "ret": -1.41}, {"id": "v161", "ph": "ed5677e6", "equity": 98589202, "ret": -1.41}, {"id": "v165", "ph": "8f862b27", "equity": 98589202, "ret": -1.41}, {"id": "v167", "ph": "b6d6aed8", "equity": 98589202, "ret": -1.41}, {"id": "v320", "ph": "48d6a9ef", "equity": 98583273, "ret": -1.42}, {"id": "v89", "ph": "c49d5680", "equity": 98542206, "ret": -1.46}, {"id": "v97", "ph": "ebf31977", "equity": 98542206, "ret": -1.46}, {"id": "v195", "ph": "dd89cf59", "equity": 98454369, "ret": -1.55}, {"id": "v201", "ph": "cb8a413e", "equity": 98454369, "ret": -1.55}, {"id": "v211", "ph": "9227673c", "equity": 98454369, "ret": -1.55}, {"id": "v305", "ph": "8cc4eea6", "equity": 98401081, "ret": -1.6}, {"id": "v217", "ph": "4c547a61", "equity": 98351778, "ret": -1.65}, {"id": "v218", "ph": "7304d2d4", "equity": 98351778, "ret": -1.65}, {"id": "v223", "ph": "b57356b8", "equity": 98279410, "ret": -1.72}, {"id": "v224", "ph": "888ab069", "equity": 98279410, "ret": -1.72}, {"id": "v229", "ph": "d9261dfb", "equity": 98279410, "ret": -1.72}, {"id": "v230", "ph": "141579fe", "equity": 98279410, "ret": -1.72}, {"id": "v235", "ph": "3e6c1666", "equity": 98279410, "ret": -1.72}, {"id": "v236", "ph": "f9c75560", "equity": 98279410, "ret": -1.72}, {"id": "v265", "ph": "7faed59d", "equity": 98279410, "ret": -1.72}, {"id": "v266", "ph": "c133b585", "equity": 98279410, "ret": -1.72}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98279410, "ret": -1.72}, {"id": "v272", "ph": "2ed2027f", "equity": 98279410, "ret": -1.72}, {"id": "v277", "ph": "488b612a", "equity": 98279410, "ret": -1.72}, {"id": "v278", "ph": "861fb42b", "equity": 98279410, "ret": -1.72}, {"id": "v283", "ph": "479e4b25", "equity": 98279410, "ret": -1.72}, {"id": "v284", "ph": "261c5d58", "equity": 98279410, "ret": -1.72}, {"id": "v105", "ph": "88395429", "equity": 98222164, "ret": -1.78}, {"id": "v107", "ph": "be5cd36b", "equity": 98198994, "ret": -1.8}, {"id": "v301", "ph": "30da2021", "equity": 97988925, "ret": -2.01}, {"id": "v213", "ph": "0e1d8e45", "equity": 97972312, "ret": -2.03}, {"id": "v1", "ph": "4874f4c9", "equity": 97711838, "ret": -2.29}, {"id": "v47", "ph": "ed758fcf", "equity": 97704069, "ret": -2.3}, {"id": "v215", "ph": "a904a49d", "equity": 97701657, "ret": -2.3}, {"id": "v155", "ph": "31c0d84e", "equity": 97449295, "ret": -2.55}, {"id": "v318", "ph": "c99872ef", "equity": 97391096, "ret": -2.61}, {"id": "v147", "ph": "2fbeeedb", "equity": 97369471, "ret": -2.63}, {"id": "v149", "ph": "c5329f8d", "equity": 97369471, "ret": -2.63}, {"id": "v151", "ph": "2eb1dd06", "equity": 97369471, "ret": -2.63}, {"id": "v311", "ph": "8409c6e5", "equity": 96938905, "ret": -3.06}, {"id": "v303", "ph": "1a084164", "equity": 96838921, "ret": -3.16}, {"id": "v310", "ph": "ec9dd55c", "equity": 96814041, "ret": -3.19}, {"id": "v41", "ph": "e9d84e84", "equity": 96436419, "ret": -3.56}, {"id": "v40", "ph": "70731d89", "equity": 96034565, "ret": -3.97}, {"id": "v309", "ph": "07610040", "equity": 95970701, "ret": -4.03}, {"id": "v4", "ph": "b6219595", "equity": 95844101, "ret": -4.16}, {"id": "v312", "ph": "4c23846f", "equity": 94932436, "ret": -5.07}, {"id": "v296", "ph": "4c554378", "equity": 93944044, "ret": -6.06}, {"id": "v300", "ph": "c6ddc17b", "equity": 93694239, "ret": -6.31}, {"id": "v298", "ph": "5d4bbec0", "equity": 92024557, "ret": -7.98}, {"id": "v299", "ph": "25046b1a", "equity": 91806294, "ret": -8.19}], "20260629": [{"id": "v306", "ph": "6966b8f6", "equity": 100300459, "ret": 0.3}, {"id": "v321", "ph": "e82de49b", "equity": 100189547, "ret": 0.19}, {"id": "v308", "ph": "cb12dd0b", "equity": 99999961, "ret": -0.0}, {"id": "v314", "ph": "7511570e", "equity": 99813480, "ret": -0.19}, {"id": "v313", "ph": "b9f4ee72", "equity": 99730074, "ret": -0.27}, {"id": "v307", "ph": "6abce93d", "equity": 99697202, "ret": -0.3}, {"id": "v317", "ph": "51f8ee6d", "equity": 99696555, "ret": -0.3}, {"id": "v91", "ph": "5674a3d7", "equity": 99687191, "ret": -0.31}, {"id": "v81", "ph": "a6eac1e4", "equity": 99674451, "ret": -0.33}, {"id": "v95", "ph": "7e28e756", "equity": 99674451, "ret": -0.33}, {"id": "v315", "ph": "e6d5b283", "equity": 99654810, "ret": -0.35}, {"id": "v87", "ph": "c0be98c0", "equity": 99491935, "ret": -0.51}, {"id": "v93", "ph": "f10d4e45", "equity": 99491935, "ret": -0.51}, {"id": "v103", "ph": "75b0a37c", "equity": 99491935, "ret": -0.51}, {"id": "v197", "ph": "5c290a32", "equity": 99388275, "ret": -0.61}, {"id": "v205", "ph": "02e5a3f5", "equity": 99388275, "ret": -0.61}, {"id": "v99", "ph": "fb39409b", "equity": 99176503, "ret": -0.82}, {"id": "v101", "ph": "c4354346", "equity": 99176503, "ret": -0.82}, {"id": "v49", "ph": "cdba73e0", "equity": 99153680, "ret": -0.85}, {"id": "v51", "ph": "21a98e46", "equity": 99153680, "ret": -0.85}, {"id": "v195", "ph": "dd89cf59", "equity": 99143624, "ret": -0.86}, {"id": "v201", "ph": "cb8a413e", "equity": 99143624, "ret": -0.86}, {"id": "v211", "ph": "9227673c", "equity": 99143624, "ret": -0.86}, {"id": "v89", "ph": "c49d5680", "equity": 99133820, "ret": -0.87}, {"id": "v97", "ph": "ebf31977", "equity": 99133820, "ret": -0.87}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99083026, "ret": -0.92}, {"id": "v203", "ph": "2071defa", "equity": 99083026, "ret": -0.92}, {"id": "v199", "ph": "390bfab3", "equity": 99072842, "ret": -0.93}, {"id": "v207", "ph": "0f6601a0", "equity": 99072842, "ret": -0.93}, {"id": "v209", "ph": "8730802d", "equity": 99072842, "ret": -0.93}, {"id": "v319", "ph": "ca25f043", "equity": 99052498, "ret": -0.95}, {"id": "v105", "ph": "88395429", "equity": 99012940, "ret": -0.99}, {"id": "v107", "ph": "be5cd36b", "equity": 98985970, "ret": -1.01}, {"id": "v316", "ph": "8dc1d197", "equity": 98925942, "ret": -1.07}, {"id": "v304", "ph": "96c7e8e1", "equity": 98923153, "ret": -1.08}, {"id": "v213", "ph": "0e1d8e45", "equity": 98866788, "ret": -1.13}, {"id": "v320", "ph": "48d6a9ef", "equity": 98801732, "ret": -1.2}, {"id": "v305", "ph": "8cc4eea6", "equity": 98794030, "ret": -1.21}, {"id": "v57", "ph": "e7e98b6d", "equity": 98690308, "ret": -1.31}, {"id": "v59", "ph": "1858e2ec", "equity": 98690308, "ret": -1.31}, {"id": "v147", "ph": "2fbeeedb", "equity": 98693892, "ret": -1.31}, {"id": "v149", "ph": "c5329f8d", "equity": 98693892, "ret": -1.31}, {"id": "v151", "ph": "2eb1dd06", "equity": 98693892, "ret": -1.31}, {"id": "v215", "ph": "a904a49d", "equity": 98596133, "ret": -1.4}, {"id": "v161", "ph": "ed5677e6", "equity": 98587202, "ret": -1.41}, {"id": "v165", "ph": "8f862b27", "equity": 98587202, "ret": -1.41}, {"id": "v167", "ph": "b6d6aed8", "equity": 98587202, "ret": -1.41}, {"id": "v157", "ph": "80f3e23b", "equity": 98563364, "ret": -1.44}, {"id": "v159", "ph": "af80c67a", "equity": 98563364, "ret": -1.44}, {"id": "v302", "ph": "3f30502d", "equity": 98543843, "ret": -1.46}, {"id": "v47", "ph": "ed758fcf", "equity": 98490705, "ret": -1.51}, {"id": "v217", "ph": "4c547a61", "equity": 98406867, "ret": -1.59}, {"id": "v218", "ph": "7304d2d4", "equity": 98406867, "ret": -1.59}, {"id": "v155", "ph": "31c0d84e", "equity": 98342931, "ret": -1.66}, {"id": "v223", "ph": "b57356b8", "equity": 98334499, "ret": -1.67}, {"id": "v224", "ph": "888ab069", "equity": 98334499, "ret": -1.67}, {"id": "v229", "ph": "d9261dfb", "equity": 98334499, "ret": -1.67}, {"id": "v230", "ph": "141579fe", "equity": 98334499, "ret": -1.67}, {"id": "v235", "ph": "3e6c1666", "equity": 98334499, "ret": -1.67}, {"id": "v236", "ph": "f9c75560", "equity": 98334499, "ret": -1.67}, {"id": "v265", "ph": "7faed59d", "equity": 98334499, "ret": -1.67}, {"id": "v266", "ph": "c133b585", "equity": 98334499, "ret": -1.67}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98334499, "ret": -1.67}, {"id": "v272", "ph": "2ed2027f", "equity": 98334499, "ret": -1.67}, {"id": "v277", "ph": "488b612a", "equity": 98334499, "ret": -1.67}, {"id": "v278", "ph": "861fb42b", "equity": 98334499, "ret": -1.67}, {"id": "v283", "ph": "479e4b25", "equity": 98334499, "ret": -1.67}, {"id": "v284", "ph": "261c5d58", "equity": 98334499, "ret": -1.67}, {"id": "v301", "ph": "30da2021", "equity": 97870675, "ret": -2.13}, {"id": "v41", "ph": "e9d84e84", "equity": 97642337, "ret": -2.36}, {"id": "v1", "ph": "4874f4c9", "equity": 97618226, "ret": -2.38}, {"id": "v4", "ph": "b6219595", "equity": 97133478, "ret": -2.87}, {"id": "v40", "ph": "70731d89", "equity": 97128027, "ret": -2.87}, {"id": "v303", "ph": "1a084164", "equity": 96941008, "ret": -3.06}, {"id": "v310", "ph": "ec9dd55c", "equity": 96874396, "ret": -3.13}, {"id": "v318", "ph": "c99872ef", "equity": 96778920, "ret": -3.22}, {"id": "v311", "ph": "8409c6e5", "equity": 96345178, "ret": -3.65}, {"id": "v309", "ph": "07610040", "equity": 95447771, "ret": -4.55}, {"id": "v300", "ph": "c6ddc17b", "equity": 94255949, "ret": -5.74}, {"id": "v296", "ph": "4c554378", "equity": 93871964, "ret": -6.13}, {"id": "v312", "ph": "4c23846f", "equity": 93604983, "ret": -6.4}, {"id": "v298", "ph": "5d4bbec0", "equity": 91385783, "ret": -8.61}, {"id": "v299", "ph": "25046b1a", "equity": 91015801, "ret": -8.98}], "20260630": [{"id": "v308", "ph": "cb12dd0b", "equity": 102469206, "ret": 2.47}, {"id": "v147", "ph": "2fbeeedb", "equity": 102192163, "ret": 2.19}, {"id": "v149", "ph": "c5329f8d", "equity": 102192163, "ret": 2.19}, {"id": "v151", "ph": "2eb1dd06", "equity": 102192163, "ret": 2.19}, {"id": "v306", "ph": "6966b8f6", "equity": 102132719, "ret": 2.13}, {"id": "v40", "ph": "70731d89", "equity": 101679673, "ret": 1.68}, {"id": "v321", "ph": "e82de49b", "equity": 101535047, "ret": 1.54}, {"id": "v41", "ph": "e9d84e84", "equity": 101160969, "ret": 1.16}, {"id": "v105", "ph": "88395429", "equity": 101130434, "ret": 1.13}, {"id": "v107", "ph": "be5cd36b", "equity": 101112564, "ret": 1.11}, {"id": "v87", "ph": "c0be98c0", "equity": 101073595, "ret": 1.07}, {"id": "v93", "ph": "f10d4e45", "equity": 101073595, "ret": 1.07}, {"id": "v103", "ph": "75b0a37c", "equity": 101073595, "ret": 1.07}, {"id": "v47", "ph": "ed758fcf", "equity": 100911006, "ret": 0.91}, {"id": "v4", "ph": "b6219595", "equity": 100843214, "ret": 0.84}, {"id": "v197", "ph": "5c290a32", "equity": 100829685, "ret": 0.83}, {"id": "v205", "ph": "02e5a3f5", "equity": 100829685, "ret": 0.83}, {"id": "v213", "ph": "0e1d8e45", "equity": 100832132, "ret": 0.83}, {"id": "v89", "ph": "c49d5680", "equity": 100713689, "ret": 0.71}, {"id": "v97", "ph": "ebf31977", "equity": 100713689, "ret": 0.71}, {"id": "v155", "ph": "31c0d84e", "equity": 100602732, "ret": 0.6}, {"id": "v195", "ph": "dd89cf59", "equity": 100586342, "ret": 0.59}, {"id": "v201", "ph": "cb8a413e", "equity": 100586342, "ret": 0.59}, {"id": "v211", "ph": "9227673c", "equity": 100586342, "ret": 0.59}, {"id": "v215", "ph": "a904a49d", "equity": 100561477, "ret": 0.56}, {"id": "v317", "ph": "51f8ee6d", "equity": 100498339, "ret": 0.5}, {"id": "v315", "ph": "e6d5b283", "equity": 100458935, "ret": 0.46}, {"id": "v314", "ph": "7511570e", "equity": 100173078, "ret": 0.17}, {"id": "v81", "ph": "a6eac1e4", "equity": 99935386, "ret": -0.06}, {"id": "v95", "ph": "7e28e756", "equity": 99935386, "ret": -0.06}, {"id": "v91", "ph": "5674a3d7", "equity": 99861051, "ret": -0.14}, {"id": "v307", "ph": "6abce93d", "equity": 99777709, "ret": -0.22}, {"id": "v305", "ph": "8cc4eea6", "equity": 99743065, "ret": -0.26}, {"id": "v313", "ph": "b9f4ee72", "equity": 99742527, "ret": -0.26}, {"id": "v49", "ph": "cdba73e0", "equity": 99721831, "ret": -0.28}, {"id": "v51", "ph": "21a98e46", "equity": 99721831, "ret": -0.28}, {"id": "v316", "ph": "8dc1d197", "equity": 99373992, "ret": -0.63}, {"id": "v302", "ph": "3f30502d", "equity": 99359071, "ret": -0.64}, {"id": "v99", "ph": "fb39409b", "equity": 99351671, "ret": -0.65}, {"id": "v101", "ph": "c4354346", "equity": 99351671, "ret": -0.65}, {"id": "v304", "ph": "96c7e8e1", "equity": 99275158, "ret": -0.72}, {"id": "v320", "ph": "48d6a9ef", "equity": 99264932, "ret": -0.74}, {"id": "v319", "ph": "ca25f043", "equity": 99228748, "ret": -0.77}, {"id": "v189", "ph": "dfdbd0c8", "equity": 99184020, "ret": -0.82}, {"id": "v203", "ph": "2071defa", "equity": 99184020, "ret": -0.82}, {"id": "v199", "ph": "390bfab3", "equity": 99107760, "ret": -0.89}, {"id": "v207", "ph": "0f6601a0", "equity": 99107760, "ret": -0.89}, {"id": "v209", "ph": "8730802d", "equity": 99107760, "ret": -0.89}, {"id": "v57", "ph": "e7e98b6d", "equity": 99089809, "ret": -0.91}, {"id": "v59", "ph": "1858e2ec", "equity": 99089809, "ret": -0.91}, {"id": "v157", "ph": "80f3e23b", "equity": 98971766, "ret": -1.03}, {"id": "v159", "ph": "af80c67a", "equity": 98971766, "ret": -1.03}, {"id": "v161", "ph": "ed5677e6", "equity": 98847202, "ret": -1.15}, {"id": "v165", "ph": "8f862b27", "equity": 98847202, "ret": -1.15}, {"id": "v167", "ph": "b6d6aed8", "equity": 98847202, "ret": -1.15}, {"id": "v311", "ph": "8409c6e5", "equity": 98788881, "ret": -1.21}, {"id": "v301", "ph": "30da2021", "equity": 98678112, "ret": -1.32}, {"id": "v1", "ph": "4874f4c9", "equity": 98537662, "ret": -1.46}, {"id": "v217", "ph": "4c547a61", "equity": 98541610, "ret": -1.46}, {"id": "v218", "ph": "7304d2d4", "equity": 98541610, "ret": -1.46}, {"id": "v309", "ph": "07610040", "equity": 98525429, "ret": -1.47}, {"id": "v310", "ph": "ec9dd55c", "equity": 98512835, "ret": -1.49}, {"id": "v223", "ph": "b57356b8", "equity": 98469242, "ret": -1.53}, {"id": "v224", "ph": "888ab069", "equity": 98469242, "ret": -1.53}, {"id": "v229", "ph": "d9261dfb", "equity": 98469242, "ret": -1.53}, {"id": "v230", "ph": "141579fe", "equity": 98469242, "ret": -1.53}, {"id": "v235", "ph": "3e6c1666", "equity": 98469242, "ret": -1.53}, {"id": "v236", "ph": "f9c75560", "equity": 98469242, "ret": -1.53}, {"id": "v265", "ph": "7faed59d", "equity": 98469242, "ret": -1.53}, {"id": "v266", "ph": "c133b585", "equity": 98469242, "ret": -1.53}, {"id": "v271", "ph": "2b9ccdcd", "equity": 98469242, "ret": -1.53}, {"id": "v272", "ph": "2ed2027f", "equity": 98469242, "ret": -1.53}, {"id": "v277", "ph": "488b612a", "equity": 98469242, "ret": -1.53}, {"id": "v278", "ph": "861fb42b", "equity": 98469242, "ret": -1.53}, {"id": "v283", "ph": "479e4b25", "equity": 98469242, "ret": -1.53}, {"id": "v284", "ph": "261c5d58", "equity": 98469242, "ret": -1.53}, {"id": "v318", "ph": "c99872ef", "equity": 97999020, "ret": -2.0}, {"id": "v303", "ph": "1a084164", "equity": 97258359, "ret": -2.74}, {"id": "v300", "ph": "c6ddc17b", "equity": 96532942, "ret": -3.47}, {"id": "v312", "ph": "4c23846f", "equity": 96196017, "ret": -3.8}, {"id": "v298", "ph": "5d4bbec0", "equity": 94827463, "ret": -5.17}, {"id": "v296", "ph": "4c554378", "equity": 94813548, "ret": -5.19}, {"id": "v299", "ph": "25046b1a", "equity": 93333201, "ret": -6.67}], "20260701": [{"id": "v308", "ph": "cb12dd0b", "equity": 101360932, "ret": 1.36}, {"id": "v306", "ph": "6966b8f6", "equity": 101023539, "ret": 1.02}, {"id": "v321", "ph": "e82de49b", "equity": 100836847, "ret": 0.84}, {"id": "v315", "ph": "e6d5b283", "equity": 100570300, "ret": 0.57}, {"id": "v314", "ph": "7511570e", "equity": 100059178, "ret": 0.06}, {"id": "v87", "ph": "c0be98c0", "equity": 99918552, "ret": -0.08}, {"id": "v93", "ph": "f10d4e45", "equity": 99918552, "ret": -0.08}, {"id": "v103", "ph": "75b0a37c", "equity": 99860630, "ret": -0.14}, {"id": "v317", "ph": "51f8ee6d", "equity": 99859195, "ret": -0.14}, {"id": "v81", "ph": "a6eac1e4", "equity": 99804200, "ret": -0.2}, {"id": "v95", "ph": "7e28e756", "equity": 99804200, "ret": -0.2}, {"id": "v91", "ph": "5674a3d7", "equity": 99732447, "ret": -0.27}, {"id": "v147", "ph": "2fbeeedb", "equity": 99693486, "ret": -0.31}, {"id": "v151", "ph": "2eb1dd06", "equity": 99693486, "ret": -0.31}, {"id": "v49", "ph": "cdba73e0", "equity": 99613131, "ret": -0.39}, {"id": "v51", "ph": "21a98e46", "equity": 99613131, "ret": -0.39}, {"id": "v197", "ph": "5c290a32", "equity": 99601051, "ret": -0.4}, {"id": "v149", "ph": "c5329f8d", "equity": 99575229, "ret": -0.42}, {"id": "v89", "ph": "c49d5680", "equity": 99567185, "ret": -0.43}, {"id": "v105", "ph": "88395429", "equity": 99565829, "ret": -0.43}, {"id": "v107", "ph": "be5cd36b", "equity": 99546459, "ret": -0.45}, {"id": "v205", "ph": "02e5a3f5", "equity": 99543130, "ret": -0.46}, {"id": "v97", "ph": "ebf31977", "equity": 99509263, "ret": -0.49}, {"id": "v195", "ph": "dd89cf59", "equity": 99462748, "ret": -0.54}, {"id": "v201", "ph": "cb8a413e", "equity": 99462748, "ret": -0.54}, {"id": "v211", "ph": "9227673c", "equity": 99404827, "ret": -0.6}, {"id": "v47", "ph": "ed758fcf", "equity": 99370627, "ret": -0.63}, {"id": "v99", "ph": "fb39409b", "equity": 99226467, "ret": -0.77}, {"id": "v101", "ph": "c4354346", "equity": 99226467, "ret": -0.77}, {"id": "v213", "ph": "0e1d8e45", "equity": 99196638, "ret": -0.8}, {"id": "v302", "ph": "3f30502d", "equity": 99089671, "ret": -0.91}, {"id": "v40", "ph": "70731d89", "equity": 99078373, "ret": -0.92}, {"id": "v313", "ph": "b9f4ee72", "equity": 99063825, "ret": -0.94}, {"id": "v215", "ph": "a904a49d", "equity": 99027622, "ret": -0.97}, {"id": "v207", "ph": "0f6601a0", "equity": 99015662, "ret": -0.98}, {"id": "v209", "ph": "8730802d", "equity": 99015662, "ret": -0.98}, {"id": "v155", "ph": "31c0d84e", "equity": 98992814, "ret": -1.01}, {"id": "v189", "ph": "dfdbd0c8", "equity": 98988762, "ret": -1.01}, {"id": "v203", "ph": "2071defa", "equity": 98988762, "ret": -1.01}, {"id": "v57", "ph": "e7e98b6d", "equity": 98982309, "ret": -1.02}, {"id": "v59", "ph": "1858e2ec", "equity": 98982309, "ret": -1.02}, {"id": "v199", "ph": "390bfab3", "equity": 98915940, "ret": -1.08}, {"id": "v307", "ph": "6abce93d", "equity": 98890484, "ret": -1.11}, {"id": "v319", "ph": "ca25f043", "equity": 98830572, "ret": -1.17}, {"id": "v157", "ph": "80f3e23b", "equity": 98795294, "ret": -1.2}, {"id": "v159", "ph": "af80c67a", "equity": 98795294, "ret": -1.2}, {"id": "v161", "ph": "ed5677e6", "equity": 98767602, "ret": -1.23}, {"id": "v165", "ph": "8f862b27", "equity": 98767602, "ret": -1.23}, {"id": "v167", "ph": "b6d6aed8", "equity": 98767602, "ret": -1.23}, {"id": "v316", "ph": "8dc1d197", "equity": 98752327, "ret": -1.25}, {"id": "v41", "ph": "e9d84e84", "equity": 98699639, "ret": -1.3}, {"id": "v305", "ph": "8cc4eea6", "equity": 98581531, "ret": -1.42}, {"id": "v304", "ph": "96c7e8e1", "equity": 98559814, "ret": -1.44}, {"id": "v320", "ph": "48d6a9ef", "equity": 98556948, "ret": -1.44}, {"id": "v4", "ph": "b6219595", "equity": 98505594, "ret": -1.49}, {"id": "v301", "ph": "30da2021", "equity": 98413612, "ret": -1.59}, {"id": "v1", "ph": "4874f4c9", "equity": 98294162, "ret": -1.71}, {"id": "v310", "ph": "ec9dd55c", "equity": 97841463, "ret": -2.16}, {"id": "v217", "ph": "4c547a61", "equity": 97681778, "ret": -2.32}, {"id": "v218", "ph": "7304d2d4", "equity": 97681778, "ret": -2.32}, {"id": "v223", "ph": "b57356b8", "equity": 97609410, "ret": -2.39}, {"id": "v224", "ph": "888ab069", "equity": 97609410, "ret": -2.39}, {"id": "v229", "ph": "d9261dfb", "equity": 97609410, "ret": -2.39}, {"id": "v230", "ph": "141579fe", "equity": 97609410, "ret": -2.39}, {"id": "v235", "ph": "3e6c1666", "equity": 97609410, "ret": -2.39}, {"id": "v236", "ph": "f9c75560", "equity": 97609410, "ret": -2.39}, {"id": "v265", "ph": "7faed59d", "equity": 97609410, "ret": -2.39}, {"id": "v266", "ph": "c133b585", "equity": 97609410, "ret": -2.39}, {"id": "v271", "ph": "2b9ccdcd", "equity": 97609410, "ret": -2.39}, {"id": "v272", "ph": "2ed2027f", "equity": 97609410, "ret": -2.39}, {"id": "v277", "ph": "488b612a", "equity": 97609410, "ret": -2.39}, {"id": "v278", "ph": "861fb42b", "equity": 97609410, "ret": -2.39}, {"id": "v283", "ph": "479e4b25", "equity": 97609410, "ret": -2.39}, {"id": "v284", "ph": "261c5d58", "equity": 97609410, "ret": -2.39}, {"id": "v309", "ph": "07610040", "equity": 97561429, "ret": -2.44}, {"id": "v311", "ph": "8409c6e5", "equity": 97339411, "ret": -2.66}, {"id": "v318", "ph": "c99872ef", "equity": 96866665, "ret": -3.13}, {"id": "v303", "ph": "1a084164", "equity": 96567001, "ret": -3.43}, {"id": "v312", "ph": "4c23846f", "equity": 94754537, "ret": -5.25}, {"id": "v300", "ph": "c6ddc17b", "equity": 93711266, "ret": -6.29}, {"id": "v296", "ph": "4c554378", "equity": 93238208, "ret": -6.76}, {"id": "v298", "ph": "5d4bbec0", "equity": 91885138, "ret": -8.11}, {"id": "v299", "ph": "25046b1a", "equity": 90740541, "ret": -9.26}], "20260702": [{"id": "v321", "ph": "e82de49b", "equity": 98791447, "ret": -1.21}, {"id": "v319", "ph": "ca25f043", "equity": 98585872, "ret": -1.41}, {"id": "v313", "ph": "b9f4ee72", "equity": 98254344, "ret": -1.75}, {"id": "v317", "ph": "51f8ee6d", "equity": 98083547, "ret": -1.92}, {"id": "v316", "ph": "8dc1d197", "equity": 97958697, "ret": -2.04}, {"id": "v306", "ph": "6966b8f6", "equity": 97799665, "ret": -2.2}, {"id": "v320", "ph": "48d6a9ef", "equity": 97726108, "ret": -2.27}, {"id": "v314", "ph": "7511570e", "equity": 97620794, "ret": -2.38}, {"id": "v307", "ph": "6abce93d", "equity": 97389674, "ret": -2.61}, {"id": "v205", "ph": "02e5a3f5", "equity": 97246999, "ret": -2.75}, {"id": "v91", "ph": "5674a3d7", "equity": 97234833, "ret": -2.77}, {"id": "v81", "ph": "a6eac1e4", "equity": 96929027, "ret": -3.07}, {"id": "v95", "ph": "7e28e756", "equity": 96929027, "ret": -3.07}, {"id": "v99", "ph": "fb39409b", "equity": 96779933, "ret": -3.22}, {"id": "v101", "ph": "c4354346", "equity": 96779933, "ret": -3.22}, {"id": "v49", "ph": "cdba73e0", "equity": 96739834, "ret": -3.26}, {"id": "v51", "ph": "21a98e46", "equity": 96739834, "ret": -3.26}, {"id": "v199", "ph": "390bfab3", "equity": 96631456, "ret": -3.37}, {"id": "v304", "ph": "96c7e8e1", "equity": 96611170, "ret": -3.39}, {"id": "v197", "ph": "5c290a32", "equity": 96566014, "ret": -3.43}, {"id": "v207", "ph": "0f6601a0", "equity": 96572081, "ret": -3.43}, {"id": "v209", "ph": "8730802d", "equity": 96572081, "ret": -3.43}, {"id": "v57", "ph": "e7e98b6d", "equity": 96539505, "ret": -3.46}, {"id": "v59", "ph": "1858e2ec", "equity": 96539505, "ret": -3.46}, {"id": "v103", "ph": "75b0a37c", "equity": 96385631, "ret": -3.61}, {"id": "v161", "ph": "ed5677e6", "equity": 96318491, "ret": -3.68}, {"id": "v165", "ph": "8f862b27", "equity": 96318491, "ret": -3.68}, {"id": "v167", "ph": "b6d6aed8", "equity": 96318491, "ret": -3.68}, {"id": "v315", "ph": "e6d5b283", "equity": 96255988, "ret": -3.74}, {"id": "v195", "ph": "dd89cf59", "equity": 96182658, "ret": -3.82}, {"id": "v201", "ph": "cb8a413e", "equity": 96182658, "ret": -3.82}, {"id": "v189", "ph": "dfdbd0c8", "equity": 96136966, "ret": -3.86}, {"id": "v203", "ph": "2071defa", "equity": 96136966, "ret": -3.86}, {"id": "v217", "ph": "4c547a61", "equity": 96094928, "ret": -3.91}, {"id": "v218", "ph": "7304d2d4", "equity": 96094928, "ret": -3.91}, {"id": "v305", "ph": "8cc4eea6", "equity": 96059397, "ret": -3.94}, {"id": "v308", "ph": "cb12dd0b", "equity": 96046199, "ret": -3.95}, {"id": "v223", "ph": "b57356b8", "equity": 96022560, "ret": -3.98}, {"id": "v224", "ph": "888ab069", "equity": 96022560, "ret": -3.98}, {"id": "v229", "ph": "d9261dfb", "equity": 96022560, "ret": -3.98}, {"id": "v230", "ph": "141579fe", "equity": 96022560, "ret": -3.98}, {"id": "v235", "ph": "3e6c1666", "equity": 96022560, "ret": -3.98}, {"id": "v236", "ph": "f9c75560", "equity": 96022560, "ret": -3.98}, {"id": "v265", "ph": "7faed59d", "equity": 96022560, "ret": -3.98}, {"id": "v266", "ph": "c133b585", "equity": 96022560, "ret": -3.98}, {"id": "v271", "ph": "2b9ccdcd", "equity": 96022560, "ret": -3.98}, {"id": "v272", "ph": "2ed2027f", "equity": 96022560, "ret": -3.98}, {"id": "v277", "ph": "488b612a", "equity": 96022560, "ret": -3.98}, {"id": "v278", "ph": "861fb42b", "equity": 96022560, "ret": -3.98}, {"id": "v283", "ph": "479e4b25", "equity": 96022560, "ret": -3.98}, {"id": "v284", "ph": "261c5d58", "equity": 96022560, "ret": -3.98}, {"id": "v97", "ph": "ebf31977", "equity": 95995095, "ret": -4.0}, {"id": "v157", "ph": "80f3e23b", "equity": 95937374, "ret": -4.06}, {"id": "v159", "ph": "af80c67a", "equity": 95937374, "ret": -4.06}, {"id": "v211", "ph": "9227673c", "equity": 95933695, "ret": -4.07}, {"id": "v87", "ph": "c0be98c0", "equity": 95582492, "ret": -4.42}, {"id": "v93", "ph": "f10d4e45", "equity": 95582492, "ret": -4.42}, {"id": "v302", "ph": "3f30502d", "equity": 95445187, "ret": -4.55}, {"id": "v105", "ph": "88395429", "equity": 95443794, "ret": -4.56}, {"id": "v107", "ph": "be5cd36b", "equity": 95420371, "ret": -4.58}, {"id": "v47", "ph": "ed758fcf", "equity": 95248102, "ret": -4.75}, {"id": "v89", "ph": "c49d5680", "equity": 95191756, "ret": -4.81}, {"id": "v213", "ph": "0e1d8e45", "equity": 95032623, "ret": -4.97}, {"id": "v303", "ph": "1a084164", "equity": 94973975, "ret": -5.03}, {"id": "v301", "ph": "30da2021", "equity": 94918817, "ret": -5.08}, {"id": "v155", "ph": "31c0d84e", "equity": 94884928, "ret": -5.12}, {"id": "v149", "ph": "c5329f8d", "equity": 94835485, "ret": -5.16}, {"id": "v215", "ph": "a904a49d", "equity": 94714687, "ret": -5.29}, {"id": "v310", "ph": "ec9dd55c", "equity": 94667951, "ret": -5.33}, {"id": "v1", "ph": "4874f4c9", "equity": 94529504, "ret": -5.47}, {"id": "v318", "ph": "c99872ef", "equity": 94498663, "ret": -5.5}, {"id": "v147", "ph": "2fbeeedb", "equity": 93309835, "ret": -6.69}, {"id": "v151", "ph": "2eb1dd06", "equity": 93309835, "ret": -6.69}, {"id": "v41", "ph": "e9d84e84", "equity": 92888798, "ret": -7.11}, {"id": "v309", "ph": "07610040", "equity": 92000675, "ret": -8.0}, {"id": "v311", "ph": "8409c6e5", "equity": 91855356, "ret": -8.14}, {"id": "v4", "ph": "b6219595", "equity": 91060410, "ret": -8.94}, {"id": "v40", "ph": "70731d89", "equity": 90588484, "ret": -9.41}, {"id": "v312", "ph": "4c23846f", "equity": 90083317, "ret": -9.92}, {"id": "v296", "ph": "4c554378", "equity": 89998698, "ret": -10.0}, {"id": "v300", "ph": "c6ddc17b", "equity": 85532266, "ret": -14.47}, {"id": "v299", "ph": "25046b1a", "equity": 84271313, "ret": -15.73}, {"id": "v298", "ph": "5d4bbec0", "equity": 84062899, "ret": -15.94}], "20260703": [{"id": "v319", "ph": "ca25f043", "equity": 98425166, "ret": -1.57}, {"id": "v321", "ph": "e82de49b", "equity": 98254043, "ret": -1.75}, {"id": "v313", "ph": "b9f4ee72", "equity": 98201465, "ret": -1.8}, {"id": "v316", "ph": "8dc1d197", "equity": 97685295, "ret": -2.31}, {"id": "v317", "ph": "51f8ee6d", "equity": 97525130, "ret": -2.47}, {"id": "v320", "ph": "48d6a9ef", "equity": 97485037, "ret": -2.51}, {"id": "v314", "ph": "7511570e", "equity": 97275856, "ret": -2.72}, {"id": "v307", "ph": "6abce93d", "equity": 97013909, "ret": -2.99}, {"id": "v205", "ph": "02e5a3f5", "equity": 96883635, "ret": -3.12}, {"id": "v91", "ph": "5674a3d7", "equity": 96607445, "ret": -3.39}, {"id": "v306", "ph": "6966b8f6", "equity": 96557673, "ret": -3.44}, {"id": "v199", "ph": "390bfab3", "equity": 96554368, "ret": -3.45}, {"id": "v304", "ph": "96c7e8e1", "equity": 96441037, "ret": -3.56}, {"id": "v197", "ph": "5c290a32", "equity": 96399937, "ret": -3.6}, {"id": "v99", "ph": "fb39409b", "equity": 96145358, "ret": -3.85}, {"id": "v101", "ph": "c4354346", "equity": 96145358, "ret": -3.85}, {"id": "v207", "ph": "0f6601a0", "equity": 96048256, "ret": -3.95}, {"id": "v209", "ph": "8730802d", "equity": 96048256, "ret": -3.95}, {"id": "v57", "ph": "e7e98b6d", "equity": 95904930, "ret": -4.1}, {"id": "v59", "ph": "1858e2ec", "equity": 95904930, "ret": -4.1}, {"id": "v315", "ph": "e6d5b283", "equity": 95877764, "ret": -4.12}, {"id": "v103", "ph": "75b0a37c", "equity": 95790009, "ret": -4.21}, {"id": "v161", "ph": "ed5677e6", "equity": 95776078, "ret": -4.22}, {"id": "v165", "ph": "8f862b27", "equity": 95776078, "ret": -4.22}, {"id": "v167", "ph": "b6d6aed8", "equity": 95776078, "ret": -4.22}, {"id": "v49", "ph": "cdba73e0", "equity": 95750950, "ret": -4.25}, {"id": "v51", "ph": "21a98e46", "equity": 95750950, "ret": -4.25}, {"id": "v195", "ph": "dd89cf59", "equity": 95673198, "ret": -4.33}, {"id": "v201", "ph": "cb8a413e", "equity": 95673198, "ret": -4.33}, {"id": "v217", "ph": "4c547a61", "equity": 95667983, "ret": -4.33}, {"id": "v218", "ph": "7304d2d4", "equity": 95667983, "ret": -4.33}, {"id": "v81", "ph": "a6eac1e4", "equity": 95606729, "ret": -4.39}, {"id": "v95", "ph": "7e28e756", "equity": 95606729, "ret": -4.39}, {"id": "v223", "ph": "b57356b8", "equity": 95595615, "ret": -4.4}, {"id": "v224", "ph": "888ab069", "equity": 95595615, "ret": -4.4}, {"id": "v229", "ph": "d9261dfb", "equity": 95595615, "ret": -4.4}, {"id": "v230", "ph": "141579fe", "equity": 95595615, "ret": -4.4}, {"id": "v235", "ph": "3e6c1666", "equity": 95595615, "ret": -4.4}, {"id": "v236", "ph": "f9c75560", "equity": 95595615, "ret": -4.4}, {"id": "v265", "ph": "7faed59d", "equity": 95595615, "ret": -4.4}, {"id": "v266", "ph": "c133b585", "equity": 95595615, "ret": -4.4}, {"id": "v271", "ph": "2b9ccdcd", "equity": 95595615, "ret": -4.4}, {"id": "v272", "ph": "2ed2027f", "equity": 95595615, "ret": -4.4}, {"id": "v277", "ph": "488b612a", "equity": 95595615, "ret": -4.4}, {"id": "v278", "ph": "861fb42b", "equity": 95595615, "ret": -4.4}, {"id": "v283", "ph": "479e4b25", "equity": 95595615, "ret": -4.4}, {"id": "v284", "ph": "261c5d58", "equity": 95595615, "ret": -4.4}, {"id": "v305", "ph": "8cc4eea6", "equity": 95541925, "ret": -4.46}, {"id": "v211", "ph": "9227673c", "equity": 95426636, "ret": -4.57}, {"id": "v157", "ph": "80f3e23b", "equity": 95415410, "ret": -4.58}, {"id": "v159", "ph": "af80c67a", "equity": 95415410, "ret": -4.58}, {"id": "v189", "ph": "dfdbd0c8", "equity": 95279466, "ret": -4.72}, {"id": "v203", "ph": "2071defa", "equity": 95279466, "ret": -4.72}, {"id": "v97", "ph": "ebf31977", "equity": 95090844, "ret": -4.91}, {"id": "v87", "ph": "c0be98c0", "equity": 94984959, "ret": -5.02}, {"id": "v93", "ph": "f10d4e45", "equity": 94984959, "ret": -5.02}, {"id": "v308", "ph": "cb12dd0b", "equity": 94777607, "ret": -5.22}, {"id": "v302", "ph": "3f30502d", "equity": 94528879, "ret": -5.47}, {"id": "v303", "ph": "1a084164", "equity": 94528920, "ret": -5.47}, {"id": "v310", "ph": "ec9dd55c", "equity": 94363260, "ret": -5.64}, {"id": "v107", "ph": "be5cd36b", "equity": 94341505, "ret": -5.66}, {"id": "v89", "ph": "c49d5680", "equity": 94285756, "ret": -5.71}, {"id": "v155", "ph": "31c0d84e", "equity": 94292507, "ret": -5.71}, {"id": "v47", "ph": "ed758fcf", "equity": 94188860, "ret": -5.81}, {"id": "v213", "ph": "0e1d8e45", "equity": 94106686, "ret": -5.89}, {"id": "v105", "ph": "88395429", "equity": 94051138, "ret": -5.95}, {"id": "v301", "ph": "30da2021", "equity": 94001763, "ret": -6.0}, {"id": "v149", "ph": "c5329f8d", "equity": 93961371, "ret": -6.04}, {"id": "v318", "ph": "c99872ef", "equity": 93732003, "ret": -6.27}, {"id": "v215", "ph": "a904a49d", "equity": 93655835, "ret": -6.34}, {"id": "v1", "ph": "4874f4c9", "equity": 93473178, "ret": -6.53}, {"id": "v147", "ph": "2fbeeedb", "equity": 92615293, "ret": -7.38}, {"id": "v151", "ph": "2eb1dd06", "equity": 92615293, "ret": -7.38}, {"id": "v309", "ph": "07610040", "equity": 91881104, "ret": -8.12}, {"id": "v41", "ph": "e9d84e84", "equity": 91480991, "ret": -8.52}, {"id": "v311", "ph": "8409c6e5", "equity": 91180769, "ret": -8.82}, {"id": "v312", "ph": "4c23846f", "equity": 89938849, "ret": -10.06}, {"id": "v296", "ph": "4c554378", "equity": 89823803, "ret": -10.18}, {"id": "v4", "ph": "b6219595", "equity": 89703610, "ret": -10.3}, {"id": "v40", "ph": "70731d89", "equity": 89146216, "ret": -10.85}, {"id": "v300", "ph": "c6ddc17b", "equity": 84388306, "ret": -15.61}, {"id": "v298", "ph": "5d4bbec0", "equity": 83997991, "ret": -16.0}, {"id": "v299", "ph": "25046b1a", "equity": 83603796, "ret": -16.4}], "20260706": [{"id": "v319", "ph": "ca25f043", "equity": 98197566, "ret": -1.8}, {"id": "v313", "ph": "b9f4ee72", "equity": 97603564, "ret": -2.4}, {"id": "v316", "ph": "8dc1d197", "equity": 97234734, "ret": -2.77}, {"id": "v321", "ph": "e82de49b", "equity": 97144508, "ret": -2.86}, {"id": "v317", "ph": "51f8ee6d", "equity": 96840895, "ret": -3.16}, {"id": "v320", "ph": "48d6a9ef", "equity": 96760128, "ret": -3.24}, {"id": "v307", "ph": "6abce93d", "equity": 96230218, "ret": -3.77}, {"id": "v314", "ph": "7511570e", "equity": 95751362, "ret": -4.25}, {"id": "v205", "ph": "02e5a3f5", "equity": 95544491, "ret": -4.46}, {"id": "v91", "ph": "5674a3d7", "equity": 95510977, "ret": -4.49}, {"id": "v199", "ph": "390bfab3", "equity": 95397379, "ret": -4.6}, {"id": "v304", "ph": "96c7e8e1", "equity": 95339874, "ret": -4.66}, {"id": "v99", "ph": "fb39409b", "equity": 95236824, "ret": -4.76}, {"id": "v101", "ph": "c4354346", "equity": 95236824, "ret": -4.76}, {"id": "v207", "ph": "0f6601a0", "equity": 95075567, "ret": -4.92}, {"id": "v209", "ph": "8730802d", "equity": 95075567, "ret": -4.92}, {"id": "v81", "ph": "a6eac1e4", "equity": 95007002, "ret": -4.99}, {"id": "v95", "ph": "7e28e756", "equity": 95007002, "ret": -4.99}, {"id": "v197", "ph": "5c290a32", "equity": 94741409, "ret": -5.26}, {"id": "v57", "ph": "e7e98b6d", "equity": 94699077, "ret": -5.3}, {"id": "v59", "ph": "1858e2ec", "equity": 94699077, "ret": -5.3}, {"id": "v103", "ph": "75b0a37c", "equity": 94668122, "ret": -5.33}, {"id": "v306", "ph": "6966b8f6", "equity": 94605287, "ret": -5.39}, {"id": "v161", "ph": "ed5677e6", "equity": 94496826, "ret": -5.5}, {"id": "v165", "ph": "8f862b27", "equity": 94496826, "ret": -5.5}, {"id": "v167", "ph": "b6d6aed8", "equity": 94496826, "ret": -5.5}, {"id": "v189", "ph": "dfdbd0c8", "equity": 94488662, "ret": -5.51}, {"id": "v203", "ph": "2071defa", "equity": 94488662, "ret": -5.51}, {"id": "v217", "ph": "4c547a61", "equity": 94426233, "ret": -5.57}, {"id": "v218", "ph": "7304d2d4", "equity": 94426233, "ret": -5.57}, {"id": "v49", "ph": "cdba73e0", "equity": 94406113, "ret": -5.59}, {"id": "v51", "ph": "21a98e46", "equity": 94406113, "ret": -5.59}, {"id": "v223", "ph": "b57356b8", "equity": 94355882, "ret": -5.64}, {"id": "v224", "ph": "888ab069", "equity": 94355882, "ret": -5.64}, {"id": "v229", "ph": "d9261dfb", "equity": 94355882, "ret": -5.64}, {"id": "v230", "ph": "141579fe", "equity": 94355882, "ret": -5.64}, {"id": "v235", "ph": "3e6c1666", "equity": 94355882, "ret": -5.64}, {"id": "v236", "ph": "f9c75560", "equity": 94355882, "ret": -5.64}, {"id": "v265", "ph": "7faed59d", "equity": 94355882, "ret": -5.64}, {"id": "v266", "ph": "c133b585", "equity": 94355882, "ret": -5.64}, {"id": "v271", "ph": "2b9ccdcd", "equity": 94355882, "ret": -5.64}, {"id": "v272", "ph": "2ed2027f", "equity": 94355882, "ret": -5.64}, {"id": "v277", "ph": "488b612a", "equity": 94355882, "ret": -5.64}, {"id": "v278", "ph": "861fb42b", "equity": 94355882, "ret": -5.64}, {"id": "v283", "ph": "479e4b25", "equity": 94355882, "ret": -5.64}, {"id": "v284", "ph": "261c5d58", "equity": 94355882, "ret": -5.64}, {"id": "v211", "ph": "9227673c", "equity": 94235871, "ret": -5.76}, {"id": "v305", "ph": "8cc4eea6", "equity": 94224669, "ret": -5.78}, {"id": "v195", "ph": "dd89cf59", "equity": 94212019, "ret": -5.79}, {"id": "v201", "ph": "cb8a413e", "equity": 94212019, "ret": -5.79}, {"id": "v157", "ph": "80f3e23b", "equity": 93957691, "ret": -6.04}, {"id": "v159", "ph": "af80c67a", "equity": 93957691, "ret": -6.04}, {"id": "v310", "ph": "ec9dd55c", "equity": 93938789, "ret": -6.06}, {"id": "v107", "ph": "be5cd36b", "equity": 93866495, "ret": -6.13}, {"id": "v97", "ph": "ebf31977", "equity": 93770220, "ret": -6.23}, {"id": "v315", "ph": "e6d5b283", "equity": 93711754, "ret": -6.29}, {"id": "v87", "ph": "c0be98c0", "equity": 93450916, "ret": -6.55}, {"id": "v93", "ph": "f10d4e45", "equity": 93450916, "ret": -6.55}, {"id": "v303", "ph": "1a084164", "equity": 93378687, "ret": -6.62}, {"id": "v105", "ph": "88395429", "equity": 93223229, "ret": -6.78}, {"id": "v213", "ph": "0e1d8e45", "equity": 93085970, "ret": -6.91}, {"id": "v215", "ph": "a904a49d", "equity": 92982818, "ret": -7.02}, {"id": "v308", "ph": "cb12dd0b", "equity": 92964903, "ret": -7.04}, {"id": "v318", "ph": "c99872ef", "equity": 92867651, "ret": -7.13}, {"id": "v47", "ph": "ed758fcf", "equity": 92618653, "ret": -7.38}, {"id": "v155", "ph": "31c0d84e", "equity": 92607149, "ret": -7.39}, {"id": "v302", "ph": "3f30502d", "equity": 92518208, "ret": -7.48}, {"id": "v89", "ph": "c49d5680", "equity": 92511480, "ret": -7.49}, {"id": "v301", "ph": "30da2021", "equity": 92319361, "ret": -7.68}, {"id": "v1", "ph": "4874f4c9", "equity": 91573111, "ret": -8.43}, {"id": "v149", "ph": "c5329f8d", "equity": 91557578, "ret": -8.44}, {"id": "v147", "ph": "2fbeeedb", "equity": 89660568, "ret": -10.34}, {"id": "v151", "ph": "2eb1dd06", "equity": 89660568, "ret": -10.34}, {"id": "v309", "ph": "07610040", "equity": 89431315, "ret": -10.57}, {"id": "v311", "ph": "8409c6e5", "equity": 89401928, "ret": -10.6}, {"id": "v296", "ph": "4c554378", "equity": 89247261, "ret": -10.75}, {"id": "v41", "ph": "e9d84e84", "equity": 88846484, "ret": -11.15}, {"id": "v312", "ph": "4c23846f", "equity": 88019396, "ret": -11.98}, {"id": "v4", "ph": "b6219595", "equity": 86554007, "ret": -13.45}, {"id": "v40", "ph": "70731d89", "equity": 85831302, "ret": -14.17}, {"id": "v300", "ph": "c6ddc17b", "equity": 82944532, "ret": -17.06}, {"id": "v298", "ph": "5d4bbec0", "equity": 81095511, "ret": -18.9}, {"id": "v299", "ph": "25046b1a", "equity": 80278493, "ret": -19.72}], "20260707": [{"id": "v319", "ph": "ca25f043", "equity": 98693670, "ret": -1.31}, {"id": "v316", "ph": "8dc1d197", "equity": 98305505, "ret": -1.69}, {"id": "v313", "ph": "b9f4ee72", "equity": 98262263, "ret": -1.74}, {"id": "v320", "ph": "48d6a9ef", "equity": 98247893, "ret": -1.75}, {"id": "v317", "ph": "51f8ee6d", "equity": 97707033, "ret": -2.29}, {"id": "v314", "ph": "7511570e", "equity": 97509493, "ret": -2.49}, {"id": "v91", "ph": "5674a3d7", "equity": 97333001, "ret": -2.67}, {"id": "v199", "ph": "390bfab3", "equity": 97277991, "ret": -2.72}, {"id": "v321", "ph": "e82de49b", "equity": 97253215, "ret": -2.75}, {"id": "v81", "ph": "a6eac1e4", "equity": 97049213, "ret": -2.95}, {"id": "v95", "ph": "7e28e756", "equity": 97050436, "ret": -2.95}, {"id": "v306", "ph": "6966b8f6", "equity": 96847146, "ret": -3.15}, {"id": "v307", "ph": "6abce93d", "equity": 96696164, "ret": -3.3}, {"id": "v189", "ph": "dfdbd0c8", "equity": 96556561, "ret": -3.44}, {"id": "v203", "ph": "2071defa", "equity": 96557781, "ret": -3.44}, {"id": "v99", "ph": "fb39409b", "equity": 96461789, "ret": -3.54}, {"id": "v101", "ph": "c4354346", "equity": 96462037, "ret": -3.54}, {"id": "v205", "ph": "02e5a3f5", "equity": 96453452, "ret": -3.55}, {"id": "v304", "ph": "96c7e8e1", "equity": 96428577, "ret": -3.57}, {"id": "v305", "ph": "8cc4eea6", "equity": 96418011, "ret": -3.58}, {"id": "v103", "ph": "75b0a37c", "equity": 96298247, "ret": -3.7}, {"id": "v49", "ph": "cdba73e0", "equity": 96002579, "ret": -4.0}, {"id": "v51", "ph": "21a98e46", "equity": 96001353, "ret": -4.0}, {"id": "v107", "ph": "be5cd36b", "equity": 95993990, "ret": -4.01}, {"id": "v197", "ph": "5c290a32", "equity": 95968207, "ret": -4.03}, {"id": "v302", "ph": "3f30502d", "equity": 95614631, "ret": -4.39}, {"id": "v157", "ph": "80f3e23b", "equity": 95569082, "ret": -4.43}, {"id": "v159", "ph": "af80c67a", "equity": 95567859, "ret": -4.43}, {"id": "v57", "ph": "e7e98b6d", "equity": 95554443, "ret": -4.45}, {"id": "v59", "ph": "1858e2ec", "equity": 95554690, "ret": -4.45}, {"id": "v207", "ph": "0f6601a0", "equity": 95525632, "ret": -4.47}, {"id": "v209", "ph": "8730802d", "equity": 95525880, "ret": -4.47}, {"id": "v217", "ph": "4c547a61", "equity": 95450761, "ret": -4.55}, {"id": "v218", "ph": "7304d2d4", "equity": 95450761, "ret": -4.55}, {"id": "v223", "ph": "b57356b8", "equity": 95388809, "ret": -4.61}, {"id": "v224", "ph": "888ab069", "equity": 95388809, "ret": -4.61}, {"id": "v229", "ph": "d9261dfb", "equity": 95388809, "ret": -4.61}, {"id": "v230", "ph": "141579fe", "equity": 95388809, "ret": -4.61}, {"id": "v235", "ph": "3e6c1666", "equity": 95388809, "ret": -4.61}, {"id": "v236", "ph": "f9c75560", "equity": 95388809, "ret": -4.61}, {"id": "v265", "ph": "7faed59d", "equity": 95388809, "ret": -4.61}, {"id": "v266", "ph": "c133b585", "equity": 95388809, "ret": -4.61}, {"id": "v271", "ph": "2b9ccdcd", "equity": 95388809, "ret": -4.61}, {"id": "v272", "ph": "2ed2027f", "equity": 95388809, "ret": -4.61}, {"id": "v277", "ph": "488b612a", "equity": 95388809, "ret": -4.61}, {"id": "v278", "ph": "861fb42b", "equity": 95388809, "ret": -4.61}, {"id": "v283", "ph": "479e4b25", "equity": 95388809, "ret": -4.61}, {"id": "v284", "ph": "261c5d58", "equity": 95388809, "ret": -4.61}, {"id": "v105", "ph": "88395429", "equity": 95282295, "ret": -4.72}, {"id": "v87", "ph": "c0be98c0", "equity": 95222534, "ret": -4.78}, {"id": "v93", "ph": "f10d4e45", "equity": 95222534, "ret": -4.78}, {"id": "v195", "ph": "dd89cf59", "equity": 95180923, "ret": -4.82}, {"id": "v201", "ph": "cb8a413e", "equity": 95180923, "ret": -4.82}, {"id": "v213", "ph": "0e1d8e45", "equity": 95176202, "ret": -4.82}, {"id": "v211", "ph": "9227673c", "equity": 95089597, "ret": -4.91}, {"id": "v308", "ph": "cb12dd0b", "equity": 94879582, "ret": -5.12}, {"id": "v303", "ph": "1a084164", "equity": 94738991, "ret": -5.26}, {"id": "v97", "ph": "ebf31977", "equity": 94655179, "ret": -5.34}, {"id": "v161", "ph": "ed5677e6", "equity": 94577324, "ret": -5.42}, {"id": "v165", "ph": "8f862b27", "equity": 94577324, "ret": -5.42}, {"id": "v167", "ph": "b6d6aed8", "equity": 94577572, "ret": -5.42}, {"id": "v155", "ph": "31c0d84e", "equity": 94245039, "ret": -5.75}, {"id": "v47", "ph": "ed758fcf", "equity": 94237190, "ret": -5.76}, {"id": "v215", "ph": "a904a49d", "equity": 94242294, "ret": -5.76}, {"id": "v301", "ph": "30da2021", "equity": 93978996, "ret": -6.02}, {"id": "v310", "ph": "ec9dd55c", "equity": 93711421, "ret": -6.29}, {"id": "v89", "ph": "c49d5680", "equity": 93531243, "ret": -6.47}, {"id": "v315", "ph": "e6d5b283", "equity": 93396771, "ret": -6.6}, {"id": "v1", "ph": "4874f4c9", "equity": 93346275, "ret": -6.65}, {"id": "v149", "ph": "c5329f8d", "equity": 92610472, "ret": -7.39}, {"id": "v318", "ph": "c99872ef", "equity": 91695304, "ret": -8.3}, {"id": "v147", "ph": "2fbeeedb", "equity": 91607410, "ret": -8.39}, {"id": "v151", "ph": "2eb1dd06", "equity": 91608014, "ret": -8.39}, {"id": "v41", "ph": "e9d84e84", "equity": 89790563, "ret": -10.21}, {"id": "v311", "ph": "8409c6e5", "equity": 89611335, "ret": -10.39}, {"id": "v309", "ph": "07610040", "equity": 89551113, "ret": -10.45}, {"id": "v4", "ph": "b6219595", "equity": 88521115, "ret": -11.48}, {"id": "v296", "ph": "4c554378", "equity": 88093113, "ret": -11.91}, {"id": "v40", "ph": "70731d89", "equity": 87995606, "ret": -12.0}, {"id": "v312", "ph": "4c23846f", "equity": 86480137, "ret": -13.52}, {"id": "v300", "ph": "c6ddc17b", "equity": 85099596, "ret": -14.9}, {"id": "v298", "ph": "5d4bbec0", "equity": 81378493, "ret": -18.62}, {"id": "v299", "ph": "25046b1a", "equity": 81031423, "ret": -18.97}], "20260708": [{"id": "v319", "ph": "ca25f043", "equity": 97470051, "ret": -2.53}, {"id": "v321", "ph": "e82de49b", "equity": 95863837, "ret": -4.14}, {"id": "v313", "ph": "b9f4ee72", "equity": 95481223, "ret": -4.52}, {"id": "v101", "ph": "c4354346", "equity": 94493731, "ret": -5.51}, {"id": "v317", "ph": "51f8ee6d", "equity": 94450610, "ret": -5.55}, {"id": "v209", "ph": "8730802d", "equity": 94203324, "ret": -5.8}, {"id": "v59", "ph": "1858e2ec", "equity": 93894385, "ret": -6.11}, {"id": "v307", "ph": "6abce93d", "equity": 93837086, "ret": -6.16}, {"id": "v316", "ph": "8dc1d197", "equity": 93831128, "ret": -6.17}, {"id": "v99", "ph": "fb39409b", "equity": 93816583, "ret": -6.18}, {"id": "v167", "ph": "b6d6aed8", "equity": 93564546, "ret": -6.44}, {"id": "v207", "ph": "0f6601a0", "equity": 93526176, "ret": -6.47}, {"id": "v315", "ph": "e6d5b283", "equity": 93303825, "ret": -6.7}, {"id": "v205", "ph": "02e5a3f5", "equity": 93270613, "ret": -6.73}, {"id": "v57", "ph": "e7e98b6d", "equity": 93217237, "ret": -6.78}, {"id": "v320", "ph": "48d6a9ef", "equity": 93176307, "ret": -6.82}, {"id": "v161", "ph": "ed5677e6", "equity": 92887398, "ret": -7.11}, {"id": "v165", "ph": "8f862b27", "equity": 92887398, "ret": -7.11}, {"id": "v103", "ph": "75b0a37c", "equity": 92752222, "ret": -7.25}, {"id": "v314", "ph": "7511570e", "equity": 92717172, "ret": -7.28}, {"id": "v197", "ph": "5c290a32", "equity": 92525434, "ret": -7.47}, {"id": "v304", "ph": "96c7e8e1", "equity": 92465058, "ret": -7.53}, {"id": "v95", "ph": "7e28e756", "equity": 92376183, "ret": -7.62}, {"id": "v91", "ph": "5674a3d7", "equity": 92342374, "ret": -7.66}, {"id": "v211", "ph": "9227673c", "equity": 92194352, "ret": -7.81}, {"id": "v199", "ph": "390bfab3", "equity": 91895564, "ret": -8.1}, {"id": "v97", "ph": "ebf31977", "equity": 91886112, "ret": -8.11}, {"id": "v306", "ph": "6966b8f6", "equity": 91650241, "ret": -8.35}, {"id": "v195", "ph": "dd89cf59", "equity": 91566277, "ret": -8.43}, {"id": "v201", "ph": "cb8a413e", "equity": 91566277, "ret": -8.43}, {"id": "v49", "ph": "cdba73e0", "equity": 91326648, "ret": -8.67}, {"id": "v203", "ph": "2071defa", "equity": 91153904, "ret": -8.85}, {"id": "v107", "ph": "be5cd36b", "equity": 91033303, "ret": -8.97}, {"id": "v87", "ph": "c0be98c0", "equity": 90966948, "ret": -9.03}, {"id": "v93", "ph": "f10d4e45", "equity": 90966948, "ret": -9.03}, {"id": "v81", "ph": "a6eac1e4", "equity": 90865296, "ret": -9.13}, {"id": "v301", "ph": "30da2021", "equity": 90473273, "ret": -9.53}, {"id": "v318", "ph": "c99872ef", "equity": 90470932, "ret": -9.53}, {"id": "v157", "ph": "80f3e23b", "equity": 90163528, "ret": -9.84}, {"id": "v310", "ph": "ec9dd55c", "equity": 89945372, "ret": -10.05}, {"id": "v217", "ph": "4c547a61", "equity": 89912014, "ret": -10.09}, {"id": "v218", "ph": "7304d2d4", "equity": 89912014, "ret": -10.09}, {"id": "v223", "ph": "b57356b8", "equity": 89843062, "ret": -10.16}, {"id": "v224", "ph": "888ab069", "equity": 89843062, "ret": -10.16}, {"id": "v229", "ph": "d9261dfb", "equity": 89843062, "ret": -10.16}, {"id": "v230", "ph": "141579fe", "equity": 89843062, "ret": -10.16}, {"id": "v235", "ph": "3e6c1666", "equity": 89843062, "ret": -10.16}, {"id": "v236", "ph": "f9c75560", "equity": 89843062, "ret": -10.16}, {"id": "v265", "ph": "7faed59d", "equity": 89843062, "ret": -10.16}, {"id": "v266", "ph": "c133b585", "equity": 89843062, "ret": -10.16}, {"id": "v271", "ph": "2b9ccdcd", "equity": 89843062, "ret": -10.16}, {"id": "v272", "ph": "2ed2027f", "equity": 89843062, "ret": -10.16}, {"id": "v277", "ph": "488b612a", "equity": 89843062, "ret": -10.16}, {"id": "v278", "ph": "861fb42b", "equity": 89843062, "ret": -10.16}, {"id": "v283", "ph": "479e4b25", "equity": 89843062, "ret": -10.16}, {"id": "v284", "ph": "261c5d58", "equity": 89843062, "ret": -10.16}, {"id": "v1", "ph": "4874f4c9", "equity": 89831124, "ret": -10.17}, {"id": "v51", "ph": "21a98e46", "equity": 89813662, "ret": -10.19}, {"id": "v89", "ph": "c49d5680", "equity": 89757086, "ret": -10.24}, {"id": "v189", "ph": "dfdbd0c8", "equity": 89645117, "ret": -10.35}, {"id": "v303", "ph": "1a084164", "equity": 89566981, "ret": -10.43}, {"id": "v308", "ph": "cb12dd0b", "equity": 89416268, "ret": -10.58}, {"id": "v305", "ph": "8cc4eea6", "equity": 89391615, "ret": -10.61}, {"id": "v215", "ph": "a904a49d", "equity": 89291041, "ret": -10.71}, {"id": "v105", "ph": "88395429", "equity": 88899445, "ret": -11.1}, {"id": "v159", "ph": "af80c67a", "equity": 88652641, "ret": -11.35}, {"id": "v149", "ph": "c5329f8d", "equity": 88050190, "ret": -11.95}, {"id": "v213", "ph": "0e1d8e45", "equity": 88053066, "ret": -11.95}, {"id": "v47", "ph": "ed758fcf", "equity": 87850567, "ret": -12.15}, {"id": "v302", "ph": "3f30502d", "equity": 87442505, "ret": -12.56}, {"id": "v155", "ph": "31c0d84e", "equity": 87118129, "ret": -12.88}, {"id": "v296", "ph": "4c554378", "equity": 86292842, "ret": -13.71}, {"id": "v311", "ph": "8409c6e5", "equity": 86084678, "ret": -13.92}, {"id": "v151", "ph": "2eb1dd06", "equity": 86032047, "ret": -13.97}, {"id": "v312", "ph": "4c23846f", "equity": 85522576, "ret": -14.48}, {"id": "v41", "ph": "e9d84e84", "equity": 85291413, "ret": -14.71}, {"id": "v309", "ph": "07610040", "equity": 85107529, "ret": -14.89}, {"id": "v147", "ph": "2fbeeedb", "equity": 84376797, "ret": -15.62}, {"id": "v4", "ph": "b6219595", "equity": 82925280, "ret": -17.07}, {"id": "v40", "ph": "70731d89", "equity": 81170051, "ret": -18.83}, {"id": "v298", "ph": "5d4bbec0", "equity": 79196319, "ret": -20.8}, {"id": "v299", "ph": "25046b1a", "equity": 76919853, "ret": -23.08}, {"id": "v300", "ph": "c6ddc17b", "equity": 73167500, "ret": -26.83}], "20260709": [{"id": "v319", "ph": "ca25f043", "equity": 97029426, "ret": -2.97}, {"id": "v321", "ph": "e82de49b", "equity": 95372120, "ret": -4.63}, {"id": "v313", "ph": "b9f4ee72", "equity": 94897989, "ret": -5.1}, {"id": "v101", "ph": "c4354346", "equity": 94371518, "ret": -5.63}, {"id": "v317", "ph": "51f8ee6d", "equity": 94152545, "ret": -5.85}, {"id": "v99", "ph": "fb39409b", "equity": 93694369, "ret": -6.31}, {"id": "v59", "ph": "1858e2ec", "equity": 93648469, "ret": -6.35}, {"id": "v209", "ph": "8730802d", "equity": 93379392, "ret": -6.62}, {"id": "v316", "ph": "8dc1d197", "equity": 93225309, "ret": -6.77}, {"id": "v307", "ph": "6abce93d", "equity": 93189093, "ret": -6.81}, {"id": "v57", "ph": "e7e98b6d", "equity": 92971321, "ret": -7.03}, {"id": "v103", "ph": "75b0a37c", "equity": 92831928, "ret": -7.17}, {"id": "v207", "ph": "0f6601a0", "equity": 92702244, "ret": -7.3}, {"id": "v167", "ph": "b6d6aed8", "equity": 92619115, "ret": -7.38}, {"id": "v205", "ph": "02e5a3f5", "equity": 92574760, "ret": -7.43}, {"id": "v95", "ph": "7e28e756", "equity": 92521583, "ret": -7.48}, {"id": "v320", "ph": "48d6a9ef", "equity": 92421366, "ret": -7.58}, {"id": "v91", "ph": "5674a3d7", "equity": 92146760, "ret": -7.85}, {"id": "v315", "ph": "e6d5b283", "equity": 92046625, "ret": -7.95}, {"id": "v161", "ph": "ed5677e6", "equity": 91941966, "ret": -8.06}, {"id": "v165", "ph": "8f862b27", "equity": 91941966, "ret": -8.06}, {"id": "v314", "ph": "7511570e", "equity": 91879039, "ret": -8.12}, {"id": "v304", "ph": "96c7e8e1", "equity": 91855794, "ret": -8.14}, {"id": "v197", "ph": "5c290a32", "equity": 91841551, "ret": -8.16}, {"id": "v97", "ph": "ebf31977", "equity": 91705949, "ret": -8.29}, {"id": "v211", "ph": "9227673c", "equity": 91570738, "ret": -8.43}, {"id": "v49", "ph": "cdba73e0", "equity": 91460358, "ret": -8.54}, {"id": "v203", "ph": "2071defa", "equity": 91259889, "ret": -8.74}, {"id": "v199", "ph": "390bfab3", "equity": 91193283, "ret": -8.81}, {"id": "v87", "ph": "c0be98c0", "equity": 91057754, "ret": -8.94}, {"id": "v93", "ph": "f10d4e45", "equity": 91057754, "ret": -8.94}, {"id": "v81", "ph": "a6eac1e4", "equity": 91014210, "ret": -8.99}, {"id": "v195", "ph": "dd89cf59", "equity": 90952863, "ret": -9.05}, {"id": "v201", "ph": "cb8a413e", "equity": 90952863, "ret": -9.05}, {"id": "v107", "ph": "be5cd36b", "equity": 90911509, "ret": -9.09}, {"id": "v306", "ph": "6966b8f6", "equity": 90826472, "ret": -9.17}, {"id": "v157", "ph": "80f3e23b", "equity": 90259699, "ret": -9.74}, {"id": "v318", "ph": "c99872ef", "equity": 89956910, "ret": -10.04}, {"id": "v51", "ph": "21a98e46", "equity": 89951186, "ret": -10.05}, {"id": "v89", "ph": "c49d5680", "equity": 89823123, "ret": -10.18}, {"id": "v189", "ph": "dfdbd0c8", "equity": 89754616, "ret": -10.25}, {"id": "v301", "ph": "30da2021", "equity": 89630173, "ret": -10.37}, {"id": "v215", "ph": "a904a49d", "equity": 89171184, "ret": -10.83}, {"id": "v217", "ph": "4c547a61", "equity": 89102440, "ret": -10.9}, {"id": "v218", "ph": "7304d2d4", "equity": 89102440, "ret": -10.9}, {"id": "v223", "ph": "b57356b8", "equity": 89036088, "ret": -10.96}, {"id": "v224", "ph": "888ab069", "equity": 89036088, "ret": -10.96}, {"id": "v229", "ph": "d9261dfb", "equity": 89036088, "ret": -10.96}, {"id": "v230", "ph": "141579fe", "equity": 89036088, "ret": -10.96}, {"id": "v235", "ph": "3e6c1666", "equity": 89036088, "ret": -10.96}, {"id": "v236", "ph": "f9c75560", "equity": 89036088, "ret": -10.96}, {"id": "v265", "ph": "7faed59d", "equity": 89036088, "ret": -10.96}, {"id": "v266", "ph": "c133b585", "equity": 89036088, "ret": -10.96}, {"id": "v271", "ph": "2b9ccdcd", "equity": 89036088, "ret": -10.96}, {"id": "v272", "ph": "2ed2027f", "equity": 89036088, "ret": -10.96}, {"id": "v277", "ph": "488b612a", "equity": 89036088, "ret": -10.96}, {"id": "v278", "ph": "861fb42b", "equity": 89036088, "ret": -10.96}, {"id": "v283", "ph": "479e4b25", "equity": 89036088, "ret": -10.96}, {"id": "v284", "ph": "261c5d58", "equity": 89036088, "ret": -10.96}, {"id": "v1", "ph": "4874f4c9", "equity": 88779474, "ret": -11.22}, {"id": "v105", "ph": "88395429", "equity": 88758699, "ret": -11.24}, {"id": "v159", "ph": "af80c67a", "equity": 88749577, "ret": -11.25}, {"id": "v305", "ph": "8cc4eea6", "equity": 88509485, "ret": -11.49}, {"id": "v308", "ph": "cb12dd0b", "equity": 88508656, "ret": -11.49}, {"id": "v303", "ph": "1a084164", "equity": 88400399, "ret": -11.6}, {"id": "v310", "ph": "ec9dd55c", "equity": 88282336, "ret": -11.72}, {"id": "v213", "ph": "0e1d8e45", "equity": 87872908, "ret": -12.13}, {"id": "v47", "ph": "ed758fcf", "equity": 87700307, "ret": -12.3}, {"id": "v149", "ph": "c5329f8d", "equity": 87295308, "ret": -12.7}, {"id": "v302", "ph": "3f30502d", "equity": 87005003, "ret": -12.99}, {"id": "v155", "ph": "31c0d84e", "equity": 86926728, "ret": -13.07}, {"id": "v311", "ph": "8409c6e5", "equity": 85710417, "ret": -14.29}, {"id": "v151", "ph": "2eb1dd06", "equity": 85488465, "ret": -14.51}, {"id": "v41", "ph": "e9d84e84", "equity": 85404189, "ret": -14.6}, {"id": "v312", "ph": "4c23846f", "equity": 84462620, "ret": -15.54}, {"id": "v296", "ph": "4c554378", "equity": 84397596, "ret": -15.6}, {"id": "v309", "ph": "07610040", "equity": 84155459, "ret": -15.84}, {"id": "v147", "ph": "2fbeeedb", "equity": 83834534, "ret": -16.17}, {"id": "v4", "ph": "b6219595", "equity": 82094579, "ret": -17.91}, {"id": "v40", "ph": "70731d89", "equity": 80360480, "ret": -19.64}, {"id": "v298", "ph": "5d4bbec0", "equity": 78505369, "ret": -21.49}, {"id": "v299", "ph": "25046b1a", "equity": 75857462, "ret": -24.14}, {"id": "v300", "ph": "c6ddc17b", "equity": 73074500, "ret": -26.93}], "20260710": [{"id": "v321", "ph": "e82de49b", "equity": 98078466, "ret": -1.92}, {"id": "v319", "ph": "ca25f043", "equity": 97310052, "ret": -2.69}, {"id": "v313", "ph": "b9f4ee72", "equity": 97070899, "ret": -2.93}, {"id": "v317", "ph": "51f8ee6d", "equity": 96658854, "ret": -3.34}, {"id": "v307", "ph": "6abce93d", "equity": 95735759, "ret": -4.26}, {"id": "v316", "ph": "8dc1d197", "equity": 95238005, "ret": -4.76}, {"id": "v320", "ph": "48d6a9ef", "equity": 95010028, "ret": -4.99}, {"id": "v205", "ph": "02e5a3f5", "equity": 94946029, "ret": -5.05}, {"id": "v197", "ph": "5c290a32", "equity": 94826304, "ret": -5.17}, {"id": "v95", "ph": "7e28e756", "equity": 94712823, "ret": -5.29}, {"id": "v101", "ph": "c4354346", "equity": 94284391, "ret": -5.72}, {"id": "v203", "ph": "2071defa", "equity": 94078563, "ret": -5.92}, {"id": "v103", "ph": "75b0a37c", "equity": 94044661, "ret": -5.96}, {"id": "v91", "ph": "5674a3d7", "equity": 94024918, "ret": -5.98}, {"id": "v314", "ph": "7511570e", "equity": 93928332, "ret": -6.07}, {"id": "v199", "ph": "390bfab3", "equity": 93733922, "ret": -6.27}, {"id": "v59", "ph": "1858e2ec", "equity": 93680067, "ret": -6.32}, {"id": "v99", "ph": "fb39409b", "equity": 93607255, "ret": -6.39}, {"id": "v49", "ph": "cdba73e0", "equity": 93559466, "ret": -6.44}, {"id": "v306", "ph": "6966b8f6", "equity": 93513081, "ret": -6.49}, {"id": "v97", "ph": "ebf31977", "equity": 93408327, "ret": -6.59}, {"id": "v209", "ph": "8730802d", "equity": 93286824, "ret": -6.71}, {"id": "v81", "ph": "a6eac1e4", "equity": 93172304, "ret": -6.83}, {"id": "v304", "ph": "96c7e8e1", "equity": 93155434, "ret": -6.84}, {"id": "v157", "ph": "80f3e23b", "equity": 93020895, "ret": -6.98}, {"id": "v57", "ph": "e7e98b6d", "equity": 93002931, "ret": -7.0}, {"id": "v211", "ph": "9227673c", "equity": 92778517, "ret": -7.22}, {"id": "v207", "ph": "0f6601a0", "equity": 92609916, "ret": -7.39}, {"id": "v167", "ph": "b6d6aed8", "equity": 92577084, "ret": -7.42}, {"id": "v189", "ph": "dfdbd0c8", "equity": 92540144, "ret": -7.46}, {"id": "v315", "ph": "e6d5b283", "equity": 92532857, "ret": -7.47}, {"id": "v87", "ph": "c0be98c0", "equity": 92305303, "ret": -7.69}, {"id": "v93", "ph": "f10d4e45", "equity": 92305303, "ret": -7.69}, {"id": "v217", "ph": "4c547a61", "equity": 92223428, "ret": -7.78}, {"id": "v218", "ph": "7304d2d4", "equity": 92223428, "ret": -7.78}, {"id": "v195", "ph": "dd89cf59", "equity": 92194654, "ret": -7.81}, {"id": "v201", "ph": "cb8a413e", "equity": 92194654, "ret": -7.81}, {"id": "v223", "ph": "b57356b8", "equity": 92151976, "ret": -7.85}, {"id": "v224", "ph": "888ab069", "equity": 92151976, "ret": -7.85}, {"id": "v229", "ph": "d9261dfb", "equity": 92151976, "ret": -7.85}, {"id": "v230", "ph": "141579fe", "equity": 92151976, "ret": -7.85}, {"id": "v235", "ph": "3e6c1666", "equity": 92151976, "ret": -7.85}, {"id": "v236", "ph": "f9c75560", "equity": 92151976, "ret": -7.85}, {"id": "v265", "ph": "7faed59d", "equity": 92151976, "ret": -7.85}, {"id": "v266", "ph": "c133b585", "equity": 92151976, "ret": -7.85}, {"id": "v271", "ph": "2b9ccdcd", "equity": 92151976, "ret": -7.85}, {"id": "v272", "ph": "2ed2027f", "equity": 92151976, "ret": -7.85}, {"id": "v277", "ph": "488b612a", "equity": 92151976, "ret": -7.85}, {"id": "v278", "ph": "861fb42b", "equity": 92151976, "ret": -7.85}, {"id": "v283", "ph": "479e4b25", "equity": 92151976, "ret": -7.85}, {"id": "v284", "ph": "261c5d58", "equity": 92151976, "ret": -7.85}, {"id": "v89", "ph": "c49d5680", "equity": 92126436, "ret": -7.87}, {"id": "v51", "ph": "21a98e46", "equity": 92016918, "ret": -7.98}, {"id": "v161", "ph": "ed5677e6", "equity": 91902967, "ret": -8.1}, {"id": "v165", "ph": "8f862b27", "equity": 91902967, "ret": -8.1}, {"id": "v107", "ph": "be5cd36b", "equity": 91871987, "ret": -8.13}, {"id": "v305", "ph": "8cc4eea6", "equity": 91737647, "ret": -8.26}, {"id": "v159", "ph": "af80c67a", "equity": 91478297, "ret": -8.52}, {"id": "v303", "ph": "1a084164", "equity": 91467512, "ret": -8.53}, {"id": "v318", "ph": "c99872ef", "equity": 91229350, "ret": -8.77}, {"id": "v308", "ph": "cb12dd0b", "equity": 91016667, "ret": -8.98}, {"id": "v105", "ph": "88395429", "equity": 91002544, "ret": -9.0}, {"id": "v310", "ph": "ec9dd55c", "equity": 90929061, "ret": -9.07}, {"id": "v213", "ph": "0e1d8e45", "equity": 90733969, "ret": -9.27}, {"id": "v149", "ph": "c5329f8d", "equity": 90683014, "ret": -9.32}, {"id": "v215", "ph": "a904a49d", "equity": 90127065, "ret": -9.87}, {"id": "v302", "ph": "3f30502d", "equity": 90012486, "ret": -9.99}, {"id": "v301", "ph": "30da2021", "equity": 89977588, "ret": -10.02}, {"id": "v47", "ph": "ed758fcf", "equity": 89839040, "ret": -10.16}, {"id": "v155", "ph": "31c0d84e", "equity": 89712039, "ret": -10.29}, {"id": "v151", "ph": "2eb1dd06", "equity": 89274993, "ret": -10.73}, {"id": "v1", "ph": "4874f4c9", "equity": 89233426, "ret": -10.77}, {"id": "v311", "ph": "8409c6e5", "equity": 88466825, "ret": -11.53}, {"id": "v41", "ph": "e9d84e84", "equity": 88070920, "ret": -11.93}, {"id": "v147", "ph": "2fbeeedb", "equity": 87599302, "ret": -12.4}, {"id": "v312", "ph": "4c23846f", "equity": 86750962, "ret": -13.25}, {"id": "v309", "ph": "07610040", "equity": 86198031, "ret": -13.8}, {"id": "v296", "ph": "4c554378", "equity": 86036993, "ret": -13.96}, {"id": "v4", "ph": "b6219595", "equity": 85584881, "ret": -14.42}, {"id": "v40", "ph": "70731d89", "equity": 83785743, "ret": -16.21}, {"id": "v298", "ph": "5d4bbec0", "equity": 81408367, "ret": -18.59}, {"id": "v299", "ph": "25046b1a", "equity": 78985821, "ret": -21.01}, {"id": "v300", "ph": "c6ddc17b", "equity": 75750936, "ret": -24.25}], "20260713": [{"id": "v321", "ph": "e82de49b", "equity": 97993285, "ret": -2.01}, {"id": "v319", "ph": "ca25f043", "equity": 97450702, "ret": -2.55}, {"id": "v317", "ph": "51f8ee6d", "equity": 96646823, "ret": -3.35}, {"id": "v313", "ph": "b9f4ee72", "equity": 95903205, "ret": -4.1}, {"id": "v205", "ph": "02e5a3f5", "equity": 94889018, "ret": -5.11}, {"id": "v307", "ph": "6abce93d", "equity": 94694981, "ret": -5.31}, {"id": "v197", "ph": "5c290a32", "equity": 94654242, "ret": -5.35}, {"id": "v316", "ph": "8dc1d197", "equity": 94551424, "ret": -5.45}, {"id": "v320", "ph": "48d6a9ef", "equity": 94356057, "ret": -5.64}, {"id": "v95", "ph": "7e28e756", "equity": 94208212, "ret": -5.79}, {"id": "v203", "ph": "2071defa", "equity": 94145780, "ret": -5.85}, {"id": "v103", "ph": "75b0a37c", "equity": 94078397, "ret": -5.92}, {"id": "v199", "ph": "390bfab3", "equity": 93659485, "ret": -6.34}, {"id": "v101", "ph": "c4354346", "equity": 93648515, "ret": -6.35}, {"id": "v306", "ph": "6966b8f6", "equity": 93424603, "ret": -6.58}, {"id": "v91", "ph": "5674a3d7", "equity": 93323862, "ret": -6.68}, {"id": "v59", "ph": "1858e2ec", "equity": 93231925, "ret": -6.77}, {"id": "v157", "ph": "80f3e23b", "equity": 93198393, "ret": -6.8}, {"id": "v49", "ph": "cdba73e0", "equity": 93181463, "ret": -6.82}, {"id": "v314", "ph": "7511570e", "equity": 93184031, "ret": -6.82}, {"id": "v99", "ph": "fb39409b", "equity": 92972759, "ret": -7.03}, {"id": "v211", "ph": "9227673c", "equity": 92963129, "ret": -7.04}, {"id": "v97", "ph": "ebf31977", "equity": 92725192, "ret": -7.27}, {"id": "v304", "ph": "96c7e8e1", "equity": 92687756, "ret": -7.31}, {"id": "v81", "ph": "a6eac1e4", "equity": 92677068, "ret": -7.32}, {"id": "v189", "ph": "dfdbd0c8", "equity": 92628577, "ret": -7.37}, {"id": "v209", "ph": "8730802d", "equity": 92592451, "ret": -7.41}, {"id": "v57", "ph": "e7e98b6d", "equity": 92556169, "ret": -7.44}, {"id": "v315", "ph": "e6d5b283", "equity": 92418791, "ret": -7.58}, {"id": "v195", "ph": "dd89cf59", "equity": 92402967, "ret": -7.6}, {"id": "v201", "ph": "cb8a413e", "equity": 92402967, "ret": -7.6}, {"id": "v87", "ph": "c0be98c0", "equity": 92365980, "ret": -7.63}, {"id": "v93", "ph": "f10d4e45", "equity": 92365980, "ret": -7.63}, {"id": "v167", "ph": "b6d6aed8", "equity": 92215482, "ret": -7.78}, {"id": "v107", "ph": "be5cd36b", "equity": 91987442, "ret": -8.01}, {"id": "v318", "ph": "c99872ef", "equity": 91961004, "ret": -8.04}, {"id": "v207", "ph": "0f6601a0", "equity": 91936002, "ret": -8.06}, {"id": "v51", "ph": "21a98e46", "equity": 91665291, "ret": -8.33}, {"id": "v159", "ph": "af80c67a", "equity": 91669242, "ret": -8.33}, {"id": "v161", "ph": "ed5677e6", "equity": 91538846, "ret": -8.46}, {"id": "v165", "ph": "8f862b27", "equity": 91538846, "ret": -8.46}, {"id": "v89", "ph": "c49d5680", "equity": 91454254, "ret": -8.55}, {"id": "v217", "ph": "4c547a61", "equity": 90753087, "ret": -9.25}, {"id": "v218", "ph": "7304d2d4", "equity": 90753087, "ret": -9.25}, {"id": "v213", "ph": "0e1d8e45", "equity": 90711698, "ret": -9.29}, {"id": "v223", "ph": "b57356b8", "equity": 90682636, "ret": -9.32}, {"id": "v224", "ph": "888ab069", "equity": 90682636, "ret": -9.32}, {"id": "v229", "ph": "d9261dfb", "equity": 90682636, "ret": -9.32}, {"id": "v230", "ph": "141579fe", "equity": 90682636, "ret": -9.32}, {"id": "v235", "ph": "3e6c1666", "equity": 90682636, "ret": -9.32}, {"id": "v236", "ph": "f9c75560", "equity": 90682636, "ret": -9.32}, {"id": "v265", "ph": "7faed59d", "equity": 90682636, "ret": -9.32}, {"id": "v266", "ph": "c133b585", "equity": 90682636, "ret": -9.32}, {"id": "v271", "ph": "2b9ccdcd", "equity": 90682636, "ret": -9.32}, {"id": "v272", "ph": "2ed2027f", "equity": 90682636, "ret": -9.32}, {"id": "v277", "ph": "488b612a", "equity": 90682636, "ret": -9.32}, {"id": "v278", "ph": "861fb42b", "equity": 90682636, "ret": -9.32}, {"id": "v283", "ph": "479e4b25", "equity": 90682636, "ret": -9.32}, {"id": "v284", "ph": "261c5d58", "equity": 90682636, "ret": -9.32}, {"id": "v308", "ph": "cb12dd0b", "equity": 90558789, "ret": -9.44}, {"id": "v215", "ph": "a904a49d", "equity": 90427248, "ret": -9.57}, {"id": "v303", "ph": "1a084164", "equity": 90424464, "ret": -9.58}, {"id": "v105", "ph": "88395429", "equity": 90398777, "ret": -9.6}, {"id": "v310", "ph": "ec9dd55c", "equity": 90385822, "ret": -9.61}, {"id": "v305", "ph": "8cc4eea6", "equity": 90346041, "ret": -9.65}, {"id": "v149", "ph": "c5329f8d", "equity": 90280128, "ret": -9.72}, {"id": "v301", "ph": "30da2021", "equity": 89786566, "ret": -10.21}, {"id": "v155", "ph": "31c0d84e", "equity": 89782507, "ret": -10.22}, {"id": "v47", "ph": "ed758fcf", "equity": 89371696, "ret": -10.63}, {"id": "v302", "ph": "3f30502d", "equity": 89344229, "ret": -10.66}, {"id": "v1", "ph": "4874f4c9", "equity": 89166050, "ret": -10.83}, {"id": "v151", "ph": "2eb1dd06", "equity": 89091286, "ret": -10.91}, {"id": "v311", "ph": "8409c6e5", "equity": 88615165, "ret": -11.38}, {"id": "v312", "ph": "4c23846f", "equity": 88055182, "ret": -11.94}, {"id": "v309", "ph": "07610040", "equity": 87642331, "ret": -12.36}, {"id": "v147", "ph": "2fbeeedb", "equity": 87432951, "ret": -12.57}, {"id": "v41", "ph": "e9d84e84", "equity": 87023320, "ret": -12.98}, {"id": "v4", "ph": "b6219595", "equity": 85761199, "ret": -14.24}, {"id": "v296", "ph": "4c554378", "equity": 84594910, "ret": -15.41}, {"id": "v40", "ph": "70731d89", "equity": 83960853, "ret": -16.04}, {"id": "v298", "ph": "5d4bbec0", "equity": 82134287, "ret": -17.87}, {"id": "v299", "ph": "25046b1a", "equity": 78453749, "ret": -21.55}, {"id": "v300", "ph": "c6ddc17b", "equity": 74901773, "ret": -25.1}], "20260714": [{"id": "v321", "ph": "e82de49b", "equity": 97789385, "ret": -2.21}, {"id": "v319", "ph": "ca25f043", "equity": 97582805, "ret": -2.42}, {"id": "v317", "ph": "51f8ee6d", "equity": 96466283, "ret": -3.53}, {"id": "v313", "ph": "b9f4ee72", "equity": 95558095, "ret": -4.44}, {"id": "v205", "ph": "02e5a3f5", "equity": 94974938, "ret": -5.03}, {"id": "v316", "ph": "8dc1d197", "equity": 94811844, "ret": -5.19}, {"id": "v197", "ph": "5c290a32", "equity": 94781792, "ret": -5.22}, {"id": "v320", "ph": "48d6a9ef", "equity": 94552797, "ret": -5.45}, {"id": "v307", "ph": "6abce93d", "equity": 94443551, "ret": -5.56}, {"id": "v103", "ph": "75b0a37c", "equity": 94273847, "ret": -5.73}, {"id": "v203", "ph": "2071defa", "equity": 94162800, "ret": -5.84}, {"id": "v199", "ph": "390bfab3", "equity": 93730535, "ret": -6.27}, {"id": "v95", "ph": "7e28e756", "equity": 93688530, "ret": -6.31}, {"id": "v306", "ph": "6966b8f6", "equity": 93128874, "ret": -6.87}, {"id": "v157", "ph": "80f3e23b", "equity": 93099933, "ret": -6.9}, {"id": "v101", "ph": "c4354346", "equity": 93085645, "ret": -6.91}, {"id": "v91", "ph": "5674a3d7", "equity": 93035902, "ret": -6.96}, {"id": "v211", "ph": "9227673c", "equity": 92979319, "ret": -7.02}, {"id": "v314", "ph": "7511570e", "equity": 92922331, "ret": -7.08}, {"id": "v49", "ph": "cdba73e0", "equity": 92903643, "ret": -7.1}, {"id": "v59", "ph": "1858e2ec", "equity": 92684865, "ret": -7.32}, {"id": "v189", "ph": "dfdbd0c8", "equity": 92671757, "ret": -7.33}, {"id": "v304", "ph": "96c7e8e1", "equity": 92642276, "ret": -7.36}, {"id": "v87", "ph": "c0be98c0", "equity": 92587920, "ret": -7.41}, {"id": "v93", "ph": "f10d4e45", "equity": 92587920, "ret": -7.41}, {"id": "v97", "ph": "ebf31977", "equity": 92465332, "ret": -7.53}, {"id": "v195", "ph": "dd89cf59", "equity": 92445067, "ret": -7.55}, {"id": "v201", "ph": "cb8a413e", "equity": 92445067, "ret": -7.55}, {"id": "v99", "ph": "fb39409b", "equity": 92410299, "ret": -7.59}, {"id": "v318", "ph": "c99872ef", "equity": 92219004, "ret": -7.78}, {"id": "v81", "ph": "a6eac1e4", "equity": 92177746, "ret": -7.82}, {"id": "v57", "ph": "e7e98b6d", "equity": 92009519, "ret": -7.99}, {"id": "v107", "ph": "be5cd36b", "equity": 92000429, "ret": -8.0}, {"id": "v209", "ph": "8730802d", "equity": 91790701, "ret": -8.21}, {"id": "v159", "ph": "af80c67a", "equity": 91582652, "ret": -8.42}, {"id": "v167", "ph": "b6d6aed8", "equity": 91427362, "ret": -8.57}, {"id": "v51", "ph": "21a98e46", "equity": 91402341, "ret": -8.6}, {"id": "v89", "ph": "c49d5680", "equity": 91243384, "ret": -8.76}, {"id": "v315", "ph": "e6d5b283", "equity": 91168571, "ret": -8.83}, {"id": "v207", "ph": "0f6601a0", "equity": 91144662, "ret": -8.86}, {"id": "v161", "ph": "ed5677e6", "equity": 90748936, "ret": -9.25}, {"id": "v165", "ph": "8f862b27", "equity": 90748936, "ret": -9.25}, {"id": "v310", "ph": "ec9dd55c", "equity": 90753202, "ret": -9.25}, {"id": "v213", "ph": "0e1d8e45", "equity": 90718328, "ret": -9.28}, {"id": "v217", "ph": "4c547a61", "equity": 90375417, "ret": -9.62}, {"id": "v218", "ph": "7304d2d4", "equity": 90375417, "ret": -9.62}, {"id": "v149", "ph": "c5329f8d", "equity": 90342768, "ret": -9.66}, {"id": "v223", "ph": "b57356b8", "equity": 90306266, "ret": -9.69}, {"id": "v224", "ph": "888ab069", "equity": 90306266, "ret": -9.69}, {"id": "v229", "ph": "d9261dfb", "equity": 90306266, "ret": -9.69}, {"id": "v230", "ph": "141579fe", "equity": 90306266, "ret": -9.69}, {"id": "v235", "ph": "3e6c1666", "equity": 90306266, "ret": -9.69}, {"id": "v236", "ph": "f9c75560", "equity": 90306266, "ret": -9.69}, {"id": "v265", "ph": "7faed59d", "equity": 90306266, "ret": -9.69}, {"id": "v266", "ph": "c133b585", "equity": 90306266, "ret": -9.69}, {"id": "v271", "ph": "2b9ccdcd", "equity": 90306266, "ret": -9.69}, {"id": "v272", "ph": "2ed2027f", "equity": 90306266, "ret": -9.69}, {"id": "v277", "ph": "488b612a", "equity": 90306266, "ret": -9.69}, {"id": "v278", "ph": "861fb42b", "equity": 90306266, "ret": -9.69}, {"id": "v283", "ph": "479e4b25", "equity": 90306266, "ret": -9.69}, {"id": "v284", "ph": "261c5d58", "equity": 90306266, "ret": -9.69}, {"id": "v215", "ph": "a904a49d", "equity": 90240432, "ret": -9.76}, {"id": "v308", "ph": "cb12dd0b", "equity": 90214089, "ret": -9.79}, {"id": "v305", "ph": "8cc4eea6", "equity": 90063781, "ret": -9.94}, {"id": "v303", "ph": "1a084164", "equity": 89879294, "ret": -10.12}, {"id": "v105", "ph": "88395429", "equity": 89867245, "ret": -10.13}, {"id": "v155", "ph": "31c0d84e", "equity": 89637757, "ret": -10.36}, {"id": "v151", "ph": "2eb1dd06", "equity": 89445646, "ret": -10.55}, {"id": "v302", "ph": "3f30502d", "equity": 89306717, "ret": -10.69}, {"id": "v47", "ph": "ed758fcf", "equity": 89082566, "ret": -10.92}, {"id": "v301", "ph": "30da2021", "equity": 88985970, "ret": -11.01}, {"id": "v312", "ph": "4c23846f", "equity": 88434822, "ret": -11.57}, {"id": "v1", "ph": "4874f4c9", "equity": 88164415, "ret": -11.84}, {"id": "v311", "ph": "8409c6e5", "equity": 88024704, "ret": -11.98}, {"id": "v147", "ph": "2fbeeedb", "equity": 87818641, "ret": -12.18}, {"id": "v309", "ph": "07610040", "equity": 87561431, "ret": -12.44}, {"id": "v41", "ph": "e9d84e84", "equity": 87034620, "ret": -12.97}, {"id": "v4", "ph": "b6219595", "equity": 85775725, "ret": -14.22}, {"id": "v296", "ph": "4c554378", "equity": 84158665, "ret": -15.84}, {"id": "v40", "ph": "70731d89", "equity": 83965736, "ret": -16.03}, {"id": "v298", "ph": "5d4bbec0", "equity": 83302908, "ret": -16.7}, {"id": "v299", "ph": "25046b1a", "equity": 78333222, "ret": -21.67}, {"id": "v300", "ph": "c6ddc17b", "equity": 75953953, "ret": -24.05}], "20260715": [{"id": "v321", "ph": "e82de49b", "equity": 97881585, "ret": -2.12}, {"id": "v319", "ph": "ca25f043", "equity": 96941125, "ret": -3.06}, {"id": "v317", "ph": "51f8ee6d", "equity": 96721623, "ret": -3.28}, {"id": "v205", "ph": "02e5a3f5", "equity": 96494865, "ret": -3.51}, {"id": "v197", "ph": "5c290a32", "equity": 96288031, "ret": -3.71}, {"id": "v313", "ph": "b9f4ee72", "equity": 96177243, "ret": -3.82}, {"id": "v203", "ph": "2071defa", "equity": 95945420, "ret": -4.05}, {"id": "v103", "ph": "75b0a37c", "equity": 95590478, "ret": -4.41}, {"id": "v307", "ph": "6abce93d", "equity": 95511253, "ret": -4.49}, {"id": "v199", "ph": "390bfab3", "equity": 95234481, "ret": -4.77}, {"id": "v95", "ph": "7e28e756", "equity": 95172330, "ret": -4.83}, {"id": "v157", "ph": "80f3e23b", "equity": 94561247, "ret": -5.44}, {"id": "v316", "ph": "8dc1d197", "equity": 94512037, "ret": -5.49}, {"id": "v49", "ph": "cdba73e0", "equity": 94452030, "ret": -5.55}, {"id": "v320", "ph": "48d6a9ef", "equity": 94452811, "ret": -5.55}, {"id": "v189", "ph": "dfdbd0c8", "equity": 94413537, "ret": -5.59}, {"id": "v211", "ph": "9227673c", "equity": 94345283, "ret": -5.65}, {"id": "v91", "ph": "5674a3d7", "equity": 94341738, "ret": -5.66}, {"id": "v101", "ph": "c4354346", "equity": 94241434, "ret": -5.76}, {"id": "v314", "ph": "7511570e", "equity": 94137586, "ret": -5.86}, {"id": "v59", "ph": "1858e2ec", "equity": 94073717, "ret": -5.93}, {"id": "v87", "ph": "c0be98c0", "equity": 93886718, "ret": -6.11}, {"id": "v93", "ph": "f10d4e45", "equity": 93886718, "ret": -6.11}, {"id": "v195", "ph": "dd89cf59", "equity": 93793440, "ret": -6.21}, {"id": "v201", "ph": "cb8a413e", "equity": 93793440, "ret": -6.21}, {"id": "v97", "ph": "ebf31977", "equity": 93769938, "ret": -6.23}, {"id": "v306", "ph": "6966b8f6", "equity": 93693114, "ret": -6.31}, {"id": "v81", "ph": "a6eac1e4", "equity": 93645606, "ret": -6.35}, {"id": "v99", "ph": "fb39409b", "equity": 93565198, "ret": -6.43}, {"id": "v107", "ph": "be5cd36b", "equity": 93472999, "ret": -6.53}, {"id": "v57", "ph": "e7e98b6d", "equity": 93396997, "ret": -6.6}, {"id": "v318", "ph": "c99872ef", "equity": 93105804, "ret": -6.89}, {"id": "v159", "ph": "af80c67a", "equity": 93021557, "ret": -6.98}, {"id": "v209", "ph": "8730802d", "equity": 92996410, "ret": -7.0}, {"id": "v51", "ph": "21a98e46", "equity": 92918693, "ret": -7.08}, {"id": "v304", "ph": "96c7e8e1", "equity": 92841909, "ret": -7.16}, {"id": "v167", "ph": "b6d6aed8", "equity": 92783723, "ret": -7.22}, {"id": "v89", "ph": "c49d5680", "equity": 92506353, "ret": -7.49}, {"id": "v213", "ph": "0e1d8e45", "equity": 92448858, "ret": -7.55}, {"id": "v207", "ph": "0f6601a0", "equity": 92322401, "ret": -7.68}, {"id": "v161", "ph": "ed5677e6", "equity": 92101406, "ret": -7.9}, {"id": "v165", "ph": "8f862b27", "equity": 92101406, "ret": -7.9}, {"id": "v149", "ph": "c5329f8d", "equity": 92091172, "ret": -7.91}, {"id": "v217", "ph": "4c547a61", "equity": 92083378, "ret": -7.92}, {"id": "v218", "ph": "7304d2d4", "equity": 92083378, "ret": -7.92}, {"id": "v223", "ph": "b57356b8", "equity": 92014227, "ret": -7.99}, {"id": "v224", "ph": "888ab069", "equity": 92014227, "ret": -7.99}, {"id": "v229", "ph": "d9261dfb", "equity": 92014227, "ret": -7.99}, {"id": "v230", "ph": "141579fe", "equity": 92014227, "ret": -7.99}, {"id": "v235", "ph": "3e6c1666", "equity": 92014227, "ret": -7.99}, {"id": "v236", "ph": "f9c75560", "equity": 92014227, "ret": -7.99}, {"id": "v265", "ph": "7faed59d", "equity": 92014227, "ret": -7.99}, {"id": "v266", "ph": "c133b585", "equity": 92014227, "ret": -7.99}, {"id": "v271", "ph": "2b9ccdcd", "equity": 92014227, "ret": -7.99}, {"id": "v272", "ph": "2ed2027f", "equity": 92014227, "ret": -7.99}, {"id": "v277", "ph": "488b612a", "equity": 92014227, "ret": -7.99}, {"id": "v278", "ph": "861fb42b", "equity": 92014227, "ret": -7.99}, {"id": "v283", "ph": "479e4b25", "equity": 92014227, "ret": -7.99}, {"id": "v284", "ph": "261c5d58", "equity": 92014227, "ret": -7.99}, {"id": "v315", "ph": "e6d5b283", "equity": 91954633, "ret": -8.05}, {"id": "v215", "ph": "a904a49d", "equity": 91742192, "ret": -8.26}, {"id": "v308", "ph": "cb12dd0b", "equity": 91602089, "ret": -8.4}, {"id": "v310", "ph": "ec9dd55c", "equity": 91437214, "ret": -8.56}, {"id": "v305", "ph": "8cc4eea6", "equity": 91318887, "ret": -8.68}, {"id": "v105", "ph": "88395429", "equity": 91294695, "ret": -8.71}, {"id": "v303", "ph": "1a084164", "equity": 91280975, "ret": -8.72}, {"id": "v151", "ph": "2eb1dd06", "equity": 91151628, "ret": -8.85}, {"id": "v155", "ph": "31c0d84e", "equity": 91066702, "ret": -8.93}, {"id": "v302", "ph": "3f30502d", "equity": 90999999, "ret": -9.0}, {"id": "v47", "ph": "ed758fcf", "equity": 90556310, "ret": -9.44}, {"id": "v301", "ph": "30da2021", "equity": 90510544, "ret": -9.49}, {"id": "v1", "ph": "4874f4c9", "equity": 89753670, "ret": -10.25}, {"id": "v312", "ph": "4c23846f", "equity": 89629262, "ret": -10.37}, {"id": "v147", "ph": "2fbeeedb", "equity": 89491453, "ret": -10.51}, {"id": "v41", "ph": "e9d84e84", "equity": 89149905, "ret": -10.85}, {"id": "v309", "ph": "07610040", "equity": 88927631, "ret": -11.07}, {"id": "v311", "ph": "8409c6e5", "equity": 88877600, "ret": -11.12}, {"id": "v4", "ph": "b6219595", "equity": 86786797, "ret": -13.21}, {"id": "v40", "ph": "70731d89", "equity": 84949022, "ret": -15.05}, {"id": "v296", "ph": "4c554378", "equity": 84318050, "ret": -15.68}, {"id": "v298", "ph": "5d4bbec0", "equity": 84182209, "ret": -15.82}, {"id": "v299", "ph": "25046b1a", "equity": 79402935, "ret": -20.6}, {"id": "v300", "ph": "c6ddc17b", "equity": 77045856, "ret": -22.95}], "20260716": [{"id": "v321", "ph": "e82de49b", "equity": 97662800, "ret": -2.34}, {"id": "v317", "ph": "51f8ee6d", "equity": 96342751, "ret": -3.66}, {"id": "v205", "ph": "02e5a3f5", "equity": 96098532, "ret": -3.9}, {"id": "v319", "ph": "ca25f043", "equity": 95637660, "ret": -4.36}, {"id": "v197", "ph": "5c290a32", "equity": 95579791, "ret": -4.42}, {"id": "v203", "ph": "2071defa", "equity": 95582104, "ret": -4.42}, {"id": "v103", "ph": "75b0a37c", "equity": 95449502, "ret": -4.55}, {"id": "v313", "ph": "b9f4ee72", "equity": 95008900, "ret": -4.99}, {"id": "v95", "ph": "7e28e756", "equity": 94748728, "ret": -5.25}, {"id": "v199", "ph": "390bfab3", "equity": 94565021, "ret": -5.43}, {"id": "v307", "ph": "6abce93d", "equity": 94270692, "ret": -5.73}, {"id": "v101", "ph": "c4354346", "equity": 94237231, "ret": -5.76}, {"id": "v59", "ph": "1858e2ec", "equity": 94226283, "ret": -5.77}, {"id": "v157", "ph": "80f3e23b", "equity": 94217123, "ret": -5.78}, {"id": "v49", "ph": "cdba73e0", "equity": 94125926, "ret": -5.87}, {"id": "v211", "ph": "9227673c", "equity": 94095386, "ret": -5.9}, {"id": "v189", "ph": "dfdbd0c8", "equity": 93681511, "ret": -6.32}, {"id": "v314", "ph": "7511570e", "equity": 93578380, "ret": -6.42}, {"id": "v99", "ph": "fb39409b", "equity": 93562035, "ret": -6.44}, {"id": "v316", "ph": "8dc1d197", "equity": 93564398, "ret": -6.44}, {"id": "v57", "ph": "e7e98b6d", "equity": 93550050, "ret": -6.45}, {"id": "v91", "ph": "5674a3d7", "equity": 93540268, "ret": -6.46}, {"id": "v107", "ph": "be5cd36b", "equity": 93475030, "ret": -6.52}, {"id": "v87", "ph": "c0be98c0", "equity": 93437735, "ret": -6.56}, {"id": "v93", "ph": "f10d4e45", "equity": 93437735, "ret": -6.56}, {"id": "v306", "ph": "6966b8f6", "equity": 93314376, "ret": -6.69}, {"id": "v320", "ph": "48d6a9ef", "equity": 93302940, "ret": -6.7}, {"id": "v97", "ph": "ebf31977", "equity": 93246574, "ret": -6.75}, {"id": "v195", "ph": "dd89cf59", "equity": 93233458, "ret": -6.77}, {"id": "v201", "ph": "cb8a413e", "equity": 93233458, "ret": -6.77}, {"id": "v318", "ph": "c99872ef", "equity": 92972504, "ret": -7.03}, {"id": "v209", "ph": "8730802d", "equity": 92923788, "ret": -7.08}, {"id": "v81", "ph": "a6eac1e4", "equity": 92858315, "ret": -7.14}, {"id": "v167", "ph": "b6d6aed8", "equity": 92804598, "ret": -7.2}, {"id": "v159", "ph": "af80c67a", "equity": 92313584, "ret": -7.69}, {"id": "v304", "ph": "96c7e8e1", "equity": 92306951, "ret": -7.69}, {"id": "v207", "ph": "0f6601a0", "equity": 92265672, "ret": -7.73}, {"id": "v51", "ph": "21a98e46", "equity": 92228353, "ret": -7.77}, {"id": "v315", "ph": "e6d5b283", "equity": 92176927, "ret": -7.82}, {"id": "v161", "ph": "ed5677e6", "equity": 92123621, "ret": -7.88}, {"id": "v165", "ph": "8f862b27", "equity": 92123621, "ret": -7.88}, {"id": "v213", "ph": "0e1d8e45", "equity": 92105005, "ret": -7.89}, {"id": "v89", "ph": "c49d5680", "equity": 91672443, "ret": -8.33}, {"id": "v215", "ph": "a904a49d", "equity": 91600859, "ret": -8.4}, {"id": "v149", "ph": "c5329f8d", "equity": 91348894, "ret": -8.65}, {"id": "v308", "ph": "cb12dd0b", "equity": 91129257, "ret": -8.87}, {"id": "v105", "ph": "88395429", "equity": 90897351, "ret": -9.1}, {"id": "v155", "ph": "31c0d84e", "equity": 90751770, "ret": -9.25}, {"id": "v217", "ph": "4c547a61", "equity": 90452057, "ret": -9.55}, {"id": "v218", "ph": "7304d2d4", "equity": 90452057, "ret": -9.55}, {"id": "v223", "ph": "b57356b8", "equity": 90381905, "ret": -9.62}, {"id": "v224", "ph": "888ab069", "equity": 90381905, "ret": -9.62}, {"id": "v229", "ph": "d9261dfb", "equity": 90381905, "ret": -9.62}, {"id": "v230", "ph": "141579fe", "equity": 90381905, "ret": -9.62}, {"id": "v235", "ph": "3e6c1666", "equity": 90381905, "ret": -9.62}, {"id": "v236", "ph": "f9c75560", "equity": 90381905, "ret": -9.62}, {"id": "v265", "ph": "7faed59d", "equity": 90381905, "ret": -9.62}, {"id": "v266", "ph": "c133b585", "equity": 90381905, "ret": -9.62}, {"id": "v271", "ph": "2b9ccdcd", "equity": 90381905, "ret": -9.62}, {"id": "v272", "ph": "2ed2027f", "equity": 90381905, "ret": -9.62}, {"id": "v277", "ph": "488b612a", "equity": 90381905, "ret": -9.62}, {"id": "v278", "ph": "861fb42b", "equity": 90381905, "ret": -9.62}, {"id": "v283", "ph": "479e4b25", "equity": 90381905, "ret": -9.62}, {"id": "v284", "ph": "261c5d58", "equity": 90381905, "ret": -9.62}, {"id": "v301", "ph": "30da2021", "equity": 90291973, "ret": -9.71}, {"id": "v47", "ph": "ed758fcf", "equity": 90254293, "ret": -9.75}, {"id": "v305", "ph": "8cc4eea6", "equity": 90139532, "ret": -9.86}, {"id": "v310", "ph": "ec9dd55c", "equity": 89818318, "ret": -10.18}, {"id": "v303", "ph": "1a084164", "equity": 89794120, "ret": -10.21}, {"id": "v151", "ph": "2eb1dd06", "equity": 89703330, "ret": -10.3}, {"id": "v1", "ph": "4874f4c9", "equity": 89683916, "ret": -10.32}, {"id": "v302", "ph": "3f30502d", "equity": 89587578, "ret": -10.41}, {"id": "v312", "ph": "4c23846f", "equity": 89359819, "ret": -10.64}, {"id": "v309", "ph": "07610040", "equity": 88934323, "ret": -11.07}, {"id": "v311", "ph": "8409c6e5", "equity": 88468299, "ret": -11.53}, {"id": "v41", "ph": "e9d84e84", "equity": 88438727, "ret": -11.56}, {"id": "v147", "ph": "2fbeeedb", "equity": 88051474, "ret": -11.95}, {"id": "v4", "ph": "b6219595", "equity": 85931638, "ret": -14.07}, {"id": "v40", "ph": "70731d89", "equity": 84117298, "ret": -15.88}, {"id": "v296", "ph": "4c554378", "equity": 82994880, "ret": -17.01}, {"id": "v298", "ph": "5d4bbec0", "equity": 82799229, "ret": -17.2}, {"id": "v299", "ph": "25046b1a", "equity": 79039512, "ret": -20.96}, {"id": "v300", "ph": "c6ddc17b", "equity": 75498773, "ret": -24.5}], "20260720": [{"id": "v321", "ph": "e82de49b", "equity": 96303358, "ret": -3.7}, {"id": "v319", "ph": "ca25f043", "equity": 96044191, "ret": -3.96}, {"id": "v317", "ph": "51f8ee6d", "equity": 95288497, "ret": -4.71}, {"id": "v103", "ph": "75b0a37c", "equity": 93981281, "ret": -6.02}, {"id": "v205", "ph": "02e5a3f5", "equity": 93885806, "ret": -6.11}, {"id": "v203", "ph": "2071defa", "equity": 93581916, "ret": -6.42}, {"id": "v313", "ph": "b9f4ee72", "equity": 93201667, "ret": -6.8}, {"id": "v95", "ph": "7e28e756", "equity": 93141972, "ret": -6.86}, {"id": "v101", "ph": "c4354346", "equity": 92822611, "ret": -7.18}, {"id": "v197", "ph": "5c290a32", "equity": 92785025, "ret": -7.21}, {"id": "v107", "ph": "be5cd36b", "equity": 92365156, "ret": -7.63}, {"id": "v211", "ph": "9227673c", "equity": 92222608, "ret": -7.78}, {"id": "v59", "ph": "1858e2ec", "equity": 92203842, "ret": -7.8}, {"id": "v99", "ph": "fb39409b", "equity": 92148835, "ret": -7.85}, {"id": "v49", "ph": "cdba73e0", "equity": 92068274, "ret": -7.93}, {"id": "v316", "ph": "8dc1d197", "equity": 92048108, "ret": -7.95}, {"id": "v307", "ph": "6abce93d", "equity": 91964764, "ret": -8.04}, {"id": "v157", "ph": "80f3e23b", "equity": 91915976, "ret": -8.08}, {"id": "v199", "ph": "390bfab3", "equity": 91829052, "ret": -8.17}, {"id": "v318", "ph": "c99872ef", "equity": 91722878, "ret": -8.28}, {"id": "v57", "ph": "e7e98b6d", "equity": 91530428, "ret": -8.47}, {"id": "v320", "ph": "48d6a9ef", "equity": 91403769, "ret": -8.6}, {"id": "v87", "ph": "c0be98c0", "equity": 91390375, "ret": -8.61}, {"id": "v93", "ph": "f10d4e45", "equity": 91390375, "ret": -8.61}, {"id": "v97", "ph": "ebf31977", "equity": 91306098, "ret": -8.69}, {"id": "v304", "ph": "96c7e8e1", "equity": 91190931, "ret": -8.81}, {"id": "v189", "ph": "dfdbd0c8", "equity": 91179391, "ret": -8.82}, {"id": "v91", "ph": "5674a3d7", "equity": 91038152, "ret": -8.96}, {"id": "v209", "ph": "8730802d", "equity": 90834039, "ret": -9.17}, {"id": "v195", "ph": "dd89cf59", "equity": 90778699, "ret": -9.22}, {"id": "v201", "ph": "cb8a413e", "equity": 90778699, "ret": -9.22}, {"id": "v314", "ph": "7511570e", "equity": 90564147, "ret": -9.44}, {"id": "v81", "ph": "a6eac1e4", "equity": 90539154, "ret": -9.46}, {"id": "v306", "ph": "6966b8f6", "equity": 90332758, "ret": -9.67}, {"id": "v167", "ph": "b6d6aed8", "equity": 90306583, "ret": -9.69}, {"id": "v207", "ph": "0f6601a0", "equity": 90235466, "ret": -9.76}, {"id": "v215", "ph": "a904a49d", "equity": 90166566, "ret": -9.83}, {"id": "v213", "ph": "0e1d8e45", "equity": 90160174, "ret": -9.84}, {"id": "v161", "ph": "ed5677e6", "equity": 89630326, "ret": -10.37}, {"id": "v165", "ph": "8f862b27", "equity": 89630326, "ret": -10.37}, {"id": "v159", "ph": "af80c67a", "equity": 89531050, "ret": -10.47}, {"id": "v51", "ph": "21a98e46", "equity": 89486279, "ret": -10.51}, {"id": "v315", "ph": "e6d5b283", "equity": 89455929, "ret": -10.54}, {"id": "v105", "ph": "88395429", "equity": 89360548, "ret": -10.64}, {"id": "v89", "ph": "c49d5680", "equity": 89150562, "ret": -10.85}, {"id": "v308", "ph": "cb12dd0b", "equity": 88841934, "ret": -11.16}, {"id": "v310", "ph": "ec9dd55c", "equity": 88693215, "ret": -11.31}, {"id": "v155", "ph": "31c0d84e", "equity": 88538444, "ret": -11.46}, {"id": "v47", "ph": "ed758fcf", "equity": 88311396, "ret": -11.69}, {"id": "v305", "ph": "8cc4eea6", "equity": 87805982, "ret": -12.19}, {"id": "v149", "ph": "c5329f8d", "equity": 87377221, "ret": -12.62}, {"id": "v301", "ph": "30da2021", "equity": 87115160, "ret": -12.88}, {"id": "v312", "ph": "4c23846f", "equity": 86824419, "ret": -13.18}, {"id": "v217", "ph": "4c547a61", "equity": 86727416, "ret": -13.27}, {"id": "v218", "ph": "7304d2d4", "equity": 86727416, "ret": -13.27}, {"id": "v223", "ph": "b57356b8", "equity": 86665159, "ret": -13.33}, {"id": "v224", "ph": "888ab069", "equity": 86665159, "ret": -13.33}, {"id": "v229", "ph": "d9261dfb", "equity": 86665159, "ret": -13.33}, {"id": "v230", "ph": "141579fe", "equity": 86665159, "ret": -13.33}, {"id": "v235", "ph": "3e6c1666", "equity": 86665159, "ret": -13.33}, {"id": "v236", "ph": "f9c75560", "equity": 86665159, "ret": -13.33}, {"id": "v265", "ph": "7faed59d", "equity": 86665159, "ret": -13.33}, {"id": "v266", "ph": "c133b585", "equity": 86665159, "ret": -13.33}, {"id": "v271", "ph": "2b9ccdcd", "equity": 86665159, "ret": -13.33}, {"id": "v272", "ph": "2ed2027f", "equity": 86665159, "ret": -13.33}, {"id": "v277", "ph": "488b612a", "equity": 86665159, "ret": -13.33}, {"id": "v278", "ph": "861fb42b", "equity": 86665159, "ret": -13.33}, {"id": "v283", "ph": "479e4b25", "equity": 86665159, "ret": -13.33}, {"id": "v284", "ph": "261c5d58", "equity": 86665159, "ret": -13.33}, {"id": "v1", "ph": "4874f4c9", "equity": 86623058, "ret": -13.38}, {"id": "v309", "ph": "07610040", "equity": 86303983, "ret": -13.7}, {"id": "v311", "ph": "8409c6e5", "equity": 86212810, "ret": -13.79}, {"id": "v303", "ph": "1a084164", "equity": 86195681, "ret": -13.8}, {"id": "v151", "ph": "2eb1dd06", "equity": 85016045, "ret": -14.98}, {"id": "v41", "ph": "e9d84e84", "equity": 84517336, "ret": -15.48}, {"id": "v302", "ph": "3f30502d", "equity": 84451669, "ret": -15.55}, {"id": "v147", "ph": "2fbeeedb", "equity": 83598548, "ret": -16.4}, {"id": "v4", "ph": "b6219595", "equity": 81621988, "ret": -18.38}, {"id": "v296", "ph": "4c554378", "equity": 80332295, "ret": -19.67}, {"id": "v40", "ph": "70731d89", "equity": 79967856, "ret": -20.03}, {"id": "v298", "ph": "5d4bbec0", "equity": 78569163, "ret": -21.43}, {"id": "v299", "ph": "25046b1a", "equity": 74944589, "ret": -25.06}, {"id": "v300", "ph": "c6ddc17b", "equity": 71115223, "ret": -28.88}], "20260721": [{"id": "v321", "ph": "e82de49b", "equity": 96591994, "ret": -3.41}, {"id": "v319", "ph": "ca25f043", "equity": 96446024, "ret": -3.55}, {"id": "v317", "ph": "51f8ee6d", "equity": 95147797, "ret": -4.85}, {"id": "v103", "ph": "75b0a37c", "equity": 93883981, "ret": -6.12}, {"id": "v205", "ph": "02e5a3f5", "equity": 93630760, "ret": -6.37}, {"id": "v313", "ph": "b9f4ee72", "equity": 93214559, "ret": -6.79}, {"id": "v203", "ph": "2071defa", "equity": 93087341, "ret": -6.91}, {"id": "v101", "ph": "c4354346", "equity": 92722111, "ret": -7.28}, {"id": "v197", "ph": "5c290a32", "equity": 92429405, "ret": -7.57}, {"id": "v95", "ph": "7e28e756", "equity": 92395930, "ret": -7.6}, {"id": "v59", "ph": "1858e2ec", "equity": 92162442, "ret": -7.84}, {"id": "v211", "ph": "9227673c", "equity": 92124448, "ret": -7.88}, {"id": "v99", "ph": "fb39409b", "equity": 92048335, "ret": -7.95}, {"id": "v316", "ph": "8dc1d197", "equity": 92025212, "ret": -7.97}, {"id": "v107", "ph": "be5cd36b", "equity": 91820632, "ret": -8.18}, {"id": "v307", "ph": "6abce93d", "equity": 91510486, "ret": -8.49}, {"id": "v57", "ph": "e7e98b6d", "equity": 91488608, "ret": -8.51}, {"id": "v49", "ph": "cdba73e0", "equity": 91443759, "ret": -8.56}, {"id": "v157", "ph": "80f3e23b", "equity": 91414714, "ret": -8.59}, {"id": "v320", "ph": "48d6a9ef", "equity": 91379973, "ret": -8.62}, {"id": "v199", "ph": "390bfab3", "equity": 91374084, "ret": -8.63}, {"id": "v318", "ph": "c99872ef", "equity": 91356580, "ret": -8.64}, {"id": "v97", "ph": "ebf31977", "equity": 91347946, "ret": -8.65}, {"id": "v304", "ph": "96c7e8e1", "equity": 91228811, "ret": -8.77}, {"id": "v87", "ph": "c0be98c0", "equity": 91188775, "ret": -8.81}, {"id": "v93", "ph": "f10d4e45", "equity": 91188775, "ret": -8.81}, {"id": "v91", "ph": "5674a3d7", "equity": 90877452, "ret": -9.12}, {"id": "v209", "ph": "8730802d", "equity": 90733539, "ret": -9.27}, {"id": "v195", "ph": "dd89cf59", "equity": 90576255, "ret": -9.42}, {"id": "v201", "ph": "cb8a413e", "equity": 90576255, "ret": -9.42}, {"id": "v189", "ph": "dfdbd0c8", "equity": 90513367, "ret": -9.49}, {"id": "v314", "ph": "7511570e", "equity": 90457850, "ret": -9.54}, {"id": "v306", "ph": "6966b8f6", "equity": 90451761, "ret": -9.55}, {"id": "v167", "ph": "b6d6aed8", "equity": 90194183, "ret": -9.81}, {"id": "v207", "ph": "0f6601a0", "equity": 90128866, "ret": -9.87}, {"id": "v213", "ph": "0e1d8e45", "equity": 89791224, "ret": -10.21}, {"id": "v81", "ph": "a6eac1e4", "equity": 89684613, "ret": -10.32}, {"id": "v215", "ph": "a904a49d", "equity": 89631706, "ret": -10.37}, {"id": "v161", "ph": "ed5677e6", "equity": 89518526, "ret": -10.48}, {"id": "v165", "ph": "8f862b27", "equity": 89518526, "ret": -10.48}, {"id": "v315", "ph": "e6d5b283", "equity": 89479409, "ret": -10.52}, {"id": "v89", "ph": "c49d5680", "equity": 89096535, "ret": -10.9}, {"id": "v159", "ph": "af80c67a", "equity": 88860327, "ret": -11.14}, {"id": "v51", "ph": "21a98e46", "equity": 88745286, "ret": -11.25}, {"id": "v105", "ph": "88395429", "equity": 88751830, "ret": -11.25}, {"id": "v308", "ph": "cb12dd0b", "equity": 88706257, "ret": -11.29}, {"id": "v310", "ph": "ec9dd55c", "equity": 88585915, "ret": -11.41}, {"id": "v155", "ph": "31c0d84e", "equity": 88148500, "ret": -11.85}, {"id": "v305", "ph": "8cc4eea6", "equity": 87864506, "ret": -12.14}, {"id": "v47", "ph": "ed758fcf", "equity": 87810183, "ret": -12.19}, {"id": "v301", "ph": "30da2021", "equity": 87082070, "ret": -12.92}, {"id": "v312", "ph": "4c23846f", "equity": 87081619, "ret": -12.92}, {"id": "v149", "ph": "c5329f8d", "equity": 86977446, "ret": -13.02}, {"id": "v1", "ph": "4874f4c9", "equity": 86563348, "ret": -13.44}, {"id": "v309", "ph": "07610040", "equity": 86463979, "ret": -13.54}, {"id": "v311", "ph": "8409c6e5", "equity": 86101230, "ret": -13.9}, {"id": "v217", "ph": "4c547a61", "equity": 86090367, "ret": -13.91}, {"id": "v218", "ph": "7304d2d4", "equity": 86090367, "ret": -13.91}, {"id": "v223", "ph": "b57356b8", "equity": 86028111, "ret": -13.97}, {"id": "v224", "ph": "888ab069", "equity": 86028111, "ret": -13.97}, {"id": "v229", "ph": "d9261dfb", "equity": 86028111, "ret": -13.97}, {"id": "v230", "ph": "141579fe", "equity": 86028111, "ret": -13.97}, {"id": "v235", "ph": "3e6c1666", "equity": 86028111, "ret": -13.97}, {"id": "v236", "ph": "f9c75560", "equity": 86028111, "ret": -13.97}, {"id": "v265", "ph": "7faed59d", "equity": 86028111, "ret": -13.97}, {"id": "v266", "ph": "c133b585", "equity": 86028111, "ret": -13.97}, {"id": "v271", "ph": "2b9ccdcd", "equity": 86028111, "ret": -13.97}, {"id": "v272", "ph": "2ed2027f", "equity": 86028111, "ret": -13.97}, {"id": "v277", "ph": "488b612a", "equity": 86028111, "ret": -13.97}, {"id": "v278", "ph": "861fb42b", "equity": 86028111, "ret": -13.97}, {"id": "v283", "ph": "479e4b25", "equity": 86028111, "ret": -13.97}, {"id": "v284", "ph": "261c5d58", "equity": 86028111, "ret": -13.97}, {"id": "v303", "ph": "1a084164", "equity": 85800353, "ret": -14.2}, {"id": "v151", "ph": "2eb1dd06", "equity": 84317520, "ret": -15.68}, {"id": "v302", "ph": "3f30502d", "equity": 84240679, "ret": -15.76}, {"id": "v41", "ph": "e9d84e84", "equity": 84181614, "ret": -15.82}, {"id": "v147", "ph": "2fbeeedb", "equity": 82857327, "ret": -17.14}, {"id": "v4", "ph": "b6219595", "equity": 81505657, "ret": -18.49}, {"id": "v296", "ph": "4c554378", "equity": 80029835, "ret": -19.97}, {"id": "v40", "ph": "70731d89", "equity": 79724166, "ret": -20.28}, {"id": "v298", "ph": "5d4bbec0", "equity": 78134788, "ret": -21.87}, {"id": "v299", "ph": "25046b1a", "equity": 75186062, "ret": -24.81}, {"id": "v300", "ph": "c6ddc17b", "equity": 70909523, "ret": -29.09}], "20260722": [{"id": "v319", "ph": "ca25f043", "equity": 96641404, "ret": -3.36}, {"id": "v321", "ph": "e82de49b", "equity": 95537377, "ret": -4.46}, {"id": "v317", "ph": "51f8ee6d", "equity": 94531711, "ret": -5.47}, {"id": "v103", "ph": "75b0a37c", "equity": 93201324, "ret": -6.8}, {"id": "v313", "ph": "b9f4ee72", "equity": 92977447, "ret": -7.02}, {"id": "v203", "ph": "2071defa", "equity": 92580836, "ret": -7.42}, {"id": "v101", "ph": "c4354346", "equity": 92115111, "ret": -7.88}, {"id": "v205", "ph": "02e5a3f5", "equity": 92057986, "ret": -7.94}, {"id": "v95", "ph": "7e28e756", "equity": 91889124, "ret": -8.11}, {"id": "v59", "ph": "1858e2ec", "equity": 91558042, "ret": -8.44}, {"id": "v316", "ph": "8dc1d197", "equity": 91493287, "ret": -8.51}, {"id": "v99", "ph": "fb39409b", "equity": 91441335, "ret": -8.56}, {"id": "v211", "ph": "9227673c", "equity": 91363538, "ret": -8.64}, {"id": "v107", "ph": "be5cd36b", "equity": 91245339, "ret": -8.75}, {"id": "v49", "ph": "cdba73e0", "equity": 90956284, "ret": -9.04}, {"id": "v57", "ph": "e7e98b6d", "equity": 90884208, "ret": -9.12}, {"id": "v157", "ph": "80f3e23b", "equity": 90863739, "ret": -9.14}, {"id": "v320", "ph": "48d6a9ef", "equity": 90822660, "ret": -9.18}, {"id": "v307", "ph": "6abce93d", "equity": 90804817, "ret": -9.2}, {"id": "v199", "ph": "390bfab3", "equity": 90742209, "ret": -9.26}, {"id": "v197", "ph": "5c290a32", "equity": 90666801, "ret": -9.33}, {"id": "v318", "ph": "c99872ef", "equity": 90516380, "ret": -9.48}, {"id": "v87", "ph": "c0be98c0", "equity": 90307213, "ret": -9.69}, {"id": "v93", "ph": "f10d4e45", "equity": 90307213, "ret": -9.69}, {"id": "v304", "ph": "96c7e8e1", "equity": 90277144, "ret": -9.72}, {"id": "v209", "ph": "8730802d", "equity": 90126539, "ret": -9.87}, {"id": "v91", "ph": "5674a3d7", "equity": 90021177, "ret": -9.98}, {"id": "v314", "ph": "7511570e", "equity": 89783375, "ret": -10.22}, {"id": "v189", "ph": "dfdbd0c8", "equity": 89633593, "ret": -10.37}, {"id": "v195", "ph": "dd89cf59", "equity": 89617275, "ret": -10.38}, {"id": "v201", "ph": "cb8a413e", "equity": 89617275, "ret": -10.38}, {"id": "v167", "ph": "b6d6aed8", "equity": 89610883, "ret": -10.39}, {"id": "v97", "ph": "ebf31977", "equity": 89568560, "ret": -10.43}, {"id": "v207", "ph": "0f6601a0", "equity": 89545866, "ret": -10.45}, {"id": "v215", "ph": "a904a49d", "equity": 88987147, "ret": -11.01}, {"id": "v161", "ph": "ed5677e6", "equity": 88936526, "ret": -11.06}, {"id": "v165", "ph": "8f862b27", "equity": 88936526, "ret": -11.06}, {"id": "v81", "ph": "a6eac1e4", "equity": 88933538, "ret": -11.07}, {"id": "v315", "ph": "e6d5b283", "equity": 88851609, "ret": -11.15}, {"id": "v306", "ph": "6966b8f6", "equity": 88712580, "ret": -11.29}, {"id": "v213", "ph": "0e1d8e45", "equity": 88203339, "ret": -11.8}, {"id": "v310", "ph": "ec9dd55c", "equity": 88037815, "ret": -11.96}, {"id": "v51", "ph": "21a98e46", "equity": 88001642, "ret": -12.0}, {"id": "v159", "ph": "af80c67a", "equity": 87978483, "ret": -12.02}, {"id": "v105", "ph": "88395429", "equity": 87164209, "ret": -12.84}, {"id": "v89", "ph": "c49d5680", "equity": 87152293, "ret": -12.85}, {"id": "v308", "ph": "cb12dd0b", "equity": 86987617, "ret": -13.01}, {"id": "v305", "ph": "8cc4eea6", "equity": 86676626, "ret": -13.32}, {"id": "v155", "ph": "31c0d84e", "equity": 86517483, "ret": -13.48}, {"id": "v301", "ph": "30da2021", "equity": 86299570, "ret": -13.7}, {"id": "v47", "ph": "ed758fcf", "equity": 86262582, "ret": -13.74}, {"id": "v312", "ph": "4c23846f", "equity": 85729419, "ret": -14.27}, {"id": "v1", "ph": "4874f4c9", "equity": 85660548, "ret": -14.34}, {"id": "v149", "ph": "c5329f8d", "equity": 85242679, "ret": -14.76}, {"id": "v303", "ph": "1a084164", "equity": 85186241, "ret": -14.81}, {"id": "v311", "ph": "8409c6e5", "equity": 85184230, "ret": -14.82}, {"id": "v218", "ph": "7304d2d4", "equity": 85145383, "ret": -14.85}, {"id": "v217", "ph": "4c547a61", "equity": 85097376, "ret": -14.9}, {"id": "v223", "ph": "b57356b8", "equity": 85083127, "ret": -14.92}, {"id": "v224", "ph": "888ab069", "equity": 85083127, "ret": -14.92}, {"id": "v229", "ph": "d9261dfb", "equity": 85083127, "ret": -14.92}, {"id": "v230", "ph": "141579fe", "equity": 85083127, "ret": -14.92}, {"id": "v235", "ph": "3e6c1666", "equity": 85083127, "ret": -14.92}, {"id": "v236", "ph": "f9c75560", "equity": 85083127, "ret": -14.92}, {"id": "v265", "ph": "7faed59d", "equity": 85083127, "ret": -14.92}, {"id": "v266", "ph": "c133b585", "equity": 85083127, "ret": -14.92}, {"id": "v271", "ph": "2b9ccdcd", "equity": 85083127, "ret": -14.92}, {"id": "v272", "ph": "2ed2027f", "equity": 85083127, "ret": -14.92}, {"id": "v277", "ph": "488b612a", "equity": 85083127, "ret": -14.92}, {"id": "v278", "ph": "861fb42b", "equity": 85083127, "ret": -14.92}, {"id": "v283", "ph": "479e4b25", "equity": 85083127, "ret": -14.92}, {"id": "v284", "ph": "261c5d58", "equity": 85083127, "ret": -14.92}, {"id": "v309", "ph": "07610040", "equity": 84801897, "ret": -15.2}, {"id": "v302", "ph": "3f30502d", "equity": 82984780, "ret": -17.02}, {"id": "v41", "ph": "e9d84e84", "equity": 82442562, "ret": -17.56}, {"id": "v151", "ph": "2eb1dd06", "equity": 82206766, "ret": -17.79}, {"id": "v147", "ph": "2fbeeedb", "equity": 80675705, "ret": -19.32}, {"id": "v4", "ph": "b6219595", "equity": 79163178, "ret": -20.84}, {"id": "v296", "ph": "4c554378", "equity": 79015755, "ret": -20.98}, {"id": "v40", "ph": "70731d89", "equity": 77413917, "ret": -22.59}, {"id": "v298", "ph": "5d4bbec0", "equity": 77045963, "ret": -22.95}, {"id": "v299", "ph": "25046b1a", "equity": 73699362, "ret": -26.3}, {"id": "v300", "ph": "c6ddc17b", "equity": 70020634, "ret": -29.98}], "20260723": [{"id": "v319", "ph": "ca25f043", "equity": 97344281, "ret": -2.66}, {"id": "v321", "ph": "e82de49b", "equity": 96850290, "ret": -3.15}, {"id": "v317", "ph": "51f8ee6d", "equity": 95483411, "ret": -4.52}, {"id": "v103", "ph": "75b0a37c", "equity": 94719243, "ret": -5.28}, {"id": "v203", "ph": "2071defa", "equity": 94158254, "ret": -5.84}, {"id": "v313", "ph": "b9f4ee72", "equity": 93714884, "ret": -6.29}, {"id": "v101", "ph": "c4354346", "equity": 93675266, "ret": -6.32}, {"id": "v95", "ph": "7e28e756", "equity": 93472137, "ret": -6.53}, {"id": "v205", "ph": "02e5a3f5", "equity": 93469960, "ret": -6.53}, {"id": "v59", "ph": "1858e2ec", "equity": 93262679, "ret": -6.74}, {"id": "v99", "ph": "fb39409b", "equity": 92998776, "ret": -7.0}, {"id": "v211", "ph": "9227673c", "equity": 92839096, "ret": -7.16}, {"id": "v107", "ph": "be5cd36b", "equity": 92768400, "ret": -7.23}, {"id": "v49", "ph": "cdba73e0", "equity": 92637002, "ret": -7.36}, {"id": "v57", "ph": "e7e98b6d", "equity": 92587857, "ret": -7.41}, {"id": "v157", "ph": "80f3e23b", "equity": 92198402, "ret": -7.8}, {"id": "v197", "ph": "5c290a32", "equity": 92020162, "ret": -7.98}, {"id": "v318", "ph": "c99872ef", "equity": 91922879, "ret": -8.08}, {"id": "v199", "ph": "390bfab3", "equity": 91822113, "ret": -8.18}, {"id": "v87", "ph": "c0be98c0", "equity": 91746796, "ret": -8.25}, {"id": "v93", "ph": "f10d4e45", "equity": 91746796, "ret": -8.25}, {"id": "v316", "ph": "8dc1d197", "equity": 91739958, "ret": -8.26}, {"id": "v209", "ph": "8730802d", "equity": 91679109, "ret": -8.32}, {"id": "v307", "ph": "6abce93d", "equity": 91621406, "ret": -8.38}, {"id": "v91", "ph": "5674a3d7", "equity": 91420862, "ret": -8.58}, {"id": "v167", "ph": "b6d6aed8", "equity": 91099221, "ret": -8.9}, {"id": "v320", "ph": "48d6a9ef", "equity": 91086838, "ret": -8.91}, {"id": "v207", "ph": "0f6601a0", "equity": 91055209, "ret": -8.94}, {"id": "v315", "ph": "e6d5b283", "equity": 91044857, "ret": -8.96}, {"id": "v195", "ph": "dd89cf59", "equity": 91023841, "ret": -8.98}, {"id": "v201", "ph": "cb8a413e", "equity": 91023841, "ret": -8.98}, {"id": "v189", "ph": "dfdbd0c8", "equity": 90930405, "ret": -9.07}, {"id": "v97", "ph": "ebf31977", "equity": 90916706, "ret": -9.08}, {"id": "v304", "ph": "96c7e8e1", "equity": 90835706, "ret": -9.16}, {"id": "v314", "ph": "7511570e", "equity": 90554102, "ret": -9.45}, {"id": "v215", "ph": "a904a49d", "equity": 90456632, "ret": -9.54}, {"id": "v161", "ph": "ed5677e6", "equity": 90423951, "ret": -9.58}, {"id": "v165", "ph": "8f862b27", "equity": 90423951, "ret": -9.58}, {"id": "v81", "ph": "a6eac1e4", "equity": 90376813, "ret": -9.62}, {"id": "v306", "ph": "6966b8f6", "equity": 90321719, "ret": -9.68}, {"id": "v213", "ph": "0e1d8e45", "equity": 89961686, "ret": -10.04}, {"id": "v51", "ph": "21a98e46", "equity": 89571712, "ret": -10.43}, {"id": "v159", "ph": "af80c67a", "equity": 89135465, "ret": -10.86}, {"id": "v105", "ph": "88395429", "equity": 88920614, "ret": -11.08}, {"id": "v310", "ph": "ec9dd55c", "equity": 88699473, "ret": -11.3}, {"id": "v308", "ph": "cb12dd0b", "equity": 88514255, "ret": -11.49}, {"id": "v89", "ph": "c49d5680", "equity": 88441737, "ret": -11.56}, {"id": "v301", "ph": "30da2021", "equity": 88202693, "ret": -11.8}, {"id": "v1", "ph": "4874f4c9", "equity": 88009125, "ret": -11.99}, {"id": "v47", "ph": "ed758fcf", "equity": 87718830, "ret": -12.28}, {"id": "v312", "ph": "4c23846f", "equity": 87724114, "ret": -12.28}, {"id": "v305", "ph": "8cc4eea6", "equity": 87671213, "ret": -12.33}, {"id": "v155", "ph": "31c0d84e", "equity": 87570429, "ret": -12.43}, {"id": "v309", "ph": "07610040", "equity": 86809577, "ret": -13.19}, {"id": "v311", "ph": "8409c6e5", "equity": 86747172, "ret": -13.25}, {"id": "v149", "ph": "c5329f8d", "equity": 86595308, "ret": -13.4}, {"id": "v303", "ph": "1a084164", "equity": 86502167, "ret": -13.5}, {"id": "v217", "ph": "4c547a61", "equity": 86319467, "ret": -13.68}, {"id": "v223", "ph": "b57356b8", "equity": 86305218, "ret": -13.69}, {"id": "v229", "ph": "d9261dfb", "equity": 86305218, "ret": -13.69}, {"id": "v235", "ph": "3e6c1666", "equity": 86305218, "ret": -13.69}, {"id": "v265", "ph": "7faed59d", "equity": 86305218, "ret": -13.69}, {"id": "v271", "ph": "2b9ccdcd", "equity": 86305218, "ret": -13.69}, {"id": "v277", "ph": "488b612a", "equity": 86305218, "ret": -13.69}, {"id": "v283", "ph": "479e4b25", "equity": 86305218, "ret": -13.69}, {"id": "v218", "ph": "7304d2d4", "equity": 86106155, "ret": -13.89}, {"id": "v224", "ph": "888ab069", "equity": 86043899, "ret": -13.96}, {"id": "v230", "ph": "141579fe", "equity": 86043899, "ret": -13.96}, {"id": "v236", "ph": "f9c75560", "equity": 86043899, "ret": -13.96}, {"id": "v266", "ph": "c133b585", "equity": 86043899, "ret": -13.96}, {"id": "v272", "ph": "2ed2027f", "equity": 86043899, "ret": -13.96}, {"id": "v278", "ph": "861fb42b", "equity": 86043899, "ret": -13.96}, {"id": "v284", "ph": "261c5d58", "equity": 86043899, "ret": -13.96}, {"id": "v302", "ph": "3f30502d", "equity": 84642676, "ret": -15.36}, {"id": "v41", "ph": "e9d84e84", "equity": 84069115, "ret": -15.93}, {"id": "v151", "ph": "2eb1dd06", "equity": 83455339, "ret": -16.54}, {"id": "v147", "ph": "2fbeeedb", "equity": 81819890, "ret": -18.18}, {"id": "v4", "ph": "b6219595", "equity": 81192265, "ret": -18.81}, {"id": "v296", "ph": "4c554378", "equity": 80153572, "ret": -19.85}, {"id": "v298", "ph": "5d4bbec0", "equity": 79608330, "ret": -20.39}, {"id": "v40", "ph": "70731d89", "equity": 79425329, "ret": -20.57}, {"id": "v299", "ph": "25046b1a", "equity": 75593122, "ret": -24.41}, {"id": "v300", "ph": "c6ddc17b", "equity": 70280913, "ret": -29.72}], "20260724": [{"id": "v321", "ph": "e82de49b", "equity": 96237233, "ret": -3.76}, {"id": "v319", "ph": "ca25f043", "equity": 96203069, "ret": -3.8}, {"id": "v317", "ph": "51f8ee6d", "equity": 95142012, "ret": -4.86}, {"id": "v103", "ph": "75b0a37c", "equity": 94389132, "ret": -5.61}, {"id": "v203", "ph": "2071defa", "equity": 94123912, "ret": -5.88}, {"id": "v101", "ph": "c4354346", "equity": 93837838, "ret": -6.16}, {"id": "v59", "ph": "1858e2ec", "equity": 93439966, "ret": -6.56}, {"id": "v95", "ph": "7e28e756", "equity": 93440053, "ret": -6.56}, {"id": "v99", "ph": "fb39409b", "equity": 93161488, "ret": -6.84}, {"id": "v313", "ph": "b9f4ee72", "equity": 93040980, "ret": -6.96}, {"id": "v57", "ph": "e7e98b6d", "equity": 92766145, "ret": -7.23}, {"id": "v205", "ph": "02e5a3f5", "equity": 92735433, "ret": -7.26}, {"id": "v49", "ph": "cdba73e0", "equity": 92627409, "ret": -7.37}, {"id": "v211", "ph": "9227673c", "equity": 92514138, "ret": -7.49}, {"id": "v157", "ph": "80f3e23b", "equity": 92321501, "ret": -7.68}, {"id": "v107", "ph": "be5cd36b", "equity": 92301034, "ret": -7.7}, {"id": "v318", "ph": "c99872ef", "equity": 92080434, "ret": -7.92}, {"id": "v209", "ph": "8730802d", "equity": 91841028, "ret": -8.16}, {"id": "v87", "ph": "c0be98c0", "equity": 91427126, "ret": -8.57}, {"id": "v93", "ph": "f10d4e45", "equity": 91427126, "ret": -8.57}, {"id": "v199", "ph": "390bfab3", "equity": 91380551, "ret": -8.62}, {"id": "v167", "ph": "b6d6aed8", "equity": 91262815, "ret": -8.74}, {"id": "v207", "ph": "0f6601a0", "equity": 91216803, "ret": -8.78}, {"id": "v197", "ph": "5c290a32", "equity": 91077525, "ret": -8.92}, {"id": "v316", "ph": "8dc1d197", "equity": 91062293, "ret": -8.94}, {"id": "v91", "ph": "5674a3d7", "equity": 91042619, "ret": -8.96}, {"id": "v307", "ph": "6abce93d", "equity": 90976224, "ret": -9.02}, {"id": "v315", "ph": "e6d5b283", "equity": 90845783, "ret": -9.15}, {"id": "v195", "ph": "dd89cf59", "equity": 90706261, "ret": -9.29}, {"id": "v201", "ph": "cb8a413e", "equity": 90706261, "ret": -9.29}, {"id": "v161", "ph": "ed5677e6", "equity": 90585528, "ret": -9.41}, {"id": "v165", "ph": "8f862b27", "equity": 90585528, "ret": -9.41}, {"id": "v189", "ph": "dfdbd0c8", "equity": 90470422, "ret": -9.53}, {"id": "v320", "ph": "48d6a9ef", "equity": 90368822, "ret": -9.63}, {"id": "v314", "ph": "7511570e", "equity": 90252487, "ret": -9.75}, {"id": "v304", "ph": "96c7e8e1", "equity": 90177917, "ret": -9.82}, {"id": "v97", "ph": "ebf31977", "equity": 90152329, "ret": -9.85}, {"id": "v215", "ph": "a904a49d", "equity": 90016445, "ret": -9.98}, {"id": "v81", "ph": "a6eac1e4", "equity": 89712670, "ret": -10.29}, {"id": "v306", "ph": "6966b8f6", "equity": 89501964, "ret": -10.5}, {"id": "v213", "ph": "0e1d8e45", "equity": 89150614, "ret": -10.85}, {"id": "v51", "ph": "21a98e46", "equity": 88932420, "ret": -11.07}, {"id": "v159", "ph": "af80c67a", "equity": 88745758, "ret": -11.25}, {"id": "v301", "ph": "30da2021", "equity": 88250018, "ret": -11.75}, {"id": "v1", "ph": "4874f4c9", "equity": 88118722, "ret": -11.88}, {"id": "v105", "ph": "88395429", "equity": 88117432, "ret": -11.88}, {"id": "v310", "ph": "ec9dd55c", "equity": 88076730, "ret": -11.92}, {"id": "v308", "ph": "cb12dd0b", "equity": 87474376, "ret": -12.53}, {"id": "v312", "ph": "4c23846f", "equity": 87471024, "ret": -12.53}, {"id": "v89", "ph": "c49d5680", "equity": 87455787, "ret": -12.54}, {"id": "v305", "ph": "8cc4eea6", "equity": 86976768, "ret": -13.02}, {"id": "v47", "ph": "ed758fcf", "equity": 86781583, "ret": -13.22}, {"id": "v309", "ph": "07610040", "equity": 86727542, "ret": -13.27}, {"id": "v155", "ph": "31c0d84e", "equity": 86636675, "ret": -13.36}, {"id": "v311", "ph": "8409c6e5", "equity": 86322712, "ret": -13.68}, {"id": "v303", "ph": "1a084164", "equity": 85646622, "ret": -14.35}, {"id": "v217", "ph": "4c547a61", "equity": 85578880, "ret": -14.42}, {"id": "v223", "ph": "b57356b8", "equity": 85564631, "ret": -14.44}, {"id": "v229", "ph": "d9261dfb", "equity": 85564631, "ret": -14.44}, {"id": "v235", "ph": "3e6c1666", "equity": 85564631, "ret": -14.44}, {"id": "v265", "ph": "7faed59d", "equity": 85564631, "ret": -14.44}, {"id": "v271", "ph": "2b9ccdcd", "equity": 85564631, "ret": -14.44}, {"id": "v277", "ph": "488b612a", "equity": 85564631, "ret": -14.44}, {"id": "v283", "ph": "479e4b25", "equity": 85564631, "ret": -14.44}, {"id": "v149", "ph": "c5329f8d", "equity": 85370732, "ret": -14.63}, {"id": "v218", "ph": "7304d2d4", "equity": 85156011, "ret": -14.84}, {"id": "v224", "ph": "888ab069", "equity": 85093755, "ret": -14.91}, {"id": "v230", "ph": "141579fe", "equity": 85093755, "ret": -14.91}, {"id": "v236", "ph": "f9c75560", "equity": 85093755, "ret": -14.91}, {"id": "v266", "ph": "c133b585", "equity": 85093755, "ret": -14.91}, {"id": "v272", "ph": "2ed2027f", "equity": 85093755, "ret": -14.91}, {"id": "v278", "ph": "861fb42b", "equity": 85093755, "ret": -14.91}, {"id": "v284", "ph": "261c5d58", "equity": 85093755, "ret": -14.91}, {"id": "v302", "ph": "3f30502d", "equity": 83847192, "ret": -16.15}, {"id": "v41", "ph": "e9d84e84", "equity": 82899458, "ret": -17.1}, {"id": "v151", "ph": "2eb1dd06", "equity": 81773497, "ret": -18.23}, {"id": "v147", "ph": "2fbeeedb", "equity": 80283719, "ret": -19.72}, {"id": "v296", "ph": "4c554378", "equity": 79663192, "ret": -20.34}, {"id": "v4", "ph": "b6219595", "equity": 79399957, "ret": -20.6}, {"id": "v298", "ph": "5d4bbec0", "equity": 79128726, "ret": -20.87}, {"id": "v40", "ph": "70731d89", "equity": 77672758, "ret": -22.33}, {"id": "v299", "ph": "25046b1a", "equity": 74613187, "ret": -25.39}, {"id": "v300", "ph": "c6ddc17b", "equity": 68893661, "ret": -31.11}], "20260727": [{"id": "v319", "ph": "ca25f043", "equity": 96215398, "ret": -3.78}, {"id": "v321", "ph": "e82de49b", "equity": 96119353, "ret": -3.88}, {"id": "v317", "ph": "51f8ee6d", "equity": 94365997, "ret": -5.63}, {"id": "v313", "ph": "b9f4ee72", "equity": 92087348, "ret": -7.91}, {"id": "v205", "ph": "02e5a3f5", "equity": 91566888, "ret": -8.43}, {"id": "v103", "ph": "75b0a37c", "equity": 91527732, "ret": -8.47}, {"id": "v318", "ph": "c99872ef", "equity": 91436234, "ret": -8.56}, {"id": "v101", "ph": "c4354346", "equity": 91386557, "ret": -8.61}, {"id": "v316", "ph": "8dc1d197", "equity": 91315493, "ret": -8.68}, {"id": "v203", "ph": "2071defa", "equity": 91263472, "ret": -8.74}, {"id": "v59", "ph": "1858e2ec", "equity": 91203098, "ret": -8.8}, {"id": "v99", "ph": "fb39409b", "equity": 90724166, "ret": -9.28}, {"id": "v95", "ph": "7e28e756", "equity": 90643772, "ret": -9.36}, {"id": "v320", "ph": "48d6a9ef", "equity": 90640222, "ret": -9.36}, {"id": "v57", "ph": "e7e98b6d", "equity": 90538996, "ret": -9.46}, {"id": "v304", "ph": "96c7e8e1", "equity": 90010466, "ret": -9.99}, {"id": "v197", "ph": "5c290a32", "equity": 89994081, "ret": -10.01}, {"id": "v49", "ph": "cdba73e0", "equity": 89967305, "ret": -10.03}, {"id": "v307", "ph": "6abce93d", "equity": 89797098, "ret": -10.2}, {"id": "v211", "ph": "9227673c", "equity": 89696806, "ret": -10.3}, {"id": "v157", "ph": "80f3e23b", "equity": 89520572, "ret": -10.48}, {"id": "v97", "ph": "ebf31977", "equity": 89499524, "ret": -10.5}, {"id": "v209", "ph": "8730802d", "equity": 89427970, "ret": -10.57}, {"id": "v315", "ph": "e6d5b283", "equity": 89407562, "ret": -10.59}, {"id": "v314", "ph": "7511570e", "equity": 89232014, "ret": -10.77}, {"id": "v199", "ph": "390bfab3", "equity": 89136479, "ret": -10.86}, {"id": "v107", "ph": "be5cd36b", "equity": 88997031, "ret": -11.0}, {"id": "v306", "ph": "6966b8f6", "equity": 88898954, "ret": -11.1}, {"id": "v167", "ph": "b6d6aed8", "equity": 88855562, "ret": -11.14}, {"id": "v91", "ph": "5674a3d7", "equity": 88823953, "ret": -11.18}, {"id": "v207", "ph": "0f6601a0", "equity": 88816070, "ret": -11.18}, {"id": "v87", "ph": "c0be98c0", "equity": 88636523, "ret": -11.36}, {"id": "v93", "ph": "f10d4e45", "equity": 88636523, "ret": -11.36}, {"id": "v161", "ph": "ed5677e6", "equity": 88195113, "ret": -11.8}, {"id": "v165", "ph": "8f862b27", "equity": 88195113, "ret": -11.8}, {"id": "v195", "ph": "dd89cf59", "equity": 87928163, "ret": -12.07}, {"id": "v201", "ph": "cb8a413e", "equity": 87928163, "ret": -12.07}, {"id": "v310", "ph": "ec9dd55c", "equity": 87713974, "ret": -12.29}, {"id": "v189", "ph": "dfdbd0c8", "equity": 87256821, "ret": -12.74}, {"id": "v213", "ph": "0e1d8e45", "equity": 87225882, "ret": -12.77}, {"id": "v89", "ph": "c49d5680", "equity": 86914225, "ret": -13.09}, {"id": "v215", "ph": "a904a49d", "equity": 86794256, "ret": -13.21}, {"id": "v305", "ph": "8cc4eea6", "equity": 86692434, "ret": -13.31}, {"id": "v81", "ph": "a6eac1e4", "equity": 86512696, "ret": -13.49}, {"id": "v308", "ph": "cb12dd0b", "equity": 86242151, "ret": -13.76}, {"id": "v312", "ph": "4c23846f", "equity": 86237324, "ret": -13.76}, {"id": "v105", "ph": "88395429", "equity": 86181944, "ret": -13.82}, {"id": "v47", "ph": "ed758fcf", "equity": 85970426, "ret": -14.03}, {"id": "v51", "ph": "21a98e46", "equity": 85923618, "ret": -14.08}, {"id": "v311", "ph": "8409c6e5", "equity": 85840299, "ret": -14.16}, {"id": "v159", "ph": "af80c67a", "equity": 85556128, "ret": -14.44}, {"id": "v309", "ph": "07610040", "equity": 85212542, "ret": -14.79}, {"id": "v301", "ph": "30da2021", "equity": 85064270, "ret": -14.94}, {"id": "v155", "ph": "31c0d84e", "equity": 84722023, "ret": -15.28}, {"id": "v1", "ph": "4874f4c9", "equity": 84354514, "ret": -15.65}, {"id": "v149", "ph": "c5329f8d", "equity": 84276130, "ret": -15.72}, {"id": "v303", "ph": "1a084164", "equity": 84040178, "ret": -15.96}, {"id": "v223", "ph": "b57356b8", "equity": 83914010, "ret": -16.09}, {"id": "v235", "ph": "3e6c1666", "equity": 83914010, "ret": -16.09}, {"id": "v265", "ph": "7faed59d", "equity": 83914010, "ret": -16.09}, {"id": "v271", "ph": "2b9ccdcd", "equity": 83914010, "ret": -16.09}, {"id": "v217", "ph": "4c547a61", "equity": 83870676, "ret": -16.13}, {"id": "v229", "ph": "d9261dfb", "equity": 83856427, "ret": -16.14}, {"id": "v277", "ph": "488b612a", "equity": 83856427, "ret": -16.14}, {"id": "v283", "ph": "479e4b25", "equity": 83856427, "ret": -16.14}, {"id": "v224", "ph": "888ab069", "equity": 82980608, "ret": -17.02}, {"id": "v236", "ph": "f9c75560", "equity": 82980608, "ret": -17.02}, {"id": "v266", "ph": "c133b585", "equity": 82980608, "ret": -17.02}, {"id": "v272", "ph": "2ed2027f", "equity": 82980608, "ret": -17.02}, {"id": "v218", "ph": "7304d2d4", "equity": 82969395, "ret": -17.03}, {"id": "v230", "ph": "141579fe", "equity": 82907139, "ret": -17.09}, {"id": "v278", "ph": "861fb42b", "equity": 82907139, "ret": -17.09}, {"id": "v284", "ph": "261c5d58", "equity": 82907139, "ret": -17.09}, {"id": "v41", "ph": "e9d84e84", "equity": 81926428, "ret": -18.07}, {"id": "v302", "ph": "3f30502d", "equity": 81093448, "ret": -18.91}, {"id": "v151", "ph": "2eb1dd06", "equity": 80871239, "ret": -19.13}, {"id": "v147", "ph": "2fbeeedb", "equity": 79336726, "ret": -20.66}, {"id": "v296", "ph": "4c554378", "equity": 79038392, "ret": -20.96}, {"id": "v4", "ph": "b6219595", "equity": 78306323, "ret": -21.69}, {"id": "v298", "ph": "5d4bbec0", "equity": 77972386, "ret": -22.03}, {"id": "v40", "ph": "70731d89", "equity": 76598748, "ret": -23.4}, {"id": "v299", "ph": "25046b1a", "equity": 73737330, "ret": -26.26}, {"id": "v300", "ph": "c6ddc17b", "equity": 67419334, "ret": -32.58}], "20260728": [{"id": "v321", "ph": "e82de49b", "equity": 95058610, "ret": -4.94}, {"id": "v319", "ph": "ca25f043", "equity": 94278998, "ret": -5.72}, {"id": "v317", "ph": "51f8ee6d", "equity": 93501993, "ret": -6.5}, {"id": "v318", "ph": "c99872ef", "equity": 90762837, "ret": -9.24}, {"id": "v316", "ph": "8dc1d197", "equity": 90381365, "ret": -9.62}, {"id": "v313", "ph": "b9f4ee72", "equity": 90179251, "ret": -9.82}, {"id": "v320", "ph": "48d6a9ef", "equity": 89554005, "ret": -10.45}, {"id": "v203", "ph": "2071defa", "equity": 89343448, "ret": -10.66}, {"id": "v59", "ph": "1858e2ec", "equity": 89333757, "ret": -10.67}, {"id": "v205", "ph": "02e5a3f5", "equity": 89314987, "ret": -10.69}, {"id": "v95", "ph": "7e28e756", "equity": 89152772, "ret": -10.85}, {"id": "v101", "ph": "c4354346", "equity": 89078335, "ret": -10.92}, {"id": "v103", "ph": "75b0a37c", "equity": 88931347, "ret": -11.07}, {"id": "v57", "ph": "e7e98b6d", "equity": 88674323, "ret": -11.33}, {"id": "v49", "ph": "cdba73e0", "equity": 88478333, "ret": -11.52}, {"id": "v99", "ph": "fb39409b", "equity": 88425192, "ret": -11.57}, {"id": "v307", "ph": "6abce93d", "equity": 88341787, "ret": -11.66}, {"id": "v315", "ph": "e6d5b283", "equity": 88059990, "ret": -11.94}, {"id": "v314", "ph": "7511570e", "equity": 87815919, "ret": -12.18}, {"id": "v197", "ph": "5c290a32", "equity": 87649278, "ret": -12.35}, {"id": "v97", "ph": "ebf31977", "equity": 87494603, "ret": -12.51}, {"id": "v304", "ph": "96c7e8e1", "equity": 87477988, "ret": -12.52}, {"id": "v306", "ph": "6966b8f6", "equity": 87258167, "ret": -12.74}, {"id": "v157", "ph": "80f3e23b", "equity": 87251515, "ret": -12.75}, {"id": "v209", "ph": "8730802d", "equity": 87152019, "ret": -12.85}, {"id": "v211", "ph": "9227673c", "equity": 87129408, "ret": -12.87}, {"id": "v199", "ph": "390bfab3", "equity": 86980353, "ret": -13.02}, {"id": "v91", "ph": "5674a3d7", "equity": 86736102, "ret": -13.26}, {"id": "v167", "ph": "b6d6aed8", "equity": 86572733, "ret": -13.43}, {"id": "v207", "ph": "0f6601a0", "equity": 86559017, "ret": -13.44}, {"id": "v310", "ph": "ec9dd55c", "equity": 86539949, "ret": -13.46}, {"id": "v107", "ph": "be5cd36b", "equity": 86118013, "ret": -13.88}, {"id": "v87", "ph": "c0be98c0", "equity": 86086741, "ret": -13.91}, {"id": "v93", "ph": "f10d4e45", "equity": 86086741, "ret": -13.91}, {"id": "v161", "ph": "ed5677e6", "equity": 85938401, "ret": -14.06}, {"id": "v165", "ph": "8f862b27", "equity": 85938401, "ret": -14.06}, {"id": "v195", "ph": "dd89cf59", "equity": 85385069, "ret": -14.61}, {"id": "v201", "ph": "cb8a413e", "equity": 85385069, "ret": -14.61}, {"id": "v312", "ph": "4c23846f", "equity": 84707127, "ret": -15.29}, {"id": "v213", "ph": "0e1d8e45", "equity": 84620529, "ret": -15.38}, {"id": "v311", "ph": "8409c6e5", "equity": 84620888, "ret": -15.38}, {"id": "v81", "ph": "a6eac1e4", "equity": 84501334, "ret": -15.5}, {"id": "v308", "ph": "cb12dd0b", "equity": 84492044, "ret": -15.51}, {"id": "v89", "ph": "c49d5680", "equity": 84419073, "ret": -15.58}, {"id": "v189", "ph": "dfdbd0c8", "equity": 84299095, "ret": -15.7}, {"id": "v305", "ph": "8cc4eea6", "equity": 84000731, "ret": -16.0}, {"id": "v215", "ph": "a904a49d", "equity": 83983415, "ret": -16.02}, {"id": "v51", "ph": "21a98e46", "equity": 83908507, "ret": -16.09}, {"id": "v47", "ph": "ed758fcf", "equity": 83660987, "ret": -16.34}, {"id": "v105", "ph": "88395429", "equity": 83578935, "ret": -16.42}, {"id": "v309", "ph": "07610040", "equity": 82949428, "ret": -17.05}, {"id": "v159", "ph": "af80c67a", "equity": 82639296, "ret": -17.36}, {"id": "v301", "ph": "30da2021", "equity": 82468997, "ret": -17.53}, {"id": "v155", "ph": "31c0d84e", "equity": 82058836, "ret": -17.94}, {"id": "v1", "ph": "4874f4c9", "equity": 81613783, "ret": -18.39}, {"id": "v223", "ph": "b57356b8", "equity": 81495839, "ret": -18.5}, {"id": "v235", "ph": "3e6c1666", "equity": 81495839, "ret": -18.5}, {"id": "v265", "ph": "7faed59d", "equity": 81495839, "ret": -18.5}, {"id": "v271", "ph": "2b9ccdcd", "equity": 81495839, "ret": -18.5}, {"id": "v303", "ph": "1a084164", "equity": 81241910, "ret": -18.76}, {"id": "v149", "ph": "c5329f8d", "equity": 81219353, "ret": -18.78}, {"id": "v217", "ph": "4c547a61", "equity": 81123906, "ret": -18.88}, {"id": "v229", "ph": "d9261dfb", "equity": 81109656, "ret": -18.89}, {"id": "v277", "ph": "488b612a", "equity": 81109656, "ret": -18.89}, {"id": "v283", "ph": "479e4b25", "equity": 81109656, "ret": -18.89}, {"id": "v224", "ph": "888ab069", "equity": 80452478, "ret": -19.55}, {"id": "v236", "ph": "f9c75560", "equity": 80452478, "ret": -19.55}, {"id": "v266", "ph": "c133b585", "equity": 80452478, "ret": -19.55}, {"id": "v272", "ph": "2ed2027f", "equity": 80452478, "ret": -19.55}, {"id": "v218", "ph": "7304d2d4", "equity": 80079935, "ret": -19.92}, {"id": "v230", "ph": "141579fe", "equity": 80017679, "ret": -19.98}, {"id": "v278", "ph": "861fb42b", "equity": 80017679, "ret": -19.98}, {"id": "v284", "ph": "261c5d58", "equity": 80017679, "ret": -19.98}, {"id": "v41", "ph": "e9d84e84", "equity": 79192636, "ret": -20.81}, {"id": "v302", "ph": "3f30502d", "equity": 78215021, "ret": -21.78}, {"id": "v151", "ph": "2eb1dd06", "equity": 76870364, "ret": -23.13}, {"id": "v296", "ph": "4c554378", "equity": 76753047, "ret": -23.25}, {"id": "v4", "ph": "b6219595", "equity": 75006311, "ret": -24.99}, {"id": "v147", "ph": "2fbeeedb", "equity": 74883917, "ret": -25.12}, {"id": "v298", "ph": "5d4bbec0", "equity": 74713064, "ret": -25.29}, {"id": "v40", "ph": "70731d89", "equity": 73783421, "ret": -26.22}, {"id": "v299", "ph": "25046b1a", "equity": 71014082, "ret": -28.99}, {"id": "v300", "ph": "c6ddc17b", "equity": 63878657, "ret": -36.12}], "20260729": [{"id": "v319", "ph": "ca25f043", "equity": 93924794, "ret": -6.08}, {"id": "v321", "ph": "e82de49b", "equity": 93558232, "ret": -6.44}, {"id": "v317", "ph": "51f8ee6d", "equity": 93184274, "ret": -6.82}, {"id": "v318", "ph": "c99872ef", "equity": 90393054, "ret": -9.61}, {"id": "v313", "ph": "b9f4ee72", "equity": 89637483, "ret": -10.36}, {"id": "v316", "ph": "8dc1d197", "equity": 89571241, "ret": -10.43}, {"id": "v320", "ph": "48d6a9ef", "equity": 88741464, "ret": -11.26}, {"id": "v203", "ph": "2071defa", "equity": 88327524, "ret": -11.67}, {"id": "v205", "ph": "02e5a3f5", "equity": 88146013, "ret": -11.85}, {"id": "v95", "ph": "7e28e756", "equity": 88139927, "ret": -11.86}, {"id": "v101", "ph": "c4354346", "equity": 87952375, "ret": -12.05}, {"id": "v59", "ph": "1858e2ec", "equity": 87864837, "ret": -12.14}, {"id": "v307", "ph": "6abce93d", "equity": 87433836, "ret": -12.57}, {"id": "v49", "ph": "cdba73e0", "equity": 87140436, "ret": -12.86}, {"id": "v103", "ph": "75b0a37c", "equity": 87073993, "ret": -12.93}, {"id": "v97", "ph": "ebf31977", "equity": 86702025, "ret": -13.3}, {"id": "v99", "ph": "fb39409b", "equity": 86471133, "ret": -13.53}, {"id": "v57", "ph": "e7e98b6d", "equity": 86378895, "ret": -13.62}, {"id": "v304", "ph": "96c7e8e1", "equity": 86314603, "ret": -13.69}, {"id": "v314", "ph": "7511570e", "equity": 86266631, "ret": -13.73}, {"id": "v315", "ph": "e6d5b283", "equity": 86107458, "ret": -13.89}, {"id": "v157", "ph": "80f3e23b", "equity": 86070444, "ret": -13.93}, {"id": "v209", "ph": "8730802d", "equity": 86055971, "ret": -13.94}, {"id": "v197", "ph": "5c290a32", "equity": 85743750, "ret": -14.26}, {"id": "v306", "ph": "6966b8f6", "equity": 85367861, "ret": -14.63}, {"id": "v211", "ph": "9227673c", "equity": 85304568, "ret": -14.7}, {"id": "v167", "ph": "b6d6aed8", "equity": 85168500, "ret": -14.83}, {"id": "v91", "ph": "5674a3d7", "equity": 85151678, "ret": -14.85}, {"id": "v310", "ph": "ec9dd55c", "equity": 85089189, "ret": -14.91}, {"id": "v199", "ph": "390bfab3", "equity": 85045878, "ret": -14.95}, {"id": "v207", "ph": "0f6601a0", "equity": 84635702, "ret": -15.36}, {"id": "v107", "ph": "be5cd36b", "equity": 84546461, "ret": -15.45}, {"id": "v87", "ph": "c0be98c0", "equity": 84205394, "ret": -15.79}, {"id": "v93", "ph": "f10d4e45", "equity": 84205394, "ret": -15.79}, {"id": "v161", "ph": "ed5677e6", "equity": 83734310, "ret": -16.27}, {"id": "v165", "ph": "8f862b27", "equity": 83734310, "ret": -16.27}, {"id": "v312", "ph": "4c23846f", "equity": 83623636, "ret": -16.38}, {"id": "v308", "ph": "cb12dd0b", "equity": 83558346, "ret": -16.44}, {"id": "v195", "ph": "dd89cf59", "equity": 83510907, "ret": -16.49}, {"id": "v201", "ph": "cb8a413e", "equity": 83510907, "ret": -16.49}, {"id": "v311", "ph": "8409c6e5", "equity": 83248130, "ret": -16.75}, {"id": "v89", "ph": "c49d5680", "equity": 83114030, "ret": -16.89}, {"id": "v81", "ph": "a6eac1e4", "equity": 82809348, "ret": -17.19}, {"id": "v213", "ph": "0e1d8e45", "equity": 82789292, "ret": -17.21}, {"id": "v305", "ph": "8cc4eea6", "equity": 82546113, "ret": -17.45}, {"id": "v215", "ph": "a904a49d", "equity": 82446659, "ret": -17.55}, {"id": "v47", "ph": "ed758fcf", "equity": 82288252, "ret": -17.71}, {"id": "v51", "ph": "21a98e46", "equity": 82069944, "ret": -17.93}, {"id": "v189", "ph": "dfdbd0c8", "equity": 82004327, "ret": -18.0}, {"id": "v105", "ph": "88395429", "equity": 81751282, "ret": -18.25}, {"id": "v309", "ph": "07610040", "equity": 81181453, "ret": -18.82}, {"id": "v155", "ph": "31c0d84e", "equity": 80844973, "ret": -19.16}, {"id": "v149", "ph": "c5329f8d", "equity": 80462420, "ret": -19.54}, {"id": "v159", "ph": "af80c67a", "equity": 80403834, "ret": -19.6}, {"id": "v223", "ph": "b57356b8", "equity": 79877386, "ret": -20.12}, {"id": "v235", "ph": "3e6c1666", "equity": 79877386, "ret": -20.12}, {"id": "v265", "ph": "7faed59d", "equity": 79877386, "ret": -20.12}, {"id": "v271", "ph": "2b9ccdcd", "equity": 79877386, "ret": -20.12}, {"id": "v303", "ph": "1a084164", "equity": 79465334, "ret": -20.53}, {"id": "v301", "ph": "30da2021", "equity": 79386653, "ret": -20.61}, {"id": "v217", "ph": "4c547a61", "equity": 79354859, "ret": -20.65}, {"id": "v229", "ph": "d9261dfb", "equity": 79340610, "ret": -20.66}, {"id": "v277", "ph": "488b612a", "equity": 79340610, "ret": -20.66}, {"id": "v283", "ph": "479e4b25", "equity": 79340610, "ret": -20.66}, {"id": "v224", "ph": "888ab069", "equity": 79007784, "ret": -20.99}, {"id": "v236", "ph": "f9c75560", "equity": 79007784, "ret": -20.99}, {"id": "v266", "ph": "c133b585", "equity": 79007784, "ret": -20.99}, {"id": "v272", "ph": "2ed2027f", "equity": 79007784, "ret": -20.99}, {"id": "v41", "ph": "e9d84e84", "equity": 78585112, "ret": -21.41}, {"id": "v1", "ph": "4874f4c9", "equity": 78526871, "ret": -21.47}, {"id": "v218", "ph": "7304d2d4", "equity": 78085121, "ret": -21.91}, {"id": "v230", "ph": "141579fe", "equity": 78024379, "ret": -21.98}, {"id": "v278", "ph": "861fb42b", "equity": 78024379, "ret": -21.98}, {"id": "v284", "ph": "261c5d58", "equity": 78024379, "ret": -21.98}, {"id": "v302", "ph": "3f30502d", "equity": 76159193, "ret": -23.84}, {"id": "v296", "ph": "4c554378", "equity": 75146009, "ret": -24.85}, {"id": "v151", "ph": "2eb1dd06", "equity": 75139302, "ret": -24.86}, {"id": "v4", "ph": "b6219595", "equity": 73004341, "ret": -27.0}, {"id": "v147", "ph": "2fbeeedb", "equity": 72819395, "ret": -27.18}, {"id": "v298", "ph": "5d4bbec0", "equity": 71875541, "ret": -28.12}, {"id": "v40", "ph": "70731d89", "equity": 71467688, "ret": -28.53}, {"id": "v299", "ph": "25046b1a", "equity": 69468812, "ret": -30.53}, {"id": "v300", "ph": "c6ddc17b", "equity": 61283495, "ret": -38.72}]} \ 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 c2c01b1..28a777d 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": 7763.95, "20260612": 8123.62, "20260615": 8545.98, "20260616": 8726.6, "20260617": 8864.24, "20260618": 9063.84, "20260619": 9052.42, "20260622": 9114.55, "20260623": 8203.84, "20260624": 8471.02, "20260625": 8930.3, "20260626": 8411.21, "20260629": 8394.65, "20260630": 8476.48, "20260701": 8303.41, "20260702": 7648.09, "20260703": 8088.34, "20260706": 8051.33, "20260707": 7656.31, "20260708": 7246.79, "20260709": 7291.91, "20260710": 7475.94, "20260713": 6806.93, "20260714": 6856.83, "20260715": 7284.41, "20260716": 6820.6, "20260720": 6516.27, "20260721": 6747.95, "20260722": 6797.7, "20260723": 7096.89, "20260724": 6690.62, "20260727": 6755.75, "20260728": 6028.54}, "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": 996.93, "20260612": 1029.05, "20260615": 1034.03, "20260616": 1018.68, "20260617": 1031.96, "20260618": 1000.93, "20260619": 966.59, "20260622": 968.4, "20260623": 891.52, "20260624": 909.31, "20260625": 887.81, "20260626": 851.37, "20260629": 920.57, "20260630": 916.18, "20260701": 929.35, "20260702": 866.72, "20260703": 868.41, "20260706": 847.07, "20260707": 831.23, "20260708": 785.0, "20260709": 794.0, "20260710": 837.43, "20260713": 799.36, "20260714": 783.98, "20260715": 829.43, "20260716": 791.84, "20260720": 749.64, "20260721": 753.34, "20260722": 751.09, "20260723": 790.28, "20260724": 748.22, "20260727": 764.86, "20260728": 705.74}} \ 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": 7763.95, "20260612": 8123.62, "20260615": 8545.98, "20260616": 8726.6, "20260617": 8864.24, "20260618": 9063.84, "20260619": 9052.42, "20260622": 9114.55, "20260623": 8203.84, "20260624": 8471.02, "20260625": 8930.3, "20260626": 8411.21, "20260629": 8394.65, "20260630": 8476.48, "20260701": 8303.41, "20260702": 7648.09, "20260703": 8088.34, "20260706": 8051.33, "20260707": 7656.31, "20260708": 7246.79, "20260709": 7291.91, "20260710": 7475.94, "20260713": 6806.93, "20260714": 6856.83, "20260715": 7284.41, "20260716": 6820.6, "20260720": 6516.27, "20260721": 6747.95, "20260722": 6797.7, "20260723": 7096.89, "20260724": 6690.62, "20260727": 6755.75, "20260728": 6023.66, "20260729": 5665.44}, "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": 996.93, "20260612": 1029.05, "20260615": 1034.03, "20260616": 1018.68, "20260617": 1031.96, "20260618": 1000.93, "20260619": 966.59, "20260622": 968.4, "20260623": 891.52, "20260624": 909.31, "20260625": 887.81, "20260626": 851.37, "20260629": 920.57, "20260630": 916.18, "20260701": 929.35, "20260702": 866.72, "20260703": 868.41, "20260706": 847.07, "20260707": 831.23, "20260708": 785.0, "20260709": 794.0, "20260710": 837.43, "20260713": 799.36, "20260714": 783.98, "20260715": 829.43, "20260716": 791.84, "20260720": 749.64, "20260721": 753.34, "20260722": 751.09, "20260723": 790.28, "20260724": 748.22, "20260727": 764.86, "20260728": 705.85, "20260729": 661.19}} \ 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 a32ed68..46147e3 100644 --- a/agents/stock/workspace/state/sim/variants/v1/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v1/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 17679082.919999994, + "cash": 23499630.964999992, "initial": 100000000, "positions": { "010950": { @@ -18,32 +18,11 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 5572914.42378125, "last_add_price": 130800 }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 83, - "entry_price": 132579.51807228915, - "entry_at": "2026-07-10T09:26:06.360780+09:00", - "stop": 119709, - "target": 171192, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5614905.905031251, - "last_add_price": 134300 - }, "090850": { "code": "090850", "name": "현대이지웰", @@ -55,12 +34,12 @@ "entry_at": "2026-07-14T09:40:04.963052+09:00", "stop": 5498, "target": 7383, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5505297.51634375, "last_add_price": 6030 @@ -76,12 +55,12 @@ "entry_at": "2026-07-16T09:04:02.184863+09:00", "stop": 305213, "target": 472619, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5640114.3750312505, "last_add_price": 353000 @@ -102,7 +81,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 5411911.7463125, "last_add_price": 91400 @@ -113,51 +92,30 @@ "sources": [ "auto" ], - "qty": 292, - "entry_price": 18950, + "qty": 584, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.270573+09:00", "stop": 17760, "target": 22520, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5547990.7530625, "last_add_price": 18950 - }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", - "sources": [ - "auto" - ], - "qty": 306, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.035446+09:00", - "stop": 10340, - "target": 21580, - "peak": 13730, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, - "tranches": 1, - "tranche_value": 4036164.4997545374, - "last_add_price": 13150 } }, - "realized_pnl": -18162324.734500013, - "closed_trades": 17, + "realized_pnl": -21837800.879500017, + "closed_trades": 20, "wins": 0, "peak_equity": 100102462.48, - "max_drawdown": 0.1886646850847781, + "max_drawdown": 0.22555800282646568, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "298040": "2026-06-24", "403870": "2026-07-07", @@ -166,8 +124,9 @@ "214450": "2026-07-15", "055550": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943184+09:00", - "updated_at": "2026-07-28T15:28:00.972299+09:00" + "updated_at": "2026-07-29T15:28:01.415294+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v1/trades.jsonl b/agents/stock/workspace/state/sim/variants/v1/trades.jsonl index 3cc2867..d14b413 100644 --- a/agents/stock/workspace/state/sim/variants/v1/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v1/trades.jsonl @@ -53,3 +53,10 @@ {"ts": "2026-07-27T09:10:00.979478+09:00", "side": "SELL", "code": "024060", "name": "흥구석유", "price": 12030, "qty": 690, "proceeds": 8284514, "entry_price": 14585, "pnl": -1780876, "pnl_pct": -17.52, "hold_from": "2026-07-23T10:30:02.401758+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "12,081 (현재 12,030)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,097"}, {"label": "추세(10일선)", "ok": false, "detail": "12,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +2"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-27T09:12:01.035449+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 13150, "qty": 306, "cost": 4024504, "path": "pullback", "reason": "눌림목 지정가 13,180 도달", "stop": 10340, "target": 21580, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "13,150 vs 12,888"}, {"label": "정배열(5>10)", "ok": true, "detail": "14,378 / 12,888"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "14,378 / 13,268"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +27 · 기 +15 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.46% (환산) vs 평균 1.47% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 15,870"}, {"label": "거래량 급증", "ok": false, "detail": "274,967 (환산) vs 평균 882,736"}, {"label": "회전율 급증", "ok": false, "detail": "0.46% (환산) vs 평균 1.47%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 13,180 (현재 13,150)"}]} {"ts": "2026-07-28T11:22:00.688753+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 1421, "proceeds": 9402859, "entry_price": 7684, "pnl": -1517249, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:05.306004+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,004"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:01.303424+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 654, "cost": 4277802, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:03.681936+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 292, "cost": 5534230, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22520, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,520"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:04.035867+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 637, "cost": 4274911, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:04.447212+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 317, "cost": 3585808, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 21580, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,580"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T10:52:02.292514+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 623, "proceeds": 6429258, "entry_price": 12214, "pnl": -1181053, "pnl_pct": -15.34, "hold_from": "2026-07-27T09:12:01.035446+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,835"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.628867+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 83, "proceeds": 9874307, "entry_price": 132580, "pnl": -1131443, "pnl_pct": -10.09, "hold_from": "2026-07-10T09:26:06.360780+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,709 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,192"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.383429+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 1291, "proceeds": 7189733, "entry_price": 6624, "pnl": -1362980, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:01.303420+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v101/portfolio.json b/agents/stock/workspace/state/sim/variants/v101/portfolio.json index 23793c9..8f8f10c 100644 --- a/agents/stock/workspace/state/sim/variants/v101/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v101/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 57810594.730500005, + "cash": 67379374.54150002, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 61, - "entry_price": 134409.83606557376, - "entry_at": "2026-07-09T09:36:03.447931+09:00", - "stop": 118954, - "target": 157594, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4156565.5467727734, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.289321+09:00", "stop": 305399, "target": 410027, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3936003.3225085386, "last_add_price": 353000 @@ -60,61 +39,40 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3844545.2388675264, "last_add_price": 90900 }, - "030000": { - "code": "030000", - "name": "제일기획", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 310, - "entry_price": 18950, - "entry_at": "2026-07-24T10:02:04.389258+09:00", - "stop": 17760, - "target": 20735, - "peak": 19300, + "qty": 42, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.432671+09:00", + "stop": 113016, + "target": 138976, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 5889355.599625001, - "last_add_price": 18950 - }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", - "sources": [ - "auto" - ], - "qty": 164, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.497849+09:00", - "stop": 10340, - "target": 17365, - "peak": 13730, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, - "tranches": 1, - "tranche_value": 2169981.4975838973, - "last_add_price": 13150 + "tranche_value": 5296043.025056097, + "last_add_price": 123400 } }, - "realized_pnl": -10704683.26950001, - "closed_trades": 17, - "wins": 0, + "realized_pnl": -12184860.553500012, + "closed_trades": 22, + "wins": 1, "peak_equity": 100172467.23000002, - "max_drawdown": 0.11233396611529192, + "max_drawdown": 0.12578399072042104, "last_exit": { - "030000": "2026-07-15", + "030000": "2026-07-29", "086790": "2026-07-28", "403870": "2026-07-07", "240810": "2026-07-24", @@ -122,9 +80,12 @@ "093370": "2026-07-20", "055550": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29", + "252990": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944232+09:00", - "updated_at": "2026-07-28T15:28:01.017007+09:00" + "updated_at": "2026-07-29T15:28:01.457829+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v101/trades.jsonl b/agents/stock/workspace/state/sim/variants/v101/trades.jsonl index 86be0ec..2276df6 100644 --- a/agents/stock/workspace/state/sim/variants/v101/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v101/trades.jsonl @@ -48,3 +48,12 @@ {"ts": "2026-07-28T11:22:00.740360+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 823, "proceeds": 5445850, "entry_price": 7684, "pnl": -878909, "pnl_pct": -13.72, "hold_from": "2026-07-27T09:02:06.217881+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T12:56:02.869289+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 45, "proceeds": 5272698, "entry_price": 127900, "pnl": -483665, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.372126+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,283"}, {"label": "추세(10일선)", "ok": true, "detail": "116,360"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]} {"ts": "2026-07-28T13:20:03.820316+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123800, "qty": 71, "proceeds": 8772660, "entry_price": 137176, "pnl": -968301, "pnl_pct": -9.75, "hold_from": "2026-07-13T09:48:02.326778+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,862 (현재 123,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,147"}, {"label": "추세(10일선)", "ok": true, "detail": "119,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.215048+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 357, "cost": 2335130, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:08.685814+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134410, "pnl": -370927, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.447931+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,954 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,594"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:08.686031+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 191, "cost": 2160534, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 17365, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,365"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:26:01.888464+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 310, "proceeds": 5859951, "entry_price": 18950, "pnl": -15430, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.389258+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.888676+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 357, "proceeds": 2355168, "entry_price": 6540, "pnl": 20038, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.215046+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.375105+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 848, "cost": 5419533, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.432673+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 138976, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.342370+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 355, "proceeds": 3663542, "entry_price": 12160, "pnl": -653915, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.497849+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 14,890"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.579933+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 848, "proceeds": 4959590, "entry_price": 6390, "pnl": -459943, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.375104+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v103/portfolio.json b/agents/stock/workspace/state/sim/variants/v103/portfolio.json index 7c2416d..cf1e93a 100644 --- a/agents/stock/workspace/state/sim/variants/v103/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v103/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 42770327.25550006, + "cash": 60476093.16450006, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 85, - "entry_price": 124176.4705882353, - "entry_at": "2026-07-02T10:18:03.827419+09:00", - "stop": 111006, - "target": 143933, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,215 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5368206.728356878, - "last_add_price": 126200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.450092+09:00", - "stop": 118952, - "target": 157593, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4089582.9464364387, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.291895+09:00", "stop": 305399, "target": 410027, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3962363.617644489, "last_add_price": 353000 @@ -81,94 +39,54 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3892203.318086031, "last_add_price": 90900 }, - "095610": { - "code": "095610", - "name": "테스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 12, - "entry_price": 155500, - "entry_at": "2026-07-24T09:00:05.530369+09:00", - "stop": 117686, - "target": 212221, - "peak": 155500, + "qty": 93, + "entry_price": 119186.02150537634, + "entry_at": "2026-07-29T09:02:02.218181+09:00", + "stop": 111200, + "target": 131165, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,093 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 1946096.456735668, - "last_add_price": 155500 - }, - "030000": { - "code": "030000", - "name": "제일기획", - "sources": [ - "auto" - ], - "qty": 312, - "entry_price": 18950, - "entry_at": "2026-07-24T10:02:04.391524+09:00", - "stop": 17760, - "target": 20735, - "peak": 19300, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 20,012 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5927262.437968753, - "last_add_price": 18950 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 770, - "entry_price": 6936.25974025974, - "entry_at": "2026-07-28T09:00:15.725812+09:00", - "stop": 5741, - "target": 8729, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 2676539.5535729183, - "last_add_price": 7100 + "tranche_value": 5549046.703468754, + "last_add_price": 120500 } }, - "realized_pnl": -10280111.366500013, - "closed_trades": 21, + "realized_pnl": -13097543.475500017, + "closed_trades": 27, "wins": 2, "peak_equity": 101529111.72700004, - "max_drawdown": 0.12852160576945038, + "max_drawdown": 0.1463739641735473, "last_exit": { - "030000": "2026-07-15", - "086790": "2026-06-23", + "030000": "2026-07-29", + "086790": "2026-07-29", "403870": "2026-07-07", - "095610": "2026-07-23", + "095610": "2026-07-29", "093370": "2026-07-20", "240810": "2026-07-24", "214450": "2026-07-06", "034730": "2026-07-07", "055550": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944251+09:00", - "updated_at": "2026-07-28T15:28:01.018708+09:00" + "updated_at": "2026-07-29T15:28:01.459421+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v103/trades.jsonl b/agents/stock/workspace/state/sim/variants/v103/trades.jsonl index 14f7126..fb6fa2f 100644 --- a/agents/stock/workspace/state/sim/variants/v103/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v103/trades.jsonl @@ -64,3 +64,13 @@ {"ts": "2026-07-28T09:00:15.725820+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 394, "cost": 2671721, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 8509, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.736195+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 376, "cost": 2670000, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.763925+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 311, "proceeds": 3467096, "entry_price": 14266, "pnl": -970340, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.417997+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.218183+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 47, "cost": 5542131, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.458945+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 46, "cost": 5543831, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:08.688483+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 212221, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,221"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]} +{"ts": "2026-07-29T09:24:08.688690+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.450092+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,593"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.891082+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 312, "proceeds": 5897757, "entry_price": 18950, "pnl": -15530, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.391524+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.377044+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 850, "cost": 5432315, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:18:05.366579+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:05.530369+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 192,006"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.681905+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.827419+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,933"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:06:06.472442+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 770, "proceeds": 4372756, "entry_price": 6936, "pnl": -968965, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:15.725812+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.581955+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 850, "proceeds": 4971287, "entry_price": 6390, "pnl": -461028, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.377043+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v105/portfolio.json b/agents/stock/workspace/state/sim/variants/v105/portfolio.json index d86beac..fa1cc00 100644 --- a/agents/stock/workspace/state/sim/variants/v105/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v105/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 29178207.098000046, + "cash": 26011542.238000043, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 77, - "entry_price": 134418.18181818182, - "entry_at": "2026-07-09T09:36:03.452341+09:00", - "stop": 122826, - "target": 157603, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5212031.062678178, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.164331+09:00", "stop": 318434, "target": 413243, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4980582.661409654, "last_add_price": 356000 @@ -55,12 +34,12 @@ "entry_at": "2026-07-22T09:04:01.813457+09:00", "stop": 92100, "target": 119144, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5575262.741000003, "last_add_price": 103100 @@ -81,7 +60,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4849662.714601921, "last_add_price": 90900 @@ -92,20 +71,20 @@ "sources": [ "auto" ], - "qty": 289, - "entry_price": 19100, + "qty": 581, + "entry_price": 19024.61273666093, "entry_at": "2026-07-27T09:02:06.223075+09:00", - "stop": 18023, - "target": 21254, - "peak": 19300, + "stop": 18070, + "target": 20933, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5535494.525500003, - "last_add_price": 19100 + "last_add_price": 18950 }, "218150": { "code": "218150", @@ -113,48 +92,48 @@ "sources": [ "interest" ], - "qty": 1218, - "entry_price": 2130, + "qty": 2548, + "entry_price": 2036.565934065934, "entry_at": "2026-07-27T14:20:01.056080+09:00", "stop": 1775, - "target": 2840, - "peak": 2235, + "target": 2720, + "peak": 2450, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 2,135 도달", - "cur_price": 1941, - "tranches": 1, + "cur_price": 1805, + "tranches": 2, "tranche_value": 2595536.5029300014, - "last_add_price": 2130 + "last_add_price": 1951 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 968, - "entry_price": 6936.363636363636, - "entry_at": "2026-07-28T09:00:15.829228+09:00", - "stop": 6040, - "target": 8729, - "peak": 7780, + "qty": 87, + "entry_price": 119185.05747126437, + "entry_at": "2026-07-29T09:02:02.221426+09:00", + "stop": 111408, + "target": 134739, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 3360019.0177395856, - "last_add_price": 7100 + "tranche_value": 5213821.568625003, + "last_add_price": 120500 } }, - "realized_pnl": -15480552.96100002, - "closed_trades": 35, + "realized_pnl": -17214272.911500026, + "closed_trades": 38, "wins": 3, "peak_equity": 101695667.93550003, - "max_drawdown": 0.18637618713042167, + "max_drawdown": 0.19995099211499182, "last_exit": { "030000": "2026-07-24", "035420": "2026-06-23", @@ -169,9 +148,11 @@ "319660": "2026-07-23", "105560": "2026-07-20", "086790": "2026-07-21", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944270+09:00", - "updated_at": "2026-07-28T15:28:01.020512+09:00" + "updated_at": "2026-07-29T15:28:01.461183+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v105/trades.jsonl b/agents/stock/workspace/state/sim/variants/v105/trades.jsonl index a80c8b6..0d56003 100644 --- a/agents/stock/workspace/state/sim/variants/v105/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v105/trades.jsonl @@ -99,3 +99,11 @@ {"ts": "2026-07-28T09:00:15.829236+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 495, "cost": 3356603, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5916, "target": 8509, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:02:04.745721+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 388, "proceeds": 4615941, "entry_price": 14266, "pnl": -920209, "pnl_pct": -16.45, "hold_from": "2026-07-22T14:18:05.419863+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,984 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,673"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:10:01.738088+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 473, "cost": 3358804, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} +{"ts": "2026-07-29T09:02:02.221428+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.460893+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:08.691208+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 292, "cost": 5534230, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 21254, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,254"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:08.691404+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134418, "pnl": -468862, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.452341+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,826 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,603"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:09.102125+09:00", "side": "BUY", "code": "218150", "name": "미래생명자원", "price": 1951, "qty": 1330, "cost": 2595219, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1775, "target": 2840, "signals": [{"label": "손절선", "ok": true, "detail": "1,775 (현재 2,450)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 2,840"}, {"label": "추세(20일선)", "ok": true, "detail": "2,005"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +40 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 2,287"}]} +{"ts": "2026-07-29T09:28:01.378937+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 819, "cost": 5234195, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:42:05.407176+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 819, "proceeds": 4888070, "entry_price": 6390, "pnl": -346125, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.378936+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T11:18:04.419939+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 968, "proceeds": 5796674, "entry_price": 6936, "pnl": -918733, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:15.829228+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v107/portfolio.json b/agents/stock/workspace/state/sim/variants/v107/portfolio.json index 297da35..b9beb20 100644 --- a/agents/stock/workspace/state/sim/variants/v107/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v107/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 32464453.122, + "cash": 42397561.0635, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 89, - "entry_price": 124177.52808988764, - "entry_at": "2026-07-02T10:18:03.834926+09:00", - "stop": 114299, - "target": 143934, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,215 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5613307.207924683, - "last_add_price": 126200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 79, - "entry_price": 134418.98734177215, - "entry_at": "2026-07-09T09:36:03.454533+09:00", - "stop": 122827, - "target": 157603, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5344399.843888248, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.166187+09:00", "stop": 318647, "target": 413456, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5156172.079657566, "last_add_price": 356000 @@ -81,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 5078672.507755172, "last_add_price": 90900 @@ -92,50 +50,50 @@ "sources": [ "auto" ], - "qty": 306, - "entry_price": 18950, + "qty": 612, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.395801+09:00", - "stop": 17843, - "target": 21164, - "peak": 19300, + "stop": 17996, + "target": 20858, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,012 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5806232.125812501, "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 997, - "entry_price": 6936.308926780341, - "entry_at": "2026-07-28T09:00:15.935337+09:00", - "stop": 6040, - "target": 8729, - "peak": 7780, + "qty": 89, + "entry_price": 119185.39325842696, + "entry_at": "2026-07-29T09:02:02.224637+09:00", + "stop": 111408, + "target": 134740, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 3464111.1814802084, - "last_add_price": 7100 + "tranche_value": 5368293.320125001, + "last_add_price": 120500 } }, - "realized_pnl": -13308414.02800002, - "closed_trades": 27, + "realized_pnl": -15557333.116500024, + "closed_trades": 31, "wins": 2, "peak_equity": 101690998.13850003, - "max_drawdown": 0.15881686001846382, + "max_drawdown": 0.17426239686294243, "last_exit": { - "086790": "2026-06-26", + "086790": "2026-07-29", "030000": "2026-07-16", "403870": "2026-07-02", "095610": "2026-07-28", @@ -145,9 +103,11 @@ "214450": "2026-07-14", "055550": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944290+09:00", - "updated_at": "2026-07-28T15:28:01.022171+09:00" + "updated_at": "2026-07-29T15:28:01.462794+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v107/trades.jsonl b/agents/stock/workspace/state/sim/variants/v107/trades.jsonl index 1e52993..ece1685 100644 --- a/agents/stock/workspace/state/sim/variants/v107/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v107/trades.jsonl @@ -77,3 +77,11 @@ {"ts": "2026-07-28T09:02:04.747643+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 406, "proceeds": 4830083, "entry_price": 14266, "pnl": -962966, "pnl_pct": -16.45, "hold_from": "2026-07-22T14:18:05.421714+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,984 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(10일선)", "ok": false, "detail": "12,769"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:04:02.736929+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 16, "proceeds": 1967356, "entry_price": 155500, "pnl": -521017, "pnl_pct": -20.77, "hold_from": "2026-07-24T09:00:05.734608+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "127,139 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,221"}, {"label": "추세(10일선)", "ok": false, "detail": "149,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 166,050"}]} {"ts": "2026-07-28T09:10:01.739939+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 487, "cost": 3458219, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} +{"ts": "2026-07-29T09:02:02.224639+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 45, "cost": 5306296, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.462967+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 44, "cost": 5302795, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:09.111290+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 306, "cost": 5799570, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17843, "target": 21164, "signals": [{"label": "손절선", "ok": true, "detail": "17,843 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,164"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:09.112024+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 79, "proceeds": 10139589, "entry_price": 134419, "pnl": -481104, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.454533+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,827 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,603"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.380944+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 843, "cost": 5387578, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:42:05.409278+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 843, "proceeds": 5031310, "entry_price": 6390, "pnl": -356268, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.380943+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,551"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T11:18:04.421952+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 997, "proceeds": 5970335, "entry_price": 6936, "pnl": -946202, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:15.935337+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(10일선)", "ok": true, "detail": "5,246"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.685681+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 89, "proceeds": 10588113, "entry_price": 124178, "pnl": -465345, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.834926+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "114,299 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,934"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v147/portfolio.json b/agents/stock/workspace/state/sim/variants/v147/portfolio.json index 438edd0..f1df23d 100644 --- a/agents/stock/workspace/state/sim/variants/v147/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v147/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 8209187.289499967, + "cash": 38672694.80499996, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 106, - "entry_price": 120162.2641509434, - "entry_at": "2026-07-01T09:46:03.059028+09:00", - "stop": 111000, - "target": 147649, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,286 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 6390950.2104375, - "last_add_price": 122200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 77, - "entry_price": 134570.12987012987, - "entry_at": "2026-07-09T09:10:01.824472+09:00", - "stop": 119114, - "target": 180939, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5286025.184468749, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.168413+09:00", "stop": 307915, "target": 476463, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5184250.1290937485, "last_add_price": 356000 @@ -76,88 +34,67 @@ "entry_at": "2026-07-22T09:04:01.817053+09:00", "stop": 92100, "target": 128147, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5241897.148781248, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 105, - "entry_price": 95485.71428571429, - "entry_at": "2026-07-24T09:26:01.006439+09:00", - "stop": 83578, - "target": 131209, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 5056890.1458749985, - "last_add_price": 97000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 263, - "entry_price": 19100, + "qty": 269, + "entry_price": 19096.654275092937, "entry_at": "2026-07-27T09:02:06.227944+09:00", - "stop": 17760, - "target": 23120, - "peak": 19300, + "stop": 17824, + "target": 22913, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5024795.592812498, - "last_add_price": 19100 + "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 1323, - "entry_price": 6936.250944822374, - "entry_at": "2026-07-28T09:00:16.050865+09:00", - "stop": 5741, - "target": 10522, - "peak": 7780, + "qty": 68, + "entry_price": 119008.82352941176, + "entry_at": "2026-07-29T09:02:02.227528+09:00", + "stop": 111200, + "target": 142435, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 4592654.149239581, - "last_add_price": 7100 + "tranche_value": 4675255.455593748, + "last_add_price": 120500 } }, - "realized_pnl": -23990684.216500018, - "closed_trades": 26, + "realized_pnl": -27627751.02000002, + "closed_trades": 31, "wins": 1, "peak_equity": 103066363.367, - "max_drawdown": 0.2826077793565198, + "max_drawdown": 0.2973110459024045, "last_exit": { "030000": "2026-07-24", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-07", "093370": "2026-07-20", @@ -170,8 +107,12 @@ "105560": "2026-07-20", "055550": "2026-07-21", "095610": "2026-07-28", - "252990": "2026-07-28" + "252990": "2026-07-28", + "010950": "2026-07-29", + "078930": "2026-07-29", + "003680": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582771+09:00", - "updated_at": "2026-07-28T15:28:01.023811+09:00" + "updated_at": "2026-07-29T15:28:01.464455+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v147/trades.jsonl b/agents/stock/workspace/state/sim/variants/v147/trades.jsonl index 07fd714..0b062b1 100644 --- a/agents/stock/workspace/state/sim/variants/v147/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v147/trades.jsonl @@ -77,3 +77,12 @@ {"ts": "2026-07-28T09:00:16.050874+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 677, "cost": 4590749, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 10237, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.741799+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 646, "cost": 4587288, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 10237, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,237"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.769455+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 541, "proceeds": 6031186, "entry_price": 14266, "pnl": -1687881, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.423676+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,395"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.227530+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 39, "cost": 4598790, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 138000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.464886+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 29, "cost": 3495024, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 138000, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,000"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:09.118714+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 6, "cost": 113717, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 23120, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,120"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:09.964903+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134570, "pnl": -480564, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.824472+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,114 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,939"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:09.966514+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 105, "proceeds": 9190543, "entry_price": 95486, "pnl": -836960, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.006439+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,578 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,209"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.382783+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 736, "cost": 4703745, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T13:06:06.514247+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 1323, "proceeds": 7513191, "entry_price": 6936, "pnl": -1664846, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:16.050865+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,522"}, {"label": "추세(20일선)", "ok": true, "detail": "4,787"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:30:01.445481+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 118000, "qty": 106, "proceeds": 12483609, "entry_price": 120162, "pnl": -255501, "pnl_pct": -1.8, "hold_from": "2026-07-01T09:46:03.059028+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 118,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,649"}, {"label": "추세(20일선)", "ok": false, "detail": "118,145"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.587859+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 736, "proceeds": 4304550, "entry_price": 6390, "pnl": -399196, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.382782+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v149/portfolio.json b/agents/stock/workspace/state/sim/variants/v149/portfolio.json index 9e7d2c2..365f5f9 100644 --- a/agents/stock/workspace/state/sim/variants/v149/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v149/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 28728753.204499956, + "cash": 38090320.14199995, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 81, - "entry_price": 134571.6049382716, - "entry_at": "2026-07-09T09:10:01.826441+09:00", - "stop": 119115, - "target": 157756, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5518075.13775, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 40, - "entry_price": 133100, - "entry_at": "2026-07-21T10:08:04.172929+09:00", - "stop": 120243, - "target": 152385, - "peak": 134700, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 1, - "tranche_value": 5436101.333343748, - "last_add_price": 133100 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.170285+09:00", "stop": 308113, "target": 413456, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5435113.820843748, "last_add_price": 356000 @@ -76,67 +34,67 @@ "entry_at": "2026-07-22T09:04:01.818826+09:00", "stop": 92100, "target": 114635, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5477452.925531248, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 112, - "entry_price": 95473.21428571429, - "entry_at": "2026-07-24T09:26:01.008331+09:00", - "stop": 83565, - "target": 113335, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 5369515.318718748, - "last_add_price": 97000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 280, - "entry_price": 19100, + "qty": 562, + "entry_price": 19024.73309608541, "entry_at": "2026-07-27T09:02:06.230469+09:00", "stop": 17760, - "target": 21110, - "peak": 19300, + "target": 20922, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5357608.233093748, - "last_add_price": 19100 + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 83, + "entry_price": 119184.3373493976, + "entry_at": "2026-07-29T09:02:02.230500+09:00", + "stop": 111200, + "target": 131161, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 5057738.410843747, + "last_add_price": 120500 } }, - "realized_pnl": -17570092.83050002, - "closed_trades": 30, - "wins": 4, + "realized_pnl": -19891378.058000024, + "closed_trades": 35, + "wins": 5, "peak_equity": 103066363.367, - "max_drawdown": 0.2179538447719454, + "max_drawdown": 0.2238488817622051, "last_exit": { "030000": "2026-07-24", - "086790": "2026-07-20", + "086790": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-07", "095610": "2026-07-28", @@ -149,8 +107,12 @@ "003490": "2026-07-09", "105560": "2026-07-20", "055550": "2026-07-20", - "252990": "2026-07-28" + "252990": "2026-07-28", + "010950": "2026-07-29", + "078930": "2026-07-29", + "003680": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582787+09:00", - "updated_at": "2026-07-28T15:28:01.025467+09:00" + "updated_at": "2026-07-29T15:28:01.466086+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v149/trades.jsonl b/agents/stock/workspace/state/sim/variants/v149/trades.jsonl index e7bb196..04e92d3 100644 --- a/agents/stock/workspace/state/sim/variants/v149/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v149/trades.jsonl @@ -83,3 +83,13 @@ {"ts": "2026-07-27T09:02:06.230471+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19100, "qty": 280, "cost": 5348802, "path": "pullback", "reason": "눌림목 지정가 20,032 도달", "stop": 17760, "target": 21110, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "19,070 vs 18,858"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,600 / 18,858"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,600 / 19,360"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+16.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +101 · 기 -3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.13% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "146,760 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.13% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,032 (현재 19,070)"}]} {"ts": "2026-07-28T10:08:02.771329+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 570, "proceeds": 6354485, "entry_price": 14266, "pnl": -1778235, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.425549+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:34:01.972452+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 120300, "qty": 22, "proceeds": 2641439, "entry_price": 158100, "pnl": -837283, "pnl_pct": -23.91, "hold_from": "2026-07-22T15:04:00.996717+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,314 (현재 120,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 214,778"}, {"label": "추세(20일선)", "ok": false, "detail": "134,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +285 · 기 -563"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 168,711"}]} +{"ts": "2026-07-29T09:02:02.230260+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 651, "cost": 4258179, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:02.230501+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 42, "cost": 4952543, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.466782+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 41, "cost": 4941241, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:09.977728+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 282, "cost": 5344702, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21110, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,110"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:09.978654+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 81, "proceeds": 10396288, "entry_price": 134572, "pnl": -505647, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.826441+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,115 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,756"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:09.979284+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 112, "proceeds": 9803246, "entry_price": 95473, "pnl": -891358, "pnl_pct": -8.14, "hold_from": "2026-07-24T09:26:01.008331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,565 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,335"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.900494+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 651, "proceeds": 4294719, "entry_price": 6540, "pnl": 36540, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.230258+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.384508+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 794, "cost": 5074421, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T11:54:01.475203+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 120100, "qty": 40, "proceeds": 4794632, "entry_price": 133100, "pnl": -530166, "pnl_pct": -9.77, "hold_from": "2026-07-21T10:08:04.172929+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,243 (현재 120,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 152,385"}, {"label": "추세(20일선)", "ok": true, "detail": "118,250"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -13 · 기 -68"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,414"}]} +{"ts": "2026-07-29T13:34:03.589780+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 794, "proceeds": 4643767, "entry_price": 6390, "pnl": -430654, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.384507+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v151/portfolio.json b/agents/stock/workspace/state/sim/variants/v151/portfolio.json index aa6c1ef..fcb7975 100644 --- a/agents/stock/workspace/state/sim/variants/v151/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v151/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 17551883.526499964, + "cash": 34460901.99899996, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 79, - "entry_price": 134570.88607594935, - "entry_at": "2026-07-09T09:10:01.828358+09:00", - "stop": 119115, - "target": 165484, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5389478.369468749, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 39, - "entry_price": 133100, - "entry_at": "2026-07-21T10:08:04.174962+09:00", - "stop": 120243, - "target": 158813, - "peak": 134700, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 1, - "tranche_value": 5262640.649406249, - "last_add_price": 133100 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.172122+09:00", "stop": 307915, "target": 434326, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5274205.950343749, "last_add_price": 356000 @@ -76,88 +34,67 @@ "entry_at": "2026-07-22T09:04:01.820564+09:00", "stop": 92100, "target": 119138, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5328934.220031248, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 107, - "entry_price": 95485.98130841121, - "entry_at": "2026-07-24T09:26:01.010230+09:00", - "stop": 83578, - "target": 119302, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 5158509.961968748, - "last_add_price": 97000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 268, - "entry_price": 19100, + "qty": 538, + "entry_price": 19024.721189591077, "entry_at": "2026-07-27T09:02:06.232736+09:00", "stop": 17760, - "target": 21780, - "peak": 19300, + "target": 21554, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5136044.188124998, - "last_add_price": 19100 + "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 1351, - "entry_price": 6936.328645447817, - "entry_at": "2026-07-28T09:00:16.264480+09:00", - "stop": 5741, - "target": 9327, - "peak": 7780, + "qty": 79, + "entry_price": 119183.54430379746, + "entry_at": "2026-07-29T09:02:02.233197+09:00", + "stop": 111200, + "target": 135151, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 4690202.7646562485, - "last_add_price": 7100 + "tranche_value": 4798325.220406247, + "last_add_price": 120500 } }, - "realized_pnl": -21242957.07650003, - "closed_trades": 27, + "realized_pnl": -25215050.30100003, + "closed_trades": 32, "wins": 2, "peak_equity": 103066363.367, - "max_drawdown": 0.26436733528161105, + "max_drawdown": 0.2753482754499373, "last_exit": { "030000": "2026-07-24", - "086790": "2026-07-20", + "086790": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-07", "093370": "2026-07-20", @@ -170,8 +107,12 @@ "105560": "2026-07-20", "055550": "2026-07-21", "095610": "2026-07-28", - "252990": "2026-07-28" + "252990": "2026-07-28", + "010950": "2026-07-29", + "078930": "2026-07-29", + "003680": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582803+09:00", - "updated_at": "2026-07-28T15:28:01.027089+09:00" + "updated_at": "2026-07-29T15:28:01.467725+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v151/trades.jsonl b/agents/stock/workspace/state/sim/variants/v151/trades.jsonl index b406e34..37bd5db 100644 --- a/agents/stock/workspace/state/sim/variants/v151/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v151/trades.jsonl @@ -78,3 +78,12 @@ {"ts": "2026-07-28T09:00:16.264486+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 691, "cost": 4685683, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 9085, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.745416+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 660, "cost": 4686703, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 9085, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,085"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.773145+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 551, "proceeds": 6142668, "entry_price": 14266, "pnl": -1719121, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.427295+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.233198+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 40, "cost": 4716707, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.468572+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 39, "cost": 4700205, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:09.985527+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 270, "cost": 5117267, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:09.986194+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 79, "proceeds": 10139589, "entry_price": 134571, "pnl": -493105, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.828358+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,115 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,484"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:09.986674+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 107, "proceeds": 9365601, "entry_price": 95486, "pnl": -852931, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.010230+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,578 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,302"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.386230+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 754, "cost": 4818783, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T11:54:01.477218+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 120100, "qty": 39, "proceeds": 4674766, "entry_price": 133100, "pnl": -516912, "pnl_pct": -9.77, "hold_from": "2026-07-21T10:08:04.174962+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,243 (현재 120,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,813"}, {"label": "추세(20일선)", "ok": true, "detail": "118,250"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -13 · 기 -68"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,414"}]} +{"ts": "2026-07-29T13:06:06.518446+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 1351, "proceeds": 7672200, "entry_price": 6936, "pnl": -1700186, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:16.264480+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,327"}, {"label": "추세(20일선)", "ok": true, "detail": "4,787"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.591638+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 754, "proceeds": 4409824, "entry_price": 6390, "pnl": -408959, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.386229+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v155/portfolio.json b/agents/stock/workspace/state/sim/variants/v155/portfolio.json index 521bdfc..9d2cff6 100644 --- a/agents/stock/workspace/state/sim/variants/v155/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v155/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 31415156.02650003, + "cash": 39467772.84450003, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 77, - "entry_price": 134570.12987012987, - "entry_at": "2026-07-09T09:10:01.830227+09:00", - "stop": 122978, - "target": 157755, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5210031.291334455, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.173991+09:00", "stop": 318434, "target": 413243, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4947379.149752503, "last_add_price": 356000 @@ -55,85 +34,64 @@ "entry_at": "2026-07-22T09:04:01.822292+09:00", "stop": 92100, "target": 119142, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5540629.633968752, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 97, - "entry_price": 95484.53608247422, - "entry_at": "2026-07-24T09:26:01.012056+09:00", - "stop": 86554, - "target": 113346, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 4684856.297764936, - "last_add_price": 97000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 278, - "entry_price": 19170, + "qty": 559, + "entry_price": 19059.409660107336, "entry_at": "2026-07-27T09:06:01.482556+09:00", - "stop": 18093, - "target": 21324, - "peak": 19300, + "stop": 18105, + "target": 20968, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5342833.247656252, - "last_add_price": 19170 + "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 950, - "entry_price": 6936.2947368421055, - "entry_at": "2026-07-28T09:00:16.371383+09:00", - "stop": 6040, - "target": 8729, - "peak": 7780, + "qty": 85, + "entry_price": 119184.70588235294, + "entry_at": "2026-07-29T09:02:02.235827+09:00", + "stop": 111408, + "target": 134739, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 3299693.822310939, - "last_add_price": 7100 + "tranche_value": 5120146.001656252, + "last_add_price": 120500 } }, - "realized_pnl": -16663116.882500025, - "closed_trades": 40, + "realized_pnl": -19369843.72400003, + "closed_trades": 44, "wins": 4, "peak_equity": 101291892.54300004, - "max_drawdown": 0.19859179423427756, + "max_drawdown": 0.20613604084488943, "last_exit": { "086790": "2026-07-28", "030000": "2026-07-24", @@ -150,8 +108,12 @@ "319660": "2026-07-23", "105560": "2026-07-20", "024060": "2026-07-27", - "252990": "2026-07-28" + "252990": "2026-07-28", + "078930": "2026-07-29", + "010950": "2026-07-29", + "090850": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582834+09:00", - "updated_at": "2026-07-28T15:28:01.028771+09:00" + "updated_at": "2026-07-29T15:28:01.469359+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v155/trades.jsonl b/agents/stock/workspace/state/sim/variants/v155/trades.jsonl index a16ab36..e8fbac5 100644 --- a/agents/stock/workspace/state/sim/variants/v155/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v155/trades.jsonl @@ -109,3 +109,11 @@ {"ts": "2026-07-28T09:02:04.754909+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 385, "proceeds": 4580251, "entry_price": 14266, "pnl": -912843, "pnl_pct": -16.44, "hold_from": "2026-07-22T14:18:05.429022+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,983 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,830"}, {"label": "추세(20일선)", "ok": false, "detail": "12,673"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:10:01.747136+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 464, "cost": 3294894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T13:24:01.023779+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123300, "qty": 41, "proceeds": 5045442, "entry_price": 133100, "pnl": -412476, "pnl_pct": -7.36, "hold_from": "2026-07-21T10:08:04.176920+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,458 (현재 123,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 152,385"}, {"label": "추세(20일선)", "ok": true, "detail": "118,415"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,361"}]} +{"ts": "2026-07-29T09:02:02.235829+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 43, "cost": 5070460, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:04:02.482605+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 85500, "qty": 97, "proceeds": 8277328, "entry_price": 95485, "pnl": -986062, "pnl_pct": -10.46, "hold_from": "2026-07-24T09:26:01.012056+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "86,554 (현재 85,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,346"}, {"label": "추세(20일선)", "ok": true, "detail": "74,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:16:04.470378+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 42, "cost": 5061759, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:09.991614+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 281, "cost": 5325749, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18093, "target": 21324, "signals": [{"label": "손절선", "ok": true, "detail": "18,093 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,324"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,488"}]} +{"ts": "2026-07-29T09:24:09.992155+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134570, "pnl": -480564, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.830227+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,978 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,755"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.387952+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 801, "cost": 5119158, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:42:05.416427+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 801, "proceeds": 4780640, "entry_price": 6390, "pnl": -338518, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.387951+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T11:18:04.428660+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 950, "proceeds": 5688885, "entry_price": 6936, "pnl": -901583, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:16.371383+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v157/portfolio.json b/agents/stock/workspace/state/sim/variants/v157/portfolio.json index 1d1190e..a224921 100644 --- a/agents/stock/workspace/state/sim/variants/v157/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v157/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 52987504.55449994, + "cash": 60973443.65049994, "initial": 100000000, "positions": { "214450": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.175730+09:00", "stop": 318647, "target": 397654, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5132330.379099764, "last_add_price": 356000 @@ -39,83 +39,41 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 5067979.388839712, "last_add_price": 91400 }, - "095610": { - "code": "095610", - "name": "테스", + "010950": { + "code": "010950", + "name": "S-Oil", "sources": [ "auto" ], - "qty": 15, - "entry_price": 139000, - "entry_at": "2026-07-27T09:02:06.237125+09:00", - "stop": 108775, - "target": 184337, - "peak": 146400, + "qty": 38, + "entry_price": 131400, + "entry_at": "2026-07-29T09:52:02.378116+09:00", + "stop": 120086, + "target": 148371, + "peak": 133100, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 126900, "tranches": 1, - "tranche_value": 2128585.542036227, - "last_add_price": 139000 - }, - "030000": { - "code": "030000", - "name": "제일기획", - "sources": [ - "auto" - ], - "qty": 301, - "entry_price": 19100, - "entry_at": "2026-07-27T09:02:06.237378+09:00", - "stop": 18023, - "target": 20715, - "peak": 19300, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5768049.248812497, - "last_add_price": 19100 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 1007, - "entry_price": 6936.3455809334655, - "entry_at": "2026-07-28T09:00:16.475655+09:00", - "stop": 6040, - "target": 8281, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, - "tranches": 2, - "tranche_value": 3495221.1363822897, - "last_add_price": 7100 + "tranche_value": 5079550.709806033, + "last_add_price": 131400 } }, - "realized_pnl": -12315491.67550002, - "closed_trades": 34, + "realized_pnl": -14156826.44950002, + "closed_trades": 39, "wins": 5, "peak_equity": 100161893.89500001, - "max_drawdown": 0.13640707597664653, + "max_drawdown": 0.1461807457419789, "last_exit": { "086790": "2026-07-28", - "030000": "2026-07-24", + "030000": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-02", "003490": "2026-07-07", @@ -125,14 +83,15 @@ "055550": "2026-07-20", "034730": "2026-07-08", "319660": "2026-07-23", - "095610": "2026-07-16", + "095610": "2026-07-29", "105560": "2026-07-20", "010950": "2026-07-27", "024060": "2026-07-27", - "003680": "2026-07-27", - "138040": "2026-07-28", - "252990": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-29", + "252990": "2026-07-28", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582849+09:00", - "updated_at": "2026-07-28T15:28:01.030444+09:00" + "updated_at": "2026-07-29T15:28:01.470981+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v157/trades.jsonl b/agents/stock/workspace/state/sim/variants/v157/trades.jsonl index 0c87c63..af89b59 100644 --- a/agents/stock/workspace/state/sim/variants/v157/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v157/trades.jsonl @@ -87,3 +87,12 @@ {"ts": "2026-07-28T09:40:00.880577+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 119100, "qty": 44, "proceeds": 5230181, "entry_price": 127700, "pnl": -389462, "pnl_pct": -6.73, "hold_from": "2026-07-27T09:18:01.995423+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,030 (현재 119,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 139,205"}, {"label": "추세(20일선)", "ok": true, "detail": "113,530"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,300"}]} {"ts": "2026-07-28T11:04:03.768405+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10790, "qty": 195, "proceeds": 2099947, "entry_price": 13150, "pnl": -464688, "pnl_pct": -17.95, "hold_from": "2026-07-27T09:12:01.521836+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,830 (현재 10,810)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,630"}, {"label": "추세(20일선)", "ok": false, "detail": "12,616"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +156 · 기 -156"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,003"}]} {"ts": "2026-07-28T13:24:01.025963+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123300, "qty": 42, "proceeds": 5168502, "entry_price": 133100, "pnl": -422537, "pnl_pct": -7.36, "hold_from": "2026-07-21T10:08:04.179066+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,458 (현재 123,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,564"}, {"label": "추세(20일선)", "ok": true, "detail": "118,415"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,361"}]} +{"ts": "2026-07-29T09:24:09.997467+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 17, "cost": 2084513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 184337, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 184,337"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]} +{"ts": "2026-07-29T09:26:01.906646+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 301, "proceeds": 5689823, "entry_price": 19100, "pnl": -60139, "pnl_pct": -0.84, "hold_from": "2026-07-27T09:02:06.237378+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "18,852"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.906834+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 1007, "proceeds": 6643290, "entry_price": 6936, "pnl": -342657, "pnl_pct": -4.7, "hold_from": "2026-07-28T09:00:16.475655+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.389679+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 851, "cost": 5438706, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 6978, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T09:52:02.378118+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131400, "qty": 38, "cost": 4993949, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120086, "target": 148371, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "131,100 vs 108,880"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,400 / 108,880"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,400 / 113,215"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.50% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "567,993 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.50% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]} +{"ts": "2026-07-29T10:24:01.448639+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 44, "cost": 5430414, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 135082, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:42:05.418375+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 851, "proceeds": 5079056, "entry_price": 6390, "pnl": -359649, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.389677+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 6,978"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T12:50:05.475589+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 32, "proceeds": 3449261, "entry_price": 130288, "pnl": -720565, "pnl_pct": -17.11, "hold_from": "2026-07-27T09:02:06.237125+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,878"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T14:20:01.512752+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 44, "proceeds": 5072090, "entry_price": 123400, "pnl": -358324, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.448638+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,082"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v159/portfolio.json b/agents/stock/workspace/state/sim/variants/v159/portfolio.json index 828ecae..b2e08a3 100644 --- a/agents/stock/workspace/state/sim/variants/v159/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v159/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 26607306.03949998, + "cash": 49558634.24599998, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 103, - "entry_price": 120180.58252427184, - "entry_at": "2026-07-01T09:46:03.099480+09:00", - "stop": 111000, - "target": 147722, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 118,779 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 6239163.4909375, - "last_add_price": 122200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 78, - "entry_price": 134541.02564102566, - "entry_at": "2026-07-09T09:10:01.833874+09:00", - "stop": 122949, - "target": 169318, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5319361.910927292, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.177446+09:00", "stop": 318647, "target": 445059, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4992940.599795671, "last_add_price": 356000 @@ -81,82 +39,40 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4910846.127133424, "last_add_price": 91400 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 14, - "entry_price": 139000, - "entry_at": "2026-07-27T09:02:06.239540+09:00", - "stop": 108775, - "target": 229675, - "peak": 146400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 2049607.7169974358, - "last_add_price": 139000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 289, - "entry_price": 19100, + "qty": 580, + "entry_price": 19024.741379310344, "entry_at": "2026-07-27T09:02:06.239756+09:00", - "stop": 18023, - "target": 22330, - "peak": 19300, + "stop": 18071, + "target": 21887, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5527839.1075312495, - "last_add_price": 19100 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 958, - "entry_price": 6936.325678496868, - "entry_at": "2026-07-28T09:00:16.577498+09:00", - "stop": 6040, - "target": 9626, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, + "cur_price": 18800, "tranches": 2, - "tranche_value": 3329260.867915104, - "last_add_price": 7100 + "tranche_value": 5527839.1075312495, + "last_add_price": 18950 } }, - "realized_pnl": -16887319.425500017, - "closed_trades": 30, + "realized_pnl": -19889233.621500026, + "closed_trades": 36, "wins": 1, "peak_equity": 100161893.89500001, - "max_drawdown": 0.18050365415866546, + "max_drawdown": 0.2023783637742489, "last_exit": { - "086790": "2026-06-19", + "086790": "2026-07-29", "030000": "2026-07-24", "005930": "2026-06-23", "403870": "2026-07-02", @@ -168,11 +84,14 @@ "034730": "2026-07-08", "319660": "2026-07-23", "105560": "2026-07-20", - "095610": "2026-07-24", + "095610": "2026-07-29", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29", + "138040": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582864+09:00", - "updated_at": "2026-07-28T15:28:01.032077+09:00" + "updated_at": "2026-07-29T15:28:01.472635+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v159/trades.jsonl b/agents/stock/workspace/state/sim/variants/v159/trades.jsonl index 281bd6d..bd7ed23 100644 --- a/agents/stock/workspace/state/sim/variants/v159/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v159/trades.jsonl @@ -83,3 +83,13 @@ {"ts": "2026-07-28T09:00:16.577503+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 490, "cost": 3322698, "path": "pullback", "reason": "눌림목 지정가 7,596 도달", "stop": 5916, "target": 9373, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,596 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.750562+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 468, "cost": 3323298, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 9373, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,373"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T11:04:03.770897+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10790, "qty": 188, "proceeds": 2024564, "entry_price": 13150, "pnl": -448006, "pnl_pct": -17.95, "hold_from": "2026-07-27T09:12:01.524338+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,830 (현재 10,810)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,110"}, {"label": "추세(20일선)", "ok": false, "detail": "12,616"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +156 · 기 -156"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,003"}]} +{"ts": "2026-07-29T09:24:10.002211+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 229675, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,675"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]} +{"ts": "2026-07-29T09:24:10.002379+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 291, "cost": 5515277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 22330, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,330"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:10.002708+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 78, "proceeds": 10011240, "entry_price": 134541, "pnl": -484534, "pnl_pct": -4.42, "hold_from": "2026-07-09T09:10:01.833874+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,949 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 169,318"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.391374+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 808, "cost": 5163894, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7566, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.450516+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 146764, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:42:05.420086+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 808, "proceeds": 4822418, "entry_price": 6390, "pnl": -341477, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.391373+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,566"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T11:18:04.431976+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 958, "proceeds": 5736791, "entry_price": 6936, "pnl": -909205, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:16.577498+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,626"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:50:05.477470+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 30, "proceeds": 3233682, "entry_price": 130253, "pnl": -674504, "pnl_pct": -17.08, "hold_from": "2026-07-27T09:02:06.239540+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 213,434"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:30:01.454446+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 118000, "qty": 103, "proceeds": 12130300, "entry_price": 120181, "pnl": -250157, "pnl_pct": -1.81, "hold_from": "2026-07-01T09:46:03.099480+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 118,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,722"}, {"label": "추세(20일선)", "ok": false, "detail": "118,145"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T14:20:01.514442+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 42, "proceeds": 4841541, "entry_price": 123400, "pnl": -342037, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.450515+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,764"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v161/portfolio.json b/agents/stock/workspace/state/sim/variants/v161/portfolio.json index 579382d..132cba8 100644 --- a/agents/stock/workspace/state/sim/variants/v161/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v161/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 47188320.94600004, + "cash": 52676110.36350004, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 61, - "entry_price": 134562.29508196723, - "entry_at": "2026-07-09T09:10:01.835827+09:00", - "stop": 119106, - "target": 180931, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4136719.8054039073, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 68, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.450599+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4581298.170382758, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:06:07.906813+09:00", "stop": 302625, "target": 468030, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3813943.0504600187, "last_add_price": 350000 @@ -81,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3727885.349520808, "last_add_price": 91400 @@ -92,51 +50,51 @@ "sources": [ "auto" ], - "qty": 299, - "entry_price": 18950, + "qty": 598, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.447374+09:00", "stop": 17760, "target": 22520, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5685594.862062503, "last_add_price": 18950 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 159, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.527098+09:00", - "stop": 10340, - "target": 21580, - "peak": 13730, + "qty": 41, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.452555+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 2094456.8996012467, - "last_add_price": 13150 + "tranche_value": 5142605.848996199, + "last_add_price": 123400 } }, - "realized_pnl": -13231442.909000011, - "closed_trades": 19, + "realized_pnl": -16335442.066500016, + "closed_trades": 24, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.1430581905399996, + "max_drawdown": 0.1668320963649997, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-07", "240810": "2026-07-24", @@ -146,9 +104,12 @@ "055550": "2026-07-20", "105560": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29", + "252990": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582879+09:00", - "updated_at": "2026-07-28T15:28:01.033706+09:00" + "updated_at": "2026-07-29T15:28:01.474236+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v161/trades.jsonl b/agents/stock/workspace/state/sim/variants/v161/trades.jsonl index d59c2ef..dc8d702 100644 --- a/agents/stock/workspace/state/sim/variants/v161/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v161/trades.jsonl @@ -57,3 +57,14 @@ {"ts": "2026-07-27T09:18:01.999209+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 43, "cost": 5491924, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 117473, "target": 158380, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,400 vs 117,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,940 / 117,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,940 / 110,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +106 · 기 +291 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.26% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "439,847 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.26% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "71"}]} {"ts": "2026-07-28T11:22:00.757711+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 795, "proceeds": 5260572, "entry_price": 7684, "pnl": -848834, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.242173+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,004"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.826309+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 43, "proceeds": 5038356, "entry_price": 127700, "pnl": -453568, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:01.999208+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(10일선)", "ok": true, "detail": "116,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.242655+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 344, "cost": 2250097, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:10.006738+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 299, "cost": 5666900, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22520, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,520"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:10.007015+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134562, "pnl": -380228, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:01.835827+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,106 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,931"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:10.007158+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 335, "cost": 2248187, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:10.007360+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 185, "cost": 2092664, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 21580, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,580"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:28:01.393233+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 820, "cost": 5240586, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.452556+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.359379+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 344, "proceeds": 3550024, "entry_price": 12160, "pnl": -633804, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.527098+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,622"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.697397+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 68, "proceeds": 8089794, "entry_price": 132600, "pnl": -928358, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.450599+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.449804+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 679, "proceeds": 3781432, "entry_price": 6624, "pnl": -716853, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.242654+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.598735+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 820, "proceeds": 4795830, "entry_price": 6390, "pnl": -444756, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.393232+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v165/portfolio.json b/agents/stock/workspace/state/sim/variants/v165/portfolio.json index 396a601..77def7b 100644 --- a/agents/stock/workspace/state/sim/variants/v165/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v165/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 47188320.94600004, + "cash": 52676110.36350004, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 61, - "entry_price": 134562.29508196723, - "entry_at": "2026-07-09T09:10:01.837488+09:00", - "stop": 119106, - "target": 165475, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4136719.8054039073, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 68, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.452585+09:00", - "stop": 119729, - "target": 158342, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4581298.170382758, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:06:07.909051+09:00", "stop": 302625, "target": 426679, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3813943.0504600187, "last_add_price": 350000 @@ -81,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3727885.349520808, "last_add_price": 91400 @@ -92,51 +50,51 @@ "sources": [ "auto" ], - "qty": 299, - "entry_price": 18950, + "qty": 598, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.449498+09:00", "stop": 17760, "target": 21330, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5685594.862062503, "last_add_price": 18950 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 159, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.529452+09:00", - "stop": 10340, - "target": 18770, - "peak": 13730, + "qty": 41, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.454311+09:00", + "stop": 113016, + "target": 144168, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 2094456.8996012467, - "last_add_price": 13150 + "tranche_value": 5142605.848996199, + "last_add_price": 123400 } }, - "realized_pnl": -13231442.909000011, - "closed_trades": 19, + "realized_pnl": -16335442.066500016, + "closed_trades": 24, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.1430581905399996, + "max_drawdown": 0.1668320963649997, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-07", "240810": "2026-07-24", @@ -146,9 +104,12 @@ "055550": "2026-07-20", "105560": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29", + "252990": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582910+09:00", - "updated_at": "2026-07-28T15:28:01.035358+09:00" + "updated_at": "2026-07-29T15:28:01.475852+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v165/trades.jsonl b/agents/stock/workspace/state/sim/variants/v165/trades.jsonl index 6682513..6c9e83a 100644 --- a/agents/stock/workspace/state/sim/variants/v165/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v165/trades.jsonl @@ -57,3 +57,14 @@ {"ts": "2026-07-27T09:18:02.000974+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 43, "cost": 5491924, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 117473, "target": 148153, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,400 vs 117,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,940 / 117,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,940 / 110,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +106 · 기 +291 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.26% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "439,847 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.26% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "71"}]} {"ts": "2026-07-28T11:22:00.759696+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 795, "proceeds": 5260572, "entry_price": 7684, "pnl": -848834, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.244230+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.828310+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 43, "proceeds": 5038356, "entry_price": 127700, "pnl": -453568, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.000973+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,153"}, {"label": "추세(10일선)", "ok": true, "detail": "116,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.245060+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 344, "cost": 2250097, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:10.010772+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 299, "cost": 5666900, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:10.011056+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134562, "pnl": -380228, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:01.837488+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,106 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,475"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:10.011197+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 335, "cost": 2248187, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:10.011401+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 185, "cost": 2092664, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 18770, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,770"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:28:01.394949+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 820, "cost": 5240586, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.454312+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.361082+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 344, "proceeds": 3550024, "entry_price": 12160, "pnl": -633804, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.529452+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 15,801"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.699059+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 68, "proceeds": 8089794, "entry_price": 132600, "pnl": -928358, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.452585+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,342"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.451456+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 679, "proceeds": 3781432, "entry_price": 6624, "pnl": -716853, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.245058+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.600416+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 820, "proceeds": 4795830, "entry_price": 6390, "pnl": -444756, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.394948+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v167/portfolio.json b/agents/stock/workspace/state/sim/variants/v167/portfolio.json index b678dfe..135206b 100644 --- a/agents/stock/workspace/state/sim/variants/v167/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v167/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 47544513.475999996, + "cash": 65269300.0365, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 61, - "entry_price": 134562.29508196723, - "entry_at": "2026-07-09T09:10:01.839168+09:00", - "stop": 119106, - "target": 157747, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4167016.287066403, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 69, - "entry_price": 132575.36231884058, - "entry_at": "2026-07-10T09:26:06.454294+09:00", - "stop": 119704, - "target": 151882, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4614837.858935807, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:06:07.911275+09:00", "stop": 302625, "target": 406003, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3841906.161963773, "last_add_price": 350000 @@ -81,62 +39,41 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3755996.4301575036, "last_add_price": 91400 }, - "030000": { - "code": "030000", - "name": "제일기획", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 302, - "entry_price": 18950, - "entry_at": "2026-07-24T10:02:04.451570+09:00", - "stop": 17760, - "target": 20735, - "peak": 19300, + "qty": 41, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.456083+09:00", + "stop": 113016, + "target": 138976, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 5728020.23596875, - "last_add_price": 18950 - }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", - "sources": [ - "auto" - ], - "qty": 160, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.531679+09:00", - "stop": 10340, - "target": 17365, - "peak": 13730, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, - "tranches": 1, - "tranche_value": 2110094.639964724, - "last_add_price": 13150 + "tranche_value": 5164071.483514108, + "last_add_price": 123400 } }, - "realized_pnl": -12582906.534000011, - "closed_trades": 19, - "wins": 0, + "realized_pnl": -14984638.498500016, + "closed_trades": 25, + "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.13672986524000003, + "max_drawdown": 0.15195799963499992, "last_exit": { - "030000": "2026-07-15", - "086790": "2026-06-23", + "030000": "2026-07-29", + "086790": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-07", "240810": "2026-07-24", @@ -146,9 +83,12 @@ "055550": "2026-07-20", "105560": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29", + "252990": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.582926+09:00", - "updated_at": "2026-07-28T15:28:01.036978+09:00" + "updated_at": "2026-07-29T15:28:01.477451+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v167/trades.jsonl b/agents/stock/workspace/state/sim/variants/v167/trades.jsonl index 8430fd2..b4a86f3 100644 --- a/agents/stock/workspace/state/sim/variants/v167/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v167/trades.jsonl @@ -56,3 +56,13 @@ {"ts": "2026-07-27T09:18:02.002747+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 44, "cost": 5619643, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 117473, "target": 143040, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,400 vs 117,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,940 / 117,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,940 / 110,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +106 · 기 +291 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.26% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "439,847 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.26% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "71"}]} {"ts": "2026-07-28T11:22:00.761394+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 801, "proceeds": 5300274, "entry_price": 7684, "pnl": -855279, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.246347+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.830227+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127700, "pnl": -464116, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.002746+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,040"}, {"label": "추세(10일선)", "ok": true, "detail": "116,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.247306+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 347, "cost": 2269720, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:10.014921+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134562, "pnl": -380228, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:01.839168+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,106 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,747"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:10.015166+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 186, "cost": 2103976, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 17365, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,365"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:26:01.914698+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 302, "proceeds": 5708726, "entry_price": 18950, "pnl": -15032, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.451570+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.914854+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 347, "proceeds": 2289197, "entry_price": 6540, "pnl": 19477, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.247304+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.396683+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 826, "cost": 5278932, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.456084+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 138976, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.362763+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 346, "proceeds": 3570664, "entry_price": 12161, "pnl": -637628, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.531679+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 14,892"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.700752+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 69, "proceeds": 8208762, "entry_price": 132575, "pnl": -940311, "pnl_pct": -10.09, "hold_from": "2026-07-10T09:26:06.454294+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,704 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 151,882"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.602105+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 826, "proceeds": 4830921, "entry_price": 6390, "pnl": -448010, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.396682+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v189/portfolio.json b/agents/stock/workspace/state/sim/variants/v189/portfolio.json index 910b3e7..2156899 100644 --- a/agents/stock/workspace/state/sim/variants/v189/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v189/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 27859644.655, + "cash": 50766727.339499995, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 103, - "entry_price": 120180.58252427184, - "entry_at": "2026-07-01T09:46:03.114406+09:00", - "stop": 111000, - "target": 147722, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 118,779 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 6250717.7646875, - "last_add_price": 122200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 77, - "entry_price": 134418.18181818182, - "entry_at": "2026-07-09T09:36:03.473480+09:00", - "stop": 122826, - "target": 169195, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5273495.601167365, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.185929+09:00", "stop": 318647, "target": 445059, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5085796.90859035, "last_add_price": 356000 @@ -81,82 +39,40 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4982054.533958632, "last_add_price": 90900 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 15, - "entry_price": 139000, - "entry_at": "2026-07-27T09:02:06.248329+09:00", - "stop": 108775, - "target": 229675, - "peak": 146400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 2089467.8197444167, - "last_add_price": 139000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 295, - "entry_price": 19100, + "qty": 592, + "entry_price": 19024.74662162162, "entry_at": "2026-07-27T09:02:06.248456+09:00", - "stop": 18023, - "target": 22330, - "peak": 19300, + "stop": 18071, + "target": 21887, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5636180.5746875, - "last_add_price": 19100 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 978, - "entry_price": 6936.40081799591, - "entry_at": "2026-07-28T09:00:17.897086+09:00", - "stop": 6040, - "target": 9626, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, + "cur_price": 18800, "tranches": 2, - "tranche_value": 3395515.4578251736, - "last_add_price": 7100 + "tranche_value": 5636180.5746875, + "last_add_price": 18950 } }, - "realized_pnl": -15244922.310000014, - "closed_trades": 27, + "realized_pnl": -18311185.043000016, + "closed_trades": 33, "wins": 1, "peak_equity": 100344662.275, - "max_drawdown": 0.1655507850978016, + "max_drawdown": 0.18790466610796128, "last_exit": { - "086790": "2026-06-19", + "086790": "2026-07-29", "030000": "2026-07-24", "403870": "2026-07-02", "003490": "2026-07-07", @@ -166,11 +82,14 @@ "034730": "2026-07-08", "319660": "2026-07-23", "105560": "2026-07-20", - "095610": "2026-07-24", + "095610": "2026-07-29", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29", + "138040": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583136+09:00", - "updated_at": "2026-07-28T15:28:01.038624+09:00" + "updated_at": "2026-07-29T15:28:01.479045+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v189/trades.jsonl b/agents/stock/workspace/state/sim/variants/v189/trades.jsonl index 0bfeafb..8f3243e 100644 --- a/agents/stock/workspace/state/sim/variants/v189/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v189/trades.jsonl @@ -77,3 +77,13 @@ {"ts": "2026-07-28T09:00:17.897091+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 500, "cost": 3390509, "path": "pullback", "reason": "눌림목 지정가 7,596 도달", "stop": 5916, "target": 9373, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,596 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.757637+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 478, "cost": 3394309, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 9373, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,373"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T11:04:03.862281+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10790, "qty": 191, "proceeds": 2056871, "entry_price": 13150, "pnl": -455155, "pnl_pct": -17.95, "hold_from": "2026-07-27T09:12:01.533927+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,830 (현재 10,810)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,110"}, {"label": "추세(20일선)", "ok": false, "detail": "12,616"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +156 · 기 -156"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,003"}]} +{"ts": "2026-07-29T09:24:10.018164+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 17, "cost": 2084513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 229675, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,675"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]} +{"ts": "2026-07-29T09:24:10.018323+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 297, "cost": 5628994, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 22330, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,330"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:10.018592+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134418, "pnl": -468862, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.473480+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,826 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 169,195"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.398381+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 824, "cost": 5266150, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7566, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.457804+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 43, "cost": 5306996, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 146764, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:42:05.427012+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 824, "proceeds": 4917911, "entry_price": 6390, "pnl": -348238, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.398380+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,566"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T11:18:04.438536+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 978, "proceeds": 5856557, "entry_price": 6936, "pnl": -928260, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:17.897086+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,626"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:50:05.483924+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 32, "proceeds": 3449261, "entry_price": 130288, "pnl": -720565, "pnl_pct": -17.11, "hold_from": "2026-07-27T09:02:06.248329+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 213,468"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:30:01.461196+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 118000, "qty": 103, "proceeds": 12130300, "entry_price": 120181, "pnl": -250157, "pnl_pct": -1.81, "hold_from": "2026-07-01T09:46:03.114406+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 118,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,722"}, {"label": "추세(20일선)", "ok": false, "detail": "118,145"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T14:20:01.520902+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 43, "proceeds": 4956815, "entry_price": 123400, "pnl": -350181, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.457803+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,764"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v195/portfolio.json b/agents/stock/workspace/state/sim/variants/v195/portfolio.json index 933bb3f..1b1d2b0 100644 --- a/agents/stock/workspace/state/sim/variants/v195/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v195/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 39896969.21600001, + "cash": 46349207.48200001, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 85, - "entry_price": 124176.4705882353, - "entry_at": "2026-07-02T10:18:03.868150+09:00", - "stop": 111006, - "target": 163689, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,215 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5323473.79266045, - "last_add_price": 126200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.475227+09:00", - "stop": 118952, - "target": 180777, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4027945.7278098115, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.319241+09:00", "stop": 305399, "target": 472804, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3889733.683715179, "last_add_price": 353000 @@ -81,83 +39,62 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3742230.636714602, "last_add_price": 90900 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 12, - "entry_price": 155500, - "entry_at": "2026-07-24T09:00:08.691316+09:00", - "stop": 117686, - "target": 268942, - "peak": 155500, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,093 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 1870164.384838387, - "last_add_price": 155500 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 300, - "entry_price": 18950, + "qty": 600, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.455464+09:00", "stop": 17760, "target": 22520, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,012 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5696942.092812501, "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 741, - "entry_price": 6936.329284750337, - "entry_at": "2026-07-28T09:00:18.003009+09:00", - "stop": 5741, - "target": 10522, - "peak": 7780, + "qty": 89, + "entry_price": 119185.39325842696, + "entry_at": "2026-07-29T09:02:02.251620+09:00", + "stop": 111200, + "target": 143142, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 2570625.313254558, - "last_add_price": 7100 + "tranche_value": 5327150.576000001, + "last_add_price": 120500 } }, - "realized_pnl": -13849373.77600001, - "closed_trades": 22, + "realized_pnl": -16596935.273000015, + "closed_trades": 27, "wins": 0, "peak_equity": 101140808.32700005, - "max_drawdown": 0.1601801427038344, + "max_drawdown": 0.17882199227165796, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "010120": "2026-06-25", "298040": "2026-06-26", "403870": "2026-07-07", @@ -167,11 +104,13 @@ "034730": "2026-07-07", "003490": "2026-07-23", "105560": "2026-07-20", - "095610": "2026-07-23", + "095610": "2026-07-29", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583184+09:00", - "updated_at": "2026-07-28T15:28:01.040263+09:00" + "updated_at": "2026-07-29T15:28:01.480642+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v195/trades.jsonl b/agents/stock/workspace/state/sim/variants/v195/trades.jsonl index a53cafd..5752e6e 100644 --- a/agents/stock/workspace/state/sim/variants/v195/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v195/trades.jsonl @@ -67,3 +67,13 @@ {"ts": "2026-07-28T09:00:18.003017+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 379, "cost": 2570005, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 10237, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.759359+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 362, "cost": 2570586, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 10237, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,237"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.786746+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 299, "proceeds": 3333317, "entry_price": 14266, "pnl": -932852, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.440873+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,395"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.251621+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 45, "cost": 5306296, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 138000, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.482734+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 44, "cost": 5302795, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 138000, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,000"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:10.021522+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 268942, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 268,942"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]} +{"ts": "2026-07-29T09:24:10.021664+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 300, "cost": 5685853, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22520, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,520"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:10.021870+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.475227+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,777"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.400110+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 817, "cost": 5221413, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:18:05.390014+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:08.691316+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 246,789"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.704033+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.868150+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,689"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:06:06.533240+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 741, "proceeds": 4208068, "entry_price": 6936, "pnl": -932523, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:18.003009+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,522"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.605461+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 817, "proceeds": 4778284, "entry_price": 6390, "pnl": -443129, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.400109+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v197/portfolio.json b/agents/stock/workspace/state/sim/variants/v197/portfolio.json index bc48049..784e347 100644 --- a/agents/stock/workspace/state/sim/variants/v197/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v197/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 47905587.5035, + "cash": 37738549.5725, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.476927+09:00", - "stop": 118952, - "target": 165321, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4067747.817915917, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.189281+09:00", "stop": 307839, "target": 434250, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3891157.6622701483, "last_add_price": 356000 @@ -55,12 +34,12 @@ "entry_at": "2026-07-22T09:04:01.835859+09:00", "stop": 92100, "target": 119147, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5814522.042968751, "last_add_price": 103100 @@ -81,7 +60,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3778918.748885343, "last_add_price": 90900 @@ -92,27 +71,48 @@ "sources": [ "auto" ], - "qty": 299, - "entry_price": 19100, + "qty": 600, + "entry_price": 19024.75, "entry_at": "2026-07-27T09:02:06.252279+09:00", "stop": 17760, - "target": 21780, - "peak": 19300, + "target": 21554, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5719122.209000001, - "last_add_price": 19100 + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 91, + "entry_price": 119185.71428571429, + "entry_at": "2026-07-29T09:02:02.253867+09:00", + "stop": 111200, + "target": 135157, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 5467080.19828125, + "last_add_price": 120500 } }, - "realized_pnl": -12139420.146500017, - "closed_trades": 26, + "realized_pnl": -13685415.115000019, + "closed_trades": 29, "wins": 2, "peak_equity": 101368884.75700004, - "max_drawdown": 0.1409779469090311, + "max_drawdown": 0.15757813057519107, "last_exit": { "030000": "2026-07-24", "086790": "2026-07-20", @@ -127,8 +127,10 @@ "105560": "2026-07-20", "095610": "2026-07-28", "252990": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583198+09:00", - "updated_at": "2026-07-28T15:28:01.041917+09:00" + "updated_at": "2026-07-29T15:28:01.482277+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v197/trades.jsonl b/agents/stock/workspace/state/sim/variants/v197/trades.jsonl index 009112b..873f24d 100644 --- a/agents/stock/workspace/state/sim/variants/v197/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v197/trades.jsonl @@ -74,3 +74,12 @@ {"ts": "2026-07-28T09:00:18.106536+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 126200, "qty": 24, "proceeds": 3022894, "entry_price": 167779, "pnl": -1004410, "pnl_pct": -24.78, "hold_from": "2026-06-24T09:46:05.168473+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,479 (현재 128,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 240,379"}, {"label": "추세(20일선)", "ok": false, "detail": "134,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T10:08:02.788479+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 303, "proceeds": 3377910, "entry_price": 14266, "pnl": -945348, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.442603+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:22:00.766355+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 805, "proceeds": 5326743, "entry_price": 7684, "pnl": -859575, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.252691+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.253534+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 351, "cost": 2295884, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:02.253868+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 46, "cost": 5424214, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.484552+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 45, "cost": 5423313, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:10.024717+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 301, "cost": 5704806, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:10.024961+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.476927+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,321"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:10.025084+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 343, "cost": 2301875, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:28:01.401823+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 838, "cost": 5355623, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T13:14:05.457905+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 694, "proceeds": 3864969, "entry_price": 6624, "pnl": -732791, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.253533+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.607125+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 838, "proceeds": 4901104, "entry_price": 6390, "pnl": -454519, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.401822+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v199/portfolio.json b/agents/stock/workspace/state/sim/variants/v199/portfolio.json index 6d006fc..14b3870 100644 --- a/agents/stock/workspace/state/sim/variants/v199/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v199/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 56774663.38450003, + "cash": 53750178.10300002, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.478610+09:00", - "stop": 118952, - "target": 165321, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4039283.450888891, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.191055+09:00", "stop": 307839, "target": 434250, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3848025.874946516, "last_add_price": 356000 @@ -60,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3774325.11581779, "last_add_price": 90900 @@ -71,48 +50,48 @@ "sources": [ "auto" ], - "qty": 299, - "entry_price": 19100, + "qty": 600, + "entry_price": 19024.75, "entry_at": "2026-07-27T09:02:06.254501+09:00", "stop": 17760, - "target": 21780, - "peak": 19300, + "target": 21554, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5721714.462968752, - "last_add_price": 19100 + "last_add_price": 18950 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 160, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.540221+09:00", - "stop": 10340, - "target": 18770, - "peak": 13730, + "qty": 42, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.463012+09:00", + "stop": 113016, + "target": 144168, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 2116245.761706495, - "last_add_price": 13150 + "tranche_value": 5187375.1457318, + "last_add_price": 123400 } }, - "realized_pnl": -12694957.745500017, - "closed_trades": 26, + "realized_pnl": -14866665.129500018, + "closed_trades": 30, "wins": 2, "peak_equity": 100182695.41500005, - "max_drawdown": 0.13404948883506757, + "max_drawdown": 0.1552724973865191, "last_exit": { "030000": "2026-07-24", "086790": "2026-07-20", @@ -126,9 +105,12 @@ "105560": "2026-07-20", "024060": "2026-07-27", "095610": "2026-07-28", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29", + "252990": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583212+09:00", - "updated_at": "2026-07-28T15:28:01.043569+09:00" + "updated_at": "2026-07-29T15:28:01.483940+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v199/trades.jsonl b/agents/stock/workspace/state/sim/variants/v199/trades.jsonl index 5bee67f..a15d0c0 100644 --- a/agents/stock/workspace/state/sim/variants/v199/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v199/trades.jsonl @@ -72,3 +72,13 @@ {"ts": "2026-07-28T09:04:02.759310+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:07.269469+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 234,847"}, {"label": "추세(20일선)", "ok": false, "detail": "134,595"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:22:00.768046+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 805, "proceeds": 5326743, "entry_price": 7684, "pnl": -859575, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.254810+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T12:56:02.896515+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127900, "pnl": -472917, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.412364+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,411"}, {"label": "추세(20일선)", "ok": true, "detail": "113,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]} +{"ts": "2026-07-29T09:02:02.255678+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 348, "cost": 2276261, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:10.027865+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 301, "cost": 5704806, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:10.028115+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.478610+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,321"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:10.028241+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 339, "cost": 2275031, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:10.028406+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 187, "cost": 2115287, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 18770, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,770"}, {"label": "추세(20일선)", "ok": true, "detail": "12,805"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:28:01.403531+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 828, "cost": 5291714, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.463013+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.369415+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 347, "proceeds": 3580983, "entry_price": 12158, "pnl": -638619, "pnl_pct": -14.96, "hold_from": "2026-07-27T09:12:01.540221+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 15,795"}, {"label": "추세(20일선)", "ok": false, "detail": "12,592"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.459920+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 687, "proceeds": 3825985, "entry_price": 6624, "pnl": -725308, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.255677+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.608819+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 828, "proceeds": 4842618, "entry_price": 6390, "pnl": -449095, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.403529+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v201/portfolio.json b/agents/stock/workspace/state/sim/variants/v201/portfolio.json index a3d1858..351ad99 100644 --- a/agents/stock/workspace/state/sim/variants/v201/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v201/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 39896969.21600001, + "cash": 46349207.48200001, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 85, - "entry_price": 124176.4705882353, - "entry_at": "2026-07-02T10:18:03.875113+09:00", - "stop": 111006, - "target": 150518, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,215 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5323473.79266045, - "last_add_price": 126200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.480275+09:00", - "stop": 118952, - "target": 165321, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4027945.7278098115, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.324564+09:00", "stop": 305399, "target": 430953, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3889733.683715179, "last_add_price": 353000 @@ -81,83 +39,62 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3742230.636714602, "last_add_price": 90900 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 12, - "entry_price": 155500, - "entry_at": "2026-07-24T09:00:09.009222+09:00", - "stop": 117686, - "target": 231128, - "peak": 155500, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,093 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 1870164.384838387, - "last_add_price": 155500 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 300, - "entry_price": 18950, + "qty": 600, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.460951+09:00", "stop": 17760, "target": 21330, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,012 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5696942.092812501, "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 741, - "entry_price": 6936.329284750337, - "entry_at": "2026-07-28T09:00:18.311548+09:00", - "stop": 5741, - "target": 9327, - "peak": 7780, + "qty": 89, + "entry_price": 119185.39325842696, + "entry_at": "2026-07-29T09:02:02.257865+09:00", + "stop": 111200, + "target": 135156, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 2570625.313254558, - "last_add_price": 7100 + "tranche_value": 5327150.576000001, + "last_add_price": 120500 } }, - "realized_pnl": -13849373.77600001, - "closed_trades": 22, + "realized_pnl": -16596935.273000015, + "closed_trades": 27, "wins": 0, "peak_equity": 101140808.32700005, - "max_drawdown": 0.1601801427038344, + "max_drawdown": 0.17882199227165796, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "010120": "2026-06-25", "298040": "2026-06-26", "403870": "2026-07-07", @@ -167,11 +104,13 @@ "034730": "2026-07-07", "003490": "2026-07-23", "105560": "2026-07-20", - "095610": "2026-07-23", + "095610": "2026-07-29", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583227+09:00", - "updated_at": "2026-07-28T15:28:01.045188+09:00" + "updated_at": "2026-07-29T15:28:01.485537+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v201/trades.jsonl b/agents/stock/workspace/state/sim/variants/v201/trades.jsonl index 17f1426..3f891e1 100644 --- a/agents/stock/workspace/state/sim/variants/v201/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v201/trades.jsonl @@ -67,3 +67,13 @@ {"ts": "2026-07-28T09:00:18.311555+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 379, "cost": 2570005, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 9085, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.764446+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 362, "cost": 2570586, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 9085, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,085"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.791861+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 299, "proceeds": 3333317, "entry_price": 14266, "pnl": -932852, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.445916+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.257867+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 45, "cost": 5306296, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.488056+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 44, "cost": 5302795, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:10.030807+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 231128, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 231,128"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]} +{"ts": "2026-07-29T09:24:10.030921+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 300, "cost": 5685853, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:10.031108+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.480275+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,321"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.405241+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 817, "cost": 5221413, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:18:05.395067+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:09.009222+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 210,267"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.708942+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.875113+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 150,518"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:06:06.538231+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 741, "proceeds": 4208068, "entry_price": 6936, "pnl": -932523, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:18.311548+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,327"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.610479+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 817, "proceeds": 4778284, "entry_price": 6390, "pnl": -443129, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.405240+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v203/portfolio.json b/agents/stock/workspace/state/sim/variants/v203/portfolio.json index 0642065..a39ea07 100644 --- a/agents/stock/workspace/state/sim/variants/v203/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v203/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 54267867.90049997, + "cash": 67495423.53049996, "initial": 100000000, "positions": { "214450": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.194399+09:00", "stop": 318449, "target": 397456, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5225929.659467572, "last_add_price": 356000 @@ -39,83 +39,20 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 5138975.321289769, "last_add_price": 90900 - }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 15, - "entry_price": 139000, - "entry_at": "2026-07-27T09:02:06.258350+09:00", - "stop": 108775, - "target": 184337, - "peak": 146400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 2167992.3633458223, - "last_add_price": 139000 - }, - "030000": { - "code": "030000", - "name": "제일기획", - "sources": [ - "auto" - ], - "qty": 308, - "entry_price": 19100, - "entry_at": "2026-07-27T09:02:06.258453+09:00", - "stop": 18023, - "target": 20715, - "peak": 19300, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5892747.465906248, - "last_add_price": 19100 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 1027, - "entry_price": 6936.416747809153, - "entry_at": "2026-07-28T09:00:18.415977+09:00", - "stop": 6040, - "target": 8281, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, - "tranches": 2, - "tranche_value": 3566532.3780451375, - "last_add_price": 7100 } }, - "realized_pnl": -10277814.749500021, - "closed_trades": 31, + "realized_pnl": -12144022.844500024, + "closed_trades": 36, "wins": 5, "peak_equity": 100344662.275, - "max_drawdown": 0.11804747861960987, + "max_drawdown": 0.12451886663644701, "last_exit": { "086790": "2026-07-20", - "030000": "2026-07-24", + "030000": "2026-07-29", "403870": "2026-07-02", "003490": "2026-07-07", "240810": "2026-07-24", @@ -123,14 +60,15 @@ "093370": "2026-07-20", "034730": "2026-07-08", "319660": "2026-07-27", - "095610": "2026-07-16", + "095610": "2026-07-29", "105560": "2026-07-20", "010950": "2026-07-27", "024060": "2026-07-27", - "003680": "2026-07-27", - "138040": "2026-07-28", - "252990": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-29", + "252990": "2026-07-28", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583241+09:00", - "updated_at": "2026-07-28T15:28:01.046847+09:00" + "updated_at": "2026-07-29T15:28:01.487154+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v203/trades.jsonl b/agents/stock/workspace/state/sim/variants/v203/trades.jsonl index 774a8bf..5846431 100644 --- a/agents/stock/workspace/state/sim/variants/v203/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v203/trades.jsonl @@ -81,3 +81,11 @@ {"ts": "2026-07-28T09:10:01.766164+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 502, "cost": 3564735, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8077, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,077"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T09:38:04.856150+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 120100, "qty": 45, "proceeds": 5393961, "entry_price": 127900, "pnl": -362402, "pnl_pct": -6.1, "hold_from": "2026-07-27T09:32:01.416272+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,209 (현재 120,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 139,437"}, {"label": "추세(20일선)", "ok": true, "detail": "113,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,460"}]} {"ts": "2026-07-28T11:04:03.876316+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10790, "qty": 199, "proceeds": 2143023, "entry_price": 13150, "pnl": -474220, "pnl_pct": -17.95, "hold_from": "2026-07-27T09:12:01.544267+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,830 (현재 10,810)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,630"}, {"label": "추세(20일선)", "ok": false, "detail": "12,616"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +156 · 기 -156"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,003"}]} +{"ts": "2026-07-29T09:24:10.033574+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 17, "cost": 2084513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 184337, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 184,337"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]} +{"ts": "2026-07-29T09:26:01.925323+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 308, "proceeds": 5822145, "entry_price": 19100, "pnl": -61538, "pnl_pct": -0.84, "hold_from": "2026-07-27T09:02:06.258453+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "18,852"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.925475+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 1027, "proceeds": 6775232, "entry_price": 6936, "pnl": -349536, "pnl_pct": -4.71, "hold_from": "2026-07-28T09:00:18.415977+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.406972+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 871, "cost": 5566525, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 6978, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.466402+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 45, "cost": 5553833, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 135082, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:42:05.435654+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 871, "proceeds": 5198423, "entry_price": 6390, "pnl": -368102, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.406971+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 6,978"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T12:50:05.492063+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 32, "proceeds": 3449261, "entry_price": 130288, "pnl": -720565, "pnl_pct": -17.11, "hold_from": "2026-07-27T09:02:06.258350+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,878"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T14:20:01.529112+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 45, "proceeds": 5187365, "entry_price": 123400, "pnl": -366468, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.466401+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,082"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v205/portfolio.json b/agents/stock/workspace/state/sim/variants/v205/portfolio.json index c128801..fd4c824 100644 --- a/agents/stock/workspace/state/sim/variants/v205/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v205/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 48597347.38000002, + "cash": 38950713.03150001, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 60, - "entry_price": 134368.33333333334, - "entry_at": "2026-07-09T09:36:03.483808+09:00", - "stop": 118912, - "target": 157553, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4100167.692846849, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.196090+09:00", "stop": 308113, "target": 413456, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3939968.9939820534, "last_add_price": 356000 @@ -55,12 +34,12 @@ "entry_at": "2026-07-22T09:04:01.842571+09:00", "stop": 92100, "target": 114641, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5880825.494625002, "last_add_price": 103100 @@ -81,7 +60,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3836617.5002028025, "last_add_price": 90900 @@ -92,27 +71,48 @@ "sources": [ "auto" ], - "qty": 304, - "entry_price": 19100, + "qty": 611, + "entry_price": 19024.631751227495, "entry_at": "2026-07-27T09:02:06.260443+09:00", "stop": 17760, - "target": 21110, - "peak": 19300, + "target": 20922, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5821568.917468751, - "last_add_price": 19100 + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 93, + "entry_price": 119186.02150537634, + "entry_at": "2026-07-29T09:02:02.261876+09:00", + "stop": 111200, + "target": 131165, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 5570614.761375001, + "last_add_price": 120500 } }, - "realized_pnl": -10482615.535000017, - "closed_trades": 29, - "wins": 4, + "realized_pnl": -11288073.90600002, + "closed_trades": 32, + "wins": 5, "peak_equity": 101368884.75700004, - "max_drawdown": 0.12474259145015222, + "max_drawdown": 0.1340342561730886, "last_exit": { "030000": "2026-07-24", "086790": "2026-07-20", @@ -127,8 +127,10 @@ "003490": "2026-07-09", "105560": "2026-07-20", "252990": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583273+09:00", - "updated_at": "2026-07-28T15:28:01.048501+09:00" + "updated_at": "2026-07-29T15:28:01.488746+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v205/trades.jsonl b/agents/stock/workspace/state/sim/variants/v205/trades.jsonl index 5b92ce1..d413214 100644 --- a/agents/stock/workspace/state/sim/variants/v205/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v205/trades.jsonl @@ -80,3 +80,11 @@ {"ts": "2026-07-28T10:08:02.795319+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 307, "proceeds": 3422503, "entry_price": 14266, "pnl": -957844, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.449229+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:22:00.772935+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 819, "proceeds": 5419382, "entry_price": 7684, "pnl": -874612, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.260601+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:34:01.995508+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 120300, "qty": 12, "proceeds": 1440785, "entry_price": 158100, "pnl": -456700, "pnl_pct": -23.91, "hold_from": "2026-07-22T15:04:01.021105+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,314 (현재 120,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 214,778"}, {"label": "추세(20일선)", "ok": false, "detail": "134,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +285 · 기 -563"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 168,711"}]} +{"ts": "2026-07-29T09:02:02.261523+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 358, "cost": 2341671, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:02.261877+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 47, "cost": 5542131, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.491611+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 46, "cost": 5543831, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:10.036116+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 307, "cost": 5818523, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21110, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,110"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:10.036308+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 60, "proceeds": 7700954, "entry_price": 134368, "pnl": -362356, "pnl_pct": -4.29, "hold_from": "2026-07-09T09:36:03.483808+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,912 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,553"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.927146+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 358, "proceeds": 2361766, "entry_price": 6540, "pnl": 20094, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.261522+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.408657+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 854, "cost": 5457879, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T13:34:03.613777+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 854, "proceeds": 4994681, "entry_price": 6390, "pnl": -463197, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.408655+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v207/portfolio.json b/agents/stock/workspace/state/sim/variants/v207/portfolio.json index 3aa3cc9..7901802 100644 --- a/agents/stock/workspace/state/sim/variants/v207/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v207/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 56167697.05300004, + "cash": 53381301.820000045, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 60, - "entry_price": 134368.33333333334, - "entry_at": "2026-07-09T09:36:03.485481+09:00", - "stop": 118912, - "target": 165281, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4104199.1508728755, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.329595+09:00", "stop": 305125, "target": 430679, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3869967.7922643563, "last_add_price": 353000 @@ -60,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3737129.4618013836, "last_add_price": 90900 @@ -71,48 +50,48 @@ "sources": [ "auto" ], - "qty": 302, - "entry_price": 18950, + "qty": 604, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.466250+09:00", "stop": 17760, "target": 21330, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5724944.494593753, "last_add_price": 18950 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 160, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.548027+09:00", - "stop": 10340, - "target": 18770, - "peak": 13730, + "qty": 41, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.469724+09:00", + "stop": 113016, + "target": 144168, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 2109152.1279527587, - "last_add_price": 13150 + "tranche_value": 5162533.383709267, + "last_add_price": 123400 } }, - "realized_pnl": -13220911.927000012, - "closed_trades": 19, + "realized_pnl": -15391014.730000013, + "closed_trades": 23, "wins": 0, "peak_equity": 100024962.38500004, - "max_drawdown": 0.13609677821824845, + "max_drawdown": 0.1580397551578642, "last_exit": { "030000": "2026-07-15", "086790": "2026-07-28", @@ -124,9 +103,12 @@ "055550": "2026-07-20", "105560": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29", + "252990": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583289+09:00", - "updated_at": "2026-07-28T15:28:01.050119+09:00" + "updated_at": "2026-07-29T15:28:01.490354+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v207/trades.jsonl b/agents/stock/workspace/state/sim/variants/v207/trades.jsonl index 50906e4..19ce71f 100644 --- a/agents/stock/workspace/state/sim/variants/v207/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v207/trades.jsonl @@ -55,3 +55,13 @@ {"ts": "2026-07-28T11:22:00.774625+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 800, "proceeds": 5293657, "entry_price": 7684, "pnl": -854425, "pnl_pct": -13.72, "hold_from": "2026-07-27T09:02:06.262348+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,898"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T12:56:02.903081+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127900, "pnl": -472917, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.419969+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,411"}, {"label": "추세(10일선)", "ok": true, "detail": "116,360"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]} {"ts": "2026-07-28T13:20:03.855462+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123800, "qty": 69, "proceeds": 8525543, "entry_price": 137175, "pnl": -940977, "pnl_pct": -9.75, "hold_from": "2026-07-13T09:48:02.363790+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,862 (현재 123,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,803"}, {"label": "추세(10일선)", "ok": true, "detail": "119,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.263572+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 347, "cost": 2269720, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:10.038511+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 302, "cost": 5723758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:10.038670+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 60, "proceeds": 7700954, "entry_price": 134368, "pnl": -362356, "pnl_pct": -4.29, "hold_from": "2026-07-09T09:36:03.485481+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,912 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,281"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:10.038748+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 338, "cost": 2268320, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:10.038867+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 186, "cost": 2103976, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 18770, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,770"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:28:01.410420+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 824, "cost": 5266150, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.469725+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.376027+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 346, "proceeds": 3570664, "entry_price": 12161, "pnl": -637628, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.548027+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 15,803"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.466408+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 685, "proceeds": 3814847, "entry_price": 6624, "pnl": -723194, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.263571+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.615477+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 824, "proceeds": 4819224, "entry_price": 6390, "pnl": -446926, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.410419+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v209/portfolio.json b/agents/stock/workspace/state/sim/variants/v209/portfolio.json index 804db04..f81eadb 100644 --- a/agents/stock/workspace/state/sim/variants/v209/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v209/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 56205169.073000036, + "cash": 65766270.82200003, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 61, - "entry_price": 134409.83606557376, - "entry_at": "2026-07-09T09:36:03.487132+09:00", - "stop": 118954, - "target": 157594, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4134023.492494496, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.331285+09:00", "stop": 305399, "target": 410027, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3898349.7986140535, "last_add_price": 353000 @@ -60,61 +39,40 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3762093.1541708363, "last_add_price": 90900 }, - "030000": { - "code": "030000", - "name": "제일기획", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 304, - "entry_price": 18950, - "entry_at": "2026-07-24T10:02:04.467963+09:00", - "stop": 17760, - "target": 20735, - "peak": 19300, + "qty": 41, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.471456+09:00", + "stop": 113016, + "target": 138976, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 5764398.856562503, - "last_add_price": 18950 - }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", - "sources": [ - "auto" - ], - "qty": 161, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.549891+09:00", - "stop": 10340, - "target": 17365, - "peak": 13730, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, - "tranches": 1, - "tranche_value": 2123684.549898044, - "last_add_price": 13150 + "tranche_value": 5181824.996564139, + "last_add_price": 123400 } }, - "realized_pnl": -12642408.76450001, - "closed_trades": 19, - "wins": 0, + "realized_pnl": -14100509.648000013, + "closed_trades": 24, + "wins": 1, "peak_equity": 100024962.38500004, - "max_drawdown": 0.13028867965817217, + "max_drawdown": 0.1434371103062925, "last_exit": { - "030000": "2026-07-15", + "030000": "2026-07-29", "086790": "2026-07-28", "403870": "2026-07-07", "240810": "2026-07-24", @@ -124,9 +82,12 @@ "055550": "2026-07-20", "105560": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29", + "252990": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583304+09:00", - "updated_at": "2026-07-28T15:28:01.051752+09:00" + "updated_at": "2026-07-29T15:28:01.491957+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v209/trades.jsonl b/agents/stock/workspace/state/sim/variants/v209/trades.jsonl index 51a3bc4..c80b876 100644 --- a/agents/stock/workspace/state/sim/variants/v209/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v209/trades.jsonl @@ -54,3 +54,12 @@ {"ts": "2026-07-28T11:22:00.776303+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 805, "proceeds": 5326743, "entry_price": 7684, "pnl": -859575, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.264397+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T12:56:02.904762+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127900, "pnl": -472917, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.421842+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,283"}, {"label": "추세(10일선)", "ok": true, "detail": "116,360"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]} {"ts": "2026-07-28T13:20:03.857155+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123800, "qty": 71, "proceeds": 8772660, "entry_price": 137176, "pnl": -968301, "pnl_pct": -9.75, "hold_from": "2026-07-13T09:48:02.365501+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,862 (현재 123,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,147"}, {"label": "추세(10일선)", "ok": true, "detail": "119,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.265506+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 349, "cost": 2282802, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:10.041014+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134410, "pnl": -370927, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.487132+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,954 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,594"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:10.041181+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 187, "cost": 2115287, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 17365, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,365"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:26:01.930391+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 304, "proceeds": 5746532, "entry_price": 18950, "pnl": -15132, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.467963+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.930530+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 349, "proceeds": 2302392, "entry_price": 6540, "pnl": 19589, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.265505+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.412116+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 830, "cost": 5304496, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.471457+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 138976, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.377740+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 348, "proceeds": 3591303, "entry_price": 12161, "pnl": -641452, "pnl_pct": -14.98, "hold_from": "2026-07-27T09:12:01.549891+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 14,893"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.617123+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 830, "proceeds": 4854316, "entry_price": 6390, "pnl": -450180, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.412115+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v211/portfolio.json b/agents/stock/workspace/state/sim/variants/v211/portfolio.json index 9b0fb64..95ad6d4 100644 --- a/agents/stock/workspace/state/sim/variants/v211/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v211/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 41351647.54600003, + "cash": 59106467.79900003, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 85, - "entry_price": 124176.4705882353, - "entry_at": "2026-07-02T10:18:03.885656+09:00", - "stop": 111006, - "target": 143933, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,215 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5357366.7482318785, - "last_add_price": 126200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.488778+09:00", - "stop": 118952, - "target": 157593, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4055251.939081083, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.332947+09:00", "stop": 305399, "target": 410027, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3913399.394880189, "last_add_price": 353000 @@ -81,87 +39,45 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3814573.88062613, "last_add_price": 90900 }, - "095610": { - "code": "095610", - "name": "테스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 12, - "entry_price": 155500, - "entry_at": "2026-07-24T09:00:09.525183+09:00", - "stop": 117686, - "target": 212221, - "peak": 155500, + "qty": 91, + "entry_price": 119185.71428571429, + "entry_at": "2026-07-29T09:02:02.267342+09:00", + "stop": 111200, + "target": 131164, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,093 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 1907438.4417107757, - "last_add_price": 155500 - }, - "030000": { - "code": "030000", - "name": "제일기획", - "sources": [ - "auto" - ], - "qty": 306, - "entry_price": 18950, - "entry_at": "2026-07-24T10:02:04.469651+09:00", - "stop": 17760, - "target": 20735, - "peak": 19300, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 20,012 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5809954.857343752, - "last_add_price": 18950 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 755, - "entry_price": 6936.397350993378, - "entry_at": "2026-07-28T09:00:18.830154+09:00", - "stop": 5741, - "target": 8729, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 2622666.0387777355, - "last_add_price": 7100 + "tranche_value": 5436300.471625002, + "last_add_price": 120500 } }, - "realized_pnl": -12095590.587000012, - "closed_trades": 25, + "realized_pnl": -14884731.466000017, + "closed_trades": 31, "wins": 2, "peak_equity": 101140808.32700005, - "max_drawdown": 0.1429631720388377, + "max_drawdown": 0.16056961375564408, "last_exit": { - "030000": "2026-07-15", - "086790": "2026-06-23", + "030000": "2026-07-29", + "086790": "2026-07-29", "010120": "2026-06-25", "298040": "2026-06-26", "403870": "2026-07-07", - "095610": "2026-07-23", + "095610": "2026-07-29", "093370": "2026-07-20", "240810": "2026-07-24", "214450": "2026-07-06", @@ -169,9 +85,11 @@ "003490": "2026-07-23", "105560": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583318+09:00", - "updated_at": "2026-07-28T15:28:01.053364+09:00" + "updated_at": "2026-07-29T15:28:01.493544+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v211/trades.jsonl b/agents/stock/workspace/state/sim/variants/v211/trades.jsonl index cd7ea6d..070c47b 100644 --- a/agents/stock/workspace/state/sim/variants/v211/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v211/trades.jsonl @@ -74,3 +74,13 @@ {"ts": "2026-07-28T09:00:18.830160+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 386, "cost": 2617473, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 8509, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.772811+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 369, "cost": 2620293, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.800571+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 305, "proceeds": 3400207, "entry_price": 14266, "pnl": -951596, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.454214+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.267343+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 46, "cost": 5424214, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.496790+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 45, "cost": 5423313, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:10.043141+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 212221, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,221"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]} +{"ts": "2026-07-29T09:24:10.043313+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.488778+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,593"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.932122+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 306, "proceeds": 5784339, "entry_price": 18950, "pnl": -15231, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.469651+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.413802+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 833, "cost": 5323668, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:18:05.403412+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:09.525183+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 192,006"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.716987+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.885656+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,933"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:06:06.546415+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 755, "proceeds": 4287573, "entry_price": 6936, "pnl": -950193, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:18.830154+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.618813+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 833, "proceeds": 4871861, "entry_price": 6390, "pnl": -451807, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.413801+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v213/portfolio.json b/agents/stock/workspace/state/sim/variants/v213/portfolio.json index 96ab400..62be518 100644 --- a/agents/stock/workspace/state/sim/variants/v213/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v213/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 29709545.535499997, + "cash": 26388097.34059999, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 76, - "entry_price": 134385.52631578947, - "entry_at": "2026-07-09T09:36:03.490473+09:00", - "stop": 122793, - "target": 157570, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5164908.463247621, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.202637+09:00", "stop": 318647, "target": 413456, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5038910.050638685, "last_add_price": 356000 @@ -55,12 +34,12 @@ "entry_at": "2026-07-22T09:04:01.849191+09:00", "stop": 92100, "target": 119144, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5640212.3774375, "last_add_price": 103100 @@ -81,7 +60,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4907020.835552651, "last_add_price": 90900 @@ -92,20 +71,20 @@ "sources": [ "auto" ], - "qty": 293, - "entry_price": 19100, + "qty": 588, + "entry_price": 19024.744897959183, "entry_at": "2026-07-27T09:02:06.267735+09:00", - "stop": 18023, - "target": 21254, - "peak": 19300, + "stop": 18071, + "target": 20933, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5601008.3746875, - "last_add_price": 19100 + "last_add_price": 18950 }, "218150": { "code": "218150", @@ -113,48 +92,48 @@ "sources": [ "interest" ], - "qty": 1233, - "entry_price": 2130, + "qty": 2579, + "entry_price": 2036.5785188057387, "entry_at": "2026-07-27T14:20:01.093221+09:00", "stop": 1775, - "target": 2840, - "peak": 2235, + "target": 2720, + "peak": 2450, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 2,135 도달", - "cur_price": 1941, - "tranches": 1, + "cur_price": 1805, + "tranches": 2, "tranche_value": 2627079.6319200005, - "last_add_price": 2130 + "last_add_price": 1951 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 979, - "entry_price": 6936.241062308478, - "entry_at": "2026-07-28T09:00:18.935354+09:00", - "stop": 6040, - "target": 8729, - "peak": 7780, + "qty": 87, + "entry_price": 119185.05747126437, + "entry_at": "2026-07-29T09:02:02.269059+09:00", + "stop": 111408, + "target": 134739, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 3400860.5857869796, - "last_add_price": 7100 + "tranche_value": 5278498.658468749, + "last_add_price": 120500 } }, - "realized_pnl": -14457310.749000017, - "closed_trades": 36, + "realized_pnl": -16197005.716500018, + "closed_trades": 39, "wins": 4, "peak_equity": 101501376.42350003, - "max_drawdown": 0.17474704790203693, + "max_drawdown": 0.18836080609517294, "last_exit": { "086790": "2026-07-20", "030000": "2026-07-24", @@ -168,9 +147,11 @@ "214450": "2026-07-03", "319660": "2026-07-23", "105560": "2026-07-20", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583333+09:00", - "updated_at": "2026-07-28T15:28:01.055017+09:00" + "updated_at": "2026-07-29T15:28:01.495153+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v213/trades.jsonl b/agents/stock/workspace/state/sim/variants/v213/trades.jsonl index 2f45a02..0530a73 100644 --- a/agents/stock/workspace/state/sim/variants/v213/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v213/trades.jsonl @@ -102,3 +102,11 @@ {"ts": "2026-07-28T09:00:18.935361+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 501, "cost": 3397290, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5916, "target": 8509, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:02:04.781522+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 392, "proceeds": 4663528, "entry_price": 14266, "pnl": -929711, "pnl_pct": -16.45, "hold_from": "2026-07-22T14:18:05.455954+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,984 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,673"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:10:01.774527+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 478, "cost": 3394309, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} +{"ts": "2026-07-29T09:02:02.269060+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.498540+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:10.045434+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 295, "cost": 5591089, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 21254, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,254"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:10.045608+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 76, "proceeds": 9754541, "entry_price": 134386, "pnl": -460291, "pnl_pct": -4.31, "hold_from": "2026-07-09T09:36:03.490473+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,793 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,570"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:10.045809+09:00", "side": "BUY", "code": "218150", "name": "미래생명자원", "price": 1951, "qty": 1346, "cost": 2626440, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1775, "target": 2840, "signals": [{"label": "손절선", "ok": true, "detail": "1,775 (현재 2,450)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 2,840"}, {"label": "추세(20일선)", "ok": true, "detail": "2,005"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +40 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 2,287"}]} +{"ts": "2026-07-29T09:28:01.415512+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 829, "cost": 5298105, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:42:05.443994+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 829, "proceeds": 4947753, "entry_price": 6390, "pnl": -350352, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.415511+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T11:18:04.454862+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 979, "proceeds": 5862546, "entry_price": 6936, "pnl": -929053, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:18.935354+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v215/portfolio.json b/agents/stock/workspace/state/sim/variants/v215/portfolio.json index d87464b..578332d 100644 --- a/agents/stock/workspace/state/sim/variants/v215/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v215/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 31066735.131500013, + "cash": 40998358.9225, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 89, - "entry_price": 124177.52808988764, - "entry_at": "2026-07-02T10:18:03.889699+09:00", - "stop": 114299, - "target": 143934, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,215 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5572324.860088777, - "last_add_price": 126200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 77, - "entry_price": 134418.18181818182, - "entry_at": "2026-07-09T09:36:03.492141+09:00", - "stop": 122826, - "target": 157603, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5242158.578984787, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.204321+09:00", "stop": 318647, "target": 413456, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5033450.427529937, "last_add_price": 356000 @@ -81,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4951509.819030465, "last_add_price": 90900 @@ -92,50 +50,50 @@ "sources": [ "auto" ], - "qty": 298, - "entry_price": 18950, + "qty": 596, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.472960+09:00", - "stop": 17843, - "target": 21164, - "peak": 19300, + "stop": 17996, + "target": 20858, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,012 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5662520.118343751, "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 973, - "entry_price": 6936.217882836588, - "entry_at": "2026-07-28T09:00:19.039792+09:00", - "stop": 6040, - "target": 8729, - "peak": 7780, + "qty": 87, + "entry_price": 119185.05747126437, + "entry_at": "2026-07-29T09:02:02.270985+09:00", + "stop": 111408, + "target": 134739, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 3378406.3450362855, - "last_add_price": 7100 + "tranche_value": 5234858.44571875, + "last_add_price": 120500 } }, - "realized_pnl": -15472406.942500016, - "closed_trades": 32, + "realized_pnl": -17677343.36250002, + "closed_trades": 36, "wins": 2, "peak_equity": 101258161.16350003, - "max_drawdown": 0.17624066867247043, + "max_drawdown": 0.19142992543288662, "last_exit": { - "086790": "2026-06-26", + "086790": "2026-07-29", "030000": "2026-07-16", "403870": "2026-07-02", "010120": "2026-06-25", @@ -148,9 +106,11 @@ "214450": "2026-07-14", "105560": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583347+09:00", - "updated_at": "2026-07-28T15:28:01.056632+09:00" + "updated_at": "2026-07-29T15:28:01.496779+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v215/trades.jsonl b/agents/stock/workspace/state/sim/variants/v215/trades.jsonl index a8f38e4..45dfabf 100644 --- a/agents/stock/workspace/state/sim/variants/v215/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v215/trades.jsonl @@ -89,3 +89,11 @@ {"ts": "2026-07-28T09:02:04.783208+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 396, "proceeds": 4711115, "entry_price": 14266, "pnl": -939212, "pnl_pct": -16.45, "hold_from": "2026-07-22T14:18:05.457812+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,984 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(10일선)", "ok": false, "detail": "12,769"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:04:02.772593+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 15, "proceeds": 1844396, "entry_price": 155500, "pnl": -488453, "pnl_pct": -20.77, "hold_from": "2026-07-24T09:00:09.727869+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "127,139 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,221"}, {"label": "추세(10일선)", "ok": false, "detail": "149,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 166,050"}]} {"ts": "2026-07-28T09:10:01.776214+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 475, "cost": 3373006, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} +{"ts": "2026-07-29T09:02:02.270986+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.500289+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:10.047648+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 298, "cost": 5647947, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17843, "target": 21164, "signals": [{"label": "손절선", "ok": true, "detail": "17,843 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,164"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:10.047791+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134418, "pnl": -468862, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.492141+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,826 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,603"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.417217+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 822, "cost": 5253368, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:42:05.445723+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 822, "proceeds": 4905975, "entry_price": 6390, "pnl": -347393, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.417216+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,551"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T11:18:04.456547+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 973, "proceeds": 5826616, "entry_price": 6936, "pnl": -923336, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:19.039792+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(10일선)", "ok": true, "detail": "5,246"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.720263+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 89, "proceeds": 10588113, "entry_price": 124178, "pnl": -465345, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.889699+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "114,299 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,934"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v217/portfolio.json b/agents/stock/workspace/state/sim/variants/v217/portfolio.json index 58957ee..51d754e 100644 --- a/agents/stock/workspace/state/sim/variants/v217/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v217/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 51098905.55800001, + "cash": 56500758.92050001, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.598088+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4019229.444473994, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.479634+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4444963.71074213, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.209787+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3627364.7637924887, "last_add_price": 356000 @@ -81,19 +39,61 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3559940.05276684, "last_add_price": 92800 + }, + "095610": { + "code": "095610", + "name": "테스", + "sources": [ + "auto" + ], + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.560863+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2259605.2304230183, + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 39, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.482559+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4841528.853832099, + "last_add_price": 123400 } }, - "realized_pnl": -18179986.967000037, - "closed_trades": 81, + "realized_pnl": -20238352.469500042, + "closed_trades": 85, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.19091694441999987, + "max_drawdown": 0.2130664107949999, "last_exit": { - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -106,7 +106,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -117,9 +117,10 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-28", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29" }, "created_at": "2026-06-15T14:40:00.621011+09:00", - "updated_at": "2026-07-28T15:28:01.063168+09:00" + "updated_at": "2026-07-29T15:28:01.503198+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v217/trades.jsonl b/agents/stock/workspace/state/sim/variants/v217/trades.jsonl index 0c6c701..f50dd78 100644 --- a/agents/stock/workspace/state/sim/variants/v217/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v217/trades.jsonl @@ -181,3 +181,13 @@ {"ts": "2026-07-28T09:04:02.776911+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.040447+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.178002+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.372323+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.856624+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.380398+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.560882+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.828619+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.833245+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.860256+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.828601+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:13.501879+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.017996+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.598088+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.019871+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.482560+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.724599+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.479634+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.478291+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.833239+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v218/portfolio.json b/agents/stock/workspace/state/sim/variants/v218/portfolio.json index 9532400..587fcb4 100644 --- a/agents/stock/workspace/state/sim/variants/v218/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v218/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 50578135.040500015, + "cash": 56918920.823500015, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.604940+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4019229.444473994, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.484444+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4444963.71074213, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,45 +13,87 @@ "entry_at": "2026-07-21T12:06:01.213387+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3627364.7637924887, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", + "095610": { + "code": "095610", + "name": "테스", "sources": [ "auto" ], - "qty": 71, - "entry_price": 95478.87323943662, - "entry_at": "2026-07-24T09:26:01.048280+09:00", - "stop": 83571, - "target": 131203, - "peak": 99800, + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.846251+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2230375.77623366, + "last_add_price": 122600 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 258, + "entry_price": 19370, + "entry_at": "2026-07-29T10:06:01.681124+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, + "tranches": 1, + "tranche_value": 5013998.744343751, + "last_add_price": 19370 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 38, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.484865+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 3439647.5899249003, - "last_add_price": 97000 + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4760241.173848085, + "last_add_price": 123400 } }, - "realized_pnl": -18942593.75450004, - "closed_trades": 81, + "realized_pnl": -21967252.577500045, + "closed_trades": 87, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.20137464959499984, + "max_drawdown": 0.2253959180249998, "last_exit": { - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -106,7 +106,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -118,8 +118,11 @@ "024060": "2026-07-27", "089970": "2026-07-28", "095610": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "078930": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583395+09:00", - "updated_at": "2026-07-28T15:28:01.064851+09:00" + "updated_at": "2026-07-29T15:28:01.504880+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v218/trades.jsonl b/agents/stock/workspace/state/sim/variants/v218/trades.jsonl index 05d6a3d..be8a082 100644 --- a/agents/stock/workspace/state/sim/variants/v218/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v218/trades.jsonl @@ -182,3 +182,17 @@ {"ts": "2026-07-28T09:02:05.152339+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:21.177282+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:04:02.780707+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.055078+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.309071+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.388448+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.846254+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.846969+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 38, "cost": 4914137, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.847473+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 321, "cost": 2099655, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.877039+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 38, "proceeds": 4805212, "entry_price": 129300, "pnl": -108925, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.846965+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:16.037485+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.038681+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.604940+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.039031+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.039419+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.048280+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.425653+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 762, "cost": 4869910, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,380 vs 5,622"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:06:01.681126+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 258, "cost": 4998210, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]} +{"ts": "2026-07-29T10:24:01.484866+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.728248+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.484444+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.481087+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 633, "proceeds": 3525252, "entry_price": 6624, "pnl": -668237, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.847470+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,696"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.630159+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 762, "proceeds": 4456613, "entry_price": 6390, "pnl": -413298, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.425652+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(60일선)", "ok": true, "detail": "5,613"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v223/portfolio.json b/agents/stock/workspace/state/sim/variants/v223/portfolio.json index 27942a6..c3c244d 100644 --- a/agents/stock/workspace/state/sim/variants/v223/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v223/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 49649838.86299999, + "cash": 57589786.01599998, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.609794+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.486327+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.215189+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 @@ -81,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3559349.4158756477, "last_add_price": 92800 @@ -92,30 +50,51 @@ "sources": [ "auto" ], - "qty": 15, - "entry_price": 127400, + "qty": 31, + "entry_price": 124922.58064516129, "entry_at": "2026-07-28T09:00:22.236421+09:00", "stop": 100700, - "target": 207500, - "peak": 127400, + "target": 197590, + "peak": 177000, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 145,639 도달", - "cur_price": 121400, - "tranches": 1, + "cur_price": 113300, + "tranches": 2, "tranche_value": 2001993.4324754681, - "last_add_price": 127400 + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 39, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.486776+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4871303.908250191, + "last_add_price": 123400 } }, - "realized_pnl": -17717767.012000035, - "closed_trades": 82, + "realized_pnl": -19695807.33400004, + "closed_trades": 86, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.1874376113700001, + "max_drawdown": 0.20743113984000028, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -128,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -139,9 +118,10 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29" }, "created_at": "2026-06-15T14:40:00.621059+09:00", - "updated_at": "2026-07-28T15:28:01.066504+09:00" + "updated_at": "2026-07-29T15:28:01.506483+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v223/trades.jsonl b/agents/stock/workspace/state/sim/variants/v223/trades.jsonl index be8bca3..e3d5b2a 100644 --- a/agents/stock/workspace/state/sim/variants/v223/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v223/trades.jsonl @@ -184,3 +184,12 @@ {"ts": "2026-07-28T09:02:05.157994+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.238861+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T11:04:04.318095+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.394527+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.860205+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.395174+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.852674+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.853697+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 326, "cost": 2132360, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.882758+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.852671+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.752249+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.609794+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.044058+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 207500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 207,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]} +{"ts": "2026-07-29T09:24:16.044758+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 318, "cost": 2134100, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.486777+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.729949+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.486327+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.482773+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 644, "proceeds": 3586513, "entry_price": 6624, "pnl": -679947, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.853694+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v224/portfolio.json b/agents/stock/workspace/state/sim/variants/v224/portfolio.json index 0811a7a..b85049c 100644 --- a/agents/stock/workspace/state/sim/variants/v224/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v224/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 40660918.31349999, + "cash": 57785184.154499985, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.613925+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.488191+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,67 +13,88 @@ "entry_at": "2026-07-21T12:06:01.216956+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", + "095610": { + "code": "095610", + "name": "테스", "sources": [ "auto" ], - "qty": 71, - "entry_price": 95478.87323943662, - "entry_at": "2026-07-24T09:26:01.051685+09:00", - "stop": 83571, - "target": 131203, - "peak": 99800, + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.858523+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, "trailing_on": false, "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, "tranches": 2, - "tranche_value": 3437136.177337996, - "last_add_price": 97000 + "tranche_value": 2241144.287326385, + "last_add_price": 122600 }, - "090850": { - "code": "090850", - "name": "현대이지웰", + "030000": { + "code": "030000", + "name": "제일기획", "sources": [ "auto" ], - "qty": 1649, - "entry_price": 6264.329896907217, - "entry_at": "2026-07-27T10:08:01.536340+09:00", - "stop": 5749, - "target": 7811, - "peak": 6330, + "qty": 261, + "entry_price": 19370, + "entry_at": "2026-07-29T10:06:01.685721+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, + "tranches": 1, + "tranche_value": 5059022.326624999, + "last_add_price": 19370 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 38, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.488774+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, - "tranches": 2, - "tranche_value": 5169643.818279762, - "last_add_price": 6330 + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4804885.651525278, + "last_add_price": 123400 } }, - "realized_pnl": -18528380.999500036, - "closed_trades": 82, - "wins": 1, + "realized_pnl": -21042870.53000004, + "closed_trades": 88, + "wins": 2, "peak_equity": 100000000, - "max_drawdown": 0.19781411686500014, + "max_drawdown": 0.21633495845500023, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -128,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -140,8 +119,11 @@ "024060": "2026-07-27", "095610": "2026-07-27", "089970": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "090850": "2026-07-29", + "078930": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583512+09:00", - "updated_at": "2026-07-28T15:28:01.068173+09:00" + "updated_at": "2026-07-29T15:28:01.508171+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v224/trades.jsonl b/agents/stock/workspace/state/sim/variants/v224/trades.jsonl index 7f271dd..1185835 100644 --- a/agents/stock/workspace/state/sim/variants/v224/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v224/trades.jsonl @@ -186,3 +186,16 @@ {"ts": "2026-07-28T09:02:05.163641+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.343276+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:08:03.996066+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6330, "qty": 816, "cost": 5166055, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5696, "target": 7712, "signals": [{"label": "손절선", "ok": true, "detail": "5,696 (현재 6,330)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,712"}, {"label": "추세(60일선)", "ok": true, "detail": "5,621"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +28 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,329"}]} {"ts": "2026-07-28T11:04:04.324859+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.399867+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.858527+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.858920+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.859296+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 322, "cost": 2106196, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.888088+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.858917+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.763197+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.613925+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.050104+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.050765+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 314, "cost": 2107256, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.089397+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1649, "proceeds": 10351984, "entry_price": 6264, "pnl": 20555, "pnl_pct": 0.41, "hold_from": "2026-07-27T10:08:01.536340+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,749 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,811"}, {"label": "추세(60일선)", "ok": true, "detail": "5,618"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.090229+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.051685+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:06:01.685723+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 261, "cost": 5056328, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]} +{"ts": "2026-07-29T10:24:01.488775+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.731619+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.488191+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.484421+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 636, "proceeds": 3541960, "entry_price": 6624, "pnl": -671492, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.859292+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v229/portfolio.json b/agents/stock/workspace/state/sim/variants/v229/portfolio.json index 8120c7f..4b9b58a 100644 --- a/agents/stock/workspace/state/sim/variants/v229/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v229/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 51084656.44299999, + "cash": 56486509.805499986, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.617956+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.490106+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.218730+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 @@ -81,20 +39,62 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3559349.4158756477, "last_add_price": 92800 + }, + "095610": { + "code": "095610", + "name": "테스", + "sources": [ + "auto" + ], + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.864085+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2259210.8123524096, + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 39, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.490553+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4840682.195130728, + "last_add_price": 123400 } }, - "realized_pnl": -18194236.082000036, - "closed_trades": 82, + "realized_pnl": -20252601.58450004, + "closed_trades": 86, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.1910594355700001, + "max_drawdown": 0.21320890194500014, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -107,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -118,9 +118,10 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-28", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29" }, "created_at": "2026-06-15T14:40:00.621103+09:00", - "updated_at": "2026-07-28T15:28:01.069817+09:00" + "updated_at": "2026-07-29T15:28:01.509777+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v229/trades.jsonl b/agents/stock/workspace/state/sim/variants/v229/trades.jsonl index 149bf87..aded8f6 100644 --- a/agents/stock/workspace/state/sim/variants/v229/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v229/trades.jsonl @@ -183,3 +183,13 @@ {"ts": "2026-07-28T09:04:02.785741+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.069914+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.330117+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.405004+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.863524+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.405459+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.864088+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.864615+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.864930+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.892932+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.864612+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:16.096041+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.096635+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.617956+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.096834+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.490554+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.733300+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.490106+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.486092+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.864927+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v230/portfolio.json b/agents/stock/workspace/state/sim/variants/v230/portfolio.json index 5421945..d063c51 100644 --- a/agents/stock/workspace/state/sim/variants/v230/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v230/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 50515878.72549999, + "cash": 56858178.75599999, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.621641+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.491941+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,46 +13,88 @@ "entry_at": "2026-07-21T12:06:01.220511+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", + "095610": { + "code": "095610", + "name": "테스", "sources": [ "auto" ], - "qty": 71, - "entry_price": 95478.87323943662, - "entry_at": "2026-07-24T09:26:01.055082+09:00", - "stop": 83571, - "target": 131203, - "peak": 99800, + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.869049+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2228652.5102171055, + "last_add_price": 122600 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 258, + "entry_price": 19370, + "entry_at": "2026-07-29T10:06:01.689842+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, + "tranches": 1, + "tranche_value": 5010126.595875, + "last_add_price": 19370 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 38, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.492475+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 3437136.177337996, - "last_add_price": 97000 + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4756556.382853909, + "last_add_price": 123400 } }, - "realized_pnl": -19004850.069500037, - "closed_trades": 82, + "realized_pnl": -22027994.645000044, + "closed_trades": 88, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.20199721274500013, + "max_drawdown": 0.22600355297000022, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -107,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -119,8 +119,11 @@ "024060": "2026-07-27", "089970": "2026-07-28", "095610": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "078930": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583628+09:00", - "updated_at": "2026-07-28T15:28:01.071489+09:00" + "updated_at": "2026-07-29T15:28:01.511434+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v230/trades.jsonl b/agents/stock/workspace/state/sim/variants/v230/trades.jsonl index 0f2bd55..c2c0e32 100644 --- a/agents/stock/workspace/state/sim/variants/v230/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v230/trades.jsonl @@ -184,3 +184,17 @@ {"ts": "2026-07-28T09:02:05.173069+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.557322+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:04:02.787464+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.073760+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.335818+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.409242+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.869052+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.869334+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 38, "cost": 4914137, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.869641+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 320, "cost": 2093114, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.897237+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 38, "proceeds": 4805212, "entry_price": 129300, "pnl": -108925, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.869331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:16.101043+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.101498+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.621641+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.101678+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.101931+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.055082+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.432391+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 761, "cost": 4863519, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,380 vs 5,622"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:06:01.689843+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 258, "cost": 4998210, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]} +{"ts": "2026-07-29T10:24:01.492476+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.734950+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.491941+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.487757+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 632, "proceeds": 3519683, "entry_price": 6624, "pnl": -667265, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.869638+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.636752+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 761, "proceeds": 4450764, "entry_price": 6390, "pnl": -412755, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.432390+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(60일선)", "ok": true, "detail": "5,613"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v235/portfolio.json b/agents/stock/workspace/state/sim/variants/v235/portfolio.json index 805baed..acedf7c 100644 --- a/agents/stock/workspace/state/sim/variants/v235/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v235/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 49649838.86299999, + "cash": 57589786.01599998, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.625003+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.493778+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.222302+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 @@ -81,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3559349.4158756477, "last_add_price": 92800 @@ -92,30 +50,51 @@ "sources": [ "auto" ], - "qty": 15, - "entry_price": 127400, + "qty": 31, + "entry_price": 124922.58064516129, "entry_at": "2026-07-28T09:00:22.654170+09:00", "stop": 100700, - "target": 207500, - "peak": 127400, + "target": 197590, + "peak": 177000, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 145,639 도달", - "cur_price": 121400, - "tranches": 1, + "cur_price": 113300, + "tranches": 2, "tranche_value": 2001993.4324754681, - "last_add_price": 127400 + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 39, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.494208+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4871303.908250191, + "last_add_price": 123400 } }, - "realized_pnl": -17717767.012000035, - "closed_trades": 82, + "realized_pnl": -19695807.33400004, + "closed_trades": 86, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.1874376113700001, + "max_drawdown": 0.20743113984000028, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -128,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -139,9 +118,10 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29" }, "created_at": "2026-06-15T14:40:00.621148+09:00", - "updated_at": "2026-07-28T15:28:01.073137+09:00" + "updated_at": "2026-07-29T15:28:01.513048+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v235/trades.jsonl b/agents/stock/workspace/state/sim/variants/v235/trades.jsonl index 90da436..6794144 100644 --- a/agents/stock/workspace/state/sim/variants/v235/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v235/trades.jsonl @@ -184,3 +184,12 @@ {"ts": "2026-07-28T09:02:05.176805+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.656440+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T11:04:04.340373+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.413097+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.866841+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.413474+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.873530+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.874061+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 326, "cost": 2132360, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.901236+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.873528+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.778343+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.625003+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.105837+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 207500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 207,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]} +{"ts": "2026-07-29T09:24:16.106263+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 318, "cost": 2134100, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.494210+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.736617+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.493778+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.489432+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 644, "proceeds": 3586513, "entry_price": 6624, "pnl": -679947, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.874058+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v236/portfolio.json b/agents/stock/workspace/state/sim/variants/v236/portfolio.json index ecb6a4c..dc6ff1c 100644 --- a/agents/stock/workspace/state/sim/variants/v236/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v236/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 40660918.31349999, + "cash": 57785184.154499985, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.628145+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.495609+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,67 +13,88 @@ "entry_at": "2026-07-21T12:06:01.224085+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", + "095610": { + "code": "095610", + "name": "테스", "sources": [ "auto" ], - "qty": 71, - "entry_price": 95478.87323943662, - "entry_at": "2026-07-24T09:26:01.058470+09:00", - "stop": 83571, - "target": 131203, - "peak": 99800, + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.877598+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, "trailing_on": false, "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, "tranches": 2, - "tranche_value": 3437136.177337996, - "last_add_price": 97000 + "tranche_value": 2241144.287326385, + "last_add_price": 122600 }, - "090850": { - "code": "090850", - "name": "현대이지웰", + "030000": { + "code": "030000", + "name": "제일기획", "sources": [ "auto" ], - "qty": 1649, - "entry_price": 6264.329896907217, - "entry_at": "2026-07-27T10:08:01.566451+09:00", - "stop": 5749, - "target": 7811, - "peak": 6330, + "qty": 261, + "entry_price": 19370, + "entry_at": "2026-07-29T10:06:01.693595+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, + "tranches": 1, + "tranche_value": 5059022.326624999, + "last_add_price": 19370 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 38, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.496122+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, - "tranches": 2, - "tranche_value": 5169643.818279762, - "last_add_price": 6330 + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4804885.651525278, + "last_add_price": 123400 } }, - "realized_pnl": -18528380.999500036, - "closed_trades": 82, - "wins": 1, + "realized_pnl": -21042870.53000004, + "closed_trades": 88, + "wins": 2, "peak_equity": 100000000, - "max_drawdown": 0.19781411686500014, + "max_drawdown": 0.21633495845500023, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -128,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -140,8 +119,11 @@ "024060": "2026-07-27", "095610": "2026-07-27", "089970": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "090850": "2026-07-29", + "078930": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.583751+09:00", - "updated_at": "2026-07-28T15:28:01.074797+09:00" + "updated_at": "2026-07-29T15:28:01.514690+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v236/trades.jsonl b/agents/stock/workspace/state/sim/variants/v236/trades.jsonl index 918488b..4787197 100644 --- a/agents/stock/workspace/state/sim/variants/v236/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v236/trades.jsonl @@ -186,3 +186,16 @@ {"ts": "2026-07-28T09:02:05.180474+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.762227+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:08:04.003988+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6330, "qty": 816, "cost": 5166055, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5696, "target": 7712, "signals": [{"label": "손절선", "ok": true, "detail": "5,696 (현재 6,330)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,712"}, {"label": "추세(60일선)", "ok": true, "detail": "5,621"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +28 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,329"}]} {"ts": "2026-07-28T11:04:04.344687+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.416912+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.877600+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.878069+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.878333+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 322, "cost": 2106196, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.904794+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.878067+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.782637+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.628145+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.109832+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.110260+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 314, "cost": 2107256, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.110361+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1649, "proceeds": 10351984, "entry_price": 6264, "pnl": 20555, "pnl_pct": 0.41, "hold_from": "2026-07-27T10:08:01.566451+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,749 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,811"}, {"label": "추세(60일선)", "ok": true, "detail": "5,618"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.110570+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.058470+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:06:01.693597+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 261, "cost": 5056328, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]} +{"ts": "2026-07-29T10:24:01.496123+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.738264+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.495609+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.491085+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 636, "proceeds": 3541960, "entry_price": 6624, "pnl": -671492, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.878331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v265/portfolio.json b/agents/stock/workspace/state/sim/variants/v265/portfolio.json index 68d2085..54a350d 100644 --- a/agents/stock/workspace/state/sim/variants/v265/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v265/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 49649838.86299999, + "cash": 57589786.01599998, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.631281+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.497447+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.225869+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 @@ -81,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3559349.4158756477, "last_add_price": 92800 @@ -92,30 +50,51 @@ "sources": [ "auto" ], - "qty": 15, - "entry_price": 127400, + "qty": 31, + "entry_price": 124922.58064516129, "entry_at": "2026-07-28T09:00:22.865306+09:00", "stop": 100700, - "target": 207500, - "peak": 127400, + "target": 197590, + "peak": 177000, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 145,639 도달", - "cur_price": 121400, - "tranches": 1, + "cur_price": 113300, + "tranches": 2, "tranche_value": 2001993.4324754681, - "last_add_price": 127400 + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 39, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.497839+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4871303.908250191, + "last_add_price": 123400 } }, - "realized_pnl": -17717767.012000035, - "closed_trades": 82, + "realized_pnl": -19695807.33400004, + "closed_trades": 86, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.1874376113700001, + "max_drawdown": 0.20743113984000028, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -128,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -139,9 +118,10 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29" }, "created_at": "2026-06-15T14:40:00.621367+09:00", - "updated_at": "2026-07-28T15:28:01.076428+09:00" + "updated_at": "2026-07-29T15:28:01.516298+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v265/trades.jsonl b/agents/stock/workspace/state/sim/variants/v265/trades.jsonl index cc6f6fd..acb63d3 100644 --- a/agents/stock/workspace/state/sim/variants/v265/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v265/trades.jsonl @@ -184,3 +184,12 @@ {"ts": "2026-07-28T09:02:05.183846+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.867792+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T11:04:04.348495+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.420411+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.870210+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.420750+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.881974+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.882678+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 326, "cost": 2132360, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.908096+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.881971+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.787032+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.631281+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.113992+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 207500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 207,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]} +{"ts": "2026-07-29T09:24:16.114377+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 318, "cost": 2134100, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.497840+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.739932+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.497447+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.492765+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 644, "proceeds": 3586513, "entry_price": 6624, "pnl": -679947, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.882675+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v266/portfolio.json b/agents/stock/workspace/state/sim/variants/v266/portfolio.json index 0f4e8de..855888b 100644 --- a/agents/stock/workspace/state/sim/variants/v266/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v266/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 40660918.31349999, + "cash": 57785184.154499985, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.634235+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.499281+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,67 +13,88 @@ "entry_at": "2026-07-21T12:06:01.227631+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", + "095610": { + "code": "095610", + "name": "테스", "sources": [ "auto" ], - "qty": 71, - "entry_price": 95478.87323943662, - "entry_at": "2026-07-24T09:26:01.061860+09:00", - "stop": 83571, - "target": 131203, - "peak": 99800, + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.886191+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, "trailing_on": false, "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, "tranches": 2, - "tranche_value": 3437136.177337996, - "last_add_price": 97000 + "tranche_value": 2241144.287326385, + "last_add_price": 122600 }, - "090850": { - "code": "090850", - "name": "현대이지웰", + "030000": { + "code": "030000", + "name": "제일기획", "sources": [ "auto" ], - "qty": 1649, - "entry_price": 6264.329896907217, - "entry_at": "2026-07-27T10:08:01.575360+09:00", - "stop": 5749, - "target": 7811, - "peak": 6330, + "qty": 261, + "entry_price": 19370, + "entry_at": "2026-07-29T10:06:01.697079+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, + "tranches": 1, + "tranche_value": 5059022.326624999, + "last_add_price": 19370 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 38, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.499758+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, - "tranches": 2, - "tranche_value": 5169643.818279762, - "last_add_price": 6330 + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4804885.651525278, + "last_add_price": 123400 } }, - "realized_pnl": -18528380.999500036, - "closed_trades": 82, - "wins": 1, + "realized_pnl": -21042870.53000004, + "closed_trades": 88, + "wins": 2, "peak_equity": 100000000, - "max_drawdown": 0.19781411686500014, + "max_drawdown": 0.21633495845500023, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -128,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -140,8 +119,11 @@ "024060": "2026-07-27", "095610": "2026-07-27", "089970": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "090850": "2026-07-29", + "078930": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.584337+09:00", - "updated_at": "2026-07-28T15:28:01.078112+09:00" + "updated_at": "2026-07-29T15:28:01.517970+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v266/trades.jsonl b/agents/stock/workspace/state/sim/variants/v266/trades.jsonl index 59dc597..156a54e 100644 --- a/agents/stock/workspace/state/sim/variants/v266/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v266/trades.jsonl @@ -186,3 +186,16 @@ {"ts": "2026-07-28T09:02:05.187123+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.973479+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:08:04.007703+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6330, "qty": 816, "cost": 5166055, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5696, "target": 7712, "signals": [{"label": "손절선", "ok": true, "detail": "5,696 (현재 6,330)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,712"}, {"label": "추세(60일선)", "ok": true, "detail": "5,621"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +28 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,329"}]} {"ts": "2026-07-28T11:04:04.351959+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.423980+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.886193+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.886438+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.886711+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 322, "cost": 2106196, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.911385+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.886436+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.791290+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.634235+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.117511+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.117904+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 314, "cost": 2107256, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.118017+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1649, "proceeds": 10351984, "entry_price": 6264, "pnl": 20555, "pnl_pct": 0.41, "hold_from": "2026-07-27T10:08:01.575360+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,749 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,811"}, {"label": "추세(60일선)", "ok": true, "detail": "5,618"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.118212+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.061860+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:06:01.697080+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 261, "cost": 5056328, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]} +{"ts": "2026-07-29T10:24:01.499759+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.741599+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.499281+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.494436+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 636, "proceeds": 3541960, "entry_price": 6624, "pnl": -671492, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.886709+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v271/portfolio.json b/agents/stock/workspace/state/sim/variants/v271/portfolio.json index 578eae8..dc15e01 100644 --- a/agents/stock/workspace/state/sim/variants/v271/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v271/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 49649838.86299999, + "cash": 57589786.01599998, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.637074+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.501109+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.229400+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 @@ -81,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3559349.4158756477, "last_add_price": 92800 @@ -92,30 +50,51 @@ "sources": [ "auto" ], - "qty": 15, - "entry_price": 127400, + "qty": 31, + "entry_price": 124922.58064516129, "entry_at": "2026-07-28T09:00:23.083067+09:00", "stop": 100700, - "target": 207500, - "peak": 127400, + "target": 197590, + "peak": 177000, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 145,639 도달", - "cur_price": 121400, - "tranches": 1, + "cur_price": 113300, + "tranches": 2, "tranche_value": 2001993.4324754681, - "last_add_price": 127400 + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 39, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.501484+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4871303.908250191, + "last_add_price": 123400 } }, - "realized_pnl": -17717767.012000035, - "closed_trades": 82, + "realized_pnl": -19695807.33400004, + "closed_trades": 86, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.1874376113700001, + "max_drawdown": 0.20743113984000028, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -128,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -139,9 +118,10 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29" }, "created_at": "2026-06-15T14:40:00.621411+09:00", - "updated_at": "2026-07-28T15:28:01.079764+09:00" + "updated_at": "2026-07-29T15:28:01.519575+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v271/trades.jsonl b/agents/stock/workspace/state/sim/variants/v271/trades.jsonl index 9807d96..dbf8929 100644 --- a/agents/stock/workspace/state/sim/variants/v271/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v271/trades.jsonl @@ -184,3 +184,12 @@ {"ts": "2026-07-28T09:02:05.190368+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.085292+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T11:04:04.355300+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.427159+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.873589+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.427506+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.890374+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.890820+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 326, "cost": 2132360, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.914482+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.890372+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.794976+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.637074+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.120986+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 207500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 207,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]} +{"ts": "2026-07-29T09:24:16.121327+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 318, "cost": 2134100, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.501485+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.743276+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.501109+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.496111+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 644, "proceeds": 3586513, "entry_price": 6624, "pnl": -679947, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.890818+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v272/portfolio.json b/agents/stock/workspace/state/sim/variants/v272/portfolio.json index 358c4ad..2668478 100644 --- a/agents/stock/workspace/state/sim/variants/v272/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v272/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 40660918.31349999, + "cash": 57785184.154499985, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.639710+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.502941+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,67 +13,88 @@ "entry_at": "2026-07-21T12:06:01.231187+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", + "095610": { + "code": "095610", + "name": "테스", "sources": [ "auto" ], - "qty": 71, - "entry_price": 95478.87323943662, - "entry_at": "2026-07-24T09:26:01.065284+09:00", - "stop": 83571, - "target": 131203, - "peak": 99800, + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.894214+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, "trailing_on": false, "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, "tranches": 2, - "tranche_value": 3437136.177337996, - "last_add_price": 97000 + "tranche_value": 2241144.287326385, + "last_add_price": 122600 }, - "090850": { - "code": "090850", - "name": "현대이지웰", + "030000": { + "code": "030000", + "name": "제일기획", "sources": [ "auto" ], - "qty": 1649, - "entry_price": 6264.329896907217, - "entry_at": "2026-07-27T10:08:01.583221+09:00", - "stop": 5749, - "target": 7811, - "peak": 6330, + "qty": 261, + "entry_price": 19370, + "entry_at": "2026-07-29T10:06:01.700459+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, + "tranches": 1, + "tranche_value": 5059022.326624999, + "last_add_price": 19370 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 38, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.503402+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, - "tranches": 2, - "tranche_value": 5169643.818279762, - "last_add_price": 6330 + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4804885.651525278, + "last_add_price": 123400 } }, - "realized_pnl": -18528380.999500036, - "closed_trades": 82, - "wins": 1, + "realized_pnl": -21042870.53000004, + "closed_trades": 88, + "wins": 2, "peak_equity": 100000000, - "max_drawdown": 0.19781411686500014, + "max_drawdown": 0.21633495845500023, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -128,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -140,8 +119,11 @@ "024060": "2026-07-27", "095610": "2026-07-27", "089970": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "090850": "2026-07-29", + "078930": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.584451+09:00", - "updated_at": "2026-07-28T15:28:01.081472+09:00" + "updated_at": "2026-07-29T15:28:01.521221+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v272/trades.jsonl b/agents/stock/workspace/state/sim/variants/v272/trades.jsonl index e4def1f..cdf506c 100644 --- a/agents/stock/workspace/state/sim/variants/v272/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v272/trades.jsonl @@ -186,3 +186,16 @@ {"ts": "2026-07-28T09:02:05.193260+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.187316+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:08:04.011207+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6330, "qty": 816, "cost": 5166055, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5696, "target": 7712, "signals": [{"label": "손절선", "ok": true, "detail": "5,696 (현재 6,330)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,712"}, {"label": "추세(60일선)", "ok": true, "detail": "5,621"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +28 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,329"}]} {"ts": "2026-07-28T11:04:04.358573+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.430247+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.894216+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.894468+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.894695+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 322, "cost": 2106196, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.917387+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.894466+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.798678+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.639710+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.124038+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.124352+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 314, "cost": 2107256, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.124448+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1649, "proceeds": 10351984, "entry_price": 6264, "pnl": 20555, "pnl_pct": 0.41, "hold_from": "2026-07-27T10:08:01.583221+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,749 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,811"}, {"label": "추세(60일선)", "ok": true, "detail": "5,618"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.124606+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.065284+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:06:01.700460+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 261, "cost": 5056328, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]} +{"ts": "2026-07-29T10:24:01.503403+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.744951+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.502941+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.497779+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 636, "proceeds": 3541960, "entry_price": 6624, "pnl": -671492, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.894692+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v277/portfolio.json b/agents/stock/workspace/state/sim/variants/v277/portfolio.json index e34367b..925f5e9 100644 --- a/agents/stock/workspace/state/sim/variants/v277/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v277/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 51084656.44299999, + "cash": 56486509.805499986, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.642364+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.504788+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.232986+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 @@ -81,20 +39,62 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3559349.4158756477, "last_add_price": 92800 + }, + "095610": { + "code": "095610", + "name": "테스", + "sources": [ + "auto" + ], + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.897785+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2259210.8123524096, + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 39, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.505138+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4840682.195130728, + "last_add_price": 123400 } }, - "realized_pnl": -18194236.082000036, - "closed_trades": 82, + "realized_pnl": -20252601.58450004, + "closed_trades": 86, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.1910594355700001, + "max_drawdown": 0.21320890194500014, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -107,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -118,9 +118,10 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-28", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29" }, "created_at": "2026-06-15T14:40:00.621453+09:00", - "updated_at": "2026-07-28T15:28:01.083126+09:00" + "updated_at": "2026-07-29T15:28:01.522836+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v277/trades.jsonl b/agents/stock/workspace/state/sim/variants/v277/trades.jsonl index ccd3956..2ff7a76 100644 --- a/agents/stock/workspace/state/sim/variants/v277/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v277/trades.jsonl @@ -183,3 +183,13 @@ {"ts": "2026-07-28T09:04:02.799213+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.095509+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.361578+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.433086+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.876948+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.433374+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.897787+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.898192+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.898399+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.920069+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.898191+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:16.127062+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.127328+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.642364+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.127443+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.505139+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.746642+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.504788+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.499492+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.898397+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v278/portfolio.json b/agents/stock/workspace/state/sim/variants/v278/portfolio.json index 7b6dbaf..37e18b0 100644 --- a/agents/stock/workspace/state/sim/variants/v278/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v278/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 50515878.72549999, + "cash": 56858178.75599999, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.644830+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.506650+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,46 +13,88 @@ "entry_at": "2026-07-21T12:06:01.234767+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", + "095610": { + "code": "095610", + "name": "테스", "sources": [ "auto" ], - "qty": 71, - "entry_price": 95478.87323943662, - "entry_at": "2026-07-24T09:26:01.068736+09:00", - "stop": 83571, - "target": 131203, - "peak": 99800, + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.901179+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2228652.5102171055, + "last_add_price": 122600 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 258, + "entry_price": 19370, + "entry_at": "2026-07-29T10:06:01.704223+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, + "tranches": 1, + "tranche_value": 5010126.595875, + "last_add_price": 19370 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 38, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.507058+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 3437136.177337996, - "last_add_price": 97000 + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4756556.382853909, + "last_add_price": 123400 } }, - "realized_pnl": -19004850.069500037, - "closed_trades": 82, + "realized_pnl": -22027994.645000044, + "closed_trades": 88, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.20199721274500013, + "max_drawdown": 0.22600355297000022, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -107,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -119,8 +119,11 @@ "024060": "2026-07-27", "089970": "2026-07-28", "095610": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "078930": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.584565+09:00", - "updated_at": "2026-07-28T15:28:01.084781+09:00" + "updated_at": "2026-07-29T15:28:01.524546+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v278/trades.jsonl b/agents/stock/workspace/state/sim/variants/v278/trades.jsonl index 0a96b63..2bcd016 100644 --- a/agents/stock/workspace/state/sim/variants/v278/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v278/trades.jsonl @@ -184,3 +184,17 @@ {"ts": "2026-07-28T09:02:05.198714+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.381365+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:04:02.800932+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.098143+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.364335+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.435998+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.901181+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.901397+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 38, "cost": 4914137, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.901614+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 320, "cost": 2093114, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.922720+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 38, "proceeds": 4805212, "entry_price": 129300, "pnl": -108925, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.901396+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:16.129998+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.130260+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.644830+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.130359+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.130502+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.068736+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.445606+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 761, "cost": 4863519, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,380 vs 5,622"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:06:01.704224+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 258, "cost": 4998210, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]} +{"ts": "2026-07-29T10:24:01.507059+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.748392+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.506650+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.501159+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 632, "proceeds": 3519683, "entry_price": 6624, "pnl": -667265, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.901612+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.649726+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 761, "proceeds": 4450764, "entry_price": 6390, "pnl": -412755, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.445604+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(60일선)", "ok": true, "detail": "5,613"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v283/portfolio.json b/agents/stock/workspace/state/sim/variants/v283/portfolio.json index aa8ab0b..4ec12ea 100644 --- a/agents/stock/workspace/state/sim/variants/v283/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v283/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 51084656.44299999, + "cash": 56486509.805499986, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.647351+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.508514+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.236516+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 @@ -81,20 +39,62 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3559349.4158756477, "last_add_price": 92800 + }, + "095610": { + "code": "095610", + "name": "테스", + "sources": [ + "auto" + ], + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.904456+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2259210.8123524096, + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 39, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.508786+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4840682.195130728, + "last_add_price": 123400 } }, - "realized_pnl": -18194236.082000036, - "closed_trades": 82, + "realized_pnl": -20252601.58450004, + "closed_trades": 86, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.1910594355700001, + "max_drawdown": 0.21320890194500014, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -107,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -118,9 +118,10 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-28", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29" }, "created_at": "2026-06-15T14:40:00.621497+09:00", - "updated_at": "2026-07-28T15:28:01.086412+09:00" + "updated_at": "2026-07-29T15:28:01.526150+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v283/trades.jsonl b/agents/stock/workspace/state/sim/variants/v283/trades.jsonl index 31f8282..7c780ef 100644 --- a/agents/stock/workspace/state/sim/variants/v283/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v283/trades.jsonl @@ -183,3 +183,13 @@ {"ts": "2026-07-28T09:04:02.802654+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.100684+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.366987+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.438736+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.880299+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.438996+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:02.904458+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.904795+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.905013+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.925419+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.904793+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:16.132809+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.133049+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.647351+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.133154+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.508787+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.750126+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.508514+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.502828+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.905011+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v284/portfolio.json b/agents/stock/workspace/state/sim/variants/v284/portfolio.json index c191d4f..dab9075 100644 --- a/agents/stock/workspace/state/sim/variants/v284/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v284/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 50515878.72549999, + "cash": 56858178.75599999, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134561.01694915254, - "entry_at": "2026-07-09T09:10:02.649859+09:00", - "stop": 119105, - "target": 180930, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4016046.033999526, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 66, - "entry_price": 132600.0, - "entry_at": "2026-07-10T09:26:06.510349+09:00", - "stop": 119729, - "target": 171213, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4441360.270202171, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,46 +13,88 @@ "entry_at": "2026-07-21T12:06:01.238289+09:00", "stop": 308113, "target": 476661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3624744.3180141365, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", + "095610": { + "code": "095610", + "name": "테스", "sources": [ "auto" ], - "qty": 71, - "entry_price": 95478.87323943662, - "entry_at": "2026-07-24T09:26:01.072143+09:00", - "stop": 83571, - "target": 131203, - "peak": 99800, + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:02.907686+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2228652.5102171055, + "last_add_price": 122600 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 258, + "entry_price": 19370, + "entry_at": "2026-07-29T10:06:01.707948+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, + "tranches": 1, + "tranche_value": 5010126.595875, + "last_add_price": 19370 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 38, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.510715+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 3437136.177337996, - "last_add_price": 97000 + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4756556.382853909, + "last_add_price": 123400 } }, - "realized_pnl": -19004850.069500037, - "closed_trades": 82, + "realized_pnl": -22027994.645000044, + "closed_trades": 88, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.20199721274500013, + "max_drawdown": 0.22600355297000022, "last_exit": { "017670": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "033640": "2026-07-01", "307950": "2026-07-01", @@ -107,7 +107,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -119,8 +119,11 @@ "024060": "2026-07-27", "089970": "2026-07-28", "095610": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "078930": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-15T14:55:00.584680+09:00", - "updated_at": "2026-07-28T15:28:01.088076+09:00" + "updated_at": "2026-07-29T15:28:01.527830+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v284/trades.jsonl b/agents/stock/workspace/state/sim/variants/v284/trades.jsonl index a190590..e2d96bb 100644 --- a/agents/stock/workspace/state/sim/variants/v284/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v284/trades.jsonl @@ -184,3 +184,17 @@ {"ts": "2026-07-28T09:02:05.203990+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.583844+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:04:02.804378+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.103161+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.369627+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.441423+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.907687+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:02.907871+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 38, "cost": 4914137, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:02.908065+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 320, "cost": 2093114, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.927879+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 38, "proceeds": 4805212, "entry_price": 129300, "pnl": -108925, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.907869+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:16.135482+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.135726+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.649859+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.135821+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.135956+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.072143+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.448951+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 761, "cost": 4863519, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,380 vs 5,622"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:06:01.707949+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 258, "cost": 4998210, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]} +{"ts": "2026-07-29T10:24:01.510716+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.751805+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.510349+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.504496+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 632, "proceeds": 3519683, "entry_price": 6624, "pnl": -667265, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.908063+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.653021+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 761, "proceeds": 4450764, "entry_price": 6390, "pnl": -412755, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.448950+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(60일선)", "ok": true, "detail": "5,613"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v296/portfolio.json b/agents/stock/workspace/state/sim/variants/v296/portfolio.json index 2f3f2c4..fe77c73 100644 --- a/agents/stock/workspace/state/sim/variants/v296/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v296/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 40915146.733, + "cash": 37411808.638000004, "initial": 100000000, "positions": { "055550": { @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 101100, + "cur_price": 98500, "tranches": 2, "tranche_value": 4371332.168068898, "last_add_price": 105800 @@ -39,32 +39,11 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 3448434.606240806, "last_add_price": 130800 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 19, - "entry_price": 149157.8947368421, - "entry_at": "2026-07-09T11:44:04.836352+09:00", - "stop": 110758, - "target": 264357, - "peak": 230500, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,218 도달", - "cur_price": 121400, - "tranches": 2, - "tranche_value": 1478967.7315768395, - "last_add_price": 158000 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -76,12 +55,12 @@ "entry_at": "2026-07-21T09:02:06.017875+09:00", "stop": 293113, "target": 451661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3417673.0117698065, "last_add_price": 338000 @@ -97,12 +76,12 @@ "entry_at": "2026-07-21T11:08:01.673418+09:00", "stop": 92100, "target": 138700, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 4194789.767858763, "last_add_price": 105800 @@ -123,17 +102,38 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 1, "tranche_value": 3055813.2324855765, "last_add_price": 92800 + }, + "003490": { + "code": "003490", + "name": "대한항공", + "sources": [ + "auto" + ], + "qty": 188, + "entry_price": 25650, + "entry_at": "2026-07-29T09:02:03.586207+09:00", + "stop": 23650, + "target": 31650, + "peak": 26600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "immediate", + "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", + "cur_price": 24650, + "tranches": 1, + "tranche_value": 4829886.125812501, + "last_add_price": 25650 } }, - "realized_pnl": -22851519.08200003, - "closed_trades": 63, + "realized_pnl": -24366358.94700003, + "closed_trades": 65, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.2360835326699999, + "max_drawdown": 0.2557259136199999, "last_exit": { "083450": "2026-07-06", "278470": "2026-07-14", @@ -170,8 +170,10 @@ "089970": "2026-07-21", "034730": "2026-07-28", "252990": "2026-07-27", - "086790": "2026-07-28" + "086790": "2026-07-28", + "475150": "2026-07-29", + "095610": "2026-07-29" }, "created_at": "2026-06-16T09:00:03.113416+09:00", - "updated_at": "2026-07-28T15:28:01.089706+09:00" + "updated_at": "2026-07-29T15:28:01.529580+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v296/trades.jsonl b/agents/stock/workspace/state/sim/variants/v296/trades.jsonl index da41184..0148e7b 100644 --- a/agents/stock/workspace/state/sim/variants/v296/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v296/trades.jsonl @@ -149,3 +149,8 @@ {"ts": "2026-07-28T09:00:23.688802+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 134100, "qty": 36, "cost": 4828324, "path": "pullback", "reason": "눌림목 지정가 156,975 도달", "stop": 134099, "target": 134103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "133,100 vs 112,777"}, {"label": "정배열(5>60)", "ok": true, "detail": "164,260 / 112,777"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "164,260 / 112,777"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +254 · 기 -283 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+37%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.24% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "359,853 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.24% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 156,975 (현재 133,100)"}]} {"ts": "2026-07-28T09:02:05.206432+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 36, "proceeds": 4688839, "entry_price": 134100, "pnl": -139485, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.688793+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T13:08:07.026096+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124100, "qty": 65, "proceeds": 8050770, "entry_price": 137923, "pnl": -915574, "pnl_pct": -10.02, "hold_from": "2026-07-13T09:58:02.808427+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,495 (현재 124,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 178,207"}, {"label": "추세(60일선)", "ok": true, "detail": "118,467"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.251118+09:00", "side": "BUY", "code": "475150", "name": "SK이터닉스", "price": 49600, "qty": 63, "cost": 3125269, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 43550, "target": 67750, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "49,550 vs 47,930"}, {"label": "정배열(5>60)", "ok": true, "detail": "66,030 / 47,930"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "66,030 / 47,930"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +832 · 기 -202 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "7.94% (환산) vs 평균 22.47% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 87,700"}, {"label": "거래량 급증", "ok": false, "detail": "2,706,167 (환산) vs 평균 7,655,447"}, {"label": "회전율 급증", "ok": false, "detail": "7.94% (환산) vs 평균 22.47%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 47,930 (현재 49,550)"}]} +{"ts": "2026-07-29T09:02:03.586226+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25650, "qty": 188, "cost": 4822923, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 23650, "target": 31650, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "25,650 vs 25,162"}, {"label": "정배열(5>60)", "ok": true, "detail": "25,470 / 25,162"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,470 / 25,162"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+21.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +1,077 · 기 +294 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.13% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "469,413 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.13% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 25,162 (현재 25,650)"}]} +{"ts": "2026-07-29T09:24:16.512599+09:00", "side": "BUY", "code": "475150", "name": "SK이터닉스", "price": 49500, "qty": 63, "cost": 3118968, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 43550, "target": 67750, "signals": [{"label": "손절선", "ok": true, "detail": "43,550 (현재 57,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 67,750"}, {"label": "추세(60일선)", "ok": true, "detail": "48,021"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +832 · 기 -202"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 54,378"}]} +{"ts": "2026-07-29T10:50:06.436555+09:00", "side": "SELL", "code": "475150", "name": "SK이터닉스", "price": 43500, "qty": 126, "proceeds": 5470312, "entry_price": 49550, "pnl": -773924, "pnl_pct": -12.21, "hold_from": "2026-07-29T09:02:03.251105+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "43,550 (현재 43,550)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 70,700"}, {"label": "추세(60일선)", "ok": false, "detail": "47,830"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +596 · 기 -203"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:00:06.317119+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 110400, "qty": 19, "proceeds": 2093510, "entry_price": 149158, "pnl": -740915, "pnl_pct": -25.98, "hold_from": "2026-07-09T11:44:04.836352+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "110,758 (현재 110,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 264,357"}, {"label": "추세(60일선)", "ok": true, "detail": "98,957"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v298/portfolio.json b/agents/stock/workspace/state/sim/variants/v298/portfolio.json index c99d20d..7083f0b 100644 --- a/agents/stock/workspace/state/sim/variants/v298/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v298/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 9572403.627999967, + "cash": 16337921.145499967, "initial": 100000000, "positions": { "055550": { @@ -18,32 +18,11 @@ "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 101100, + "cur_price": 98500, "tranches": 2, "tranche_value": 5402457.352781249, "last_add_price": 104900 }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 86, - "entry_price": 124153.48837209302, - "entry_at": "2026-07-02T10:18:04.653371+09:00", - "stop": 111000, - "target": 163614, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "immediate", - "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5406063.780281249, - "last_add_price": 126200 - }, "010950": { "code": "010950", "name": "S-Oil", @@ -60,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 4939827.041843749, "last_add_price": 130800 @@ -76,12 +55,12 @@ "entry_at": "2026-07-15T10:30:03.855057+09:00", "stop": 5490, "target": 7369, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5291435.503531248, "last_add_price": 6020 @@ -97,12 +76,12 @@ "entry_at": "2026-07-21T09:02:06.772828+09:00", "stop": 293113, "target": 451661, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4843602.718718749, "last_add_price": 338000 @@ -123,44 +102,44 @@ "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4883011.806843748, "last_add_price": 84700 }, - "095610": { - "code": "095610", - "name": "테스", + "030000": { + "code": "030000", + "name": "제일기획", "sources": [ "auto" ], - "qty": 21, - "entry_price": 155500, - "entry_at": "2026-07-24T09:00:20.070959+09:00", - "stop": 117686, - "target": 268942, - "peak": 155500, + "qty": 241, + "entry_price": 19370, + "entry_at": "2026-07-29T10:18:05.773198+09:00", + "stop": 17897, + "target": 23788, + "peak": 19440, "trailing_on": false, "scaled_out": false, - "entry_path": "immediate", - "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 121400, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 19,645 도달", + "cur_price": 18800, "tranches": 1, - "tranche_value": 3269474.5531265526, - "last_add_price": 155500 + "tranche_value": 4682248.774874998, + "last_add_price": 19370 } }, - "realized_pnl": -26528152.893000018, - "closed_trades": 28, + "realized_pnl": -29038556.555000022, + "closed_trades": 31, "wins": 1, "peak_equity": 100289247.17, - "max_drawdown": 0.25907187734650977, + "max_drawdown": 0.2948997710030375, "last_exit": { "278470": "2026-06-18", "017670": "2026-06-19", "059090": "2026-06-26", "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "055550": "2026-06-24", "347850": "2026-06-25", @@ -174,9 +153,10 @@ "475150": "2026-07-08", "214450": "2026-07-15", "089970": "2026-07-21", - "095610": "2026-07-23", - "252990": "2026-07-28" + "095610": "2026-07-29", + "252990": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-16T09:00:03.113433+09:00", - "updated_at": "2026-07-28T15:28:01.091321+09:00" + "updated_at": "2026-07-29T15:28:01.531220+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v298/trades.jsonl b/agents/stock/workspace/state/sim/variants/v298/trades.jsonl index 9ac636c..ca0bcb4 100644 --- a/agents/stock/workspace/state/sim/variants/v298/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v298/trades.jsonl @@ -79,3 +79,10 @@ {"ts": "2026-07-24T09:00:20.070965+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 155500, "qty": 21, "cost": 3265990, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 117686, "target": 268942, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "155,000 vs 153,080"}, {"label": "정배열(5>10)", "ok": true, "detail": "171,640 / 153,080"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,640 / 99,700"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+44.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +200 · 기 -454 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+27%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.77% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "730,327 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.77% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 153,080 (현재 155,000)"}]} {"ts": "2026-07-24T09:28:05.015566+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 14510, "qty": 251, "cost": 3642556, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10973, "target": 22922, "signals": [{"label": "손절선", "ok": true, "detail": "10,973 (현재 15,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,922"}, {"label": "추세(10일선)", "ok": true, "detail": "13,113"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -857 · 기 +1,172"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,721"}]} {"ts": "2026-07-28T10:10:00.993124+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11140, "qty": 512, "proceeds": 5692558, "entry_price": 14230, "pnl": -1594105, "pnl_pct": -21.71, "hold_from": "2026-07-23T10:24:01.900022+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,186 (현재 11,180)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,359"}, {"label": "추세(10일선)", "ok": false, "detail": "12,691"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.597613+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 598, "cost": 3911507, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:16.525927+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 26, "cost": 3188078, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 268942, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 268,942"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]} +{"ts": "2026-07-29T09:24:16.526812+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 368, "cost": 2469650, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:18:05.441582+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 47, "proceeds": 5460132, "entry_price": 137300, "pnl": -993936, "pnl_pct": -15.22, "hold_from": "2026-07-24T09:00:20.070959+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 247,100"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:18:05.773212+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 241, "cost": 4668870, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "19,360 vs 18,984"}, {"label": "정배열(5>10)", "ok": true, "detail": "19,658 / 18,984"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,658 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.74% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "847,265 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.74% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "52"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,360)"}]} +{"ts": "2026-07-29T12:04:01.755276+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 86, "proceeds": 10231210, "entry_price": 124153, "pnl": -447591, "pnl_pct": -3.99, "hold_from": "2026-07-02T10:18:04.653371+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,614"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:16:01.549575+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5510, "qty": 966, "proceeds": 5312281, "entry_price": 6605, "pnl": -1068876, "pnl_pct": -16.58, "hold_from": "2026-07-29T09:02:03.597609+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,581 (현재 5,510)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,677"}, {"label": "추세(10일선)", "ok": true, "detail": "5,196"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v299/portfolio.json b/agents/stock/workspace/state/sim/variants/v299/portfolio.json index 51952b8..b7738fb 100644 --- a/agents/stock/workspace/state/sim/variants/v299/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v299/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 13412811.965499967, + "cash": 6708691.514999965, "initial": 100000000, "positions": { "055550": { @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 101100, + "cur_price": 98500, "tranches": 2, "tranche_value": 5666061.52171875, "last_add_price": 99700 @@ -39,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 4789675.2297187485, "last_add_price": 130800 @@ -55,12 +55,12 @@ "entry_at": "2026-07-14T09:40:05.108687+09:00", "stop": 5498, "target": 7383, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 4852421.820656248, "last_add_price": 6030 @@ -81,7 +81,7 @@ "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 4978530.748468748, "last_add_price": 106600 @@ -97,37 +97,16 @@ "entry_at": "2026-07-21T09:02:06.779465+09:00", "stop": 292918, "target": 451467, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4623660.577343748, "last_add_price": 338000 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", - "sources": [ - "auto" - ], - "qty": 241, - "entry_price": 13510, - "entry_at": "2026-07-27T09:04:07.177342+09:00", - "stop": 10457, - "target": 22669, - "peak": 13730, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,973 도달", - "cur_price": 11210, - "tranches": 1, - "tranche_value": 3262391.4453780535, - "last_add_price": 13510 - }, "078930": { "code": "078930", "name": "GS", @@ -144,17 +123,38 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 1, "tranche_value": 4476141.774093748, "last_add_price": 89800 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 471, + "entry_price": 18904.904458598725, + "entry_at": "2026-07-29T09:02:03.603926+09:00", + "stop": 17760, + "target": 22340, + "peak": 20750, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 20,014 도달", + "cur_price": 18800, + "tranches": 2, + "tranche_value": 4465513.872843748, + "last_add_price": 18950 } }, - "realized_pnl": -29833346.235000033, - "closed_trades": 34, + "realized_pnl": -30888319.440500032, + "closed_trades": 35, "wins": 1, "peak_equity": 102093754.3635, - "max_drawdown": 0.309993521105291, + "max_drawdown": 0.33274666832749256, "last_exit": { "036010": "2026-06-17", "017670": "2026-06-19", @@ -180,8 +180,9 @@ "105560": "2026-07-20", "024060": "2026-07-27", "095610": "2026-07-28", - "086790": "2026-07-28" + "086790": "2026-07-28", + "252990": "2026-07-29" }, "created_at": "2026-06-16T09:00:03.113489+09:00", - "updated_at": "2026-07-28T15:28:01.092928+09:00" + "updated_at": "2026-07-29T15:28:01.532857+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v299/trades.jsonl b/agents/stock/workspace/state/sim/variants/v299/trades.jsonl index 58ee70d..8c63895 100644 --- a/agents/stock/workspace/state/sim/variants/v299/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v299/trades.jsonl @@ -96,3 +96,7 @@ {"ts": "2026-07-28T09:08:04.424194+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 122100, "qty": 36, "proceeds": 4387029, "entry_price": 160222, "pnl": -1381837, "pnl_pct": -23.79, "hold_from": "2026-07-07T10:50:08.248202+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,253 (현재 122,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,129"}, {"label": "추세(20일선)", "ok": false, "detail": "134,525"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:58:01.791916+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 89800, "qty": 49, "cost": 4400860, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 78664, "target": 123209, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "89,800 vs 75,150"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,320 / 75,150"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,320 / 75,085"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+58.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -2 · 기 +234 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+15%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.65% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "597,467 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.65% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "69"}]} {"ts": "2026-07-28T11:04:04.604965+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 125800, "qty": 69, "proceeds": 8663274, "entry_price": 139823, "pnl": -985974, "pnl_pct": -10.03, "hold_from": "2026-07-15T14:34:04.973321+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "126,081 (현재 126,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 181,050"}, {"label": "추세(20일선)", "ok": true, "detail": "118,545"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +100 · 기 -116"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.603929+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18860, "qty": 236, "cost": 4451628, "path": "pullback", "reason": "눌림목 지정가 20,014 도달", "stop": 17760, "target": 22160, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "18,860 vs 18,848"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,558 / 18,848"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,558 / 19,356"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+24.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +99 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.08% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "90,693 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.08% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,014 (현재 18,860)"}]} +{"ts": "2026-07-29T09:24:16.532595+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 235, "cost": 4453918, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22160, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,160"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,178"}]} +{"ts": "2026-07-29T09:24:16.533427+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 288, "cost": 3257769, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10457, "target": 22669, "signals": [{"label": "손절선", "ok": true, "detail": "10,457 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,669"}, {"label": "추세(20일선)", "ok": true, "detail": "12,805"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,247"}]} +{"ts": "2026-07-29T10:52:02.418170+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 529, "proceeds": 5459194, "entry_price": 12312, "pnl": -1054973, "pnl_pct": -16.02, "hold_from": "2026-07-27T09:04:07.177342+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,457 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,229"}, {"label": "추세(20일선)", "ok": false, "detail": "12,592"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v300/portfolio.json b/agents/stock/workspace/state/sim/variants/v300/portfolio.json index 75ef36e..468cbb4 100644 --- a/agents/stock/workspace/state/sim/variants/v300/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v300/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 29489526.718000017, + "cash": 44733695.42050001, "initial": 100000000, "positions": { "078930": { @@ -18,122 +18,38 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4400054.8290937515, "last_add_price": 91400 }, - "214450": { - "code": "214450", - "name": "파마리서치", - "sources": [ - "auto" - ], - "qty": 23, - "entry_price": 369739.1304347826, - "entry_at": "2026-07-23T13:16:01.458017+09:00", - "stop": 336315, - "target": 470012, - "peak": 384500, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, - "tranches": 2, - "tranche_value": 4371310.515343752, - "last_add_price": 376000 - }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 22, - "entry_price": 137500, - "entry_at": "2026-07-27T09:00:17.613773+09:00", - "stop": 107275, - "target": 228175, - "peak": 146400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 3134120.2145636897, - "last_add_price": 137500 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 223, - "entry_price": 19240, + "qty": 450, + "entry_price": 19093.71111111111, "entry_at": "2026-07-27T09:18:02.798828+09:00", "stop": 18163, - "target": 22470, - "peak": 19300, + "target": 21956, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 4306811.880937502, - "last_add_price": 19240 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 1194, - "entry_price": 6936.247906197655, - "entry_at": "2026-07-28T09:00:24.017557+09:00", - "stop": 6040, - "target": 9626, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, + "cur_price": 18800, "tranches": 2, - "tranche_value": 4143575.7383125015, - "last_add_price": 7100 - }, - "475150": { - "code": "475150", - "name": "SK이터닉스", - "sources": [ - "watch" - ], - "qty": 56, - "entry_price": 54200, - "entry_at": "2026-07-28T09:12:01.891397+09:00", - "stop": 42500, - "target": 89300, - "peak": 54200, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 66,338 도달", - "cur_price": 48950, - "tranches": 1, - "tranche_value": 3050627.324983078, - "last_add_price": 54200 + "tranche_value": 4306811.880937502, + "last_add_price": 18950 } }, - "realized_pnl": -34649694.972000025, - "closed_trades": 50, + "realized_pnl": -37952737.93400004, + "closed_trades": 56, "wins": 1, "peak_equity": 100401992.91950001, - "max_drawdown": 0.3710339697775543, + "max_drawdown": 0.39082282291409526, "last_exit": { "204320": "2026-06-19", "003490": "2026-07-09", @@ -146,19 +62,21 @@ "093370": "2026-07-20", "009150": "2026-07-10", "240810": "2026-07-24", - "214450": "2026-07-03", + "214450": "2026-07-29", "402340": "2026-07-07", "011070": "2026-07-08", "055550": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-09", - "319660": "2026-07-28", + "319660": "2026-07-29", "105560": "2026-07-20", - "095610": "2026-07-24", - "003680": "2026-07-27", + "095610": "2026-07-29", + "003680": "2026-07-29", "252990": "2026-07-28", - "086790": "2026-07-28" + "086790": "2026-07-28", + "475150": "2026-07-29", + "138040": "2026-07-29" }, "created_at": "2026-06-16T10:45:02.136776+09:00", - "updated_at": "2026-07-28T15:28:01.099025+09:00" + "updated_at": "2026-07-29T15:28:01.538932+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v300/trades.jsonl b/agents/stock/workspace/state/sim/variants/v300/trades.jsonl index 844693b..2ff6250 100644 --- a/agents/stock/workspace/state/sim/variants/v300/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v300/trades.jsonl @@ -128,3 +128,13 @@ {"ts": "2026-07-28T09:12:01.891399+09:00", "side": "BUY", "code": "475150", "name": "SK이터닉스", "price": 54200, "qty": 56, "cost": 3035655, "path": "pullback", "reason": "눌림목 지정가 66,338 도달", "stop": 42500, "target": 89300, "signals": [{"label": "추세(40일선 위)", "ok": true, "detail": "54,300 vs 47,660"}, {"label": "정배열(5>40)", "ok": true, "detail": "66,740 / 47,660"}, {"label": "추세 기울기(40일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "66,740 / 47,974"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +1,124 · 기 +466 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+5%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "22.63% (환산) vs 평균 21.75% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 87,700"}, {"label": "거래량 급증", "ok": false, "detail": "7,708,633 (환산) vs 평균 7,408,194"}, {"label": "회전율 급증", "ok": false, "detail": "22.63% (환산) vs 평균 21.75%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 66,338 (현재 54,300)"}]} {"ts": "2026-07-28T10:54:01.984288+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10960, "qty": 304, "proceeds": 3325343, "entry_price": 13340, "pnl": -730625, "pnl_pct": -17.84, "hold_from": "2026-07-24T11:12:01.752999+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,047 (현재 10,970)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,219"}, {"label": "추세(40일선)", "ok": false, "detail": "13,261"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,188"}]} {"ts": "2026-07-28T13:34:05.046294+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 122900, "qty": 69, "proceeds": 8463564, "entry_price": 132575, "pnl": -685508, "pnl_pct": -7.3, "hold_from": "2026-07-10T09:26:06.520140+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,922 (현재 122,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 161,535"}, {"label": "추세(40일선)", "ok": true, "detail": "121,352"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:00:20.158230+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 128600, "qty": 31, "cost": 3987198, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 128599, "target": 128603, "signals": [{"label": "추세(40일선 위)", "ok": true, "detail": "126,900 vs 126,705"}, {"label": "정배열(5>40)", "ok": true, "detail": "163,020 / 126,705"}, {"label": "추세 기울기(40일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,020 / 112,673"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.21% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "349,520 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.21% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 126,900)"}]} +{"ts": "2026-07-29T09:04:02.940523+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 31, "proceeds": 3920041, "entry_price": 128600, "pnl": -67157, "pnl_pct": -1.48, "hold_from": "2026-07-29T09:00:20.158222+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,599 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(40일선)", "ok": true, "detail": "126,712"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:16.546491+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 25, "cost": 3065460, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 107275, "target": 228175, "signals": [{"label": "손절선", "ok": true, "detail": "107,275 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 228,175"}, {"label": "추세(40일선)", "ok": true, "detail": "114,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 146,742"}]} +{"ts": "2026-07-29T09:24:16.546857+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 227, "cost": 4302295, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18163, "target": 22470, "signals": [{"label": "손절선", "ok": true, "detail": "18,163 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,470"}, {"label": "추세(40일선)", "ok": true, "detail": "19,222"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,558"}]} +{"ts": "2026-07-29T09:24:16.933979+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 366000, "qty": 23, "proceeds": 8401585, "entry_price": 369739, "pnl": -103691, "pnl_pct": -1.01, "hold_from": "2026-07-23T13:16:01.458017+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "336,315 (현재 324,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 470,012"}, {"label": "추세(40일선)", "ok": true, "detail": "305,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -150 · 기 +370"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:24:01.521664+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 32, "cost": 3949392, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 146764, "signals": [{"label": "추세(40일선 위)", "ok": true, "detail": "123,400 vs 110,388"}, {"label": "정배열(5>40)", "ok": true, "detail": "118,140 / 110,388"}, {"label": "추세 기울기(40일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T11:18:04.497357+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 1194, "proceeds": 7150030, "entry_price": 6936, "pnl": -1133092, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:24.017557+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,626"}, {"label": "추세(40일선)", "ok": true, "detail": "4,741"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:02:02.652522+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 107100, "qty": 47, "proceeds": 5023884, "entry_price": 129574, "pnl": -1067029, "pnl_pct": -17.34, "hold_from": "2026-07-27T09:00:17.613773+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "107,275 (현재 107,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,755"}, {"label": "추세(40일선)", "ok": false, "detail": "114,682"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:04:03.185621+09:00", "side": "SELL", "code": "475150", "name": "SK이터닉스", "price": 42300, "qty": 56, "proceeds": 2364181, "entry_price": 54200, "pnl": -671474, "pnl_pct": -21.96, "hold_from": "2026-07-28T09:12:01.891397+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "42,500 (현재 42,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 89,300"}, {"label": "추세(40일선)", "ok": false, "detail": "47,785"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +702 · 기 -238"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 59,167"}]} +{"ts": "2026-07-29T14:20:01.580688+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 32, "proceeds": 3688793, "entry_price": 123400, "pnl": -260600, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.521662+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,764"}, {"label": "추세(40일선)", "ok": true, "detail": "110,190"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v301/portfolio.json b/agents/stock/workspace/state/sim/variants/v301/portfolio.json index e4c4b28..360028c 100644 --- a/agents/stock/workspace/state/sim/variants/v301/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v301/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 30351296.923500005, + "cash": 31326493.328, "initial": 100000000, "positions": { "010950": { @@ -18,32 +18,11 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 4497110.087925, "last_add_price": 130800 }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 67, - "entry_price": 132574.62686567163, - "entry_at": "2026-07-10T09:26:06.523702+09:00", - "stop": 119704, - "target": 171187, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4524049.632675001, - "last_add_price": 134300 - }, "090850": { "code": "090850", "name": "현대이지웰", @@ -55,12 +34,12 @@ "entry_at": "2026-07-14T09:40:05.116357+09:00", "stop": 5498, "target": 7383, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 4441317.796325, "last_add_price": 6030 @@ -76,12 +55,12 @@ "entry_at": "2026-07-16T09:04:04.870738+09:00", "stop": 305169, "target": 472574, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4537990.22125, "last_add_price": 353000 @@ -102,7 +81,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4354026.517550001, "last_add_price": 91400 @@ -113,51 +92,51 @@ "sources": [ "auto" ], - "qty": 234, - "entry_price": 18950, + "qty": 468, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:05.181044+09:00", "stop": 17760, "target": 22520, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 4438631.677600001, "last_add_price": 18950 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 308, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.600951+09:00", - "stop": 10340, - "target": 21580, - "peak": 13730, + "qty": 33, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.523915+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 4055235.361895997, - "last_add_price": 13150 + "tranche_value": 4163511.5199, + "last_add_price": 123400 } }, - "realized_pnl": -17233752.01300001, - "closed_trades": 18, + "realized_pnl": -20685419.53850001, + "closed_trades": 21, "wins": 0, "peak_equity": 100162411.55350003, - "max_drawdown": 0.17956057228507855, + "max_drawdown": 0.21564794507730922, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "298040": "2026-06-24", "403870": "2026-07-07", @@ -166,9 +145,10 @@ "214450": "2026-07-15", "055550": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "252990": "2026-07-29" }, "created_at": "2026-06-16T14:30:00.114884+09:00", - "updated_at": "2026-07-28T15:28:01.100661+09:00" + "updated_at": "2026-07-29T15:28:01.540518+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v301/trades.jsonl b/agents/stock/workspace/state/sim/variants/v301/trades.jsonl index 55ee8ce..48d0d95 100644 --- a/agents/stock/workspace/state/sim/variants/v301/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v301/trades.jsonl @@ -56,3 +56,11 @@ {"ts": "2026-07-27T09:18:02.818146+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 33, "cost": 4214732, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 117473, "target": 158380, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,400 vs 117,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,940 / 117,350"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,940 / 110,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +106 · 기 +291 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.26% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "439,847 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.26% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "71"}]} {"ts": "2026-07-28T11:22:00.824658+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 1140, "proceeds": 7543462, "entry_price": 7684, "pnl": -1217412, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:07.452641+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,004"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.894499+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 33, "proceeds": 3866645, "entry_price": 127700, "pnl": -348087, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.818142+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(10일선)", "ok": true, "detail": "116,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:03.626994+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 629, "cost": 4114277, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:16.952754+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 234, "cost": 4434965, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22520, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,520"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:16.953655+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 613, "cost": 4113847, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:16.954098+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 358, "cost": 4049587, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 21580, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,580"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T10:24:01.523916+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 33, "cost": 4072811, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.426541+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 666, "proceeds": 6873011, "entry_price": 12161, "pnl": -1227383, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.600951+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,624"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.764920+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 67, "proceeds": 7970827, "entry_price": 132575, "pnl": -913006, "pnl_pct": -10.09, "hold_from": "2026-07-10T09:26:06.523702+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,704 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,187"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.517426+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 1242, "proceeds": 6916846, "entry_price": 6624, "pnl": -1311278, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:03.626992+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v302/portfolio.json b/agents/stock/workspace/state/sim/variants/v302/portfolio.json index c9f29f2..d63c3a0 100644 --- a/agents/stock/workspace/state/sim/variants/v302/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v302/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 38762850.91250002, + "cash": 29505632.52050002, "initial": 100000000, "positions": { "010950": { @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 4360729.7882, "last_add_price": 130800 @@ -34,12 +34,12 @@ "entry_at": "2026-07-14T09:40:05.118058+09:00", "stop": 5498, "target": 7383, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 4412981.9396750005, "last_add_price": 6030 @@ -55,12 +55,12 @@ "entry_at": "2026-07-16T09:04:04.880674+09:00", "stop": 305169, "target": 472574, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4542977.951950001, "last_add_price": 353000 @@ -81,7 +81,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4183455.6171500003, "last_add_price": 91400 @@ -92,27 +92,48 @@ "sources": [ "auto" ], - "qty": 219, - "entry_price": 19100, + "qty": 440, + "entry_price": 19024.659090909092, "entry_at": "2026-07-27T09:02:07.459364+09:00", "stop": 17760, - "target": 23120, - "peak": 19300, + "target": 22819, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 4191774.1235750006, - "last_add_price": 19100 + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 31, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.525655+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 3948679.1633750005, + "last_add_price": 123400 } }, - "realized_pnl": -22684577.069000024, - "closed_trades": 28, + "realized_pnl": -23927243.458500024, + "closed_trades": 29, "wins": 1, "peak_equity": 100864171.466, - "max_drawdown": 0.22671867964739514, + "max_drawdown": 0.2563935024957536, "last_exit": { "030000": "2026-07-24", "003490": "2026-07-07", @@ -127,10 +148,10 @@ "055550": "2026-07-20", "024060": "2026-07-27", "095610": "2026-07-28", - "003680": "2026-07-28", + "003680": "2026-07-29", "138040": "2026-07-28", "086790": "2026-07-28" }, "created_at": "2026-06-16T14:30:00.114893+09:00", - "updated_at": "2026-07-28T15:28:01.102294+09:00" + "updated_at": "2026-07-29T15:28:01.542131+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v302/trades.jsonl b/agents/stock/workspace/state/sim/variants/v302/trades.jsonl index ee4d516..fd7faa2 100644 --- a/agents/stock/workspace/state/sim/variants/v302/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v302/trades.jsonl @@ -77,3 +77,8 @@ {"ts": "2026-07-28T11:22:00.826323+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 1085, "proceeds": 7179523, "entry_price": 7684, "pnl": -1158558, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:07.460366+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,004"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.896140+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 32, "proceeds": 3749474, "entry_price": 127700, "pnl": -337539, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.824202+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(20일선)", "ok": true, "detail": "113,425"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} {"ts": "2026-07-28T13:26:04.864581+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123100, "qty": 67, "proceeds": 8231617, "entry_price": 136575, "pnl": -920256, "pnl_pct": -9.87, "hold_from": "2026-07-13T09:42:03.137984+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,347 (현재 123,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 176,259"}, {"label": "추세(20일선)", "ok": true, "detail": "118,400"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.631110+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 596, "cost": 3898425, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:16.959614+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 221, "cost": 4188578, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 23120, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,120"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:16.960259+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 581, "cost": 3899095, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.525656+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 31, "cost": 3825974, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T13:14:05.519086+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 1177, "proceeds": 6554853, "entry_price": 6624, "pnl": -1242666, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:03.631107+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v303/portfolio.json b/agents/stock/workspace/state/sim/variants/v303/portfolio.json index 080160c..8fbde71 100644 --- a/agents/stock/workspace/state/sim/variants/v303/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v303/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 51857010.02500002, + "cash": 50330733.99750002, "initial": 100000000, "positions": { "010950": { @@ -18,32 +18,11 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 3561275.575471075, "last_add_price": 130800 }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 65, - "entry_price": 132573.84615384616, - "entry_at": "2026-07-10T09:26:06.527124+09:00", - "stop": 119703, - "target": 171186, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4425433.834195267, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +34,12 @@ "entry_at": "2026-07-21T09:20:05.279235+09:00", "stop": 302791, "target": 467626, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3616873.7658032966, "last_add_price": 349500 @@ -81,21 +60,63 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3542431.9465922415, "last_add_price": 92800 + }, + "095610": { + "code": "095610", + "name": "테스", + "sources": [ + "auto" + ], + "qty": 36, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:03.634820+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 144,225 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 2262464.716682996, + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 33, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.527380+09:00", + "stop": 113016, + "target": 154552, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 4093622.4514750005, + "last_add_price": 123400 } }, - "realized_pnl": -18550251.730000034, - "closed_trades": 86, + "realized_pnl": -20202646.672500037, + "closed_trades": 89, "wins": 2, "peak_equity": 100085511.5725, - "max_drawdown": 0.1903772209197096, + "max_drawdown": 0.21389287259118173, "last_exit": { "017670": "2026-06-19", "204320": "2026-06-19", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "003490": "2026-07-09", "033640": "2026-07-01", @@ -108,7 +129,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "402340": "2026-07-23", "004170": "2026-07-23", @@ -119,9 +140,9 @@ "222800": "2026-07-21", "089970": "2026-07-27", "095610": "2026-07-28", - "003680": "2026-07-28", + "003680": "2026-07-29", "138040": "2026-07-28" }, "created_at": "2026-06-16T14:30:00.114901+09:00", - "updated_at": "2026-07-28T15:28:01.103945+09:00" + "updated_at": "2026-07-29T15:28:01.543780+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v303/trades.jsonl b/agents/stock/workspace/state/sim/variants/v303/trades.jsonl index 81b4872..13805a9 100644 --- a/agents/stock/workspace/state/sim/variants/v303/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v303/trades.jsonl @@ -192,3 +192,12 @@ {"ts": "2026-07-28T09:24:02.999198+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 558000, "qty": 8, "proceeds": 4455295, "entry_price": 553000, "pnl": 30632, "pnl_pct": 0.9, "hold_from": "2026-07-20T09:00:34.059389+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "561,800 (현재 559,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,517"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -88 · 기 +62"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:04:04.706210+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 751, "proceeds": 4939439, "entry_price": 7736, "pnl": -871282, "pnl_pct": -14.82, "hold_from": "2026-07-27T09:04:07.596674+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,629 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,056"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:02:00.897885+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 33, "proceeds": 3866645, "entry_price": 127700, "pnl": -348087, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.829340+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]} +{"ts": "2026-07-29T09:02:03.634822+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:03.635053+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 31, "cost": 4008901, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:03.635302+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.948338+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 31, "proceeds": 3920041, "entry_price": 129300, "pnl": -88860, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:03.635050+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:24:16.965447+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:16.966061+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:24:01.527381+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 33, "cost": 4072811, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:04:01.768207+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 65, "proceeds": 7732891, "entry_price": 132574, "pnl": -885701, "pnl_pct": -10.09, "hold_from": "2026-07-10T09:26:06.527124+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,703 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,186"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.520990+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:03.635300+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v304/portfolio.json b/agents/stock/workspace/state/sim/variants/v304/portfolio.json index 9e03f17..310aa77 100644 --- a/agents/stock/workspace/state/sim/variants/v304/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v304/portfolio.json @@ -1,70 +1,7 @@ { - "cash": 57032137.99849999, + "cash": 60681952.93649999, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 24, - "entry_price": 134300.0, - "entry_at": "2026-07-09T09:06:03.765255+09:00", - "stop": 114980, - "target": 163281, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 1651331.990927872, - "last_add_price": 136900 - }, - "105560": { - "code": "105560", - "name": "KB금융", - "sources": [ - "auto" - ], - "qty": 18, - "entry_price": 185750.0, - "entry_at": "2026-07-10T09:14:02.218885+09:00", - "stop": 160989, - "target": 222892, - "peak": 194300, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 165900, - "tranches": 2, - "tranche_value": 1761968.1579426918, - "last_add_price": 188300 - }, - "055550": { - "code": "055550", - "name": "신한지주", - "sources": [ - "auto" - ], - "qty": 16, - "entry_price": 110600, - "entry_at": "2026-07-10T09:22:05.472935+09:00", - "stop": 96960, - "target": 131061, - "peak": 113050, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 101100, - "tranches": 1, - "tranche_value": 1874414.018276448, - "last_add_price": 110600 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -76,58 +13,16 @@ "entry_at": "2026-07-21T10:34:01.219132+09:00", "stop": 299382, "target": 432177, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 1541443.3087531894, "last_add_price": 358500 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", - "sources": [ - "auto" - ], - "qty": 120, - "entry_price": 14266.0, - "entry_at": "2026-07-22T14:18:05.510245+09:00", - "stop": 10462, - "target": 19972, - "peak": 15400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 14,023 도달", - "cur_price": 11210, - "tranches": 2, - "tranche_value": 860620.9881350341, - "last_add_price": 14510 - }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 4, - "entry_price": 158100, - "entry_at": "2026-07-22T15:04:01.083816+09:00", - "stop": 110868, - "target": 228948, - "peak": 167200, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,107 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 756440.8308644168, - "last_add_price": 158100 - }, "161890": { "code": "161890", "name": "한국콜마", @@ -139,12 +34,12 @@ "entry_at": "2026-07-22T15:18:03.039315+09:00", "stop": 92100, "target": 113275, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,784 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 3422505.993388654, "last_add_price": 102600 @@ -165,7 +60,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 1493175.7536818886, "last_add_price": 92800 @@ -186,38 +81,38 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 25,331 도달", - "cur_price": 25150, + "cur_price": 24650, "tranches": 2, "tranche_value": 3374000.0988983824, "last_add_price": 26750 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 301, - "entry_price": 6936.279069767442, - "entry_at": "2026-07-28T09:00:25.383287+09:00", - "stop": 5442, - "target": 9178, - "peak": 7780, + "qty": 60, + "entry_price": 119200.0, + "entry_at": "2026-07-29T09:02:03.639482+09:00", + "stop": 111200, + "target": 131200, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 1047578.3829753122, - "last_add_price": 7100 + "tranche_value": 3651482.705770833, + "last_add_price": 120500 } }, - "realized_pnl": -10975973.938000042, - "closed_trades": 127, + "realized_pnl": -12943441.466000041, + "closed_trades": 134, "wins": 2, "peak_equity": 100036582.48, - "max_drawdown": 0.12803040811655697, + "max_drawdown": 0.13991561083464973, "last_exit": { "017670": "2026-06-23", "178320": "2026-06-23", @@ -239,14 +134,19 @@ "402340": "2026-07-23", "034730": "2026-07-28", "004170": "2026-07-23", - "319660": "2026-07-27", + "319660": "2026-07-29", "032830": "2026-07-27", "028260": "2026-07-23", "003490": "2026-07-23", "214450": "2026-07-15", - "095610": "2026-07-20", - "089970": "2026-07-28" + "095610": "2026-07-29", + "089970": "2026-07-28", + "010950": "2026-07-29", + "105560": "2026-07-29", + "252990": "2026-07-29", + "055550": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885275+09:00", - "updated_at": "2026-07-28T15:28:01.105886+09:00" + "updated_at": "2026-07-29T15:28:01.545418+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v304/trades.jsonl b/agents/stock/workspace/state/sim/variants/v304/trades.jsonl index f8bc4a8..e95bcad 100644 --- a/agents/stock/workspace/state/sim/variants/v304/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v304/trades.jsonl @@ -282,3 +282,14 @@ {"ts": "2026-07-28T09:10:01.825524+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 147, "cost": 1043857, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5339, "target": 8941, "signals": [{"label": "손절선", "ok": true, "detail": "5,339 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,941"}, {"label": "추세(60일선)", "ok": true, "detail": "4,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T09:24:03.001276+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 558000, "qty": 6, "proceeds": 3341471, "entry_price": 553000, "pnl": 22974, "pnl_pct": 0.9, "hold_from": "2026-07-20T09:00:34.570463+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "561,800 (현재 559,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,517"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -88 · 기 +62"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:08:07.047979+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124100, "qty": 42, "proceeds": 5202036, "entry_price": 124200, "pnl": -15146, "pnl_pct": -0.08, "hold_from": "2026-07-02T10:18:05.076562+09:00", "reason": "시간손절 — 26일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 124,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,000"}, {"label": "추세(60일선)", "ok": true, "detail": "118,467"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.638458+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 28, "cost": 3620943, "path": "pullback", "reason": "눌림목 지정가 166,205 도달", "stop": 129299, "target": 129302, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 166,205 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:03.639484+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 30, "cost": 3537531, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "117,800 vs 109,982"}, {"label": "정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:04:02.950333+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 28, "proceeds": 3540682, "entry_price": 129300, "pnl": -80261, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:03.638455+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,302"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:08:03.599767+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 129700, "qty": 24, "proceeds": 3106730, "entry_price": 134300, "pnl": -116953, "pnl_pct": -3.43, "hold_from": "2026-07-09T09:06:03.765255+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "114,980 (현재 129,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,281"}, {"label": "추세(60일선)", "ok": true, "detail": "113,192"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:16:04.551709+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 30, "cost": 3615542, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(60일선)", "ok": true, "detail": "110,027"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:16.970356+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 6, "cost": 735710, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 110868, "target": 228948, "signals": [{"label": "손절선", "ok": true, "detail": "110,868 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 228,948"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 167,342"}]} +{"ts": "2026-07-29T09:24:17.368706+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 167100, "qty": 18, "proceeds": 3001935, "entry_price": 185750, "pnl": -342067, "pnl_pct": -10.04, "hold_from": "2026-07-10T09:14:02.218885+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "160,989 (현재 159,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 222,892"}, {"label": "추세(60일선)", "ok": true, "detail": "156,717"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -248 · 기 +157"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:48:03.426381+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10430, "qty": 120, "proceeds": 1249159, "entry_price": 14266, "pnl": -463017, "pnl_pct": -26.89, "hold_from": "2026-07-22T14:18:05.510245+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,462 (현재 10,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,972"}, {"label": "추세(60일선)", "ok": false, "detail": "13,224"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:00:06.335710+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 110400, "qty": 10, "proceeds": 1101847, "entry_price": 136800, "pnl": -266358, "pnl_pct": -19.3, "hold_from": "2026-07-22T15:04:01.083816+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "110,868 (현재 110,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 190,950"}, {"label": "추세(60일선)", "ok": true, "detail": "98,957"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:02.045644+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 97000, "qty": 16, "proceeds": 1548974, "entry_price": 110600, "pnl": -220892, "pnl_pct": -12.3, "hold_from": "2026-07-10T09:22:05.472935+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "96,960 (현재 96,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,061"}, {"label": "추세(60일선)", "ok": true, "detail": "96,407"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +466 · 기 -451"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 113,142"}]} +{"ts": "2026-07-29T13:22:01.673576+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5360, "qty": 301, "proceeds": 1610214, "entry_price": 6936, "pnl": -477919, "pnl_pct": -22.73, "hold_from": "2026-07-28T09:00:25.383287+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,442 (현재 5,360)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,178"}, {"label": "추세(60일선)", "ok": true, "detail": "4,854"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v305/portfolio.json b/agents/stock/workspace/state/sim/variants/v305/portfolio.json index bfe5ac3..abbc387 100644 --- a/agents/stock/workspace/state/sim/variants/v305/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v305/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 56370080.78899998, + "cash": 45749062.93499999, "initial": 100000000, "positions": { "214450": { @@ -13,37 +13,16 @@ "entry_at": "2026-07-21T09:20:05.283403+09:00", "stop": 298671, "target": 434659, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 2518293.2056913, "last_add_price": 349500 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 7, - "entry_price": 158100, - "entry_at": "2026-07-22T15:04:01.085919+09:00", - "stop": 116536, - "target": 241228, - "peak": 167200, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,107 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 1238429.3243433933, - "last_add_price": 158100 - }, "161890": { "code": "161890", "name": "한국콜마", @@ -55,12 +34,12 @@ "entry_at": "2026-07-22T15:18:03.041548+09:00", "stop": 92100, "target": 117529, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,784 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 4331643.114424999, "last_add_price": 102600 @@ -81,7 +60,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 2431814.0917408336, "last_add_price": 92200 @@ -102,17 +81,59 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 25,331 도달", - "cur_price": 25150, + "cur_price": 24650, "tranches": 2, "tranche_value": 4377506.593399999, "last_add_price": 26750 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 69, + "entry_price": 119181.15942028986, + "entry_at": "2026-07-29T09:02:03.643352+09:00", + "stop": 111200, + "target": 135143, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 4205999.225949999, + "last_add_price": 120500 + }, + "010950": { + "code": "010950", + "name": "S-Oil", + "sources": [ + "auto" + ], + "qty": 19, + "entry_price": 131400, + "entry_at": "2026-07-29T09:52:02.456040+09:00", + "stop": 114807, + "target": 164587, + "peak": 133100, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 126900, + "tranches": 1, + "tranche_value": 2510568.839116163, + "last_add_price": 131400 } }, - "realized_pnl": -15630669.953500045, - "closed_trades": 121, + "realized_pnl": -16636845.797500046, + "closed_trades": 124, "wins": 2, "peak_equity": 100139236.48850003, - "max_drawdown": 0.16342873121845172, + "max_drawdown": 0.18029469952642813, "last_exit": { "017670": "2026-06-23", "178320": "2026-06-23", @@ -133,18 +154,19 @@ "034730": "2026-07-28", "402340": "2026-07-23", "084370": "2026-07-09", - "319660": "2026-07-23", + "319660": "2026-07-29", "032830": "2026-07-24", "004170": "2026-07-23", "028260": "2026-07-22", "003490": "2026-07-23", "214450": "2026-07-20", - "095610": "2026-07-20", + "095610": "2026-07-29", "105560": "2026-07-20", "055550": "2026-07-28", "252990": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885286+09:00", - "updated_at": "2026-07-28T15:28:01.107618+09:00" + "updated_at": "2026-07-29T15:28:01.547043+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v305/trades.jsonl b/agents/stock/workspace/state/sim/variants/v305/trades.jsonl index 292be57..979d874 100644 --- a/agents/stock/workspace/state/sim/variants/v305/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v305/trades.jsonl @@ -266,3 +266,13 @@ {"ts": "2026-07-28T10:56:01.970912+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10910, "qty": 197, "proceeds": 2145079, "entry_price": 14266, "pnl": -665813, "pnl_pct": -23.53, "hold_from": "2026-07-22T14:18:05.513705+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,919 (현재 10,910)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,961"}, {"label": "추세(60일선)", "ok": false, "detail": "13,231"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:08:07.086453+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124100, "qty": 59, "proceeds": 7307622, "entry_price": 124420, "pnl": -34279, "pnl_pct": -0.26, "hold_from": "2026-07-03T09:02:06.149146+09:00", "reason": "시간손절 — 25일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 124,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 151,261"}, {"label": "추세(60일선)", "ok": true, "detail": "118,467"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T14:34:01.953239+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128200, "qty": 37, "proceeds": 4734150, "entry_price": 128386, "pnl": -16862, "pnl_pct": -0.15, "hold_from": "2026-07-08T09:16:02.768421+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,007 (현재 128,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,145"}, {"label": "추세(60일선)", "ok": true, "detail": "113,168"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +105 · 기 +200"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.642582+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 32, "cost": 4138221, "path": "pullback", "reason": "눌림목 지정가 166,205 도달", "stop": 129299, "target": 129302, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 166,205 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:03.643099+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 230, "cost": 1504426, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5170, "target": 9280, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:03.643354+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 35, "cost": 4127119, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "117,800 vs 109,982"}, {"label": "정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:04:02.952492+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 32, "proceeds": 4046494, "entry_price": 129300, "pnl": -91727, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:03.642580+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,302"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:16:04.553539+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 34, "cost": 4097615, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(60일선)", "ok": true, "detail": "110,027"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:17.381683+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 10, "cost": 1226184, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116536, "target": 241228, "signals": [{"label": "손절선", "ok": true, "detail": "116,536 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 241,228"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 167,342"}]} +{"ts": "2026-07-29T09:24:17.383053+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 224, "cost": 1503265, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5170, "target": 9280, "signals": [{"label": "손절선", "ok": true, "detail": "5,170 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,280"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:52:02.456041+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131400, "qty": 19, "cost": 2496974, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 114807, "target": 164587, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "131,100 vs 113,215"}, {"label": "정배열(5>60)", "ok": true, "detail": "115,400 / 113,215"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,400 / 113,215"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.5%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.50% (환산) vs 평균 0.32% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "567,993 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.50% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]} +{"ts": "2026-07-29T10:18:05.822769+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 17, "proceeds": 1974941, "entry_price": 137218, "pnl": -358109, "pnl_pct": -15.17, "hold_from": "2026-07-22T15:04:01.085919+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "116,536 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 210,253"}, {"label": "추세(60일선)", "ok": true, "detail": "99,047"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:20:03.728879+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5410, "qty": 454, "proceeds": 2451351, "entry_price": 6624, "pnl": -556341, "pnl_pct": -18.33, "hold_from": "2026-07-29T09:02:03.643097+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,497 (현재 5,490)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,877"}, {"label": "추세(60일선)", "ok": true, "detail": "4,856"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v306/portfolio.json b/agents/stock/workspace/state/sim/variants/v306/portfolio.json index 8d9e94b..4920cfe 100644 --- a/agents/stock/workspace/state/sim/variants/v306/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v306/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 50253627.348999985, + "cash": 25783681.483999986, "initial": 100000000, "positions": { "090850": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-14T09:40:05.124984+09:00", "stop": 5498, "target": 6912, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5795785.200968751, "last_add_price": 6030 @@ -34,12 +34,12 @@ "entry_at": "2026-07-16T09:04:05.884866+09:00", "stop": 305399, "target": 430953, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4001941.6430547875, "last_add_price": 353000 @@ -55,12 +55,12 @@ "entry_at": "2026-07-22T09:04:02.223675+09:00", "stop": 92100, "target": 119146, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5697846.5995, "last_add_price": 103100 @@ -71,27 +71,90 @@ "sources": [ "auto" ], - "qty": 290, - "entry_price": 19170, + "qty": 583, + "entry_price": 19059.43396226415, "entry_at": "2026-07-27T09:06:01.970931+09:00", - "stop": 17760, - "target": 21990, - "peak": 19300, + "stop": 17787, + "target": 21604, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5568373.021031249, - "last_add_price": 19170 + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 91, + "entry_price": 119185.71428571429, + "entry_at": "2026-07-29T09:02:03.646966+09:00", + "stop": 111200, + "target": 135157, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 5455736.499937499, + "last_add_price": 120500 + }, + "010950": { + "code": "010950", + "name": "S-Oil", + "sources": [ + "auto" + ], + "qty": 29, + "entry_price": 131400, + "entry_at": "2026-07-29T09:52:02.457765+09:00", + "stop": 116315, + "target": 161570, + "peak": 133100, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 126900, + "tranches": 1, + "tranche_value": 3831166.3013964198, + "last_add_price": 131400 + }, + "078930": { + "code": "078930", + "name": "GS", + "sources": [ + "auto" + ], + "qty": 40, + "entry_price": 88200, + "entry_at": "2026-07-29T10:10:03.570762+09:00", + "stop": 77406, + "target": 109787, + "peak": 88900, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 83400, + "tranches": 1, + "tranche_value": 3613055.2890175097, + "last_add_price": 88200 } }, - "realized_pnl": -13630626.101500018, - "closed_trades": 26, + "realized_pnl": -14360161.439000018, + "closed_trades": 27, "wins": 1, "peak_equity": 102728958.65750001, - "max_drawdown": 0.1565208298480704, + "max_drawdown": 0.1750955855930582, "last_exit": { "403870": "2026-07-07", "009150": "2026-07-06", @@ -108,8 +171,9 @@ "024060": "2026-07-27", "252990": "2026-07-28", "086790": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885297+09:00", - "updated_at": "2026-07-28T15:28:01.109239+09:00" + "updated_at": "2026-07-29T15:28:01.548667+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v306/trades.jsonl b/agents/stock/workspace/state/sim/variants/v306/trades.jsonl index 32ccd0d..3145def 100644 --- a/agents/stock/workspace/state/sim/variants/v306/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v306/trades.jsonl @@ -72,3 +72,11 @@ {"ts": "2026-07-28T11:06:00.958548+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 125900, "qty": 33, "proceeds": 4146598, "entry_price": 139800, "pnl": -467494, "pnl_pct": -9.94, "hold_from": "2026-07-16T09:18:07.625165+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "125,972 (현재 125,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 167,456"}, {"label": "추세(20일선)", "ok": true, "detail": "118,540"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +100 · 기 -116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,971"}]} {"ts": "2026-07-28T11:34:02.055692+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 120300, "qty": 11, "proceeds": 1320720, "entry_price": 158100, "pnl": -418641, "pnl_pct": -23.91, "hold_from": "2026-07-22T15:04:01.089412+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,314 (현재 120,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 233,671"}, {"label": "추세(20일선)", "ok": false, "detail": "134,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +285 · 기 -563"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 168,711"}]} {"ts": "2026-07-28T14:34:01.955273+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128200, "qty": 55, "proceeds": 7037251, "entry_price": 128407, "pnl": -26209, "pnl_pct": -0.16, "hold_from": "2026-07-08T09:16:02.770139+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "112,608 (현재 128,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 160,006"}, {"label": "추세(20일선)", "ok": true, "detail": "108,740"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +105 · 기 +200"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.646428+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 350, "cost": 2289343, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:03.646968+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 46, "cost": 5424214, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.555321+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 45, "cost": 5423313, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:17.389186+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 293, "cost": 5553183, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21990, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,990"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,488"}]} +{"ts": "2026-07-29T09:24:17.389881+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 341, "cost": 2288453, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:52:02.457766+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131400, "qty": 29, "cost": 3811172, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116315, "target": 161570, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "131,100 vs 108,880"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,400 / 108,880"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,400 / 113,215"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.50% (환산) vs 평균 0.32% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "567,993 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.50% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]} +{"ts": "2026-07-29T10:10:03.570763+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 88200, "qty": 40, "cost": 3528529, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 77406, "target": 109787, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "88,200 vs 75,070"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,000 / 75,070"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,000 / 75,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+58.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -65 · 기 +296 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.64% (환산) vs 평균 0.42% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "590,411 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.64% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T13:14:05.525859+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 691, "proceeds": 3848261, "entry_price": 6624, "pnl": -729535, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:03.646426+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v307/portfolio.json b/agents/stock/workspace/state/sim/variants/v307/portfolio.json index 00e4094..e51904a 100644 --- a/agents/stock/workspace/state/sim/variants/v307/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v307/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 69677786.51699996, + "cash": 75704036.36549993, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 37, - "entry_price": 134229.72972972973, - "entry_at": "2026-07-09T09:06:03.790209+09:00", - "stop": 118773, - "target": 165142, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 2515299.6269763918, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.261297+09:00", "stop": 308113, "target": 434524, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 2312659.7890401366, "last_add_price": 356000 @@ -60,32 +39,11 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 2272740.2217699476, "last_add_price": 92800 }, - "138040": { - "code": "138040", - "name": "메리츠금융지주", - "sources": [ - "auto" - ], - "qty": 26, - "entry_price": 127200, - "entry_at": "2026-07-27T09:16:05.127190+09:00", - "stop": 116973, - "target": 147653, - "peak": 127900, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 118600, - "tranches": 1, - "tranche_value": 3382783.2465926656, - "last_add_price": 127200 - }, "475150": { "code": "475150", "name": "SK이터닉스", @@ -102,7 +60,7 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 66,722 도달", - "cur_price": 48950, + "cur_price": 43200, "tranches": 1, "tranche_value": 963230.6420236498, "last_add_price": 57200 @@ -113,27 +71,27 @@ "sources": [ "auto" ], - "qty": 10, - "entry_price": 127400, + "qty": 20, + "entry_price": 125000.0, "entry_at": "2026-07-28T09:00:25.685634+09:00", "stop": 100700, - "target": 180800, - "peak": 127400, + "target": 173600, + "peak": 177000, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 145,639 도달", - "cur_price": 121400, - "tranches": 1, + "cur_price": 113300, + "tranches": 2, "tranche_value": 1285478.848705123, - "last_add_price": 127400 + "last_add_price": 122600 } }, - "realized_pnl": -11186243.518000048, - "closed_trades": 79, + "realized_pnl": -12208750.824500052, + "closed_trades": 83, "wins": 1, "peak_equity": 100266527.41749999, - "max_drawdown": 0.1206947244728042, + "max_drawdown": 0.13203101167428602, "last_exit": { "033640": "2026-07-01", "307950": "2026-07-01", @@ -146,7 +104,7 @@ "093370": "2026-07-20", "034730": "2026-07-28", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "003490": "2026-07-09", "402340": "2026-07-22", @@ -157,8 +115,10 @@ "089970": "2026-07-27", "095610": "2026-07-27", "086790": "2026-07-27", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "138040": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885305+09:00", - "updated_at": "2026-07-28T15:28:01.110847+09:00" + "updated_at": "2026-07-29T15:28:01.550442+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v307/trades.jsonl b/agents/stock/workspace/state/sim/variants/v307/trades.jsonl index c52a6ba..ecb02b1 100644 --- a/agents/stock/workspace/state/sim/variants/v307/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v307/trades.jsonl @@ -180,3 +180,11 @@ {"ts": "2026-07-28T09:00:25.688341+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 134100, "qty": 41, "cost": 5498925, "path": "pullback", "reason": "눌림목 지정가 156,975 도달", "stop": 134099, "target": 134102, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "133,100 vs 112,777"}, {"label": "정배열(5>60)", "ok": true, "detail": "164,260 / 112,777"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "164,260 / 112,777"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.3%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +254 · 기 -283 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+37%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.24% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "359,853 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.24% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 156,975 (현재 133,100)"}]} {"ts": "2026-07-28T09:02:05.232009+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 41, "proceeds": 5340067, "entry_price": 134100, "pnl": -158858, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:25.688333+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,102"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T11:04:04.768195+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 474, "proceeds": 3117569, "entry_price": 7801, "pnl": -580606, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.847856+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,014"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.649961+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 42, "cost": 5431415, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129302, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:03.650417+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 212, "cost": 1386688, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:02.956163+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 42, "proceeds": 5311023, "entry_price": 129300, "pnl": -120391, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:03.649959+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,302"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:08:03.605749+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 129700, "qty": 37, "proceeds": 4789542, "entry_price": 134230, "pnl": -177703, "pnl_pct": -3.37, "hold_from": "2026-07-09T09:06:03.790209+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "118,773 (현재 129,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,142"}, {"label": "추세(60일선)", "ok": true, "detail": "113,192"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:17.394831+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 10, "cost": 1226184, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 180800, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,800"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]} +{"ts": "2026-07-29T09:24:17.395591+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 207, "cost": 1389178, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T13:14:05.527850+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 419, "proceeds": 2333461, "entry_price": 6624, "pnl": -442405, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:03.650415+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:18:03.616121+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 116600, "qty": 26, "proceeds": 3025688, "entry_price": 127200, "pnl": -282008, "pnl_pct": -8.33, "hold_from": "2026-07-27T09:16:05.127190+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "116,973 (현재 116,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,653"}, {"label": "추세(60일선)", "ok": true, "detail": "109,962"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +52 · 기 +313"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 129,814"}]} diff --git a/agents/stock/workspace/state/sim/variants/v308/portfolio.json b/agents/stock/workspace/state/sim/variants/v308/portfolio.json index bb84ae6..d0bc216 100644 --- a/agents/stock/workspace/state/sim/variants/v308/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v308/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 37038073.82149992, + "cash": 43129146.18799993, "initial": 100000000, "positions": { "214450": { @@ -13,37 +13,16 @@ "entry_at": "2026-07-13T14:36:02.694098+09:00", "stop": 303669, "target": 414161, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4091526.4858662924, "last_add_price": 346500 }, - "090850": { - "code": "090850", - "name": "현대이지웰", - "sources": [ - "auto" - ], - "qty": 1841, - "entry_price": 6234.329168929929, - "entry_at": "2026-07-16T09:14:04.439470+09:00", - "stop": 5770, - "target": 7162, - "peak": 6330, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, - "tranches": 2, - "tranche_value": 5740927.925062496, - "last_add_price": 6300 - }, "161890": { "code": "161890", "name": "한국콜마", @@ -55,85 +34,64 @@ "entry_at": "2026-07-22T09:04:02.232297+09:00", "stop": 92100, "target": 119144, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5579733.175874996, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 82, - "entry_price": 95958.53658536586, - "entry_at": "2026-07-24T09:14:01.599437+09:00", - "stop": 85216, - "target": 117444, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 3965476.874007674, - "last_add_price": 97700 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 283, - "entry_price": 19170, + "qty": 569, + "entry_price": 19059.420035149386, "entry_at": "2026-07-27T09:06:01.974494+09:00", - "stop": 17878, - "target": 21754, - "peak": 19300, + "stop": 17914, + "target": 21349, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5436948.876062496, - "last_add_price": 19170 + "last_add_price": 18950 }, - "010950": { - "code": "010950", - "name": "S-Oil", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 30, - "entry_price": 133800, - "entry_at": "2026-07-28T09:52:02.227991+09:00", - "stop": 119767, - "target": 161866, - "peak": 134100, + "qty": 87, + "entry_price": 119185.05747126437, + "entry_at": "2026-07-29T09:02:03.653840+09:00", + "stop": 111200, + "target": 135155, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 1, - "tranche_value": 4066264.8925467785, - "last_add_price": 133800 + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 5277899.060343745, + "last_add_price": 120500 } }, - "realized_pnl": -15215555.297000017, - "closed_trades": 36, - "wins": 4, + "realized_pnl": -16696818.61050002, + "closed_trades": 40, + "wins": 5, "peak_equity": 103214817.49949999, - "max_drawdown": 0.1881978203187171, + "max_drawdown": 0.19408416152648916, "last_exit": { "403870": "2026-07-07", "000660": "2026-06-29", @@ -151,11 +109,13 @@ "105560": "2026-07-20", "055550": "2026-07-20", "086790": "2026-07-21", - "010950": "2026-07-27", + "010950": "2026-07-29", "024060": "2026-07-27", "252990": "2026-07-28", - "003680": "2026-07-28" + "003680": "2026-07-29", + "090850": "2026-07-29", + "078930": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885314+09:00", - "updated_at": "2026-07-28T15:28:01.112466+09:00" + "updated_at": "2026-07-29T15:28:01.552049+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v308/trades.jsonl b/agents/stock/workspace/state/sim/variants/v308/trades.jsonl index 3e8a636..b275c6e 100644 --- a/agents/stock/workspace/state/sim/variants/v308/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v308/trades.jsonl @@ -100,3 +100,12 @@ {"ts": "2026-07-28T09:48:03.961084+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11490, "qty": 322, "proceeds": 3692565, "entry_price": 14266, "pnl": -901624, "pnl_pct": -19.46, "hold_from": "2026-07-22T14:18:05.519153+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,527 (현재 11,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,743"}, {"label": "추세(20일선)", "ok": false, "detail": "12,650"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:52:02.228008+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 133800, "qty": 30, "cost": 4014602, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 119767, "target": 161866, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "133,800 vs 109,015"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,940 / 109,015"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,940 / 113,260"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +117 · 기 +211 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+19%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.42% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "478,113 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.42% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "70"}]} {"ts": "2026-07-28T10:56:02.390034+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6730, "qty": 857, "proceeds": 5756363, "entry_price": 7736, "pnl": -874581, "pnl_pct": -13.01, "hold_from": "2026-07-27T09:04:07.634745+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,740 (현재 6,740)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,728"}, {"label": "추세(20일선)", "ok": true, "detail": "4,839"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +89 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:03.653433+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 376, "cost": 2459409, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5419, "target": 8782, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:03.653841+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.558793+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:17.400365+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 286, "cost": 5420513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17878, "target": 21754, "signals": [{"label": "손절선", "ok": true, "detail": "17,878 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,754"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,488"}]} +{"ts": "2026-07-29T09:24:17.400780+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 30, "proceeds": 3850477, "entry_price": 133800, "pnl": -164125, "pnl_pct": -3.89, "hold_from": "2026-07-28T09:52:02.227991+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,767 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 161,866"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 137,165"}]} +{"ts": "2026-07-29T09:24:17.400964+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 367, "cost": 2462939, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5419, "target": 8782, "signals": [{"label": "손절선", "ok": true, "detail": "5,419 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,782"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:17.401106+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1841, "proceeds": 11557309, "entry_price": 6234, "pnl": 78188, "pnl_pct": 0.89, "hold_from": "2026-07-16T09:14:04.439470+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,770 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,162"}, {"label": "추세(20일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:17.401366+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 82, "proceeds": 7177377, "entry_price": 95959, "pnl": -692404, "pnl_pct": -8.61, "hold_from": "2026-07-24T09:14:01.599437+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "85,216 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 117,444"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:06:06.641611+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 743, "proceeds": 4219426, "entry_price": 6624, "pnl": -702922, "pnl_pct": -14.1, "hold_from": "2026-07-29T09:02:03.653431+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,702 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,468"}, {"label": "추세(20일선)", "ok": true, "detail": "4,787"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v309/portfolio.json b/agents/stock/workspace/state/sim/variants/v309/portfolio.json index 8ab9be7..827d4e9 100644 --- a/agents/stock/workspace/state/sim/variants/v309/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v309/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 44017567.675499946, + "cash": 29682653.095499944, "initial": 100000000, "positions": { "214450": { @@ -11,66 +11,87 @@ "qty": 35, "entry_price": 318600.0, "entry_at": "2026-07-10T09:00:33.035507+09:00", - "stop": 288819, + "stop": 361272, "target": 393054, - "peak": 384500, - "trailing_on": false, + "peak": 397000, + "trailing_on": true, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5662017.171948669, "last_add_price": 324000 }, - "090850": { - "code": "090850", - "name": "현대이지웰", + "055550": { + "code": "055550", + "name": "신한지주", "sources": [ "auto" ], - "qty": 2319, - "entry_price": 6148.93057352307, - "entry_at": "2026-07-22T12:12:01.525746+09:00", - "stop": 5776, - "target": 7081, - "peak": 6330, + "qty": 136, + "entry_price": 101531.61764705883, + "entry_at": "2026-07-29T09:02:04.008229+09:00", + "stop": 94205, + "target": 119849, + "peak": 103500, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 6240, + "cur_price": 98500, "tranches": 2, - "tranche_value": 7133868.060916662, - "last_add_price": 6230 + "tranche_value": 6938801.472958329, + "last_add_price": 102800 }, - "078930": { - "code": "078930", - "name": "GS", + "010950": { + "code": "010950", + "name": "S-Oil", "sources": [ "auto" ], - "qty": 129, - "entry_price": 91213.95348837209, - "entry_at": "2026-07-23T10:24:02.326263+09:00", - "stop": 82797, - "target": 112256, - "peak": 99800, + "qty": 89, + "entry_price": 129977.52808988764, + "entry_at": "2026-07-29T09:02:04.355274+09:00", + "stop": 118664, + "target": 158262, + "peak": 133100, "trailing_on": false, "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "entry_path": "immediate", + "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", + "cur_price": 126900, "tranches": 2, - "tranche_value": 5923537.593329019, - "last_add_price": 92800 + "tranche_value": 5861557.685734485, + "last_add_price": 132000 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 699, + "entry_price": 19133.147353361946, + "entry_at": "2026-07-29T09:26:01.994519+09:00", + "stop": 18029, + "target": 21895, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 20,161 도달", + "cur_price": 18800, + "tranches": 2, + "tranche_value": 6690702.074333329, + "last_add_price": 19320 } }, - "realized_pnl": -18799885.77900002, - "closed_trades": 27, - "wins": 0, + "realized_pnl": -20408491.699000023, + "closed_trades": 30, + "wins": 1, "peak_equity": 100204129.27299997, - "max_drawdown": 0.175746440094512, + "max_drawdown": 0.20119516355033384, "last_exit": { "005930": "2026-06-23", "005935": "2026-07-02", @@ -90,8 +111,11 @@ "055550": "2026-07-23", "252990": "2026-07-28", "086790": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-28", + "090850": "2026-07-29", + "003680": "2026-07-29", + "078930": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885323+09:00", - "updated_at": "2026-07-28T15:28:01.114077+09:00" + "updated_at": "2026-07-29T15:28:01.553656+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v309/trades.jsonl b/agents/stock/workspace/state/sim/variants/v309/trades.jsonl index 3965434..b6d4368 100644 --- a/agents/stock/workspace/state/sim/variants/v309/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v309/trades.jsonl @@ -72,3 +72,14 @@ {"ts": "2026-07-28T09:04:03.148439+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11810, "qty": 466, "proceeds": 5492728, "entry_price": 14214, "pnl": -1131885, "pnl_pct": -16.91, "hold_from": "2026-07-23T09:36:02.050950+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,931 (현재 11,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,920"}, {"label": "추세(10일선)", "ok": false, "detail": "12,759"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:08:07.094683+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124100, "qty": 107, "proceeds": 13252807, "entry_price": 124181, "pnl": -36587, "pnl_pct": -0.07, "hold_from": "2026-07-02T10:18:05.117493+09:00", "reason": "시간손절 — 26일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "114,303 (현재 124,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,877"}, {"label": "추세(10일선)", "ok": true, "detail": "119,970"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T14:36:04.073878+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128200, "qty": 87, "proceeds": 11131651, "entry_price": 128221, "pnl": -25222, "pnl_pct": -0.02, "hold_from": "2026-07-08T09:08:02.837702+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "116,371 (현재 128,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,844"}, {"label": "추세(10일선)", "ok": true, "detail": "108,290"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +105 · 기 +200"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.008242+09:00", "side": "BUY", "code": "055550", "name": "신한지주", "price": 100300, "qty": 69, "cost": 6921738, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 92973, "target": 118618, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "100,200 vs 98,980"}, {"label": "정배열(5>10)", "ok": true, "detail": "99,220 / 98,980"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "99,220 / 96,462"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+31.4%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +474 · 기 -479 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+37%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.12% (환산) vs 평균 0.35% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 109,800"}, {"label": "거래량 급증", "ok": false, "detail": "548,713 (환산) vs 평균 1,653,581"}, {"label": "회전율 급증", "ok": false, "detail": "0.12% (환산) vs 평균 0.35%"}, {"label": "RSI", "ok": true, "detail": "54"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 98,980 (현재 100,200)"}]} +{"ts": "2026-07-29T09:02:04.355295+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 128000, "qty": 45, "cost": 5760864, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 116686, "target": 156284, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,700 vs 108,240"}, {"label": "정배열(5>10)", "ok": true, "detail": "114,720 / 108,240"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "114,720 / 113,158"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+25%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.11% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": false, "detail": "127,560 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": false, "detail": "0.11% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "66"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 110,866 (현재 127,700)"}]} +{"ts": "2026-07-29T09:02:04.356545+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 554, "cost": 3623703, "path": "pullback", "reason": "눌림목 지정가 7,962 도달", "stop": 5606, "target": 8875, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,962 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:17.405846+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 540, "cost": 3623944, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5606, "target": 8875, "signals": [{"label": "손절선", "ok": true, "detail": "5,606 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,875"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:17.406014+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 2319, "proceeds": 14558066, "entry_price": 6149, "pnl": 296557, "pnl_pct": 2.29, "hold_from": "2026-07-22T12:12:01.525746+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,776 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,081"}, {"label": "추세(10일선)", "ok": true, "detail": "5,472"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.994520+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 353, "cost": 6690353, "path": "pullback", "reason": "눌림목 지정가 20,161 도달", "stop": 17845, "target": 21712, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "18,950 vs 18,943"}, {"label": "정배열(5>10)", "ok": true, "detail": "19,576 / 18,943"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,576 / 19,358"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+24.7%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +99 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.23% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "264,780 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.23% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,161 (현재 18,950)"}]} +{"ts": "2026-07-29T09:40:06.674258+09:00", "side": "BUY", "code": "055550", "name": "신한지주", "price": 102800, "qty": 67, "cost": 6888633, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 92973, "target": 118618, "signals": [{"label": "손절선", "ok": true, "detail": "92,973 (현재 102,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 118,618"}, {"label": "추세(10일선)", "ok": true, "detail": "99,240"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +474 · 기 -479"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 102,742"}]} +{"ts": "2026-07-29T10:04:01.685208+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19320, "qty": 346, "cost": 6685723, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17845, "target": 21712, "signals": [{"label": "손절선", "ok": true, "detail": "17,845 (현재 19,320)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,712"}, {"label": "추세(10일선)", "ok": true, "detail": "18,980"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +102 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,318"}]} +{"ts": "2026-07-29T10:06:02.099969+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 132000, "qty": 44, "cost": 5808871, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116686, "target": 156284, "signals": [{"label": "손절선", "ok": true, "detail": "116,686 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 156,284"}, {"label": "추세(10일선)", "ok": true, "detail": "108,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +245"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 131,771"}]} +{"ts": "2026-07-29T11:32:05.718379+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6120, "qty": 1094, "proceeds": 6682224, "entry_price": 6624, "pnl": -565423, "pnl_pct": -7.61, "hold_from": "2026-07-29T09:02:04.356536+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,856 (현재 5,770)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,544"}, {"label": "추세(10일선)", "ok": true, "detail": "5,222"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:32:04.594968+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 81000, "qty": 129, "proceeds": 10428624, "entry_price": 91214, "pnl": -1339741, "pnl_pct": -11.2, "hold_from": "2026-07-23T10:24:02.326263+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "82,797 (현재 82,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 112,256"}, {"label": "추세(10일선)", "ok": true, "detail": "80,300"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -74 · 기 +296"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v310/portfolio.json b/agents/stock/workspace/state/sim/variants/v310/portfolio.json index 12efd8b..f7eb37a 100644 --- a/agents/stock/workspace/state/sim/variants/v310/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v310/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 75390348.58549994, + "cash": 68256238.72899994, "initial": 100000000, "positions": { "214450": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-09T11:44:05.175517+09:00", "stop": 296187, "target": 431439, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 324,000 도달", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 2514022.686329285, "last_add_price": 337500 @@ -34,22 +34,64 @@ "entry_at": "2026-07-24T09:28:05.736242+09:00", "stop": 92100, "target": 134764, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 106,500 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 3060336.08961186, "last_add_price": 104800 + }, + "003490": { + "code": "003490", + "name": "대한항공", + "sources": [ + "auto" + ], + "qty": 129, + "entry_price": 25650, + "entry_at": "2026-07-29T09:02:04.377794+09:00", + "stop": 23650, + "target": 31650, + "peak": 26600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 26,600 도달", + "cur_price": 24650, + "tranches": 1, + "tranche_value": 3334237.1941591105, + "last_add_price": 25650 + }, + "095610": { + "code": "095610", + "name": "테스", + "sources": [ + "auto" + ], + "qty": 22, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:04.379570+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 177,000 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 1439247.6836102963, + "last_add_price": 122600 } }, - "realized_pnl": -13924848.93450005, - "closed_trades": 71, + "realized_pnl": -15048707.388500052, + "closed_trades": 74, "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.13830451414500058, + "max_drawdown": 0.15372711271000059, "last_exit": { "254490": "2026-06-22", "017670": "2026-06-23", @@ -75,7 +117,7 @@ "034730": "2026-07-28", "222800": "2026-07-16", "004170": "2026-07-16", - "319660": "2026-07-28", + "319660": "2026-07-29", "032830": "2026-07-24", "028260": "2026-07-16", "089970": "2026-07-09", @@ -83,8 +125,10 @@ "003490": "2026-07-23", "095610": "2026-07-28", "086790": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-28", + "475150": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885332+09:00", - "updated_at": "2026-07-28T15:28:01.120248+09:00" + "updated_at": "2026-07-29T15:28:01.559818+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v310/trades.jsonl b/agents/stock/workspace/state/sim/variants/v310/trades.jsonl index 9800bc1..d3d2acb 100644 --- a/agents/stock/workspace/state/sim/variants/v310/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v310/trades.jsonl @@ -157,3 +157,14 @@ {"ts": "2026-07-28T09:48:04.379116+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123000, "qty": 14, "proceeds": 1718642, "entry_price": 152000, "pnl": -409677, "pnl_pct": -19.08, "hold_from": "2026-07-08T09:48:03.209205+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,360 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 249,920"}, {"label": "추세(60일선)", "ok": true, "detail": "99,167"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:54:00.828591+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 127500, "qty": 49, "proceeds": 6235317, "entry_price": 127616, "pnl": -18821, "pnl_pct": -0.09, "hold_from": "2026-07-03T12:00:03.961624+09:00", "reason": "시간손절 — 24일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "116,685 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 160,412"}, {"label": "추세(60일선)", "ok": true, "detail": "118,525"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +147 · 기 -116"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:00:02.103302+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 131900, "qty": 36, "proceeds": 4739141, "entry_price": 146800, "pnl": -546452, "pnl_pct": -10.15, "hold_from": "2026-07-16T09:56:06.970463+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "132,096 (현재 132,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 190,913"}, {"label": "추세(60일선)", "ok": true, "detail": "113,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +117 · 기 +211"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.368612+09:00", "side": "BUY", "code": "475150", "name": "SK이터닉스", "price": 49600, "qty": 42, "cost": 2083512, "path": "pullback", "reason": "눌림목 지정가 57,100 도달", "stop": 43550, "target": 67750, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "49,550 vs 47,930"}, {"label": "정배열(5>60)", "ok": true, "detail": "66,030 / 47,930"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "66,030 / 47,930"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +832 · 기 -202 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "7.94% (환산) vs 평균 22.47% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 87,700"}, {"label": "거래량 급증", "ok": false, "detail": "2,706,167 (환산) vs 평균 7,655,447"}, {"label": "회전율 급증", "ok": false, "detail": "7.94% (환산) vs 평균 22.47%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 57,100 (현재 49,550)"}]} +{"ts": "2026-07-29T09:02:04.377797+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25650, "qty": 129, "cost": 3309346, "path": "pullback", "reason": "눌림목 지정가 26,600 도달", "stop": 23650, "target": 31650, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "25,650 vs 25,162"}, {"label": "정배열(5>60)", "ok": true, "detail": "25,470 / 25,162"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,470 / 25,162"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+21.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +1,077 · 기 +294 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.13% (환산) vs 평균 0.58% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "469,413 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.13% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 26,600 (현재 25,650)"}]} +{"ts": "2026-07-29T09:02:04.379573+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 11, "cost": 1352103, "path": "pullback", "reason": "눌림목 지정가 177,000 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 177,000 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:04.381561+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 55, "cost": 7112567, "path": "pullback", "reason": "눌림목 지정가 188,200 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 188,200 (현재 128,800)"}]} +{"ts": "2026-07-29T09:04:02.964392+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 55, "proceeds": 6954911, "entry_price": 129300, "pnl": -157655, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:04.381558+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:04:03.282290+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6500, "qty": 244, "cost": 1586238, "path": "pullback", "reason": "눌림목 지정가 8,460 도달", "stop": 5441, "target": 9676, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,500 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,258 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,258 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+69.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.91% (환산) vs 평균 5.69% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "180,640 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "2.91% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 8,460 (현재 6,500)"}]} +{"ts": "2026-07-29T09:24:17.410657+09:00", "side": "BUY", "code": "475150", "name": "SK이터닉스", "price": 49500, "qty": 43, "cost": 2128819, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 43550, "target": 67750, "signals": [{"label": "손절선", "ok": true, "detail": "43,550 (현재 57,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 67,750"}, {"label": "추세(60일선)", "ok": true, "detail": "48,021"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +832 · 기 -202"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 54,378"}]} +{"ts": "2026-07-29T09:24:17.415990+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 11, "cost": 1348802, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:17.417968+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 236, "cost": 1583798, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5441, "target": 9676, "signals": [{"label": "손절선", "ok": true, "detail": "5,441 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,676"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,756"}]} +{"ts": "2026-07-29T10:50:06.464700+09:00", "side": "SELL", "code": "475150", "name": "SK이터닉스", "price": 43500, "qty": 85, "proceeds": 3690290, "entry_price": 49549, "pnl": -522042, "pnl_pct": -12.21, "hold_from": "2026-07-29T09:02:04.368605+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "43,550 (현재 43,550)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 70,698"}, {"label": "추세(60일선)", "ok": false, "detail": "47,830"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +596 · 기 -203"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:06:06.649223+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 480, "proceeds": 2725874, "entry_price": 6603, "pnl": -444161, "pnl_pct": -13.83, "hold_from": "2026-07-29T09:04:03.282259+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,733 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,215"}, {"label": "추세(60일선)", "ok": true, "detail": "4,859"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v311/portfolio.json b/agents/stock/workspace/state/sim/variants/v311/portfolio.json index f9a1985..7b3b9d7 100644 --- a/agents/stock/workspace/state/sim/variants/v311/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v311/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 50487728.459999986, + "cash": 21974409.83899998, "initial": 100000000, "positions": { "090850": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-14T09:50:06.156313+09:00", "stop": 5616, "target": 7029, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 7328397.072583333, "last_add_price": 6030 @@ -34,12 +34,12 @@ "entry_at": "2026-07-16T09:04:05.922536+09:00", "stop": 315861, "target": 441416, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5051541.085061288, "last_add_price": 353000 @@ -55,22 +55,64 @@ "entry_at": "2026-07-23T11:00:03.572572+09:00", "stop": 92928, "target": 137723, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 106,500 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 4351266.965749504, "last_add_price": 106100 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 746, + "entry_price": 18904.879356568366, + "entry_at": "2026-07-29T09:02:04.391241+09:00", + "stop": 17951, + "target": 21767, + "peak": 20750, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 20,750 도달", + "cur_price": 18800, + "tranches": 2, + "tranche_value": 7068569.038333331, + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 117, + "entry_price": 119188.88888888889, + "entry_at": "2026-07-29T09:02:04.392072+09:00", + "stop": 111412, + "target": 142520, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 123,300 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 7048635.583499998, + "last_add_price": 120500 } }, - "realized_pnl": -16492879.37400002, - "closed_trades": 31, + "realized_pnl": -16953850.774000023, + "closed_trades": 32, "wins": 1, "peak_equity": 100133491.83, - "max_drawdown": 0.1628408544633894, + "max_drawdown": 0.17602583979518466, "last_exit": { "033640": "2026-06-23", "005930": "2026-06-23", @@ -89,8 +131,9 @@ "319660": "2026-07-23", "105560": "2026-07-20", "086790": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885342+09:00", - "updated_at": "2026-07-28T15:28:01.121861+09:00" + "updated_at": "2026-07-29T15:28:01.561438+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v311/trades.jsonl b/agents/stock/workspace/state/sim/variants/v311/trades.jsonl index 5975c03..790f116 100644 --- a/agents/stock/workspace/state/sim/variants/v311/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v311/trades.jsonl @@ -81,3 +81,10 @@ {"ts": "2026-07-28T09:08:04.494066+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 122100, "qty": 27, "proceeds": 3290271, "entry_price": 151778, "pnl": -808343, "pnl_pct": -19.55, "hold_from": "2026-07-08T09:48:03.227800+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,978 (현재 122,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 238,177"}, {"label": "추세(20일선)", "ok": false, "detail": "134,525"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T10:58:00.850092+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 126200, "qty": 42, "proceeds": 5290064, "entry_price": 136500, "pnl": -443796, "pnl_pct": -7.55, "hold_from": "2026-07-20T09:42:01.348220+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "126,311 (현재 126,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 167,067"}, {"label": "추세(20일선)", "ok": true, "detail": "118,550"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +135 · 기 -114"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 139,657"}]} {"ts": "2026-07-28T12:08:05.866034+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130200, "qty": 71, "proceeds": 9226174, "entry_price": 130372, "pnl": -31615, "pnl_pct": -0.13, "hold_from": "2026-07-08T09:28:03.774820+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "118,522 (현재 130,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,920"}, {"label": "추세(20일선)", "ok": true, "detail": "108,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +111 · 기 +211"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.391244+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18860, "qty": 374, "cost": 7054698, "path": "pullback", "reason": "눌림목 지정가 20,750 도달", "stop": 17760, "target": 22160, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "18,860 vs 18,848"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,558 / 18,848"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,558 / 19,356"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+24.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +99 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.08% (환산) vs 평균 0.62% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "90,693 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.08% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,750 (현재 18,860)"}]} +{"ts": "2026-07-29T09:02:04.391692+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 452, "cost": 2956523, "path": "pullback", "reason": "눌림목 지정가 8,460 도달", "stop": 5606, "target": 9342, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 8,460 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:04.392075+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 59, "cost": 6957143, "path": "pullback", "reason": "눌림목 지정가 123,300 도달", "stop": 111200, "target": 138000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 123,300 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.568444+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 58, "cost": 6990048, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 138000, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,000"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:17.423538+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 372, "cost": 7050457, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22160, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,160"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,178"}]} +{"ts": "2026-07-29T09:24:17.423855+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 440, "cost": 2952843, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5606, "target": 9342, "signals": [{"label": "손절선", "ok": true, "detail": "5,606 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,342"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T11:32:05.727321+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6120, "qty": 892, "proceeds": 5448395, "entry_price": 6624, "pnl": -460971, "pnl_pct": -7.61, "hold_from": "2026-07-29T09:02:04.391689+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,856 (현재 5,770)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,928"}, {"label": "추세(20일선)", "ok": true, "detail": "4,791"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v312/portfolio.json b/agents/stock/workspace/state/sim/variants/v312/portfolio.json index fbbaa3a..b6f4ef8 100644 --- a/agents/stock/workspace/state/sim/variants/v312/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v312/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 50946467.284499995, + "cash": 28282136.251999993, "initial": 100000000, "positions": { "214450": { @@ -13,43 +13,85 @@ "entry_at": "2026-07-16T09:00:29.554741+09:00", "stop": 312214, "target": 417870, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 7354011.877655987, "last_add_price": 344000 }, - "090850": { - "code": "090850", - "name": "현대이지웰", + "055550": { + "code": "055550", + "name": "신한지주", "sources": [ "auto" ], - "qty": 2809, - "entry_price": 6154.065503737985, - "entry_at": "2026-07-23T09:36:02.472761+09:00", - "stop": 5831, - "target": 7123, - "peak": 6330, + "qty": 164, + "entry_price": 101534.75609756098, + "entry_at": "2026-07-29T09:02:04.402410+09:00", + "stop": 95185, + "target": 120585, + "peak": 103500, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 6240, + "cur_price": 98500, "tranches": 2, - "tranche_value": 8647951.636300001, - "last_add_price": 6230 + "tranche_value": 8369345.66302692, + "last_add_price": 102800 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 863, + "entry_price": 19133.070683661645, + "entry_at": "2026-07-29T09:26:02.006705+09:00", + "stop": 18176, + "target": 22005, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 20,750 도달", + "cur_price": 18800, + "tranches": 2, + "tranche_value": 8269635.959799999, + "last_add_price": 19320 + }, + "078930": { + "code": "078930", + "name": "GS", + "sources": [ + "auto" + ], + "qty": 74, + "entry_price": 87600, + "entry_at": "2026-07-29T09:26:02.244095+09:00", + "stop": 80584, + "target": 108648, + "peak": 89400, + "trailing_on": false, + "scaled_out": false, + "entry_path": "immediate", + "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", + "cur_price": 83400, + "tranches": 1, + "tranche_value": 6565639.373821265, + "last_add_price": 87600 } }, - "realized_pnl": -17200985.550000023, - "closed_trades": 25, - "wins": 0, + "realized_pnl": -17502792.70700003, + "closed_trades": 28, + "wins": 2, "peak_equity": 100226641.3075, - "max_drawdown": 0.16193135808278872, + "max_drawdown": 0.17737235153833017, "last_exit": { "005930": "2026-06-23", "005935": "2026-07-01", @@ -67,8 +109,10 @@ "055550": "2026-07-23", "252990": "2026-07-28", "086790": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-29", + "090850": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885351+09:00", - "updated_at": "2026-07-28T15:28:01.127864+09:00" + "updated_at": "2026-07-29T15:28:01.568798+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v312/trades.jsonl b/agents/stock/workspace/state/sim/variants/v312/trades.jsonl index f69c0a7..a481892 100644 --- a/agents/stock/workspace/state/sim/variants/v312/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v312/trades.jsonl @@ -66,3 +66,14 @@ {"ts": "2026-07-28T09:02:05.248607+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 546, "proceeds": 6495629, "entry_price": 14230, "pnl": -1275097, "pnl_pct": -16.23, "hold_from": "2026-07-23T10:24:02.373251+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "12,252 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,164"}, {"label": "추세(10일선)", "ok": false, "detail": "12,769"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T10:56:02.809314+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 126500, "qty": 127, "proceeds": 16034172, "entry_price": 126536, "pnl": -38338, "pnl_pct": -0.03, "hold_from": "2026-07-07T09:48:10.316330+09:00", "reason": "시간손절 — 21일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "118,177 (현재 126,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 151,615"}, {"label": "추세(10일선)", "ok": true, "detail": "120,210"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +135 · 기 -114"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:54:00.905625+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 129200, "qty": 102, "proceeds": 13152702, "entry_price": 129355, "pnl": -43477, "pnl_pct": -0.12, "hold_from": "2026-07-08T09:22:06.889846+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,085 (현재 129,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 160,163"}, {"label": "추세(10일선)", "ok": true, "detail": "108,400"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +111 · 기 +211"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.402412+09:00", "side": "BUY", "code": "055550", "name": "신한지주", "price": 100300, "qty": 83, "cost": 8326149, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 93950, "target": 119350, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "100,200 vs 98,980"}, {"label": "정배열(5>10)", "ok": true, "detail": "99,220 / 98,980"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "99,220 / 96,462"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+31.4%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +474 · 기 -479 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+37%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.12% (환산) vs 평균 0.35% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 109,800"}, {"label": "거래량 급증", "ok": false, "detail": "548,713 (환산) vs 평균 1,653,581"}, {"label": "회전율 급증", "ok": false, "detail": "0.12% (환산) vs 평균 0.35%"}, {"label": "RSI", "ok": true, "detail": "54"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 99,600 (현재 100,200)"}]} +{"ts": "2026-07-29T09:02:04.404585+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 128000, "qty": 53, "cost": 6785018, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 118195, "target": 157416, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,700 vs 108,240"}, {"label": "정배열(5>10)", "ok": true, "detail": "114,720 / 108,240"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "114,720 / 113,158"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+25%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.11% (환산) vs 평균 0.32% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": false, "detail": "127,560 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": false, "detail": "0.11% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "66"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 116,900 (현재 127,700)"}]} +{"ts": "2026-07-29T09:02:04.404977+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 651, "cost": 4258179, "path": "pullback", "reason": "눌림목 지정가 8,460 도달", "stop": 5731, "target": 8968, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 8,460 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:17.432101+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 53, "proceeds": 6802509, "entry_price": 128000, "pnl": 17492, "pnl_pct": 0.47, "hold_from": "2026-07-29T09:02:04.404583+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,195 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,416"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 131,365"}]} +{"ts": "2026-07-29T09:24:17.432408+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 634, "cost": 4254778, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5731, "target": 8968, "signals": [{"label": "손절선", "ok": true, "detail": "5,731 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,968"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:17.432555+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 2809, "proceeds": 17634156, "entry_price": 6154, "pnl": 344793, "pnl_pct": 2.21, "hold_from": "2026-07-23T09:36:02.472761+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,831 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,123"}, {"label": "추세(10일선)", "ok": true, "detail": "5,472"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:02.006706+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 436, "cost": 8263439, "path": "pullback", "reason": "눌림목 지정가 20,750 도달", "stop": 17993, "target": 21822, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "18,950 vs 18,943"}, {"label": "정배열(5>10)", "ok": true, "detail": "19,576 / 18,943"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,576 / 19,358"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+24.7%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +99 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.23% (환산) vs 평균 0.62% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "264,780 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.23% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,750 (현재 18,950)"}]} +{"ts": "2026-07-29T09:26:02.244110+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 87600, "qty": 74, "cost": 6483372, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 80584, "target": 108648, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "87,500 vs 80,830"}, {"label": "정배열(5>10)", "ok": true, "detail": "82,860 / 80,830"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "82,860 / 75,047"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+57.4%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 -59 · 기 +284 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+18%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.32% (환산) vs 평균 0.42% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": false, "detail": "293,353 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": false, "detail": "0.32% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 83,200 (현재 87,500)"}]} +{"ts": "2026-07-29T09:40:06.688618+09:00", "side": "BUY", "code": "055550", "name": "신한지주", "price": 102800, "qty": 81, "cost": 8328049, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 93950, "target": 119350, "signals": [{"label": "손절선", "ok": true, "detail": "93,950 (현재 102,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,350"}, {"label": "추세(10일선)", "ok": true, "detail": "99,240"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +474 · 기 -479"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 102,742"}]} +{"ts": "2026-07-29T10:04:01.700849+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19320, "qty": 427, "cost": 8250877, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17993, "target": 21822, "signals": [{"label": "손절선", "ok": true, "detail": "17,993 (현재 19,320)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,822"}, {"label": "추세(10일선)", "ok": true, "detail": "18,980"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +102 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,318"}]} +{"ts": "2026-07-29T11:32:05.732771+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6120, "qty": 1285, "proceeds": 7848865, "entry_price": 6624, "pnl": -664092, "pnl_pct": -7.61, "hold_from": "2026-07-29T09:02:04.404975+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,958 (현재 5,770)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,621"}, {"label": "추세(10일선)", "ok": true, "detail": "5,222"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v313/portfolio.json b/agents/stock/workspace/state/sim/variants/v313/portfolio.json index a96874f..84bd5aa 100644 --- a/agents/stock/workspace/state/sim/variants/v313/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v313/portfolio.json @@ -1,70 +1,7 @@ { - "cash": 67746151.36849992, + "cash": 77911663.17699993, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 29, - "entry_price": 134520.6896551724, - "entry_at": "2026-07-09T09:10:02.696468+09:00", - "stop": 115200, - "target": 169297, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 2048281.4287081354, - "last_add_price": 136900 - }, - "105560": { - "code": "105560", - "name": "KB금융", - "sources": [ - "auto" - ], - "qty": 22, - "entry_price": 186300.0, - "entry_at": "2026-07-10T09:18:05.738233+09:00", - "stop": 161450, - "target": 231031, - "peak": 194300, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 165900, - "tranches": 2, - "tranche_value": 2190880.642895634, - "last_add_price": 188900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 33, - "entry_price": 132548.48484848486, - "entry_at": "2026-07-10T09:26:06.847465+09:00", - "stop": 116460, - "target": 161508, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 2270015.592943854, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -76,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.281525+09:00", "stop": 297579, "target": 445059, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 1881614.4320314971, "last_add_price": 356000 @@ -102,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 1862199.0150068374, "last_add_price": 92800 @@ -123,38 +60,38 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 118600, + "cur_price": 116500, "tranches": 1, "tranche_value": 2781920.3395705796, "last_add_price": 127700 }, - "095610": { - "code": "095610", - "name": "테스", + "003680": { + "code": "003680", + "name": "한성기업", "sources": [ "auto" ], - "qty": 10, - "entry_price": 127400, - "entry_at": "2026-07-28T09:00:26.316287+09:00", - "stop": 100700, - "target": 175460, - "peak": 127400, + "qty": 342, + "entry_price": 6624.005847953216, + "entry_at": "2026-07-29T09:02:04.410664+09:00", + "stop": 5344, + "target": 8929, + "peak": 8460, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 145,639 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 1318194.1792580327, - "last_add_price": 127400 + "entry_reason": "눌림목 지정가 7,526 도달", + "cur_price": 5960, + "tranches": 2, + "tranche_value": 1136696.002462022, + "last_add_price": 6710 } }, - "realized_pnl": -8770326.631500034, - "closed_trades": 77, + "realized_pnl": -9988912.181500036, + "closed_trades": 82, "wins": 2, "peak_equity": 100186518.14249998, - "max_drawdown": 0.10163210542477871, + "max_drawdown": 0.10905314575320389, "last_exit": { "033640": "2026-07-01", "307950": "2026-07-01", @@ -165,7 +102,7 @@ "034730": "2026-07-28", "093370": "2026-07-20", "032830": "2026-07-27", - "319660": "2026-07-28", + "319660": "2026-07-29", "011070": "2026-07-24", "402340": "2026-07-22", "003490": "2026-07-13", @@ -175,9 +112,12 @@ "222800": "2026-07-21", "055550": "2026-07-27", "089970": "2026-07-27", - "095610": "2026-07-27", - "003680": "2026-07-28" + "095610": "2026-07-29", + "003680": "2026-07-28", + "010950": "2026-07-29", + "105560": "2026-07-29", + "086790": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885359+09:00", - "updated_at": "2026-07-28T15:28:01.129481+09:00" + "updated_at": "2026-07-29T15:28:01.570417+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v313/trades.jsonl b/agents/stock/workspace/state/sim/variants/v313/trades.jsonl index 5d36632..679de1a 100644 --- a/agents/stock/workspace/state/sim/variants/v313/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v313/trades.jsonl @@ -175,3 +175,11 @@ {"ts": "2026-07-28T09:02:05.250759+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 34, "proceeds": 4428348, "entry_price": 134100, "pnl": -131736, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:26.317342+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,102"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:24:03.025916+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 558000, "qty": 8, "proceeds": 4455295, "entry_price": 553000, "pnl": 30632, "pnl_pct": 0.9, "hold_from": "2026-07-20T09:00:35.565898+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "561,800 (현재 559,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,517"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -88 · 기 +62"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:36:02.023118+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6260, "qty": 392, "proceeds": 2449135, "entry_price": 7737, "pnl": -584040, "pnl_pct": -19.09, "hold_from": "2026-07-27T09:04:07.667139+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,353 (현재 6,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,227"}, {"label": "추세(60일선)", "ok": true, "detail": "4,869"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.410395+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 34, "cost": 4396859, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129302, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:04.410666+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 173, "cost": 1131590, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 4983, "target": 9342, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:03.322397+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 34, "proceeds": 4299400, "entry_price": 129300, "pnl": -97460, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:04.410393+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,302"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:12:01.861110+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 29, "proceeds": 3762648, "entry_price": 134521, "pnl": -139037, "pnl_pct": -3.36, "hold_from": "2026-07-09T09:10:02.696468+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "115,200 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 169,297"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:17.436859+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 167100, "qty": 22, "proceeds": 3669031, "entry_price": 186300, "pnl": -430183, "pnl_pct": -10.31, "hold_from": "2026-07-10T09:18:05.738233+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "161,450 (현재 159,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 231,031"}, {"label": "추세(60일선)", "ok": true, "detail": "156,717"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -248 · 기 +157"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:17.437014+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 169, "cost": 1134160, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4983, "target": 9342, "signals": [{"label": "손절선", "ok": true, "detail": "4,983 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,342"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:26:02.663967+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 121300, "qty": 10, "proceeds": 1210635, "entry_price": 127400, "pnl": -63556, "pnl_pct": -4.79, "hold_from": "2026-07-28T09:00:26.316287+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "144,225 (현재 121,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,140"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:30:01.551173+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 118000, "qty": 33, "proceeds": 3886407, "entry_price": 132548, "pnl": -488349, "pnl_pct": -10.98, "hold_from": "2026-07-10T09:26:06.847465+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "116,460 (현재 118,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 161,508"}, {"label": "추세(60일선)", "ok": false, "detail": "118,365"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v314/portfolio.json b/agents/stock/workspace/state/sim/variants/v314/portfolio.json index 816725f..fa2c489 100644 --- a/agents/stock/workspace/state/sim/variants/v314/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v314/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 46151708.99200003, + "cash": 52445910.66250003, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 55, - "entry_price": 134252.72727272726, - "entry_at": "2026-07-09T09:06:04.554592+09:00", - "stop": 117251, - "target": 168257, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 3777878.7367542596, - "last_add_price": 136900 - }, "090850": { "code": "090850", "name": "현대이지웰", @@ -34,12 +13,12 @@ "entry_at": "2026-07-15T09:26:02.659748+09:00", "stop": 5515, "target": 7131, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5434580.417579264, "last_add_price": 6150 @@ -55,57 +34,36 @@ "entry_at": "2026-07-21T12:06:01.283289+09:00", "stop": 303597, "target": 442649, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3459622.8594091423, "last_add_price": 356000 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 69, - "entry_price": 95478.26086956522, - "entry_at": "2026-07-24T09:26:01.449805+09:00", - "stop": 82380, - "target": 121676, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 3310350.3692626413, - "last_add_price": 97000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 295, - "entry_price": 19100, + "qty": 592, + "entry_price": 19024.74662162162, "entry_at": "2026-07-27T09:02:08.308963+09:00", "stop": 17760, - "target": 21780, - "peak": 19300, + "target": 21554, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5643861.637562501, - "last_add_price": 19100 + "last_add_price": 18950 }, "138040": { "code": "138040", @@ -123,17 +81,17 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 118600, + "cur_price": 116500, "tranches": 1, "tranche_value": 5009397.505974029, "last_add_price": 125400 } }, - "realized_pnl": -11835980.106500011, - "closed_trades": 22, + "realized_pnl": -13886779.998500012, + "closed_trades": 25, "wins": 1, "peak_equity": 100961178.33000001, - "max_drawdown": 0.1335075477619971, + "max_drawdown": 0.15103436706789064, "last_exit": { "403870": "2026-07-07", "030000": "2026-07-24", @@ -146,9 +104,11 @@ "105560": "2026-07-20", "055550": "2026-07-27", "095610": "2026-07-27", - "003680": "2026-07-28", - "086790": "2026-07-28" + "003680": "2026-07-29", + "086790": "2026-07-28", + "010950": "2026-07-29", + "078930": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885367+09:00", - "updated_at": "2026-07-28T15:28:01.131121+09:00" + "updated_at": "2026-07-29T15:28:01.572037+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v314/trades.jsonl b/agents/stock/workspace/state/sim/variants/v314/trades.jsonl index 2501fa2..35dd121 100644 --- a/agents/stock/workspace/state/sim/variants/v314/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v314/trades.jsonl @@ -64,3 +64,9 @@ {"ts": "2026-07-27T10:08:02.402443+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 125400, "qty": 39, "cost": 4891334, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 114119, "target": 147962, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "125,400 vs 113,825"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,540 / 113,825"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,540 / 110,108"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+44.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +120 · 기 +294 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+18%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "785,979 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.47% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "69"}]} {"ts": "2026-07-28T11:22:00.854588+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 722, "proceeds": 4777526, "entry_price": 7684, "pnl": -771087, "pnl_pct": -13.72, "hold_from": "2026-07-27T09:02:08.309183+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,466 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,119"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T12:08:06.298558+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124800, "qty": 30, "proceeds": 3736699, "entry_price": 140200, "pnl": -469932, "pnl_pct": -10.98, "hold_from": "2026-07-16T09:16:08.255176+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,989 (현재 124,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 170,622"}, {"label": "추세(20일선)", "ok": true, "detail": "118,485"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 143,407"}]} +{"ts": "2026-07-29T09:02:04.413826+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 320, "cost": 2093114, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5170, "target": 9280, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:08:03.626615+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 129700, "qty": 55, "proceeds": 7119590, "entry_price": 134253, "pnl": -265418, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:06:04.554592+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "117,251 (현재 129,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 168,257"}, {"label": "추세(20일선)", "ok": true, "detail": "108,810"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:17.439400+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 297, "cost": 5628994, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:17.439608+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5170, "target": 9280, "signals": [{"label": "손절선", "ok": true, "detail": "5,170 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,280"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T13:20:03.753605+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5410, "qty": 632, "proceeds": 3412453, "entry_price": 6624, "pnl": -774495, "pnl_pct": -18.33, "hold_from": "2026-07-29T09:02:04.413824+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,497 (현재 5,490)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,877"}, {"label": "추세(20일선)", "ok": true, "detail": "4,777"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:32:04.614349+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 81000, "qty": 69, "proceeds": 5578101, "entry_price": 95478, "pnl": -1010887, "pnl_pct": -15.16, "hold_from": "2026-07-24T09:26:01.449805+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "82,380 (현재 82,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 121,676"}, {"label": "추세(20일선)", "ok": true, "detail": "74,770"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -74 · 기 +296"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v315/portfolio.json b/agents/stock/workspace/state/sim/variants/v315/portfolio.json index 1ec4327..6eab61b 100644 --- a/agents/stock/workspace/state/sim/variants/v315/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v315/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 46498950.39149994, + "cash": 28781778.366999935, "initial": 100000000, "positions": { "090850": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-15T10:22:02.649141+09:00", "stop": 5498, "target": 7147, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 7244669.755439429, "last_add_price": 6030 @@ -34,12 +34,12 @@ "entry_at": "2026-07-16T09:04:05.941183+09:00", "stop": 305186, "target": 451666, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4924531.379887749, "last_add_price": 353000 @@ -60,7 +60,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4655528.873050034, "last_add_price": 91400 @@ -71,27 +71,48 @@ "sources": [ "auto" ], - "qty": 390, - "entry_price": 19170, + "qty": 785, + "entry_price": 19059.299363057326, "entry_at": "2026-07-27T09:06:01.995432+09:00", - "stop": 17760, - "target": 22695, - "peak": 19300, + "stop": 17787, + "target": 22240, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,314 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 7492821.915541661, - "last_add_price": 19170 + "last_add_price": 18950 + }, + "010950": { + "code": "010950", + "name": "S-Oil", + "sources": [ + "auto" + ], + "qty": 71, + "entry_price": 131123.94366197183, + "entry_at": "2026-07-29T09:32:01.435508+09:00", + "stop": 116039, + "target": 168836, + "peak": 133100, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 126900, + "tranches": 2, + "tranche_value": 4728625.29578571, + "last_add_price": 133000 } }, - "realized_pnl": -13000095.376500012, - "closed_trades": 17, + "realized_pnl": -13919698.143500011, + "closed_trades": 18, "wins": 0, "peak_equity": 102026100.45499997, - "max_drawdown": 0.1391806493649452, + "max_drawdown": 0.16687228259311246, "last_exit": { "403870": "2026-07-07", "000660": "2026-06-29", @@ -105,8 +126,9 @@ "055550": "2026-07-20", "024060": "2026-07-27", "086790": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885375+09:00", - "updated_at": "2026-07-28T15:28:01.132800+09:00" + "updated_at": "2026-07-29T15:28:01.573641+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v315/trades.jsonl b/agents/stock/workspace/state/sim/variants/v315/trades.jsonl index a216779..d519129 100644 --- a/agents/stock/workspace/state/sim/variants/v315/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v315/trades.jsonl @@ -48,3 +48,9 @@ {"ts": "2026-07-27T09:06:01.995433+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19170, "qty": 390, "cost": 7477421, "path": "pullback", "reason": "눌림목 지정가 19,314 도달", "stop": 17760, "target": 22695, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "19,060 vs 18,858"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,598 / 18,858"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,598 / 19,360"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+17.2%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +101 · 기 -3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.13% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "153,733 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.13% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,314 (현재 19,060)"}]} {"ts": "2026-07-28T13:54:01.328836+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 121700, "qty": 44, "proceeds": 5344358, "entry_price": 134700, "pnl": -583331, "pnl_pct": -9.65, "hold_from": "2026-07-24T14:38:01.213662+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "121,972 (현재 121,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 166,520"}, {"label": "추세(20일선)", "ok": true, "detail": "118,335"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 138,014"}]} {"ts": "2026-07-28T14:36:04.093206+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128200, "qty": 71, "proceeds": 9084451, "entry_price": 128214, "pnl": -20115, "pnl_pct": -0.01, "hold_from": "2026-07-08T09:08:02.857932+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "112,415 (현재 128,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 167,712"}, {"label": "추세(20일선)", "ok": true, "detail": "108,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +105 · 기 +200"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.417122+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 441, "cost": 2884573, "path": "pullback", "reason": "눌림목 지정가 7,215 도달", "stop": 5295, "target": 9653, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,215 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:17.441917+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 395, "cost": 7486373, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22695, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,695"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,488"}]} +{"ts": "2026-07-29T09:24:17.442126+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 430, "cost": 2885733, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9653, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,653"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:32:01.435510+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 129300, "qty": 36, "cost": 4655498, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 114215, "target": 167012, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "129,300 vs 108,790"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,040 / 108,790"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,040 / 113,185"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+44.7%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+23%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.39% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "442,880 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.39% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:30:01.589743+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 133000, "qty": 35, "cost": 4655698, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 114215, "target": 167012, "signals": [{"label": "손절선", "ok": true, "detail": "114,215 (현재 133,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 167,012"}, {"label": "추세(20일선)", "ok": true, "detail": "108,980"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +245"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 133,071"}]} +{"ts": "2026-07-29T13:14:05.550190+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 871, "proceeds": 4850703, "entry_price": 6624, "pnl": -919603, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:04.417120+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,184"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v316/portfolio.json b/agents/stock/workspace/state/sim/variants/v316/portfolio.json index 13772ed..2d1be3a 100644 --- a/agents/stock/workspace/state/sim/variants/v316/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v316/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 81516864.80949996, + "cash": 72994941.42399995, "initial": 100000000, "positions": { "214450": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.286691+09:00", "stop": 311688, "target": 463381, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 1723041.949065203, "last_add_price": 356000 @@ -34,22 +34,64 @@ "entry_at": "2026-07-22T15:18:03.458533+09:00", "stop": 92100, "target": 125955, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,784 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 2775662.8581035994, "last_add_price": 102600 + }, + "095610": { + "code": "095610", + "name": "테스", + "sources": [ + "auto" + ], + "qty": 16, + "entry_price": 122750.0, + "entry_at": "2026-07-29T09:02:04.419950+09:00", + "stop": 100700, + "target": 188900, + "peak": 177000, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 155,150 도달", + "cur_price": 113300, + "tranches": 2, + "tranche_value": 1001904.7689268058, + "last_add_price": 122600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 51, + "entry_price": 118786.27450980392, + "entry_at": "2026-07-29T09:04:03.700805+09:00", + "stop": 111200, + "target": 146238, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 3085659.757648651, + "last_add_price": 119500 } }, - "realized_pnl": -9804333.565500025, - "closed_trades": 60, + "realized_pnl": -10302953.636000026, + "closed_trades": 62, "wins": 1, "peak_equity": 100030682.08, - "max_drawdown": 0.09901835341459096, + "max_drawdown": 0.10715552901486372, "last_exit": { "017670": "2026-06-23", "178320": "2026-06-23", @@ -67,14 +109,15 @@ "011070": "2026-07-24", "003490": "2026-07-07", "402340": "2026-07-21", - "319660": "2026-07-28", + "319660": "2026-07-29", "032830": "2026-07-24", "004170": "2026-07-22", "034730": "2026-07-28", "084370": "2026-07-09", "028260": "2026-07-16", - "095610": "2026-07-28" + "095610": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885385+09:00", - "updated_at": "2026-07-28T15:28:01.134485+09:00" + "updated_at": "2026-07-29T15:28:01.575303+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v316/trades.jsonl b/agents/stock/workspace/state/sim/variants/v316/trades.jsonl index 9826a04..358019d 100644 --- a/agents/stock/workspace/state/sim/variants/v316/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v316/trades.jsonl @@ -132,3 +132,12 @@ {"ts": "2026-07-28T09:02:05.255754+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 67, "proceeds": 8726450, "entry_price": 134100, "pnl": -259598, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:26.631427+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:50:01.898103+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 122800, "qty": 9, "proceeds": 1103045, "entry_price": 151333, "pnl": -259159, "pnl_pct": -18.85, "hold_from": "2026-07-08T09:48:03.263220+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "116,773 (현재 122,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 255,013"}, {"label": "추세(60일선)", "ok": true, "detail": "99,163"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:08:07.116385+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124100, "qty": 32, "proceeds": 3963456, "entry_price": 124450, "pnl": -19541, "pnl_pct": -0.28, "hold_from": "2026-07-03T09:02:06.628378+09:00", "reason": "시간손절 — 25일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "112,596 (현재 124,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 160,011"}, {"label": "추세(60일선)", "ok": true, "detail": "118,467"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.419951+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 8, "cost": 983347, "path": "pullback", "reason": "눌림목 지정가 155,150 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,150 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:04.420146+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 69, "cost": 8923038, "path": "pullback", "reason": "눌림목 지정가 166,205 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 166,205 (현재 128,800)"}]} +{"ts": "2026-07-29T09:02:04.420353+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 161, "cost": 1053098, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5419, "target": 9902, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:04:03.333409+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 69, "proceeds": 8725253, "entry_price": 129300, "pnl": -197786, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:04.420144+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:04:03.700821+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 118100, "qty": 26, "cost": 3071061, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 138800, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "118,000 vs 109,985"}, {"label": "정배열(5>60)", "ok": true, "detail": "117,060 / 109,985"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,060 / 109,985"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "53,153 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 118,000)"}]} +{"ts": "2026-07-29T09:24:17.444307+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 8, "cost": 980947, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]} +{"ts": "2026-07-29T09:24:17.444564+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 157, "cost": 1053628, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5419, "target": 9902, "signals": [{"label": "손절선", "ok": true, "detail": "5,419 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,902"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:17.789135+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 119500, "qty": 25, "cost": 2987948, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 138800, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 123,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,800"}, {"label": "추세(60일선)", "ok": true, "detail": "109,930"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,642"}]} +{"ts": "2026-07-29T13:06:06.664734+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 318, "proceeds": 1805892, "entry_price": 6624, "pnl": -300834, "pnl_pct": -14.1, "hold_from": "2026-07-29T09:02:04.420351+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,702 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,389"}, {"label": "추세(60일선)", "ok": true, "detail": "4,859"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v317/portfolio.json b/agents/stock/workspace/state/sim/variants/v317/portfolio.json index a815cd0..3361678 100644 --- a/agents/stock/workspace/state/sim/variants/v317/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v317/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 82189233.03200004, + "cash": 67168373.96650003, "initial": 100000000, "positions": { "214450": { @@ -13,43 +13,64 @@ "entry_at": "2026-07-16T09:04:05.946087+09:00", "stop": 315861, "target": 441416, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3295504.677737418, "last_add_price": 353000 }, - "090850": { - "code": "090850", - "name": "현대이지웰", + "030000": { + "code": "030000", + "name": "제일기획", "sources": [ "auto" ], - "qty": 724, - "entry_price": 6240, - "entry_at": "2026-07-28T09:50:02.317649+09:00", - "stop": 5853, - "target": 7400, - "peak": 6300, + "qty": 508, + "entry_price": 18904.82283464567, + "entry_at": "2026-07-29T09:02:04.422940+09:00", + "stop": 17951, + "target": 21767, + "peak": 20750, "trailing_on": false, "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, - "tranches": 1, - "tranche_value": 4522157.472173026, - "last_add_price": 6240 + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 20,014 도달", + "cur_price": 18800, + "tranches": 2, + "tranche_value": 4810700.768136875, + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 81, + "entry_price": 119183.95061728395, + "entry_at": "2026-07-29T09:02:04.423624+09:00", + "stop": 111407, + "target": 142516, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 4929280.307324868, + "last_add_price": 120500 } }, - "realized_pnl": -7040891.729000015, - "closed_trades": 26, - "wins": 1, + "realized_pnl": -7319749.826000016, + "closed_trades": 28, + "wins": 2, "peak_equity": 100973538.872, - "max_drawdown": 0.07715353870953867, + "max_drawdown": 0.08060076923536239, "last_exit": { "403870": "2026-07-02", "003490": "2026-07-07", @@ -64,8 +85,10 @@ "095610": "2026-07-28", "252990": "2026-07-28", "086790": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-28", + "090850": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885394+09:00", - "updated_at": "2026-07-28T15:28:01.136082+09:00" + "updated_at": "2026-07-29T15:28:01.576933+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v317/trades.jsonl b/agents/stock/workspace/state/sim/variants/v317/trades.jsonl index 3a4c0e5..181e1aa 100644 --- a/agents/stock/workspace/state/sim/variants/v317/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v317/trades.jsonl @@ -63,3 +63,11 @@ {"ts": "2026-07-28T10:08:02.883512+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 123, "proceeds": 1371231, "entry_price": 13510, "pnl": -290748, "pnl_pct": -17.32, "hold_from": "2026-07-27T09:04:07.676892+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,220 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,380"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,350"}]} {"ts": "2026-07-28T10:58:00.865309+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 126200, "qty": 28, "proceeds": 3526709, "entry_price": 136500, "pnl": -295864, "pnl_pct": -7.55, "hold_from": "2026-07-20T09:42:01.363518+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "126,311 (현재 126,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 167,067"}, {"label": "추세(20일선)", "ok": true, "detail": "118,550"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +135 · 기 -114"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 139,657"}]} {"ts": "2026-07-28T12:08:06.321565+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130200, "qty": 46, "proceeds": 5977521, "entry_price": 130400, "pnl": -21779, "pnl_pct": -0.15, "hold_from": "2026-07-08T09:28:03.791048+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "118,551 (현재 130,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,948"}, {"label": "추세(20일선)", "ok": true, "detail": "108,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +111 · 기 +211"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.422942+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18860, "qty": 255, "cost": 4810021, "path": "pullback", "reason": "눌림목 지정가 20,014 도달", "stop": 17760, "target": 22160, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "18,860 vs 18,848"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,558 / 18,848"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,558 / 19,356"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+24.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +99 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.08% (환산) vs 평균 0.62% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "90,693 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.08% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,014 (현재 18,860)"}]} +{"ts": "2026-07-29T09:02:04.423394+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 299, "cost": 1955753, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5606, "target": 9342, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:04.423625+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 41, "cost": 4834625, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 138000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.583154+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 40, "cost": 4820723, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 138000, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,000"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:17.799687+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 253, "cost": 4795069, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22160, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,160"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,178"}]} +{"ts": "2026-07-29T09:24:17.800887+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 292, "cost": 1959614, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5606, "target": 9342, "signals": [{"label": "손절선", "ok": true, "detail": "5,606 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,342"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:17.801212+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 724, "proceeds": 4545080, "entry_price": 6240, "pnl": 26642, "pnl_pct": 0.8, "hold_from": "2026-07-28T09:50:02.317649+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,853 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,400"}, {"label": "추세(20일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,354"}]} +{"ts": "2026-07-29T11:32:05.743526+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6120, "qty": 591, "proceeds": 3609867, "entry_price": 6624, "pnl": -305500, "pnl_pct": -7.61, "hold_from": "2026-07-29T09:02:04.423392+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,856 (현재 5,770)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,928"}, {"label": "추세(20일선)", "ok": true, "detail": "4,791"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v318/portfolio.json b/agents/stock/workspace/state/sim/variants/v318/portfolio.json index 9ae04ac..1cbee7e 100644 --- a/agents/stock/workspace/state/sim/variants/v318/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v318/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 65934436.51999998, + "cash": 54533853.96649998, "initial": 100000000, "positions": { "214450": { @@ -13,43 +13,64 @@ "entry_at": "2026-07-21T09:02:07.242017+09:00", "stop": 306986, "target": 422924, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4808309.617830769, "last_add_price": 338000 }, - "090850": { - "code": "090850", - "name": "현대이지웰", + "055550": { + "code": "055550", + "name": "신한지주", "sources": [ "auto" ], - "qty": 2285, - "entry_price": 6148.984682713348, - "entry_at": "2026-07-23T10:24:02.750343+09:00", - "stop": 5826, - "target": 7279, - "peak": 6330, + "qty": 112, + "entry_price": 101527.67857142857, + "entry_at": "2026-07-29T09:02:04.425944+09:00", + "stop": 95178, + "target": 123753, + "peak": 103500, "trailing_on": false, "scaled_out": false, "entry_path": "immediate", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", - "cur_price": 6240, + "cur_price": 98500, "tranches": 2, - "tranche_value": 7028957.638179237, - "last_add_price": 6230 + "tranche_value": 5737708.823909291, + "last_add_price": 102800 + }, + "030000": { + "code": "030000", + "name": "제일기획", + "sources": [ + "auto" + ], + "qty": 739, + "entry_price": 19133.247631935046, + "entry_at": "2026-07-29T09:26:02.699586+09:00", + "stop": 18176, + "target": 22484, + "peak": 19440, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 20,161 도달", + "cur_price": 18800, + "tranches": 2, + "tranche_value": 7081160.229108149, + "last_add_price": 19320 } }, - "realized_pnl": -10694628.365500009, - "closed_trades": 22, - "wins": 0, + "realized_pnl": -10633351.898000011, + "closed_trades": 25, + "wins": 2, "peak_equity": 100025650.85, - "max_drawdown": 0.10316472547601535, + "max_drawdown": 0.10700722656182564, "last_exit": { "005930": "2026-06-23", "005935": "2026-07-01", @@ -66,8 +87,10 @@ "030000": "2026-07-08", "095610": "2026-07-23", "086790": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-29", + "090850": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885402+09:00", - "updated_at": "2026-07-28T15:28:01.137682+09:00" + "updated_at": "2026-07-29T15:28:01.578568+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v318/trades.jsonl b/agents/stock/workspace/state/sim/variants/v318/trades.jsonl index 98902ad..1e56d9d 100644 --- a/agents/stock/workspace/state/sim/variants/v318/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v318/trades.jsonl @@ -56,3 +56,12 @@ {"ts": "2026-07-24T09:02:05.830232+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6230, "qty": 1128, "cost": 7028494, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5755, "target": 7171, "signals": [{"label": "손절선", "ok": true, "detail": "5,755 (현재 6,210)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,171"}, {"label": "추세(10일선)", "ok": true, "detail": "5,574"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +1"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,194"}]} {"ts": "2026-07-28T10:56:02.849502+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 126500, "qty": 86, "proceeds": 10857786, "entry_price": 126537, "pnl": -26046, "pnl_pct": -0.03, "hold_from": "2026-07-07T09:48:10.360377+09:00", "reason": "시간손절 — 21일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "118,178 (현재 126,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 155,796"}, {"label": "추세(10일선)", "ok": true, "detail": "120,210"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +135 · 기 -114"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:54:01.354332+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 129200, "qty": 69, "proceeds": 8897416, "entry_price": 129367, "pnl": -30223, "pnl_pct": -0.13, "hold_from": "2026-07-08T09:22:06.900961+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,097 (현재 129,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,310"}, {"label": "추세(10일선)", "ok": true, "detail": "108,400"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +111 · 기 +211"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.425945+09:00", "side": "BUY", "code": "055550", "name": "신한지주", "price": 100300, "qty": 57, "cost": 5717958, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 93950, "target": 122525, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "100,200 vs 98,980"}, {"label": "정배열(5>10)", "ok": true, "detail": "99,220 / 98,980"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "99,220 / 96,462"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+31.4%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +474 · 기 -479 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+37%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.12% (환산) vs 평균 0.35% (보류 7배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 109,800"}, {"label": "거래량 급증", "ok": false, "detail": "548,713 (환산) vs 평균 1,653,581"}, {"label": "회전율 급증", "ok": false, "detail": "0.12% (환산) vs 평균 0.35%"}, {"label": "RSI", "ok": true, "detail": "54"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 98,980 (현재 100,200)"}]} +{"ts": "2026-07-29T09:02:04.426219+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 128000, "qty": 36, "cost": 4608691, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 118195, "target": 162318, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,700 vs 108,240"}, {"label": "정배열(5>10)", "ok": true, "detail": "114,720 / 108,240"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "114,720 / 113,158"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+25%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.11% (환산) vs 평균 0.32% (보류 7배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": false, "detail": "127,560 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": false, "detail": "0.11% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "66"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 110,866 (현재 127,700)"}]} +{"ts": "2026-07-29T09:24:17.807392+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 36, "proceeds": 4620572, "entry_price": 128000, "pnl": 11881, "pnl_pct": 0.47, "hold_from": "2026-07-29T09:02:04.426218+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,195 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 162,318"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 131,365"}]} +{"ts": "2026-07-29T09:24:17.807779+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 2285, "proceeds": 14344623, "entry_price": 6149, "pnl": 292086, "pnl_pct": 2.29, "hold_from": "2026-07-23T10:24:02.750343+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,826 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,279"}, {"label": "추세(10일선)", "ok": true, "detail": "5,472"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:02.699589+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 373, "cost": 7069410, "path": "pullback", "reason": "눌림목 지정가 20,161 도달", "stop": 17993, "target": 22301, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "18,950 vs 18,943"}, {"label": "정배열(5>10)", "ok": true, "detail": "19,576 / 18,943"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,576 / 19,358"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+24.7%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +99 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.23% (환산) vs 평균 0.62% (보류 7배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "264,780 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.23% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,161 (현재 18,950)"}]} +{"ts": "2026-07-29T09:26:02.700013+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6650, "qty": 447, "cost": 2972996, "path": "pullback", "reason": "눌림목 지정가 7,962 도달", "stop": 5841, "target": 9483, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,610 vs 5,306"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,280 / 5,306"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,280 / 4,875"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+72.0%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "8.03% (환산) vs 평균 5.69% (보류 7배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "498,760 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "8.03% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "64"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,962 (현재 6,610)"}]} +{"ts": "2026-07-29T09:40:06.700563+09:00", "side": "BUY", "code": "055550", "name": "신한지주", "price": 102800, "qty": 55, "cost": 5654848, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 93950, "target": 122525, "signals": [{"label": "손절선", "ok": true, "detail": "93,950 (현재 102,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 122,525"}, {"label": "추세(10일선)", "ok": true, "detail": "99,240"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +474 · 기 -479"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 102,742"}]} +{"ts": "2026-07-29T10:04:01.712760+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19320, "qty": 366, "cost": 7072181, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17993, "target": 22301, "signals": [{"label": "손절선", "ok": true, "detail": "17,993 (현재 19,320)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,301"}, {"label": "추세(10일선)", "ok": true, "detail": "18,980"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +102 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,318"}]} +{"ts": "2026-07-29T11:32:05.745196+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6120, "qty": 447, "proceeds": 2730306, "entry_price": 6650, "pnl": -242690, "pnl_pct": -7.97, "hold_from": "2026-07-29T09:26:02.700010+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,841 (현재 5,770)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,483"}, {"label": "추세(10일선)", "ok": true, "detail": "5,222"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,984"}]} diff --git a/agents/stock/workspace/state/sim/variants/v319/portfolio.json b/agents/stock/workspace/state/sim/variants/v319/portfolio.json index 58fd428..6d9ad5c 100644 --- a/agents/stock/workspace/state/sim/variants/v319/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v319/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 82772548.24600002, + "cash": 85171643.52100003, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 25, - "entry_price": 124024.0, - "entry_at": "2026-07-09T10:06:03.303796+09:00", - "stop": 111000, - "target": 143560, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,722 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 1589829.8696281747, - "last_add_price": 126000 - }, "161890": { "code": "161890", "name": "한국콜마", @@ -34,12 +13,12 @@ "entry_at": "2026-07-22T15:18:03.480571+09:00", "stop": 92100, "target": 113234, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,784 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 2198986.9706949466, "last_add_price": 102600 @@ -60,17 +39,38 @@ "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 25,331 도달", - "cur_price": 25150, + "cur_price": 24650, "tranches": 2, "tranche_value": 2159393.7298746845, "last_add_price": 26750 + }, + "003680": { + "code": "003680", + "name": "한성기업", + "sources": [ + "auto" + ], + "qty": 90, + "entry_price": 6760, + "entry_at": "2026-07-29T09:30:04.057081+09:00", + "stop": 5203, + "target": 9095, + "peak": 6760, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 7,837 도달", + "cur_price": 5960, + "tranches": 1, + "tranche_value": 614669.7691373413, + "last_add_price": 6760 } }, - "realized_pnl": -5506543.881500039, - "closed_trades": 45, + "realized_pnl": -5600022.436500041, + "closed_trades": 48, "wins": 2, "peak_equity": 100023011.56, - "max_drawdown": 0.058500171337972265, + "max_drawdown": 0.062282848135031446, "last_exit": { "017670": "2026-06-23", "178320": "2026-06-23", @@ -79,22 +79,22 @@ "010120": "2026-07-08", "307950": "2026-06-25", "403870": "2026-07-07", - "086790": "2026-06-26", + "086790": "2026-07-29", "005935": "2026-07-01", "093370": "2026-07-08", "009150": "2026-07-24", "011070": "2026-07-24", - "319660": "2026-07-08", + "319660": "2026-07-29", "032830": "2026-07-24", "003490": "2026-07-14", "028260": "2026-07-16", "214450": "2026-07-15", "004170": "2026-07-22", "034730": "2026-07-28", - "095610": "2026-07-16", + "095610": "2026-07-29", "402340": "2026-07-21", "240810": "2026-07-24" }, "created_at": "2026-06-22T09:00:04.885411+09:00", - "updated_at": "2026-07-28T15:28:01.139328+09:00" + "updated_at": "2026-07-29T15:28:01.580200+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v319/trades.jsonl b/agents/stock/workspace/state/sim/variants/v319/trades.jsonl index c00b6e6..a7bc8b7 100644 --- a/agents/stock/workspace/state/sim/variants/v319/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v319/trades.jsonl @@ -98,3 +98,9 @@ {"ts": "2026-07-24T11:04:02.057318+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25350, "qty": 85, "cost": 2155073, "path": "pullback", "reason": "눌림목 지정가 25,331 도달", "stop": 23650, "target": 27900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "25,300 vs 25,157"}, {"label": "정배열(5>60)", "ok": true, "detail": "25,400 / 25,157"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,400 / 25,157"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+16.2%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +48 · 기 -439 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.10% (환산) vs 평균 0.58% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "4,023,674 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "1.10% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,331 (현재 25,300)"}]} {"ts": "2026-07-27T09:02:08.320062+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 26750, "qty": 80, "cost": 2140321, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 23650, "target": 27900, "signals": [{"label": "손절선", "ok": true, "detail": "23,650 (현재 26,650)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 27,900"}, {"label": "추세(60일선)", "ok": true, "detail": "25,179"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +894 · 기 -281"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 25,963"}]} {"ts": "2026-07-28T09:24:03.035666+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 558000, "qty": 21, "proceeds": 11695150, "entry_price": 553000, "pnl": 80408, "pnl_pct": 0.9, "hold_from": "2026-07-20T09:00:36.181133+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "561,800 (현재 559,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,517"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -88 · 기 +62"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.428764+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 6, "cost": 737511, "path": "pullback", "reason": "눌림목 지정가 155,150 도달", "stop": 100700, "target": 156200, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,150 (현재 123,000)"}]} +{"ts": "2026-07-29T09:26:02.704232+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 121300, "qty": 6, "proceeds": 726381, "entry_price": 122900, "pnl": -11130, "pnl_pct": -1.3, "hold_from": "2026-07-29T09:02:04.428762+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "144,225 (현재 121,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,140"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:03.077367+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 123200, "qty": 96, "cost": 11828974, "path": "pullback", "reason": "눌림목 지정가 166,205 도달", "stop": 123199, "target": 123202, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 112,608"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,240 / 112,608"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,240 / 112,608"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+48.2%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.68% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "876,080 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 166,205 (현재 123,000)"}]} +{"ts": "2026-07-29T09:30:03.636388+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 122700, "qty": 96, "proceeds": 11756231, "entry_price": 123200, "pnl": -72744, "pnl_pct": -0.41, "hold_from": "2026-07-29T09:26:03.077353+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,199 (현재 122,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "112,603"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:30:04.057097+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6760, "qty": 90, "cost": 608491, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5203, "target": 9095, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,720 vs 4,876"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,302 / 4,876"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,302 / 4,876"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+74.4%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.90% (환산) vs 평균 5.69% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "614,567 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "9.90% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "65"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,720)"}]} +{"ts": "2026-07-29T10:52:02.717609+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123900, "qty": 25, "proceeds": 3091460, "entry_price": 124024, "pnl": -9605, "pnl_pct": -0.1, "hold_from": "2026-07-09T10:06:03.303796+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 124,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,560"}, {"label": "추세(60일선)", "ok": true, "detail": "118,465"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -6 · 기 -58"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v320/portfolio.json b/agents/stock/workspace/state/sim/variants/v320/portfolio.json index b913fd8..8a393e6 100644 --- a/agents/stock/workspace/state/sim/variants/v320/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v320/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 74688004.84749998, + "cash": 76547963.537, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 39, - "entry_price": 124256.41025641025, - "entry_at": "2026-07-09T09:36:04.834155+09:00", - "stop": 111000, - "target": 150769, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,722 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 2456847.6228259695, - "last_add_price": 126000 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.293368+09:00", "stop": 303260, "target": 442313, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 1749831.3969574722, "last_add_price": 356000 @@ -55,22 +34,43 @@ "entry_at": "2026-07-22T15:18:03.486239+09:00", "stop": 92100, "target": 117510, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,784 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 3444138.305309807, "last_add_price": 102600 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 19, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.566186+09:00", + "stop": 111978, + "target": 146245, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 2431314.1712946068, + "last_add_price": 123400 } }, - "realized_pnl": -10579085.547500027, - "closed_trades": 63, + "realized_pnl": -11220902.068000028, + "closed_trades": 67, "wins": 1, "peak_equity": 100038352.6, - "max_drawdown": 0.1073932894062873, + "max_drawdown": 0.11417210266015511, "last_exit": { "017670": "2026-06-23", "178320": "2026-06-23", @@ -79,7 +79,7 @@ "033640": "2026-06-24", "010120": "2026-07-08", "403870": "2026-07-07", - "086790": "2026-06-26", + "086790": "2026-07-29", "005935": "2026-07-01", "093370": "2026-07-20", "009150": "2026-07-24", @@ -89,14 +89,15 @@ "402340": "2026-07-21", "034730": "2026-07-28", "004170": "2026-07-22", - "319660": "2026-07-28", + "319660": "2026-07-29", "032830": "2026-07-24", "222800": "2026-07-09", "084370": "2026-07-09", "003490": "2026-07-13", "028260": "2026-07-16", - "095610": "2026-07-28" + "095610": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885419+09:00", - "updated_at": "2026-07-28T15:28:01.140980+09:00" + "updated_at": "2026-07-29T15:28:01.581829+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v320/trades.jsonl b/agents/stock/workspace/state/sim/variants/v320/trades.jsonl index 31908d2..33d26d7 100644 --- a/agents/stock/workspace/state/sim/variants/v320/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v320/trades.jsonl @@ -138,3 +138,12 @@ {"ts": "2026-07-28T09:00:27.052922+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 134100, "qty": 67, "cost": 8986048, "path": "pullback", "reason": "눌림목 지정가 167,383 도달", "stop": 134099, "target": 134102, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "133,100 vs 112,777"}, {"label": "정배열(5>60)", "ok": true, "detail": "164,260 / 112,777"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "164,260 / 112,777"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.3%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +254 · 기 -283 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+37%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.24% (환산) vs 평균 2.68% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "359,853 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.24% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 167,383 (현재 133,100)"}]} {"ts": "2026-07-28T09:02:05.262409+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 67, "proceeds": 8726450, "entry_price": 134100, "pnl": -259598, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:27.052914+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,102"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]} {"ts": "2026-07-28T09:50:02.339931+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 122800, "qty": 9, "proceeds": 1103045, "entry_price": 151333, "pnl": -259159, "pnl_pct": -18.85, "hold_from": "2026-07-08T09:48:03.274655+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "109,093 (현재 122,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 235,813"}, {"label": "추세(60일선)", "ok": true, "detail": "99,163"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.431503+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 10, "cost": 1229184, "path": "pullback", "reason": "눌림목 지정가 155,150 도달", "stop": 100700, "target": 167300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,150 (현재 123,000)"}]} +{"ts": "2026-07-29T09:02:04.431667+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 69, "cost": 8923038, "path": "pullback", "reason": "눌림목 지정가 166,205 도달", "stop": 129299, "target": 129302, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 166,205 (현재 128,800)"}]} +{"ts": "2026-07-29T09:04:03.731922+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 69, "proceeds": 8725253, "entry_price": 129300, "pnl": -197786, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:04.431666+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,302"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]} +{"ts": "2026-07-29T09:04:03.732360+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6500, "qty": 163, "cost": 1059659, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5130, "target": 9240, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,500 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,258 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,258 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+69.3%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.91% (환산) vs 평균 5.69% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "180,640 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "2.91% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,500)"}]} +{"ts": "2026-07-29T09:24:17.819032+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 157, "cost": 1053628, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5130, "target": 9240, "signals": [{"label": "손절선", "ok": true, "detail": "5,130 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,240"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,756"}]} +{"ts": "2026-07-29T09:26:03.088163+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 121300, "qty": 10, "proceeds": 1210635, "entry_price": 122900, "pnl": -18550, "pnl_pct": -1.3, "hold_from": "2026-07-29T09:02:04.431502+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "144,225 (현재 121,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,140"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:24:01.566187+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 19, "cost": 2344952, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 111978, "target": 146245, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.727730+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123900, "qty": 39, "proceeds": 4822677, "entry_price": 124256, "pnl": -24049, "pnl_pct": -0.29, "hold_from": "2026-07-09T09:36:04.834155+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 124,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 150,769"}, {"label": "추세(60일선)", "ok": true, "detail": "118,465"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -6 · 기 -58"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:22:01.709993+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5360, "qty": 320, "proceeds": 1711855, "entry_price": 6603, "pnl": -401432, "pnl_pct": -18.83, "hold_from": "2026-07-29T09:04:03.732356+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,476 (현재 5,360)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,856"}, {"label": "추세(60일선)", "ok": true, "detail": "4,854"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v321/portfolio.json b/agents/stock/workspace/state/sim/variants/v321/portfolio.json index e854b6d..1f7ebb4 100644 --- a/agents/stock/workspace/state/sim/variants/v321/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v321/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 67849150.41499996, + "cash": 51792411.834499955, "initial": 100000000, "positions": { "090850": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-14T09:46:02.030211+09:00", "stop": 5498, "target": 6912, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 4673122.761535364, "last_add_price": 6030 @@ -34,12 +34,12 @@ "entry_at": "2026-07-16T09:04:05.955093+09:00", "stop": 305060, "target": 430615, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3126423.8386076577, "last_add_price": 353000 @@ -55,43 +55,64 @@ "entry_at": "2026-07-22T09:04:02.279488+09:00", "stop": 92100, "target": 119133, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5091078.5264822515, "last_add_price": 103100 }, - "095610": { - "code": "095610", - "name": "테스", + "030000": { + "code": "030000", + "name": "제일기획", "sources": [ "auto" ], - "qty": 9, - "entry_price": 155500, - "entry_at": "2026-07-24T09:00:22.602262+09:00", - "stop": 117686, - "target": 231128, - "peak": 155500, + "qty": 647, + "entry_price": 18904.930448222567, + "entry_at": "2026-07-29T09:02:04.434081+09:00", + "stop": 17760, + "target": 21195, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,093 도달", - "cur_price": 121400, + "entry_reason": "눌림목 지정가 20,014 도달", + "cur_price": 18800, + "tranches": 2, + "tranche_value": 6126434.205091702, + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 34, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.567880+09:00", + "stop": 113016, + "target": 144168, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 1493180.7038367477, - "last_add_price": 155500 + "tranche_value": 4270833.924939413, + "last_add_price": 123400 } }, - "realized_pnl": -5402617.952000006, - "closed_trades": 18, + "realized_pnl": -6429512.394000007, + "closed_trades": 20, "wins": 1, "peak_equity": 101868947.08549999, - "max_drawdown": 0.07247447143341405, + "max_drawdown": 0.08605875982640725, "last_exit": { "403870": "2026-06-26", "093370": "2026-07-07", @@ -101,11 +122,12 @@ "319660": "2026-07-22", "003490": "2026-07-09", "030000": "2026-07-15", - "095610": "2026-07-20", + "095610": "2026-07-29", "105560": "2026-07-20", "252990": "2026-07-28", - "010950": "2026-07-28" + "010950": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-22T09:00:04.885428+09:00", - "updated_at": "2026-07-28T15:28:01.142591+09:00" + "updated_at": "2026-07-29T15:28:01.583434+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v321/trades.jsonl b/agents/stock/workspace/state/sim/variants/v321/trades.jsonl index ddf46f2..dc61f4e 100644 --- a/agents/stock/workspace/state/sim/variants/v321/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v321/trades.jsonl @@ -52,3 +52,11 @@ {"ts": "2026-07-24T09:28:06.183531+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 14510, "qty": 117, "cost": 1697925, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 11077, "target": 19936, "signals": [{"label": "손절선", "ok": true, "detail": "11,077 (현재 15,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,936"}, {"label": "추세(20일선)", "ok": true, "detail": "12,845"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -857 · 기 +1,172"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,791"}]} {"ts": "2026-07-28T10:08:02.890205+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 238, "proceeds": 2653276, "entry_price": 14266, "pnl": -742533, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.550301+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T13:26:05.284667+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 129500, "qty": 43, "proceeds": 5557641, "entry_price": 129500, "pnl": -11694, "pnl_pct": 0.0, "hold_from": "2026-07-08T09:24:04.654041+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "113,701 (현재 129,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 161,098"}, {"label": "추세(20일선)", "ok": true, "detail": "108,800"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +111 · 기 +211"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:04.434082+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18860, "qty": 324, "cost": 6111557, "path": "pullback", "reason": "눌림목 지정가 20,014 도달", "stop": 17760, "target": 21060, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "18,860 vs 18,848"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,558 / 18,848"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,558 / 19,356"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+24.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +99 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.08% (환산) vs 평균 0.62% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "90,693 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.08% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,014 (현재 18,860)"}]} +{"ts": "2026-07-29T09:02:04.434310+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 286, "cost": 1870721, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:17.823180+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 12, "cost": 1471421, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 231128, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 231,128"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]} +{"ts": "2026-07-29T09:24:17.823350+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 323, "cost": 6121768, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21060, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,060"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,178"}]} +{"ts": "2026-07-29T09:24:17.823714+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 278, "cost": 1865660, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T10:18:05.870639+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 21, "proceeds": 2439633, "entry_price": 136700, "pnl": -431497, "pnl_pct": -14.85, "hold_from": "2026-07-24T09:00:22.602262+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 208,700"}, {"label": "추세(20일선)", "ok": false, "detail": "134,205"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:24:01.567881+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 34, "cost": 4196229, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T13:14:05.559930+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 564, "proceeds": 3140983, "entry_price": 6624, "pnl": -595397, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:04.434308+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v4/portfolio.json b/agents/stock/workspace/state/sim/variants/v4/portfolio.json index 4d67974..f22f5f2 100644 --- a/agents/stock/workspace/state/sim/variants/v4/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v4/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 19079390.769499943, + "cash": 7656620.66299994, "initial": 100000000, "positions": { "010950": { @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 5165873.995968748, "last_add_price": 130800 @@ -34,12 +34,12 @@ "entry_at": "2026-07-14T09:40:04.983975+09:00", "stop": 5498, "target": 6912, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5300993.7131562475, "last_add_price": 6030 @@ -55,12 +55,12 @@ "entry_at": "2026-07-16T09:04:02.201572+09:00", "stop": 305399, "target": 430953, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5436208.582218748, "last_add_price": 353000 @@ -76,12 +76,12 @@ "entry_at": "2026-07-22T09:04:01.770270+09:00", "stop": 92100, "target": 119135, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5171696.920343747, "last_add_price": 103100 @@ -92,48 +92,69 @@ "sources": [ "auto" ], - "qty": 256, - "entry_price": 19170, + "qty": 515, + "entry_price": 19059.35922330097, "entry_at": "2026-07-27T09:06:01.028059+09:00", - "stop": 17760, - "target": 21990, - "peak": 19300, + "stop": 17787, + "target": 21604, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 4918301.825124997, - "last_add_price": 19170 + "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 1308, - "entry_price": 6936.3302752293575, - "entry_at": "2026-07-28T09:00:13.884588+09:00", - "stop": 5741, - "target": 9327, - "peak": 7780, + "qty": 77, + "entry_price": 119183.11688311688, + "entry_at": "2026-07-29T09:02:01.736117+09:00", + "stop": 111200, + "target": 135149, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 4540974.262172914, - "last_add_price": 7100 + "tranche_value": 4687948.173093746, + "last_add_price": 120500 + }, + "078930": { + "code": "078930", + "name": "GS", + "sources": [ + "auto" + ], + "qty": 54, + "entry_price": 88200, + "entry_at": "2026-07-29T10:10:03.435326+09:00", + "stop": 77406, + "target": 109787, + "peak": 88900, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 83400, + "tranches": 1, + "tranche_value": 4788742.374812496, + "last_add_price": 88200 } }, - "realized_pnl": -25466252.324500028, - "closed_trades": 28, + "realized_pnl": -27112326.14650003, + "closed_trades": 29, "wins": 1, "peak_equity": 101588073.90899995, - "max_drawdown": 0.2729909336044918, + "max_drawdown": 0.2897708570827829, "last_exit": { "030000": "2026-07-15", "003490": "2026-07-13", @@ -151,8 +172,9 @@ "024060": "2026-07-27", "095610": "2026-07-28", "252990": "2026-07-28", - "086790": "2026-07-28" + "086790": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943227+09:00", - "updated_at": "2026-07-28T15:28:00.983135+09:00" + "updated_at": "2026-07-29T15:28:01.425891+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v4/trades.jsonl b/agents/stock/workspace/state/sim/variants/v4/trades.jsonl index d535ee3..bd3fc5e 100644 --- a/agents/stock/workspace/state/sim/variants/v4/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v4/trades.jsonl @@ -80,3 +80,8 @@ {"ts": "2026-07-28T09:10:01.692586+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 639, "cost": 4537581, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 9085, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,085"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.720586+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 531, "proceeds": 5919704, "entry_price": 14266, "pnl": -1656642, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.378436+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:06:00.824643+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 125900, "qty": 38, "proceeds": 4774871, "entry_price": 139800, "pnl": -538326, "pnl_pct": -9.94, "hold_from": "2026-07-16T09:18:06.336077+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "125,972 (현재 125,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 167,456"}, {"label": "추세(20일선)", "ok": true, "detail": "118,540"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +100 · 기 -116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,971"}]} +{"ts": "2026-07-29T09:02:01.736130+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 39, "cost": 4598790, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.415786+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 38, "cost": 4579687, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:06.128891+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 259, "cost": 4908786, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21990, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,990"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,488"}]} +{"ts": "2026-07-29T10:10:03.435329+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 88200, "qty": 54, "cost": 4763514, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 77406, "target": 109787, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "88,200 vs 75,070"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,000 / 75,070"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,000 / 75,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+58.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -65 · 기 +296 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.64% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "590,411 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.64% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T13:06:06.429450+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 1308, "proceeds": 7428007, "entry_price": 6936, "pnl": -1646074, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:13.884588+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,327"}, {"label": "추세(20일선)", "ok": true, "detail": "4,787"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v40/portfolio.json b/agents/stock/workspace/state/sim/variants/v40/portfolio.json index 8d44003..f8aa110 100644 --- a/agents/stock/workspace/state/sim/variants/v40/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v40/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 22373440.553999968, + "cash": 7066628.436499968, "initial": 100000000, "positions": { "010950": { @@ -18,7 +18,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, + "cur_price": 126900, "tranches": 2, "tranche_value": 5048122.616093748, "last_add_price": 130800 @@ -34,12 +34,12 @@ "entry_at": "2026-07-14T09:40:04.988375+09:00", "stop": 5498, "target": 7383, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5189689.564218748, "last_add_price": 6030 @@ -55,12 +55,12 @@ "entry_at": "2026-07-16T09:04:02.211196+09:00", "stop": 305399, "target": 472804, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5321475.422124998, "last_add_price": 353000 @@ -76,12 +76,12 @@ "entry_at": "2026-07-22T09:04:01.775234+09:00", "stop": 92100, "target": 128221, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5058668.1596249975, "last_add_price": 103100 @@ -92,20 +92,20 @@ "sources": [ "auto" ], - "qty": 250, - "entry_price": 19170, + "qty": 503, + "entry_price": 19059.34393638171, "entry_at": "2026-07-27T09:06:01.036225+09:00", - "stop": 17760, - "target": 23400, - "peak": 19300, + "stop": 17787, + "target": 22876, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 4811346.680156248, - "last_add_price": 19170 + "last_add_price": 18950 }, "138040": { "code": "138040", @@ -113,27 +113,48 @@ "sources": [ "auto" ], - "qty": 39, - "entry_price": 117600, + "qty": 77, + "entry_price": 118932.46753246753, "entry_at": "2026-07-28T12:56:02.834691+09:00", "stop": 111200, - "target": 136800, - "peak": 118900, + "target": 142130, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 117,994 도달", - "cur_price": 118600, - "tranches": 1, + "cur_price": 116500, + "tranches": 2, "tranche_value": 4617848.732749999, - "last_add_price": 117600 + "last_add_price": 120300 + }, + "078930": { + "code": "078930", + "name": "GS", + "sources": [ + "auto" + ], + "qty": 53, + "entry_price": 88200, + "entry_at": "2026-07-29T10:10:03.440312+09:00", + "stop": 77406, + "target": 120581, + "peak": 88900, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 83400, + "tranches": 1, + "tranche_value": 4696174.398124998, + "last_add_price": 88200 } }, - "realized_pnl": -27427460.71050002, - "closed_trades": 30, + "realized_pnl": -28691816.775500022, + "closed_trades": 31, "wins": 1, "peak_equity": 102181273.23399998, - "max_drawdown": 0.2851062879524425, + "max_drawdown": 0.30887650739312006, "last_exit": { "030000": "2026-07-16", "003490": "2026-07-13", @@ -153,8 +174,9 @@ "024060": "2026-07-27", "252990": "2026-07-28", "086790": "2026-07-28", - "095610": "2026-07-28" + "095610": "2026-07-28", + "003680": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943590+09:00", - "updated_at": "2026-07-28T15:28:00.985740+09:00" + "updated_at": "2026-07-29T15:28:01.428331+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v40/trades.jsonl b/agents/stock/workspace/state/sim/variants/v40/trades.jsonl index 54ddf74..26bbbb8 100644 --- a/agents/stock/workspace/state/sim/variants/v40/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v40/trades.jsonl @@ -84,3 +84,9 @@ {"ts": "2026-07-28T11:06:00.831827+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 125900, "qty": 37, "proceeds": 4649216, "entry_price": 139800, "pnl": -524160, "pnl_pct": -9.94, "hold_from": "2026-07-16T09:18:06.346405+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "125,972 (현재 125,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 181,284"}, {"label": "추세(20일선)", "ok": true, "detail": "118,540"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +100 · 기 -116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,971"}]} {"ts": "2026-07-28T12:56:02.834693+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117600, "qty": 39, "cost": 4587088, "path": "pullback", "reason": "눌림목 지정가 117,994 도달", "stop": 111200, "target": 136800, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,500 vs 113,430"}, {"label": "정배열(5>20)", "ok": true, "detail": "116,960 / 113,430"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "116,960 / 109,977"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +84 · 기 +324 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.17% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "281,042 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.17% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 117,994 (현재 117,500)"}]} {"ts": "2026-07-28T14:32:05.841451+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 119300, "qty": 46, "proceeds": 5477099, "entry_price": 157065, "pnl": -1748985, "pnl_pct": -24.04, "hold_from": "2026-06-23T15:12:01.415849+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,594 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 269,479"}, {"label": "추세(20일선)", "ok": false, "detail": "134,380"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +295 · 기 -583"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:00:08.523936+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6430, "qty": 604, "cost": 3884303, "path": "pullback", "reason": "눌림목 지정가 7,846 도달", "stop": 5202, "target": 10115, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,520 vs 4,828"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,262 / 4,828"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,262 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "1,013 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,846 (현재 6,520)"}]} +{"ts": "2026-07-29T09:12:01.335463+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120300, "qty": 38, "cost": 4572086, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 136800, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 136,800"}, {"label": "추세(20일선)", "ok": true, "detail": "113,565"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,192"}]} +{"ts": "2026-07-29T09:24:07.818363+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 253, "cost": 4795069, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 23400, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,400"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,488"}]} +{"ts": "2026-07-29T09:24:07.819505+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 579, "cost": 3885673, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5202, "target": 10115, "signals": [{"label": "손절선", "ok": true, "detail": "5,202 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,115"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,686"}]} +{"ts": "2026-07-29T10:10:03.440315+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 88200, "qty": 53, "cost": 4675301, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 77406, "target": 120581, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "88,200 vs 75,070"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,000 / 75,070"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,000 / 75,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+58.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -65 · 기 +296 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.64% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "590,411 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.64% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T13:16:01.439954+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5510, "qty": 1183, "proceeds": 6505619, "entry_price": 6567, "pnl": -1264356, "pnl_pct": -16.1, "hold_from": "2026-07-29T09:00:08.523926+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,543 (현재 5,510)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,640"}, {"label": "추세(20일선)", "ok": true, "detail": "4,778"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v41/portfolio.json b/agents/stock/workspace/state/sim/variants/v41/portfolio.json index 96baad1..1bd48fa 100644 --- a/agents/stock/workspace/state/sim/variants/v41/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v41/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 26795295.644499954, + "cash": 36778932.17399995, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 79, - "entry_price": 134570.88607594935, - "entry_at": "2026-07-09T09:10:01.779032+09:00", - "stop": 119115, - "target": 157755, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5363919.985249998, - "last_add_price": 136900 - }, "090850": { "code": "090850", "name": "현대이지웰", @@ -34,12 +13,12 @@ "entry_at": "2026-07-15T09:26:01.630438+09:00", "stop": 5564, "target": 6788, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5574203.138812498, "last_add_price": 6150 @@ -55,12 +34,12 @@ "entry_at": "2026-07-21T12:06:01.128627+09:00", "stop": 307915, "target": 413257, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5255953.704843747, "last_add_price": 356000 @@ -76,45 +55,45 @@ "entry_at": "2026-07-22T09:04:01.778302+09:00", "stop": 92100, "target": 114631, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5321153.224531247, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 108, - "entry_price": 95472.22222222222, - "entry_at": "2026-07-24T09:26:00.964078+09:00", - "stop": 83564, - "target": 113334, - "peak": 99800, + "qty": 81, + "entry_price": 119183.95061728395, + "entry_at": "2026-07-29T09:02:02.146702+09:00", + "stop": 111200, + "target": 131160, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 5214752.794531247, - "last_add_price": 97000 + "tranche_value": 4936882.865843747, + "last_add_price": 120500 } }, - "realized_pnl": -20442991.285500024, - "closed_trades": 29, - "wins": 3, + "realized_pnl": -21749247.986000028, + "closed_trades": 33, + "wins": 5, "peak_equity": 101897668.8475, - "max_drawdown": 0.22986662470222652, + "max_drawdown": 0.23494027826415184, "last_exit": { - "030000": "2026-07-15", + "030000": "2026-07-29", "005930": "2026-06-23", "035420": "2026-06-25", "403870": "2026-07-07", @@ -129,8 +108,11 @@ "105560": "2026-07-20", "055550": "2026-07-20", "252990": "2026-07-28", - "086790": "2026-07-28" + "086790": "2026-07-28", + "010950": "2026-07-29", + "078930": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943599+09:00", - "updated_at": "2026-07-28T15:28:00.988293+09:00" + "updated_at": "2026-07-29T15:28:01.430740+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v41/trades.jsonl b/agents/stock/workspace/state/sim/variants/v41/trades.jsonl index 91b6fad..157dbd6 100644 --- a/agents/stock/workspace/state/sim/variants/v41/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v41/trades.jsonl @@ -81,3 +81,11 @@ {"ts": "2026-07-28T10:08:02.729188+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 551, "proceeds": 6142668, "entry_price": 14266, "pnl": -1719121, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.384726+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:06:00.834791+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 125900, "qty": 39, "proceeds": 4900525, "entry_price": 139800, "pnl": -552493, "pnl_pct": -9.94, "hold_from": "2026-07-16T09:18:06.350310+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "125,972 (현재 125,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 160,542"}, {"label": "추세(20일선)", "ok": true, "detail": "118,540"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +100 · 기 -116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,971"}]} {"ts": "2026-07-28T11:34:01.931015+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 120300, "qty": 21, "proceeds": 2521374, "entry_price": 158100, "pnl": -799224, "pnl_pct": -23.91, "hold_from": "2026-07-22T15:04:00.950319+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,314 (현재 120,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 214,778"}, {"label": "추세(20일선)", "ok": false, "detail": "134,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +285 · 기 -563"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 168,711"}]} +{"ts": "2026-07-29T09:02:02.143555+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18860, "qty": 264, "cost": 4979787, "path": "pullback", "reason": "눌림목 지정가 20,014 도달", "stop": 17760, "target": 20510, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "18,860 vs 18,848"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,558 / 18,848"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,558 / 19,356"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+24.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +99 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.08% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "90,693 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.08% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,014 (현재 18,860)"}]} +{"ts": "2026-07-29T09:02:02.145803+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 635, "cost": 4153523, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:02.146706+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 41, "cost": 4834625, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.423216+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 40, "cost": 4820723, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:07.867056+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 79, "proceeds": 10139589, "entry_price": 134571, "pnl": -493105, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.779032+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,115 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,755"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:08.203504+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 108, "proceeds": 9453130, "entry_price": 95472, "pnl": -859416, "pnl_pct": -8.14, "hold_from": "2026-07-24T09:26:00.964078+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,564 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,334"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.416304+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 264, "proceeds": 4990410, "entry_price": 18860, "pnl": 10623, "pnl_pct": 0.42, "hold_from": "2026-07-29T09:02:02.143539+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "18,852"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.827421+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 635, "proceeds": 4189165, "entry_price": 6540, "pnl": 35642, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.145798+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v47/portfolio.json b/agents/stock/workspace/state/sim/variants/v47/portfolio.json index 39eb92e..7f76df0 100644 --- a/agents/stock/workspace/state/sim/variants/v47/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v47/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 21158117.200000025, + "cash": 29292912.222500023, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 77, - "entry_price": 134570.12987012987, - "entry_at": "2026-07-09T09:10:01.782992+09:00", - "stop": 122978, - "target": 157755, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5241905.40054189, - "last_add_price": 136900 - }, "090850": { "code": "090850", "name": "현대이지웰", @@ -34,12 +13,12 @@ "entry_at": "2026-07-15T09:26:01.635270+09:00", "stop": 5686, "target": 6788, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5641745.372468753, "last_add_price": 6150 @@ -55,12 +34,12 @@ "entry_at": "2026-07-21T12:06:01.131404+09:00", "stop": 318434, "target": 413243, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4924744.715894901, "last_add_price": 356000 @@ -76,85 +55,64 @@ "entry_at": "2026-07-22T09:04:01.781295+09:00", "stop": 92100, "target": 119142, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5528357.121031252, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 97, - "entry_price": 95484.53608247422, - "entry_at": "2026-07-24T09:26:00.967371+09:00", - "stop": 86554, - "target": 113346, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 4688819.136059741, - "last_add_price": 97000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 285, - "entry_price": 19100, + "qty": 572, + "entry_price": 19024.73776223776, "entry_at": "2026-07-27T09:02:05.733501+09:00", - "stop": 18023, - "target": 21254, - "peak": 19300, + "stop": 18071, + "target": 20933, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5453618.912812501, - "last_add_price": 19100 + "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 966, - "entry_price": 6936.356107660456, - "entry_at": "2026-07-28T09:00:14.245132+09:00", - "stop": 6040, - "target": 8729, - "peak": 7780, + "qty": 87, + "entry_price": 119185.05747126437, + "entry_at": "2026-07-29T09:02:02.153762+09:00", + "stop": 111408, + "target": 134739, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 3351724.5744756954, - "last_add_price": 7100 + "tranche_value": 5227428.575000001, + "last_add_price": 120500 } }, - "realized_pnl": -15415440.260500014, - "closed_trades": 36, + "realized_pnl": -17798892.738500018, + "closed_trades": 39, "wins": 3, "peak_equity": 101509906.21500002, - "max_drawdown": 0.18598213434473912, + "max_drawdown": 0.1956453782001949, "last_exit": { "030000": "2026-07-24", "005930": "2026-06-23", @@ -171,8 +129,11 @@ "319660": "2026-07-23", "105560": "2026-07-20", "086790": "2026-07-21", - "252990": "2026-07-28" + "252990": "2026-07-28", + "078930": "2026-07-29", + "010950": "2026-07-29", + "003680": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943663+09:00", - "updated_at": "2026-07-28T15:28:00.990689+09:00" + "updated_at": "2026-07-29T15:28:01.433085+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v47/trades.jsonl b/agents/stock/workspace/state/sim/variants/v47/trades.jsonl index 36e749f..533f61c 100644 --- a/agents/stock/workspace/state/sim/variants/v47/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v47/trades.jsonl @@ -101,3 +101,9 @@ {"ts": "2026-07-28T09:00:14.245139+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 494, "cost": 3349822, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5916, "target": 8509, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:02:04.711098+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 383, "proceeds": 4556458, "entry_price": 14266, "pnl": -908092, "pnl_pct": -16.44, "hold_from": "2026-07-22T14:18:05.387610+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,983 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,830"}, {"label": "추세(20일선)", "ok": false, "detail": "12,673"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T09:10:01.704469+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 472, "cost": 3351703, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} +{"ts": "2026-07-29T09:02:02.153765+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:04:02.439002+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 85500, "qty": 97, "proceeds": 8277328, "entry_price": 95485, "pnl": -986062, "pnl_pct": -10.46, "hold_from": "2026-07-24T09:26:00.967371+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "86,554 (현재 85,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,346"}, {"label": "추세(20일선)", "ok": true, "detail": "74,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:16:04.426285+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:08.213720+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 287, "cost": 5439466, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 21254, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,254"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:08.214588+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134570, "pnl": -480564, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.782992+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,978 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,755"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T11:18:04.388271+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 966, "proceeds": 5784698, "entry_price": 6936, "pnl": -916827, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:14.245132+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v49/portfolio.json b/agents/stock/workspace/state/sim/variants/v49/portfolio.json index 95b8ebb..9ced743 100644 --- a/agents/stock/workspace/state/sim/variants/v49/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v49/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 42013982.700499974, + "cash": 50297396.342999965, "initial": 100000000, "positions": { "090850": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-15T09:26:01.639680+09:00", "stop": 5686, "target": 6604, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5884930.790312499, "last_add_price": 6150 @@ -34,12 +34,12 @@ "entry_at": "2026-07-21T12:06:01.134375+09:00", "stop": 318647, "target": 397654, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5130167.1298944345, "last_add_price": 356000 @@ -60,82 +60,40 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 5068034.013537591, "last_add_price": 91400 }, - "095610": { - "code": "095610", - "name": "테스", + "010950": { + "code": "010950", + "name": "S-Oil", "sources": [ "auto" ], - "qty": 15, - "entry_price": 139000, - "entry_at": "2026-07-27T09:02:06.154479+09:00", - "stop": 108775, - "target": 184337, - "peak": 146400, + "qty": 39, + "entry_price": 131400, + "entry_at": "2026-07-29T09:52:02.330572+09:00", + "stop": 120086, + "target": 148371, + "peak": 133100, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 126900, "tranches": 1, - "tranche_value": 2134547.8966559134, - "last_add_price": 139000 - }, - "030000": { - "code": "030000", - "name": "제일기획", - "sources": [ - "auto" - ], - "qty": 303, - "entry_price": 19100, - "entry_at": "2026-07-27T09:02:06.156567+09:00", - "stop": 18023, - "target": 20715, - "peak": 19300, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5801842.879062498, - "last_add_price": 19100 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 1013, - "entry_price": 6936.367226061205, - "entry_at": "2026-07-28T09:00:14.349558+09:00", - "stop": 6040, - "target": 8281, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, - "tranches": 2, - "tranche_value": 3515877.8983157976, - "last_add_price": 7100 + "tranche_value": 5157062.809471096, + "last_add_price": 131400 } }, - "realized_pnl": -11445477.265500017, - "closed_trades": 31, + "realized_pnl": -12937769.759000018, + "closed_trades": 35, "wins": 4, "peak_equity": 100822831.297, - "max_drawdown": 0.1313752889708241, + "max_drawdown": 0.14325643947106462, "last_exit": { - "030000": "2026-07-24", + "030000": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-02", "240810": "2026-07-24", @@ -145,14 +103,14 @@ "055550": "2026-07-20", "034730": "2026-07-08", "319660": "2026-07-27", - "095610": "2026-07-16", + "095610": "2026-07-29", "105560": "2026-07-20", "086790": "2026-07-21", "010950": "2026-07-27", "024060": "2026-07-27", - "003680": "2026-07-27", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943683+09:00", - "updated_at": "2026-07-28T15:28:00.993248+09:00" + "updated_at": "2026-07-29T15:28:01.435349+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v49/trades.jsonl b/agents/stock/workspace/state/sim/variants/v49/trades.jsonl index 16ccb03..ccad7d4 100644 --- a/agents/stock/workspace/state/sim/variants/v49/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v49/trades.jsonl @@ -81,3 +81,10 @@ {"ts": "2026-07-28T09:00:14.349565+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 518, "cost": 3512567, "path": "pullback", "reason": "눌림목 지정가 7,596 도달", "stop": 5916, "target": 8077, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,596 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.707261+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 495, "cost": 3515027, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8077, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,077"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T09:40:00.828270+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 119100, "qty": 44, "proceeds": 5230181, "entry_price": 127700, "pnl": -389462, "pnl_pct": -6.73, "hold_from": "2026-07-27T09:18:01.952162+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,030 (현재 119,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 139,205"}, {"label": "추세(20일선)", "ok": true, "detail": "113,530"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,300"}]} +{"ts": "2026-07-29T09:24:08.621995+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 17, "cost": 2084513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 184337, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 184,337"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]} +{"ts": "2026-07-29T09:26:01.844598+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 303, "proceeds": 5727629, "entry_price": 19100, "pnl": -60539, "pnl_pct": -0.84, "hold_from": "2026-07-27T09:02:06.156567+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "18,852"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.845290+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 1013, "proceeds": 6682873, "entry_price": 6936, "pnl": -344721, "pnl_pct": -4.71, "hold_from": "2026-07-28T09:00:14.349558+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:52:02.330575+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131400, "qty": 39, "cost": 5125369, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120086, "target": 148371, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "131,100 vs 108,880"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,400 / 108,880"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,400 / 113,215"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.50% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "567,993 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.50% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]} +{"ts": "2026-07-29T10:24:01.399657+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 45, "cost": 5553833, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 135082, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T12:50:05.433573+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 32, "proceeds": 3449261, "entry_price": 130288, "pnl": -720565, "pnl_pct": -17.11, "hold_from": "2026-07-27T09:02:06.154479+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,878"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T14:20:01.471524+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 45, "proceeds": 5187365, "entry_price": 123400, "pnl": -366468, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.399654+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,082"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v51/portfolio.json b/agents/stock/workspace/state/sim/variants/v51/portfolio.json index 79b7b4a..8c94de9 100644 --- a/agents/stock/workspace/state/sim/variants/v51/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v51/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 28811417.076999966, + "cash": 40106283.784499966, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 79, - "entry_price": 134570.88607594935, - "entry_at": "2026-07-09T09:10:01.789917+09:00", - "stop": 122979, - "target": 169348, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5376905.59304502, - "last_add_price": 136900 - }, "090850": { "code": "090850", "name": "현대이지웰", @@ -34,12 +13,12 @@ "entry_at": "2026-07-15T09:26:01.643666+09:00", "stop": 5686, "target": 7155, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5789608.164124999, "last_add_price": 6150 @@ -55,12 +34,12 @@ "entry_at": "2026-07-21T12:06:01.137140+09:00", "stop": 318434, "target": 444846, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 4981626.338033037, "last_add_price": 356000 @@ -81,80 +60,38 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4903174.469139825, "last_add_price": 91400 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 14, - "entry_price": 139000, - "entry_at": "2026-07-27T09:02:06.169387+09:00", - "stop": 108775, - "target": 229675, - "peak": 146400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 2049267.92655368, - "last_add_price": 139000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 291, - "entry_price": 19100, + "qty": 584, + "entry_price": 19024.74315068493, "entry_at": "2026-07-27T09:02:06.170400+09:00", - "stop": 18023, - "target": 22330, - "peak": 19300, + "stop": 18071, + "target": 21887, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5570046.781437498, - "last_add_price": 19100 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 965, - "entry_price": 6936.186528497409, - "entry_at": "2026-07-28T09:00:14.457978+09:00", - "stop": 6040, - "target": 9626, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, + "cur_price": 18800, "tranches": 2, - "tranche_value": 3351469.653342013, - "last_add_price": 7100 + "tranche_value": 5570046.781437498, + "last_add_price": 18950 } }, - "realized_pnl": -15620118.903500015, - "closed_trades": 29, + "realized_pnl": -18045479.921500016, + "closed_trades": 33, "wins": 1, "peak_equity": 100822831.297, - "max_drawdown": 0.1753336421184796, + "max_drawdown": 0.19288516115177476, "last_exit": { "030000": "2026-07-24", "005930": "2026-06-23", @@ -168,11 +105,12 @@ "319660": "2026-07-23", "105560": "2026-07-20", "086790": "2026-07-21", - "095610": "2026-07-24", + "095610": "2026-07-29", "024060": "2026-07-27", - "003680": "2026-07-27", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-29", + "010950": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943703+09:00", - "updated_at": "2026-07-28T15:28:00.995496+09:00" + "updated_at": "2026-07-29T15:28:01.437517+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v51/trades.jsonl b/agents/stock/workspace/state/sim/variants/v51/trades.jsonl index be95af5..6714f1c 100644 --- a/agents/stock/workspace/state/sim/variants/v51/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v51/trades.jsonl @@ -80,3 +80,10 @@ {"ts": "2026-07-28T09:00:14.457983+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 494, "cost": 3349822, "path": "pullback", "reason": "눌림목 지정가 7,596 도달", "stop": 5916, "target": 9373, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,596 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.709892+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 471, "cost": 3344602, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 9373, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,373"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T09:40:00.832616+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 119100, "qty": 43, "proceeds": 5111313, "entry_price": 127700, "pnl": -380610, "pnl_pct": -6.73, "hold_from": "2026-07-27T09:18:01.954956+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,030 (현재 119,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 150,710"}, {"label": "추세(20일선)", "ok": true, "detail": "113,530"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,300"}]} +{"ts": "2026-07-29T09:24:08.635439+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 229675, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,675"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]} +{"ts": "2026-07-29T09:24:08.636026+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 293, "cost": 5553183, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 22330, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,330"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:08.636737+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 79, "proceeds": 10139589, "entry_price": 134571, "pnl": -493105, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.789917+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,979 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 169,348"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:24:01.403171+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 146764, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T11:18:04.393703+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 965, "proceeds": 5778710, "entry_price": 6936, "pnl": -915715, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:14.457978+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,626"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:50:05.436282+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 30, "proceeds": 3233682, "entry_price": 130253, "pnl": -674504, "pnl_pct": -17.08, "hold_from": "2026-07-27T09:02:06.169387+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 213,434"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T14:20:01.474206+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 42, "proceeds": 4841541, "entry_price": 123400, "pnl": -342037, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.403168+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,764"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v57/portfolio.json b/agents/stock/workspace/state/sim/variants/v57/portfolio.json index 1fd746f..54a3e9b 100644 --- a/agents/stock/workspace/state/sim/variants/v57/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v57/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 37097882.514999986, + "cash": 42888415.017999984, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 61, - "entry_price": 134562.29508196723, - "entry_at": "2026-07-09T09:10:01.793062+09:00", - "stop": 119106, - "target": 165475, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4170396.505155157, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 69, - "entry_price": 132575.36231884058, - "entry_at": "2026-07-10T09:26:06.407594+09:00", - "stop": 119704, - "target": 158317, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4631043.743609013, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:06:07.831563+09:00", "stop": 302899, "target": 426953, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3853827.2535399394, "last_add_price": 350000 @@ -76,12 +34,12 @@ "entry_at": "2026-07-15T09:26:01.647385+09:00", "stop": 5564, "target": 7033, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5801931.81075, "last_add_price": 6150 @@ -102,7 +60,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3808102.9082436445, "last_add_price": 91400 @@ -113,51 +71,51 @@ "sources": [ "auto" ], - "qty": 307, - "entry_price": 18950, + "qty": 614, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.363317+09:00", "stop": 17760, "target": 21330, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5827047.345624999, "last_add_price": 18950 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 163, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.063761+09:00", - "stop": 10340, - "target": 18770, - "peak": 13730, + "qty": 42, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.406743+09:00", + "stop": 113016, + "target": 144168, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 2144800.7490822505, - "last_add_price": 13150 + "tranche_value": 5303741.017029563, + "last_add_price": 123400 } }, - "realized_pnl": -10856581.825500008, - "closed_trades": 16, + "realized_pnl": -13566324.17250001, + "closed_trades": 20, "wins": 0, "peak_equity": 100000000, - "max_drawdown": 0.11630617485000014, + "max_drawdown": 0.14285684982000024, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-07", "240810": "2026-07-24", @@ -165,8 +123,10 @@ "093370": "2026-07-20", "055550": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "252990": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943761+09:00", - "updated_at": "2026-07-28T15:28:00.997679+09:00" + "updated_at": "2026-07-29T15:28:01.439628+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v57/trades.jsonl b/agents/stock/workspace/state/sim/variants/v57/trades.jsonl index 454b2cb..ab8c66d 100644 --- a/agents/stock/workspace/state/sim/variants/v57/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v57/trades.jsonl @@ -51,3 +51,12 @@ {"ts": "2026-07-27T09:10:01.010928+09:00", "side": "SELL", "code": "024060", "name": "흥구석유", "price": 12030, "qty": 364, "proceeds": 4370381, "entry_price": 14585, "pnl": -939295, "pnl_pct": -17.52, "hold_from": "2026-07-23T10:30:02.448900+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "12,081 (현재 12,030)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,593"}, {"label": "추세(10일선)", "ok": false, "detail": "12,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +2"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-27T09:12:01.063762+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 13150, "qty": 163, "cost": 2143772, "path": "pullback", "reason": "눌림목 지정가 13,180 도달", "stop": 10340, "target": 18770, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "13,150 vs 12,888"}, {"label": "정배열(5>10)", "ok": true, "detail": "14,378 / 12,888"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "14,378 / 13,268"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +27 · 기 +15 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.46% (환산) vs 평균 1.47% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 15,870"}, {"label": "거래량 급증", "ok": false, "detail": "274,967 (환산) vs 평균 882,736"}, {"label": "회전율 급증", "ok": false, "detail": "0.46% (환산) vs 평균 1.47%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 13,180 (현재 13,150)"}]} {"ts": "2026-07-28T11:22:00.719019+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 814, "proceeds": 5386296, "entry_price": 7684, "pnl": -869022, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.177893+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.173991+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 355, "cost": 2322048, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:08.643441+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 307, "cost": 5818523, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:08.644059+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134562, "pnl": -380228, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:01.793062+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,106 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,475"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:08.644298+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 346, "cost": 2322008, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:08.644627+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 189, "cost": 2137911, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 18770, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,770"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T10:24:01.406745+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.321774+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 352, "proceeds": 3632583, "entry_price": 12162, "pnl": -649100, "pnl_pct": -14.98, "hold_from": "2026-07-27T09:12:01.063761+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 15,806"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.659413+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 69, "proceeds": 8208762, "entry_price": 132575, "pnl": -940311, "pnl_pct": -10.09, "hold_from": "2026-07-10T09:26:06.407594+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,704 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,317"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.412634+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 701, "proceeds": 3903952, "entry_price": 6624, "pnl": -740104, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.173987+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v59/portfolio.json b/agents/stock/workspace/state/sim/variants/v59/portfolio.json index 58f5aca..c8712c0 100644 --- a/agents/stock/workspace/state/sim/variants/v59/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v59/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 37621126.602, + "cash": 55717337.369, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 61, - "entry_price": 134562.29508196723, - "entry_at": "2026-07-09T09:10:01.795894+09:00", - "stop": 119106, - "target": 157747, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4200692.986817652, - "last_add_price": 136900 - }, - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 69, - "entry_price": 132575.36231884058, - "entry_at": "2026-07-10T09:26:06.410608+09:00", - "stop": 119704, - "target": 151882, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 4664583.432162063, - "last_add_price": 134300 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:06:07.843499+09:00", "stop": 302899, "target": 406277, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3881692.4296628344, "last_add_price": 350000 @@ -76,12 +34,12 @@ "entry_at": "2026-07-15T09:26:01.651076+09:00", "stop": 5564, "target": 6788, - "peak": 6330, + "peak": 6380, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 6240, + "cur_price": 5980, "tranches": 2, "tranche_value": 5844217.815187501, "last_add_price": 6150 @@ -102,62 +60,41 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3836130.6371969497, "last_add_price": 91400 }, - "030000": { - "code": "030000", - "name": "제일기획", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 309, - "entry_price": 18950, - "entry_at": "2026-07-24T10:02:04.366538+09:00", - "stop": 17760, - "target": 20735, - "peak": 19300, + "qty": 43, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.409921+09:00", + "stop": 113016, + "target": 138976, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 5869182.133875, - "last_add_price": 18950 - }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", - "sources": [ - "auto" - ], - "qty": 164, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.066101+09:00", - "stop": 10340, - "target": 17365, - "peak": 13730, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, - "tranches": 1, - "tranche_value": 2160433.1890129894, - "last_add_price": 13150 + "tranche_value": 5325887.633449249, + "last_add_price": 123400 } }, - "realized_pnl": -10197497.36550001, - "closed_trades": 16, - "wins": 0, + "realized_pnl": -12166245.891000014, + "closed_trades": 21, + "wins": 1, "peak_equity": 100000000, - "max_drawdown": 0.10972583398000002, + "max_drawdown": 0.12746662630999997, "last_exit": { - "030000": "2026-07-15", - "086790": "2026-06-23", + "030000": "2026-07-29", + "086790": "2026-07-29", "005930": "2026-06-23", "403870": "2026-07-07", "240810": "2026-07-24", @@ -165,8 +102,10 @@ "093370": "2026-07-20", "055550": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28" + "003680": "2026-07-29", + "010950": "2026-07-29", + "252990": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943780+09:00", - "updated_at": "2026-07-28T15:28:00.999806+09:00" + "updated_at": "2026-07-29T15:28:01.441650+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v59/trades.jsonl b/agents/stock/workspace/state/sim/variants/v59/trades.jsonl index f33016d..b913b01 100644 --- a/agents/stock/workspace/state/sim/variants/v59/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v59/trades.jsonl @@ -50,3 +50,11 @@ {"ts": "2026-07-27T09:10:01.013596+09:00", "side": "SELL", "code": "024060", "name": "흥구석유", "price": 12030, "qty": 367, "proceeds": 4406401, "entry_price": 14586, "pnl": -947542, "pnl_pct": -17.52, "hold_from": "2026-07-23T10:30:02.451835+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "12,082 (현재 12,030)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,342"}, {"label": "추세(10일선)", "ok": false, "detail": "12,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +2"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-27T09:12:01.066102+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 13150, "qty": 164, "cost": 2156923, "path": "pullback", "reason": "눌림목 지정가 13,180 도달", "stop": 10340, "target": 17365, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "13,150 vs 12,888"}, {"label": "정배열(5>10)", "ok": true, "detail": "14,378 / 12,888"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "14,378 / 13,268"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +27 · 기 +15 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.46% (환산) vs 평균 1.47% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 15,870"}, {"label": "거래량 급증", "ok": false, "detail": "274,967 (환산) vs 평균 882,736"}, {"label": "회전율 급증", "ok": false, "detail": "0.46% (환산) vs 평균 1.47%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 13,180 (현재 13,150)"}]} {"ts": "2026-07-28T11:22:00.721493+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 820, "proceeds": 5425999, "entry_price": 7684, "pnl": -875466, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.183509+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.180009+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 358, "cost": 2341671, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:08.649442+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134562, "pnl": -380228, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:01.795894+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,106 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,747"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:08.649941+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 190, "cost": 2149222, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 17365, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,365"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:26:01.859999+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 309, "proceeds": 5841048, "entry_price": 18950, "pnl": -15381, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.366538+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.860390+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 358, "proceeds": 2361766, "entry_price": 6540, "pnl": 20094, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.180005+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T10:24:01.409923+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 43, "cost": 5306996, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 138976, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.324133+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 354, "proceeds": 3653222, "entry_price": 12162, "pnl": -652924, "pnl_pct": -14.98, "hold_from": "2026-07-27T09:12:01.066101+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 14,896"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.661815+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 69, "proceeds": 8208762, "entry_price": 132575, "pnl": -940311, "pnl_pct": -10.09, "hold_from": "2026-07-10T09:26:06.410608+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,704 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 151,882"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} diff --git a/agents/stock/workspace/state/sim/variants/v81/portfolio.json b/agents/stock/workspace/state/sim/variants/v81/portfolio.json index d807495..f058b8c 100644 --- a/agents/stock/workspace/state/sim/variants/v81/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v81/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 40788004.08349998, + "cash": 51711548.16049999, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 79, - "entry_price": 134418.98734177215, - "entry_at": "2026-07-09T09:36:03.426251+09:00", - "stop": 122827, - "target": 169196, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 5342670.471327519, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.144350+09:00", "stop": 318647, "target": 445059, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5037472.695242855, "last_add_price": 356000 @@ -60,80 +39,38 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 4937498.49310549, "last_add_price": 90900 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 14, - "entry_price": 139000, - "entry_at": "2026-07-27T09:02:06.188674+09:00", - "stop": 108775, - "target": 229675, - "peak": 146400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 2066116.9225812238, - "last_add_price": 139000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 293, - "entry_price": 19100, + "qty": 589, + "entry_price": 19024.617996604415, "entry_at": "2026-07-27T09:02:06.188952+09:00", - "stop": 18023, - "target": 22330, - "peak": 19300, + "stop": 18070, + "target": 21887, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5615843.6254062485, - "last_add_price": 19100 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 972, - "entry_price": 6936.378600823045, - "entry_at": "2026-07-28T09:00:14.772290+09:00", - "stop": 6040, - "target": 9626, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, + "cur_price": 18800, "tranches": 2, - "tranche_value": 3374384.2550529507, - "last_add_price": 7100 + "tranche_value": 5615843.6254062485, + "last_add_price": 18950 } }, - "realized_pnl": -14735165.392500013, - "closed_trades": 28, + "realized_pnl": -17511736.024500016, + "closed_trades": 33, "wins": 1, "peak_equity": 101012300.052, - "max_drawdown": 0.1704340556510192, + "max_drawdown": 0.1852881006260132, "last_exit": { "030000": "2026-07-24", "403870": "2026-07-02", @@ -145,11 +82,13 @@ "319660": "2026-07-27", "105560": "2026-07-20", "086790": "2026-07-21", - "095610": "2026-07-24", + "095610": "2026-07-29", "024060": "2026-07-27", - "003680": "2026-07-27", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-29", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.943999+09:00", - "updated_at": "2026-07-28T15:28:01.001881+09:00" + "updated_at": "2026-07-29T15:28:01.443610+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v81/trades.jsonl b/agents/stock/workspace/state/sim/variants/v81/trades.jsonl index 71526c1..ec081ba 100644 --- a/agents/stock/workspace/state/sim/variants/v81/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v81/trades.jsonl @@ -76,3 +76,12 @@ {"ts": "2026-07-28T09:00:14.772298+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 497, "cost": 3370165, "path": "pullback", "reason": "눌림목 지정가 7,596 도달", "stop": 5916, "target": 9373, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,596 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.717433+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 475, "cost": 3373006, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 9373, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,373"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T09:38:04.808540+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 120100, "qty": 43, "proceeds": 5154230, "entry_price": 127900, "pnl": -346295, "pnl_pct": -6.1, "hold_from": "2026-07-27T09:32:01.329462+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,209 (현재 120,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 150,974"}, {"label": "추세(20일선)", "ok": true, "detail": "113,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,460"}]} +{"ts": "2026-07-29T09:24:08.655332+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 229675, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,675"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]} +{"ts": "2026-07-29T09:24:08.655690+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 296, "cost": 5610041, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 22330, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,330"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:08.656072+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 79, "proceeds": 10139589, "entry_price": 134419, "pnl": -481104, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.426251+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,827 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 169,196"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.358387+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 824, "cost": 5266150, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7566, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.412834+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 43, "cost": 5306996, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 146764, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:42:05.386330+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 824, "proceeds": 4917911, "entry_price": 6390, "pnl": -348238, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.358384+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,566"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T11:18:04.400651+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 972, "proceeds": 5820628, "entry_price": 6936, "pnl": -922544, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:14.772290+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,626"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:50:05.443983+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 30, "proceeds": 3233682, "entry_price": 130253, "pnl": -674504, "pnl_pct": -17.08, "hold_from": "2026-07-27T09:02:06.188674+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 213,434"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T14:20:01.481661+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 43, "proceeds": 4956815, "entry_price": 123400, "pnl": -350181, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.412832+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,764"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v87/portfolio.json b/agents/stock/workspace/state/sim/variants/v87/portfolio.json index 019e451..6761f3d 100644 --- a/agents/stock/workspace/state/sim/variants/v87/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v87/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 40529020.770000026, + "cash": 46968493.560500026, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 85, - "entry_price": 124176.4705882353, - "entry_at": "2026-07-02T10:18:03.775201+09:00", - "stop": 111006, - "target": 163689, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,215 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5334313.7727854485, - "last_add_price": 126200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.429422+09:00", - "stop": 118952, - "target": 180777, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4011361.8546706727, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.268000+09:00", "stop": 305399, "target": 472804, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3890688.706288562, "last_add_price": 353000 @@ -81,94 +39,75 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3772217.360484817, "last_add_price": 90900 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 12, - "entry_price": 155500, - "entry_at": "2026-07-24T09:00:04.711277+09:00", - "stop": 117686, - "target": 268942, - "peak": 155500, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,093 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 1885029.1859562935, - "last_add_price": 155500 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 302, - "entry_price": 18950, + "qty": 604, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.372201+09:00", "stop": 17760, "target": 22520, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,012 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5741969.0092812525, "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 746, - "entry_price": 6936.139410187668, - "entry_at": "2026-07-28T09:00:14.873040+09:00", - "stop": 5741, - "target": 10522, - "peak": 7780, + "qty": 89, + "entry_price": 119185.39325842696, + "entry_at": "2026-07-29T09:02:02.189829+09:00", + "stop": 111200, + "target": 143142, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 2591468.525148829, - "last_add_price": 7100 + "tranche_value": 5371055.048125002, + "last_add_price": 120500 } }, - "realized_pnl": -13144871.35600001, - "closed_trades": 19, + "realized_pnl": -15901837.824500013, + "closed_trades": 24, "wins": 0, "peak_equity": 101529111.72700004, - "max_drawdown": 0.1564925634306984, + "max_drawdown": 0.17512591082555104, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "403870": "2026-07-07", "093370": "2026-07-20", "240810": "2026-07-24", "214450": "2026-07-06", "034730": "2026-07-07", "055550": "2026-07-20", - "095610": "2026-07-23", + "095610": "2026-07-29", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944063+09:00", - "updated_at": "2026-07-28T15:28:01.003896+09:00" + "updated_at": "2026-07-29T15:28:01.445474+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v87/trades.jsonl b/agents/stock/workspace/state/sim/variants/v87/trades.jsonl index c4020ec..1a44481 100644 --- a/agents/stock/workspace/state/sim/variants/v87/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v87/trades.jsonl @@ -60,3 +60,13 @@ {"ts": "2026-07-28T09:00:14.873047+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 382, "cost": 2590348, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 10237, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.719745+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 364, "cost": 2584788, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 10237, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,237"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.747271+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 301, "proceeds": 3355614, "entry_price": 14266, "pnl": -939100, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.401485+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,395"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.189832+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 45, "cost": 5306296, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 138000, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.442106+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 44, "cost": 5302795, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 138000, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,000"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:08.660358+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 268942, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 268,942"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]} +{"ts": "2026-07-29T09:24:08.660573+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 302, "cost": 5723758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22520, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,520"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:08.660900+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.429422+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,777"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.360645+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 823, "cost": 5259759, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:18:05.349245+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:04.711277+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 246,789"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.666376+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.775201+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,689"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:06:06.455900+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 746, "proceeds": 4236463, "entry_price": 6936, "pnl": -938673, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:14.873040+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,522"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.563886+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 823, "proceeds": 4813376, "entry_price": 6390, "pnl": -446383, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.360644+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v89/portfolio.json b/agents/stock/workspace/state/sim/variants/v89/portfolio.json index 33018a9..352cd0b 100644 --- a/agents/stock/workspace/state/sim/variants/v89/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v89/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 41373202.66150003, + "cash": 42943729.53450002, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 57, - "entry_price": 134407.01754385966, - "entry_at": "2026-07-09T09:36:03.432331+09:00", - "stop": 118951, - "target": 165320, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 3953954.8215015037, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.271607+09:00", "stop": 305399, "target": 430953, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3886029.232766459, "last_add_price": 353000 @@ -55,85 +34,64 @@ "entry_at": "2026-07-22T09:04:01.797798+09:00", "stop": 92100, "target": 119144, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5608975.567343752, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 73, - "entry_price": 95479.45205479451, - "entry_at": "2026-07-24T09:26:00.985922+09:00", - "stop": 83572, - "target": 119295, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 3542084.913907391, - "last_add_price": 97000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 287, - "entry_price": 19100, + "qty": 576, + "entry_price": 19024.739583333332, "entry_at": "2026-07-27T09:02:06.197531+09:00", "stop": 17760, - "target": 21780, - "peak": 19300, + "target": 21554, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5482718.585687501, - "last_add_price": 19100 + "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 731, - "entry_price": 6936.279069767442, - "entry_at": "2026-07-28T09:00:14.978120+09:00", - "stop": 5741, - "target": 9327, - "peak": 7780, + "qty": 87, + "entry_price": 119185.05747126437, + "entry_at": "2026-07-29T09:02:02.194018+09:00", + "stop": 111200, + "target": 135155, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 2537441.7479239595, - "last_add_price": 7100 + "tranche_value": 5271041.416343752, + "last_add_price": 120500 } }, - "realized_pnl": -14674785.525500014, - "closed_trades": 27, + "realized_pnl": -16960807.048000015, + "closed_trades": 31, "wins": 1, "peak_equity": 101169385.00350003, - "max_drawdown": 0.17371818896983485, + "max_drawdown": 0.1817326009085055, "last_exit": { "030000": "2026-07-24", "035420": "2026-06-25", @@ -148,8 +106,12 @@ "105560": "2026-07-20", "095610": "2026-07-28", "252990": "2026-07-28", - "086790": "2026-07-28" + "086790": "2026-07-28", + "010950": "2026-07-29", + "078930": "2026-07-29", + "003680": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944112+09:00", - "updated_at": "2026-07-28T15:28:01.005871+09:00" + "updated_at": "2026-07-29T15:28:01.447383+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v89/trades.jsonl b/agents/stock/workspace/state/sim/variants/v89/trades.jsonl index 7aae837..e8d8275 100644 --- a/agents/stock/workspace/state/sim/variants/v89/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v89/trades.jsonl @@ -78,3 +78,11 @@ {"ts": "2026-07-28T09:10:01.722062+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 357, "cost": 2535080, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 9085, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,085"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.749549+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 291, "proceeds": 3244132, "entry_price": 14266, "pnl": -907861, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.404041+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:48:00.819571+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124900, "qty": 33, "proceeds": 4113663, "entry_price": 138900, "pnl": -470725, "pnl_pct": -10.08, "hold_from": "2026-07-16T09:38:02.477249+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "125,072 (현재 125,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 166,556"}, {"label": "추세(20일선)", "ok": true, "detail": "118,495"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +100 · 기 -116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,107"}]} +{"ts": "2026-07-29T09:02:02.194021+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.444486+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:08.665023+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 289, "cost": 5477371, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:08.665317+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 57, "proceeds": 7315906, "entry_price": 134407, "pnl": -346443, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.432331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,951 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,320"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:08.665565+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 73, "proceeds": 6389616, "entry_price": 95479, "pnl": -581430, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:00.985922+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,572 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,295"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.362843+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 808, "cost": 5163894, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T13:06:06.458168+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 731, "proceeds": 4151279, "entry_price": 6936, "pnl": -919901, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:14.978120+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,327"}, {"label": "추세(20일선)", "ok": true, "detail": "4,787"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.566378+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 808, "proceeds": 4725647, "entry_price": 6390, "pnl": -438247, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.362841+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v91/portfolio.json b/agents/stock/workspace/state/sim/variants/v91/portfolio.json index f782534..7673301 100644 --- a/agents/stock/workspace/state/sim/variants/v91/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v91/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 57984131.8765, + "cash": 53638378.387, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.435143+09:00", - "stop": 118952, - "target": 165321, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4062274.8724324326, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.274817+09:00", "stop": 305399, "target": 430953, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3951428.5123865386, "last_add_price": 353000 @@ -60,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3752319.512236461, "last_add_price": 90900 @@ -71,27 +50,48 @@ "sources": [ "auto" ], - "qty": 297, - "entry_price": 19100, + "qty": 597, + "entry_price": 19024.623115577888, "entry_at": "2026-07-27T09:02:06.201327+09:00", "stop": 17760, - "target": 21780, - "peak": 19300, + "target": 21554, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5692204.9488125, - "last_add_price": 19100 + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 41, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.421028+09:00", + "stop": 113016, + "target": 144168, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, + "tranches": 1, + "tranche_value": 5181999.062519742, + "last_add_price": 123400 } }, - "realized_pnl": -13337967.083500018, - "closed_trades": 25, + "realized_pnl": -14868998.428000022, + "closed_trades": 28, "wins": 1, "peak_equity": 100686647.06200002, - "max_drawdown": 0.14085166880934288, + "max_drawdown": 0.15858109432493064, "last_exit": { "030000": "2026-07-24", "403870": "2026-07-07", @@ -104,10 +104,12 @@ "105560": "2026-07-20", "024060": "2026-07-27", "095610": "2026-07-28", - "003680": "2026-07-28", + "003680": "2026-07-29", "086790": "2026-07-28", - "138040": "2026-07-28" + "138040": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944132+09:00", - "updated_at": "2026-07-28T15:28:01.007854+09:00" + "updated_at": "2026-07-29T15:28:01.449203+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v91/trades.jsonl b/agents/stock/workspace/state/sim/variants/v91/trades.jsonl index b0fbae3..ac7c938 100644 --- a/agents/stock/workspace/state/sim/variants/v91/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v91/trades.jsonl @@ -67,3 +67,11 @@ {"ts": "2026-07-28T11:22:00.730356+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 801, "proceeds": 5300274, "entry_price": 7684, "pnl": -855279, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.201682+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:48:00.821960+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124900, "qty": 33, "proceeds": 4113663, "entry_price": 138900, "pnl": -470725, "pnl_pct": -10.08, "hold_from": "2026-07-16T09:38:02.482317+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "125,072 (현재 125,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 166,556"}, {"label": "추세(20일선)", "ok": true, "detail": "118,495"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +100 · 기 -116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,107"}]} {"ts": "2026-07-28T12:56:02.859377+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127900, "pnl": -472917, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.351074+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,411"}, {"label": "추세(20일선)", "ok": true, "detail": "113,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]} +{"ts": "2026-07-29T09:02:02.197532+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 347, "cost": 2269720, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:08.668946+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 300, "cost": 5685853, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:08.669291+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.435143+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,321"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:08.669458+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 339, "cost": 2275031, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:28:01.365007+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 826, "cost": 5278932, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.421030+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T13:14:05.423322+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 686, "proceeds": 3820416, "entry_price": 6624, "pnl": -724336, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.197529+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.568829+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 826, "proceeds": 4830921, "entry_price": 6390, "pnl": -448010, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.365006+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v93/portfolio.json b/agents/stock/workspace/state/sim/variants/v93/portfolio.json index 745550e..dbceca5 100644 --- a/agents/stock/workspace/state/sim/variants/v93/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v93/portfolio.json @@ -1,49 +1,7 @@ { - "cash": 40529020.770000026, + "cash": 46968493.560500026, "initial": 100000000, "positions": { - "086790": { - "code": "086790", - "name": "하나금융지주", - "sources": [ - "auto" - ], - "qty": 85, - "entry_price": 124176.4705882353, - "entry_at": "2026-07-02T10:18:03.803724+09:00", - "stop": 111006, - "target": 150518, - "peak": 141800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 122,215 도달", - "cur_price": 123300, - "tranches": 2, - "tranche_value": 5334313.7727854485, - "last_add_price": 126200 - }, - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.437904+09:00", - "stop": 118952, - "target": 165321, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4011361.8546706727, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -55,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.277995+09:00", "stop": 305399, "target": 430953, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3890688.706288562, "last_add_price": 353000 @@ -81,94 +39,75 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3772217.360484817, "last_add_price": 90900 }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 12, - "entry_price": 155500, - "entry_at": "2026-07-24T09:00:05.016660+09:00", - "stop": 117686, - "target": 231128, - "peak": 155500, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 158,093 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 1885029.1859562935, - "last_add_price": 155500 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 302, - "entry_price": 18950, + "qty": 604, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.379982+09:00", "stop": 17760, "target": 21330, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,012 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5741969.0092812525, "last_add_price": 18950 }, - "003680": { - "code": "003680", - "name": "한성기업", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 746, - "entry_price": 6936.139410187668, - "entry_at": "2026-07-28T09:00:15.195211+09:00", - "stop": 5741, - "target": 9327, - "peak": 7780, + "qty": 89, + "entry_price": 119185.39325842696, + "entry_at": "2026-07-29T09:02:02.201631+09:00", + "stop": 111200, + "target": 135156, + "peak": 123600, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,884 도달", - "cur_price": 6400, + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, "tranches": 2, - "tranche_value": 2591468.525148829, - "last_add_price": 7100 + "tranche_value": 5371055.048125002, + "last_add_price": 120500 } }, - "realized_pnl": -13144871.35600001, - "closed_trades": 19, + "realized_pnl": -15901837.824500013, + "closed_trades": 24, "wins": 0, "peak_equity": 101529111.72700004, - "max_drawdown": 0.1564925634306984, + "max_drawdown": 0.17512591082555104, "last_exit": { "030000": "2026-07-15", - "086790": "2026-06-23", + "086790": "2026-07-29", "403870": "2026-07-07", "093370": "2026-07-20", "240810": "2026-07-24", "214450": "2026-07-06", "034730": "2026-07-07", "055550": "2026-07-20", - "095610": "2026-07-23", + "095610": "2026-07-29", "024060": "2026-07-27", - "003680": "2026-07-27", - "252990": "2026-07-28" + "003680": "2026-07-29", + "252990": "2026-07-28", + "010950": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944152+09:00", - "updated_at": "2026-07-28T15:28:01.009741+09:00" + "updated_at": "2026-07-29T15:28:01.451006+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v93/trades.jsonl b/agents/stock/workspace/state/sim/variants/v93/trades.jsonl index e0df1be..f074a5a 100644 --- a/agents/stock/workspace/state/sim/variants/v93/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v93/trades.jsonl @@ -60,3 +60,13 @@ {"ts": "2026-07-28T09:00:15.195216+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 382, "cost": 2590348, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 9085, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.726385+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 364, "cost": 2584788, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 9085, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,085"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T10:08:02.753914+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 301, "proceeds": 3355614, "entry_price": 14266, "pnl": -939100, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.408272+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.201634+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 45, "cost": 5306296, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.448930+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 44, "cost": 5302795, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:08.672813+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 231128, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 231,128"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]} +{"ts": "2026-07-29T09:24:08.672963+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 302, "cost": 5723758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:08.673212+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.437904+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,321"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.367070+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 823, "cost": 5259759, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:18:05.356148+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:05.016660+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 210,267"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T12:04:01.672640+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.803724+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 150,518"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:06:06.462495+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 746, "proceeds": 4236463, "entry_price": 6936, "pnl": -938673, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:15.195211+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,327"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.571204+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 823, "proceeds": 4813376, "entry_price": 6390, "pnl": -446383, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.367069+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v95/portfolio.json b/agents/stock/workspace/state/sim/variants/v95/portfolio.json index 4d56e6e..722e619 100644 --- a/agents/stock/workspace/state/sim/variants/v95/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v95/portfolio.json @@ -1,5 +1,5 @@ { - "cash": 54246812.08399997, + "cash": 67391227.04549997, "initial": 100000000, "positions": { "214450": { @@ -13,12 +13,12 @@ "entry_at": "2026-07-21T12:06:01.154873+09:00", "stop": 318449, "target": 397456, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 5187131.77934429, "last_add_price": 356000 @@ -39,82 +39,19 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 5101002.197396387, "last_add_price": 90900 - }, - "095610": { - "code": "095610", - "name": "테스", - "sources": [ - "auto" - ], - "qty": 15, - "entry_price": 139000, - "entry_at": "2026-07-27T09:02:06.208428+09:00", - "stop": 108775, - "target": 184337, - "peak": 146400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 146,775 도달", - "cur_price": 121400, - "tranches": 1, - "tranche_value": 2152119.014940611, - "last_add_price": 139000 - }, - "030000": { - "code": "030000", - "name": "제일기획", - "sources": [ - "auto" - ], - "qty": 306, - "entry_price": 19100, - "entry_at": "2026-07-27T09:02:06.208606+09:00", - "stop": 18023, - "target": 20715, - "peak": 19300, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 19,673 도달", - "cur_price": 18810, - "tranches": 1, - "tranche_value": 5849602.505874997, - "last_add_price": 19100 - }, - "003680": { - "code": "003680", - "name": "한성기업", - "sources": [ - "auto" - ], - "qty": 1020, - "entry_price": 6936.235294117647, - "entry_at": "2026-07-28T09:00:15.309249+09:00", - "stop": 6040, - "target": 8281, - "peak": 7780, - "trailing_on": false, - "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 7,596 도달", - "cur_price": 6400, - "tranches": 2, - "tranche_value": 3542220.106819096, - "last_add_price": 7100 } }, - "realized_pnl": -10474036.837000016, - "closed_trades": 29, + "realized_pnl": -12336432.55950002, + "closed_trades": 34, "wins": 4, "peak_equity": 101012300.052, - "max_drawdown": 0.12573823149717064, + "max_drawdown": 0.1321506180398645, "last_exit": { - "030000": "2026-07-24", + "030000": "2026-07-29", "403870": "2026-07-02", "240810": "2026-07-24", "214450": "2026-07-14", @@ -122,14 +59,15 @@ "003490": "2026-07-07", "034730": "2026-07-08", "319660": "2026-07-27", - "095610": "2026-07-16", + "095610": "2026-07-29", "105560": "2026-07-20", "086790": "2026-07-21", "010950": "2026-07-27", "024060": "2026-07-27", - "003680": "2026-07-27", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944172+09:00", - "updated_at": "2026-07-28T15:28:01.011616+09:00" + "updated_at": "2026-07-29T15:28:01.452775+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v95/trades.jsonl b/agents/stock/workspace/state/sim/variants/v95/trades.jsonl index 0cebafa..40b9fdb 100644 --- a/agents/stock/workspace/state/sim/variants/v95/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v95/trades.jsonl @@ -75,3 +75,11 @@ {"ts": "2026-07-28T09:00:15.309257+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 522, "cost": 3539691, "path": "pullback", "reason": "눌림목 지정가 7,596 도달", "stop": 5916, "target": 8077, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,596 (현재 7,050)"}]} {"ts": "2026-07-28T09:10:01.728520+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 498, "cost": 3536330, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8077, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,077"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]} {"ts": "2026-07-28T09:38:04.819328+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 120100, "qty": 45, "proceeds": 5393961, "entry_price": 127900, "pnl": -362402, "pnl_pct": -6.1, "hold_from": "2026-07-27T09:32:01.361064+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,209 (현재 120,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 139,437"}, {"label": "추세(20일선)", "ok": true, "detail": "113,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,460"}]} +{"ts": "2026-07-29T09:24:08.676321+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 17, "cost": 2084513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 184337, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 184,337"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]} +{"ts": "2026-07-29T09:26:01.880547+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 306, "proceeds": 5784339, "entry_price": 19100, "pnl": -61138, "pnl_pct": -0.84, "hold_from": "2026-07-27T09:02:06.208606+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "18,852"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.880818+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 1020, "proceeds": 6729053, "entry_price": 6936, "pnl": -346969, "pnl_pct": -4.7, "hold_from": "2026-07-28T09:00:15.309249+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.369166+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 869, "cost": 5553743, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 6978, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.425933+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 45, "cost": 5553833, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 135082, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:42:05.397338+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 869, "proceeds": 5186487, "entry_price": 6390, "pnl": -367256, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.369165+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 6,978"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]} +{"ts": "2026-07-29T12:50:05.454995+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 32, "proceeds": 3449261, "entry_price": 130288, "pnl": -720565, "pnl_pct": -17.11, "hold_from": "2026-07-27T09:02:06.208428+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,878"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T14:20:01.492396+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 45, "proceeds": 5187365, "entry_price": 123400, "pnl": -366468, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.425932+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,082"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]} diff --git a/agents/stock/workspace/state/sim/variants/v97/portfolio.json b/agents/stock/workspace/state/sim/variants/v97/portfolio.json index 9c65dbc..143ae20 100644 --- a/agents/stock/workspace/state/sim/variants/v97/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v97/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 48345053.135500036, + "cash": 45553124.807000026, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 59, - "entry_price": 134408.4745762712, - "entry_at": "2026-07-09T09:36:03.443166+09:00", - "stop": 118952, - "target": 157593, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4042685.7706206227, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.283957+09:00", "stop": 305399, "target": 410027, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3926142.1904411796, "last_add_price": 353000 @@ -55,64 +34,64 @@ "entry_at": "2026-07-22T09:04:01.805954+09:00", "stop": 92100, "target": 114638, - "peak": 106000, + "peak": 106700, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 98,848 도달", - "cur_price": 99400, + "cur_price": 96500, "tranches": 2, "tranche_value": 5741424.6067187525, "last_add_price": 103100 }, - "078930": { - "code": "078930", - "name": "GS", - "sources": [ - "auto" - ], - "qty": 75, - "entry_price": 95480.0, - "entry_at": "2026-07-24T09:26:00.994800+09:00", - "stop": 83572, - "target": 113342, - "peak": 99800, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, - "tranches": 2, - "tranche_value": 3646570.004936488, - "last_add_price": 97000 - }, "030000": { "code": "030000", "name": "제일기획", "sources": [ "auto" ], - "qty": 295, - "entry_price": 19100, + "qty": 593, + "entry_price": 19024.620573355816, "entry_at": "2026-07-27T09:02:06.211883+09:00", "stop": 17760, - "target": 21110, - "peak": 19300, + "target": 20922, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 20,032 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5649244.920562502, - "last_add_price": 19100 + "last_add_price": 18950 + }, + "138040": { + "code": "138040", + "name": "메리츠금융지주", + "sources": [ + "auto" + ], + "qty": 91, + "entry_price": 119185.71428571429, + "entry_at": "2026-07-29T09:02:02.208654+09:00", + "stop": 111200, + "target": 131164, + "peak": 123600, + "trailing_on": false, + "scaled_out": false, + "entry_path": "pullback", + "entry_reason": "눌림목 지정가 118,115 도달", + "cur_price": 116500, + "tranches": 2, + "tranche_value": 5456781.800281253, + "last_add_price": 120500 } }, - "realized_pnl": -11958993.36450002, - "closed_trades": 29, - "wins": 3, + "realized_pnl": -13348811.408000022, + "closed_trades": 33, + "wins": 4, "peak_equity": 101169385.00350003, - "max_drawdown": 0.14089965919538636, + "max_drawdown": 0.14630088139794412, "last_exit": { "030000": "2026-07-24", "035420": "2026-06-25", @@ -127,8 +106,12 @@ "003490": "2026-07-13", "105560": "2026-07-20", "252990": "2026-07-28", - "086790": "2026-07-28" + "086790": "2026-07-28", + "010950": "2026-07-29", + "078930": "2026-07-29", + "003680": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944191+09:00", - "updated_at": "2026-07-28T15:28:01.013431+09:00" + "updated_at": "2026-07-29T15:28:01.454504+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v97/trades.jsonl b/agents/stock/workspace/state/sim/variants/v97/trades.jsonl index 5e4a3be..239758f 100644 --- a/agents/stock/workspace/state/sim/variants/v97/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v97/trades.jsonl @@ -79,3 +79,12 @@ {"ts": "2026-07-28T10:08:02.758140+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 299, "proceeds": 3333317, "entry_price": 14266, "pnl": -932852, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.412264+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T11:34:01.959573+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 120300, "qty": 11, "proceeds": 1320720, "entry_price": 158100, "pnl": -418641, "pnl_pct": -23.91, "hold_from": "2026-07-22T15:04:00.982279+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,314 (현재 120,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 214,778"}, {"label": "추세(20일선)", "ok": false, "detail": "134,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +285 · 기 -563"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 168,711"}]} {"ts": "2026-07-28T11:48:00.828748+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124900, "qty": 33, "proceeds": 4113663, "entry_price": 138900, "pnl": -470725, "pnl_pct": -10.08, "hold_from": "2026-07-16T09:38:02.495799+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "125,072 (현재 125,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 159,642"}, {"label": "추세(20일선)", "ok": true, "detail": "118,495"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +100 · 기 -116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,107"}]} +{"ts": "2026-07-29T09:02:02.208350+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 351, "cost": 2295884, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]} +{"ts": "2026-07-29T09:02:02.208657+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 46, "cost": 5424214, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]} +{"ts": "2026-07-29T09:16:04.453053+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 45, "cost": 5423313, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]} +{"ts": "2026-07-29T09:24:08.679402+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 298, "cost": 5647947, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21110, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,110"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]} +{"ts": "2026-07-29T09:24:08.679637+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.443166+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,593"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:08.679829+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 75, "proceeds": 6564674, "entry_price": 95480, "pnl": -597400, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:00.994800+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,572 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,342"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:26:01.883458+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 351, "proceeds": 2315586, "entry_price": 6540, "pnl": 19701, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.208347+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:28:01.371168+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 836, "cost": 5342841, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T13:34:03.575633+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 836, "proceeds": 4889407, "entry_price": 6390, "pnl": -453434, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.371167+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/sim/variants/v99/portfolio.json b/agents/stock/workspace/state/sim/variants/v99/portfolio.json index 8edb473..b094eab 100644 --- a/agents/stock/workspace/state/sim/variants/v99/portfolio.json +++ b/agents/stock/workspace/state/sim/variants/v99/portfolio.json @@ -1,28 +1,7 @@ { - "cash": 57293481.563, + "cash": 54400732.8825, "initial": 100000000, "positions": { - "010950": { - "code": "010950", - "name": "S-Oil", - "sources": [ - "auto" - ], - "qty": 61, - "entry_price": 134409.83606557376, - "entry_at": "2026-07-09T09:36:03.445578+09:00", - "stop": 118954, - "target": 165323, - "peak": 156400, - "trailing_on": false, - "scaled_out": false, - "entry_path": "breakout", - "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 129200, - "tranches": 2, - "tranche_value": 4126741.2051511523, - "last_add_price": 136900 - }, "214450": { "code": "214450", "name": "파마리서치", @@ -34,12 +13,12 @@ "entry_at": "2026-07-13T09:12:04.286625+09:00", "stop": 305399, "target": 430953, - "peak": 384500, + "peak": 397000, "trailing_on": false, "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 377500, + "cur_price": 390500, "tranches": 2, "tranche_value": 3907880.8107494777, "last_add_price": 353000 @@ -60,7 +39,7 @@ "scaled_out": false, "entry_path": "breakout", "entry_reason": "거래량·회전율 동반 전고점 돌파", - "cur_price": 87200, + "cur_price": 83400, "tranches": 2, "tranche_value": 3816608.495615692, "last_add_price": 90900 @@ -71,48 +50,48 @@ "sources": [ "auto" ], - "qty": 308, - "entry_price": 18950, + "qty": 616, + "entry_price": 18950.0, "entry_at": "2026-07-24T10:02:04.387027+09:00", "stop": 17760, "target": 21330, - "peak": 19300, + "peak": 20750, "trailing_on": false, "scaled_out": false, "entry_path": "pullback", "entry_reason": "눌림목 지정가 19,643 도달", - "cur_price": 18810, - "tranches": 1, + "cur_price": 18800, + "tranches": 2, "tranche_value": 5846997.74384375, "last_add_price": 18950 }, - "252990": { - "code": "252990", - "name": "샘씨엔에스", + "138040": { + "code": "138040", + "name": "메리츠금융지주", "sources": [ "auto" ], - "qty": 163, - "entry_price": 13150, - "entry_at": "2026-07-27T09:12:01.494163+09:00", - "stop": 10340, - "target": 18770, - "peak": 13730, + "qty": 42, + "entry_price": 123400, + "entry_at": "2026-07-29T10:24:01.430458+09:00", + "stop": 113016, + "target": 144168, + "peak": 123600, "trailing_on": false, "scaled_out": false, - "entry_path": "pullback", - "entry_reason": "눌림목 지정가 13,180 도달", - "cur_price": 11210, + "entry_path": "breakout", + "entry_reason": "거래량·회전율 동반 전고점 돌파", + "cur_price": 116500, "tranches": 1, - "tranche_value": 2154328.722406584, - "last_add_price": 13150 + "tranche_value": 5274213.041699394, + "last_add_price": 123400 } }, - "realized_pnl": -11363767.72950001, - "closed_trades": 17, + "realized_pnl": -13579464.867500015, + "closed_trades": 21, "wins": 0, "peak_equity": 100172467.23000002, - "max_drawdown": 0.11885085828688154, + "max_drawdown": 0.14111836054754248, "last_exit": { "030000": "2026-07-15", "086790": "2026-07-28", @@ -122,9 +101,12 @@ "093370": "2026-07-20", "055550": "2026-07-20", "024060": "2026-07-27", - "003680": "2026-07-28", - "138040": "2026-07-28" + "003680": "2026-07-29", + "138040": "2026-07-28", + "010950": "2026-07-29", + "252990": "2026-07-29", + "090850": "2026-07-29" }, "created_at": "2026-06-11T09:00:01.944212+09:00", - "updated_at": "2026-07-28T15:28:01.015220+09:00" + "updated_at": "2026-07-29T15:28:01.456230+09:00" } \ No newline at end of file diff --git a/agents/stock/workspace/state/sim/variants/v99/trades.jsonl b/agents/stock/workspace/state/sim/variants/v99/trades.jsonl index 0345c10..c909073 100644 --- a/agents/stock/workspace/state/sim/variants/v99/trades.jsonl +++ b/agents/stock/workspace/state/sim/variants/v99/trades.jsonl @@ -49,3 +49,13 @@ {"ts": "2026-07-28T11:22:00.738433+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 817, "proceeds": 5406147, "entry_price": 7684, "pnl": -872464, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.214970+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-28T12:56:02.867318+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 45, "proceeds": 5272698, "entry_price": 127900, "pnl": -483665, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.368496+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,411"}, {"label": "추세(10일선)", "ok": true, "detail": "116,360"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]} {"ts": "2026-07-28T13:20:03.818138+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123800, "qty": 71, "proceeds": 8772660, "entry_price": 137176, "pnl": -968301, "pnl_pct": -9.75, "hold_from": "2026-07-13T09:48:02.324456+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,862 (현재 123,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,803"}, {"label": "추세(10일선)", "ok": true, "detail": "119,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:02:02.211766+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 354, "cost": 2315507, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]} +{"ts": "2026-07-29T09:24:08.682500+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 308, "cost": 5837475, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]} +{"ts": "2026-07-29T09:24:08.682721+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134410, "pnl": -370927, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.445578+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,954 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,323"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T09:24:08.682835+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 345, "cost": 2315297, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]} +{"ts": "2026-07-29T09:24:08.682999+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 190, "cost": 2149222, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 18770, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,770"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]} +{"ts": "2026-07-29T09:28:01.373147+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 842, "cost": 5381187, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]} +{"ts": "2026-07-29T10:24:01.430460+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]} +{"ts": "2026-07-29T10:52:02.340463+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 353, "proceeds": 3642902, "entry_price": 12160, "pnl": -650091, "pnl_pct": -14.96, "hold_from": "2026-07-27T09:12:01.494163+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 15,799"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:14:05.431056+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 699, "proceeds": 3892814, "entry_price": 6624, "pnl": -737990, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.211763+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} +{"ts": "2026-07-29T13:34:03.577810+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 842, "proceeds": 4924498, "entry_price": 6390, "pnl": -456689, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.373145+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]} diff --git a/agents/stock/workspace/state/trade_journal.jsonl b/agents/stock/workspace/state/trade_journal.jsonl index 987c87f..62d2433 100644 --- a/agents/stock/workspace/state/trade_journal.jsonl +++ b/agents/stock/workspace/state/trade_journal.jsonl @@ -141,3 +141,6 @@ {"date": "2026-07-21", "account": "가희_ISA", "owner": "가희", "code": "381620", "name": "제닉스로보틱스", "buy_qty": 36, "buy_avg": 6020, "buy_amt": 216720, "sell_qty": 0, "sell_avg": 0, "sell_amt": 0, "pl_amt": 0, "cmsn_tax": 30, "prft_rt": 0.0, "collected_at": "2026-07-21T22:30:52.952069+09:00"} {"date": "2026-07-21", "account": "가희_ISA", "owner": "가희", "code": "471990", "name": "KODEX AI반도체핵심장비", "buy_qty": 0, "buy_avg": 0, "buy_amt": 0, "sell_qty": 10, "sell_avg": 22050, "sell_amt": 220500, "pl_amt": 54170, "cmsn_tax": 30, "prft_rt": 32.57, "collected_at": "2026-07-21T22:30:52.952069+09:00"} {"date": "2026-07-24", "account": "가희_일반", "owner": "가희", "code": "381620", "name": "제닉스로보틱스", "buy_qty": 27, "buy_avg": 5924, "buy_amt": 159960, "sell_qty": 0, "sell_avg": 0, "sell_amt": 0, "pl_amt": 0, "cmsn_tax": 20, "prft_rt": 0.0, "collected_at": "2026-07-24T21:00:02.131361+09:00"} +{"date": "2026-07-29", "account": "일반", "owner": "본인", "code": "005930", "name": "삼성전자", "buy_qty": 14, "buy_avg": 211250, "buy_amt": 2957500, "sell_qty": 0, "sell_avg": 0, "sell_amt": 0, "pl_amt": 0, "cmsn_tax": 440, "prft_rt": 0.0, "collected_at": "2026-07-29T21:39:14.669556+09:00"} +{"date": "2026-07-29", "account": "일반", "owner": "본인", "code": "381620", "name": "제닉스로보틱스", "buy_qty": 9, "buy_avg": 4815, "buy_amt": 43335, "sell_qty": 0, "sell_avg": 0, "sell_amt": 0, "pl_amt": 0, "cmsn_tax": 0, "prft_rt": 0.0, "collected_at": "2026-07-29T21:39:14.669556+09:00"} +{"date": "2026-07-29", "account": "가희_ISA", "owner": "가희", "code": "381620", "name": "제닉스로보틱스", "buy_qty": 1, "buy_avg": 4860, "buy_amt": 4860, "sell_qty": 0, "sell_avg": 0, "sell_amt": 0, "pl_amt": 0, "cmsn_tax": 0, "prft_rt": 0.0, "collected_at": "2026-07-29T21:39:14.669556+09:00"} diff --git a/workspace-attestations/5507b36e9d8ab0bf91a20933f29354785892f1062a6e702a1cc16e9e2e7d87d8.attested b/workspace-attestations/5507b36e9d8ab0bf91a20933f29354785892f1062a6e702a1cc16e9e2e7d87d8.attested index 2491718..4b646db 100644 --- a/workspace-attestations/5507b36e9d8ab0bf91a20933f29354785892f1062a6e702a1cc16e9e2e7d87d8.attested +++ b/workspace-attestations/5507b36e9d8ab0bf91a20933f29354785892f1062a6e702a1cc16e9e2e7d87d8.attested @@ -1,2 +1,2 @@ openclaw-workspace-attestation:v1 -2026-07-22T23:05:29.160Z +2026-07-29T01:26:29.171Z diff --git a/workspace-attestations/8b2dbe352929b40690dbe9a3e5a138e58e47d1a42e88eb41d71e9539d3077451.attested b/workspace-attestations/8b2dbe352929b40690dbe9a3e5a138e58e47d1a42e88eb41d71e9539d3077451.attested index ce69034..d41a1d1 100644 --- a/workspace-attestations/8b2dbe352929b40690dbe9a3e5a138e58e47d1a42e88eb41d71e9539d3077451.attested +++ b/workspace-attestations/8b2dbe352929b40690dbe9a3e5a138e58e47d1a42e88eb41d71e9539d3077451.attested @@ -1,2 +1,2 @@ openclaw-workspace-attestation:v1 -2026-07-28T09:00:00.043Z +2026-07-29T09:00:00.044Z diff --git a/workspace-attestations/d1fd54262c444fd6ab822ec4652ce317fa713ba87c5b1c125db2c01f477eb8d3.attested b/workspace-attestations/d1fd54262c444fd6ab822ec4652ce317fa713ba87c5b1c125db2c01f477eb8d3.attested index 8c8ae61..b86e9fa 100644 --- a/workspace-attestations/d1fd54262c444fd6ab822ec4652ce317fa713ba87c5b1c125db2c01f477eb8d3.attested +++ b/workspace-attestations/d1fd54262c444fd6ab822ec4652ce317fa713ba87c5b1c125db2c01f477eb8d3.attested @@ -1,3 +1,3 @@ openclaw-workspace-attestation:v1 -2026-07-28T10:00:00.031Z +2026-07-29T10:00:00.029Z generated:HEARTBEAT.md:ecce558615751a35aa173731e892ff3993f44bb4f5a1219c0a02994790c85528