diff --git a/CLAUDE.md b/CLAUDE.md
index 4cd8c9d..9b7b1d2 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -99,13 +99,13 @@ Stock agent (`agents/stock/workspace/scripts/`), run with `python3`:
- `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 재활용
-- `trailing_monitor.py` — **트레일링 스톱 감시** (2026-07-30). 키움 REST에 트레일링 주문 TR이 없어서, 스톱지정가(`trde_tp=28`) 주문을 실제로 걸어두고 고점 갱신 시 `kt10002` 정정(`mdfy_cond_uv`)으로 조건단가를 올려 구현. **주문이 키움 서버에 있어 감시 루프가 죽어도 마지막 손절선은 살아있다** (자체 폴링 발주 방식은 루프가 죽으면 손절이 통째로 사라짐 — 이 차이가 설계 선택 이유). 사이클당 하는 일: ①`ka10075` 미체결 조회로 예약 생존 확인(계좌당 1콜). 사라지면 정리 + **사유 구분 알림** — 미체결 조회만으로는 체결·취소·소멸이 구분되지 않아(셋 다 목록에서 빠짐) 그때만 `ka10170` 1콜 추가로 판정: ✅체결(당일 매도기록 있음) / ⚠️소멸(기록 없음 = 체결 안 됨 확정, 재등록 안내) / 🎯판정불가(일지 조회 실패). ⚠️ **조회 실패를 '체결 안 됨'으로 단정 금지** — `_fill_check` 가 (기록, 성공여부) 튜플을 반환하는 이유 ②`ka10095` 시세 1콜 → 고점 갱신분만 정정. 주가가 그대로·하락이면 API 콜 0. ⚠️ **`kt10002` 응답 `ord_no`는 신규 주문번호** — `trailing.commit_modify`가 상태파일 `ord_no`를 갱신하지 않으면 두 번째 정정부터 `orig_ord_no`가 틀려 전부 실패(최대 함정). ⚠️ **고점은 등록 시점 현재가에서 시작해 현재가로만 갱신**한다 — `ka10095`가 당일고가(`high`)도 주지만 등록 전에 찍힌 고가까지 반영되면 손절선이 현재가 위로 올라가 즉시 발동(예: 오전 15,000→14,000일 때 3% 등록 시 당일고가 기준 조건 14,550 > 현재가). 같은 이유로 초기 고점 선택 옵션(52주 전고점·매수후 고점)도 제거됨. 1분 간격이라 그 사이 스파이크는 놓친다(손절선이 덜 올라가 이익 확정 폭이 조금 줄어드는 방향 — 손실 위험은 아님). ⚠️ **정밀도 보완은 하지 않기로 결론**(2026-07-30 관리자님 판단): 최저 매도가로 하한이 통제되므로 1분 해상도의 고점 누락은 감당 범위. 검토했던 두 안 — `entry_day_high`(등록 시점 당일고가를 기준선으로 저장해 그보다 큰 `high`만 등록 이후 신고가로 인정. 추가 콜 0이지만 기준선 아래 스파이크는 여전히 누락) / `realtime_hub` WS 틱 고점 추적(정확하지만 구독·재연결 폴백 필요) — **둘 다 채택 안 함. 다시 제안하지 말 것.** ⚠️ **`fill_watcher`를 걸지 않는다** — 스톱 예약은 장중 내내 미체결이 정상이라 30분 미체결 알림이 오탐. 생존·체결 감시는 이 스크립트가 직접. ⚠️ **스톱주문은 장 마감 후 소멸한다(2026-07-30 실증)** — 첫 실주문이 체결 없이 사라짐(당일 매도기록 0·보유 불변), 감지 18:21로 15:30 즉시가 아니라 몇 시간 뒤. **자동 재등록은 하지 않는다**(관리자님 결정) — 알림만 보내고 재등록은 자산웹에서 수동. 정정 수량은 저장 qty가 아닌 **미체결 잔량**(부분체결 대응). 미체결 조회 실패 계좌는 그 사이클 판단 보류(없다고 단정하면 살아있는 예약을 지움). CLI: `check [--repeat N --gap S] [--force] [--dry-run]` / `list`
-- `orders/trailing.py` — 트레일링 예약 상태(`state/trailing_stops.json`) + 손절선 계산. `compute_levels(peak, pct, min_sell_price=None)` = `cond_uv` = **max(peak×(1−pct/100), min_sell_price)** 호가단위 내림 + `ord_uv`(조건단가 −`ORD_UV_GAP_TICKS` 2틱 — 조건단가와 같게 두면 발동 후 그 가격 아래로 안 팔려 미체결로 남고, 너무 벌리면 급락 시 헐값 매도). 반환에 `floor_applied`(최저가가 트레일을 이겼는지)를 실어 카드·미리보기가 어느 쪽이 지배 중인지 표시한다. **최저 매도가**는 손절선의 하한 — 트레일 폭을 넓게 잡아도 이 가격 아래로 안 내려간다(초기 구간 손실 제한). 고점이 올라 트레일이 최저가를 추월하면 그 뒤론 트레일이 지배(전환점 = `min_sell_price ÷ (1−pct/100)`, 예: 최저 4,500·20% → 5,625원). 최저가 지배 구간에선 고점이 올라도 조건단가가 안 변해 `next_levels`가 None → 불필요한 정정 API 콜 0. `next_levels(res, cur)`는 **상향 전용 순수함수**(현재가>고점 AND 새 조건단가>기존 조건단가일 때만 값 반환) — 단위테스트 대상. 트레일 폭 허용 0.5~30%. 같은 계좌·종목 중복 예약은 `find_by_symbol`로 propose 단계에서 차단. fcntl lock + atomic write (`pin.py` 패턴)
+- `trailing_monitor.py` — **트레일링 스톱 감시** (2026-07-30). 키움 REST에 트레일링 주문 TR이 없어서, 스톱지정가(`trde_tp=28`) 주문을 실제로 걸어두고 고점 갱신 시 `kt10002` 정정(`mdfy_cond_uv`)으로 조건단가를 올려 구현. **주문이 키움 서버에 있어 감시 루프가 죽어도 마지막 손절선은 살아있다** (자체 폴링 발주 방식은 루프가 죽으면 손절이 통째로 사라짐 — 이 차이가 설계 선택 이유). **예약 1건 = 계단(레그) N개**라 생존 확인·정정 모두 레그 단위로 돈다. 사이클당 하는 일: ①`ka10075` 미체결 조회로 **레그별** 생존 확인(계좌당 1콜). 사라진 레그만 정리하고 나머지 계단은 감시 유지 + **사유 구분 알림** — 미체결 조회만으로는 체결·취소·소멸이 구분되지 않아(셋 다 목록에서 빠짐) 그때만 `kt00007` 1콜 추가로 판정: ✅체결(그 `ord_no`의 `cntr_qty`>0) / ⚠️소멸(체결수량 0 = 체결 안 됨 확정, 재등록 안내) / 🎯판정불가(조회 실패). ⚠️ **판정은 반드시 주문번호 단위 `kt00007`로** — 종목 단위 집계인 `ka10170`을 쓰면 **한 계단이 체결된 날 나머지 계단이 장 마감으로 소멸했을 때 그 소멸분까지 '체결'로 오판**한다(같은 종목 매도기록이 이미 남아 있어서). 2026-07-31 계단식 전환 때 교체. ⚠️ **조회 실패를 '체결 안 됨'으로 단정 금지** — `_leg_fill_check` 가 (기록, 성공여부) 튜플을 반환하는 이유. 알림은 **예약 단위로 묶어 1건**(장 마감이면 계단이 통째로 사라져 레그마다 보내면 3~5통이 몰아친다) ②`ka10095` 시세 1콜 → 고점 갱신 시 살아있는 레그 **전부** 정정(정정 콜이 계단 수에 비례). 주가가 그대로·하락이면 API 콜 0. ⚠️ **`kt10002` 응답 `ord_no`는 신규 주문번호** — `trailing.commit_step_modify`가 상태파일의 **레그별** `ord_no`를 갱신하지 않으면 그 레그의 두 번째 정정부터 `orig_ord_no`가 틀려 전부 실패(최대 함정). ⚠️ **한 계단이 체결돼도 남은 계단을 재배치하지 않는다**(2026-07-31 관리자님 결정) — 남은 수량을 계단 비율대로 다시 쪼개려면 기존 주문 취소+신규 발주가 필요해 감시 루프에 자동 발주 경로가 생긴다. 남은 계단은 새 고점 기준으로 따라 올라가기만 한다. ⚠️ **고점은 등록 시점 현재가에서 시작해 현재가로만 갱신**한다 — `ka10095`가 당일고가(`high`)도 주지만 등록 전에 찍힌 고가까지 반영되면 손절선이 현재가 위로 올라가 즉시 발동(예: 오전 15,000→14,000일 때 3% 등록 시 당일고가 기준 조건 14,550 > 현재가). 같은 이유로 초기 고점 선택 옵션(52주 전고점·매수후 고점)도 제거됨. 1분 간격이라 그 사이 스파이크는 놓친다(손절선이 덜 올라가 이익 확정 폭이 조금 줄어드는 방향 — 손실 위험은 아님). ⚠️ **정밀도 보완은 하지 않기로 결론**(2026-07-30 관리자님 판단): 최저 매도가로 하한이 통제되므로 1분 해상도의 고점 누락은 감당 범위. 검토했던 두 안 — `entry_day_high`(등록 시점 당일고가를 기준선으로 저장해 그보다 큰 `high`만 등록 이후 신고가로 인정. 추가 콜 0이지만 기준선 아래 스파이크는 여전히 누락) / `realtime_hub` WS 틱 고점 추적(정확하지만 구독·재연결 폴백 필요) — **둘 다 채택 안 함. 다시 제안하지 말 것.** ⚠️ **`fill_watcher`를 걸지 않는다** — 스톱 예약은 장중 내내 미체결이 정상이라 30분 미체결 알림이 오탐. 생존·체결 감시는 이 스크립트가 직접. ⚠️ **스톱주문은 장 마감 후 소멸한다(2026-07-30 실증)** — 첫 실주문이 체결 없이 사라짐(당일 매도기록 0·보유 불변), 감지 18:21로 15:30 즉시가 아니라 몇 시간 뒤. **자동 재등록은 하지 않는다**(관리자님 결정) — 알림만 보내고 재등록은 자산웹에서 수동. 정정 수량은 저장 qty가 아닌 **미체결 잔량**(부분체결 대응). 미체결 조회 실패 계좌는 그 사이클 판단 보류(없다고 단정하면 살아있는 예약을 지움). CLI: `check [--repeat N --gap S] [--force] [--dry-run]` / `list`
+- `orders/trailing.py` — 트레일링 예약 상태(`state/trailing_stops.json`) + 손절선 계산. **예약 1건 = 계단(레그) N개 = 키움 스톱주문 N건**(계단식 분할 매도, 2026-07-31). 하락률이 깊어질수록 더 많이 판다 — 예 −10% 20% / −20% 50% / −30% 전량. `compute_levels(peak, pct, min_sell_price=None)` = `cond_uv` = **max(peak×(1−pct/100), min_sell_price)** 호가단위 내림 + `ord_uv`(조건단가 −`ORD_UV_GAP_TICKS` 2틱 — 조건단가와 같게 두면 발동 후 그 가격 아래로 안 팔려 미체결로 남고, 너무 벌리면 급락 시 헐값 매도). ⚠️ `int(round(peak×(1−pct/100), 6))` 의 **round 는 부동소수점 잡음 제거용**(5500×0.7이 3849.9999999999995라 int()가 3849로 깎고 호가내림이 3845까지 끌어내리던 버그, 2026-07-31 수정). 계단 함수 4종: `normalize_steps(raw)`=입력한 **누적** 비중(20/50/100)을 **추가** 비중(20/30/50)으로 환산+검증(하락률·누적 둘 다 순증가, 하락률 0.5~30%, 누적 ≤100%〔100 미만 허용=일부만 계단 청산〕, 계단 ≤`MAX_STEPS` 5) / `allocate_step_qty(total, weights)`=**최대잔여법**(내림 후 소수부 큰 계단부터 1주씩 — "내림 후 마지막에 몰아주기"보다 얕은 계단이 0주로 죽는 일이 적다: 2주·20/30/50 → `[0,1,1]` vs `[0,0,2]`) / `compute_step_levels(peak, steps, floor)` / `next_step_levels(res, cur)`. **최저 매도가**는 손절선의 하한 — 트레일 폭을 넓게 잡아도 이 가격 아래로 안 내려간다(초기 구간 손실 제한). ⚠️ **floor 는 모든 계단에 같은 하한으로 걸려** 초기엔 여러 계단이 같은 가격으로 뭉칠 수 있다. **그래도 주문을 병합하지 않는다** — 고점이 올라 트레일이 floor를 추월하면 각 계단이 제 하락률대로 다시 벌어지는데, 병합하면 정정만으로는 못 쪼갠다(신규 발주가 필요해짐). 전환점 = `min_sell_price ÷ (1−pct/100)`, 예: 최저 4,500·20% → 5,625원. `next_step_levels(res, cur)`는 **상향 전용 순수함수** — 고점 안 올랐으면 None, 올랐으면 `{peak, steps:[올릴 레그만]}`. ⚠️ **steps 가 빈 리스트일 수 있다**(호가내림·floor 지배로 올릴 조건단가가 없는 경우) → 호출측은 정정 API 없이 `commit_peak`로 고점만 갱신(콜 0, 화면 고점 표시는 정확 유지). 상태 갱신은 레그 단위: `register_steps`/`commit_step_modify`/`remove_step`(마지막 레그 제거 시 예약째 삭제)/`commit_peak`. 같은 계좌·종목 중복 예약은 `find_by_symbol`로 propose 단계에서 차단. fcntl lock + atomic write (`pin.py` 패턴)
- `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=하나라도 접수).
- **매도 주문유형 4종** — 지정가(LIMIT) / 시장가(MARKET) / 스톱지정가(STOP_LIMIT, 하락 시 매도·조건단가 고정) / **트레일링 스톱(TRAILING_STOP, 2026-07-30 추가)**. 뒤 2개는 매도 전용(매수 선택 시 옵션 disabled + LIMIT로 되돌림, `refreshStopUI`). **트레일링 입력 2개**(단가 입력행은 숨김 — 조건단가·지정가는 서버 계산): ①**트레일 폭 %**(0.5~30, 기본 10) ②**최저 매도가**(선택, 비우면 제한 없음). 단위(`(%)`·`(원)`)는 **라벨에 박는다** — 입력칸 옆에 붙이면 가로로 벌어져 스크롤이 생기고 number input 안쪽 absolute 접미사는 데스크톱 스피너와 겹친다. `handler.propose_trade(trail_pct, min_sell_price)`가 초기 고점을 `md['current_price']`로 정하고 `trailing.compute_levels`로 계산. ⚠️ **고점 기준 선택 옵션은 2026-07-30 제거됨**(`peak_basis` / `52주 전고점` / `매수후 고점`) — 과거 고점을 기준으로 잡으면 손절선이 현재가 위로 올라가 등록 즉시 발동한다. **손실 종목은 등록 자체가 불가**(실측 제닉스로보틱스 현재가 4,805 · 매수후 고점 6,890 → 필요 폭 30.3% / 52주 19,940 → 75.9%, 둘 다 상한 30% 초과), **이익 종목은 과거 고점 ≈ 현재가라 결과가 같다**. 즉 차이가 날 때는 못 쓰고 쓸 수 있을 때는 차이가 없어 옵션을 없앴다. **다시 넣지 말 것.** ⚠️ **손절선 ≥ 현재가면 `TRAIL_IMMEDIATE`로 거부** — 고점=현재가 고정이라 이제 최저 매도가가 현재가보다 높은 경우만 남는다. **거부 시점은 입력 시점**(2026-07-30 관리자님 지시로 propose 시점에서 이동) — `trailBlockReason()`이 입력값을 보고 사유 문자열을 내놓고, 걸리면 매도 버튼이 disable + title 에 사유. 서버 `TRAIL_IMMEDIATE`는 최후 방어선으로 유지. ⚠️ **버튼 `disabled`는 `refreshSubmitGate()` 한 곳에서만 결정한다** — 시장 phase 게이트(`updateMarketPhaseDisplay`, `/api/market_state` 주기 폴링)와 트레일 게이트가 같은 버튼을 건드려서, 예전처럼 각자 대입하면 주기 호출이 트레일 게이트를 덮어써 즉시발동 입력이 통과된다. phase 쪽은 `state.phaseCanTrade`/`phaseLabel`만 쓰고 판단을 위임. propose 진행 중에는 `btn.dataset.busy='1'`로 잠가 주기 호출이 버튼을 되살리지 못하게 하고, 응답·에러 후 busy 해제 + 재계산. `renderTrailPreview`는 조기 반환 경로(폭 미입력·시세 로딩)에서도 게이트가 걸려야 하므로 **함수 맨 앞에서** `refreshSubmitGate()`를 부른다. 클라이언트 미리보기(`renderTrailPreview`/`trailCondPrice`/`floorTick`)는 서버와 **같은 식**이지만 실제 발주값은 서버 계산분이 승자 — 한쪽만 바꾸면 표시와 발주가 어긋나니 `orders/trailing.compute_levels` 수정 시 JS도 함께 고칠 것(112개 조합 node 대조로 검증하는 방식). 키움엔 스톱지정가로 나가고(`submit_with_pin`이 `TRAILING_STOP`→`STOP_LIMIT` 변환) 트레일링은 우리 쪽 개념. 승인 후 `trailing.register(ord_no, ...)`로 예약 등록, 이후 `trailing_monitor`가 조건단가 상향. **등록 실패 시 주문은 이미 접수된 상태**라 카드 메시지에 ⚠️ 경고를 붙이고 ledger `trailing_register_failed` 기록(숨기면 트레일링이 안 도는 걸 모른다). 트레일링·스톱지정가는 단일 계좌 예약이라 **2계좌 동시 매도 분기에서 제외**. 취소는 `[📋 진행중]`에서 해당 미체결 주문 취소 → 다음 감시 사이클이 사라진 예약을 자동 정리. ⚠️ 트레일링 예약이 미체결 매도로 잡혀 있으면 `/api/order/check`의 `_pending_sell_qty` 차감 덕에 **일반 매도 max_qty가 자동으로 줄어든다**(이중 매도 구조적 차단).
+ **매도 주문유형 4종** — 지정가(LIMIT) / 시장가(MARKET) / 스톱지정가(STOP_LIMIT, 하락 시 매도·조건단가 고정) / **트레일링 스톱(TRAILING_STOP, 2026-07-30 추가)**. 뒤 2개는 매도 전용(매수 선택 시 옵션 disabled + LIMIT로 되돌림, `refreshStopUI`). **트레일링 입력**(단가 입력행은 숨김 — 조건단가·지정가·계단별 주수는 서버 계산): ①**계단 프리셋 드롭다운** — 코드 상수 `TRAIL_PRESETS` **고정 4종, 읽기 전용**. 표시 순서 = **단일 / 보수 / 표준 / 느슨**(기본값은 맨 앞 `단일`, 그 뒤로 트레일 폭이 좁은 것부터). 옵션은 **이름만** — 계단 수치는 바로 아래 편집 표에 그대로 보여 중복이다(2026-07-31 관리자님 지시, 다시 붙이지 말 것). 셸 HTML에 `window.__trailPresets`로 실려 모달 열 때 fetch 0. ⚠️ **프리셋 저장·삭제 기능은 두지 않는다**(2026-07-31 관리자님 지시로 제거 — 고른 뒤 아래 표에서 그 자리에 고쳐 쓰면 되므로 저장소·락·엔드포인트가 불필요했다. `state/trailing_presets.json`도 폐기). 프리셋을 늘리려면 상수를 고친다 ②그 아래 **계단 편집 테이블**(`하락/누적` **헤더 한 줄** + 행마다 `[__]% [__]%` + ✕, 아래 full-width `+ 계단 추가`, 최대 5) ③**최저 매도가**(선택, 비우면 제한 없음). ⚠️ **라벨을 행마다 반복하지 말 것**(2026-07-31 정리) — `.order-inputs` 실폭이 모바일 ~200px라 행마다 '하락'·'누적' 글자와 화살표를 넣으면 입력칸이 38px(실텍스트 26px)까지 눌린다. 헤더로 빼고 화살표를 지워 78px로 회복했고, number 스피너도 `-webkit-appearance:none`으로 없앴다(데스크톱에서 숫자를 가림). ⚠️ 헤더 행도 `.trail-step` 클래스라 **`trailSteps()`는 `:not(.trail-step-head)`로 걸러야 한다** — 안 그러면 입력칸 없는 행을 읽어 TypeError. ⚠️ 계단 0개면 헤더도 그리지 않는다. 단위(`(%)`·`(원)`)는 **라벨에 박는다** — 입력칸 옆에 붙이면 가로로 벌어져 스크롤이 생기고 number input 안쪽 absolute 접미사는 데스크톱 스피너와 겹친다. **누적 비중으로 입력받는 이유** — 관리자님이 그렇게 생각한다("30% 빠지면 전량"). 주문 수량인 추가분 환산은 `normalize_steps`가 한다. `handler.propose_trade(trail_steps, min_sell_price)`가 초기 고점을 `md['current_price']`로 정하고 `compute_step_levels`+`allocate_step_qty`로 계단별 가격·주수를 만든다. **0주가 된 계단은 떨어내되 단계 번호(n)는 유지**해 카드에서 몇 단계가 빠졌는지 보이게 한다. ⚠️ 트레일링에 `budget`(예산 환산) 금지 — 계단 주수는 보유수량을 나눠 만드는데 예산이 끼면 기준이 둘이 된다(`TRAIL_BUDGET`으로 거부). ⚠️ **고점 기준 선택 옵션은 2026-07-30 제거됨**(`peak_basis` / `52주 전고점` / `매수후 고점`) — 과거 고점을 기준으로 잡으면 손절선이 현재가 위로 올라가 등록 즉시 발동한다. **손실 종목은 등록 자체가 불가**(실측 제닉스로보틱스 현재가 4,805 · 매수후 고점 6,890 → 필요 폭 30.3% / 52주 19,940 → 75.9%, 둘 다 상한 30% 초과), **이익 종목은 과거 고점 ≈ 현재가라 결과가 같다**. 즉 차이가 날 때는 못 쓰고 쓸 수 있을 때는 차이가 없어 옵션을 없앴다. **다시 넣지 말 것.** ⚠️ **1단계(가장 얕은 계단) 손절선 ≥ 현재가면 `TRAIL_IMMEDIATE`로 거부** — 고점=현재가 고정이라 이제 최저 매도가가 현재가보다 높은 경우만 남는다. **거부 시점은 입력 시점**(2026-07-30 관리자님 지시로 propose 시점에서 이동) — `trailBlockReason()`이 입력값을 보고 사유 문자열을 내놓고, 걸리면 매도 버튼이 disable + title 에 사유. 계단 순서·범위 위반(`TRAIL_STEPS`)과 "이 수량으론 계단을 못 나눔"(`TRAIL_QTY`)도 같은 함수가 같은 문구로 먼저 막는다. 서버는 최후 방어선으로 유지. ⚠️ **버튼 `disabled`는 `refreshSubmitGate()` 한 곳에서만 결정한다** — 시장 phase 게이트(`updateMarketPhaseDisplay`, `/api/market_state` 주기 폴링)와 트레일 게이트가 같은 버튼을 건드려서, 예전처럼 각자 대입하면 주기 호출이 트레일 게이트를 덮어써 즉시발동 입력이 통과된다. phase 쪽은 `state.phaseCanTrade`/`phaseLabel`만 쓰고 판단을 위임. propose 진행 중에는 `btn.dataset.busy='1'`로 잠가 주기 호출이 버튼을 되살리지 못하게 하고, 응답·에러 후 busy 해제 + 재계산. `renderTrailPreview`는 조기 반환 경로(폭 미입력·시세 로딩)에서도 게이트가 걸려야 하므로 **함수 맨 앞에서** `refreshSubmitGate()`를 부른다. 클라이언트 미리보기(`renderTrailPreview`/`trailCondPrice`/`allocStepQty`/`trailWeights`/`floorTick`)는 서버와 **같은 식**이지만 실제 발주값은 서버 계산분이 승자 — 한쪽만 바꾸면 표시와 발주가 어긋나니 `orders/trailing.py` 수정 시 JS도 함께 고칠 것(**렌더된 페이지에서 함수 소스를 뽑아 node로 실행해 Python과 대조**하는 방식, 현재 418조합: 손절선 360·수량배분 54·비중환산 4). 키움엔 계단마다 스톱지정가로 나가고(`_submit_trailing_steps`가 레그별 `STOP_LIMIT` 제출) 트레일링은 우리 쪽 개념. **카드 1장·PIN 1개로 계단 N건을 승인**한다. **레그 독립 제출** — 얕은 계단부터 접수해 중간에 막혀도 가장 가까운 방어선이 먼저 걸리고, 한 레그가 실패해도 나머지는 시도하며 접수된 것만 `trailing.register_steps`로 등록한다(이미 나간 주문을 되돌리지 않는 이유는 취소도 실패할 수 있어 상태가 더 불분명해져서 — 대신 몇 단이 걸리고 몇 단이 실패했는지 메시지에 그대로 적는다). **등록 실패 시 주문은 이미 접수된 상태**라 메시지에 ⚠️ 경고를 붙이고 ledger `trailing_register_failed` 기록(숨기면 트레일링이 안 도는 걸 모른다). 트레일링·스톱지정가는 단일 계좌 예약이라 **2계좌 동시 매도 분기에서 제외**. 취소는 `[📋 진행중]`에서 해당 미체결 주문 취소 → 다음 감시 사이클이 사라진 예약을 자동 정리. ⚠️ 트레일링 예약이 미체결 매도로 잡혀 있으면 `/api/order/check`의 `_pending_sell_qty` 차감 덕에 **일반 매도 max_qty가 자동으로 줄어든다**(이중 매도 구조적 차단).
**텔레그램 발송 정책 (웹 매매)** — 거부·검증 에러는 토스트만, **매매등록(submit_with_pin 성공)·매매체결(fill_watcher)만** 텔레그램. PIN 메시지는 **iMessage** (Apple 도메인 바인딩 `@stock.hyowons.net #PIN`, iOS Safari OTP 자동입력). `handler.send_imessage_pin` (fire-and-forget Popen, AppleEvent timeout -1712 떠도 메시지는 큐로). credential `credentials/admin_imessage.json` `{"handle": "01012345678"}`. 자기 자신 iMessage self-send 가능 (mac → 본인 iCloud handle). **규칙(나→나 iMessage)**: 관리자 본인 handle로 보내는 iMessage는 항상 `--service imessage`(파란) 강제 — SMS 셀프발송 금지. 이유: iMessage 셀프발송은 Note-to-Self라 보낸 버블만 뜨고 OTP 도메인 자동입력이 정상 동작하지만, SMS 셀프발송은 통신사 loopback으로 초록·수신버블이 생기고 자동입력이 깨질 수 있음. 타인 대상(예: 가희 리마인더 `gahee_reminder._send_imessage`는 `--service sms`)은 예외.
@@ -154,7 +154,7 @@ OpenClaw 자동화는 두 갈래로 동작한다 (모두 Asia/Seoul):
- **stock.briefing-fallback-2030** — 평일 20:30 — 오늘 스냅샷 없으면 stock.briefing 재실행 (idempotent)
- **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.trailing-monitor** — 평일 09:00–15:30 **매 1분** (`StartCalendarInterval` 391엔트리, 스크립트 self-skip) — `trailing_monitor.py check`: **트레일링 스톱 감시**. ⚠️ **매매 API를 자동 호출하는 유일한 트리거** — 매매 자동 트리거 금지 규칙의 예외로 2026-07-30 관리자님 명시 승인. 호출하는 건 `kiwoom_order.modify_order` 하나뿐이고 신규 발주·수량·방향 변경 경로가 없음(PIN 승인 시 계좌·종목·수량·트레일 폭 확정, 감시는 조건단가 **상향만**). 예약 0건이면 즉시 종료(API 콜 0). 로그 `logs/stock-trailing-monitor.{log,err.log}`. ⚠️ **cadence 이력 2분→30초→1분**(전부 2026-07-30) — launchd 최소 단위가 1분이라 30초는 프로세스 내부 `--repeat 2 --gap 30`으로 구현했고 CLI 옵션은 살아있음(다시 쓸 땐 plist 인자만 추가). `StartInterval=30`은 GUI idle 시 발화 보류라 사용 금지
+- **stock.trailing-monitor** — 평일 09:00–15:30 **매 1분** (`StartCalendarInterval` 391엔트리, 스크립트 self-skip) — `trailing_monitor.py check`: **트레일링 스톱 감시**. ⚠️ **매매 API를 자동 호출하는 유일한 트리거** — 매매 자동 트리거 금지 규칙의 예외로 2026-07-30 관리자님 명시 승인. 호출하는 건 `kiwoom_order.modify_order` 하나뿐이고 신규 발주·수량·방향 변경 경로가 없음(PIN 승인 시 계좌·종목·계단별 수량·하락률 확정, 감시는 조건단가 **상향만**. 계단이 체결돼도 재배치=취소+신규발주는 하지 않는다). 예약 0건이면 즉시 종료(API 콜 0). ⚠️ 계단식이라 **정정 콜이 계단 수에 비례**(예약 3건×5계단이면 분당 최대 15콜). 로그 `logs/stock-trailing-monitor.{log,err.log}`. ⚠️ **cadence 이력 2분→30초→1분**(전부 2026-07-30) — launchd 최소 단위가 1분이라 30초는 프로세스 내부 `--repeat 2 --gap 30`으로 구현했고 CLI 옵션은 살아있음(다시 쓸 땐 plist 인자만 추가). `StartInterval=30`은 GUI idle 시 발화 보류라 사용 금지
- **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 자동갱신 토글이 참조)
diff --git a/agents/stock/workspace/scripts/behive_web.py b/agents/stock/workspace/scripts/behive_web.py
index 95b46d0..5384c59 100644
--- a/agents/stock/workspace/scripts/behive_web.py
+++ b/agents/stock/workspace/scripts/behive_web.py
@@ -2001,6 +2001,23 @@ def _set_stock_tag(code: str | None, name: str | None, text: str, leader: bool)
tmp.replace(STOCK_TAGS)
+# ---- 트레일링 계단 프리셋 (읽기 전용 · 고정 4종) ----
+# 계단 = [{'pct': 고점대비 하락률, 'cum': 그때까지 팔려 있어야 할 누적 비중}]
+# 누적으로 적는 이유는 관리자님이 그렇게 생각하기 때문이다("30% 빠지면 전량") —
+# 주문 수량인 추가분(20/30/50)으로의 환산은 orders/trailing.normalize_steps 가 한다.
+# 순서 = 기본값이 맨 앞(단일) + 트레일 폭이 좁은 것부터. 화면에서 고른 뒤 그 자리에서
+# 고칠 수 있으므로 저장 기능은 두지 않는다(2026-07-31 관리자님 지시로 제거).
+TRAIL_PRESETS = [
+ {'name': '단일', 'steps': [{'pct': 10, 'cum': 100}]},
+ {'name': '보수', 'steps': [{'pct': 5, 'cum': 30}, {'pct': 10, 'cum': 70},
+ {'pct': 15, 'cum': 100}]},
+ {'name': '표준', 'steps': [{'pct': 10, 'cum': 20}, {'pct': 20, 'cum': 50},
+ {'pct': 30, 'cum': 100}]},
+ {'name': '느슨', 'steps': [{'pct': 15, 'cum': 25}, {'pct': 25, 'cum': 50},
+ {'pct': 30, 'cum': 100}]},
+]
+
+
def _stock_notes_lock():
"""STOCK_NOTES 파일 직렬화 — _stock_tags_lock 과 동일 패턴, 별도 lock 파일."""
import fcntl as _fcntl
@@ -3633,21 +3650,35 @@ def _trailing_info_for(ord_no: str):
if now - _trailing_lookup_cache['ts'] > _TRAILING_LOOKUP_TTL:
try:
from orders import trailing as _trl
- by_ord = {r['ord_no']: r for r in _trl.list_active()}
+ # 예약 1건이 계단(레그) N개 = 미체결 주문 N건이라, 레그마다 (예약, 레그) 로 색인한다.
+ by_ord = {}
+ for r in _trl.list_active():
+ for s in r.get('steps') or []:
+ by_ord[s['ord_no']] = (r, s)
except Exception:
by_ord = {}
_trailing_lookup_cache['by_ord'] = by_ord
_trailing_lookup_cache['ts'] = now
- r = _trailing_lookup_cache['by_ord'].get(ord_no)
- if not r:
+ hit = _trailing_lookup_cache['by_ord'].get(ord_no)
+ if not hit:
return None
+ r, s = hit
+ steps = r.get('steps') or []
return {
- 'id': r['id'], 'trail_pct': r.get('trail_pct'), 'peak': r.get('peak', 0),
+ 'id': r['id'], 'peak': r.get('peak', 0),
'min_sell_price': r.get('min_sell_price'),
- 'modify_count': r.get('modify_count', 0),
+ # 이 주문이 몇 단계인지 + 예약 전체가 몇 단인지 — 미체결 목록엔 레그가 따로 뜨므로
+ # "3단 중 2단계" 를 보여줘야 다른 행과의 관계가 읽힌다.
+ 'step_n': s['n'], 'step_total': len(steps),
+ 'trail_pct': s.get('pct'), 'cum': s.get('cum'),
+ 'step_qty': s.get('qty', 0),
+ 'modify_count': s.get('modify_count', 0),
# 등록 시점 값 — 손절선·고점이 그 뒤로 얼마 올라왔는지 보여주는 데 쓴다.
- 'entry_cond_uv': r.get('entry_cond_uv', 0),
+ 'entry_cond_uv': s.get('entry_cond_uv', 0),
'entry_peak': r.get('entry_peak', 0),
+ # 형제 계단 — 이 예약의 전체 그림을 한 행에서 보여준다.
+ 'siblings': [{'n': x['n'], 'pct': x.get('pct'), 'cond_uv': x.get('cond_uv', 0),
+ 'qty': x.get('qty', 0), 'cum': x.get('cum')} for x in steps],
}
@@ -3737,7 +3768,19 @@ def _pending_detail_html(r: dict) -> str:
# (실측 entry_peak 4,860 vs peak 4,950). 등록 후 얼마나 올랐는지는
# 아래 '고점 상승' 행이 실제 값으로 보여준다.
mini.append(f'
고점 {trl.get("peak", 0):,}원 ')
- mini.append(f'트레일 폭 −{trl.get("trail_pct")}% ')
+ cum_v = trl.get('cum') or 0
+ cum_part = '전량' if cum_v >= 100 else f'누적 {cum_v:g}%'
+ mini.append(f'계단 {trl.get("step_n")}단계 / '
+ f'{trl.get("step_total")}단 · −{trl.get("trail_pct"):g}% '
+ f'({cum_part}) ')
+ if (trl.get('step_total') or 0) > 1:
+ # 형제 계단 — 미체결 목록엔 레그가 각각 뜨므로, 이 예약 전체가 어떤 모양인지
+ # 한 행에서 보이게 한다. 지금 행에 해당하는 계단은 굵게.
+ sib = ' · '.join(
+ (f'{x["n"]}:{x["cond_uv"]:,} ' if x['n'] == trl.get('step_n')
+ else f'{x["n"]}:{x["cond_uv"]:,}')
+ for x in (trl.get('siblings') or []))
+ mini.append(f'전체 계단 {sib} ')
if trl.get('min_sell_price'):
mini.append(f'최저 매도가 {trl["min_sell_price"]:,}원 ')
if cur_price > 0 and stop_p:
@@ -5130,10 +5173,11 @@ def _render_owner_panel(owner: str, d: dict, balances: dict, owner_label_text: s
_CSS = '''
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; overscroll-behavior-y: none; touch-action: manipulation; }
-body { font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Apple SD Gothic Neo", sans-serif; background: #0b0d12; color: #e6e6e6; -webkit-font-smoothing: antialiased; padding-bottom: calc(env(safe-area-inset-bottom) + 28px); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
+body { font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Apple SD Gothic Neo", sans-serif; background: #0b0d12; color: #e6e6e6; -webkit-font-smoothing: antialiased; padding-bottom: calc(env(safe-area-inset-bottom) + 44px); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
-/* 하단 고정 시장 지수 — 코스피/코스닥. viewport 최하단에 박힘. iOS 홈 인디케이터 영역만 safe-area 패딩으로 양보. */
-/* 증권사 스타일 무한 가로 스크롤. 같은 항목 세트를 2번 렌더 후 -50% 이동 → seamless loop. */
+/* 하단 고정 시장 지수. viewport 최하단에 박힘. iOS 홈 인디케이터 영역만 safe-area 패딩으로 양보. */
+/* 지수 2개 = 한 묶음. 바를 탭할 때마다 다음 묶음으로 순환(마지막 → 처음).
+ 자동 스크롤·자동 회전 없음 — 흘러가는 마퀴는 2026-07-31 관리자님 지시로 제거됐다. 되살리지 말 것. */
.market-ticker {
position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
background: rgba(11,13,18,0.96);
@@ -5142,43 +5186,45 @@ body { font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Apple
padding: 5px 0;
padding-bottom: calc(5px + env(safe-area-inset-bottom));
font-size: 10.5px;
+ /* line-height 1.2 고정: 라벨줄이 한글(닛케이225·금·은·동)이라 normal이면 ~1.45em로 늘어나 바 높이가 어긋난다. */
line-height: 1.2;
font-variant-numeric: tabular-nums;
color: #e6e6e6;
overflow: hidden;
white-space: nowrap;
+ /* 세로 3줄: 지수명 / 가격+등락 / 묶음 점. 점을 옆이 아니라 아래 줄 가운데로 둔 배치(2026-07-31 관리자님 지시). */
+ display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
+ /* iOS Safari는 비대화형 div에 cursor:pointer가 없으면 click을 합성하지 않는다 — 탭 전환의 전제조건. 지우지 말 것. */
+ cursor: pointer;
+ user-select: none; -webkit-user-select: none;
}
-.ticker-track {
- display: inline-flex;
- width: max-content;
- /* intro(5s linear): viewport 오른쪽 끝(100vw)에서 자연 위치(0)까지 일정 속도로 슬라이드 인 — 첫 로딩 시 KOSPI 잘림 방지.
- ease-out은 시작 순간이 peak 속도라 "엄청 빠름" 인상을 줘서 linear로 고정.
- scroll(20s linear infinite, 5s 지연): intro 끝난 직후 무한 가로 스크롤로 인계. translateX(0)에서 매끄럽게 연결. */
- animation: ticker-intro 5s linear, ticker-scroll 20s linear 5s infinite;
- will-change: transform;
+/* 세로 flex라 flex-grow를 주면 높이가 늘어난다 → 0 0 auto + width로 가로만 채운다.
+ max-width: PC·아이패드에서 두 칸이 화면 절반씩 벌어져 텅 비어 보이는 걸 막는 상한. */
+.ticker-page { flex: 0 0 auto; width: 100%; max-width: 520px; display: flex; align-items: center; min-height: 26px; }
+/* 탭 전환 때만 페이드. 20초 주기 자동 갱신(animate=false)은 값만 조용히 교체. */
+.ticker-page.fade { animation: ticker-fade 140ms ease-out; }
+@keyframes ticker-fade {
+ from { opacity: 0.35; }
+ to { opacity: 1; }
}
-.ticker-set { display: inline-flex; align-items: center; gap: 20px; flex-shrink: 0; }
-.ticker-sep { display: inline-flex; align-items: center; padding: 0 22px; color: #4a5060; font-size: 14px; font-weight: 700; user-select: none; }
-@keyframes ticker-intro {
- from { transform: translateX(100vw); }
- to { transform: translateX(0); }
-}
-@keyframes ticker-scroll {
- from { transform: translateX(0); }
- to { transform: translateX(-50%); }
-}
-/* PC 마우스 호버 시만 일시정지. 모바일 :active는 페이지 터치 후 잔류해서 ticker가 멈춰버리는 이슈로 제외. */
-@media (hover: hover) {
- .market-ticker:hover .ticker-track { animation-play-state: paused; }
-}
-.market-ticker .idx { display: inline-flex; align-items: baseline; gap: 4px; font-size: 10.5px; }
-.market-ticker .idx-label { color: #8b8f9a; font-weight: 500; font-size: 10.5px; }
-.market-ticker .idx-price { color: #f0f0f0; font-weight: 500; font-size: 10.5px; }
-.market-ticker .idx-delta { font-weight: 400; font-size: 10.5px; }
+.market-ticker .idx { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 1px; }
+/* max-width+overflow: 칸보다 긴 내용은 오른쪽만 잘린다. .idx에 걸면 가운데정렬 탓에 양끝이 깎여 앞글자까지 사라진다. */
+.market-ticker .idx-label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; color: #8b8f9a; font-weight: 500; font-size: 9.5px; }
+.market-ticker .idx-val { max-width: 100%; min-width: 0; overflow: hidden; display: flex; align-items: baseline; gap: 4px; }
+/* 좁은 화면에서 칸을 넘칠 때: 가격은 절대 안 줄이고(flex:0 0 auto) 등락만 말줄임.
+ 둘 다 기본 shrink로 두면 flex가 양쪽을 눌러 앞글자까지 깎이고 두 칸 폭도 어긋난다(320px 실측). */
+.market-ticker .idx-price { flex: 0 0 auto; color: #f0f0f0; font-weight: 500; font-size: 10.5px; }
+.market-ticker .idx-delta { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 400; font-size: 10.5px; }
.market-ticker .idx-delta.up { color: #ff4d5e; }
.market-ticker .idx-delta.down { color: #4d9bff; }
.market-ticker .idx-delta.flat { color: #8b8f9a; }
-.market-ticker .idx-empty { color: #5a5f6c; font-size: 10px; padding: 0 14px; }
+/* 묶음 점 — 3번째 줄 가운데(부모 align-items:center가 가로 정렬). 지수 칸과 가로 폭을 나눠쓰지 않으므로
+ 묶음 수가 줄어도 칸 폭은 영향 없다(옆에 두던 시절 필요했던 min-width 고정폭은 그래서 제거됨). */
+.ticker-dots { flex: 0 0 auto; display: flex; align-items: center; gap: 3px; }
+.ticker-dots i { width: 4px; height: 4px; border-radius: 50%; background: #333844; }
+.ticker-dots i.on { background: #c9ccd3; }
+/* min-height/line-height를 표시 상태 content 높이(26 + gap 3 + 점 4 = 33)와 맞춰 로딩↔표시 전환 때 바가 안 튀게. */
+.market-ticker .idx-empty { flex: 0 0 auto; width: 100%; text-align: center; min-height: 33px; line-height: 33px; color: #5a5f6c; font-size: 10px; }
/* ── pull-to-refresh ── */
/* .page가 손가락 따라 translateY로 내려감 → topbar+컨텐츠 다 함께 내려가고 그 위로 빈공간 노출.
@@ -5469,6 +5515,39 @@ dl.pending-detail dl.trail-mini dd b { color: #d9a84a; font-weight: 600; }
.trail-pv-kv dd { margin: 0; text-align: right; color: #a8adb8; font-variant-numeric: tabular-nums; }
.trail-pv-kv dd b { color: #cfd3dc; font-weight: 600; }
.trail-pv-note { font-size: 10px; color: #6f7480; line-height: 1.45; border-top: 1px solid #1a1e28; padding-top: 6px; }
+/* 계단 편집기 — .order-inputs 실폭이 모바일 ~200px 라 열 하나하나가 아깝다.
+ 행마다 "하락/누적" 글자를 반복하는 대신 헤더 한 줄로 빼고, 화살표도 지웠다.
+ 그 결과 입력칸이 38px → 78px 로 넓어진다(고정폭 58 → 44, 라벨·단위 21px 회수).
+ 스피너를 없애는 것도 폭 확보의 일부 — 데스크톱에서 화살표가 숫자를 가리던 문제도 같이 해결. */
+.trail-steps { display: flex; flex-direction: column; gap: 3px; margin-top: 5px; min-width: 0; }
+.trail-step { display: grid; align-items: center; gap: 4px; min-width: 0;
+ grid-template-columns: 12px minmax(0,1fr) minmax(0,1fr) 16px; font-size: 10px; color: #7c8290; }
+.trail-step-head { color: #5a5f6c; font-size: 9px; letter-spacing: .02em; }
+.trail-step-head span { text-align: center; }
+.trail-step .tsn { color: #6f7480; font-variant-numeric: tabular-nums; text-align: center; }
+.trail-step .tsw { display: flex; align-items: center; gap: 2px; min-width: 0; }
+.trail-step input { width: 100%; min-width: 0; padding: 4px 5px; font-size: 12px;
+ background: #0f131c; border: 1px solid #262b38; border-radius: 5px; color: #cfd3dc;
+ font-variant-numeric: tabular-nums; text-align: right; }
+.trail-step input::-webkit-outer-spin-button,
+.trail-step input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
+.trail-step .tsu { color: #6f7480; flex: 0 0 auto; font-size: 9px; }
+.trail-step .tsx { background: none; border: 0; color: #5a5f6c; cursor: pointer; font-size: 12px;
+ padding: 0; line-height: 1; }
+.trail-step .tsx:hover { color: #e05555; }
+.trail-add-btn { width: 100%; margin-top: 5px; padding: 5px 6px; font-size: 10px; cursor: pointer;
+ background: #171b26; border: 1px dashed #2c3140; border-radius: 6px; color: #8b8f9a; }
+.trail-add-btn:hover { background: #1d2230; color: #cfd3dc; border-color: #3a4152; }
+/* 미리보기 계단 목록 — 한 줄에 넷을 욱여넣으면(계단·가격·주수·누적) 200px 를 넘겨 접힌다.
+ 1행 "N단계 −P% … 가격", 2행 "주수 · 누적" 으로 나눠 가격을 우측 정렬로 세운다. */
+.trail-pv-steps { display: flex; flex-direction: column; gap: 5px; font-size: 10px;
+ border-top: 1px solid #1a1e28; padding-top: 6px; min-width: 0; }
+.trail-pv-step { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1px 6px;
+ align-items: baseline; font-variant-numeric: tabular-nums; }
+.trail-pv-step .sp { color: #7c8290; }
+.trail-pv-step .sv { color: #cfd3dc; font-weight: 600; text-align: right; }
+.trail-pv-step .sq { grid-column: 1 / -1; color: #6f7480; font-size: 9px; }
+.trail-pv-step.tied .sv { color: #d9a84a; }
.trail-pv-badge { display: inline-block; font-size: 9px; padding: 1px 5px; border-radius: 999px;
background: #2a2313; color: #d9a84a; margin-left: 4px; vertical-align: middle; }
@@ -5930,9 +6009,9 @@ nav.tabs a.tab-label:hover { color: #c9ccd3; }
.tab-content { display: none; }
/* 짧은 탭(자산정보 등)도 viewport를 채워 모바일 Safari 주소창 토글이 일관되게 동작하도록.
ticker(fixed bottom) 위치가 다른 탭과 시각적으로 동일해진다. */
-section.tab-content { min-height: calc(100dvh - 110px); }
+section.tab-content { min-height: calc(100dvh - 126px); }
@supports not (height: 100dvh) {
- section.tab-content { min-height: calc(100vh - 110px); }
+ section.tab-content { min-height: calc(100vh - 126px); }
}
/* ── 계좌현황 패널 ── */
@@ -8080,16 +8159,14 @@ def _render_order_modal() -> str:
''
# 단위(%·원)를 라벨에 박는다 — 입력칸 옆에 붙이면 가로로 벌어져 스크롤이 생기고,
# number input 안쪽 absolute 접미사는 데스크톱 스피너와 겹친다.
- # 트레일 폭은 드롭다운(2026-07-30 관리자님 요청). 옵션 텍스트에 % 가 들어가므로
- # 라벨의 (%) 표기는 뺀다. select 는 label(flex column) 안에서 full-width 로 늘어나
- # 폭 문제가 없다 — 값이 '10%' 처럼 짧아 더욱 안전.
- '트레일 폭 고점 대비 이만큼 떨어지면 매도 '
- # 1~30% 1%단위. 상한 30 은 orders/trailing.MAX_TRAIL_PCT 와 맞춰야 한다
- # (그쪽 주석에 세 곳 동시 수정 규칙 있음).
- ''
- + ''.join(f'{v}% '
- for v in range(1, 31))
- + ' '
+ # 계단식(2026-07-31): 하락률이 깊어질수록 더 많이 파는 분할 매도. 프리셋으로 고르고
+ # 그 자리에서 계단을 고칠 수 있다. 계단 1개짜리 프리셋이 종전의 단일 트레일링이다.
+ '매도 계단 '
+ '고점 대비 얼마 빠지면 얼마나 팔지 '
+ # 프리셋은 고정 4종 읽기 전용 — 고른 뒤 아래 표에서 그 자리에 고쳐 쓴다.
+ ' '
+ '
'
+ '+ 계단 추가 '
'최저 매도가 (원) 비우면 제한 없음 · 손절선 하한 '
' '
'
'
@@ -8418,6 +8495,9 @@ def render_html() -> str:
first_tid = descs[0][0]
market_active = _market_active_now()
now = datetime.now(KST).strftime('%Y-%m-%d %H:%M:%S')
+ # 계단 프리셋은 셸에 실어 보낸다 — 거래 모달을 열 때마다 fetch 하면 느리고,
+ # 고정 4종이라 셸에 넣어도 부담이 없다.
+ trail_presets_json = json.dumps(TRAIL_PRESETS, ensure_ascii=False)
nav_html = '\n'.join(
f'{html.escape(label)} '
@@ -8491,70 +8571,63 @@ def render_html() -> str:
'}'
'window.__behive_set_market=setMarket;'
'var tickerItems=[];'
+ # 현재 보고 있는 묶음 index. 자동 갱신(20초 주기)에도 유지돼 보던 묶음이 안 튄다.
+ 'var tickerPage=0;'
+ 'var TICKER_PER_PAGE=2;'
'var arrowMap={up:"▲",down:"▼",flat:"-"};'
- 'function tickerItemHtml(item){'
+ 'function tickerPages(){return Math.ceil(tickerItems.length/TICKER_PER_PAGE);}'
+ # 2줄 칸: 윗줄 지수명 / 아랫줄 가격+등락. 1줄로는 닛케이225 같은 조합이 칸 폭을 넘는다.
+ 'function tickerCellHtml(item){'
'var d=item.direction||"flat";'
- # label은 data-key로 박아 in-place 업데이트 매칭 키로 사용.
- 'var key=String(item.label).replace(/"/g,""");'
- 'return \'\'+'
+ 'return \'\'+'
'\'\'+item.label+\' \'+'
- '\'\'+item.price+\' \'+'
- '\'\'+arrowMap[d]+\' \'+item.change+\' (\'+item.pct+\'%) \';'
+ '\'\'+item.price+\' \'+'
+ '\'\'+arrowMap[d]+\' \'+item.change+\' (\'+item.pct+\'%)
\';'
'}'
- # 같은 세트를 2번 렌더 → CSS translateX(-50%)로 seamless 무한 스크롤.
- 'function renderTicker(){'
+ 'function tickerDotsHtml(){'
+ 'var n=tickerPages();if(n<2)return "";'
+ 'var s="";'
+ 'for(var i=0;i\':" ");}'
+ 'return \'\'+s+\' \';'
+ '}'
+ # animate=true(탭)일 때만 페이드. 자동 갱신은 값만 조용히 교체.
+ # 점(.ticker-dots)은 .ticker-page 바깥 형제로 둔다 — 안에 넣으면 탭할 때 같이 깜빡인다.
+ 'function renderTicker(animate){'
'var el=document.getElementById("market-ticker");if(!el)return;'
- 'if(!tickerItems.length){el.innerHTML="데이터 없음 ";return;}'
- 'var setHtml=tickerItems.map(tickerItemHtml).join("")+\'· \';'
- 'el.innerHTML=\'\'+'
- '\'
\'+setHtml+\'
\'+'
- '\'
\'+setHtml+\'
\'+'
- '\'
\';'
- # intro 속도 = scroll 속도가 되도록 동적 계산.
- # scroll은 20s에 트랙 절반(=한 세트 너비) 이동 → px/s = setW/20.
- # intro 거리는 viewport 너비(100vw) → duration = viewport / (setW/20) = viewport*20/setW.
- # 2~12s 캡: 너무 짧으면 pop-in, 너무 길면 사용자가 첫 등장 기다림.
- 'var trk=el.querySelector(".ticker-track");'
- 'if(trk){'
- 'var setW=trk.scrollWidth/2,vw=window.innerWidth||document.documentElement.clientWidth||0;'
- 'if(setW>0&&vw>0){'
- 'var d=vw*20/setW;'
- 'if(d<2)d=2;else if(d>12)d=12;'
- 'trk.style.animation="ticker-intro "+d+"s linear, ticker-scroll 20s linear "+d+"s infinite";'
- '}'
- '}'
- '}'
- # 항목 키 셋이 동일하면 가격·등락만 in-place 갱신 → CSS 애니메이션 진행 상태 보존.
- # 자동 갱신 중에도 스크롤이 0초부터 리셋되지 않는다.
- 'function updateTickerInPlace(arr){'
- 'var el=document.getElementById("market-ticker");if(!el)return false;'
- 'var nodes=el.querySelectorAll(".idx[data-key]");if(!nodes.length)return false;'
- 'var byKey={};'
- 'for(var i=0;i데이터 없음 \';return;}'
+ 'var n=tickerPages();'
+ # 지수 조회 실패로 개수가 줄면 clamp. 0으로 되돌리면 보던 묶음에서 튕겨나간다.
+ 'if(tickerPage>n-1)tickerPage=n-1;'
+ 'if(tickerPage<0)tickerPage=0;'
+ 'var start=tickerPage*TICKER_PER_PAGE;'
+ 'var page=tickerItems.slice(start,start+TICKER_PER_PAGE);'
+ 'var cells=page.map(tickerCellHtml).join("");'
+ # 홀수 개(조회 하나 실패)면 마지막 묶음이 한 칸뿐 → 빈 칸을 채워 왼쪽 절반에 고정.
+ 'if(page.length\';'
+ 'el.innerHTML=\'\'+cells+\'
\'+tickerDotsHtml();'
'}'
# 빈 배열이면 기존 표시 유지 (owner-only 응답에서 ticker_items 비어도 stale 보존).
'function setTicker(arr){'
- 'if(!arr||!arr.length){if(!tickerItems.length)renderTicker();return;}'
- 'if(updateTickerInPlace(arr)){tickerItems=arr;return;}'
+ 'if(!arr||!arr.length){if(!tickerItems.length)renderTicker(false);return;}'
'tickerItems=arr;'
- 'renderTicker();'
+ 'renderTicker(false);'
'}'
+ # 바 아무 곳이나 탭 → 다음 묶음. 마지막이면 처음으로.
+ # touchend가 아니라 click을 쓴다: 스크롤 드래그(터치 시작점이 바여도 touchend는 바에 꽂힘)·
+ # 멀티터치 중복발화·touchcancel 처리를 브라우저에 맡길 수 있다. 직접 처리하면 셋 다 오탐.
+ # 대신 nodbltap_script가 300ms 내 두번째 탭의 click을 삼키므로 거기서 이 바만 예외 처리했다.
+ '(function(){'
+ 'var el=document.getElementById("market-ticker");if(!el)return;'
+ 'function nextPage(){'
+ 'var n=tickerPages();if(n<2)return;'
+ 'tickerPage=(tickerPage+1)%n;'
+ 'renderTicker(true);'
+ '}'
+ 'el.addEventListener("click",nextPage);'
+ 'el.addEventListener("keydown",function(e){'
+ 'if(e.key==="Enter"||e.key===" "){e.preventDefault();nextPage();}'
+ '});'
+ '})();'
'function apply(p){'
# 서버 코드가 갱신됐는데(=build 불일치, __build 없는 옛 페이지 포함) 옛 인라인 JS/CSS로 도는 경우
# build 당 1회만 강제 리로드(sessionStorage 가드 — 리로드로도 안 맞으면 루프 없이 포기).
@@ -9760,12 +9833,17 @@ def render_html() -> str:
# 더블탭 zoom 차단 — iOS Safari가 `touch-action: manipulation`을 무시할 때 폴백.
# 300ms 안에 두 번째 touchend가 들어오면 preventDefault → 시스템 zoom 동작·동시 발생하는 ghost click 둘 다 억제.
# 첫 탭의 click은 정상 dispatch되므로 details 토글·새로고침 버튼 등 단일 탭 UX 영향 없음.
+ # 예외: 하단 지수 바(#market-ticker)는 탭할 때마다 묶음을 넘기는 UI라 빠른 연타가 정상 사용이다.
+ # 여기서 걸러내면 두 번째 탭부터 click이 안 와서 한 칸씩 건너뛴다. 그 바만 억제 대상에서 뺀다
+ # (더블탭 zoom은 html,body의 touch-action: manipulation이 1차로 막고, 이 바는 36px 최하단 띠라 위험이 작다).
nodbltap_script = (
''
@@ -11448,62 +11526,155 @@ function refreshStopUI(){
if(priceRow) priceRow.style.display = isTrail ? 'none' : '';
var priceLabel = $('[data-order-price-label]');
if(priceLabel) priceLabel.textContent = isStop ? '매도 단가' : '단가';
- if(isTrail) renderTrailPreview();
+ if(isTrail){
+ // 처음 트레일링을 고른 순간에만 프리셋을 채운다 — 이미 편집 중이면 덮어쓰지 않는다.
+ var psel = $('[data-trail-preset]');
+ if(psel && !psel.options.length){ renderTrailPresetSelect(); applyTrailPreset(); }
+ else renderTrailPreview();
+ }
else refreshSubmitGate(); // 트레일링에서 빠져나오면 트레일 게이트를 풀어야 한다
}
-// 트레일링 입력값 읽기 (트레일 폭·최저 매도가). 미리보기·propose 공용.
+// ---- 계단식 트레일링 (2026-07-31) ----
+// 계단 = {pct: 고점 대비 하락률, cum: 그때까지 팔려 있어야 할 누적 비중}.
// 초기 고점은 항상 등록 시점 현재가 — 과거 고점 기준 옵션은 2026-07-30 제거됨.
-function trailInputs(){
- return {
- pct: parseFloat(($('[data-order-trail-input]')||{}).value || '0'),
- minPrice: parseInt(($('[data-order-trail-min]')||{}).value || '0', 10) || 0
- };
+function trailPresets(){ return window.__trailPresets || []; }
+function trailSteps(){
+ // :not(.trail-step-head) — 헤더도 같은 .trail-step 이라 빼지 않으면 입력칸 없는 행을 읽는다.
+ var out = [],
+ rows = document.querySelectorAll('[data-trail-steps] .trail-step:not(.trail-step-head)');
+ for(var i=0;i 0)) return weights.map(function(){ return 0; });
+ var exact = weights.map(function(w){ return total * w / 100; });
+ var base = exact.map(function(x){ return Math.floor(x); });
+ var sumE = 0, sumB = 0;
+ exact.forEach(function(x){ sumE += x; });
+ base.forEach(function(x){ sumB += x; });
+ var remain = Math.round(sumE) - sumB;
+ var order = exact.map(function(x,i){ return {i:i, f:x - base[i]}; })
+ .sort(function(a,b){ return b.f - a.f; });
+ for(var k=0; k 0 ? floorTick(minPrice) : 0;
return { cond: Math.max(cond, floorUv), floorApplied: floorUv > cond };
}
+// 라벨은 헤더 한 줄로만 — 행마다 "하락/누적" 을 반복하면 좁은 폭에서 입력칸이 절반으로 줄어든다.
+// 계단이 0개면 헤더도 그리지 않는다(빈 표 머리만 떠 있으면 뭐가 빠진 것처럼 보인다).
+function renderTrailStepRows(steps){
+ var box = $('[data-trail-steps]'); if(!box) return;
+ if(!steps.length){ box.innerHTML = ''; return; }
+ var head = '' +
+ '하락 누적
';
+ box.innerHTML = head + steps.map(function(s, i){
+ return '' +
+ '' + (i+1) + ' ' +
+ ' ' +
+ '% ' +
+ ' ' +
+ '% ' +
+ '✕ ' +
+ '
';
+ }).join('');
+}
+// 첫 항목(단일)이 기본값 — TRAIL_PRESETS 순서가 곧 표시 순서다.
+// 옵션은 이름만 — 계단 수치는 바로 아래 편집 표에 그대로 보이므로 중복이다.
+function renderTrailPresetSelect(){
+ var sel = $('[data-trail-preset]'); if(!sel) return;
+ sel.innerHTML = '';
+ trailPresets().forEach(function(p, i){
+ var opt = document.createElement('option');
+ opt.value = String(i);
+ opt.textContent = p.name;
+ sel.appendChild(opt);
+ });
+ sel.value = '0';
+}
+function applyTrailPreset(){
+ var sel = $('[data-trail-preset]'); if(!sel) return;
+ var p = trailPresets()[parseInt(sel.value, 10)];
+ if(p) renderTrailStepRows(p.steps);
+ renderTrailPreview();
+}
function renderTrailPreview(){
- // 게이트 갱신은 조기 반환보다 먼저 — 폭이 비었거나 시세 로딩 중일 때도 버튼이 잠겨야 한다.
+ // 게이트 갱신은 조기 반환보다 먼저 — 계단이 비었거나 시세 로딩 중일 때도 버튼이 잠겨야 한다.
// trailBlockReason 이 DOM 을 직접 읽으므로 호출 순서에 의존하지 않는다.
refreshSubmitGate();
var el = $('[data-order-trail-preview]'); if(!el) return;
- var t = trailInputs();
+ var steps = trailSteps();
+ var minPrice = trailMinPrice();
var cur = (state.lastCheck && state.lastCheck.cur_price) || (state.lastBook && state.lastBook.price) || 0;
- if(!(t.pct > 0) || !(cur > 0)){ el.textContent = ''; return; }
+ if(!steps.length || !(cur > 0)){ el.textContent = ''; return; }
+ var qty = parseInt(($('[data-order-qty]')||{}).value || '0', 10) || 0;
+ var reason = trailBlockReason();
var peak = cur; // 초기 고점 = 등록 시점 현재가 (서버 handler 와 동일)
- var r = trailCondPrice(peak, t.pct, t.minPrice);
- var bad = (r.cond >= cur);
+ var qtys = allocStepQty(qty, trailWeights(steps));
- // 결론(손절선)을 카드 상단에 크게, 근거는 라벨/값 표로, 안내는 하단 작게.
var hero, note;
- if(bad){
- // 서버도 TRAIL_IMMEDIATE 로 거부한다 — PIN 발급 왕복 전에 여기서 먼저 알려준다.
+ if(reason){
+ // 서버도 같은 조건으로 거부한다 — PIN 발급 왕복 전에 여기서 먼저 알려준다.
hero = '등록할 수 없습니다
' +
- '손절선 ' + fmt(r.cond) + '원 ≥ 현재가 ' + fmt(cur) + '원
' +
- '조건을 이미 넘어 등록 즉시 발동됩니다
';
- note = r.floorApplied
- ? '최저 매도가를 현재가보다 낮게 내려주세요.'
- : '트레일 폭을 넓혀주세요.';
+ '' + reason + '
';
+ note = '위 입력을 고쳐주세요.';
} else {
- var pctFromCur = cur > 0 ? ((cur - r.cond) / cur * 100) : 0;
- hero = '지금 등록하면 손절선
' +
- '' + fmt(r.cond) + '원' +
- (r.floorApplied ? '최저가 적용 ' : '') + '
' +
- '현재가보다 ' + pctFromCur.toFixed(1) + '% 아래 · 여기 닿으면 매도
';
- note = '고점이 오르면 손절선도 따라 올라갑니다 . 내려가지는 않습니다.';
+ var r0 = trailCondPrice(peak, steps[0].pct, minPrice);
+ var pctFromCur = ((cur - r0.cond) / cur * 100);
+ hero = '지금 등록하면 1단계 손절선
' +
+ '' + fmt(r0.cond) + '원' +
+ (r0.floorApplied ? '최저가 적용 ' : '') + '
' +
+ '현재가보다 ' + pctFromCur.toFixed(1) + '% 아래 · 여기 닿으면 ' +
+ (qtys[0] > 0 ? fmt(qtys[0]) + '주' : '') + ' 매도
';
+ note = '고점이 오르면 계단이 통째로 따라 올라갑니다 . 내려가지는 않습니다.';
}
- var kv = [];
- kv.push('시작 고점 ' + fmt(peak) + '원 등록 시점 현재가 ');
- kv.push('트레일 폭 −' + t.pct + '% ');
- if(t.minPrice > 0) kv.push('최저 매도가 ' + fmt(t.minPrice) + '원 ');
+ var rows = steps.map(function(s, i){
+ var r = trailCondPrice(peak, s.pct, minPrice);
+ var cum = (s.cum >= 100 ? '전량' : '누적 ' + s.cum + '%');
+ var q = qtys[i] > 0 ? fmt(qtys[i]) + '주' : '0주';
+ return '' +
+ '' + (i+1) + '단계 −' + s.pct + '% ' +
+ '' + fmt(r.cond) + '원 ' +
+ '' + q + ' · ' + cum + '
';
+ }).join('');
+ var allotted = 0;
+ qtys.forEach(function(q){ allotted += q; });
+ if(qty > 0 && allotted < qty){
+ // 이 행은 1행짜리 — 계단 행처럼 2행으로 쪼개면 "나머지" 아래 숫자가 떠 어색하다.
+ rows += '나머지 ' + fmt(qty - allotted) +
+ '주 스톱 없음
';
+ }
- el.innerHTML = '' +
+ var kv = ['
시작 고점 ' + fmt(peak) + '원 등록 시점 현재가'];
+ if(minPrice > 0) kv.push('
최저 매도가 ' + fmt(minPrice) + '원 ');
+
+ el.innerHTML = '
' +
'
' + hero + '
' +
+ '
' + rows + '
' +
'
' + kv.join('') + ' ' +
'
' + note + '
' +
'
';
@@ -11923,6 +12094,12 @@ function loadOpenOrders(){
}
// 고점에 기준 라벨을 붙이지 않는다 — 서버 렌더와 같은 이유(peak 는 갱신된 현재 고점).
tb.push('고점 ' + fmt(r.trailing.peak) + '원 대비 −' + r.trailing.trail_pct + '%');
+ // 계단 위치 — 미체결 목록엔 레그가 각각 뜨므로 "3단 중 2단계" 를 밝혀야 관계가 읽힌다.
+ if((r.trailing.step_total || 0) > 1){
+ var cum = r.trailing.cum || 0;
+ tb.push(r.trailing.step_n + '단계/' + r.trailing.step_total + '단 (' +
+ (cum >= 100 ? '전량' : '누적 ' + cum + '%') + ')');
+ }
if(r.trailing.min_sell_price) tb.push('최저 ' + fmt(r.trailing.min_sell_price) + '원');
if(r.cur_price && r.stop_price){
// 손절선 기준 여유폭 — 분모는 손절선(라벨과 계산 기준을 일치시킴).
@@ -12036,15 +12213,36 @@ function updateMarketPhaseDisplay(){
function trailBlockReason(){
var otSel = $('[data-order-type]');
if(!otSel || otSel.value !== 'TRAILING_STOP') return '';
- var t = trailInputs();
- if(!(t.pct >= 0.5 && t.pct <= 30)) return '트레일 폭은 0.5~30% 범위로 입력하세요';
+ // 계단 검증은 서버 orders/trailing.normalize_steps 와 같은 규칙 — 순서·범위가 어긋나면
+ // 서버가 TRAIL_STEPS 로 거부하므로, PIN 왕복 전에 여기서 같은 문구로 막는다.
+ var steps = trailSteps();
+ if(!steps.length) return '계단을 하나 이상 추가하세요';
+ if(steps.length > 5) return '계단은 최대 5개입니다';
+ var prevP = 0, prevC = 0;
+ for(var i=0;i
= 0.5 && s.pct <= 30)) return n + '단계 하락률은 0.5~30% 범위로 입력하세요';
+ if(s.pct <= prevP) return n + '단계 하락률이 앞 계단(' + prevP + '%)보다 깊어야 합니다';
+ if(!(s.cum > 0 && s.cum <= 100)) return n + '단계 누적 비중은 1~100% 범위로 입력하세요';
+ if(s.cum <= prevC) return n + '단계 누적 비중이 앞 계단(' + prevC + '%)보다 커야 합니다';
+ prevP = s.pct; prevC = s.cum;
+ }
var cur = (state.lastCheck && state.lastCheck.cur_price) || (state.lastBook && state.lastBook.price) || 0;
if(!(cur > 0)) return '현재가를 받는 중입니다';
- var r = trailCondPrice(cur, t.pct, t.minPrice); // 초기 고점 = 현재가
+ // 가장 얕은 계단이 제일 먼저 발동한다 — 이게 현재가 이상이면 등록 즉시 터진다.
+ var minPrice = trailMinPrice();
+ var r = trailCondPrice(cur, steps[0].pct, minPrice); // 초기 고점 = 현재가
if(r.cond >= cur){
return r.floorApplied
- ? ('최저 매도가 ' + fmt(t.minPrice) + '원이 현재가 ' + fmt(cur) + '원보다 높아 즉시 발동됩니다')
- : ('손절선 ' + fmt(r.cond) + '원이 현재가 ' + fmt(cur) + '원 이상이라 즉시 발동됩니다');
+ ? ('최저 매도가 ' + fmt(minPrice) + '원이 현재가 ' + fmt(cur) + '원보다 높아 즉시 발동됩니다')
+ : ('1단계 손절선 ' + fmt(r.cond) + '원이 현재가 ' + fmt(cur) + '원 이상이라 즉시 발동됩니다');
+ }
+ var qty = parseInt(($('[data-order-qty]')||{}).value || '0', 10) || 0;
+ if(qty > 0){
+ var qs = allocStepQty(qty, trailWeights(steps));
+ var any = false;
+ qs.forEach(function(q){ if(q > 0) any = true; });
+ if(!any) return fmt(qty) + '주로는 계단을 나눌 수 없습니다 (수량을 늘리거나 계단을 줄이세요)';
}
return '';
}
@@ -12298,15 +12496,15 @@ function doPropose(){
var qty = parseInt($('[data-order-qty]').value || '0', 10);
var price = parseInt($('[data-order-price-input]').value || '0', 10);
var stopPrice = parseInt(($('[data-order-stop-input]')||{}).value || '0', 10);
- var trail = trailInputs();
- var trailPct = trail.pct;
+ var trailStepList = trailSteps();
+ var trailMin = trailMinPrice();
if(!account){ setMsg('계좌를 선택하세요', 'error'); return; }
if(qty <= 0){ setMsg('수량을 입력하세요', 'error'); return; }
if(orderType === 'LIMIT' && price <= 0){ setMsg('지정가는 단가가 필요합니다', 'error'); return; }
if(orderType === 'TRAILING_STOP'){
if(state.side !== 'SELL'){ setMsg('트레일링 스톱은 매도만 가능합니다', 'error'); return; }
- // 트레일 폭·즉시발동 검사는 입력 시점에 trailBlockReason 이 하고, 걸리면 매도 버튼이
- // 비활성이라 여기 도달하지 않는다. 서버(TRAIL_IMMEDIATE)가 최후 방어선.
+ // 계단 검증·즉시발동 검사는 입력 시점에 trailBlockReason 이 하고, 걸리면 매도 버튼이
+ // 비활성이라 여기 도달하지 않는다. 서버(TRAIL_STEPS/TRAIL_IMMEDIATE)가 최후 방어선.
}
if(orderType === 'STOP_LIMIT'){
if(state.side !== 'SELL'){ setMsg('스톱지정가는 매도만 가능합니다', 'error'); return; }
@@ -12331,8 +12529,8 @@ function doPropose(){
}
// 검증 통과 — 매수/매도 방향 최종 확인 팝업 (오타 방지). 확인 시에만 실제 매매로 진행.
state.pendingOrder = {account: account, orderType: orderType, qty: qty, price: price,
- stopPrice: stopPrice, trailPct: trailPct,
- trailMinPrice: trail.minPrice};
+ stopPrice: stopPrice, trailSteps: trailStepList,
+ trailMinPrice: trailMin};
openOrderConfirm();
}
// 방향 확인 후 실제 매매 진행 — 전량매도 sell-choice 분기 포함.
@@ -12352,7 +12550,7 @@ function doProposeConfirmed(){
return;
}
}
- proposeSingle(account, orderType, qty, price, po.stopPrice, po.trailPct, po.trailMinPrice);
+ proposeSingle(account, orderType, qty, price, po.stopPrice, po.trailSteps, po.trailMinPrice);
}
// ── 매수/매도 방향 확인 모달 ──
// 매수·매도 버튼을 둘 다 띄우고 관리자님이 직접 맞는 방향을 누르게 함(위치 랜덤).
@@ -12370,8 +12568,11 @@ function openOrderConfirm(){
var curNow = (state.lastCheck && state.lastCheck.cur_price) || (state.lastBook && state.lastBook.price) || 0;
// 트레일링은 단가를 서버가 계산 — 확인 팝업엔 예상 손절선을 보여준다.
var trailPeak = isTrail ? curNow : 0; // 초기 고점 = 등록 시점 현재가
- var trailRes = isTrail ? trailCondPrice(trailPeak, po.trailPct, po.trailMinPrice) : {cond: 0, floorApplied: false};
- var trailCond = trailRes.cond;
+ var trailStepsPo = (po.trailSteps || []);
+ var trailRes = (isTrail && trailStepsPo.length)
+ ? trailCondPrice(trailPeak, trailStepsPo[0].pct, po.trailMinPrice)
+ : {cond: 0, floorApplied: false};
+ var trailCond = trailRes.cond; // 1단계(가장 먼저 발동할 계단) 손절선
var priceStr = (po.orderType === 'MARKET') ? '시장가' : (fmt(po.price) + '원');
var sum = $oc('[data-order-confirm-summary]');
if(sum){
@@ -12388,12 +12589,19 @@ function openOrderConfirm(){
var stopLine = isStop ? ('· 조건단가: ' + fmt(po.stopPrice) + '원 도달 시 (예약) ') : '';
var priceLine;
if(isTrail){
+ var poQtys = allocStepQty(po.qty, trailWeights(trailStepsPo));
+ var stepLines = trailStepsPo.map(function(s, i){
+ var r = trailCondPrice(trailPeak, s.pct, po.trailMinPrice);
+ return ' ' + (i+1) + '단계 −' + s.pct + '% ' + fmt(r.cond) + '원 → ' +
+ fmt(poQtys[i]) + '주 ' +
+ '(' + (s.cum >= 100 ? '전량' : '누적 ' + s.cum + '%') + ') ';
+ }).join('');
priceLine = '· 시작 고점: ' + fmt(trailPeak) + '원 (등록 시점 현재가) ' +
- '· 트레일 폭: 고점 대비 −' + po.trailPct + '% ' +
(po.trailMinPrice > 0 ? ('· 최저 매도가: ' + fmt(po.trailMinPrice) + '원 (' +
(trailRes.floorApplied ? '최저가 적용' : '트레일 적용') + ') ') : '') +
- '· 지금 손절선: ' + fmt(trailCond) + '원 (현재가 ' + fmt(curNow) + '원) ' +
- '· 고점이 오르면 손절선도 따라 올라갑니다 ';
+ '· 매도 계단 ' + trailStepsPo.length + '단 (현재가 ' + fmt(curNow) + '원) ' +
+ stepLines +
+ '· 고점이 오르면 계단이 통째로 따라 올라갑니다 ';
} else {
priceLine = '· ' + (isStop ? '매도 단가' : '단가') + ': ' + priceStr + ' ';
}
@@ -12430,7 +12638,7 @@ function siblingAccount(label){
var sib = ACCOUNTS.find(function(a){ return a.owner === me.owner && a.label !== label; });
return sib ? sib.label : null;
}
-function proposeSingle(account, orderType, qty, price, stopPrice, trailPct, trailMinPrice){
+function proposeSingle(account, orderType, qty, price, stopPrice, trailStepList, trailMinPrice){
var body = new URLSearchParams();
body.set('account', account);
body.set('side', state.side);
@@ -12440,9 +12648,12 @@ function proposeSingle(account, orderType, qty, price, stopPrice, trailPct, trai
body.set('order_type', orderType);
if(orderType === 'LIMIT' || orderType === 'STOP_LIMIT') body.set('price', String(price));
if(orderType === 'STOP_LIMIT') body.set('stop_price', String(stopPrice || 0));
- // 트레일링은 폭(%)·고점 기준·최저 매도가만 보낸다 — 조건단가·지정가는 서버가 계산.
+ // 트레일링은 계단 정의(하락률·누적 비중)와 최저 매도가만 보낸다 —
+ // 계단별 조건단가·지정가·주수는 서버가 현재가·보유수량 기준으로 계산한다.
if(orderType === 'TRAILING_STOP'){
- body.set('trail_pct', String(trailPct || 0));
+ // 승인 팝업에서 확정된 계단을 그대로 보낸다 — 팝업이 떠 있는 사이 편집기를 건드려도
+ // 관리자님이 확인한 내용과 발주가 어긋나지 않는다.
+ body.set('trail_steps', JSON.stringify(trailStepList || []));
if(trailMinPrice > 0) body.set('min_sell_price', String(trailMinPrice));
}
proposeAndOpenPin('/api/order/propose', body);
@@ -12674,14 +12885,43 @@ if(otSel) otSel.addEventListener('change', function(){
var priceInpEl = $('[data-order-price-input]');
if(priceInpEl) priceInpEl.addEventListener('input', function(){ updateCheck(); highlightSelectedTick(); recalcQtyFromBudget(); });
var qtyInpEl = $('[data-order-qty]');
-if(qtyInpEl) qtyInpEl.addEventListener('input', function(){ recalcBudgetFromQty(); renderOrderInfo(); });
+if(qtyInpEl) qtyInpEl.addEventListener('input', function(){
+ recalcBudgetFromQty(); renderOrderInfo();
+ // 계단별 주수는 수량에서 나온다 — 수량이 바뀌면 미리보기도 다시 그린다.
+ var ot = $('[data-order-type]');
+ if(ot && ot.value === 'TRAILING_STOP') renderTrailPreview();
+});
var budgetInpEl = $('[data-order-budget]');
if(budgetInpEl) budgetInpEl.addEventListener('input', recalcQtyFromBudget);
-// 트레일 폭은 select — change 로 잡는다(input 도 발생하지만 select 의 정식 이벤트는 change).
-var trailInpEl = $('[data-order-trail-input]');
-if(trailInpEl) trailInpEl.addEventListener('change', renderTrailPreview);
+// 프리셋은 select — change 로 잡는다(select 의 정식 이벤트).
+var trailPresetEl = $('[data-trail-preset]');
+if(trailPresetEl) trailPresetEl.addEventListener('change', applyTrailPreset);
var trailMinEl = $('[data-order-trail-min]');
if(trailMinEl) trailMinEl.addEventListener('input', renderTrailPreview);
+// 계단 입력·삭제는 행이 동적으로 다시 그려지므로 컨테이너에 위임한다.
+var trailStepsEl = $('[data-trail-steps]');
+if(trailStepsEl){
+ trailStepsEl.addEventListener('input', function(e){
+ if(e.target.matches('[data-ts-pct],[data-ts-cum]')) renderTrailPreview();
+ });
+ trailStepsEl.addEventListener('click', function(e){
+ var b = e.target.closest('[data-ts-del]'); if(!b) return;
+ var steps = trailSteps();
+ steps.splice(parseInt(b.getAttribute('data-ts-del'), 10), 1);
+ renderTrailStepRows(steps);
+ renderTrailPreview();
+ });
+}
+var trailAddEl = $('[data-trail-add]');
+if(trailAddEl) trailAddEl.addEventListener('click', function(){
+ var steps = trailSteps();
+ if(steps.length >= 5){ showToast('계단은 최대 5개입니다', 'error'); return; }
+ // 새 계단은 마지막보다 5%p 깊게·누적 100% 로 — 대개 "마지막에 전량" 을 덧붙이는 흐름이다.
+ var last = steps.length ? steps[steps.length-1] : null;
+ steps.push({pct: Math.min(30, last ? last.pct + 5 : 10), cum: 100});
+ renderTrailStepRows(steps);
+ renderTrailPreview();
+});
document.addEventListener('visibilitychange', function(){
if(document.hidden) stopPolling();
else if(state.isOpen) startPolling();
@@ -13020,7 +13260,7 @@ window.openPinModal = openPinModal;
자산현황
-
+
{head_script}
@@ -13053,7 +13293,7 @@ window.openPinModal = openPinModal;
{content_html}
- 지수 불러오는 중…
+ 지수 불러오는 중…
{idx_info_modal_html}
{interest_modal_html}
{interest_edit_modal_html}
@@ -14296,11 +14536,11 @@ class Handler(BaseHTTPRequestHandler):
stop_price = int(stop_raw) if stop_raw else None
except ValueError:
stop_price = None
- trail_raw = (params.get('trail_pct') or [''])[0].strip()
+ steps_raw = (params.get('trail_steps') or [''])[0].strip()
try:
- trail_pct = float(trail_raw) if trail_raw else None
+ trail_steps = json.loads(steps_raw) if steps_raw else None
except ValueError:
- trail_pct = None
+ trail_steps = None
min_sell_raw = (params.get('min_sell_price') or [''])[0].strip()
try:
min_sell_price = int(min_sell_raw) if min_sell_raw else None
@@ -14324,12 +14564,14 @@ class Handler(BaseHTTPRequestHandler):
self._send_json(400, {'ok': False, 'error': '스톱지정가는 단가와 조건단가가 모두 필요'})
return
if order_type == 'TRAILING_STOP':
- # 조건단가·지정가는 handler 가 현재가 기준으로 계산 — 여기선 트레일 폭만 받는다.
+ # 계단별 조건단가·지정가·주수는 handler 가 현재가·보유수량 기준으로 계산 —
+ # 여기선 계단 정의(하락률·누적 비중)만 받는다. 형식 검증은 handler 가
+ # orders/trailing.normalize_steps 로 하므로 여기선 최소한만 본다.
if side != 'SELL':
self._send_json(400, {'ok': False, 'error': '트레일링 스톱은 매도만 지원'})
return
- if trail_pct is None or trail_pct <= 0:
- self._send_json(400, {'ok': False, 'error': '트레일 폭(%)을 입력하세요'})
+ if not isinstance(trail_steps, list) or not trail_steps:
+ self._send_json(400, {'ok': False, 'error': '매도 계단을 입력하세요'})
return
if min_sell_price is not None and min_sell_price <= 0:
self._send_json(400, {'ok': False, 'error': '최저 매도가는 0보다 커야 합니다'})
@@ -14350,7 +14592,7 @@ class Handler(BaseHTTPRequestHandler):
qty=qty, order_type=order_type,
price=(price if order_type in ('LIMIT', 'STOP_LIMIT') else None),
stop_price=(stop_price if order_type == 'STOP_LIMIT' else None),
- trail_pct=(trail_pct if order_type == 'TRAILING_STOP' else None),
+ trail_steps=(trail_steps if order_type == 'TRAILING_STOP' else None),
min_sell_price=(min_sell_price if order_type == 'TRAILING_STOP' else None),
)
if res.get('ok'):
diff --git a/agents/stock/workspace/scripts/orders/card.py b/agents/stock/workspace/scripts/orders/card.py
index 039121b..1b9680d 100644
--- a/agents/stock/workspace/scripts/orders/card.py
+++ b/agents/stock/workspace/scripts/orders/card.py
@@ -50,6 +50,11 @@ def _pct(p: float, digits: int = 2) -> str:
return f'{sign}{p:.{digits}f}%'
+def _num(p) -> str:
+ """계단 비율 표기 — 10.0 은 '10', 10.5 는 '10.5' 로. 불필요한 .0 을 지운다."""
+ return f'{float(p or 0):g}'
+
+
def format_card(request: dict, market_data: dict, card_id: str,
estimate: Optional[dict] = None,
budget_conversion: Optional[dict] = None,
@@ -94,25 +99,34 @@ def format_card(request: dict, market_data: dict, card_id: str,
lines.append(f'{marker} 조건: {_md_bold(_money(stop_p) + " 도달 시")}{cur_part}')
lines.append(f'{marker} 매도가격: {_md_bold(_money(request["price"]))} (지정가)')
elif request['order_type'] == 'TRAILING_STOP':
- # 승인 대상은 "트레일 폭" — 조건단가는 고점이 오르면 이 폭을 유지하며 따라 올라간다.
- stop_p = request.get('stop_price') or 0
+ # 승인 대상은 "계단 정의" — 각 계단의 조건단가는 고점이 오르면 제 하락률을 유지하며
+ # 함께 따라 올라간다. 계단이 1개면 종전의 단일 트레일링과 같다.
cur = market_data.get('current_price')
cur_part = f' (현재가 {_money(cur)})' if cur else ''
# 초기 고점은 항상 등록 시점 현재가 — 과거 고점 기준 옵션은 2026-07-30 제거됨.
peak_v = request.get('trail_peak') or 0
- trail_pct_part = f'고점 대비 −{request.get("trail_pct")}%'
- lines.append(f'{marker} 시작 고점: {_md_bold(_money(peak_v))} (등록 시점)')
- lines.append(f'{marker} 트레일 폭: {_md_bold(trail_pct_part)}')
+ steps = request.get('trail_steps') or []
+ lines.append(f'{marker} 시작 고점: {_md_bold(_money(peak_v))} (등록 시점){cur_part}')
min_sell = request.get('min_sell_price')
if min_sell:
# 최저 매도가가 손절선을 결정했는지(=트레일보다 높았는지) 명시 — 둘 중 어느 게
# 지배했는지 안 보이면 관리자님이 값을 잘못 읽는다.
- raw_trail = int(peak_v * (1 - float(request['trail_pct']) / 100)) if peak_v else 0
- who = '최저가 적용' if stop_p >= raw_trail else '트레일 적용'
+ tied = sum(1 for s in steps if s.get('floor_applied'))
+ who = f'{tied}개 계단 적용' if tied else '미적용 (트레일이 더 높음)'
lines.append(f'{marker} 최저 매도가: {_md_bold(_money(min_sell))} ({who})')
- lines.append(f'{marker} 현재 손절선: {_md_bold(_money(stop_p) + " 도달 시")}{cur_part}')
- lines.append(f'{marker} 매도가격: {_md_bold(_money(request["price"]))} (지정가)')
- lines.append(f'{marker} 고점이 오르면 손절선도 따라 올라갑니다 (내려가지 않음)')
+ lines.append('')
+ lines.append(f'{marker} 매도 계단 {len(steps)}단')
+ for s in steps:
+ cum = s.get('cum', 0)
+ cum_part = '전량' if cum >= 100 else f'누적 {_num(cum)}%'
+ lines.append(f' {s["n"]}단계 −{_num(s["pct"])}% '
+ f'{_md_bold(_money(s["cond_uv"]) + " 도달")} → '
+ f'{s["qty"]:,}주 ({cum_part})')
+ rest = request['qty'] - sum(s['qty'] for s in steps)
+ if rest > 0:
+ lines.append(f' ↳ 나머지 {rest:,}주는 스톱 없음 (계속 보유)')
+ lines.append('')
+ lines.append(f'{marker} 고점이 오르면 계단이 통째로 따라 올라갑니다 (내려가지 않음)')
elif request['order_type'] == 'MARKET':
lines.append(f'{marker} 가격: {_md_bold("시장가")}')
else:
@@ -245,6 +259,40 @@ def format_submitted(card_id: str, side: str, symbol_name: str, qty: int,
return f'📨 [#{card_id}] {side_word} 접수: {symbol_name} {qty:,}주 @ {price_str}\n주문번호: {ord_no}'
+def format_trailing_submitted(info: dict) -> str:
+ """트레일링 계단 접수 결과 — 몇 단이 걸렸고 감시가 붙었는지를 한 화면에 담는다.
+
+ 계단 일부만 접수될 수 있어(레그 독립 제출) 성공·실패를 나란히 적는다.
+ 실패분을 요약해 버리면 방어선이 몇 개인지 모르는 채로 남게 된다.
+ """
+ placed = info.get('placed') or []
+ failed = info.get('failed') or []
+ acct = _account_display(info.get('account', ''))
+ head = '🧪 [모의] 트레일링' if info.get('dry_run') else '✅ 트레일링'
+ lines = [f'{head} {len(placed)}단 등록: {info["symbol_name"]}',
+ f'[{acct}] 총 {info["total_qty"]:,}주 · 시작 고점 {_money(info["peak"])}']
+ if info.get('min_sell_price'):
+ lines.append(f'최저 매도가 {_money(info["min_sell_price"])}')
+ for s in placed:
+ cum = s.get('cum', 0)
+ cum_part = '전량' if cum >= 100 else f'누적 {_num(cum)}%'
+ no = f' · 주문 {s["ord_no"]}' if s.get('ord_no') else ''
+ lines.append(f'{s["n"]}단계 −{_num(s["pct"])}% {_money(s["cond_uv"])} 도달 → '
+ f'{s["qty"]:,}주 ({cum_part}){no}')
+ rest = info['total_qty'] - sum(s['qty'] for s in placed)
+ if rest > 0:
+ lines.append(f'↳ 나머지 {rest:,}주는 스톱 없음 (계속 보유)')
+ for s in failed:
+ lines.append(f'⚠️ {s["n"]}단계 −{_num(s["pct"])}% {s["qty"]:,}주 접수 실패 '
+ f'({s.get("reason")}) {s.get("error", "")}'.rstrip())
+ if info.get('register_error'):
+ lines.append('⚠️ 주문은 접수됐지만 트레일링 등록 실패 — 손절선이 따라 올라가지 않습니다. '
+ f'({info["register_error"]})')
+ elif info.get('res_id'):
+ lines.append(f'감시 시작 ({info["res_id"]}) — 고점이 오르면 계단이 함께 올라갑니다')
+ return '\n'.join(lines)
+
+
def format_expired(card_id: str, side: str) -> str:
side_word = '매수' if side == 'BUY' else '매도'
return f'⏱️ [#{card_id}] 승인 만료. {side_word}가 취소되었습니다.'
@@ -323,7 +371,9 @@ def format_card_locked(active: Optional[dict] = None) -> str:
elif order_type == 'AGGRESSIVE_LIMIT':
price_str = f'공격적 지정가 {_money(price)}' if price else '공격적 지정가'
elif order_type == 'TRAILING_STOP':
- price_str = f'트레일링 −{active.get("trail_pct")}% (손절 {_money(active.get("stop_price"))})'
+ steps = active.get('trail_steps') or []
+ pcts = '/'.join(f'−{_num(s["pct"])}%' for s in steps)
+ price_str = f'트레일링 {len(steps)}단 {pcts} (1단계 손절 {_money(active.get("stop_price"))})'
else:
price_str = _money(price) if price is not None else '지정가'
diff --git a/agents/stock/workspace/scripts/orders/handler.py b/agents/stock/workspace/scripts/orders/handler.py
index 1ee4bb0..67af257 100644
--- a/agents/stock/workspace/scripts/orders/handler.py
+++ b/agents/stock/workspace/scripts/orders/handler.py
@@ -165,7 +165,7 @@ def propose_trade(
routing_force: Optional[str] = None,
budget: Optional[int] = None,
stop_price: Optional[int] = None,
- trail_pct: Optional[float] = None,
+ trail_steps: Optional[list] = None,
min_sell_price: Optional[int] = None,
) -> dict:
sidecar.guard_or_raise()
@@ -185,27 +185,37 @@ def propose_trade(
return {'ok': False,
'message': card.format_rejected('STOP_INPUT',
'스톱지정가는 지정가와 조건단가(트리거)가 모두 필요')}
+ norm_steps = None
if order_type == 'TRAILING_STOP':
- # 트레일링은 트레일 폭(%)만 입력받고 조건단가·지정가는 현재가 기준 자동 계산 (md 수집 후).
+ # 트레일링은 계단 정의(하락률·누적 비중)만 입력받고, 계단별 조건단가·지정가·주수는
+ # 현재가와 보유수량 기준으로 자동 계산한다 (md 수집 후).
if side != 'SELL':
return {'ok': False,
'message': card.format_rejected('STOP_SELL_ONLY', '트레일링 스톱은 매도 전용')}
- if trail_pct is None or not (trailing.MIN_TRAIL_PCT <= trail_pct <= trailing.MAX_TRAIL_PCT):
+ try:
+ norm_steps = trailing.normalize_steps(trail_steps or [])
+ except (ValueError, KeyError, TypeError) as e:
return {'ok': False,
- 'message': card.format_rejected(
- 'TRAIL_PCT_RANGE',
- f'트레일 폭은 {trailing.MIN_TRAIL_PCT}~{trailing.MAX_TRAIL_PCT}% 범위')}
+ 'message': card.format_rejected('TRAIL_STEPS', f'계단 정의 오류: {e}')}
+ if budget is not None:
+ # 계단별 주수는 보유수량을 나눠 만든다 — 예산 환산이 끼면 기준이 두 개가 된다.
+ return {'ok': False,
+ 'message': card.format_rejected('TRAIL_BUDGET',
+ '트레일링은 수량으로만 지정 (예산 환산 불가)')}
if min_sell_price is not None and min_sell_price <= 0:
return {'ok': False,
'message': card.format_rejected('TRAIL_MIN_PRICE',
'최저 매도가는 0보다 커야 함 (제한 없으면 비우세요)')}
dup = trailing.find_by_symbol(account, symbol)
if dup:
+ dup_steps = dup.get('steps') or []
+ top_uv = max((s['cond_uv'] for s in dup_steps), default=0)
return {'ok': False,
'message': card.format_rejected(
'TRAIL_DUPLICATE',
f'{symbol_name or symbol} 트레일링 예약이 이미 있음 '
- f'({dup["id"]} · 손절 {dup["cond_uv"]:,}원) — 먼저 취소하세요')}
+ f'({dup["id"]} · {len(dup_steps)}단 · 1단계 손절 {top_uv:,}원) '
+ f'— 먼저 취소하세요')}
if budget is not None and qty is not None:
return {'ok': False,
'message': card.format_rejected('AMBIGUOUS_INPUT',
@@ -218,7 +228,8 @@ def propose_trade(
# collect_market_data 의 잔고/보유 조회는 qty 와 무관.
md = datasource.collect_market_data(account, symbol, side, qty or 0)
- trail_levels = None
+ trail_final = None
+ trail_peak = None
if order_type == 'TRAILING_STOP':
# 현재가를 못 받으면 손절선을 정할 수 없어 진행 불가 (호가 fallback 금지 — 기준이 흔들림).
cur = md.get('current_price') or 0
@@ -229,24 +240,33 @@ def propose_trade(
# 초기 고점은 등록 시점 현재가로 고정. 과거 고점(52주·매수후)을 쓰면 손절선이 현재가
# 위로 올라가 등록 즉시 발동한다 — 손실 종목은 아예 등록 불가, 이익 종목은 현재가와
# 결과가 같아 옵션 자체를 제거했다(2026-07-30 실측 근거로 관리자님 결정).
- peak = cur
+ trail_peak = cur
try:
- trail_levels = trailing.compute_levels(peak, trail_pct, min_sell_price)
+ leveled = trailing.compute_step_levels(trail_peak, norm_steps, min_sell_price)
except ValueError as e:
return {'ok': False, 'message': card.format_rejected('TRAIL_LEVEL', str(e))}
- # 손절선이 현재가 이상이면 등록하는 순간 발동한다. 고점=현재가로 고정된 뒤로는
- # 최저 매도가가 현재가보다 높은 경우만 남는다(트레일 폭은 항상 현재가 아래로 내려감).
- if trail_levels['cond_uv'] >= cur:
- if trail_levels['floor_applied']:
+ # 계단별 주수 배분. 수량이 적어 0주가 된 계단은 발주할 수 없으니 떨어낸다 —
+ # 단계 번호(n)는 그대로 두어 "몇 단계가 빠졌는지" 가 카드에서 보이게 한다.
+ qtys = trailing.allocate_step_qty(qty, [s['weight'] for s in norm_steps])
+ trail_final = [dict(s, qty=q) for s, q in zip(leveled, qtys) if q > 0]
+ if not trail_final:
+ return {'ok': False,
+ 'message': card.format_rejected(
+ 'TRAIL_QTY', f'{qty:,}주로는 계단을 나눌 수 없음 — 수량을 늘리거나 계단을 줄이세요')}
+ # 가장 얕은 계단이 제일 먼저 발동한다. 이게 현재가 이상이면 등록하는 순간 터진다.
+ # 고점=현재가로 고정된 뒤로는 최저 매도가가 현재가보다 높은 경우만 남는다
+ # (트레일 폭은 항상 현재가 아래로 내려감).
+ top = trail_final[0]
+ if top['cond_uv'] >= cur:
+ if top['floor_applied']:
msg = (f'최저 매도가 {min_sell_price:,}원이 현재가 {cur:,}원보다 높아 '
f'등록 즉시 발동됩니다 — 현재가보다 낮게 설정하세요')
else:
- msg = (f'손절선 {trail_levels["cond_uv"]:,}원이 현재가 {cur:,}원 이상이라 '
+ msg = (f'1단계 손절선 {top["cond_uv"]:,}원이 현재가 {cur:,}원 이상이라 '
f'등록 즉시 발동됩니다')
return {'ok': False, 'message': card.format_rejected('TRAIL_IMMEDIATE', msg)}
- price = trail_levels['ord_uv']
- stop_price = trail_levels['cond_uv']
- trail_levels['peak'] = peak
+ price = top['ord_uv']
+ stop_price = top['cond_uv']
budget_conversion = None
if budget is not None:
@@ -277,9 +297,9 @@ def propose_trade(
request['price'] = price
request['stop_price'] = stop_price
if order_type == 'TRAILING_STOP':
- request['trail_pct'] = trail_pct
+ request['trail_steps'] = trail_final
request['min_sell_price'] = min_sell_price
- request['trail_peak'] = trail_levels['peak']
+ request['trail_peak'] = trail_peak
r = guards.validate_request(request, md)
if not r.ok:
@@ -326,11 +346,11 @@ def propose_trade(
if order_type == 'STOP_LIMIT':
payload['stop_price'] = stop_price
elif order_type == 'TRAILING_STOP':
- # 승인 시점에 확정되는 것: 계좌·종목·수량·트레일 폭·최저 매도가.
- # 이후 감시 루프는 조건단가만 올린다.
+ # 승인 시점에 확정되는 것: 계좌·종목·계단별 수량·하락률·최저 매도가.
+ # 이후 감시 루프는 계단별 조건단가만 올린다 (수량·계단 구성은 불변).
payload['stop_price'] = stop_price
- payload['trail_pct'] = trail_pct
- payload['trail_peak'] = trail_levels['peak']
+ payload['trail_steps'] = trail_final
+ payload['trail_peak'] = trail_peak
payload['min_sell_price'] = min_sell_price
try:
@@ -516,14 +536,10 @@ def submit_with_pin(pin_input: str, dry_run: bool = True) -> dict:
if p.get('multi'):
return _submit_multi_legs(card_obj, dry_run)
+ if p['order_type'] == 'TRAILING_STOP':
+ return _submit_trailing_steps(card_obj, dry_run)
- # 트레일링은 키움에 스톱지정가(trde_tp=28)로 나간다 — 트레일링은 우리 쪽 개념.
- if p['order_type'] == 'AGGRESSIVE_LIMIT':
- submit_order_type = 'LIMIT'
- elif p['order_type'] == 'TRAILING_STOP':
- submit_order_type = 'STOP_LIMIT'
- else:
- submit_order_type = p['order_type']
+ submit_order_type = 'LIMIT' if p['order_type'] == 'AGGRESSIVE_LIMIT' else p['order_type']
res = kiwoom_order.submit(
account_label=p['account'],
side=p['side'],
@@ -545,30 +561,7 @@ def submit_with_pin(pin_input: str, dry_run: bool = True) -> dict:
msg = card.format_submitted(card_obj.card_id, p['side'],
p.get('symbol_name', p['symbol']),
p['qty'], p.get('price'), ord_no)
- if p['order_type'] == 'TRAILING_STOP':
- # 트레일링은 조건 도달까지 며칠 미체결로 남는 게 정상 — fill_watcher 를 걸면
- # 30분 미체결 알림이 오탐으로 간다. 생존·체결 감시는 trailing_monitor 가 담당.
- if ord_no:
- try:
- res_trl = trailing.register(
- ord_no=ord_no, account=p['account'], symbol=p['symbol'],
- symbol_name=p.get('symbol_name', p['symbol']), qty=p['qty'],
- trail_pct=p['trail_pct'], peak=p['trail_peak'],
- cond_uv=p['stop_price'], ord_uv=p['price'],
- routing_suffix=p['routing_suffix'], card_id=card_obj.card_id,
- min_sell_price=p.get('min_sell_price'),
- )
- msg += (f'\n트레일링 감시 시작 ({res_trl["id"]}) — '
- f'고점 {p["trail_peak"]:,}원 기준 {p["trail_pct"]}% 아래 '
- f'{p["stop_price"]:,}원')
- except Exception as e:
- # 주문은 이미 접수됨 — 등록 실패를 숨기면 트레일링이 안 도는 걸 모른다.
- ledger.append('trailing_register_failed',
- {'card_id': card_obj.card_id, 'ord_no': ord_no,
- 'error': repr(e), **p})
- msg += ('\n⚠️ 주문은 접수됐지만 트레일링 등록 실패 — '
- '손절선이 따라 올라가지 않습니다. 확인 필요.')
- elif ord_no:
+ if ord_no:
# 키움에서 ord_no 받으면 백그라운드 체결 추적 시작 (kt00007 폴링).
# 부분체결·완전체결·사후거절·30분 미체결 시 텔레그램 자동 알림.
fill_watcher.watch(
@@ -583,6 +576,84 @@ def submit_with_pin(pin_input: str, dry_run: bool = True) -> dict:
'detail': res}
+def _submit_trailing_steps(card_obj, dry_run: bool) -> dict:
+ """트레일링 계단 카드 — 계단마다 스톱주문을 내고 예약 1건으로 묶어 등록한다.
+
+ 키움엔 스톱지정가(trde_tp=28)로 나간다 — 트레일링은 우리 쪽 개념이다.
+ 얕은 계단(먼저 발동할 것)부터 접수해, 중간에 막히더라도 가장 가까운 방어선이 먼저 걸리게 한다.
+
+ 한 레그가 실패해도 나머지는 계속 시도하고, 접수된 레그만 예약에 등록한다. 이미 나간 주문을
+ 되돌리지 않는 이유는 취소 자체도 실패할 수 있어 상태가 더 불분명해지기 때문이다 —
+ 대신 몇 단이 걸리고 몇 단이 실패했는지를 메시지에 그대로 드러낸다.
+
+ fill_watcher 는 걸지 않는다. 스톱 예약은 조건 도달까지 미체결로 남는 게 정상이라
+ 30분 미체결 알림이 오탐이 된다 — 생존·체결 감시는 trailing_monitor 가 담당한다.
+ """
+ p = card_obj.payload
+ steps = p.get('trail_steps') or []
+ name = p.get('symbol_name', p['symbol'])
+ placed, failed, details = [], [], []
+
+ for s in steps:
+ res = kiwoom_order.submit(
+ account_label=p['account'],
+ side='SELL',
+ symbol=p['symbol'],
+ qty=s['qty'],
+ price=s['ord_uv'],
+ order_type='STOP_LIMIT',
+ routing_suffix=p['routing_suffix'],
+ dry_run=dry_run,
+ card_id=card_obj.card_id,
+ stop_price=s['cond_uv'],
+ )
+ details.append(res)
+ if res['ok']:
+ # dry_run 은 주문번호가 없다 — 예약 등록 없이 접수될 내용만 확인한다.
+ placed.append(dict(s, ord_no=res.get('ord_no', '')))
+ else:
+ failed.append(dict(s, reason=res.get('reason', 'UNKNOWN'),
+ error=str(res.get('error', ''))))
+
+ if not placed:
+ return {'ok': False,
+ 'message': card.format_rejected(
+ (failed[0]['reason'] if failed else 'UNKNOWN'),
+ f'{name} 계단 {len(steps)}단 전부 접수 실패 — '
+ + (failed[0]['error'] if failed else '')),
+ 'detail': details}
+
+ info = {'card_id': card_obj.card_id, 'symbol_name': name, 'account': p['account'],
+ 'total_qty': p['qty'], 'peak': p['trail_peak'],
+ 'min_sell_price': p.get('min_sell_price'),
+ 'placed': placed, 'failed': failed, 'dry_run': dry_run,
+ 'res_id': None, 'register_error': None}
+
+ if not dry_run:
+ registerable = [s for s in placed if s['ord_no']]
+ if not registerable:
+ # 접수는 됐는데 주문번호를 못 받았다 — 감시가 붙을 수 없으니 반드시 알린다.
+ ledger.append('trailing_register_failed',
+ {'card_id': card_obj.card_id, 'error': 'no ord_no', **p})
+ info['register_error'] = '주문번호를 못 받아 감시를 걸지 못했습니다'
+ else:
+ try:
+ res_trl = trailing.register_steps(
+ account=p['account'], symbol=p['symbol'], symbol_name=name,
+ total_qty=p['qty'], peak=p['trail_peak'], steps=registerable,
+ routing_suffix=p['routing_suffix'], card_id=card_obj.card_id,
+ min_sell_price=p.get('min_sell_price'),
+ )
+ info['res_id'] = res_trl['id']
+ except Exception as e:
+ # 주문은 이미 접수됨 — 등록 실패를 숨기면 트레일링이 안 도는 걸 모른다.
+ ledger.append('trailing_register_failed',
+ {'card_id': card_obj.card_id, 'error': repr(e), **p})
+ info['register_error'] = str(e)
+
+ return {'ok': True, 'message': card.format_trailing_submitted(info), 'detail': details}
+
+
def _submit_multi_legs(card_obj, dry_run: bool) -> dict:
"""multi 카드(propose_trade_multi)의 레그별 키움 제출 — 레그 독립 실행·독립 보고.
diff --git a/agents/stock/workspace/scripts/orders/tests/test_trailing.py b/agents/stock/workspace/scripts/orders/tests/test_trailing.py
new file mode 100644
index 0000000..c516881
--- /dev/null
+++ b/agents/stock/workspace/scripts/orders/tests/test_trailing.py
@@ -0,0 +1,363 @@
+"""계단식 트레일링 단위테스트 (2026-07-31).
+
+세 층을 본다:
+ 1. 순수 함수 — 누적→추가 환산, 수량 배분, 계단별 손절선, 상향 판단
+ 2. 감시 루프 — 레그 체결/소멸 판정과 알림 (키움 호출은 전부 stub, 상태파일은 임시경로로 격리)
+ 3. JS 대조 — 렌더된 페이지의 미리보기 계산이 서버 계산과 같은 값을 내는지 (node 있을 때만)
+
+3번이 특히 중요하다. 미리보기와 발주값이 어긋나면 관리자님이 본 것과 다른 주문이 나간다.
+"""
+
+from __future__ import annotations
+
+import json
+import random
+import shutil
+import subprocess
+import sys
+import tempfile
+import unittest
+from pathlib import Path
+
+from orders import trailing as t
+
+
+class NormalizeStepsTests(unittest.TestCase):
+ """입력한 누적 비중 → 내부 추가 비중."""
+
+ def test_cumulative_to_incremental(self):
+ st = t.normalize_steps([{'pct': 10, 'cum': 20}, {'pct': 20, 'cum': 50},
+ {'pct': 30, 'cum': 100}])
+ self.assertEqual([s['weight'] for s in st], [20.0, 30.0, 50.0])
+ self.assertEqual([s['n'] for s in st], [1, 2, 3])
+ self.assertEqual([s['pct'] for s in st], [10.0, 20.0, 30.0])
+
+ def test_single_step(self):
+ st = t.normalize_steps([{'pct': 8, 'cum': 100}])
+ self.assertEqual([(s['pct'], s['weight']) for s in st], [(8.0, 100.0)])
+
+ def test_partial_liquidation_allowed(self):
+ """마지막 누적이 100 미만이어도 통과 — 일부만 계단 청산하고 나머지는 계속 보유."""
+ st = t.normalize_steps([{'pct': 10, 'cum': 30}, {'pct': 20, 'cum': 60}])
+ self.assertEqual([s['weight'] for s in st], [30.0, 30.0])
+
+ def test_rejects(self):
+ cases = [
+ ('빈 입력', [], '비어'),
+ ('계단 초과', [{'pct': i, 'cum': i * 10} for i in range(1, 7)], '최대'),
+ ('하락률 역순', [{'pct': 20, 'cum': 30}, {'pct': 10, 'cum': 60}], '깊지 않음'),
+ ('하락률 동일', [{'pct': 10, 'cum': 30}, {'pct': 10, 'cum': 60}], '깊지 않음'),
+ ('누적 역순', [{'pct': 10, 'cum': 60}, {'pct': 20, 'cum': 30}], '크지 않음'),
+ ('누적 100 초과', [{'pct': 10, 'cum': 50}, {'pct': 20, 'cum': 120}], '100'),
+ ('하락률 상한 초과', [{'pct': 40, 'cum': 100}], '범위'),
+ ('하락률 하한 미만', [{'pct': 0.1, 'cum': 100}], '범위'),
+ ]
+ for label, raw, needle in cases:
+ with self.subTest(label):
+ with self.assertRaises(ValueError) as cm:
+ t.normalize_steps(raw)
+ self.assertIn(needle, str(cm.exception))
+
+
+class AllocateStepQtyTests(unittest.TestCase):
+ """계단별 주수 배분 — 최대잔여법."""
+
+ def test_exact(self):
+ self.assertEqual(t.allocate_step_qty(100, [20, 30, 50]), [20, 30, 50])
+ self.assertEqual(t.allocate_step_qty(1943, [20, 30, 50]), [389, 583, 971])
+
+ def test_remainder_goes_to_largest_fraction(self):
+ self.assertEqual(t.allocate_step_qty(7, [20, 30, 50]), [1, 2, 4])
+
+ def test_small_qty_keeps_shallow_step_alive(self):
+ """2주를 3계단에 나누면 [0,1,1] — '마지막에 몰아주기'였다면 [0,0,2]로 1계단만 남는다."""
+ self.assertEqual(t.allocate_step_qty(2, [20, 30, 50]), [0, 1, 1])
+ self.assertEqual(t.allocate_step_qty(1, [20, 30, 50]), [0, 0, 1])
+ self.assertEqual(t.allocate_step_qty(0, [20, 30, 50]), [0, 0, 0])
+
+ def test_sum_preserved_exhaustive(self):
+ """전량(합 100%) 조합은 배분 합이 정확히 보유수량이어야 한다."""
+ for total in range(1, 400):
+ for w in ([20, 30, 50], [30, 30, 40], [10, 20, 30, 40], [50, 50], [100]):
+ got = t.allocate_step_qty(total, w)
+ self.assertEqual(sum(got), total, f'total={total} w={w} → {got}')
+ self.assertTrue(all(x >= 0 for x in got))
+
+ def test_partial_never_exceeds_holding(self):
+ for total in range(1, 400):
+ self.assertLessEqual(sum(t.allocate_step_qty(total, [30, 30])), total)
+
+
+class ComputeLevelsTests(unittest.TestCase):
+ def test_step_prices(self):
+ st = t.normalize_steps([{'pct': 10, 'cum': 20}, {'pct': 20, 'cum': 50},
+ {'pct': 30, 'cum': 100}])
+ lv = t.compute_step_levels(5000, st)
+ self.assertEqual([x['cond_uv'] for x in lv], [4500, 4000, 3500])
+ self.assertEqual([x['ord_uv'] for x in lv], [4490, 3990, 3490]) # 각 2틱 아래
+
+ def test_float_noise_removed(self):
+ """5500×(1−30/100) 이 3849.9999999999995 라 int() 가 3849 로 깎고
+ 호가내림이 3845 까지 끌어내리던 버그(2026-07-31 수정). 의도는 3850."""
+ self.assertEqual(t.compute_levels(5500, 30)['cond_uv'], 3850)
+ self.assertEqual(t.compute_levels(5500, 10)['cond_uv'], 4950)
+ self.assertEqual(t.compute_levels(4870, 10)['cond_uv'], 4380)
+
+ def test_no_tick_loss_when_exact(self):
+ """정수로 딱 떨어지는 (고점,폭)은 호가단위 내림 결과와 정확히 같아야 한다."""
+ for peak in range(1000, 300000, 977):
+ for pct in (5, 10, 15, 20, 25, 30):
+ exact = peak * (100 - pct) / 100.0
+ if abs(exact - round(exact)) > 1e-9:
+ continue
+ want = t.floor_to_tick(int(round(exact)))
+ self.assertEqual(t.compute_levels(peak, pct)['cond_uv'], want,
+ f'peak={peak} pct={pct}')
+
+ def test_floor_ties_all_steps_then_they_spread(self):
+ """최저 매도가는 모든 계단에 같은 하한 → 처음엔 뭉치고, 고점이 오르면 다시 벌어진다.
+ (그래서 주문을 병합하면 안 된다 — 정정만으로는 다시 못 쪼갠다.)"""
+ st = t.normalize_steps([{'pct': 10, 'cum': 20}, {'pct': 20, 'cum': 50},
+ {'pct': 30, 'cum': 100}])
+ tied = t.compute_step_levels(5000, st, min_sell_price=4600)
+ self.assertEqual([x['cond_uv'] for x in tied], [4600, 4600, 4600])
+ self.assertTrue(all(x['floor_applied'] for x in tied))
+ spread = t.compute_step_levels(6000, st, min_sell_price=4600)
+ self.assertEqual([x['cond_uv'] for x in spread], [5400, 4800, 4600])
+
+
+class NextStepLevelsTests(unittest.TestCase):
+ def setUp(self):
+ st = t.normalize_steps([{'pct': 10, 'cum': 20}, {'pct': 20, 'cum': 50},
+ {'pct': 30, 'cum': 100}])
+ self.res = {'peak': 5000, 'min_sell_price': None,
+ 'steps': [dict(s, cond_uv=c, ord_uv=o) for s, c, o in
+ zip(st, [4500, 4000, 3500], [4490, 3990, 3490])]}
+
+ def test_no_new_high(self):
+ for price in (0, 4900, 5000):
+ self.assertIsNone(t.next_step_levels(self.res, price))
+
+ def test_all_steps_raise(self):
+ up = t.next_step_levels(self.res, 6000)
+ self.assertEqual(up['peak'], 6000)
+ self.assertEqual([(s['n'], s['cond_uv']) for s in up['steps']],
+ [(1, 5400), (2, 4800), (3, 4200)])
+
+ def test_peak_updates_even_when_no_step_moves(self):
+ """호가단위 내림 탓에 올릴 조건단가가 없어도 고점은 갱신돼야 한다(정정 콜은 0)."""
+ res = {'peak': 5000, 'min_sell_price': None,
+ 'steps': [{'n': 1, 'pct': 10.0, 'cum': 100.0, 'weight': 100.0,
+ 'cond_uv': 4500, 'ord_uv': 4490}]}
+ up = t.next_step_levels(res, 5001)
+ self.assertEqual(up['peak'], 5001)
+ self.assertEqual(up['steps'], [])
+
+ def test_floor_dominant_then_overtaken(self):
+ res = {'peak': 5000, 'min_sell_price': 4600,
+ 'steps': [{'n': 1, 'pct': 10.0, 'cum': 100.0, 'weight': 100.0,
+ 'cond_uv': 4600, 'ord_uv': 4590}]}
+ self.assertEqual(t.next_step_levels(res, 5050)['steps'], []) # 아직 floor 지배
+ self.assertEqual([(s['n'], s['cond_uv'])
+ for s in t.next_step_levels(res, 5200)['steps']], [(1, 4680)])
+
+ def test_stop_never_moves_down(self):
+ """무작위 시세에도 손절선은 단조 증가여야 한다 (상향 전용 불변식)."""
+ cur = {'peak': 5000, 'min_sell_price': None,
+ 'steps': [{'n': 1, 'pct': 10.0, 'cum': 100.0, 'weight': 100.0,
+ 'cond_uv': 4500, 'ord_uv': 4490}]}
+ rnd = random.Random(7)
+ prev = 4500
+ for _ in range(3000):
+ nx = t.next_step_levels(cur, rnd.randint(3000, 9000))
+ if nx is None:
+ continue
+ cur['peak'] = nx['peak']
+ for s in nx['steps']:
+ self.assertGreaterEqual(s['cond_uv'], prev)
+ prev = s['cond_uv']
+ cur['steps'][0]['cond_uv'] = s['cond_uv']
+
+
+class MonitorFlowTests(unittest.TestCase):
+ """감시 루프 — 레그 단위 생존 판정·정정·알림. 키움 호출은 stub."""
+
+ def setUp(self):
+ self.tmp = Path(tempfile.mkdtemp()) / 'trailing_stops.json'
+ self._orig = (t.STATE_FILE, t._LOCK_FILE)
+ t.STATE_FILE = self.tmp
+ t._LOCK_FILE = self.tmp.with_suffix('.json.lock')
+
+ import trailing_monitor as tm
+ self.tm = tm
+ self.sent = []
+ self.state = {'open': {}, 'quote': 0, 'execs': [], 'modify': []}
+ self._orig_fns = (tm.kc.get_open_orders, tm.kc.get_watchlist_quotes,
+ tm.kc.get_order_executions, tm.kiwoom_order.modify_order,
+ tm.send_telegram)
+ tm.kc.get_open_orders = lambda acct, side=None: list(self.state['open'].get(acct, []))
+ tm.kc.get_watchlist_quotes = lambda codes, exchange='AL': {
+ c: {'price': self.state['quote']} for c in codes}
+ tm.kc.get_order_executions = lambda acct: list(self.state['execs'])
+ tm.kiwoom_order.modify_order = self._fake_modify
+ tm.send_telegram = lambda msg, parse_mode=None: self.sent.append(msg)
+
+ st = t.normalize_steps([{'pct': 10, 'cum': 20}, {'pct': 20, 'cum': 50},
+ {'pct': 30, 'cum': 100}])
+ lv = t.compute_step_levels(5500, st, None)
+ qtys = t.allocate_step_qty(1943, [s['weight'] for s in st])
+ legs = [dict(s, qty=q, ord_no=f'A{s["n"]:04d}') for s, q in zip(lv, qtys)]
+ self.res = t.register_steps(account='일반', symbol='381620',
+ symbol_name='제닉스로보틱스', total_qty=1943,
+ peak=5500, steps=legs)
+ self.state['open']['일반'] = [{'ord_no': s['ord_no'], 'unfilled_qty': s['qty'],
+ 'routing_suffix': ''} for s in legs]
+
+ def tearDown(self):
+ (self.tm.kc.get_open_orders, self.tm.kc.get_watchlist_quotes,
+ self.tm.kc.get_order_executions, self.tm.kiwoom_order.modify_order,
+ self.tm.send_telegram) = self._orig_fns
+ t.STATE_FILE, t._LOCK_FILE = self._orig
+ shutil.rmtree(self.tmp.parent, ignore_errors=True)
+
+ def _fake_modify(self, account_label, orig_ord_no, symbol, modify_qty, modify_price,
+ routing_suffix='', dry_run=False, card_id=None, modify_cond_price=None):
+ self.state['modify'].append({'orig': orig_ord_no, 'cond': modify_cond_price})
+ new_no = f'N{len(self.state["modify"]):04d}'
+ for row in self.state['open'].get(account_label, []):
+ if row['ord_no'] == orig_ord_no:
+ row['ord_no'] = new_no # 정정하면 키움이 새 주문번호를 발급한다
+ return {'ok': True, 'new_ord_no': new_no}
+
+ def test_registered_shape(self):
+ r = t.get(self.res['id'])
+ self.assertEqual([s['cond_uv'] for s in r['steps']], [4950, 4400, 3850])
+ self.assertEqual(sum(s['qty'] for s in r['steps']), 1943)
+
+ def test_price_drop_does_nothing(self):
+ self.state['quote'] = 5200
+ self.tm.check(force=True)
+ self.assertEqual(self.state['modify'], [])
+ self.assertEqual(t.get(self.res['id'])['peak'], 5500)
+ self.assertEqual(self.sent, [])
+
+ def test_new_high_raises_every_leg_and_rotates_ord_no(self):
+ self.state['quote'] = 6000
+ self.tm.check(force=True)
+ self.assertEqual([c['cond'] for c in self.state['modify']], [5400, 4800, 4200])
+ r = t.get(self.res['id'])
+ self.assertEqual(r['peak'], 6000)
+ # ord_no 를 갱신하지 않으면 다음 정정이 전부 실패한다 — 최대 함정
+ self.assertEqual([s['ord_no'] for s in r['steps']], ['N0001', 'N0002', 'N0003'])
+ self.assertEqual([s['modify_count'] for s in r['steps']], [1, 1, 1])
+ self.assertEqual(self.sent, []) # 상향은 조용히
+
+ def test_one_leg_fills_others_keep_watching(self):
+ self.state['quote'] = 5500
+ gone = self.state['open']['일반'].pop(0)
+ self.state['execs'] = [{'ord_no': gone['ord_no'], 'cntr_qty': 389, 'cntr_uv': 4948}]
+ self.tm.check(force=True)
+ r = t.get(self.res['id'])
+ self.assertEqual([s['n'] for s in r['steps']], [2, 3])
+ self.assertEqual(len(self.sent), 1)
+ self.assertIn('체결 389주', self.sent[0])
+ self.assertIn('남은 계단 2개', self.sent[0])
+
+ def test_expiry_not_misread_as_fill(self):
+ """1단계가 체결된 날 나머지가 장 마감으로 소멸 — 종목 매도기록이 있어도 소멸로 갈려야 한다.
+ (종목 단위 ka10170 으로 판정하면 여기서 '체결'로 오판한다.)"""
+ self.state['quote'] = 5500
+ self.state['execs'] = [{'ord_no': 'A0001', 'cntr_qty': 389, 'cntr_uv': 4948}]
+ self.state['open']['일반'] = []
+ self.tm.check(force=True)
+ self.assertIsNone(t.get(self.res['id']))
+ self.assertEqual(len(self.sent), 1) # 레그마다가 아니라 예약 단위 1건
+ self.assertIn('미체결 소멸', self.sent[0])
+ self.assertIn('다시 등록', self.sent[0])
+
+ def test_open_order_query_failure_preserves_reservation(self):
+ """조회 실패를 '사라짐'으로 단정하면 살아있는 예약을 지운다."""
+ def boom(acct, side=None):
+ raise RuntimeError('조회 실패')
+ self.tm.kc.get_open_orders = boom
+ self.tm.check(force=True)
+ self.assertEqual(len(t.get(self.res['id'])['steps']), 3)
+ self.assertEqual(self.sent, [])
+
+
+def _node_available() -> bool:
+ return shutil.which('node') is not None
+
+
+@unittest.skipUnless(_node_available(), 'node 없음 — JS 대조 생략')
+class JsParityTests(unittest.TestCase):
+ """렌더된 페이지의 미리보기 계산 == 서버 발주 계산.
+
+ 손으로 옮긴 사본이 아니라 실제 페이지에서 함수 소스를 뽑아 돌린다.
+ 어긋나면 관리자님이 화면에서 본 것과 다른 주문이 나간다.
+ """
+
+ @classmethod
+ def setUpClass(cls):
+ import behive_web
+ cls.html = behive_web.render_html()
+
+ def _grab(self, name: str) -> str:
+ i = self.html.index(f'function {name}(')
+ depth, j, started = 0, i, False
+ while j < len(self.html):
+ if self.html[j] == '{':
+ depth += 1
+ started = True
+ elif self.html[j] == '}':
+ depth -= 1
+ if started and depth == 0:
+ return self.html[i:j + 1]
+ j += 1
+ raise AssertionError(f'{name} 추출 실패 — 함수명이 바뀌었나?')
+
+ def test_parity(self):
+ src = '\n'.join(self._grab(f) for f in
+ ('tickSize', 'floorTick', 'trailCondPrice',
+ 'allocStepQty', 'trailWeights'))
+ cond_cases = [{'peak': p, 'pct': c, 'floor': f}
+ for p in (1000, 1943, 4805, 4870, 5500, 12345, 55500, 262500, 1718000)
+ for c in (0.5, 1, 3, 5, 7.5, 10, 15, 20, 25, 30)
+ for f in (0, 4500, 5000, 250000)]
+ qty_cases = [{'total': q, 'w': w}
+ for q in (1, 2, 3, 7, 19, 100, 218, 1395, 1943)
+ for w in ([20, 30, 50], [30, 30, 40], [10, 20, 30, 40],
+ [50, 50], [100], [30, 30])]
+ cum_cases = [[20, 50, 100], [30, 70, 100], [25, 50, 100], [100]]
+
+ js = src + f'''
+const out = {{
+ cond: {json.dumps(cond_cases)}.map(c => {{
+ const r = trailCondPrice(c.peak, c.pct, c.floor); return [r.cond, r.floorApplied]; }}),
+ qty: {json.dumps(qty_cases)}.map(c => allocStepQty(c.total, c.w)),
+ cum: {json.dumps(cum_cases)}.map(cs => trailWeights(cs.map(x => ({{cum: x}})))),
+}};
+console.log(JSON.stringify(out));
+'''
+ proc = subprocess.run([shutil.which('node'), '-e', js],
+ capture_output=True, text=True)
+ self.assertEqual(proc.returncode, 0, proc.stderr)
+ got = json.loads(proc.stdout)
+
+ for c, (jcond, jfloor) in zip(cond_cases, got['cond']):
+ lv = t.compute_levels(c['peak'], c['pct'], c['floor'] or None)
+ self.assertEqual((lv['cond_uv'], bool(lv['floor_applied'])),
+ (jcond, bool(jfloor)),
+ f"손절선 peak={c['peak']} pct={c['pct']} floor={c['floor']}")
+ for c, jq in zip(qty_cases, got['qty']):
+ self.assertEqual(t.allocate_step_qty(c['total'], c['w']), jq,
+ f"수량배분 total={c['total']} w={c['w']}")
+ for cums, jw in zip(cum_cases, got['cum']):
+ raw = [{'pct': (i + 1) * 3, 'cum': v} for i, v in enumerate(cums)]
+ self.assertEqual([s['weight'] for s in t.normalize_steps(raw)], jw,
+ f'비중환산 {cums}')
+
+
+if __name__ == '__main__':
+ sys.path.insert(0, str(Path(__file__).resolve().parents[2]))
+ unittest.main(verbosity=2)
diff --git a/agents/stock/workspace/scripts/orders/trailing.py b/agents/stock/workspace/scripts/orders/trailing.py
index 91a0e26..f2837d5 100644
--- a/agents/stock/workspace/scripts/orders/trailing.py
+++ b/agents/stock/workspace/scripts/orders/trailing.py
@@ -1,13 +1,24 @@
-"""트레일링 스톱 예약 상태 관리.
+"""트레일링 스톱 예약 상태 관리 (계단식 분할 매도).
키움에 REST 트레일링 주문 TR 이 없어서, 스톱지정가(trde_tp=28) 주문을 실제로 걸어두고
고점이 갱신될 때마다 조건단가를 kt10002 정정으로 올려 트레일링을 구현한다.
-주문이 키움 서버에 있으므로 감시 루프가 죽어도 마지막 손절선은 살아있다.
+**예약 1건 = 계단(레그) N개 = 키움 스톱주문 N건.** 고점 대비 하락률이 깊어질수록 더 많이
+파는 계단식 청산이다 (예: −10% 20% / −20% 50% / −30% 전량). 계단별로 수량과 조건단가가
+다른 스톱주문을 동시에 걸어두고, 고점이 오르면 살아있는 레그를 전부 상향 정정한다.
+
+주문이 키움 서버에 있으므로 감시 루프가 죽어도 계단별 손절선은 살아있다.
감시 루프가 하는 일은 "이미 승인된 주문의 조건단가 상향"뿐 — 신규 발주·수량 변경 없음.
+⚠️ 계단 비중은 관리자님이 **누적**으로 입력하고(20/50/100 = 전량), 내부에는 계단별
+ **추가분**(20/30/50)으로 환산해 저장한다. 주문 수량이 곧 추가분이기 때문이다.
+
+⚠️ 한 계단이 체결된 뒤 반등해 신고점을 찍어도 **남은 계단만 새 고점 기준으로 따라 올린다**.
+ 남은 수량을 계단 비율대로 재배치하려면 기존 주문 취소 + 신규 발주가 필요한데, 그러면
+ 감시 루프에 자동 발주 경로가 생긴다(매매 자동 트리거 금지). 2026-07-31 관리자님 결정.
+
⚠️ kt10002 정정 응답의 ord_no 는 신규 주문번호다. 정정할 때마다 ord_no 를 갱신하지 않으면
- 두 번째 정정부터 orig_ord_no 가 틀려서 전부 실패한다. commit_modify 가 이걸 담당.
+ 두 번째 정정부터 orig_ord_no 가 틀려서 전부 실패한다. commit_step_modify 가 이걸 담당.
상태는 파일(state/trailing_stops.json)에 저장 — 웹·감시 루프가 각각 다른 프로세스라
같은 예약 목록을 봐야 한다. 동시성은 fcntl flock 으로 직렬화 (pin.py 와 같은 패턴).
@@ -42,6 +53,10 @@ MAX_TRAIL_PCT = 30.0
# 반대로 너무 벌리면 급락 시 헐값 매도가 되니 2틱.
ORD_UV_GAP_TICKS = 2
+# 계단 개수 상한. 고점이 오를 때마다 살아있는 레그를 전부 정정하므로 정정 콜이 계단 수에
+# 비례한다 (예약 3건 × 5계단 = 분당 15콜). 키움 rate limit 여유를 보고 5로 둔다.
+MAX_STEPS = 5
+
def _now_iso() -> str:
return datetime.now(KST).isoformat(timespec='seconds')
@@ -67,7 +82,10 @@ def compute_levels(peak: int, trail_pct: float, min_sell_price: Optional[int] =
raise ValueError(f'peak must be > 0 (got {peak})')
if not (MIN_TRAIL_PCT <= trail_pct <= MAX_TRAIL_PCT):
raise ValueError(f'trail_pct out of range: {trail_pct}')
- cond_uv = floor_to_tick(int(peak * (1 - trail_pct / 100)))
+ # round(_, 6) 은 부동소수점 잡음만 걷어낸다 — 5500×(1−30/100) 이 3849.9999999999995 로
+ # 나오는 탓에 int() 가 3849 로 깎고 호가단위 내림이 3845 까지 끌어내리던 버그가 있었다
+ # (의도는 3850). 잡음을 없앤 뒤 내림하므로 "정확히 그 폭 아래" 성격은 그대로다.
+ cond_uv = floor_to_tick(int(round(peak * (1 - trail_pct / 100), 6)))
floor_applied = False
if min_sell_price:
if min_sell_price <= 0:
@@ -82,21 +100,96 @@ def compute_levels(peak: int, trail_pct: float, min_sell_price: Optional[int] =
return {'cond_uv': cond_uv, 'ord_uv': ord_uv, 'floor_applied': floor_applied}
-def next_levels(res: dict, cur_price: int) -> Optional[dict]:
- """현재가를 보고 올릴 값이 있으면 반환, 없으면 None (순수 함수 — 단위테스트 대상).
+def normalize_steps(raw: list) -> list:
+ """입력한 계단 정의(누적 비중)를 내부 표현(추가 비중)으로 환산·검증한다.
- 상향 전용: 고점이 갱신되고 그 결과 조건단가가 실제로 올라갈 때만 정정 대상.
- 고점이 올라도 호가단위 내림 때문에 조건단가가 그대로면 정정하지 않는다(불필요한 API 콜 차단).
- 최저 매도가가 아직 지배 중이면 트레일 손절선이 올라도 조건단가가 안 변해 None 이 된다.
+ 입력 [{'pct': 10, 'cum': 20}, {'pct': 20, 'cum': 50}, {'pct': 30, 'cum': 100}]
+ 출력 [{'n': 1, 'pct': 10.0, 'cum': 20.0, 'weight': 20.0}, ... weight 30, 50]
+
+ cum(누적 비중)은 "이 하락률에 닿았을 때 최초 보유의 몇 %가 팔려 있어야 하는가"다.
+ 주문 수량은 계단마다의 추가분이므로 weight = cum − 직전 cum 으로 환산한다.
+
+ 마지막 cum 이 100 미만이어도 허용한다(일부만 계단 청산하고 나머지는 계속 보유).
+ 남는 수량은 스톱이 걸리지 않으므로 호출측이 화면에 표시해 준다.
"""
- if cur_price <= 0:
+ if not raw:
+ raise ValueError('계단이 비어 있음')
+ if len(raw) > MAX_STEPS:
+ raise ValueError(f'계단은 최대 {MAX_STEPS}개 (입력 {len(raw)}개)')
+ steps = []
+ prev_pct = 0.0
+ prev_cum = 0.0
+ for i, s in enumerate(raw, start=1):
+ pct = float(s['pct'])
+ cum = float(s['cum'])
+ if not (MIN_TRAIL_PCT <= pct <= MAX_TRAIL_PCT):
+ raise ValueError(f'{i}단계 하락률 {pct}% 는 {MIN_TRAIL_PCT}~{MAX_TRAIL_PCT}% 범위를 벗어남')
+ if pct <= prev_pct:
+ raise ValueError(f'{i}단계 하락률 {pct}% 가 앞 계단({prev_pct}%)보다 깊지 않음')
+ if cum <= prev_cum:
+ raise ValueError(f'{i}단계 누적 비중 {cum}% 가 앞 계단({prev_cum}%)보다 크지 않음')
+ if cum > 100:
+ raise ValueError(f'{i}단계 누적 비중 {cum}% 가 100% 를 넘음')
+ steps.append({'n': i, 'pct': pct, 'cum': cum, 'weight': cum - prev_cum})
+ prev_pct, prev_cum = pct, cum
+ return steps
+
+
+def allocate_step_qty(total_qty: int, weights: list) -> list:
+ """계단별 추가 비중(%) → 정수 주수. 최대잔여법(Hare quota).
+
+ 내림으로 나눈 뒤 남는 주를 소수부가 큰 계단부터 1주씩 배분한다.
+ "내림 후 마지막 계단에 몰아주기" 보다 얕은 계단이 0주로 죽는 일이 적다
+ (2주 · 20/30/50 → 최대잔여 [0,1,1] 2계단 생존 / 몰아주기 [0,0,2] 1계단).
+
+ 수량이 적어 0주가 되는 계단은 그대로 0 을 반환한다 — 발주할 수 없으므로
+ 호출측이 걸러내고 "몇 계단으로 줄었는지" 를 사용자에게 알린다.
+ """
+ if total_qty <= 0 or not weights:
+ return [0] * len(weights)
+ exact = [total_qty * w / 100.0 for w in weights]
+ base = [int(x) for x in exact]
+ remain = int(round(sum(exact))) - sum(base)
+ order = sorted(range(len(weights)), key=lambda i: exact[i] - base[i], reverse=True)
+ for i in order[:max(0, remain)]:
+ base[i] += 1
+ return base
+
+
+def compute_step_levels(peak: int, steps: list, min_sell_price: Optional[int] = None) -> list:
+ """고점 + 계단 정의 → 계단별 조건단가·지정가.
+
+ 최저 매도가는 모든 계단에 같은 하한으로 걸린다. 그래서 초기에는 여러 계단이 같은
+ 가격으로 뭉칠 수 있다(전부 최저 매도가). 그래도 주문을 병합하지 않는 이유는, 고점이
+ 올라 트레일 손절선이 최저 매도가를 추월하면 각 계단이 제 하락률대로 다시 벌어지기
+ 때문이다 — 병합해 버리면 정정만으로는 다시 쪼갤 수 없다(신규 발주가 필요해진다).
+ """
+ out = []
+ for s in steps:
+ lv = compute_levels(peak, s['pct'], min_sell_price)
+ out.append({**s, 'cond_uv': lv['cond_uv'], 'ord_uv': lv['ord_uv'],
+ 'floor_applied': lv['floor_applied']})
+ return out
+
+
+def next_step_levels(res: dict, cur_price: int) -> Optional[dict]:
+ """현재가가 고점을 넘었으면 새 고점과 상향 대상 레그를 반환 (순수 함수 — 단위테스트 대상).
+
+ 반환 {'peak': 새 고점, 'steps': [{'n', 'cond_uv', 'ord_uv'}, ...]}.
+ 고점이 안 올랐으면 None.
+
+ steps 가 빈 리스트일 수 있다 — 고점은 올랐지만 호가단위 내림이나 최저 매도가 지배로
+ 조건단가가 하나도 안 올라간 경우다. 이때 호출측은 정정 API 없이 고점만 갱신한다
+ (불필요한 콜 0, 화면의 고점 표시는 정확하게 유지).
+ """
+ if cur_price <= 0 or cur_price <= res['peak']:
return None
- if cur_price <= res['peak']:
- return None
- lv = compute_levels(cur_price, res['trail_pct'], res.get('min_sell_price'))
- if lv['cond_uv'] <= res['cond_uv']:
- return None
- return {'peak': cur_price, 'cond_uv': lv['cond_uv'], 'ord_uv': lv['ord_uv']}
+ ups = []
+ for s in res.get('steps') or []:
+ lv = compute_levels(cur_price, s['pct'], res.get('min_sell_price'))
+ if lv['cond_uv'] > s['cond_uv']:
+ ups.append({'n': s['n'], 'cond_uv': lv['cond_uv'], 'ord_uv': lv['ord_uv']})
+ return {'peak': cur_price, 'steps': ups}
class _FileLock:
@@ -158,36 +251,43 @@ def find_by_symbol(account: str, symbol: str) -> Optional[dict]:
return None
-def register(ord_no: str, account: str, symbol: str, symbol_name: str, qty: int,
- trail_pct: float, peak: int, cond_uv: int, ord_uv: int,
- routing_suffix: str = '', card_id: Optional[str] = None,
- min_sell_price: Optional[int] = None) -> dict:
- """키움에 스톱주문이 접수된 직후 호출 — ord_no 를 받아 예약으로 등록.
+def register_steps(account: str, symbol: str, symbol_name: str, total_qty: int,
+ peak: int, steps: list, routing_suffix: str = '',
+ card_id: Optional[str] = None,
+ min_sell_price: Optional[int] = None) -> dict:
+ """키움에 계단별 스톱주문이 접수된 직후 호출 — 레그 목록을 예약 1건으로 등록.
+
+ steps 각 항목은 접수 결과까지 채워져 있어야 한다:
+ {'n', 'pct', 'cum', 'weight', 'qty', 'ord_no', 'cond_uv', 'ord_uv'}
+
+ 접수에 실패한 레그는 호출측이 빼고 넘긴다 — 여기 등록된 것은 전부 키움에 살아있는
+ 주문이어야 감시 루프의 생존 판정이 성립한다.
초기 고점(peak)은 등록 시점 현재가다. 과거 고점(52주·매수후) 기준 옵션은 손절선이
현재가 위로 올라가 즉시 발동하는 구조라 2026-07-30 제거됐다.
"""
- if not ord_no:
- raise ValueError('ord_no required — 접수 확인된 주문만 등록')
+ if not steps:
+ raise ValueError('등록할 계단이 없음 — 접수 성공한 레그가 하나도 없다')
+ for s in steps:
+ if not s.get('ord_no'):
+ raise ValueError(f'{s.get("n")}단계 ord_no 없음 — 접수 확인된 주문만 등록')
res = {
'id': 'TRL-' + ''.join(secrets.choice('ABCDEFGHJKLMNPQRSTUVWXYZ23456789') for _ in range(4)),
- 'ord_no': ord_no,
'account': account,
'symbol': symbol,
'symbol_name': symbol_name,
- 'qty': qty,
- 'trail_pct': trail_pct,
+ 'qty': total_qty,
'min_sell_price': min_sell_price,
'peak': peak,
- 'cond_uv': cond_uv,
- 'ord_uv': ord_uv,
+ 'steps': [{'n': s['n'], 'pct': s['pct'], 'cum': s['cum'], 'weight': s['weight'],
+ 'qty': s['qty'], 'ord_no': s['ord_no'],
+ 'cond_uv': s['cond_uv'], 'ord_uv': s['ord_uv'],
+ 'entry_cond_uv': s['cond_uv'], 'modify_count': 0} for s in steps],
'routing_suffix': routing_suffix,
'card_id': card_id,
'created_at': _now_iso(),
'updated_at': _now_iso(),
- 'modify_count': 0,
'entry_peak': peak,
- 'entry_cond_uv': cond_uv,
}
with _FileLock(_LOCK_FILE):
reservations = _read()
@@ -196,25 +296,75 @@ def register(ord_no: str, account: str, symbol: str, symbol_name: str, qty: int,
return res
-def commit_modify(res_id: str, new_ord_no: str, peak: int, cond_uv: int, ord_uv: int) -> Optional[dict]:
- """정정 성공 후 상태 갱신. new_ord_no 는 kt10002 응답의 신규 주문번호.
+def commit_peak(res_id: str, peak: int) -> Optional[dict]:
+ """고점만 갱신 (정정할 레그가 없었던 경우). 화면의 고점 표시를 정확하게 유지한다."""
+ with _FileLock(_LOCK_FILE):
+ reservations = _read()
+ for r in reservations:
+ if r['id'] == res_id:
+ r['peak'] = peak
+ r['updated_at'] = _now_iso()
+ _write(reservations)
+ return r
+ return None
- ⚠️ ord_no 갱신이 이 함수의 핵심 — 안 하면 다음 정정이 실패한다.
+
+def commit_step_modify(res_id: str, step_n: int, new_ord_no: str, peak: int,
+ cond_uv: int, ord_uv: int) -> Optional[dict]:
+ """레그 정정 성공 후 상태 갱신. new_ord_no 는 kt10002 응답의 신규 주문번호.
+
+ ⚠️ ord_no 갱신이 이 함수의 핵심 — 안 하면 그 레그의 다음 정정이 전부 실패한다.
+ 고점은 예약 단위라 레그마다 같은 값으로 덮어써도 무해하다.
"""
if not new_ord_no:
raise ValueError('new_ord_no required')
with _FileLock(_LOCK_FILE):
reservations = _read()
for r in reservations:
- if r['id'] == res_id:
- r['ord_no'] = new_ord_no
+ if r['id'] != res_id:
+ continue
+ for s in r.get('steps') or []:
+ if s['n'] != step_n:
+ continue
+ s['ord_no'] = new_ord_no
+ s['cond_uv'] = cond_uv
+ s['ord_uv'] = ord_uv
+ s['modify_count'] = s.get('modify_count', 0) + 1
r['peak'] = peak
- r['cond_uv'] = cond_uv
- r['ord_uv'] = ord_uv
- r['modify_count'] = r.get('modify_count', 0) + 1
r['updated_at'] = _now_iso()
_write(reservations)
return r
+ return None
+ return None
+
+
+def remove_step(res_id: str, step_n: int, reason: str = '') -> Optional[dict]:
+ """레그 하나를 예약에서 제거 (체결·취소·소멸). 마지막 레그면 예약 자체를 지운다.
+
+ 반환 {'step': 제거된 레그, 'reservation': 예약 스냅샷, 'remaining': 남은 레그 수,
+ 'reservation_removed': bool} — 알림 메시지 조립용.
+ """
+ with _FileLock(_LOCK_FILE):
+ reservations = _read()
+ for i, r in enumerate(reservations):
+ if r['id'] != res_id:
+ continue
+ steps = r.get('steps') or []
+ hit = next((s for s in steps if s['n'] == step_n), None)
+ if hit is None:
+ return None
+ steps.remove(hit)
+ hit['removed_reason'] = reason
+ snapshot = json.loads(json.dumps(r))
+ if not steps:
+ reservations.pop(i)
+ _write(reservations)
+ return {'step': hit, 'reservation': snapshot, 'remaining': 0,
+ 'reservation_removed': True}
+ r['updated_at'] = _now_iso()
+ _write(reservations)
+ return {'step': hit, 'reservation': snapshot, 'remaining': len(steps),
+ 'reservation_removed': False}
return None
diff --git a/agents/stock/workspace/scripts/trailing_monitor.py b/agents/stock/workspace/scripts/trailing_monitor.py
index f9b0512..7e8b303 100644
--- a/agents/stock/workspace/scripts/trailing_monitor.py
+++ b/agents/stock/workspace/scripts/trailing_monitor.py
@@ -1,15 +1,24 @@
#!/usr/bin/env python3
"""트레일링 스톱 감시 — 고점이 갱신되면 키움 스톱주문의 조건단가를 상향 정정한다.
+**예약 1건 = 계단(레그) N개.** 고점 대비 하락률이 깊어질수록 더 많이 파는 계단식 청산이라
+계단마다 스톱주문이 따로 걸려 있다. 고점이 오르면 살아있는 레그를 전부 상향 정정한다.
+
LLM을 깨우지 않는다. 하는 일은 딱 두 가지:
- 1. 예약이 아직 미체결로 살아있는지 확인 (ka10075) — 사라졌으면 체결·취소로 보고 정리+알림
- 2. 현재가가 저장된 고점을 넘었으면 kt10002 정정으로 조건단가·지정가를 함께 올림
+ 1. 레그가 아직 미체결로 살아있는지 확인 (ka10075) — 사라졌으면 정리+알림
+ 2. 현재가가 저장된 고점을 넘었으면 kt10002 정정으로 계단별 조건단가·지정가를 함께 올림
신규 발주·수량 변경·방향 변경은 하지 않는다. 사람이 PIN으로 승인한 주문의
조건단가를 올리는 것뿐이고, 상향 전용이라 손절선이 내려가는 일은 없다.
+한 계단이 체결돼도 남은 계단을 재배치하지 않는다 — 재배치엔 취소+신규 발주가 필요해
+감시 루프에 자동 발주 경로가 생긴다(2026-07-31 관리자님 결정).
-⚠️ 정정하면 주문번호가 새로 발급된다 (kt10002 응답 ord_no). trailing.commit_modify 가
- 상태파일의 ord_no 를 갱신하지 않으면 다음 정정부터 전부 실패한다.
+⚠️ 레그가 사라진 사유는 **주문번호 단위**인 kt00007 로 판정한다. 종목 단위 집계인
+ 당일매매일지(ka10170)를 쓰면 한 계단이 체결된 날 나머지 계단이 장 마감으로 소멸했을 때
+ 그 소멸분까지 '체결' 로 오판한다 — 같은 종목 매도 기록이 이미 남아 있기 때문이다.
+
+⚠️ 정정하면 주문번호가 새로 발급된다 (kt10002 응답 ord_no). trailing.commit_step_modify 가
+ 상태파일의 레그별 ord_no 를 갱신하지 않으면 그 레그의 다음 정정부터 전부 실패한다.
⚠️ 고점은 '현재가' 로만 갱신한다. ka10095 가 당일 고가(high)도 주지만, 등록 시점 이전에
찍힌 고가까지 반영되면 등록 직후 손절선이 현재가 위로 올라가 즉시 발동할 수 있다.
@@ -78,66 +87,95 @@ def session_now() -> tuple[bool, str]:
return sess != 'CLOSED', sess
-def _fill_check(account: str, symbol: str) -> tuple:
- """예약이 사라진 사유 판정용 — 당일매매일지(ka10170)에서 그 종목 매도 기록을 찾는다.
+def _pct_s(v) -> str:
+ """10.0 → '10' — 계단 하락률 표기."""
+ return f'{float(v or 0):g}'
+
+
+def _leg_fill_check(account: str, ord_no: str, cache: dict) -> tuple:
+ """레그가 사라진 사유 판정 — kt00007 에서 **그 주문번호의** 체결수량을 본다.
⚠️ 미체결 조회에서 사라진 것만으로는 체결·취소·소멸을 구분할 수 없다(셋 다 목록에서 빠짐).
- 당일매매일지에 매도 기록이 없으면 **체결 안 된 것이 확정**이다.
- 있으면 트레일링 발동분인지 관리자님 수동 매도인지는 구분할 수 없어 '체결로 보임'까지만 말한다.
+ 종목 단위인 당일매매일지(ka10170)로 판정하면 계단 하나가 체결된 날 나머지 계단이
+ 장 마감으로 소멸했을 때 그 소멸분까지 '체결' 로 오판한다 — 같은 종목의 매도 기록이
+ 이미 남아 있기 때문이다. 주문번호 단위인 kt00007 은 레그마다 정확히 갈린다.
- 반환: (매도기록 dict 또는 None, 조회 성공 여부).
- 조회 실패와 '기록 없음'을 반드시 구분해야 한다 — 실패를 '체결 안 됨'으로 단정하면
+ 반환: (체결행 dict 또는 None, 조회 성공 여부).
+ 조회 실패와 '체결 안 됨' 을 반드시 구분해야 한다 — 실패를 '체결 안 됨' 으로 단정하면
실제로 팔렸는데 안 팔렸다고 알리게 된다.
"""
- try:
- rows = kc.get_trade_journal(account)
- except Exception as e:
- _log(f'당일매매일지 조회 실패 ({account}/{symbol}): {e!r}')
+ if account not in cache:
+ try:
+ cache[account] = kc.get_order_executions(account)
+ except Exception as e:
+ _log(f'주문체결내역 조회 실패 ({account}): {e!r}')
+ cache[account] = None
+ rows = cache[account]
+ if rows is None:
return None, False
for row in rows:
- if row.get('code') == symbol and (row.get('sell_qty') or 0) > 0:
+ if (row.get('ord_no') or '').strip() == ord_no and (row.get('cntr_qty') or 0) > 0:
return row, True
return None, True
-def _notify_gone(res: dict, sold, journal_ok: bool) -> None:
- """예약이 미체결 목록에서 사라짐 — 사유를 구분해 알린다.
+def _notify_gone_batch(events: list) -> None:
+ """한 사이클에 사라진 레그들을 예약 단위로 묶어 한 번만 알린다.
+
+ 장 마감이면 계단이 통째로 소멸하는데 레그마다 보내면 3~5통이 몰아친다.
+ 체결 / 미체결 소멸(장 마감 취소 등)은 관리자님이 취해야 할 행동이 완전히 다르므로
+ 계단별로 구분해 한 메시지 안에 나열한다.
- 체결 / 미체결 소멸(장 마감 취소 등)은 관리자님이 취해야 할 행동이 완전히 다르다.
2026-07-30 실측: 스톱주문은 장 마감 후 체결 없이 소멸한다(15:30~18:21 사이).
자동 재등록은 하지 않는다(관리자님 지시) — 다시 걸려면 자산웹에서 수동 등록.
"""
- floor_part = ''
- if res.get('min_sell_price'):
- floor_part = f' · 최저 매도가 {res["min_sell_price"]:,}원'
- head_lines = [
- f'계좌: {res["account"]} · {res["qty"]:,}주',
- f'마지막 손절선: {res["cond_uv"]:,}원 '
- f'(고점 {res["peak"]:,}원 대비 −{res["trail_pct"]}%){floor_part}',
- f'손절선 상향 {res.get("modify_count", 0)}회',
- ]
- if sold:
- title = f'✅ 트레일링 스톱 체결 — {res["symbol_name"]} ({res["symbol"]})'
- tail = [f'당일 매도 {sold["sell_qty"]:,}주 @ 평균 {sold.get("sell_avg", 0):,}원',
- f'실현손익 {sold.get("pl_amt", 0):,}원 (수수료·세금 차감)',
- '※ 같은 종목을 직접 매도하신 경우 그 기록일 수도 있습니다.']
- elif journal_ok:
- title = f'⚠️ 트레일링 스톱 소멸 — {res["symbol_name"]} ({res["symbol"]})'
- tail = ['체결되지 않았습니다 — 당일 매도 기록 없음, 보유수량 그대로입니다.',
- '장 마감으로 스톱주문이 취소된 것으로 보입니다.',
- '계속 쓰시려면 자산웹에서 다시 등록해주세요 (자동 재등록 안 함).']
- else:
- title = f'🎯 트레일링 스톱 종료 — {res["symbol_name"]} ({res["symbol"]})'
- tail = ['미체결 목록에서 사라졌습니다.',
- '당일매매일지 조회가 안 돼 체결 여부를 판정하지 못했습니다 — 확인해주세요.']
- send_telegram('\n'.join([title] + head_lines + tail), parse_mode=None)
+ by_res: dict = {}
+ for ev in events:
+ by_res.setdefault(ev['res']['id'], []).append(ev)
+
+ for evs in by_res.values():
+ res = evs[0]['res']
+ remaining = min(e['remaining'] for e in evs)
+ any_filled = any(e['filled'] for e in evs)
+ unknown = any(not e['ok'] for e in evs)
+ if any_filled:
+ icon = '✅'
+ word = '체결'
+ elif unknown:
+ icon = '🎯'
+ word = '종료'
+ else:
+ icon = '⚠️'
+ word = '소멸'
+ lines = [f'{icon} 트레일링 {word} — {res["symbol_name"]} ({res["symbol"]})',
+ f'계좌: {res["account"]} · 고점 {res["peak"]:,}원']
+ if res.get('min_sell_price'):
+ lines.append(f'최저 매도가 {res["min_sell_price"]:,}원')
+ for ev in sorted(evs, key=lambda e: e['step']['n']):
+ s = ev['step']
+ head = (f'{s["n"]}단계 −{_pct_s(s["pct"])}% {s["cond_uv"]:,}원 · {s["qty"]:,}주')
+ if ev['filled']:
+ f = ev['filled']
+ lines.append(f' ✅ {head} → 체결 {f.get("cntr_qty", 0):,}주 '
+ f'@ {f.get("cntr_uv", 0):,}원')
+ elif ev['ok']:
+ lines.append(f' ⚠️ {head} → 미체결 소멸 (보유수량 그대로)')
+ else:
+ lines.append(f' 🎯 {head} → 체결 여부 판정 불가 (체결내역 조회 실패)')
+ if remaining > 0:
+ lines.append(f'남은 계단 {remaining}개 — 감시 계속합니다.')
+ else:
+ lines.append('남은 계단 없음 — 계속 쓰시려면 자산웹에서 다시 등록해주세요 '
+ '(자동 재등록 안 함).')
+ send_telegram('\n'.join(lines), parse_mode=None)
-def _notify_modify_failed(res: dict, reason: str) -> None:
+def _notify_modify_failed(res: dict, step: dict, reason: str) -> None:
send_telegram(
f'⚠️ 트레일링 손절선 상향 실패 — {res["symbol_name"]} ({res["symbol"]})\n'
- f'계좌: {res["account"]} · 주문번호 {res["ord_no"]}\n'
- f'현재 손절선 {res["cond_uv"]:,}원은 그대로 유지됩니다.\n'
+ f'계좌: {res["account"]} · {step["n"]}단계 −{_pct_s(step["pct"])}% '
+ f'· 주문번호 {step["ord_no"]}\n'
+ f'현재 손절선 {step["cond_uv"]:,}원은 그대로 유지됩니다.\n'
f'사유: {reason}',
parse_mode=None)
@@ -171,30 +209,42 @@ def check(force: bool = False, dry_run: bool = False) -> int:
_log(f'미체결 조회 실패 [{acct}]: {e!r}')
open_by_acct[acct] = None
+ # 레그가 사라질 때만 kt00007 을 계좌당 1콜 추가로 부른다 (평시엔 호출 안 함).
+ exec_cache: dict = {}
+ gone_events = []
+
alive = []
for r in reservations:
rows = open_by_acct.get(r['account'])
if rows is None:
continue # 조회 실패 계좌 — 이번 사이클 판단 보류
- row = next((x for x in rows if x['ord_no'] == r['ord_no']), None)
- if row is None:
- gone = trailing.remove(r['id'], 'not_in_open_orders')
- # 사유 판정 — 예약이 사라질 때만 ka10170 1콜 추가(평시엔 호출 안 함).
- sold, journal_ok = _fill_check(r['account'], r['symbol'])
- if sold:
- why = f'체결 (당일 매도 {sold["sell_qty"]:,}주 @ {sold.get("sell_avg", 0):,})'
- elif journal_ok:
- why = '미체결 소멸 (당일 매도 기록 없음 — 장 마감 취소 추정)'
+ live_steps = []
+ for s in list(r.get('steps') or []):
+ row = next((x for x in rows if x['ord_no'] == s['ord_no']), None)
+ if row is not None:
+ live_steps.append((s, row))
+ continue
+ filled, exec_ok = _leg_fill_check(r['account'], s['ord_no'], exec_cache)
+ gone = trailing.remove_step(r['id'], s['n'], 'not_in_open_orders')
+ if filled:
+ why = f'체결 {filled.get("cntr_qty", 0):,}주 @ {filled.get("cntr_uv", 0):,}'
+ elif exec_ok:
+ why = '미체결 소멸 (체결수량 0 — 장 마감 취소 추정)'
else:
- why = '사유 판정 불가 (당일매매일지 조회 실패)'
- _log(f'예약 종료 {r["id"]} {r["symbol_name"]} — {why}')
- if gone and not dry_run:
- try:
- _notify_gone(gone, sold, journal_ok)
- except Exception as e:
- _log(f'알림 실패: {e!r}')
- continue
- alive.append((r, row))
+ why = '사유 판정 불가 (주문체결내역 조회 실패)'
+ _log(f'레그 종료 {r["id"]}/{s["n"]}단계 {r["symbol_name"]} — {why}')
+ if gone:
+ gone_events.append({'res': gone['reservation'], 'step': gone['step'],
+ 'filled': filled, 'ok': exec_ok,
+ 'remaining': gone['remaining']})
+ if live_steps:
+ alive.append((r, live_steps))
+
+ if gone_events and not dry_run:
+ try:
+ _notify_gone_batch(gone_events)
+ except Exception as e:
+ _log(f'알림 실패: {e!r}')
if not alive:
return 0
@@ -206,68 +256,82 @@ def check(force: bool = False, dry_run: bool = False) -> int:
return 1
raised = 0
- for r, row in alive:
+ for r, live_steps in alive:
cur = (quotes.get(r['symbol']) or {}).get('price') or 0
- levels = trailing.next_levels(r, cur)
- if not levels:
+ # 살아있는 레그만 담은 스냅샷으로 판단 — 이미 빠진 계단은 따라 올릴 대상이 아니다.
+ snap = {'peak': r['peak'], 'min_sell_price': r.get('min_sell_price'),
+ 'steps': [s for s, _ in live_steps]}
+ nx = trailing.next_step_levels(snap, cur)
+ if not nx:
continue
- # 미체결 잔량으로 정정 — 부분체결됐으면 잔량만 남는다 (저장된 qty 는 최초 주문수량).
- qty = row.get('unfilled_qty') or r['qty']
- try:
- res = kiwoom_order.modify_order(
- account_label=r['account'],
- orig_ord_no=r['ord_no'],
- symbol=r['symbol'],
- modify_qty=qty,
- modify_price=levels['ord_uv'],
- routing_suffix=row.get('routing_suffix', ''),
- dry_run=dry_run,
- card_id=r.get('card_id'),
- modify_cond_price=levels['cond_uv'],
- )
- except Exception as e:
- # sidecar 비활성(매매 차단) 포함. 손절선은 기존 값이 그대로 살아있다.
- _log(f'정정 예외 {r["id"]} {r["symbol_name"]}: {e!r}')
+ if not nx['steps']:
+ # 고점은 올랐지만 호가단위·최저 매도가 때문에 올릴 조건단가가 없다 → 정정 API 콜 0.
+ if not dry_run:
+ trailing.commit_peak(r['id'], nx['peak'])
continue
- if dry_run:
- _log(f'[dry-run] {r["id"]} {r["symbol_name"]} '
- f'고점 {r["peak"]:,}→{levels["peak"]:,} · '
- f'손절 {r["cond_uv"]:,}→{levels["cond_uv"]:,} / 지정 {levels["ord_uv"]:,} · '
- f'body={res.get("body")}')
- continue
+ for up in nx['steps']:
+ s, row = next(x for x in live_steps if x[0]['n'] == up['n'])
+ # 미체결 잔량으로 정정 — 부분체결됐으면 잔량만 남는다 (저장된 qty 는 최초 주문수량).
+ qty = row.get('unfilled_qty') or s['qty']
+ try:
+ res = kiwoom_order.modify_order(
+ account_label=r['account'],
+ orig_ord_no=s['ord_no'],
+ symbol=r['symbol'],
+ modify_qty=qty,
+ modify_price=up['ord_uv'],
+ routing_suffix=row.get('routing_suffix', ''),
+ dry_run=dry_run,
+ card_id=r.get('card_id'),
+ modify_cond_price=up['cond_uv'],
+ )
+ except Exception as e:
+ # sidecar 비활성(매매 차단) 포함. 손절선은 기존 값이 그대로 살아있다.
+ _log(f'정정 예외 {r["id"]}/{s["n"]}단계 {r["symbol_name"]}: {e!r}')
+ continue
- if res.get('ok'):
- new_ord_no = res.get('new_ord_no') or ''
- updated = trailing.commit_modify(r['id'], new_ord_no, levels['peak'],
- levels['cond_uv'], levels['ord_uv'])
- raised += 1
- _log(f'손절선 상향 {r["id"]} {r["symbol_name"]} '
- f'{r["cond_uv"]:,}→{levels["cond_uv"]:,}원 (고점 {levels["peak"]:,}) '
- f'ord_no {r["ord_no"]}→{new_ord_no}')
- if not updated:
- # 상태 갱신 실패 = 다음 정정이 옛 ord_no 로 나가 실패한다. 반드시 알린다.
- _log(f'⚠️ 상태 갱신 실패 {r["id"]} — ord_no 불일치 위험')
- try:
- _notify_modify_failed(r, f'정정은 성공했지만 상태 갱신 실패 (새 주문번호 {new_ord_no})')
- except Exception:
- pass
- else:
- reason = res.get('reason', 'UNKNOWN')
- detail = (res.get('response') or {}).get('return_msg') or res.get('error') or ''
- _log(f'정정 실패 {r["id"]} {r["symbol_name"]}: {reason} {detail} (세션 {sess})')
- # NXT 시간대에 KRX/SOR 원주문 정정이 거부되면 매 사이클 반복된다 — 쿨다운으로 스팸 차단.
- # 로그에는 매번 남으니 진단은 로그로 한다.
- if trailing.should_notify_failure(r['id'], time.time(), FAIL_NOTICE_COOLDOWN_SEC):
- try:
- _notify_modify_failed(r, f'{reason} {detail}'.strip() + f' · 세션 {sess}')
- except Exception as e:
- _log(f'알림 실패: {e!r}')
+ if dry_run:
+ _log(f'[dry-run] {r["id"]}/{s["n"]}단계 {r["symbol_name"]} '
+ f'고점 {r["peak"]:,}→{nx["peak"]:,} · '
+ f'손절 {s["cond_uv"]:,}→{up["cond_uv"]:,} / 지정 {up["ord_uv"]:,} · '
+ f'body={res.get("body")}')
+ continue
+
+ if res.get('ok'):
+ new_ord_no = res.get('new_ord_no') or ''
+ updated = trailing.commit_step_modify(r['id'], s['n'], new_ord_no,
+ nx['peak'], up['cond_uv'], up['ord_uv'])
+ raised += 1
+ _log(f'손절선 상향 {r["id"]}/{s["n"]}단계 {r["symbol_name"]} '
+ f'{s["cond_uv"]:,}→{up["cond_uv"]:,}원 (고점 {nx["peak"]:,}) '
+ f'ord_no {s["ord_no"]}→{new_ord_no}')
+ if not updated:
+ # 상태 갱신 실패 = 다음 정정이 옛 ord_no 로 나가 실패한다. 반드시 알린다.
+ _log(f'⚠️ 상태 갱신 실패 {r["id"]}/{s["n"]}단계 — ord_no 불일치 위험')
+ try:
+ _notify_modify_failed(r, s, f'정정은 성공했지만 상태 갱신 실패 '
+ f'(새 주문번호 {new_ord_no})')
+ except Exception:
+ pass
else:
- _log(f' 알림 생략 (쿨다운 {FAIL_NOTICE_COOLDOWN_SEC}초 내 이미 발송)')
+ reason = res.get('reason', 'UNKNOWN')
+ detail = (res.get('response') or {}).get('return_msg') or res.get('error') or ''
+ _log(f'정정 실패 {r["id"]}/{s["n"]}단계 {r["symbol_name"]}: '
+ f'{reason} {detail} (세션 {sess})')
+ # NXT 시간대에 KRX/SOR 원주문 정정이 거부되면 매 사이클 반복된다 — 쿨다운으로
+ # 스팸 차단. 쿨다운은 예약 단위다(같은 원인으로 전 계단이 함께 실패하므로
+ # 계단마다 알리면 한 사이클에 3~5통이 된다). 로그에는 매번 남는다.
+ if trailing.should_notify_failure(r['id'], time.time(), FAIL_NOTICE_COOLDOWN_SEC):
+ try:
+ _notify_modify_failed(r, s, f'{reason} {detail}'.strip() + f' · 세션 {sess}')
+ except Exception as e:
+ _log(f'알림 실패: {e!r}')
+ else:
+ _log(f' 알림 생략 (쿨다운 {FAIL_NOTICE_COOLDOWN_SEC}초 내 이미 발송)')
if raised:
- _log(f'완료 — {raised}건 상향 / 예약 {len(alive)}건')
+ _log(f'완료 — {raised}개 계단 상향 / 예약 {len(alive)}건')
return 0
@@ -277,16 +341,21 @@ def cmd_list() -> int:
print('트레일링 예약 없음')
return 0
for r in reservations:
+ steps = r.get('steps') or []
floor_part = f' · 최저 {r["min_sell_price"]:,}' if r.get('min_sell_price') else ''
entry_peak = r.get('entry_peak') or 0
peak_part = f'고점 {r["peak"]:,}'
if entry_peak and r['peak'] > entry_peak:
peak_part += f' (등록 시 {entry_peak:,})'
- print(f'{r["id"]} · {r["symbol_name"]}({r["symbol"]}) · {r["account"]} · {r["qty"]:,}주')
- print(f' 트레일 −{r["trail_pct"]}%{floor_part} · {peak_part} · '
- f'손절 {r["cond_uv"]:,} / 지정 {r["ord_uv"]:,}')
- print(f' ord_no {r["ord_no"]} · 상향 {r.get("modify_count", 0)}회 · '
- f'등록 {r["created_at"]} · 갱신 {r["updated_at"]}')
+ print(f'{r["id"]} · {r["symbol_name"]}({r["symbol"]}) · {r["account"]} · '
+ f'{r["qty"]:,}주 · {len(steps)}단')
+ print(f' {peak_part}{floor_part} · 등록 {r["created_at"]} · 갱신 {r["updated_at"]}')
+ for s in steps:
+ cum = s.get('cum', 0)
+ cum_part = '전량' if cum >= 100 else f'누적 {_pct_s(cum)}%'
+ print(f' {s["n"]}단계 −{_pct_s(s["pct"])}% · 손절 {s["cond_uv"]:,} / '
+ f'지정 {s["ord_uv"]:,} · {s["qty"]:,}주 ({cum_part}) · '
+ f'ord_no {s["ord_no"]} · 상향 {s.get("modify_count", 0)}회')
return 0
diff --git a/agents/stock/workspace/state/market_indicators_history.jsonl b/agents/stock/workspace/state/market_indicators_history.jsonl
index ad19c29..cfabf81 100644
--- a/agents/stock/workspace/state/market_indicators_history.jsonl
+++ b/agents/stock/workspace/state/market_indicators_history.jsonl
@@ -96,3 +96,5 @@
{"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"}
{"date": "2026-07-30", "market": "KOSDAQ", "market_label": "코스닥", "rise": 733, "upper": 5, "fall": 938, "lower": 0, "steady": 57, "adr": 78.68, "personal": -1108, "foreign": 2483, "institutional": -1435, "captured_at": "2026-07-30T21:00:02.501493+09:00"}
{"date": "2026-07-30", "market": "KOSPI", "market_label": "코스피", "rise": 609, "upper": 4, "fall": 277, "lower": 0, "steady": 30, "adr": 221.3, "personal": -14309, "foreign": 13280, "institutional": 805, "captured_at": "2026-07-30T21:00:02.501493+09:00"}
+{"date": "2026-07-31", "market": "KOSDAQ", "market_label": "코스닥", "rise": 1557, "upper": 14, "fall": 141, "lower": 0, "steady": 30, "adr": 1114.18, "personal": -4715, "foreign": 1697, "institutional": 2985, "captured_at": "2026-07-31T21:00:02.143730+09:00"}
+{"date": "2026-07-31", "market": "KOSPI", "market_label": "코스피", "rise": 775, "upper": 12, "fall": 127, "lower": 0, "steady": 15, "adr": 619.69, "personal": -82840, "foreign": 72410, "institutional": 11503, "captured_at": "2026-07-31T21:00:02.143730+09:00"}
diff --git a/agents/stock/workspace/state/sim/equity_history.json b/agents/stock/workspace/state/sim/equity_history.json
index 16b2d31..4b5845f 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}], "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}], "20260730": [{"id": "v319", "ph": "ca25f043", "equity": 93703887, "ret": -6.3}, {"id": "v321", "ph": "e82de49b", "equity": 92762525, "ret": -7.24}, {"id": "v317", "ph": "51f8ee6d", "equity": 92742162, "ret": -7.26}, {"id": "v318", "ph": "c99872ef", "equity": 89767027, "ret": -10.23}, {"id": "v316", "ph": "8dc1d197", "equity": 89059740, "ret": -10.94}, {"id": "v313", "ph": "b9f4ee72", "equity": 88893682, "ret": -11.11}, {"id": "v320", "ph": "48d6a9ef", "equity": 87867184, "ret": -12.13}, {"id": "v205", "ph": "02e5a3f5", "equity": 87579290, "ret": -12.42}, {"id": "v59", "ph": "1858e2ec", "equity": 87423506, "ret": -12.58}, {"id": "v101", "ph": "c4354346", "equity": 87047837, "ret": -12.95}, {"id": "v103", "ph": "75b0a37c", "equity": 86749860, "ret": -13.25}, {"id": "v203", "ph": "2071defa", "equity": 86731484, "ret": -13.27}, {"id": "v95", "ph": "7e28e756", "equity": 86545080, "ret": -13.45}, {"id": "v307", "ph": "6abce93d", "equity": 86312983, "ret": -13.69}, {"id": "v49", "ph": "cdba73e0", "equity": 86232908, "ret": -13.77}, {"id": "v57", "ph": "e7e98b6d", "equity": 86127681, "ret": -13.87}, {"id": "v314", "ph": "7511570e", "equity": 85870243, "ret": -14.13}, {"id": "v315", "ph": "e6d5b283", "equity": 85860248, "ret": -14.14}, {"id": "v304", "ph": "96c7e8e1", "equity": 85844816, "ret": -14.16}, {"id": "v99", "ph": "fb39409b", "equity": 85760586, "ret": -14.24}, {"id": "v97", "ph": "ebf31977", "equity": 85500235, "ret": -14.5}, {"id": "v197", "ph": "5c290a32", "equity": 85207207, "ret": -14.79}, {"id": "v209", "ph": "8730802d", "equity": 85148894, "ret": -14.85}, {"id": "v211", "ph": "9227673c", "equity": 84965011, "ret": -15.03}, {"id": "v306", "ph": "6966b8f6", "equity": 84789943, "ret": -15.21}, {"id": "v157", "ph": "80f3e23b", "equity": 84720571, "ret": -15.28}, {"id": "v91", "ph": "5674a3d7", "equity": 84433158, "ret": -15.57}, {"id": "v199", "ph": "390bfab3", "equity": 84373299, "ret": -15.63}, {"id": "v167", "ph": "b6d6aed8", "equity": 84322513, "ret": -15.68}, {"id": "v107", "ph": "be5cd36b", "equity": 84142299, "ret": -15.86}, {"id": "v87", "ph": "c0be98c0", "equity": 84045488, "ret": -15.95}, {"id": "v93", "ph": "f10d4e45", "equity": 84045488, "ret": -15.95}, {"id": "v207", "ph": "0f6601a0", "equity": 83965327, "ret": -16.03}, {"id": "v310", "ph": "ec9dd55c", "equity": 83966658, "ret": -16.03}, {"id": "v195", "ph": "dd89cf59", "equity": 83348690, "ret": -16.65}, {"id": "v201", "ph": "cb8a413e", "equity": 83348690, "ret": -16.65}, {"id": "v311", "ph": "8409c6e5", "equity": 83089806, "ret": -16.91}, {"id": "v161", "ph": "ed5677e6", "equity": 83078748, "ret": -16.92}, {"id": "v165", "ph": "8f862b27", "equity": 83078748, "ret": -16.92}, {"id": "v312", "ph": "4c23846f", "equity": 82361166, "ret": -17.64}, {"id": "v308", "ph": "cb12dd0b", "equity": 82296612, "ret": -17.7}, {"id": "v213", "ph": "0e1d8e45", "equity": 82166042, "ret": -17.83}, {"id": "v215", "ph": "a904a49d", "equity": 82026672, "ret": -17.97}, {"id": "v89", "ph": "c49d5680", "equity": 81913451, "ret": -18.09}, {"id": "v305", "ph": "8cc4eea6", "equity": 81765778, "ret": -18.23}, {"id": "v81", "ph": "a6eac1e4", "equity": 81470712, "ret": -18.53}, {"id": "v51", "ph": "21a98e46", "equity": 81243443, "ret": -18.76}, {"id": "v47", "ph": "ed758fcf", "equity": 81156371, "ret": -18.84}, {"id": "v105", "ph": "88395429", "equity": 80959271, "ret": -19.04}, {"id": "v189", "ph": "dfdbd0c8", "equity": 80671673, "ret": -19.33}, {"id": "v309", "ph": "07610040", "equity": 80488827, "ret": -19.51}, {"id": "v155", "ph": "31c0d84e", "equity": 79575623, "ret": -20.42}, {"id": "v159", "ph": "af80c67a", "equity": 79111745, "ret": -20.89}, {"id": "v301", "ph": "30da2021", "equity": 79007040, "ret": -20.99}, {"id": "v149", "ph": "c5329f8d", "equity": 78971856, "ret": -21.03}, {"id": "v223", "ph": "b57356b8", "equity": 78577100, "ret": -21.42}, {"id": "v235", "ph": "3e6c1666", "equity": 78577100, "ret": -21.42}, {"id": "v265", "ph": "7faed59d", "equity": 78577100, "ret": -21.42}, {"id": "v271", "ph": "2b9ccdcd", "equity": 78577100, "ret": -21.42}, {"id": "v303", "ph": "1a084164", "equity": 78294822, "ret": -21.71}, {"id": "v217", "ph": "4c547a61", "equity": 77993088, "ret": -22.01}, {"id": "v229", "ph": "d9261dfb", "equity": 77979170, "ret": -22.02}, {"id": "v277", "ph": "488b612a", "equity": 77979170, "ret": -22.02}, {"id": "v283", "ph": "479e4b25", "equity": 77979170, "ret": -22.02}, {"id": "v1", "ph": "4874f4c9", "equity": 77750338, "ret": -22.25}, {"id": "v224", "ph": "888ab069", "equity": 77325360, "ret": -22.67}, {"id": "v236", "ph": "f9c75560", "equity": 77325360, "ret": -22.67}, {"id": "v266", "ph": "c133b585", "equity": 77325360, "ret": -22.67}, {"id": "v272", "ph": "2ed2027f", "equity": 77325360, "ret": -22.67}, {"id": "v41", "ph": "e9d84e84", "equity": 77077851, "ret": -22.92}, {"id": "v218", "ph": "7304d2d4", "equity": 76415796, "ret": -23.58}, {"id": "v230", "ph": "141579fe", "equity": 76355235, "ret": -23.64}, {"id": "v278", "ph": "861fb42b", "equity": 76355235, "ret": -23.64}, {"id": "v284", "ph": "261c5d58", "equity": 76355235, "ret": -23.64}, {"id": "v302", "ph": "3f30502d", "equity": 75753500, "ret": -24.25}, {"id": "v296", "ph": "4c554378", "equity": 74175667, "ret": -25.82}, {"id": "v151", "ph": "2eb1dd06", "equity": 73703963, "ret": -26.3}, {"id": "v4", "ph": "b6219595", "equity": 72023274, "ret": -27.98}, {"id": "v298", "ph": "5d4bbec0", "equity": 71575206, "ret": -28.42}, {"id": "v147", "ph": "2fbeeedb", "equity": 71247007, "ret": -28.75}, {"id": "v40", "ph": "70731d89", "equity": 70674474, "ret": -29.33}, {"id": "v299", "ph": "25046b1a", "equity": 68512019, "ret": -31.49}, {"id": "v300", "ph": "c6ddc17b", "equity": 60257551, "ret": -39.74}]}
\ 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}], "20260730": [{"id": "v319", "ph": "ca25f043", "equity": 93703887, "ret": -6.3}, {"id": "v321", "ph": "e82de49b", "equity": 92762525, "ret": -7.24}, {"id": "v317", "ph": "51f8ee6d", "equity": 92742162, "ret": -7.26}, {"id": "v318", "ph": "c99872ef", "equity": 89767027, "ret": -10.23}, {"id": "v316", "ph": "8dc1d197", "equity": 89059740, "ret": -10.94}, {"id": "v313", "ph": "b9f4ee72", "equity": 88893682, "ret": -11.11}, {"id": "v320", "ph": "48d6a9ef", "equity": 87867184, "ret": -12.13}, {"id": "v205", "ph": "02e5a3f5", "equity": 87579290, "ret": -12.42}, {"id": "v59", "ph": "1858e2ec", "equity": 87423506, "ret": -12.58}, {"id": "v101", "ph": "c4354346", "equity": 87047837, "ret": -12.95}, {"id": "v103", "ph": "75b0a37c", "equity": 86749860, "ret": -13.25}, {"id": "v203", "ph": "2071defa", "equity": 86731484, "ret": -13.27}, {"id": "v95", "ph": "7e28e756", "equity": 86545080, "ret": -13.45}, {"id": "v307", "ph": "6abce93d", "equity": 86312983, "ret": -13.69}, {"id": "v49", "ph": "cdba73e0", "equity": 86232908, "ret": -13.77}, {"id": "v57", "ph": "e7e98b6d", "equity": 86127681, "ret": -13.87}, {"id": "v314", "ph": "7511570e", "equity": 85870243, "ret": -14.13}, {"id": "v315", "ph": "e6d5b283", "equity": 85860248, "ret": -14.14}, {"id": "v304", "ph": "96c7e8e1", "equity": 85844816, "ret": -14.16}, {"id": "v99", "ph": "fb39409b", "equity": 85760586, "ret": -14.24}, {"id": "v97", "ph": "ebf31977", "equity": 85500235, "ret": -14.5}, {"id": "v197", "ph": "5c290a32", "equity": 85207207, "ret": -14.79}, {"id": "v209", "ph": "8730802d", "equity": 85148894, "ret": -14.85}, {"id": "v211", "ph": "9227673c", "equity": 84965011, "ret": -15.03}, {"id": "v306", "ph": "6966b8f6", "equity": 84789943, "ret": -15.21}, {"id": "v157", "ph": "80f3e23b", "equity": 84720571, "ret": -15.28}, {"id": "v91", "ph": "5674a3d7", "equity": 84433158, "ret": -15.57}, {"id": "v199", "ph": "390bfab3", "equity": 84373299, "ret": -15.63}, {"id": "v167", "ph": "b6d6aed8", "equity": 84322513, "ret": -15.68}, {"id": "v107", "ph": "be5cd36b", "equity": 84142299, "ret": -15.86}, {"id": "v87", "ph": "c0be98c0", "equity": 84045488, "ret": -15.95}, {"id": "v93", "ph": "f10d4e45", "equity": 84045488, "ret": -15.95}, {"id": "v207", "ph": "0f6601a0", "equity": 83965327, "ret": -16.03}, {"id": "v310", "ph": "ec9dd55c", "equity": 83966658, "ret": -16.03}, {"id": "v195", "ph": "dd89cf59", "equity": 83348690, "ret": -16.65}, {"id": "v201", "ph": "cb8a413e", "equity": 83348690, "ret": -16.65}, {"id": "v311", "ph": "8409c6e5", "equity": 83089806, "ret": -16.91}, {"id": "v161", "ph": "ed5677e6", "equity": 83078748, "ret": -16.92}, {"id": "v165", "ph": "8f862b27", "equity": 83078748, "ret": -16.92}, {"id": "v312", "ph": "4c23846f", "equity": 82361166, "ret": -17.64}, {"id": "v308", "ph": "cb12dd0b", "equity": 82296612, "ret": -17.7}, {"id": "v213", "ph": "0e1d8e45", "equity": 82166042, "ret": -17.83}, {"id": "v215", "ph": "a904a49d", "equity": 82026672, "ret": -17.97}, {"id": "v89", "ph": "c49d5680", "equity": 81913451, "ret": -18.09}, {"id": "v305", "ph": "8cc4eea6", "equity": 81765778, "ret": -18.23}, {"id": "v81", "ph": "a6eac1e4", "equity": 81470712, "ret": -18.53}, {"id": "v51", "ph": "21a98e46", "equity": 81243443, "ret": -18.76}, {"id": "v47", "ph": "ed758fcf", "equity": 81156371, "ret": -18.84}, {"id": "v105", "ph": "88395429", "equity": 80959271, "ret": -19.04}, {"id": "v189", "ph": "dfdbd0c8", "equity": 80671673, "ret": -19.33}, {"id": "v309", "ph": "07610040", "equity": 80488827, "ret": -19.51}, {"id": "v155", "ph": "31c0d84e", "equity": 79575623, "ret": -20.42}, {"id": "v159", "ph": "af80c67a", "equity": 79111745, "ret": -20.89}, {"id": "v301", "ph": "30da2021", "equity": 79007040, "ret": -20.99}, {"id": "v149", "ph": "c5329f8d", "equity": 78971856, "ret": -21.03}, {"id": "v223", "ph": "b57356b8", "equity": 78577100, "ret": -21.42}, {"id": "v235", "ph": "3e6c1666", "equity": 78577100, "ret": -21.42}, {"id": "v265", "ph": "7faed59d", "equity": 78577100, "ret": -21.42}, {"id": "v271", "ph": "2b9ccdcd", "equity": 78577100, "ret": -21.42}, {"id": "v303", "ph": "1a084164", "equity": 78294822, "ret": -21.71}, {"id": "v217", "ph": "4c547a61", "equity": 77993088, "ret": -22.01}, {"id": "v229", "ph": "d9261dfb", "equity": 77979170, "ret": -22.02}, {"id": "v277", "ph": "488b612a", "equity": 77979170, "ret": -22.02}, {"id": "v283", "ph": "479e4b25", "equity": 77979170, "ret": -22.02}, {"id": "v1", "ph": "4874f4c9", "equity": 77750338, "ret": -22.25}, {"id": "v224", "ph": "888ab069", "equity": 77325360, "ret": -22.67}, {"id": "v236", "ph": "f9c75560", "equity": 77325360, "ret": -22.67}, {"id": "v266", "ph": "c133b585", "equity": 77325360, "ret": -22.67}, {"id": "v272", "ph": "2ed2027f", "equity": 77325360, "ret": -22.67}, {"id": "v41", "ph": "e9d84e84", "equity": 77077851, "ret": -22.92}, {"id": "v218", "ph": "7304d2d4", "equity": 76415796, "ret": -23.58}, {"id": "v230", "ph": "141579fe", "equity": 76355235, "ret": -23.64}, {"id": "v278", "ph": "861fb42b", "equity": 76355235, "ret": -23.64}, {"id": "v284", "ph": "261c5d58", "equity": 76355235, "ret": -23.64}, {"id": "v302", "ph": "3f30502d", "equity": 75753500, "ret": -24.25}, {"id": "v296", "ph": "4c554378", "equity": 74175667, "ret": -25.82}, {"id": "v151", "ph": "2eb1dd06", "equity": 73703963, "ret": -26.3}, {"id": "v4", "ph": "b6219595", "equity": 72023274, "ret": -27.98}, {"id": "v298", "ph": "5d4bbec0", "equity": 71575206, "ret": -28.42}, {"id": "v147", "ph": "2fbeeedb", "equity": 71247007, "ret": -28.75}, {"id": "v40", "ph": "70731d89", "equity": 70674474, "ret": -29.33}, {"id": "v299", "ph": "25046b1a", "equity": 68512019, "ret": -31.49}, {"id": "v300", "ph": "c6ddc17b", "equity": 60257551, "ret": -39.74}], "20260731": [{"id": "v319", "ph": "ca25f043", "equity": 93981637, "ret": -6.02}, {"id": "v317", "ph": "51f8ee6d", "equity": 93182654, "ret": -6.82}, {"id": "v321", "ph": "e82de49b", "equity": 92080780, "ret": -7.92}, {"id": "v318", "ph": "c99872ef", "equity": 89603667, "ret": -10.4}, {"id": "v316", "ph": "8dc1d197", "equity": 89088875, "ret": -10.91}, {"id": "v313", "ph": "b9f4ee72", "equity": 87910137, "ret": -12.09}, {"id": "v320", "ph": "48d6a9ef", "equity": 87784529, "ret": -12.22}, {"id": "v205", "ph": "02e5a3f5", "equity": 86712526, "ret": -13.29}, {"id": "v59", "ph": "1858e2ec", "equity": 86494457, "ret": -13.51}, {"id": "v101", "ph": "c4354346", "equity": 86110346, "ret": -13.89}, {"id": "v103", "ph": "75b0a37c", "equity": 85920670, "ret": -14.08}, {"id": "v304", "ph": "96c7e8e1", "equity": 85371106, "ret": -14.63}, {"id": "v314", "ph": "7511570e", "equity": 85297701, "ret": -14.7}, {"id": "v57", "ph": "e7e98b6d", "equity": 85152826, "ret": -14.85}, {"id": "v307", "ph": "6abce93d", "equity": 85091288, "ret": -14.91}, {"id": "v97", "ph": "ebf31977", "equity": 84901778, "ret": -15.1}, {"id": "v99", "ph": "fb39409b", "equity": 84785781, "ret": -15.21}, {"id": "v315", "ph": "e6d5b283", "equity": 84572030, "ret": -15.43}, {"id": "v203", "ph": "2071defa", "equity": 84493119, "ret": -15.51}, {"id": "v197", "ph": "5c290a32", "equity": 84364085, "ret": -15.64}, {"id": "v95", "ph": "7e28e756", "equity": 84324940, "ret": -15.68}, {"id": "v209", "ph": "8730802d", "equity": 84227583, "ret": -15.77}, {"id": "v211", "ph": "9227673c", "equity": 84221004, "ret": -15.78}, {"id": "v49", "ph": "cdba73e0", "equity": 84040018, "ret": -15.96}, {"id": "v306", "ph": "6966b8f6", "equity": 83866858, "ret": -16.13}, {"id": "v310", "ph": "ec9dd55c", "equity": 83861378, "ret": -16.14}, {"id": "v91", "ph": "5674a3d7", "equity": 83467598, "ret": -16.53}, {"id": "v199", "ph": "390bfab3", "equity": 83418841, "ret": -16.58}, {"id": "v167", "ph": "b6d6aed8", "equity": 83411395, "ret": -16.59}, {"id": "v87", "ph": "c0be98c0", "equity": 83191022, "ret": -16.81}, {"id": "v93", "ph": "f10d4e45", "equity": 83191022, "ret": -16.81}, {"id": "v207", "ph": "0f6601a0", "equity": 83009870, "ret": -16.99}, {"id": "v311", "ph": "8409c6e5", "equity": 82900007, "ret": -17.1}, {"id": "v195", "ph": "dd89cf59", "equity": 82564335, "ret": -17.44}, {"id": "v201", "ph": "cb8a413e", "equity": 82564335, "ret": -17.44}, {"id": "v157", "ph": "80f3e23b", "equity": 82527934, "ret": -17.47}, {"id": "v161", "ph": "ed5677e6", "equity": 82132555, "ret": -17.87}, {"id": "v165", "ph": "8f862b27", "equity": 82132555, "ret": -17.87}, {"id": "v107", "ph": "be5cd36b", "equity": 82015108, "ret": -17.98}, {"id": "v305", "ph": "8cc4eea6", "equity": 81392768, "ret": -18.61}, {"id": "v89", "ph": "c49d5680", "equity": 81332729, "ret": -18.67}, {"id": "v308", "ph": "cb12dd0b", "equity": 81299392, "ret": -18.7}, {"id": "v213", "ph": "0e1d8e45", "equity": 80394144, "ret": -19.61}, {"id": "v215", "ph": "a904a49d", "equity": 80002511, "ret": -20.0}, {"id": "v47", "ph": "ed758fcf", "equity": 79991231, "ret": -20.01}, {"id": "v312", "ph": "4c23846f", "equity": 79726208, "ret": -20.27}, {"id": "v309", "ph": "07610040", "equity": 79511819, "ret": -20.49}, {"id": "v81", "ph": "a6eac1e4", "equity": 79284865, "ret": -20.72}, {"id": "v51", "ph": "21a98e46", "equity": 79085364, "ret": -20.91}, {"id": "v105", "ph": "88395429", "equity": 78988206, "ret": -21.01}, {"id": "v155", "ph": "31c0d84e", "equity": 78950831, "ret": -21.05}, {"id": "v189", "ph": "dfdbd0c8", "equity": 78469034, "ret": -21.53}, {"id": "v301", "ph": "30da2021", "equity": 77838737, "ret": -22.16}, {"id": "v149", "ph": "c5329f8d", "equity": 77779032, "ret": -22.22}, {"id": "v159", "ph": "af80c67a", "equity": 76945163, "ret": -23.05}, {"id": "v223", "ph": "b57356b8", "equity": 76713305, "ret": -23.29}, {"id": "v235", "ph": "3e6c1666", "equity": 76713305, "ret": -23.29}, {"id": "v265", "ph": "7faed59d", "equity": 76713305, "ret": -23.29}, {"id": "v271", "ph": "2b9ccdcd", "equity": 76713305, "ret": -23.29}, {"id": "v303", "ph": "1a084164", "equity": 76464423, "ret": -23.54}, {"id": "v1", "ph": "4874f4c9", "equity": 76301105, "ret": -23.7}, {"id": "v224", "ph": "888ab069", "equity": 76219911, "ret": -23.78}, {"id": "v236", "ph": "f9c75560", "equity": 76219911, "ret": -23.78}, {"id": "v266", "ph": "c133b585", "equity": 76219911, "ret": -23.78}, {"id": "v272", "ph": "2ed2027f", "equity": 76219911, "ret": -23.78}, {"id": "v217", "ph": "4c547a61", "equity": 76135353, "ret": -23.86}, {"id": "v229", "ph": "d9261dfb", "equity": 76121105, "ret": -23.88}, {"id": "v277", "ph": "488b612a", "equity": 76121105, "ret": -23.88}, {"id": "v283", "ph": "479e4b25", "equity": 76121105, "ret": -23.88}, {"id": "v41", "ph": "e9d84e84", "equity": 75838425, "ret": -24.16}, {"id": "v218", "ph": "7304d2d4", "equity": 75338200, "ret": -24.66}, {"id": "v230", "ph": "141579fe", "equity": 75278431, "ret": -24.72}, {"id": "v278", "ph": "861fb42b", "equity": 75278431, "ret": -24.72}, {"id": "v284", "ph": "261c5d58", "equity": 75278431, "ret": -24.72}, {"id": "v302", "ph": "3f30502d", "equity": 74623886, "ret": -25.38}, {"id": "v296", "ph": "4c554378", "equity": 73787413, "ret": -26.21}, {"id": "v151", "ph": "2eb1dd06", "equity": 72583118, "ret": -27.42}, {"id": "v4", "ph": "b6219595", "equity": 70766899, "ret": -29.23}, {"id": "v147", "ph": "2fbeeedb", "equity": 70187510, "ret": -29.81}, {"id": "v40", "ph": "70731d89", "equity": 69625265, "ret": -30.37}, {"id": "v298", "ph": "5d4bbec0", "equity": 69606630, "ret": -30.39}, {"id": "v299", "ph": "25046b1a", "equity": 67769731, "ret": -32.23}, {"id": "v300", "ph": "c6ddc17b", "equity": 58839749, "ret": -41.16}]}
\ 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 017f5fe..2c4c178 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": 6023.66, "20260729": 5663.24, "20260730": 5576.62}, "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": 662.68, "20260730": 644.97}}
\ 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": 5663.24, "20260730": 5593.56, "20260731": 6615.6}, "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": 662.68, "20260730": 644.78, "20260731": 720.54}}
\ 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 316ede3..a1ac485 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": 9942727.734499987,
+ "cash": 15638954.576999987,
"initial": 100000000,
"positions": {
"010950": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 5572914.42378125,
"last_add_price": 130800
@@ -60,32 +60,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5640114.3750312505,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 120,
- "entry_price": 89875.0,
- "entry_at": "2026-07-23T09:46:06.299578+09:00",
- "stop": 78839,
- "target": 122984,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 5411911.7463125,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5547990.7530625,
"last_add_price": 18950
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 589,
- "entry_price": 6130,
+ "qty": 1140,
+ "entry_price": 6333.0,
"entry_at": "2026-07-30T09:04:05.277095+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3612125.2394573665,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -144,17 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5035879.961218749,
"last_add_price": 127700
}
},
- "realized_pnl": -21837800.879500017,
- "closed_trades": 20,
+ "realized_pnl": -23318600.42950002,
+ "closed_trades": 21,
"wins": 0,
"peak_equity": 100102462.48,
- "max_drawdown": 0.22555800282646568,
+ "max_drawdown": 0.2476485322022221,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -167,8 +146,9 @@
"055550": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-29",
- "252990": "2026-07-29"
+ "252990": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.943184+09:00",
- "updated_at": "2026-07-30T15:28:06.297781+09:00"
+ "updated_at": "2026-07-31T15:28:07.174717+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 91ea602..cf55bc4 100644
--- a/agents/stock/workspace/state/sim/variants/v1/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v1/trades.jsonl
@@ -63,3 +63,5 @@
{"ts": "2026-07-30T09:04:05.277102+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 589, "cost": 3611112, "path": "pullback", "reason": "눌림목 지정가 7,457 도달", "stop": 4793, "target": 10140, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,120 vs 5,256"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,182 / 5,256"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,457 (현재 6,120)"}]}
{"ts": "2026-07-30T09:16:09.704313+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 124100, "qty": 40, "cost": 4964745, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113673, "target": 155380, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "124,000 vs 117,010"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,260 / 117,010"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,260 / 110,085"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+54.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +9 · 기 +389 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "518,220 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.31% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T10:10:06.142998+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 39, "cost": 4981047, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113673, "target": 155380, "signals": [{"label": "손절선", "ok": true, "detail": "113,673 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 155,380"}, {"label": "추세(10일선)", "ok": true, "detail": "117,370"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,835"}]}
+{"ts": "2026-07-31T09:06:05.825941+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 551, "cost": 3609591, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.330737+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 120, "proceeds": 9305818, "entry_price": 89875, "pnl": -1480800, "pnl_pct": -13.55, "hold_from": "2026-07-23T09:46:06.299578+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,839 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 122,984"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"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 03c50c7..4c5a67c 100644
--- a/agents/stock/workspace/state/sim/variants/v101/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v101/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 45394687.33300002,
+ "cash": 49968605.94800002,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3936003.3225085386,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 85,
- "entry_price": 89534.11764705883,
- "entry_at": "2026-07-23T09:50:01.505016+09:00",
- "stop": 78555,
- "target": 106003,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3844545.2388675264,
- "last_add_price": 90900
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5296043.025056097,
"last_add_price": 126400
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,653 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5514104.658843751,
"last_add_price": 19090
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 329,
- "entry_price": 6130,
+ "qty": 637,
+ "entry_price": 6333.076923076923,
"entry_at": "2026-07-30T09:04:06.859145+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2020237.3208749255,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3949543.523644232,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -12184860.553500012,
- "closed_trades": 22,
+ "realized_pnl": -13204780.888500012,
+ "closed_trades": 23,
"wins": 1,
"peak_equity": 100172467.23000002,
- "max_drawdown": 0.13191928143946544,
+ "max_drawdown": 0.14748235408916366,
"last_exit": {
"030000": "2026-07-29",
"086790": "2026-07-28",
@@ -168,8 +147,9 @@
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944232+09:00",
- "updated_at": "2026-07-30T15:28:06.357487+09:00"
+ "updated_at": "2026-07-31T15:28:07.234615+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 8736b19..9695155 100644
--- a/agents/stock/workspace/state/sim/variants/v101/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v101/trades.jsonl
@@ -62,3 +62,5 @@
{"ts": "2026-07-30T09:24:06.912152+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 29, "cost": 3822773, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 154020, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:06.863454+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 867, "cost": 5462919, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7067, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:50:06.667546+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 41, "cost": 5183177, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 138976, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,976"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:06.408818+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 308, "cost": 2017703, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.408934+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 85, "proceeds": 6591621, "entry_price": 89534, "pnl": -1019920, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.505016+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,555 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 106,003"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v103/portfolio.json b/agents/stock/workspace/state/sim/variants/v103/portfolio.json
index aadd46b..9a1070c 100644
--- a/agents/stock/workspace/state/sim/variants/v103/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v103/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 33514429.521500062,
+ "cash": 38185549.56900006,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3962363.617644489,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 86,
- "entry_price": 89518.6046511628,
- "entry_at": "2026-07-23T09:50:01.507036+09:00",
- "stop": 78539,
- "target": 105988,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3892203.318086031,
- "last_add_price": 90900
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5549046.703468754,
"last_add_price": 120500
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5150762.675171776,
"last_add_price": 125200
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,019 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5467064.310906254,
"last_add_price": 19090
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 326,
- "entry_price": 6130,
+ "qty": 631,
+ "entry_price": 6333.011093502377,
"entry_at": "2026-07-30T09:04:06.863063+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2002983.4606684945,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3940896.531574532,
"last_add_price": 131800
@@ -171,11 +150,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -13097543.475500017,
- "closed_trades": 27,
+ "realized_pnl": -14128128.55550002,
+ "closed_trades": 28,
"wins": 2,
"peak_equity": 101529111.72700004,
- "max_drawdown": 0.14680816124520618,
+ "max_drawdown": 0.1639948569900874,
"last_exit": {
"030000": "2026-07-29",
"086790": "2026-07-29",
@@ -190,8 +169,9 @@
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944251+09:00",
- "updated_at": "2026-07-30T15:28:06.359449+09:00"
+ "updated_at": "2026-07-31T15:28:07.236534+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 6cb4650..cd684eb 100644
--- a/agents/stock/workspace/state/sim/variants/v103/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v103/trades.jsonl
@@ -80,3 +80,5 @@
{"ts": "2026-07-30T09:16:11.313716+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 41, "cost": 5133970, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 136750, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 136,750"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:06.914861+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 29, "cost": 3822773, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 154020, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:06.866302+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 865, "cost": 5450317, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7067, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:06:06.410935+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 305, "cost": 1998050, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.411045+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 86, "proceeds": 6669170, "entry_price": 89519, "pnl": -1030585, "pnl_pct": -13.2, "hold_from": "2026-07-23T09:50:01.507036+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,539 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 105,988"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v105/portfolio.json b/agents/stock/workspace/state/sim/variants/v105/portfolio.json
index 1239929..4c16590 100644
--- a/agents/stock/workspace/state/sim/variants/v105/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v105/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 28681733.183500044,
+ "cash": 33545438.188500047,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4980582.661409654,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 107,
- "entry_price": 89537.3831775701,
- "entry_at": "2026-07-23T09:50:01.509012+09:00",
- "stop": 81303,
- "target": 106006,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4849662.714601921,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5535494.525500003,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 2,135 도달",
- "cur_price": 1846,
+ "cur_price": 1911,
"tranches": 2,
"tranche_value": 2595536.5029300014,
"last_add_price": 1951
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5213821.568625003,
"last_add_price": 120500
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 411,
- "entry_price": 6130,
+ "qty": 795,
+ "entry_price": 6332.867924528302,
"entry_at": "2026-07-30T09:04:06.866644+09:00",
- "stop": 5127,
- "target": 8135,
- "peak": 6330,
+ "stop": 5362,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2521548.49371356,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,17 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4970364.152582046,
"last_add_price": 131800
}
},
- "realized_pnl": -18271210.95150003,
- "closed_trades": 39,
+ "realized_pnl": -20473865.741500027,
+ "closed_trades": 40,
"wins": 3,
"peak_equity": 101695667.93550003,
- "max_drawdown": 0.20390639220887885,
+ "max_drawdown": 0.23379971074166161,
"last_exit": {
"030000": "2026-07-24",
"035420": "2026-06-23",
@@ -173,8 +152,9 @@
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944270+09:00",
- "updated_at": "2026-07-30T15:28:06.945088+09:00"
+ "updated_at": "2026-07-31T15:28:07.717156+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 ad0b5ae..0f6efff 100644
--- a/agents/stock/workspace/state/sim/variants/v105/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v105/trades.jsonl
@@ -110,3 +110,5 @@
{"ts": "2026-07-30T09:04:06.866646+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 411, "cost": 2519808, "path": "pullback", "reason": "눌림목 지정가 7,792 도달", "stop": 5127, "target": 8135, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,792 (현재 6,120)"}]}
{"ts": "2026-07-30T09:24:06.917510+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 37, "cost": 4877331, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120690, "target": 154020, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T11:58:07.822065+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 110, "proceeds": 10067330, "entry_price": 101115, "pnl": -1056938, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.813457+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,144"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:04:07.266662+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 107, "proceeds": 7379282, "entry_price": 89537, "pnl": -2202655, "pnl_pct": -22.83, "hold_from": "2026-07-23T09:50:01.509012+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,303 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 106,006"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.413012+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 384, "cost": 2515577, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v107/portfolio.json b/agents/stock/workspace/state/sim/variants/v107/portfolio.json
index 0954501..c52b814 100644
--- a/agents/stock/workspace/state/sim/variants/v107/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v107/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 19178388.71,
+ "cash": 24308308.2,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5156172.079657566,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 112,
- "entry_price": 89525.89285714286,
- "entry_at": "2026-07-23T09:50:01.510934+09:00",
- "stop": 81291,
- "target": 105995,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 5078672.507755172,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5806232.125812501,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5368293.320125001,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5180051.180047499,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 423,
- "entry_price": 6130,
+ "qty": 819,
+ "entry_price": 6333.076923076923,
"entry_at": "2026-07-30T09:04:07.457322+09:00",
- "stop": 5127,
- "target": 8135,
- "peak": 6330,
+ "stop": 5363,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2599049.62031184,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 5127095.802498201,
"last_add_price": 131800
@@ -171,11 +150,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -15557333.116500024,
- "closed_trades": 31,
+ "realized_pnl": -17861628.591500025,
+ "closed_trades": 32,
"wins": 2,
"peak_equity": 101690998.13850003,
- "max_drawdown": 0.17426239686294243,
+ "max_drawdown": 0.2049465569225206,
"last_exit": {
"086790": "2026-07-29",
"030000": "2026-07-16",
@@ -190,8 +169,9 @@
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944290+09:00",
- "updated_at": "2026-07-30T15:28:06.956556+09:00"
+ "updated_at": "2026-07-31T15:28:07.724720+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 ce82c7d..1e7296a 100644
--- a/agents/stock/workspace/state/sim/variants/v107/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v107/trades.jsonl
@@ -90,3 +90,5 @@
{"ts": "2026-07-30T09:16:11.909415+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 41, "cost": 5133970, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111347, "target": 141206, "signals": [{"label": "손절선", "ok": true, "detail": "111,347 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 141,206"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:07.511684+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 38, "cost": 5009151, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120690, "target": 154020, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.458683+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 855, "cost": 5387308, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5917, "target": 7067, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:04:07.865082+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 112, "proceeds": 7724109, "entry_price": 89526, "pnl": -2304295, "pnl_pct": -22.82, "hold_from": "2026-07-23T09:50:01.510934+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,291 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 105,995"}, {"label": "추세(10일선)", "ok": false, "detail": "80,070"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.999372+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 396, "cost": 2594189, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v147/portfolio.json b/agents/stock/workspace/state/sim/variants/v147/portfolio.json
index 19fbcad..c9800d8 100644
--- a/agents/stock/workspace/state/sim/variants/v147/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v147/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 22078706.885999955,
+ "cash": 22210919.810999956,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5184250.1290937485,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5024795.592812498,
"last_add_price": 18950
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4675255.455593748,
"last_add_price": 120500
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4550435.925312498,
"last_add_price": 125200
@@ -92,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 545,
- "entry_price": 6130,
+ "qty": 1055,
+ "entry_price": 6333.03317535545,
"entry_at": "2026-07-30T09:04:07.466771+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3342107.250162302,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4604300.898906248,
"last_add_price": 130900
@@ -148,34 +148,13 @@
"tranches": 1,
"tranche_value": 4614360.447343747,
"last_add_price": 6310
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 50,
- "entry_price": 87900,
- "entry_at": "2026-07-30T12:04:07.816765+09:00",
- "stop": 76706,
- "target": 121481,
- "peak": 89200,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 4476061.633499997,
- "last_add_price": 87900
}
},
- "realized_pnl": -28607537.16000002,
- "closed_trades": 32,
+ "realized_pnl": -29529982.41000002,
+ "closed_trades": 33,
"wins": 1,
"peak_equity": 103066363.367,
- "max_drawdown": 0.3103753294088034,
+ "max_drawdown": 0.32842114973504477,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-29",
@@ -193,11 +172,11 @@
"095610": "2026-07-28",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"003680": "2026-07-29",
"090850": "2026-07-29",
"161890": "2026-07-30"
},
"created_at": "2026-06-15T14:55:00.582771+09:00",
- "updated_at": "2026-07-30T15:28:06.963749+09:00"
+ "updated_at": "2026-07-31T15:28:07.731203+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 79286a1..77b13e3 100644
--- a/agents/stock/workspace/state/sim/variants/v147/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v147/trades.jsonl
@@ -93,3 +93,5 @@
{"ts": "2026-07-30T09:18:10.149807+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 731, "cost": 4613302, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5799, "target": 7843, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,300 vs 5,354"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,726 / 5,354"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T11:58:08.423544+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 102, "proceeds": 9335161, "entry_price": 101112, "pnl": -979786, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.817053+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 128,147"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T12:04:07.816772+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 87900, "qty": 50, "cost": 4395659, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 76706, "target": 121481, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "87,900 vs 75,055"}, {"label": "정배열(5>20)", "ok": true, "detail": "82,940 / 75,055"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "82,940 / 75,053"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+61.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +280 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.79% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "728,608 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.79% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
+{"ts": "2026-07-31T09:06:07.006134+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 510, "cost": 3341001, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:08.203881+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 50, "proceeds": 3473214, "entry_price": 87900, "pnl": -922445, "pnl_pct": -20.82, "hold_from": "2026-07-30T12:04:07.816765+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "76,706 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 121,481"}, {"label": "추세(20일선)", "ok": false, "detail": "74,135"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 91,095"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v149/portfolio.json b/agents/stock/workspace/state/sim/variants/v149/portfolio.json
index 9111f5e..c67dd27 100644
--- a/agents/stock/workspace/state/sim/variants/v149/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v149/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 19291226.259999953,
+ "cash": 19486471.809999954,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5435113.820843748,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5357608.233093748,
"last_add_price": 18950
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5057738.410843747,
"last_add_price": 120500
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5030428.7588749975,
"last_add_price": 125200
@@ -92,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 603,
- "entry_price": 6130,
+ "qty": 1167,
+ "entry_price": 6332.982005141388,
"entry_at": "2026-07-30T09:04:07.473311+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3698158.582805608,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 5098537.405531247,
"last_add_price": 130900
@@ -148,34 +148,13 @@
"tranches": 1,
"tranche_value": 5110875.1474062465,
"last_add_price": 6310
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 56,
- "entry_price": 87900,
- "entry_at": "2026-07-30T12:04:07.823150+09:00",
- "stop": 76706,
- "target": 104690,
- "peak": 89200,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 4964432.788749997,
- "last_add_price": 87900
}
},
- "realized_pnl": -20929028.123000026,
- "closed_trades": 36,
+ "realized_pnl": -21962166.803000025,
+ "closed_trades": 37,
"wins": 5,
"peak_equity": 103066363.367,
- "max_drawdown": 0.23564969514366776,
+ "max_drawdown": 0.25604475305907143,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-29",
@@ -193,11 +172,11 @@
"055550": "2026-07-20",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"003680": "2026-07-29",
"090850": "2026-07-29",
"161890": "2026-07-30"
},
"created_at": "2026-06-15T14:55:00.582787+09:00",
- "updated_at": "2026-07-30T15:28:06.969242+09:00"
+ "updated_at": "2026-07-31T15:28:07.735916+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 b2d88ae..4bab3de 100644
--- a/agents/stock/workspace/state/sim/variants/v149/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v149/trades.jsonl
@@ -100,3 +100,5 @@
{"ts": "2026-07-30T09:18:10.159701+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 809, "cost": 5105556, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5799, "target": 7077, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,300 vs 5,354"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,726 / 5,354"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T11:58:08.429556+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 108, "proceeds": 9884288, "entry_price": 101114, "pnl": -1037650, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.818826+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,635"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T12:04:07.823153+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 87900, "qty": 56, "cost": 4923138, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 76706, "target": 104690, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "87,900 vs 75,055"}, {"label": "정배열(5>20)", "ok": true, "detail": "82,940 / 75,055"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "82,940 / 75,053"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+61.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +280 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.79% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "728,608 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.79% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
+{"ts": "2026-07-31T09:06:07.012482+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 564, "cost": 3694754, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:08.210477+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 56, "proceeds": 3890000, "entry_price": 87900, "pnl": -1033139, "pnl_pct": -20.82, "hold_from": "2026-07-30T12:04:07.823150+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "76,706 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 104,690"}, {"label": "추세(20일선)", "ok": false, "detail": "74,135"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 91,095"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v151/portfolio.json b/agents/stock/workspace/state/sim/variants/v151/portfolio.json
index d253c13..c85161a 100644
--- a/agents/stock/workspace/state/sim/variants/v151/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v151/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 17228543.256499957,
+ "cash": 17388318.038999956,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5274205.950343749,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5136044.188124998,
"last_add_price": 18950
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4798325.220406247,
"last_add_price": 120500
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4697478.874937497,
"last_add_price": 125200
@@ -92,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 563,
- "entry_price": 6130,
+ "qty": 1090,
+ "entry_price": 6333.064220183486,
"entry_at": "2026-07-30T09:04:07.479053+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3453556.2895330573,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4762406.753156248,
"last_add_price": 130900
@@ -148,34 +148,13 @@
"tranches": 1,
"tranche_value": 4773756.949406248,
"last_add_price": 6310
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 52,
- "entry_price": 87900,
- "entry_at": "2026-07-30T12:04:07.828076+09:00",
- "stop": 76706,
- "target": 110287,
- "peak": 89200,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 4633215.554781247,
- "last_add_price": 87900
}
},
- "realized_pnl": -26214124.41600003,
- "closed_trades": 33,
+ "realized_pnl": -27173467.47600003,
+ "closed_trades": 34,
"wins": 2,
"peak_equity": 103066363.367,
- "max_drawdown": 0.286701685643846,
+ "max_drawdown": 0.3059755316650401,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-29",
@@ -193,11 +172,11 @@
"095610": "2026-07-28",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"003680": "2026-07-29",
"090850": "2026-07-29",
"161890": "2026-07-30"
},
"created_at": "2026-06-15T14:55:00.582803+09:00",
- "updated_at": "2026-07-30T15:28:06.974282+09:00"
+ "updated_at": "2026-07-31T15:28:07.740802+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 d7e6bae..1254943 100644
--- a/agents/stock/workspace/state/sim/variants/v151/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v151/trades.jsonl
@@ -94,3 +94,5 @@
{"ts": "2026-07-30T09:18:10.166025+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 756, "cost": 4771076, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5799, "target": 7332, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,300 vs 5,354"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,726 / 5,354"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T11:58:08.434750+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 104, "proceeds": 9518203, "entry_price": 101112, "pnl": -999074, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.820564+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,138"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T12:04:07.828079+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 87900, "qty": 52, "cost": 4571486, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 76706, "target": 110287, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "87,900 vs 75,055"}, {"label": "정배열(5>20)", "ok": true, "detail": "82,940 / 75,055"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "82,940 / 75,053"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+61.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +280 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.79% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "728,608 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.79% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
+{"ts": "2026-07-31T09:06:07.018008+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 527, "cost": 3452368, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:08.215128+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 52, "proceeds": 3612143, "entry_price": 87900, "pnl": -959343, "pnl_pct": -20.82, "hold_from": "2026-07-30T12:04:07.828076+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "76,706 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 110,287"}, {"label": "추세(20일선)", "ok": false, "detail": "74,135"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 91,095"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v155/portfolio.json b/agents/stock/workspace/state/sim/variants/v155/portfolio.json
index 8be2c2c..acee018 100644
--- a/agents/stock/workspace/state/sim/variants/v155/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v155/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 23032163.43200002,
+ "cash": 24200670.842000015,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4947379.149752503,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5342833.247656252,
"last_add_price": 18950
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5120146.001656252,
"last_add_price": 120500
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4929642.288776176,
"last_add_price": 125200
@@ -92,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 404,
- "entry_price": 6130,
+ "qty": 782,
+ "entry_price": 6333.017902813299,
"entry_at": "2026-07-30T09:04:07.484676+09:00",
- "stop": 5127,
- "target": 8135,
- "peak": 6330,
+ "stop": 5363,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2477780.379475499,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4848771.68070699,
"last_add_price": 130900
@@ -148,34 +148,13 @@
"tranches": 1,
"tranche_value": 5134489.040718751,
"last_add_price": 6310
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 47,
- "entry_price": 87900,
- "entry_at": "2026-07-30T12:04:07.833673+09:00",
- "stop": 79505,
- "target": 104690,
- "peak": 89200,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 4187644.1160591436,
- "last_add_price": 87900
}
},
- "realized_pnl": -20407493.78900003,
- "closed_trades": 45,
+ "realized_pnl": -20894634.689000033,
+ "closed_trades": 46,
"wins": 4,
"peak_equity": 101291892.54300004,
- "max_drawdown": 0.2164632189263529,
+ "max_drawdown": 0.2315722523502305,
"last_exit": {
"086790": "2026-07-28",
"030000": "2026-07-24",
@@ -193,12 +172,12 @@
"105560": "2026-07-20",
"024060": "2026-07-27",
"252990": "2026-07-28",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"010950": "2026-07-29",
"090850": "2026-07-29",
"003680": "2026-07-29",
"161890": "2026-07-30"
},
"created_at": "2026-06-15T14:55:00.582834+09:00",
- "updated_at": "2026-07-30T15:28:06.979847+09:00"
+ "updated_at": "2026-07-31T15:28:07.745765+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 74ade09..fa15f68 100644
--- a/agents/stock/workspace/state/sim/variants/v155/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v155/trades.jsonl
@@ -124,3 +124,5 @@
{"ts": "2026-07-30T09:18:10.171049+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 813, "cost": 5130800, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5927, "target": 7077, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,300 vs 5,354"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,726 / 5,354"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T11:58:08.439672+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 108, "proceeds": 9884288, "entry_price": 101114, "pnl": -1037650, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.822292+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,142"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T12:04:07.833676+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 87900, "qty": 47, "cost": 4131920, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 79505, "target": 104690, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "87,900 vs 75,055"}, {"label": "정배열(5>20)", "ok": true, "detail": "82,940 / 75,055"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "82,940 / 75,053"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+61.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +280 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.79% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "728,608 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.79% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
+{"ts": "2026-07-31T09:06:07.022640+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 378, "cost": 2476271, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.022939+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 47, "proceeds": 3644779, "entry_price": 87900, "pnl": -487141, "pnl_pct": -11.6, "hold_from": "2026-07-30T12:04:07.833673+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,505 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 104,690"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 90,898"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v157/portfolio.json b/agents/stock/workspace/state/sim/variants/v157/portfolio.json
index b76818c..fcac6ed 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": 36817750.839999944,
+ "cash": 41908364.43499994,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5132330.379099764,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 112,
- "entry_price": 89873.21428571429,
- "entry_at": "2026-07-23T09:46:06.366617+09:00",
- "stop": 81596,
- "target": 102289,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 5067979.388839712,
- "last_add_price": 91400
- },
"010950": {
"code": "010950",
"name": "S-Oil",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 5079550.709806033,
"last_add_price": 131400
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,653 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5395527.728156246,
"last_add_price": 19090
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 429,
- "entry_price": 6130,
+ "qty": 831,
+ "entry_price": 6333.1768953068595,
"entry_at": "2026-07-30T09:04:07.489609+09:00",
- "stop": 5127,
- "target": 7634,
- "peak": 6330,
+ "stop": 5363,
+ "target": 7789,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2634409.858223602,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5443355.1048749965,
"last_add_price": 127700
@@ -150,11 +129,11 @@
"last_add_price": 6310
}
},
- "realized_pnl": -14156826.44950002,
- "closed_trades": 39,
+ "realized_pnl": -16500027.759500023,
+ "closed_trades": 40,
"wins": 5,
"peak_equity": 100161893.89500001,
- "max_drawdown": 0.15501926382579276,
+ "max_drawdown": 0.18418431144422467,
"last_exit": {
"086790": "2026-07-28",
"030000": "2026-07-29",
@@ -174,8 +153,9 @@
"003680": "2026-07-29",
"138040": "2026-07-29",
"252990": "2026-07-28",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.582849+09:00",
- "updated_at": "2026-07-30T15:28:06.984326+09:00"
+ "updated_at": "2026-07-31T15:28:07.750722+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 f48d450..0539700 100644
--- a/agents/stock/workspace/state/sim/variants/v157/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v157/trades.jsonl
@@ -101,3 +101,5 @@
{"ts": "2026-07-30T09:16:11.939702+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 124100, "qty": 43, "cost": 5337100, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116280, "target": 135830, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "124,000 vs 113,755"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,260 / 113,755"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,260 / 110,085"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+54.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +9 · 기 +389 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "518,220 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.31% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:18:10.176757+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 862, "cost": 5440036, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5927, "target": 6885, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,300 vs 5,354"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,726 / 5,354"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T10:10:07.436089+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 42, "cost": 5364205, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116280, "target": 135830, "signals": [{"label": "손절선", "ok": true, "detail": "116,280 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,830"}, {"label": "추세(20일선)", "ok": true, "detail": "113,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,835"}]}
+{"ts": "2026-07-31T09:04:07.898708+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 112, "proceeds": 7724109, "entry_price": 89873, "pnl": -2343201, "pnl_pct": -23.11, "hold_from": "2026-07-23T09:46:06.366617+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,596 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 102,289"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:07.027654+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 402, "cost": 2633495, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 7634, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,634"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v159/portfolio.json b/agents/stock/workspace/state/sim/variants/v159/portfolio.json
index c596290..fd9d1bb 100644
--- a/agents/stock/workspace/state/sim/variants/v159/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v159/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 27224364.607999973,
+ "cash": 32209442.72799997,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4992940.599795671,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 108,
- "entry_price": 89872.22222222222,
- "entry_at": "2026-07-23T09:46:06.368358+09:00",
- "stop": 81595,
- "target": 114704,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4910846.127133424,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5527839.1075312495,
"last_add_price": 18950
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 402,
- "entry_price": 6130,
+ "qty": 778,
+ "entry_price": 6332.982005141388,
"entry_at": "2026-07-30T09:04:07.493859+09:00",
- "stop": 5127,
- "target": 9138,
- "peak": 6330,
+ "stop": 5363,
+ "target": 9244,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2465159.461256131,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4808410.164930106,
"last_add_price": 130900
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5091414.859187499,
"last_add_price": 127700
@@ -150,11 +129,11 @@
"last_add_price": 6310
}
},
- "realized_pnl": -19889233.621500026,
- "closed_trades": 36,
+ "realized_pnl": -22148642.011500027,
+ "closed_trades": 37,
"wins": 1,
"peak_equity": 100161893.89500001,
- "max_drawdown": 0.21116662699262181,
+ "max_drawdown": 0.24013794300070365,
"last_exit": {
"086790": "2026-07-29",
"030000": "2026-07-24",
@@ -174,8 +153,9 @@
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "138040": "2026-07-29"
+ "138040": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.582864+09:00",
- "updated_at": "2026-07-30T15:28:06.988430+09:00"
+ "updated_at": "2026-07-31T15:28:07.754911+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 5186cb3..c48d8ca 100644
--- a/agents/stock/workspace/state/sim/variants/v159/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v159/trades.jsonl
@@ -98,3 +98,5 @@
{"ts": "2026-07-30T09:16:11.943676+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 124100, "qty": 41, "cost": 5088863, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116280, "target": 147560, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "124,000 vs 113,755"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,260 / 113,755"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,260 / 110,085"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+54.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +9 · 기 +389 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "518,220 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.31% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:18:10.181133+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 806, "cost": 5086623, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5927, "target": 7460, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,300 vs 5,354"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,726 / 5,354"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T10:10:07.440123+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 39, "cost": 4981047, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116280, "target": 147560, "signals": [{"label": "손절선", "ok": true, "detail": "116,280 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,560"}, {"label": "추세(20일선)", "ok": true, "detail": "113,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,835"}]}
+{"ts": "2026-07-31T09:04:07.903300+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 108, "proceeds": 7448248, "entry_price": 89872, "pnl": -2259408, "pnl_pct": -23.11, "hold_from": "2026-07-23T09:46:06.368358+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,595 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,704"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:07.031863+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 376, "cost": 2463169, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 9138, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,138"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v161/portfolio.json b/agents/stock/workspace/state/sim/variants/v161/portfolio.json
index 38c0b5d..9b8fed6 100644
--- a/agents/stock/workspace/state/sim/variants/v161/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v161/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 36790407.86550004,
+ "cash": 41223394.78050004,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3813943.0504600187,
"last_add_price": 350000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 82,
- "entry_price": 89863.41463414633,
- "entry_at": "2026-07-23T09:46:06.370394+09:00",
- "stop": 78827,
- "target": 122973,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3727885.349520808,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5685594.862062503,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5142605.848996199,
"last_add_price": 126400
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 314,
- "entry_price": 6130,
+ "qty": 608,
+ "entry_price": 6333.0921052631575,
"entry_at": "2026-07-30T09:04:07.497844+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1927621.6063135946,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3759463.8630866953,
"last_add_price": 130900
@@ -150,11 +129,11 @@
"last_add_price": 6310
}
},
- "realized_pnl": -16335442.066500016,
- "closed_trades": 24,
+ "realized_pnl": -17346371.616500016,
+ "closed_trades": 25,
"wins": 0,
"peak_equity": 100000000,
- "max_drawdown": 0.17023552134499967,
+ "max_drawdown": 0.1859662521949996,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -171,8 +150,9 @@
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.582879+09:00",
- "updated_at": "2026-07-30T15:28:06.992160+09:00"
+ "updated_at": "2026-07-31T15:28:08.349885+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 df511e4..2269c95 100644
--- a/agents/stock/workspace/state/sim/variants/v161/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v161/trades.jsonl
@@ -72,3 +72,5 @@
{"ts": "2026-07-30T09:16:11.947137+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 130900, "qty": 28, "cost": 3665750, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116144, "target": 175169, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "130,900 vs 108,560"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,360 / 108,560"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,360 / 113,212"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "571,193 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:18:10.185462+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 830, "cost": 5238086, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5799, "target": 7843, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,300 vs 5,583"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,726 / 5,583"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T09:50:07.301109+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 40, "cost": 5056758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 154552, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 154,552"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:07.629713+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 294, "cost": 1925989, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.631046+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 82, "proceeds": 6358976, "entry_price": 89863, "pnl": -1010930, "pnl_pct": -13.54, "hold_from": "2026-07-23T09:46:06.370394+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,827 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 122,973"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v165/portfolio.json b/agents/stock/workspace/state/sim/variants/v165/portfolio.json
index 5588301..a933313 100644
--- a/agents/stock/workspace/state/sim/variants/v165/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v165/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 36790407.86550004,
+ "cash": 41223394.78050004,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3813943.0504600187,
"last_add_price": 350000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 82,
- "entry_price": 89863.41463414633,
- "entry_at": "2026-07-23T09:46:06.372102+09:00",
- "stop": 78827,
- "target": 111936,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3727885.349520808,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5685594.862062503,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5142605.848996199,
"last_add_price": 126400
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 314,
- "entry_price": 6130,
+ "qty": 608,
+ "entry_price": 6333.0921052631575,
"entry_at": "2026-07-30T09:04:07.501481+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1927621.6063135946,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3759463.8630866953,
"last_add_price": 130900
@@ -150,11 +129,11 @@
"last_add_price": 6310
}
},
- "realized_pnl": -16335442.066500016,
- "closed_trades": 24,
+ "realized_pnl": -17346371.616500016,
+ "closed_trades": 25,
"wins": 0,
"peak_equity": 100000000,
- "max_drawdown": 0.17023552134499967,
+ "max_drawdown": 0.1859662521949996,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -171,8 +150,9 @@
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.582910+09:00",
- "updated_at": "2026-07-30T15:28:06.995516+09:00"
+ "updated_at": "2026-07-31T15:28:08.360048+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 a250a0f..f8d115b 100644
--- a/agents/stock/workspace/state/sim/variants/v165/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v165/trades.jsonl
@@ -72,3 +72,5 @@
{"ts": "2026-07-30T09:16:11.950702+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 130900, "qty": 28, "cost": 3665750, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116144, "target": 160413, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "130,900 vs 108,560"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,360 / 108,560"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,360 / 113,212"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "571,193 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:18:10.189166+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 830, "cost": 5238086, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5799, "target": 7332, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,300 vs 5,583"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,726 / 5,583"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T09:50:07.304413+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 40, "cost": 5056758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 144168, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,168"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:07.639526+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 294, "cost": 1925989, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.640655+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 82, "proceeds": 6358976, "entry_price": 89863, "pnl": -1010930, "pnl_pct": -13.54, "hold_from": "2026-07-23T09:46:06.372102+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,827 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,936"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v167/portfolio.json b/agents/stock/workspace/state/sim/variants/v167/portfolio.json
index fac085e..c14174c 100644
--- a/agents/stock/workspace/state/sim/variants/v167/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v167/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 43819383.0315,
+ "cash": 48303714.5015,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3841906.161963773,
"last_add_price": 350000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89881.92771084337,
- "entry_at": "2026-07-23T09:46:06.373868+09:00",
- "stop": 78845,
- "target": 106437,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3755996.4301575036,
- "last_add_price": 91400
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5164071.483514108,
"last_add_price": 126400
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,653 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5339950.00228125,
"last_add_price": 19090
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 319,
- "entry_price": 6130,
+ "qty": 617,
+ "entry_price": 6332.852512155591,
"entry_at": "2026-07-30T09:04:07.505690+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1956462.6546955872,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3812991.5556229833,
"last_add_price": 130900
@@ -150,11 +129,11 @@
"last_add_price": 6310
}
},
- "realized_pnl": -14984638.498500016,
- "closed_trades": 25,
+ "realized_pnl": -16009433.273500016,
+ "closed_trades": 26,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.15764136968500003,
+ "max_drawdown": 0.1727808549849999,
"last_exit": {
"030000": "2026-07-29",
"086790": "2026-07-29",
@@ -171,8 +150,9 @@
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.582926+09:00",
- "updated_at": "2026-07-30T15:28:06.998572+09:00"
+ "updated_at": "2026-07-31T15:28:08.366262+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 8913129..94a0f03 100644
--- a/agents/stock/workspace/state/sim/variants/v167/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v167/trades.jsonl
@@ -71,3 +71,5 @@
{"ts": "2026-07-30T09:16:11.953986+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 130900, "qty": 29, "cost": 3796669, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116144, "target": 153035, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "130,900 vs 108,560"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,360 / 108,560"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,360 / 113,212"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "571,193 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:18:10.192454+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6310, "qty": 842, "cost": 5313817, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5799, "target": 7077, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,300 vs 5,583"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,726 / 5,583"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,726 / 5,621"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "87,813 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.41% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-07-30T09:50:07.307619+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 40, "cost": 5056758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 138976, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,976"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:07.648347+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 298, "cost": 1952193, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.648789+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89882, "pnl": -1024795, "pnl_pct": -13.55, "hold_from": "2026-07-23T09:46:06.373868+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,845 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 106,437"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v189/portfolio.json b/agents/stock/workspace/state/sim/variants/v189/portfolio.json
index e1f7a65..d7984ef 100644
--- a/agents/stock/workspace/state/sim/variants/v189/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v189/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 27999012.694499996,
+ "cash": 33076164.446999997,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5085796.90859035,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 110,
- "entry_price": 89525.45454545454,
- "entry_at": "2026-07-23T09:50:01.528642+09:00",
- "stop": 81291,
- "target": 114229,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4982054.533958632,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5636180.5746875,
"last_add_price": 18950
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 410,
- "entry_price": 6130,
+ "qty": 793,
+ "entry_price": 6332.849936948298,
"entry_at": "2026-07-30T09:04:07.509224+09:00",
- "stop": 5127,
- "target": 9138,
- "peak": 6330,
+ "stop": 5362,
+ "target": 9244,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2514428.437642747,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5174714.39653125,
"last_add_price": 127700
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4916855.663590054,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -18311185.043000016,
- "closed_trades": 33,
+ "realized_pnl": -20574284.163000017,
+ "closed_trades": 34,
"wins": 1,
"peak_equity": 100344662.275,
- "max_drawdown": 0.19705571908059924,
+ "max_drawdown": 0.22639747160382784,
"last_exit": {
"086790": "2026-07-29",
"030000": "2026-07-24",
@@ -172,8 +151,9 @@
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "138040": "2026-07-29"
+ "138040": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583136+09:00",
- "updated_at": "2026-07-30T15:28:07.001653+09:00"
+ "updated_at": "2026-07-31T15:28:08.371609+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 31e4601..4c276fb 100644
--- a/agents/stock/workspace/state/sim/variants/v189/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v189/trades.jsonl
@@ -92,3 +92,5 @@
{"ts": "2026-07-30T09:24:07.557100+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 37, "cost": 4877331, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120690, "target": 165130, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.504703+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 820, "cost": 5166775, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5917, "target": 7450, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,280 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,722 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T10:10:07.453421+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 40, "cost": 5108766, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116537, "target": 147989, "signals": [{"label": "손절선", "ok": true, "detail": "116,537 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,989"}, {"label": "추세(20일선)", "ok": true, "detail": "113,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 127,135"}]}
+{"ts": "2026-07-31T09:04:08.433229+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 110, "proceeds": 7586178, "entry_price": 89525, "pnl": -2263099, "pnl_pct": -22.82, "hold_from": "2026-07-23T09:50:01.528642+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,291 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,229"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:07.654376+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 383, "cost": 2509026, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 9138, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,138"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v195/portfolio.json b/agents/stock/workspace/state/sim/variants/v195/portfolio.json
index 4e0873a..73597a1 100644
--- a/agents/stock/workspace/state/sim/variants/v195/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v195/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 25760629.65850001,
+ "cash": 20137545.243500005,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3889733.683715179,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.530389+09:00",
- "stop": 78554,
- "target": 122472,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3742230.636714602,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5696942.092812501,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5327150.576000001,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4940372.790080874,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 313,
- "entry_price": 6130,
+ "qty": 606,
+ "entry_price": 6333.069306930693,
"entry_at": "2026-07-30T09:04:07.512664+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1924945.6187384445,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3791237.2526261737,
"last_add_price": 131800
@@ -169,13 +148,34 @@
"tranches": 1,
"tranche_value": 5246390.706071919,
"last_add_price": 6300
+ },
+ "003490": {
+ "code": "003490",
+ "name": "대한항공",
+ "sources": [
+ "auto"
+ ],
+ "qty": 395,
+ "entry_price": 25667.46835443038,
+ "entry_at": "2026-07-31T09:10:13.075428+09:00",
+ "stop": 23650,
+ "target": 31720,
+ "peak": 26100,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 25,331 도달",
+ "cur_price": 25850,
+ "tranches": 2,
+ "tranche_value": 5089986.002562501,
+ "last_add_price": 26100
}
},
- "realized_pnl": -16596935.273000015,
- "closed_trades": 27,
+ "realized_pnl": -17592825.713000014,
+ "closed_trades": 28,
"wins": 0,
"peak_equity": 101140808.32700005,
- "max_drawdown": 0.17882199227165796,
+ "max_drawdown": 0.1947881632733674,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -193,8 +193,9 @@
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583184+09:00",
- "updated_at": "2026-07-30T15:28:07.004503+09:00"
+ "updated_at": "2026-07-31T15:28:08.375989+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 b0a8c05..90d6c33 100644
--- a/agents/stock/workspace/state/sim/variants/v195/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v195/trades.jsonl
@@ -82,3 +82,7 @@
{"ts": "2026-07-30T09:16:11.959636+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 39, "cost": 4883532, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 152200, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 152,200"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:07.560097+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 28, "cost": 3690954, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 176240, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.507665+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 832, "cost": 5242386, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7833, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:06:07.659623+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 293, "cost": 1919438, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.659937+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.530389+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 122,472"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:10:13.075437+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25250, "qty": 201, "cost": 5076011, "path": "pullback", "reason": "눌림목 지정가 25,331 도달", "stop": 23650, "target": 30050, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "25,200 vs 25,175"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,380 / 25,175"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,380 / 25,155"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -414 · 기 +642 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+45%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.35% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "1,295,520 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.35% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,331 (현재 25,200)"}]}
+{"ts": "2026-07-31T10:36:07.682246+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 26100, "qty": 194, "cost": 5064160, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 23650, "target": 30050, "signals": [{"label": "손절선", "ok": true, "detail": "23,650 (현재 26,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 30,050"}, {"label": "추세(10일선)", "ok": true, "detail": "25,265"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -410 · 기 +640"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 25,884"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v197/portfolio.json b/agents/stock/workspace/state/sim/variants/v197/portfolio.json
index 52ff6f1..0d80efd 100644
--- a/agents/stock/workspace/state/sim/variants/v197/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v197/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 32386107.138999995,
+ "cash": 36844234.679,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3891157.6622701483,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.532131+09:00",
- "stop": 78554,
- "target": 111492,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3778918.748885343,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5719122.209000001,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5467080.19828125,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5075960.404438956,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 323,
- "entry_price": 6130,
+ "qty": 625,
+ "entry_price": 6332.944,
"entry_at": "2026-07-30T09:04:07.515982+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1981493.926440071,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,17 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3902843.990735232,
"last_add_price": 131800
}
},
- "realized_pnl": -14780929.105000021,
- "closed_trades": 30,
+ "realized_pnl": -15776819.54500002,
+ "closed_trades": 31,
"wins": 2,
"peak_equity": 101368884.75700004,
- "max_drawdown": 0.1603872594334459,
+ "max_drawdown": 0.1781330644140594,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-20",
@@ -172,8 +151,9 @@
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583198+09:00",
- "updated_at": "2026-07-30T15:28:07.007268+09:00"
+ "updated_at": "2026-07-31T15:28:08.381313+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 de5ab8b..e161843 100644
--- a/agents/stock/workspace/state/sim/variants/v197/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v197/trades.jsonl
@@ -88,3 +88,5 @@
{"ts": "2026-07-30T09:16:11.962505+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 40, "cost": 5008751, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 141900, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 141,900"}, {"label": "추세(20일선)", "ok": true, "detail": "118,515"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:07.563029+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 29, "cost": 3822773, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 161427, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T11:58:08.466564+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 114, "proceeds": 10433415, "entry_price": 101116, "pnl": -1095514, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.835859+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,147"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:07.664664+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 302, "cost": 1978397, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.665122+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.532131+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,492"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v199/portfolio.json b/agents/stock/workspace/state/sim/variants/v199/portfolio.json
index 174580a..9656950 100644
--- a/agents/stock/workspace/state/sim/variants/v199/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v199/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 37489369.347500026,
+ "cash": 41973700.81750003,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3848025.874946516,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.533917+09:00",
- "stop": 78554,
- "target": 111492,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3774325.11581779,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5721714.462968752,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5187375.1457318,
"last_add_price": 126400
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 319,
- "entry_price": 6130,
+ "qty": 617,
+ "entry_price": 6332.852512155591,
"entry_at": "2026-07-30T09:04:07.518900+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1957851.3491824612,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3832048.06532556,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -14866665.129500018,
- "closed_trades": 30,
+ "realized_pnl": -15862555.569500018,
+ "closed_trades": 31,
"wins": 2,
"peak_equity": 100182695.41500005,
- "max_drawdown": 0.15883827043764528,
+ "max_drawdown": 0.17470945980237,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-20",
@@ -172,8 +151,9 @@
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583212+09:00",
- "updated_at": "2026-07-30T15:28:07.009784+09:00"
+ "updated_at": "2026-07-31T15:28:08.385488+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 ee6c754..b4db761 100644
--- a/agents/stock/workspace/state/sim/variants/v199/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v199/trades.jsonl
@@ -86,3 +86,5 @@
{"ts": "2026-07-30T09:24:07.565722+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 29, "cost": 3822773, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 161427, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.513015+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 841, "cost": 5299095, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7322, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,280 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,722 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:50:07.318850+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 41, "cost": 5183177, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 144168, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,168"}, {"label": "추세(20일선)", "ok": true, "detail": "113,865"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:07.669241+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 298, "cost": 1952193, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.669454+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.533917+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,492"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v201/portfolio.json b/agents/stock/workspace/state/sim/variants/v201/portfolio.json
index 2603598..ee7dbd6 100644
--- a/agents/stock/workspace/state/sim/variants/v201/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v201/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 25760629.65850001,
+ "cash": 20137545.243500005,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3889733.683715179,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.535674+09:00",
- "stop": 78554,
- "target": 111492,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3742230.636714602,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5696942.092812501,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5327150.576000001,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4940372.790080874,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 313,
- "entry_price": 6130,
+ "qty": 606,
+ "entry_price": 6333.069306930693,
"entry_at": "2026-07-30T09:04:07.522091+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1924945.6187384445,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3791237.2526261737,
"last_add_price": 131800
@@ -169,13 +148,34 @@
"tranches": 1,
"tranche_value": 5246390.706071919,
"last_add_price": 6300
+ },
+ "003490": {
+ "code": "003490",
+ "name": "대한항공",
+ "sources": [
+ "auto"
+ ],
+ "qty": 395,
+ "entry_price": 25667.46835443038,
+ "entry_at": "2026-07-31T09:10:13.091944+09:00",
+ "stop": 23650,
+ "target": 29702,
+ "peak": 26100,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 25,331 도달",
+ "cur_price": 25850,
+ "tranches": 2,
+ "tranche_value": 5089986.002562501,
+ "last_add_price": 26100
}
},
- "realized_pnl": -16596935.273000015,
- "closed_trades": 27,
+ "realized_pnl": -17592825.713000014,
+ "closed_trades": 28,
"wins": 0,
"peak_equity": 101140808.32700005,
- "max_drawdown": 0.17882199227165796,
+ "max_drawdown": 0.1947881632733674,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -193,8 +193,9 @@
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583227+09:00",
- "updated_at": "2026-07-30T15:28:07.012342+09:00"
+ "updated_at": "2026-07-31T15:28:08.389108+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 ea69c6a..c2ff540 100644
--- a/agents/stock/workspace/state/sim/variants/v201/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v201/trades.jsonl
@@ -82,3 +82,7 @@
{"ts": "2026-07-30T09:16:11.967598+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 39, "cost": 4883532, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 141900, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 141,900"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:07.568344+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 28, "cost": 3690954, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 161427, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.515659+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 832, "cost": 5242386, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7322, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:06:07.673294+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 293, "cost": 1919438, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.673492+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.535674+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,492"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:10:13.091947+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25250, "qty": 201, "cost": 5076011, "path": "pullback", "reason": "눌림목 지정가 25,331 도달", "stop": 23650, "target": 28450, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "25,200 vs 25,175"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,380 / 25,175"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,380 / 25,155"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -414 · 기 +642 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+45%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.35% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "1,295,520 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.35% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,331 (현재 25,200)"}]}
+{"ts": "2026-07-31T10:36:07.698613+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 26100, "qty": 194, "cost": 5064160, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 23650, "target": 28450, "signals": [{"label": "손절선", "ok": true, "detail": "23,650 (현재 26,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 28,450"}, {"label": "추세(10일선)", "ok": true, "detail": "25,265"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -410 · 기 +640"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 25,884"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v203/portfolio.json b/agents/stock/workspace/state/sim/variants/v203/portfolio.json
index 48b918c..ae3464a 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": 37496014.29399997,
+ "cash": 42659048.57399997,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5225929.659467572,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 114,
- "entry_price": 89526.31578947368,
- "entry_at": "2026-07-23T09:50:01.537436+09:00",
- "stop": 81292,
- "target": 101878,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 5138975.321289769,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,653 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5535182.720656248,
"last_add_price": 19090
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 440,
- "entry_price": 6130,
+ "qty": 852,
+ "entry_price": 6333.098591549296,
"entry_at": "2026-07-30T09:04:07.525083+09:00",
- "stop": 5127,
- "target": 7634,
- "peak": 6330,
+ "stop": 5363,
+ "target": 7789,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2702321.452399152,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5554493.212437497,
"last_add_price": 127700
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 5277490.897081996,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -12144022.844500024,
- "closed_trades": 36,
+ "realized_pnl": -14489514.674500024,
+ "closed_trades": 37,
"wins": 5,
"peak_equity": 100344662.275,
- "max_drawdown": 0.13657655195890225,
+ "max_drawdown": 0.16636733158011952,
"last_exit": {
"086790": "2026-07-20",
"030000": "2026-07-29",
@@ -172,8 +151,9 @@
"003680": "2026-07-29",
"138040": "2026-07-29",
"252990": "2026-07-28",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583241+09:00",
- "updated_at": "2026-07-30T15:28:07.014868+09:00"
+ "updated_at": "2026-07-31T15:28:08.392670+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 7678293..58840fb 100644
--- a/agents/stock/workspace/state/sim/variants/v203/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v203/trades.jsonl
@@ -95,3 +95,5 @@
{"ts": "2026-07-30T09:24:07.570832+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 40, "cost": 5272791, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120690, "target": 148465, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.518278+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 880, "cost": 5544832, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5917, "target": 6875, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,280 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,722 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T10:10:07.466772+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 43, "cost": 5491924, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116537, "target": 136194, "signals": [{"label": "손절선", "ok": true, "detail": "116,537 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 136,194"}, {"label": "추세(20일선)", "ok": true, "detail": "113,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 127,135"}]}
+{"ts": "2026-07-31T09:04:08.455844+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 114, "proceeds": 7862039, "entry_price": 89526, "pnl": -2345492, "pnl_pct": -22.82, "hold_from": "2026-07-23T09:50:01.537436+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,292 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,878"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:07.677038+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 412, "cost": 2699005, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 7634, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,634"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v205/portfolio.json b/agents/stock/workspace/state/sim/variants/v205/portfolio.json
index 6275efa..537100f 100644
--- a/agents/stock/workspace/state/sim/variants/v205/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v205/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 33226459.752500013,
+ "cash": 37787276.40250001,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3939968.9939820534,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 85,
- "entry_price": 89534.11764705883,
- "entry_at": "2026-07-23T09:50:01.539141+09:00",
- "stop": 78555,
- "target": 106003,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3836617.5002028025,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5821568.917468751,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5570614.761375001,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5217780.328505317,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 332,
- "entry_price": 6130,
+ "qty": 642,
+ "entry_price": 6332.803738317757,
"entry_at": "2026-07-30T09:04:07.528031+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2036737.90524699,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,17 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4011548.961969723,
"last_add_price": 131800
}
},
- "realized_pnl": -12402875.871000022,
- "closed_trades": 33,
+ "realized_pnl": -13422796.206000023,
+ "closed_trades": 34,
"wins": 5,
"peak_equity": 101368884.75700004,
- "max_drawdown": 0.13703657722781418,
+ "max_drawdown": 0.15532723273265314,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-20",
@@ -172,8 +151,9 @@
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583273+09:00",
- "updated_at": "2026-07-30T15:28:07.017283+09:00"
+ "updated_at": "2026-07-31T15:28:08.395927+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 d0dbbe5..b5c8f1b 100644
--- a/agents/stock/workspace/state/sim/variants/v205/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v205/trades.jsonl
@@ -93,3 +93,5 @@
{"ts": "2026-07-30T09:16:11.972281+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 41, "cost": 5133970, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 136750, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 136,750"}, {"label": "추세(20일선)", "ok": true, "detail": "118,515"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:07.573214+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 30, "cost": 3954593, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 154020, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T11:58:08.476701+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 116, "proceeds": 10616457, "entry_price": 101116, "pnl": -1114802, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.842571+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,641"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:07.680660+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 310, "cost": 2030805, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.681033+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 85, "proceeds": 6591621, "entry_price": 89534, "pnl": -1019920, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.539141+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,555 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 106,003"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v207/portfolio.json b/agents/stock/workspace/state/sim/variants/v207/portfolio.json
index 30a7362..5229839 100644
--- a/agents/stock/workspace/state/sim/variants/v207/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v207/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 37416197.41350004,
+ "cash": 41907079.86600004,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3869967.7922643563,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.540887+09:00",
- "stop": 78554,
- "target": 111492,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3737129.4618013836,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5724944.494593753,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5162533.383709267,
"last_add_price": 126400
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 317,
- "entry_price": 6130,
+ "qty": 614,
+ "entry_price": 6333.159609120521,
"entry_at": "2026-07-30T09:04:07.530698+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1948420.7709670917,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3813556.4512976124,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -15391014.730000013,
- "closed_trades": 23,
+ "realized_pnl": -16386905.170000013,
+ "closed_trades": 24,
"wins": 0,
"peak_equity": 100024962.38500004,
- "max_drawdown": 0.16156951810984665,
+ "max_drawdown": 0.17739604290679473,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-28",
@@ -170,8 +149,9 @@
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583289+09:00",
- "updated_at": "2026-07-30T15:28:07.019610+09:00"
+ "updated_at": "2026-07-31T15:28:08.399065+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 cf3f5bf..7f16e7b 100644
--- a/agents/stock/workspace/state/sim/variants/v207/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v207/trades.jsonl
@@ -69,3 +69,5 @@
{"ts": "2026-07-30T09:24:07.575537+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 28, "cost": 3690954, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 161427, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.522976+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 837, "cost": 5273891, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7322, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:50:07.328694+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 40, "cost": 5056758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 144168, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,168"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:07.684130+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 297, "cost": 1945642, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.684470+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.540887+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,492"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v209/portfolio.json b/agents/stock/workspace/state/sim/variants/v209/portfolio.json
index 9b5bbb9..cf0e583 100644
--- a/agents/stock/workspace/state/sim/variants/v209/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v209/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 44185194.14600003,
+ "cash": 48649872.66850003,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3898349.7986140535,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.542608+09:00",
- "stop": 78554,
- "target": 106003,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3762093.1541708363,
- "last_add_price": 90900
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5181824.996564139,
"last_add_price": 126400
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,653 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5394916.926375002,
"last_add_price": 19090
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 322,
- "entry_price": 6130,
+ "qty": 623,
+ "entry_price": 6332.921348314607,
"entry_at": "2026-07-30T09:04:07.533744+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1976520.6885600227,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3863996.750727336,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -14100509.648000013,
- "closed_trades": 24,
+ "realized_pnl": -15096400.088000013,
+ "closed_trades": 25,
"wins": 1,
"peak_equity": 100024962.38500004,
- "max_drawdown": 0.14963632959330708,
+ "max_drawdown": 0.16498611269635213,
"last_exit": {
"030000": "2026-07-29",
"086790": "2026-07-28",
@@ -170,8 +149,9 @@
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583304+09:00",
- "updated_at": "2026-07-30T15:28:07.021844+09:00"
+ "updated_at": "2026-07-31T15:28:08.402183+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 ef11829..7f2db5c 100644
--- a/agents/stock/workspace/state/sim/variants/v209/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v209/trades.jsonl
@@ -68,3 +68,5 @@
{"ts": "2026-07-30T09:24:07.577835+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 29, "cost": 3822773, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 154020, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.525243+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 848, "cost": 5343201, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7067, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:50:07.330983+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 40, "cost": 5056758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 138976, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,976"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:07.687576+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 301, "cost": 1971846, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.687761+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.542608+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 106,003"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v211/portfolio.json b/agents/stock/workspace/state/sim/variants/v211/portfolio.json
index 965f2d7..305dc60 100644
--- a/agents/stock/workspace/state/sim/variants/v211/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v211/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 32656100.83900003,
+ "cash": 26839724.289000034,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3913399.394880189,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 84,
- "entry_price": 89517.85714285714,
- "entry_at": "2026-07-23T09:50:01.544323+09:00",
- "stop": 78539,
- "target": 105987,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3814573.88062613,
- "last_add_price": 90900
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5436300.471625002,
"last_add_price": 120500
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5045807.2398149045,
"last_add_price": 125200
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,019 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5355663.862750002,
"last_add_price": 19090
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 320,
- "entry_price": 6130,
+ "qty": 619,
+ "entry_price": 6332.875605815832,
"entry_at": "2026-07-30T09:04:07.536435+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1962123.1366758423,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3860356.183815298,
"last_add_price": 131800
@@ -169,13 +148,34 @@
"tranches": 1,
"tranche_value": 5341728.159493153,
"last_add_price": 6300
+ },
+ "003490": {
+ "code": "003490",
+ "name": "대한항공",
+ "sources": [
+ "auto"
+ ],
+ "qty": 404,
+ "entry_price": 25668.688118811882,
+ "entry_at": "2026-07-31T09:10:13.109330+09:00",
+ "stop": 23650,
+ "target": 28697,
+ "peak": 26100,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 25,331 도달",
+ "cur_price": 25850,
+ "tranches": 2,
+ "tranche_value": 5195064.988218753,
+ "last_add_price": 26100
}
},
- "realized_pnl": -14884731.466000017,
- "closed_trades": 31,
+ "realized_pnl": -15891286.651000017,
+ "closed_trades": 32,
"wins": 2,
"peak_equity": 101140808.32700005,
- "max_drawdown": 0.16118367805893888,
+ "max_drawdown": 0.17816516214938674,
"last_exit": {
"030000": "2026-07-29",
"086790": "2026-07-29",
@@ -193,8 +193,9 @@
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583318+09:00",
- "updated_at": "2026-07-30T15:28:07.024000+09:00"
+ "updated_at": "2026-07-31T15:28:08.405006+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 0c80a8c..01066f2 100644
--- a/agents/stock/workspace/state/sim/variants/v211/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v211/trades.jsonl
@@ -90,3 +90,7 @@
{"ts": "2026-07-30T09:16:11.978788+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 40, "cost": 5008751, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 136750, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 136,750"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:07.580164+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 29, "cost": 3822773, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 154020, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.527449+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 847, "cost": 5336900, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7067, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:06:07.690648+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 299, "cost": 1958744, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:07.690792+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 84, "proceeds": 6514073, "entry_price": 89518, "pnl": -1006555, "pnl_pct": -13.2, "hold_from": "2026-07-23T09:50:01.544323+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,539 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 105,987"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:10:13.109332+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25250, "qty": 205, "cost": 5177026, "path": "pullback", "reason": "눌림목 지정가 25,331 도달", "stop": 23650, "target": 27650, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "25,200 vs 25,175"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,380 / 25,175"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,380 / 25,155"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -414 · 기 +642 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+45%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.35% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "1,295,520 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.35% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "48"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,331 (현재 25,200)"}]}
+{"ts": "2026-07-31T10:36:07.715089+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 26100, "qty": 199, "cost": 5194679, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 23650, "target": 27650, "signals": [{"label": "손절선", "ok": true, "detail": "23,650 (현재 26,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 27,650"}, {"label": "추세(10일선)", "ok": true, "detail": "25,265"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -410 · 기 +640"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 25,884"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v213/portfolio.json b/agents/stock/workspace/state/sim/variants/v213/portfolio.json
index 90c242f..5eeb9f1 100644
--- a/agents/stock/workspace/state/sim/variants/v213/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v213/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 23922167.98359999,
+ "cash": 24296204.55109999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5038910.050638685,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 108,
- "entry_price": 89525.0,
- "entry_at": "2026-07-23T09:50:01.546094+09:00",
- "stop": 81291,
- "target": 105994,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4907020.835552651,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5601008.3746875,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 2,135 도달",
- "cur_price": 1846,
+ "cur_price": 1911,
"tranches": 2,
"tranche_value": 2627079.6319200005,
"last_add_price": 1951
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5278498.658468749,
"last_add_price": 120500
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5079406.382253983,
"last_add_price": 125200
@@ -134,27 +113,48 @@
"sources": [
"auto"
],
- "qty": 416,
- "entry_price": 6130,
+ "qty": 805,
+ "entry_price": 6332.95652173913,
"entry_at": "2026-07-30T09:04:07.538973+09:00",
- "stop": 5127,
- "target": 8135,
- "peak": 6330,
+ "stop": 5363,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2553079.5546287536,
- "last_add_price": 6130
+ "last_add_price": 6550
+ },
+ "010950": {
+ "code": "010950",
+ "name": "S-Oil",
+ "sources": [
+ "auto"
+ ],
+ "qty": 36,
+ "entry_price": 125700,
+ "entry_at": "2026-07-31T09:46:07.688446+09:00",
+ "stop": 114633,
+ "target": 147835,
+ "peak": 128500,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "breakout",
+ "entry_reason": "거래량·회전율 동반 전고점 돌파",
+ "cur_price": 127600,
+ "tranches": 1,
+ "tranche_value": 4531819.457811181,
+ "last_add_price": 125700
}
},
- "realized_pnl": -17253943.75650002,
- "closed_trades": 40,
+ "realized_pnl": -19475846.52150002,
+ "closed_trades": 41,
"wins": 4,
"peak_equity": 101501376.42350003,
- "max_drawdown": 0.19049332256565776,
+ "max_drawdown": 0.22092032524603686,
"last_exit": {
"086790": "2026-07-20",
"030000": "2026-07-24",
@@ -172,8 +172,9 @@
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583333+09:00",
- "updated_at": "2026-07-30T15:28:07.026155+09:00"
+ "updated_at": "2026-07-31T15:28:08.407764+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 bb8e95e..c7426e3 100644
--- a/agents/stock/workspace/state/sim/variants/v213/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v213/trades.jsonl
@@ -114,3 +114,6 @@
{"ts": "2026-07-30T09:04:07.538974+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 416, "cost": 2550463, "path": "pullback", "reason": "눌림목 지정가 7,792 도달", "stop": 5127, "target": 8135, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,792 (현재 6,120)"}]}
{"ts": "2026-07-30T09:16:11.980919+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 40, "cost": 5008751, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111347, "target": 141206, "signals": [{"label": "손절선", "ok": true, "detail": "111,347 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 141,206"}, {"label": "추세(20일선)", "ok": true, "detail": "118,515"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T11:58:08.485485+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 110, "proceeds": 10067330, "entry_price": 101115, "pnl": -1056938, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.849191+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,144"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:04:08.471419+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 108, "proceeds": 7448248, "entry_price": 89525, "pnl": -2221903, "pnl_pct": -22.81, "hold_from": "2026-07-23T09:50:01.546094+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,291 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 105,994"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:07.693609+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 389, "cost": 2548332, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:46:07.688449+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 125700, "qty": 36, "cost": 4525879, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 114633, "target": 147835, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "125,700 vs 108,610"}, {"label": "정배열(5>20)", "ok": true, "detail": "114,320 / 108,610"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "114,320 / 113,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+29.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -25 · 기 +53 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.64% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "725,940 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.64% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v215/portfolio.json b/agents/stock/workspace/state/sim/variants/v215/portfolio.json
index 9a4d88a..be03cff 100644
--- a/agents/stock/workspace/state/sim/variants/v215/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v215/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 18351172.354000002,
+ "cash": 13473931.171500001,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5033450.427529937,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 110,
- "entry_price": 89525.45454545454,
- "entry_at": "2026-07-23T09:50:01.547830+09:00",
- "stop": 81291,
- "target": 105994,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4951509.819030465,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5662520.118343751,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5234858.44571875,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5051285.121721717,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 413,
- "entry_price": 6130,
+ "qty": 799,
+ "entry_price": 6332.9036295369215,
"entry_at": "2026-07-30T09:04:07.541375+09:00",
- "stop": 5127,
- "target": 8135,
- "peak": 6330,
+ "stop": 5362,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2534339.801822408,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4999655.762454186,
"last_add_price": 131800
@@ -169,13 +148,34 @@
"tranches": 1,
"tranche_value": 5258695.03025,
"last_add_price": 6300
+ },
+ "003490": {
+ "code": "003490",
+ "name": "대한항공",
+ "sources": [
+ "auto"
+ ],
+ "qty": 387,
+ "entry_price": 25667.31266149871,
+ "entry_at": "2026-07-31T09:06:07.726656+09:00",
+ "stop": 23764,
+ "target": 29473,
+ "peak": 26100,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 25,335 도달",
+ "cur_price": 25850,
+ "tranches": 2,
+ "tranche_value": 4983661.27525,
+ "last_add_price": 26100
}
},
- "realized_pnl": -17677343.36250002,
- "closed_trades": 36,
+ "realized_pnl": -19940442.48250002,
+ "closed_trades": 37,
"wins": 2,
"peak_equity": 101258161.16350003,
- "max_drawdown": 0.19142992543288662,
+ "max_drawdown": 0.2221436364588878,
"last_exit": {
"086790": "2026-07-29",
"030000": "2026-07-16",
@@ -193,8 +193,9 @@
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583347+09:00",
- "updated_at": "2026-07-30T15:28:07.028244+09:00"
+ "updated_at": "2026-07-31T15:28:08.410508+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 9b1c4c1..722d5a9 100644
--- a/agents/stock/workspace/state/sim/variants/v215/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v215/trades.jsonl
@@ -102,3 +102,7 @@
{"ts": "2026-07-30T09:16:11.983033+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 40, "cost": 5008751, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111347, "target": 141206, "signals": [{"label": "손절선", "ok": true, "detail": "111,347 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 141,206"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:07.584370+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 37, "cost": 4877331, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120690, "target": 154020, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:07.531673+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 834, "cost": 5254988, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5917, "target": 7067, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:04:08.474094+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 110, "proceeds": 7586178, "entry_price": 89525, "pnl": -2263099, "pnl_pct": -22.82, "hold_from": "2026-07-23T09:50:01.547830+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,291 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 105,994"}, {"label": "추세(10일선)", "ok": false, "detail": "80,070"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:07.726659+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25250, "qty": 197, "cost": 4974996, "path": "pullback", "reason": "눌림목 지정가 25,335 도달", "stop": 23650, "target": 28450, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "25,300 vs 25,185"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,400 / 25,185"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,400 / 25,157"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -414 · 기 +642 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.27% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "976,253 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.27% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,335 (현재 25,300)"}]}
+{"ts": "2026-07-31T09:06:07.727005+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 386, "cost": 2528679, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T10:36:07.720717+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 26100, "qty": 190, "cost": 4959744, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 23650, "target": 28450, "signals": [{"label": "손절선", "ok": true, "detail": "23,650 (현재 26,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 28,450"}, {"label": "추세(10일선)", "ok": true, "detail": "25,265"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -410 · 기 +640"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 25,884"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v217/portfolio.json b/agents/stock/workspace/state/sim/variants/v217/portfolio.json
index 040f0be..af8ceda 100644
--- a/agents/stock/workspace/state/sim/variants/v217/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v217/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 49729888.414000005,
+ "cash": 51281233.3715,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3627364.7637924887,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91179.22077922078,
- "entry_at": "2026-07-23T10:44:02.863253+09:00",
- "stop": 79957,
- "target": 124846,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3559940.05276684,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4841528.853832099,
"last_add_price": 126400
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 297,
- "entry_price": 6130,
+ "qty": 574,
+ "entry_price": 6332.682926829269,
"entry_at": "2026-07-30T09:04:08.134813+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10214,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1821085.8869957556,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3547525.853504033,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:09.540195+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1688085.214726109,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21269252.109500043,
- "closed_trades": 88,
+ "realized_pnl": -23364904.11950005,
+ "closed_trades": 94,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.22011142445999995,
+ "max_drawdown": 0.243873965035,
"last_exit": {
"086790": "2026-07-29",
"005930": "2026-06-23",
@@ -125,14 +125,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -141,8 +141,9 @@
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:40:00.621011+09:00",
- "updated_at": "2026-07-30T15:28:08.183337+09:00"
+ "updated_at": "2026-07-31T15:28:10.638904+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 eb11328..96d9130 100644
--- a/agents/stock/workspace/state/sim/variants/v217/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v217/trades.jsonl
@@ -199,3 +199,16 @@
{"ts": "2026-07-30T11:14:10.106315+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 52, "cost": 4909536, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.080909+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 94400, "pnl": -150435, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.106299+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:07.867097+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.560863+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:17.033030+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:17.983416+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 37, "cost": 4773716, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:19.039950+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 51, "cost": 4804921, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.226130+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 37, "proceeds": 4663987, "entry_price": 129000, "pnl": -109728, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:17.983399+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.763721+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 94200, "pnl": -147520, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:19.039933+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.523981+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91179, "pnl": -1711528, "pnl_pct": -24.22, "hold_from": "2026-07-23T10:44:02.863253+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,957 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,846"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.468117+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 277, "cost": 1814622, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.047645+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:17.033013+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:08.905660+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:10.644653+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:08.905644+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:13.463887+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:09.280871+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:13.463869+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:09.540211+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v218/portfolio.json b/agents/stock/workspace/state/sim/variants/v218/portfolio.json
index d49db97..f509177 100644
--- a/agents/stock/workspace/state/sim/variants/v218/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v218/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 42616576.14,
+ "cash": 41331909.855000004,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3627364.7637924887,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5013998.744343751,
"last_add_price": 19370
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4760241.173848085,
"last_add_price": 126400
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 291,
- "entry_price": 6130,
+ "qty": 563,
+ "entry_price": 6332.91296625222,
"entry_at": "2026-07-30T09:04:08.152605+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1786459.912670363,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3470885.263866936,
"last_add_price": 130900
@@ -128,33 +128,33 @@
"tranche_value": 4834735.918983269,
"last_add_price": 6310
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "095610": {
+ "code": "095610",
+ "name": "테스",
"sources": [
"auto"
],
- "qty": 34,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:08.456357+09:00",
- "stop": 80806,
- "target": 125581,
- "peak": 92000,
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.144403+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
"tranches": 1,
- "tranche_value": 3206592.870573522,
- "last_add_price": 92000
+ "tranche_value": 1668794.556510239,
+ "last_add_price": 130000
}
},
- "realized_pnl": -22861096.287500046,
- "closed_trades": 90,
+ "realized_pnl": -23932130.532500047,
+ "closed_trades": 96,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.23670020299999997,
+ "max_drawdown": 0.25204854345,
"last_exit": {
"086790": "2026-07-29",
"005930": "2026-06-23",
@@ -167,14 +167,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -183,10 +183,10 @@
"095610": "2026-07-30",
"003680": "2026-07-29",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"090850": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583395+09:00",
- "updated_at": "2026-07-30T15:28:08.192156+09:00"
+ "updated_at": "2026-07-31T15:28:10.647259+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 ac53f00..1b8b575 100644
--- a/agents/stock/workspace/state/sim/variants/v218/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v218/trades.jsonl
@@ -206,3 +206,16 @@
{"ts": "2026-07-30T13:08:08.470811+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.846251+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:08.513874+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 91800, "qty": 52, "cost": 4774316, "path": "pullback", "reason": "눌림목 지정가 94,208 도달", "stop": 91799, "target": 91803, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,900 vs 91,798"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -23 · 기 +38 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.37% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "557,141 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.37% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,208 (현재 91,900)"}]}
{"ts": "2026-07-30T13:20:09.116228+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 91800, "pnl": -15214, "pnl_pct": -0.11, "hold_from": "2026-07-30T13:08:08.513862+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "91,799 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -23 · 기 +38"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.147918+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 8, "cost": 4264640, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:04:10.540118+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 34, "proceeds": 2344819, "entry_price": 92000, "pnl": -783651, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:08.456357+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,581"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:09.519482+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 124900, "qty": 37, "cost": 4621993, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 124899, "target": 124903, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "124,900 vs 112,640"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.16% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,785,393 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.16% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 124,900)"}]}
+{"ts": "2026-07-31T09:06:09.520559+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 272, "cost": 1781867, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.656798+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 8, "proceeds": 4239716, "entry_price": 533000, "pnl": -24923, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.147905+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:10.697678+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121700, "qty": 37, "proceeds": 4494119, "entry_price": 124900, "pnl": -127874, "pnl_pct": -2.56, "hold_from": "2026-07-31T09:06:09.519470+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,899 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,903"}, {"label": "추세(60일선)", "ok": true, "detail": "112,608"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,048"}]}
+{"ts": "2026-07-31T09:14:10.501040+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92100, "qty": 51, "cost": 4697805, "path": "pullback", "reason": "눌림목 지정가 93,866 도달", "stop": 92099, "target": 92103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,800 vs 91,797"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.30% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "540,460 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.30% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 93,866 (현재 91,800)"}]}
+{"ts": "2026-07-31T09:16:13.337120+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 92100, "pnl": -40404, "pnl_pct": -0.65, "hold_from": "2026-07-31T09:14:10.501023+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,099 (현재 91,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 92,103"}, {"label": "추세(60일선)", "ok": false, "detail": "91,792"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,311"}]}
+{"ts": "2026-07-31T09:34:11.075908+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.939812+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.075903+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.739172+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 14, "cost": 4410662, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.602878+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 14, "proceeds": 4345510, "entry_price": 315000, "pnl": -65152, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.739168+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.144418+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v223/portfolio.json b/agents/stock/workspace/state/sim/variants/v223/portfolio.json
index def86ff..b469c31 100644
--- a/agents/stock/workspace/state/sim/variants/v223/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v223/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 50302299.84549998,
+ "cash": 51704665.14799999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91179.22077922078,
- "entry_at": "2026-07-23T10:44:03.295983+09:00",
- "stop": 79957,
- "target": 124846,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3559349.4158756477,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4871303.908250191,
"last_add_price": 126400
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 299,
- "entry_price": 6130,
+ "qty": 578,
+ "entry_price": 6332.733564013841,
"entry_at": "2026-07-30T09:04:08.158176+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10214,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1833305.2441214651,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3570553.5376633056,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 13,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.152131+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1700911.5399726962,
+ "last_add_price": 130000
}
},
- "realized_pnl": -20684578.839000043,
- "closed_trades": 89,
+ "realized_pnl": -22786089.03900004,
+ "closed_trades": 95,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.21431412839500025,
+ "max_drawdown": 0.23808745227000014,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -126,14 +126,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -142,8 +142,9 @@
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:40:00.621059+09:00",
- "updated_at": "2026-07-30T15:28:08.198278+09:00"
+ "updated_at": "2026-07-31T15:28:10.654732+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 44ee587..7da04c9 100644
--- a/agents/stock/workspace/state/sim/variants/v223/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v223/trades.jsonl
@@ -201,3 +201,16 @@
{"ts": "2026-07-30T11:14:10.127031+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 52, "cost": 4909536, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.100450+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 94400, "pnl": -150435, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.127028+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:08.526275+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 31, "proceeds": 3115613, "entry_price": 124923, "pnl": -757568, "pnl_pct": -19.39, "hold_from": "2026-07-28T09:00:22.236421+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 197,590"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.255702+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:19.257638+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 38, "cost": 4902735, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:19.258507+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 52, "cost": 4899135, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.785626+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 38, "proceeds": 4790041, "entry_price": 129000, "pnl": -112694, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:19.257632+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.786094+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 52, "proceeds": 4748722, "entry_price": 94200, "pnl": -150413, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:19.258501+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.546349+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91179, "pnl": -1711528, "pnl_pct": -24.22, "hold_from": "2026-07-23T10:44:03.295983+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,957 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,846"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.529538+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 279, "cost": 1827724, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.705478+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.255695+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.083576+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.946954+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.083572+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.747107+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.612056+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.747103+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.152136+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 13, "cost": 1690254, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v224/portfolio.json b/agents/stock/workspace/state/sim/variants/v224/portfolio.json
index e7e36b9..f34fcf8 100644
--- a/agents/stock/workspace/state/sim/variants/v224/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v224/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 43187379.78399998,
+ "cash": 41940800.65649999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5059022.326624999,
"last_add_price": 19370
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4804885.651525278,
"last_add_price": 126400
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 294,
- "entry_price": 6130,
+ "qty": 569,
+ "entry_price": 6332.98769771529,
"entry_at": "2026-07-30T09:04:08.164091+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1807632.1012232043,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3511790.845106854,
"last_add_price": 130900
@@ -128,33 +128,33 @@
"tranche_value": 4891717.004707093,
"last_add_price": 6310
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "095610": {
+ "code": "095610",
+ "name": "테스",
"sources": [
"auto"
],
- "qty": 35,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:08.466995+09:00",
- "stop": 80806,
- "target": 125581,
- "peak": 92000,
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.157501+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
"tranches": 1,
- "tranche_value": 3244481.6990387705,
- "last_add_price": 92000
+ "tranche_value": 1688285.922413822,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21938549.890000038,
- "closed_trades": 91,
+ "realized_pnl": -23043857.830000043,
+ "closed_trades": 97,
"wins": 2,
"peak_equity": 100000000,
- "max_drawdown": 0.2275985665600002,
+ "max_drawdown": 0.24322889843500017,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -168,14 +168,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -185,9 +185,9 @@
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "078930": "2026-07-29",
- "161890": "2026-07-30"
+ "078930": "2026-07-31",
+ "161890": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583512+09:00",
- "updated_at": "2026-07-30T15:28:08.203526+09:00"
+ "updated_at": "2026-07-31T15:28:10.659583+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 edd22d8..66d9682 100644
--- a/agents/stock/workspace/state/sim/variants/v224/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v224/trades.jsonl
@@ -209,3 +209,16 @@
{"ts": "2026-07-30T13:08:08.533345+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.858523+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:08.534022+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 91800, "qty": 52, "cost": 4774316, "path": "pullback", "reason": "눌림목 지정가 94,208 도달", "stop": 91799, "target": 91803, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,900 vs 91,798"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -23 · 기 +38 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.37% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "557,141 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.37% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,208 (현재 91,900)"}]}
{"ts": "2026-07-30T13:20:09.135701+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 91800, "pnl": -15214, "pnl_pct": -0.11, "hold_from": "2026-07-30T13:08:08.534018+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "91,799 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -23 · 기 +38"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.357240+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:04:10.551465+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 35, "proceeds": 2413784, "entry_price": 92000, "pnl": -806699, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:08.466995+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,581"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:09.534643+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 124900, "qty": 38, "cost": 4746912, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 124899, "target": 124903, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "124,900 vs 112,640"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.16% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,785,393 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.16% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 124,900)"}]}
+{"ts": "2026-07-31T09:06:09.535203+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 275, "cost": 1801520, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.711892+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.357235+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:10.712282+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121700, "qty": 38, "proceeds": 4615582, "entry_price": 124900, "pnl": -131330, "pnl_pct": -2.56, "hold_from": "2026-07-31T09:06:09.534640+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,899 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,903"}, {"label": "추세(60일선)", "ok": true, "detail": "112,608"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,048"}]}
+{"ts": "2026-07-31T09:14:10.517432+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92100, "qty": 51, "cost": 4697805, "path": "pullback", "reason": "눌림목 지정가 93,866 도달", "stop": 92099, "target": 92103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,800 vs 91,797"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.30% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "540,460 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.30% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 93,866 (현재 91,800)"}]}
+{"ts": "2026-07-31T09:16:13.355707+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 92100, "pnl": -40404, "pnl_pct": -0.65, "hold_from": "2026-07-31T09:14:10.517428+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,099 (현재 91,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 92,103"}, {"label": "추세(60일선)", "ok": false, "detail": "91,792"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,311"}]}
+{"ts": "2026-07-31T09:34:11.089262+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.952328+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.089256+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.753172+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.618411+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.753168+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.157504+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v229/portfolio.json b/agents/stock/workspace/state/sim/variants/v229/portfolio.json
index e7ffb0f..bef2f81 100644
--- a/agents/stock/workspace/state/sim/variants/v229/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v229/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 49721770.21849997,
+ "cash": 51273115.17599997,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91179.22077922078,
- "entry_at": "2026-07-23T10:44:03.310812+09:00",
- "stop": 79957,
- "target": 124846,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3559349.4158756477,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4840682.195130728,
"last_add_price": 126400
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 296,
- "entry_price": 6130,
+ "qty": 573,
+ "entry_price": 6333.0366492146595,
"entry_at": "2026-07-30T09:04:08.168790+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1820759.233761088,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3546894.320639113,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.162967+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1687768.019262798,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21283501.22450004,
- "closed_trades": 89,
+ "realized_pnl": -23379153.234500043,
+ "closed_trades": 95,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.22025160641500027,
+ "max_drawdown": 0.2440181469900003,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -126,14 +126,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -142,8 +142,9 @@
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:40:00.621103+09:00",
- "updated_at": "2026-07-30T15:28:08.208139+09:00"
+ "updated_at": "2026-07-31T15:28:10.664783+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 71619ef..7d6a0f8 100644
--- a/agents/stock/workspace/state/sim/variants/v229/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v229/trades.jsonl
@@ -201,3 +201,16 @@
{"ts": "2026-07-30T11:14:10.136931+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 52, "cost": 4909536, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.110478+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 94400, "pnl": -150435, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.136928+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:08.539547+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.864085+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.465477+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:19.467150+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 37, "cost": 4773716, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:19.467943+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 51, "cost": 4804921, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.795920+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 37, "proceeds": 4663987, "entry_price": 129000, "pnl": -109728, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:19.467143+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.796221+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 94200, "pnl": -147520, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:19.467937+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.556786+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91179, "pnl": -1711528, "pnl_pct": -24.22, "hold_from": "2026-07-23T10:44:03.310812+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,957 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,846"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.541647+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 277, "cost": 1814622, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.717503+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.465469+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.095234+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.958076+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.095230+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.758513+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.623919+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.758510+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.162971+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v230/portfolio.json b/agents/stock/workspace/state/sim/variants/v230/portfolio.json
index 2d8c6f3..364c942 100644
--- a/agents/stock/workspace/state/sim/variants/v230/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v230/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 42562145.01899998,
+ "cash": 41278270.97399998,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5010126.595875,
"last_add_price": 19370
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4756556.382853909,
"last_add_price": 126400
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 291,
- "entry_price": 6130,
+ "qty": 563,
+ "entry_price": 6332.91296625222,
"entry_at": "2026-07-30T09:04:08.173280+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1785067.433710845,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3468191.0592600796,
"last_add_price": 130900
@@ -128,33 +128,33 @@
"tranche_value": 4830985.601508463,
"last_add_price": 6310
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "095610": {
+ "code": "095610",
+ "name": "테스",
"sources": [
"auto"
],
- "qty": 34,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:08.476907+09:00",
- "stop": 80806,
- "target": 125581,
- "peak": 92000,
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.167956+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
"tranches": 1,
- "tranche_value": 3204099.6853260673,
- "last_add_price": 92000
+ "tranche_value": 1667469.2912320814,
+ "last_add_price": 130000
}
},
- "realized_pnl": -22921838.35500005,
- "closed_trades": 91,
+ "realized_pnl": -23992080.36000005,
+ "closed_trades": 97,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.23730531421000017,
+ "max_drawdown": 0.25264613226000027,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -168,14 +168,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -184,10 +184,10 @@
"095610": "2026-07-30",
"003680": "2026-07-29",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"090850": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583628+09:00",
- "updated_at": "2026-07-30T15:28:08.212257+09:00"
+ "updated_at": "2026-07-31T15:28:10.668945+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 9c7bbc4..01efe8e 100644
--- a/agents/stock/workspace/state/sim/variants/v230/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v230/trades.jsonl
@@ -208,3 +208,16 @@
{"ts": "2026-07-30T13:08:08.544147+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.869049+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:08.544554+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 91800, "qty": 52, "cost": 4774316, "path": "pullback", "reason": "눌림목 지정가 94,208 도달", "stop": 91799, "target": 91803, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,900 vs 91,798"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -23 · 기 +38 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.37% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "557,141 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.37% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,208 (현재 91,900)"}]}
{"ts": "2026-07-30T13:20:09.146821+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 91800, "pnl": -15214, "pnl_pct": -0.11, "hold_from": "2026-07-30T13:08:08.544552+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "91,799 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -23 · 기 +38"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.568617+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 8, "cost": 4264640, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:04:10.561610+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 34, "proceeds": 2344819, "entry_price": 92000, "pnl": -783651, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:08.476907+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,581"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:09.546071+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 124900, "qty": 37, "cost": 4621993, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 124899, "target": 124903, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "124,900 vs 112,640"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.16% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,785,393 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.16% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 124,900)"}]}
+{"ts": "2026-07-31T09:06:09.546348+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 272, "cost": 1781867, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.721782+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 8, "proceeds": 4239716, "entry_price": 533000, "pnl": -24923, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.568608+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:10.721945+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121700, "qty": 37, "proceeds": 4494119, "entry_price": 124900, "pnl": -127874, "pnl_pct": -2.56, "hold_from": "2026-07-31T09:06:09.546067+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,899 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,903"}, {"label": "추세(60일선)", "ok": true, "detail": "112,608"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,048"}]}
+{"ts": "2026-07-31T09:14:10.528902+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92100, "qty": 50, "cost": 4605691, "path": "pullback", "reason": "눌림목 지정가 93,866 도달", "stop": 92099, "target": 92103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,800 vs 91,797"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.30% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "540,460 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.30% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 93,866 (현재 91,800)"}]}
+{"ts": "2026-07-31T09:16:13.367010+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 50, "proceeds": 4566079, "entry_price": 92100, "pnl": -39612, "pnl_pct": -0.65, "hold_from": "2026-07-31T09:14:10.528897+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,099 (현재 91,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 92,103"}, {"label": "추세(60일선)", "ok": false, "detail": "91,792"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,311"}]}
+{"ts": "2026-07-31T09:34:11.100060+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.962571+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.100057+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.762890+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 14, "cost": 4410662, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.628614+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 14, "proceeds": 4345510, "entry_price": 315000, "pnl": -65152, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.762887+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.167959+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v235/portfolio.json b/agents/stock/workspace/state/sim/variants/v235/portfolio.json
index 349bd88..27ac773 100644
--- a/agents/stock/workspace/state/sim/variants/v235/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v235/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 50302299.84549998,
+ "cash": 51704665.14799999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91179.22077922078,
- "entry_at": "2026-07-23T10:44:03.323082+09:00",
- "stop": 79957,
- "target": 124846,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3559349.4158756477,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4871303.908250191,
"last_add_price": 126400
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 299,
- "entry_price": 6130,
+ "qty": 578,
+ "entry_price": 6332.733564013841,
"entry_at": "2026-07-30T09:04:08.177640+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10214,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1833305.2441214651,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3570553.5376633056,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 13,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.171880+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1700911.5399726962,
+ "last_add_price": 130000
}
},
- "realized_pnl": -20684578.839000043,
- "closed_trades": 89,
+ "realized_pnl": -22786089.03900004,
+ "closed_trades": 95,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.21431412839500025,
+ "max_drawdown": 0.23808745227000014,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -126,14 +126,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -142,8 +142,9 @@
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:40:00.621148+09:00",
- "updated_at": "2026-07-30T15:28:08.216191+09:00"
+ "updated_at": "2026-07-31T15:28:10.672572+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 9e4dfaf..2edd714 100644
--- a/agents/stock/workspace/state/sim/variants/v235/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v235/trades.jsonl
@@ -201,3 +201,16 @@
{"ts": "2026-07-30T11:14:10.145344+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 52, "cost": 4909536, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.118312+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 94400, "pnl": -150435, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.145341+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:08.548002+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 31, "proceeds": 3115613, "entry_price": 124923, "pnl": -757568, "pnl_pct": -19.39, "hold_from": "2026-07-28T09:00:22.654170+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 197,590"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.673566+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:19.675135+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 38, "cost": 4902735, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:19.675813+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 52, "cost": 4899135, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.804160+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 38, "proceeds": 4790041, "entry_price": 129000, "pnl": -112694, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:19.675129+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.804383+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 52, "proceeds": 4748722, "entry_price": 94200, "pnl": -150413, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:19.675808+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.565481+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91179, "pnl": -1711528, "pnl_pct": -24.22, "hold_from": "2026-07-23T10:44:03.323082+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,957 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,846"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.550653+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 279, "cost": 1827724, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.726103+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.673558+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.104148+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.966794+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.104145+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.766716+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.632970+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.766714+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.171882+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 13, "cost": 1690254, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v236/portfolio.json b/agents/stock/workspace/state/sim/variants/v236/portfolio.json
index b971e68..ddb95ba 100644
--- a/agents/stock/workspace/state/sim/variants/v236/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v236/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 43187379.78399998,
+ "cash": 41940800.65649999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5059022.326624999,
"last_add_price": 19370
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4804885.651525278,
"last_add_price": 126400
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 294,
- "entry_price": 6130,
+ "qty": 569,
+ "entry_price": 6332.98769771529,
"entry_at": "2026-07-30T09:04:08.181805+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1807632.1012232043,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3511790.845106854,
"last_add_price": 130900
@@ -128,33 +128,33 @@
"tranche_value": 4891717.004707093,
"last_add_price": 6310
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "095610": {
+ "code": "095610",
+ "name": "테스",
"sources": [
"auto"
],
- "qty": 35,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:08.484228+09:00",
- "stop": 80806,
- "target": 125581,
- "peak": 92000,
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.175583+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
"tranches": 1,
- "tranche_value": 3244481.6990387705,
- "last_add_price": 92000
+ "tranche_value": 1688285.922413822,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21938549.890000038,
- "closed_trades": 91,
+ "realized_pnl": -23043857.830000043,
+ "closed_trades": 97,
"wins": 2,
"peak_equity": 100000000,
- "max_drawdown": 0.2275985665600002,
+ "max_drawdown": 0.24322889843500017,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -168,14 +168,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -185,9 +185,9 @@
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "078930": "2026-07-29",
- "161890": "2026-07-30"
+ "078930": "2026-07-31",
+ "161890": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.583751+09:00",
- "updated_at": "2026-07-30T15:28:08.219742+09:00"
+ "updated_at": "2026-07-31T15:28:10.676157+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 1b5c75d..43000a8 100644
--- a/agents/stock/workspace/state/sim/variants/v236/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v236/trades.jsonl
@@ -209,3 +209,16 @@
{"ts": "2026-07-30T13:08:08.551656+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.877598+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:08.552024+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 91800, "qty": 52, "cost": 4774316, "path": "pullback", "reason": "눌림목 지정가 94,208 도달", "stop": 91799, "target": 91803, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,900 vs 91,798"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -23 · 기 +38 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.37% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "557,141 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.37% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,208 (현재 91,900)"}]}
{"ts": "2026-07-30T13:20:09.155246+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 91800, "pnl": -15214, "pnl_pct": -0.11, "hold_from": "2026-07-30T13:08:08.552022+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "91,799 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -23 · 기 +38"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.775009+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:04:10.569169+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 35, "proceeds": 2413784, "entry_price": 92000, "pnl": -806699, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:08.484228+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,581"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:09.554259+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 124900, "qty": 38, "cost": 4746912, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 124899, "target": 124903, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "124,900 vs 112,640"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.16% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,785,393 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.16% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 124,900)"}]}
+{"ts": "2026-07-31T09:06:09.554491+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 275, "cost": 1801520, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.729704+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.775002+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:10.729834+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121700, "qty": 38, "proceeds": 4615582, "entry_price": 124900, "pnl": -131330, "pnl_pct": -2.56, "hold_from": "2026-07-31T09:06:09.554256+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,899 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,903"}, {"label": "추세(60일선)", "ok": true, "detail": "112,608"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,048"}]}
+{"ts": "2026-07-31T09:14:10.537871+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92100, "qty": 51, "cost": 4697805, "path": "pullback", "reason": "눌림목 지정가 93,866 도달", "stop": 92099, "target": 92103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,800 vs 91,797"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.30% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "540,460 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.30% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 93,866 (현재 91,800)"}]}
+{"ts": "2026-07-31T09:16:13.375215+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 92100, "pnl": -40404, "pnl_pct": -0.65, "hold_from": "2026-07-31T09:14:10.537867+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,099 (현재 91,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 92,103"}, {"label": "추세(60일선)", "ok": false, "detail": "91,792"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,311"}]}
+{"ts": "2026-07-31T09:34:11.107952+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.970531+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.107950+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.770420+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.636700+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.770417+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.175585+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v265/portfolio.json b/agents/stock/workspace/state/sim/variants/v265/portfolio.json
index c2b10ea..475c4b7 100644
--- a/agents/stock/workspace/state/sim/variants/v265/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v265/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 50302299.84549998,
+ "cash": 51704665.14799999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91179.22077922078,
- "entry_at": "2026-07-23T10:44:03.333068+09:00",
- "stop": 79957,
- "target": 124846,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3559349.4158756477,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4871303.908250191,
"last_add_price": 126400
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 299,
- "entry_price": 6130,
+ "qty": 578,
+ "entry_price": 6332.733564013841,
"entry_at": "2026-07-30T09:04:08.185692+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10214,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1833305.2441214651,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3570553.5376633056,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 13,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.179162+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1700911.5399726962,
+ "last_add_price": 130000
}
},
- "realized_pnl": -20684578.839000043,
- "closed_trades": 89,
+ "realized_pnl": -22786089.03900004,
+ "closed_trades": 95,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.21431412839500025,
+ "max_drawdown": 0.23808745227000014,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -126,14 +126,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -142,8 +142,9 @@
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:40:00.621367+09:00",
- "updated_at": "2026-07-30T15:28:08.223308+09:00"
+ "updated_at": "2026-07-31T15:28:10.679464+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 577f01f..fc7fb8e 100644
--- a/agents/stock/workspace/state/sim/variants/v265/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v265/trades.jsonl
@@ -201,3 +201,16 @@
{"ts": "2026-07-30T11:14:10.152216+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 52, "cost": 4909536, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.125170+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 94400, "pnl": -150435, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.152214+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:08.555218+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 31, "proceeds": 3115613, "entry_price": 124923, "pnl": -757568, "pnl_pct": -19.39, "hold_from": "2026-07-28T09:00:22.865306+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 197,590"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.880173+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:19.882110+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 38, "cost": 4902735, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:19.882873+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 52, "cost": 4899135, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.811431+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 38, "proceeds": 4790041, "entry_price": 129000, "pnl": -112694, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:19.882103+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.811631+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 52, "proceeds": 4748722, "entry_price": 94200, "pnl": -150413, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:19.882867+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.572645+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91179, "pnl": -1711528, "pnl_pct": -24.22, "hold_from": "2026-07-23T10:44:03.333068+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,957 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,846"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.557905+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 279, "cost": 1827724, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.733413+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.880166+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.111619+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.974285+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.111616+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.773980+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.640385+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.773978+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.179164+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 13, "cost": 1690254, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v266/portfolio.json b/agents/stock/workspace/state/sim/variants/v266/portfolio.json
index c9d30ba..3e1fa60 100644
--- a/agents/stock/workspace/state/sim/variants/v266/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v266/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 43187379.78399998,
+ "cash": 41940800.65649999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5059022.326624999,
"last_add_price": 19370
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4804885.651525278,
"last_add_price": 126400
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 294,
- "entry_price": 6130,
+ "qty": 569,
+ "entry_price": 6332.98769771529,
"entry_at": "2026-07-30T09:04:08.189515+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1807632.1012232043,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3511790.845106854,
"last_add_price": 130900
@@ -128,33 +128,33 @@
"tranche_value": 4891717.004707093,
"last_add_price": 6310
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "095610": {
+ "code": "095610",
+ "name": "테스",
"sources": [
"auto"
],
- "qty": 35,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:08.490882+09:00",
- "stop": 80806,
- "target": 125581,
- "peak": 92000,
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.182486+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
"tranches": 1,
- "tranche_value": 3244481.6990387705,
- "last_add_price": 92000
+ "tranche_value": 1688285.922413822,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21938549.890000038,
- "closed_trades": 91,
+ "realized_pnl": -23043857.830000043,
+ "closed_trades": 97,
"wins": 2,
"peak_equity": 100000000,
- "max_drawdown": 0.2275985665600002,
+ "max_drawdown": 0.24322889843500017,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -168,14 +168,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -185,9 +185,9 @@
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "078930": "2026-07-29",
- "161890": "2026-07-30"
+ "078930": "2026-07-31",
+ "161890": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.584337+09:00",
- "updated_at": "2026-07-30T15:28:08.226495+09:00"
+ "updated_at": "2026-07-31T15:28:10.682643+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 2124092..855f002 100644
--- a/agents/stock/workspace/state/sim/variants/v266/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v266/trades.jsonl
@@ -209,3 +209,16 @@
{"ts": "2026-07-30T13:08:08.558426+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.886191+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:08.558735+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 91800, "qty": 52, "cost": 4774316, "path": "pullback", "reason": "눌림목 지정가 94,208 도달", "stop": 91799, "target": 91803, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,900 vs 91,798"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -23 · 기 +38 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.37% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "557,141 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.37% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,208 (현재 91,900)"}]}
{"ts": "2026-07-30T13:20:09.162472+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 91800, "pnl": -15214, "pnl_pct": -0.11, "hold_from": "2026-07-30T13:08:08.558733+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "91,799 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -23 · 기 +38"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:19.986131+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:04:10.575939+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 35, "proceeds": 2413784, "entry_price": 92000, "pnl": -806699, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:08.490882+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,581"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:09.561023+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 124900, "qty": 38, "cost": 4746912, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 124899, "target": 124903, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "124,900 vs 112,640"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.16% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,785,393 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.16% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 124,900)"}]}
+{"ts": "2026-07-31T09:06:09.561230+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 275, "cost": 1801520, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.736657+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:19.986122+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:10.736793+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121700, "qty": 38, "proceeds": 4615582, "entry_price": 124900, "pnl": -131330, "pnl_pct": -2.56, "hold_from": "2026-07-31T09:06:09.561021+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,899 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,903"}, {"label": "추세(60일선)", "ok": true, "detail": "112,608"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,048"}]}
+{"ts": "2026-07-31T09:14:10.545158+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92100, "qty": 51, "cost": 4697805, "path": "pullback", "reason": "눌림목 지정가 93,866 도달", "stop": 92099, "target": 92103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,800 vs 91,797"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.30% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "540,460 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.30% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 93,866 (현재 91,800)"}]}
+{"ts": "2026-07-31T09:16:13.382317+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 92100, "pnl": -40404, "pnl_pct": -0.65, "hold_from": "2026-07-31T09:14:10.545156+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,099 (현재 91,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 92,103"}, {"label": "추세(60일선)", "ok": false, "detail": "91,792"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,311"}]}
+{"ts": "2026-07-31T09:34:11.114949+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.977602+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.114947+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.777271+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.643902+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.777269+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.182488+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v271/portfolio.json b/agents/stock/workspace/state/sim/variants/v271/portfolio.json
index af0627e..b059029 100644
--- a/agents/stock/workspace/state/sim/variants/v271/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v271/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 50302299.84549998,
+ "cash": 51704665.14799999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91179.22077922078,
- "entry_at": "2026-07-23T10:44:03.341660+09:00",
- "stop": 79957,
- "target": 124846,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3559349.4158756477,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4871303.908250191,
"last_add_price": 126400
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 299,
- "entry_price": 6130,
+ "qty": 578,
+ "entry_price": 6332.733564013841,
"entry_at": "2026-07-30T09:04:08.192841+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10214,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1833305.2441214651,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3570553.5376633056,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 13,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.185779+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1700911.5399726962,
+ "last_add_price": 130000
}
},
- "realized_pnl": -20684578.839000043,
- "closed_trades": 89,
+ "realized_pnl": -22786089.03900004,
+ "closed_trades": 95,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.21431412839500025,
+ "max_drawdown": 0.23808745227000014,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -126,14 +126,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -142,8 +142,9 @@
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:40:00.621411+09:00",
- "updated_at": "2026-07-30T15:28:08.229484+09:00"
+ "updated_at": "2026-07-31T15:28:10.685807+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 67a8279..4638f11 100644
--- a/agents/stock/workspace/state/sim/variants/v271/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v271/trades.jsonl
@@ -201,3 +201,16 @@
{"ts": "2026-07-30T11:14:10.158629+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 52, "cost": 4909536, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.131100+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 94400, "pnl": -150435, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.158627+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:08.561778+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 31, "proceeds": 3115613, "entry_price": 124923, "pnl": -757568, "pnl_pct": -19.39, "hold_from": "2026-07-28T09:00:23.083067+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 197,590"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:20.088315+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:20.090008+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 38, "cost": 4902735, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:20.091172+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 52, "cost": 4899135, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.817649+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 38, "proceeds": 4790041, "entry_price": 129000, "pnl": -112694, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:20.089998+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.817834+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 52, "proceeds": 4748722, "entry_price": 94200, "pnl": -150413, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:20.091164+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.579251+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91179, "pnl": -1711528, "pnl_pct": -24.22, "hold_from": "2026-07-23T10:44:03.341660+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,957 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,846"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.564480+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 279, "cost": 1827724, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.739858+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:20.088308+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.118024+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.980768+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.118022+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.780588+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.647165+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.780586+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.185781+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 13, "cost": 1690254, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v272/portfolio.json b/agents/stock/workspace/state/sim/variants/v272/portfolio.json
index 648eb26..0eb0a0f 100644
--- a/agents/stock/workspace/state/sim/variants/v272/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v272/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 43187379.78399998,
+ "cash": 41940800.65649999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5059022.326624999,
"last_add_price": 19370
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4804885.651525278,
"last_add_price": 126400
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 294,
- "entry_price": 6130,
+ "qty": 569,
+ "entry_price": 6332.98769771529,
"entry_at": "2026-07-30T09:04:08.196316+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1807632.1012232043,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3511790.845106854,
"last_add_price": 130900
@@ -128,33 +128,33 @@
"tranche_value": 4891717.004707093,
"last_add_price": 6310
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "095610": {
+ "code": "095610",
+ "name": "테스",
"sources": [
"auto"
],
- "qty": 35,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:08.497001+09:00",
- "stop": 80806,
- "target": 125581,
- "peak": 92000,
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.188782+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
"tranches": 1,
- "tranche_value": 3244481.6990387705,
- "last_add_price": 92000
+ "tranche_value": 1688285.922413822,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21938549.890000038,
- "closed_trades": 91,
+ "realized_pnl": -23043857.830000043,
+ "closed_trades": 97,
"wins": 2,
"peak_equity": 100000000,
- "max_drawdown": 0.2275985665600002,
+ "max_drawdown": 0.24322889843500017,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -168,14 +168,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -185,9 +185,9 @@
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "078930": "2026-07-29",
- "161890": "2026-07-30"
+ "078930": "2026-07-31",
+ "161890": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.584451+09:00",
- "updated_at": "2026-07-30T15:28:08.232327+09:00"
+ "updated_at": "2026-07-31T15:28:10.688666+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 44cdeeb..5e091ac 100644
--- a/agents/stock/workspace/state/sim/variants/v272/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v272/trades.jsonl
@@ -209,3 +209,16 @@
{"ts": "2026-07-30T13:08:08.564699+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.894214+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:08.564981+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 91800, "qty": 52, "cost": 4774316, "path": "pullback", "reason": "눌림목 지정가 94,208 도달", "stop": 91799, "target": 91803, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,900 vs 91,798"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -23 · 기 +38 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.37% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "557,141 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.37% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,208 (현재 91,900)"}]}
{"ts": "2026-07-30T13:20:09.169075+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 91800, "pnl": -15214, "pnl_pct": -0.11, "hold_from": "2026-07-30T13:08:08.564979+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "91,799 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -23 · 기 +38"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:20.199055+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:04:10.582298+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 35, "proceeds": 2413784, "entry_price": 92000, "pnl": -806699, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:08.497001+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,581"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:09.567296+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 124900, "qty": 38, "cost": 4746912, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 124899, "target": 124903, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "124,900 vs 112,640"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.16% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,785,393 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.16% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 124,900)"}]}
+{"ts": "2026-07-31T09:06:09.567479+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 275, "cost": 1801520, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.742747+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:20.199047+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:10.742867+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121700, "qty": 38, "proceeds": 4615582, "entry_price": 124900, "pnl": -131330, "pnl_pct": -2.56, "hold_from": "2026-07-31T09:06:09.567294+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,899 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,903"}, {"label": "추세(60일선)", "ok": true, "detail": "112,608"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,048"}]}
+{"ts": "2026-07-31T09:14:10.551680+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92100, "qty": 51, "cost": 4697805, "path": "pullback", "reason": "눌림목 지정가 93,866 도달", "stop": 92099, "target": 92103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,800 vs 91,797"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.30% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "540,460 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.30% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 93,866 (현재 91,800)"}]}
+{"ts": "2026-07-31T09:16:13.388474+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 92100, "pnl": -40404, "pnl_pct": -0.65, "hold_from": "2026-07-31T09:14:10.551678+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,099 (현재 91,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 92,103"}, {"label": "추세(60일선)", "ok": false, "detail": "91,792"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,311"}]}
+{"ts": "2026-07-31T09:34:11.121057+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.983691+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.121055+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.783569+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.650108+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.783567+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.188784+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v277/portfolio.json b/agents/stock/workspace/state/sim/variants/v277/portfolio.json
index e1b1048..5cd6fc4 100644
--- a/agents/stock/workspace/state/sim/variants/v277/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v277/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 49721770.21849997,
+ "cash": 51273115.17599997,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91179.22077922078,
- "entry_at": "2026-07-23T10:44:03.350271+09:00",
- "stop": 79957,
- "target": 124846,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3559349.4158756477,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4840682.195130728,
"last_add_price": 126400
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 296,
- "entry_price": 6130,
+ "qty": 573,
+ "entry_price": 6333.0366492146595,
"entry_at": "2026-07-30T09:04:08.199417+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1820759.233761088,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3546894.320639113,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.191677+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1687768.019262798,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21283501.22450004,
- "closed_trades": 89,
+ "realized_pnl": -23379153.234500043,
+ "closed_trades": 95,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.22025160641500027,
+ "max_drawdown": 0.2440181469900003,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -126,14 +126,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -142,8 +142,9 @@
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:40:00.621453+09:00",
- "updated_at": "2026-07-30T15:28:08.235152+09:00"
+ "updated_at": "2026-07-31T15:28:10.691455+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 9988e3a..fd4ac6f 100644
--- a/agents/stock/workspace/state/sim/variants/v277/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v277/trades.jsonl
@@ -201,3 +201,16 @@
{"ts": "2026-07-30T11:14:10.164212+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 52, "cost": 4909536, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.136768+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 94400, "pnl": -150435, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.164210+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:08.567616+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.897785+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:20.301235+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:20.302795+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 37, "cost": 4773716, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:20.303561+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 51, "cost": 4804921, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.823579+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 37, "proceeds": 4663987, "entry_price": 129000, "pnl": -109728, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:20.302787+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.823740+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 94200, "pnl": -147520, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:20.303555+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.585142+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91179, "pnl": -1711528, "pnl_pct": -24.22, "hold_from": "2026-07-23T10:44:03.350271+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,957 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,846"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.570274+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 277, "cost": 1814622, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.745738+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:20.301228+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.124064+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.986374+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.124062+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.786424+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.653104+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.786422+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.191679+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v278/portfolio.json b/agents/stock/workspace/state/sim/variants/v278/portfolio.json
index 2818e32..54cce31 100644
--- a/agents/stock/workspace/state/sim/variants/v278/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v278/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 42562145.01899998,
+ "cash": 41278270.97399998,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5010126.595875,
"last_add_price": 19370
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4756556.382853909,
"last_add_price": 126400
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 291,
- "entry_price": 6130,
+ "qty": 563,
+ "entry_price": 6332.91296625222,
"entry_at": "2026-07-30T09:04:08.202607+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1785067.433710845,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3468191.0592600796,
"last_add_price": 130900
@@ -128,33 +128,33 @@
"tranche_value": 4830985.601508463,
"last_add_price": 6310
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "095610": {
+ "code": "095610",
+ "name": "테스",
"sources": [
"auto"
],
- "qty": 34,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:08.502413+09:00",
- "stop": 80806,
- "target": 125581,
- "peak": 92000,
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.194352+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
"tranches": 1,
- "tranche_value": 3204099.6853260673,
- "last_add_price": 92000
+ "tranche_value": 1667469.2912320814,
+ "last_add_price": 130000
}
},
- "realized_pnl": -22921838.35500005,
- "closed_trades": 91,
+ "realized_pnl": -23992080.36000005,
+ "closed_trades": 97,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.23730531421000017,
+ "max_drawdown": 0.25264613226000027,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -168,14 +168,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -184,10 +184,10 @@
"095610": "2026-07-30",
"003680": "2026-07-29",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"090850": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.584565+09:00",
- "updated_at": "2026-07-30T15:28:08.237889+09:00"
+ "updated_at": "2026-07-31T15:28:10.694058+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 9466bdf..dc6966c 100644
--- a/agents/stock/workspace/state/sim/variants/v278/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v278/trades.jsonl
@@ -208,3 +208,16 @@
{"ts": "2026-07-30T13:08:08.570244+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.901179+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:08.570496+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 91800, "qty": 52, "cost": 4774316, "path": "pullback", "reason": "눌림목 지정가 94,208 도달", "stop": 91799, "target": 91803, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,900 vs 91,798"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -23 · 기 +38 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.37% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "557,141 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.37% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,208 (현재 91,900)"}]}
{"ts": "2026-07-30T13:20:09.174854+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 91800, "pnl": -15214, "pnl_pct": -0.11, "hold_from": "2026-07-30T13:08:08.570494+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "91,799 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -23 · 기 +38"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:20.412353+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 8, "cost": 4264640, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:04:10.587801+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 34, "proceeds": 2344819, "entry_price": 92000, "pnl": -783651, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:08.502413+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,581"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:09.572846+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 124900, "qty": 37, "cost": 4621993, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 124899, "target": 124903, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "124,900 vs 112,640"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.16% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,785,393 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.16% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 124,900)"}]}
+{"ts": "2026-07-31T09:06:09.573022+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 272, "cost": 1781867, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.748507+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 8, "proceeds": 4239716, "entry_price": 533000, "pnl": -24923, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:20.412345+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:10.748604+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121700, "qty": 37, "proceeds": 4494119, "entry_price": 124900, "pnl": -127874, "pnl_pct": -2.56, "hold_from": "2026-07-31T09:06:09.572844+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,899 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,903"}, {"label": "추세(60일선)", "ok": true, "detail": "112,608"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,048"}]}
+{"ts": "2026-07-31T09:14:10.557495+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92100, "qty": 50, "cost": 4605691, "path": "pullback", "reason": "눌림목 지정가 93,866 도달", "stop": 92099, "target": 92103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,800 vs 91,797"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.30% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "540,460 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.30% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 93,866 (현재 91,800)"}]}
+{"ts": "2026-07-31T09:16:13.394281+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 50, "proceeds": 4566079, "entry_price": 92100, "pnl": -39612, "pnl_pct": -0.65, "hold_from": "2026-07-31T09:14:10.557494+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,099 (현재 91,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 92,103"}, {"label": "추세(60일선)", "ok": false, "detail": "91,792"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,311"}]}
+{"ts": "2026-07-31T09:34:11.126786+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.989011+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.126784+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.789061+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 14, "cost": 4410662, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.656004+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 14, "proceeds": 4345510, "entry_price": 315000, "pnl": -65152, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.789059+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.194354+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v283/portfolio.json b/agents/stock/workspace/state/sim/variants/v283/portfolio.json
index b80a062..78fde9b 100644
--- a/agents/stock/workspace/state/sim/variants/v283/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v283/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 49721770.21849997,
+ "cash": 51273115.17599997,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91179.22077922078,
- "entry_at": "2026-07-23T10:44:03.357444+09:00",
- "stop": 79957,
- "target": 124846,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3559349.4158756477,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4840682.195130728,
"last_add_price": 126400
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 296,
- "entry_price": 6130,
+ "qty": 573,
+ "entry_price": 6333.0366492146595,
"entry_at": "2026-07-30T09:04:08.205546+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1820759.233761088,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3546894.320639113,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.196890+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1687768.019262798,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21283501.22450004,
- "closed_trades": 89,
+ "realized_pnl": -23379153.234500043,
+ "closed_trades": 95,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.22025160641500027,
+ "max_drawdown": 0.2440181469900003,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -126,14 +126,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -142,8 +142,9 @@
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-15T14:40:00.621497+09:00",
- "updated_at": "2026-07-30T15:28:08.240441+09:00"
+ "updated_at": "2026-07-31T15:28:10.696505+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 d78ec20..60c9441 100644
--- a/agents/stock/workspace/state/sim/variants/v283/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v283/trades.jsonl
@@ -201,3 +201,16 @@
{"ts": "2026-07-30T11:14:10.169477+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 52, "cost": 4909536, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.141824+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 94400, "pnl": -150435, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.169475+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:08.572854+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.904456+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:20.514537+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 9, "cost": 4797720, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:20.516063+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 37, "cost": 4773716, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:20.516731+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 51, "cost": 4804921, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.828856+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 37, "proceeds": 4663987, "entry_price": 129000, "pnl": -109728, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:20.516057+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.828995+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 51, "proceeds": 4657400, "entry_price": 94200, "pnl": -147520, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:20.516725+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.590440+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91179, "pnl": -1711528, "pnl_pct": -24.22, "hold_from": "2026-07-23T10:44:03.357444+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,957 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,846"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.575695+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 277, "cost": 1814622, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.751221+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 9, "proceeds": 4769681, "entry_price": 533000, "pnl": -28039, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:20.514529+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.129430+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.991677+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.129428+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.791610+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 15, "cost": 4725709, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.658718+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 15, "proceeds": 4655903, "entry_price": 315000, "pnl": -69806, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.791609+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.196892+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v284/portfolio.json b/agents/stock/workspace/state/sim/variants/v284/portfolio.json
index 04e1fe3..eac6b88 100644
--- a/agents/stock/workspace/state/sim/variants/v284/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v284/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 42562145.01899998,
+ "cash": 41278270.97399998,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5010126.595875,
"last_add_price": 19370
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4756556.382853909,
"last_add_price": 126400
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 291,
- "entry_price": 6130,
+ "qty": 563,
+ "entry_price": 6332.91296625222,
"entry_at": "2026-07-30T09:04:08.208371+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1785067.433710845,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3468191.0592600796,
"last_add_price": 130900
@@ -128,33 +128,33 @@
"tranche_value": 4830985.601508463,
"last_add_price": 6310
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "095610": {
+ "code": "095610",
+ "name": "테스",
"sources": [
"auto"
],
- "qty": 34,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:08.507277+09:00",
- "stop": 80806,
- "target": 125581,
- "peak": 92000,
+ "qty": 12,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.199406+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
"tranches": 1,
- "tranche_value": 3204099.6853260673,
- "last_add_price": 92000
+ "tranche_value": 1667469.2912320814,
+ "last_add_price": 130000
}
},
- "realized_pnl": -22921838.35500005,
- "closed_trades": 91,
+ "realized_pnl": -23992080.36000005,
+ "closed_trades": 97,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.23730531421000017,
+ "max_drawdown": 0.25264613226000027,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -168,14 +168,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21",
@@ -184,10 +184,10 @@
"095610": "2026-07-30",
"003680": "2026-07-29",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"090850": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31"
},
"created_at": "2026-06-15T14:55:00.584680+09:00",
- "updated_at": "2026-07-30T15:28:08.242886+09:00"
+ "updated_at": "2026-07-31T15:28:10.698884+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 fd2341d..c972e98 100644
--- a/agents/stock/workspace/state/sim/variants/v284/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v284/trades.jsonl
@@ -208,3 +208,16 @@
{"ts": "2026-07-30T13:08:08.575309+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:02.907686+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:08.575548+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 91800, "qty": 52, "cost": 4774316, "path": "pullback", "reason": "눌림목 지정가 94,208 도달", "stop": 91799, "target": 91803, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,900 vs 91,798"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,680 / 91,798"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -23 · 기 +38 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.37% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "557,141 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.37% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,208 (현재 91,900)"}]}
{"ts": "2026-07-30T13:20:09.180299+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 52, "proceeds": 4759102, "entry_price": 91800, "pnl": -15214, "pnl_pct": -0.11, "hold_from": "2026-07-30T13:08:08.575546+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "91,799 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -23 · 기 +38"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:20.617220+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 8, "cost": 4264640, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:04:10.593098+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 34, "proceeds": 2344819, "entry_price": 92000, "pnl": -783651, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:08.507277+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,581"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:09.578227+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 124900, "qty": 37, "cost": 4621993, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 124899, "target": 124903, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "124,900 vs 112,640"}, {"label": "정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,620 / 112,640"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.16% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,785,393 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.16% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 124,900)"}]}
+{"ts": "2026-07-31T09:06:09.578387+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 272, "cost": 1781867, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.753672+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 8, "proceeds": 4239716, "entry_price": 533000, "pnl": -24923, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:20.617215+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:10.753765+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121700, "qty": 37, "proceeds": 4494119, "entry_price": 124900, "pnl": -127874, "pnl_pct": -2.56, "hold_from": "2026-07-31T09:06:09.578225+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,899 (현재 123,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,903"}, {"label": "추세(60일선)", "ok": true, "detail": "112,608"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,048"}]}
+{"ts": "2026-07-31T09:14:10.562794+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92100, "qty": 50, "cost": 4605691, "path": "pullback", "reason": "눌림목 지정가 93,866 도달", "stop": 92099, "target": 92103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,800 vs 91,797"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,660 / 91,797"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.30% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "540,460 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.30% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 93,866 (현재 91,800)"}]}
+{"ts": "2026-07-31T09:16:13.399568+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 50, "proceeds": 4566079, "entry_price": 92100, "pnl": -39612, "pnl_pct": -0.65, "hold_from": "2026-07-31T09:14:10.562792+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,099 (현재 91,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 92,103"}, {"label": "추세(60일선)", "ok": false, "detail": "91,792"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,311"}]}
+{"ts": "2026-07-31T09:34:11.132019+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 13, "cost": 4557183, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:12.994186+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 13, "proceeds": 4528153, "entry_price": 350500, "pnl": -29031, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.132018+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.794121+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 14, "cost": 4410662, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.661315+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 14, "proceeds": 4345510, "entry_price": 315000, "pnl": -65152, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.794120+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.199408+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 12, "cost": 1560234, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v296/portfolio.json b/agents/stock/workspace/state/sim/variants/v296/portfolio.json
index 699427f..4587477 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": 30020166.7685,
+ "cash": 25925193.426,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 100200,
+ "cur_price": 101100,
"tranches": 2,
"tranche_value": 4371332.168068898,
"last_add_price": 105800
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 3448434.606240806,
"last_add_price": 130800
@@ -60,32 +60,11 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3417673.0117698065,
"last_add_price": 338000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 32,
- "entry_price": 92800,
- "entry_at": "2026-07-27T12:12:01.551385+09:00",
- "stop": 80806,
- "target": 128781,
- "peak": 93500,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 3055813.2324855765,
- "last_add_price": 92800
- },
"003490": {
"code": "003490",
"name": "대한항공",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 24600,
+ "cur_price": 25850,
"tranches": 1,
"tranche_value": 4829886.125812501,
"last_add_price": 25650
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4425860.654266699,
"last_add_price": 125200
@@ -134,20 +113,20 @@
"sources": [
"auto"
],
- "qty": 281,
- "entry_price": 6130,
+ "qty": 544,
+ "entry_price": 6333.051470588235,
"entry_at": "2026-07-30T09:04:08.798504+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1723803.5365682123,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -165,17 +144,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 1,
"tranche_value": 4248451.425139817,
"last_add_price": 124700
+ },
+ "161890": {
+ "code": "161890",
+ "name": "한국콜마",
+ "sources": [
+ "auto"
+ ],
+ "qty": 48,
+ "entry_price": 94100,
+ "entry_at": "2026-07-31T11:20:11.598540+09:00",
+ "stop": 92100,
+ "target": 100100,
+ "peak": 95400,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "immediate",
+ "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
+ "cur_price": 95400,
+ "tranches": 1,
+ "tranche_value": 4596386.934125,
+ "last_add_price": 94100
}
},
- "realized_pnl": -25345909.14700003,
- "closed_trades": 66,
+ "realized_pnl": -26170542.01200003,
+ "closed_trades": 69,
"wins": 0,
"peak_equity": 100000000,
- "max_drawdown": 0.259921332315,
+ "max_drawdown": 0.27445155613999994,
"last_exit": {
"083450": "2026-07-06",
"278470": "2026-07-14",
@@ -201,7 +201,7 @@
"000660": "2026-07-20",
"005930": "2026-07-08",
"005935": "2026-07-16",
- "319660": "2026-07-28",
+ "319660": "2026-07-31",
"032830": "2026-07-20",
"402340": "2026-07-23",
"222800": "2026-07-16",
@@ -210,13 +210,14 @@
"353200": "2026-07-20",
"105560": "2026-07-20",
"089970": "2026-07-21",
- "034730": "2026-07-28",
+ "034730": "2026-07-31",
"252990": "2026-07-27",
"086790": "2026-07-28",
"475150": "2026-07-29",
"095610": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-16T09:00:03.113416+09:00",
- "updated_at": "2026-07-30T15:28:08.830005+09:00"
+ "updated_at": "2026-07-31T15:28:10.701242+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 e9df455..05aaff8 100644
--- a/agents/stock/workspace/state/sim/variants/v296/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v296/trades.jsonl
@@ -159,3 +159,10 @@
{"ts": "2026-07-30T09:16:13.761907+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 35, "cost": 4382657, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 152200, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 152,200"}, {"label": "추세(60일선)", "ok": true, "detail": "118,488"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T11:58:09.726796+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 80, "proceeds": 7321695, "entry_price": 103750, "pnl": -979550, "pnl_pct": -11.61, "hold_from": "2026-07-21T11:08:01.673418+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,700"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T11:58:09.775106+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 124700, "qty": 34, "cost": 4240436, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113759, "target": 157523, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "125,000 vs 110,102"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,460 / 110,102"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,460 / 110,102"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+55.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +35 · 기 +392 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+19%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.44% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "743,769 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.44% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
+{"ts": "2026-07-31T09:04:10.595530+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 32, "proceeds": 2206888, "entry_price": 92800, "pnl": -763157, "pnl_pct": -25.54, "hold_from": "2026-07-27T12:12:01.551385+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 128,781"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 95,763"}]}
+{"ts": "2026-07-31T09:06:09.936380+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 535000, "qty": 8, "cost": 4280642, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 534999, "target": 535003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "540,000 vs 527,200"}, {"label": "정배열(5>60)", "ok": true, "detail": "726,000 / 527,200"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "726,000 / 527,200"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+58%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "366,187 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.51% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 540,000)"}]}
+{"ts": "2026-07-31T09:06:09.937969+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 263, "cost": 1722908, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.756130+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 8, "proceeds": 4239716, "entry_price": 535000, "pnl": -40926, "pnl_pct": -0.75, "hold_from": "2026-07-31T09:06:09.936364+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "534,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 535,003"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 575,775"}]}
+{"ts": "2026-07-31T09:08:10.756235+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 121900, "qty": 37, "cost": 4510977, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 121899, "target": 121903, "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": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.55% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,898,747 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.55% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 123,000)"}]}
+{"ts": "2026-07-31T11:20:11.164902+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121600, "qty": 37, "proceeds": 4490427, "entry_price": 121900, "pnl": -20550, "pnl_pct": -0.25, "hold_from": "2026-07-31T09:08:10.756233+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "121,899 (현재 121,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "112,582"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +662 · 기 -449"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T11:20:11.598557+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94100, "qty": 48, "cost": 4517478, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 92100, "target": 100100, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "93,900 vs 91,832"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,080 / 91,832"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,080 / 91,832"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+25.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +82 · 기 -28 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.60% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "612,615 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.60% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 93,866 (현재 93,900)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v298/portfolio.json b/agents/stock/workspace/state/sim/variants/v298/portfolio.json
index 3763a41..0c9404b 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": 4168055.939499967,
+ "cash": 544360.4494999652,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 100200,
+ "cur_price": 101100,
"tranches": 2,
"tranche_value": 5402457.352781249,
"last_add_price": 104900
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 4939827.041843749,
"last_add_price": 130800
@@ -81,32 +81,11 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4843602.718718749,
"last_add_price": 338000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 116,
- "entry_price": 83072.41379310345,
- "entry_at": "2026-07-21T10:08:05.932367+09:00",
- "stop": 73000,
- "target": 113290,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "immediate",
- "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4883011.806843748,
- "last_add_price": 84700
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 4682248.774874998,
"last_add_price": 19370
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4504266.321593748,
"last_add_price": 125200
@@ -155,27 +134,48 @@
"sources": [
"auto"
],
- "qty": 538,
- "entry_price": 6130,
+ "qty": 1042,
+ "entry_price": 6333.147792706334,
"entry_at": "2026-07-30T09:04:08.809546+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3302234.573028907,
- "last_add_price": 6130
+ "last_add_price": 6550
+ },
+ "138040": {
+ "code": "138040",
+ "name": "메리츠금융지주",
+ "sources": [
+ "auto"
+ ],
+ "qty": 69,
+ "entry_price": 121428.98550724638,
+ "entry_at": "2026-07-31T09:08:11.129265+09:00",
+ "stop": 111200,
+ "target": 152116,
+ "peak": 123900,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "immediate",
+ "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
+ "cur_price": 123900,
+ "tranches": 2,
+ "tranche_value": 4268049.827468748,
+ "last_add_price": 122900
}
},
- "realized_pnl": -29038556.555000022,
- "closed_trades": 31,
+ "realized_pnl": -30618545.535000023,
+ "closed_trades": 32,
"wins": 1,
"peak_equity": 100289247.17,
- "max_drawdown": 0.2948997710030375,
+ "max_drawdown": 0.3190878467384953,
"last_exit": {
"278470": "2026-06-18",
"017670": "2026-06-19",
@@ -197,8 +197,9 @@
"089970": "2026-07-21",
"095610": "2026-07-29",
"252990": "2026-07-28",
- "003680": "2026-07-29"
+ "003680": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-16T09:00:03.113433+09:00",
- "updated_at": "2026-07-30T15:28:08.841587+09:00"
+ "updated_at": "2026-07-31T15:28:10.703594+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 c098ec5..4080aa6 100644
--- a/agents/stock/workspace/state/sim/variants/v298/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v298/trades.jsonl
@@ -89,3 +89,7 @@
{"ts": "2026-07-30T09:04:08.808598+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 121300, "qty": 37, "cost": 4488773, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 111000, "target": 152200, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "121,200 vs 119,680"}, {"label": "정배열(5>10)", "ok": true, "detail": "120,840 / 119,680"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "120,840 / 118,418"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+34.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -214 · 기 +182 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+36%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.18% (환산) vs 평균 0.37% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 130,700"}, {"label": "거래량 급증", "ok": false, "detail": "494,880 (환산) vs 평균 1,026,357"}, {"label": "회전율 급증", "ok": false, "detail": "0.18% (환산) vs 평균 0.37%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 119,680 (현재 121,200)"}]}
{"ts": "2026-07-30T09:04:08.809551+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 538, "cost": 3298435, "path": "pullback", "reason": "눌림목 지정가 7,457 도달", "stop": 4793, "target": 10140, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,120 vs 5,256"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,182 / 5,256"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,457 (현재 6,120)"}]}
{"ts": "2026-07-30T09:16:13.773831+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 35, "cost": 4382657, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 152200, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 152,200"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
+{"ts": "2026-07-31T09:06:09.949445+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 504, "cost": 3301695, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:10.758595+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 116, "proceeds": 8057856, "entry_price": 83072, "pnl": -1579989, "pnl_pct": -16.22, "hold_from": "2026-07-21T10:08:05.932367+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "73,000 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,290"}, {"label": "추세(10일선)", "ok": false, "detail": "79,030"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:11.129281+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120000, "qty": 35, "cost": 4200630, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 111200, "target": 146400, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "120,000 vs 116,610"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,460 / 116,610"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,460 / 110,018"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -41 · 기 +362 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+24%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.11% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "190,500 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.11% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "60"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 116,610 (현재 120,000)"}]}
+{"ts": "2026-07-31T10:28:10.807514+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 122900, "qty": 34, "cost": 4179227, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 146400, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 122,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,400"}, {"label": "추세(10일선)", "ok": true, "detail": "116,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -41 · 기 +361"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 122,575"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v299/portfolio.json b/agents/stock/workspace/state/sim/variants/v299/portfolio.json
index 1b42abe..7e454b0 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": 7883168.794999965,
+ "cash": 4460111.282499963,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 100200,
+ "cur_price": 101100,
"tranches": 2,
"tranche_value": 5666061.52171875,
"last_add_price": 99700
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 4789675.2297187485,
"last_add_price": 130800
@@ -81,32 +81,11 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4623660.577343748,
"last_add_price": 338000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 49,
- "entry_price": 89800,
- "entry_at": "2026-07-28T09:58:01.791914+09:00",
- "stop": 78664,
- "target": 123209,
- "peak": 92300,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 4476141.774093748,
- "last_add_price": 89800
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,014 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 4465513.872843748,
"last_add_price": 18950
@@ -134,20 +113,20 @@
"sources": [
"auto"
],
- "qty": 520,
- "entry_price": 6130,
+ "qty": 1007,
+ "entry_price": 6333.118172790467,
"entry_at": "2026-07-30T09:04:08.817092+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3191383.0634775604,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -165,17 +144,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 1,
"tranche_value": 4300292.172812498,
"last_add_price": 124700
+ },
+ "051900": {
+ "code": "051900",
+ "name": "LG생활건강",
+ "sources": [
+ "auto"
+ ],
+ "qty": 14,
+ "entry_price": 288000,
+ "entry_at": "2026-07-31T15:22:10.000237+09:00",
+ "stop": 258445,
+ "target": 376664,
+ "peak": 288000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "immediate",
+ "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
+ "cur_price": 287000,
+ "tranches": 1,
+ "tranche_value": 4236521.005156248,
+ "last_add_price": 288000
}
},
- "realized_pnl": -32124803.75050003,
- "closed_trades": 36,
+ "realized_pnl": -32725788.01550003,
+ "closed_trades": 37,
"wins": 1,
"peak_equity": 102093754.3635,
- "max_drawdown": 0.33274666832749256,
+ "max_drawdown": 0.346576129965988,
"last_exit": {
"036010": "2026-06-17",
"017670": "2026-06-19",
@@ -203,8 +203,9 @@
"095610": "2026-07-28",
"086790": "2026-07-28",
"252990": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-16T09:00:03.113489+09:00",
- "updated_at": "2026-07-30T15:28:08.849256+09:00"
+ "updated_at": "2026-07-31T15:28:10.705756+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 9a6c598..b1e17cf 100644
--- a/agents/stock/workspace/state/sim/variants/v299/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v299/trades.jsonl
@@ -103,3 +103,6 @@
{"ts": "2026-07-30T09:04:08.817095+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 520, "cost": 3188078, "path": "pullback", "reason": "눌림목 지정가 7,792 도달", "stop": 4793, "target": 10140, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,792 (현재 6,120)"}]}
{"ts": "2026-07-30T11:58:09.790386+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 94, "proceeds": 8602991, "entry_price": 104660, "pnl": -1236484, "pnl_pct": -12.38, "hold_from": "2026-07-15T10:30:04.263817+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 142,338"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T11:58:09.791084+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 124700, "qty": 34, "cost": 4240436, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113759, "target": 157523, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "125,000 vs 113,805"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,460 / 113,805"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,460 / 110,102"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+55.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +35 · 기 +392 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+19%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.44% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "743,769 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.44% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
+{"ts": "2026-07-31T09:06:09.956870+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 487, "cost": 3190328, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:09.957283+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 49, "proceeds": 3799876, "entry_price": 89800, "pnl": -600984, "pnl_pct": -13.47, "hold_from": "2026-07-28T09:58:01.791914+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,664 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 123,209"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 92,798"}]}
+{"ts": "2026-07-31T15:22:10.000239+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 288000, "qty": 14, "cost": 4032605, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 258445, "target": 376664, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "287,000 vs 252,500"}, {"label": "정배열(5>20)", "ok": true, "detail": "270,700 / 252,500"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "270,700 / 249,217"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+30.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +118 · 기 +171 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+6%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.58% (환산) vs 평균 0.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 314,500"}, {"label": "거래량 급증", "ok": true, "detail": "236,959 (환산) vs 평균 78,860"}, {"label": "회전율 급증", "ok": true, "detail": "1.58% (환산) vs 평균 0.53%"}, {"label": "RSI", "ok": true, "detail": "71"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 277,223 (현재 287,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v300/portfolio.json b/agents/stock/workspace/state/sim/variants/v300/portfolio.json
index fb994a5..d3f4afd 100644
--- a/agents/stock/workspace/state/sim/variants/v300/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v300/portfolio.json
@@ -1,28 +1,7 @@
{
- "cash": 28925051.458000004,
+ "cash": 32841649.03800001,
"initial": 100000000,
"positions": {
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 97,
- "entry_price": 89884.53608247422,
- "entry_at": "2026-07-23T09:46:06.439525+09:00",
- "stop": 81607,
- "target": 114717,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4400054.8290937515,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -39,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 4306811.880937502,
"last_add_price": 18950
@@ -55,12 +34,12 @@
"entry_at": "2026-07-30T09:00:24.268702+09:00",
"stop": 5014,
"target": 9024,
- "peak": 6330,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,467 도달",
- "cur_price": 5800,
+ "cur_price": 6130,
"tranches": 2,
"tranche_value": 3583967.506937563,
"last_add_price": 6250
@@ -81,17 +60,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 3911926.8573750006,
"last_add_price": 127700
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 20,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.212064+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 2602335.520457338,
+ "last_add_price": 130000
}
},
- "realized_pnl": -38921206.20400004,
- "closed_trades": 59,
+ "realized_pnl": -41124326.44400004,
+ "closed_trades": 62,
"wins": 1,
"peak_equity": 100401992.91950001,
- "max_drawdown": 0.3998370977923405,
+ "max_drawdown": 0.4161237508004244,
"last_exit": {
"204320": "2026-06-19",
"003490": "2026-07-09",
@@ -110,7 +110,7 @@
"055550": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-09",
- "319660": "2026-07-29",
+ "319660": "2026-07-31",
"105560": "2026-07-20",
"095610": "2026-07-30",
"003680": "2026-07-29",
@@ -118,8 +118,9 @@
"086790": "2026-07-28",
"475150": "2026-07-29",
"138040": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-16T10:45:02.136776+09:00",
- "updated_at": "2026-07-30T15:28:08.868723+09:00"
+ "updated_at": "2026-07-31T15:28:10.713525+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 8e4a7ea..59fa629 100644
--- a/agents/stock/workspace/state/sim/variants/v300/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v300/trades.jsonl
@@ -148,3 +148,9 @@
{"ts": "2026-07-30T11:18:08.669677+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 345000, "qty": 10, "proceeds": 3443272, "entry_price": 380000, "pnl": -357298, "pnl_pct": -9.21, "hold_from": "2026-07-30T09:06:11.822288+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "345,076 (현재 345,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 484,773"}, {"label": "추세(40일선)", "ok": true, "detail": "306,375"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -267 · 기 +532"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 391,641"}]}
{"ts": "2026-07-30T11:58:09.805890+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 40, "proceeds": 3660847, "entry_price": 94400, "pnl": -115719, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.185578+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(40일선)", "ok": false, "detail": "92,510"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:09.195441+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 33, "proceeds": 3316620, "entry_price": 115500, "pnl": -495452, "pnl_pct": -12.81, "hold_from": "2026-07-30T09:08:13.095317+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 159,900"}, {"label": "추세(40일선)", "ok": false, "detail": "114,520"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,807"}]}
+{"ts": "2026-07-31T09:00:21.919585+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 39, "cost": 3674351, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(40일선 위)", "ok": true, "detail": "94,300 vs 92,572"}, {"label": "정배열(5>40)", "ok": true, "detail": "106,160 / 92,572"}, {"label": "추세 기울기(40일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.844284+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 39, "proceeds": 3561541, "entry_price": 94200, "pnl": -112810, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:21.919580+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(40일선)", "ok": false, "detail": "92,500"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.606972+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 97, "proceeds": 6689630, "entry_price": 89885, "pnl": -2030478, "pnl_pct": -23.12, "hold_from": "2026-07-23T09:46:06.439525+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,607 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,717"}, {"label": "추세(40일선)", "ok": true, "detail": "74,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:14:10.923105+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 127000, "qty": 29, "cost": 3683552, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 126999, "target": 127003, "signals": [{"label": "추세(40일선 위)", "ok": true, "detail": "126,750 vs 126,701"}, {"label": "정배열(5>40)", "ok": true, "detail": "162,990 / 126,701"}, {"label": "추세 기울기(40일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "162,990 / 112,671"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "7.49% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "2,168,747 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "7.49% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 126,750)"}]}
+{"ts": "2026-07-31T09:18:10.927683+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 125200, "qty": 29, "proceeds": 3623720, "entry_price": 127000, "pnl": -59833, "pnl_pct": -1.42, "hold_from": "2026-07-31T09:14:10.923093+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "126,999 (현재 125,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(40일선)", "ok": false, "detail": "126,665"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T12:36:11.212065+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 20, "cost": 2600390, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(40일선 위)", "ok": true, "detail": "130,000 vs 115,252"}, {"label": "정배열(5>40)", "ok": true, "detail": "166,640 / 115,252"}, {"label": "추세 기울기(40일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v301/portfolio.json b/agents/stock/workspace/state/sim/variants/v301/portfolio.json
index 64ff4d7..758377a 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": 23633189.505500004,
+ "cash": 27428946.813,
"initial": 100000000,
"positions": {
"010950": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 4497110.087925,
"last_add_price": 130800
@@ -60,32 +60,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4537990.22125,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 96,
- "entry_price": 89868.75,
- "entry_at": "2026-07-23T09:46:06.441344+09:00",
- "stop": 78832,
- "target": 122978,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4354026.517550001,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 4438631.677600001,
"last_add_price": 18950
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4163511.5199,
"last_add_price": 126400
@@ -134,27 +113,27 @@
"sources": [
"auto"
],
- "qty": 595,
- "entry_price": 6130,
+ "qty": 1152,
+ "entry_price": 6333.072916666667,
"entry_at": "2026-07-30T09:04:08.840088+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3652700.7210219903,
- "last_add_price": 6130
+ "last_add_price": 6550
}
},
- "realized_pnl": -20685419.53850001,
- "closed_trades": 21,
+ "realized_pnl": -21869459.08850001,
+ "closed_trades": 22,
"wins": 0,
"peak_equity": 100162411.55350003,
- "max_drawdown": 0.21564794507730922,
+ "max_drawdown": 0.23052285166044603,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -168,8 +147,9 @@
"024060": "2026-07-27",
"003680": "2026-07-29",
"138040": "2026-07-28",
- "252990": "2026-07-29"
+ "252990": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-16T14:30:00.114884+09:00",
- "updated_at": "2026-07-30T15:28:08.872523+09:00"
+ "updated_at": "2026-07-31T15:28:10.715448+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 4ecbc0e..79fe262 100644
--- a/agents/stock/workspace/state/sim/variants/v301/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v301/trades.jsonl
@@ -66,3 +66,5 @@
{"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": "추가 종료"}]}
{"ts": "2026-07-30T09:04:08.840090+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 595, "cost": 3647897, "path": "pullback", "reason": "눌림목 지정가 7,457 도달", "stop": 4793, "target": 10140, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,120 vs 5,256"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,182 / 5,256"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,457 (현재 6,120)"}]}
{"ts": "2026-07-30T09:50:08.620673+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 32, "cost": 4045407, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 154552, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 154,552"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:09.979167+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 557, "cost": 3648897, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:09.979659+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 96, "proceeds": 7444655, "entry_price": 89869, "pnl": -1184040, "pnl_pct": -13.54, "hold_from": "2026-07-23T09:46:06.441344+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,832 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 122,978"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"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 f0041df..0eaf019 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": 22085889.72600002,
+ "cash": 25722125.69100002,
"initial": 100000000,
"positions": {
"010950": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 4360729.7882,
"last_add_price": 130800
@@ -60,32 +60,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4542977.951950001,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 92,
- "entry_price": 89867.39130434782,
- "entry_at": "2026-07-23T09:46:06.443281+09:00",
- "stop": 78831,
- "target": 122977,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4183455.6171500003,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 4191774.1235750006,
"last_add_price": 18950
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 3948679.1633750005,
"last_add_price": 126400
@@ -134,27 +113,27 @@
"sources": [
"auto"
],
- "qty": 571,
- "entry_price": 6130,
+ "qty": 1105,
+ "entry_price": 6332.968325791855,
"entry_at": "2026-07-30T09:04:08.844002+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3503317.5815307787,
- "last_add_price": 6130
+ "last_add_price": 6550
}
},
- "realized_pnl": -23927243.458500024,
- "closed_trades": 29,
+ "realized_pnl": -25061823.008500025,
+ "closed_trades": 30,
"wins": 1,
"peak_equity": 100864171.466,
- "max_drawdown": 0.2563935024957536,
+ "max_drawdown": 0.2675460015462136,
"last_exit": {
"030000": "2026-07-24",
"003490": "2026-07-07",
@@ -171,8 +150,9 @@
"095610": "2026-07-28",
"003680": "2026-07-29",
"138040": "2026-07-28",
- "086790": "2026-07-28"
+ "086790": "2026-07-28",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-16T14:30:00.114893+09:00",
- "updated_at": "2026-07-30T15:28:08.876161+09:00"
+ "updated_at": "2026-07-31T15:28:10.717308+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 ef73010..00c3b1d 100644
--- a/agents/stock/workspace/state/sim/variants/v302/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v302/trades.jsonl
@@ -84,3 +84,5 @@
{"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": "추가 종료"}]}
{"ts": "2026-07-30T09:04:08.844004+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 571, "cost": 3500755, "path": "pullback", "reason": "눌림목 지정가 7,457 도달", "stop": 4793, "target": 10140, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,457 (현재 6,120)"}]}
{"ts": "2026-07-30T09:50:08.624397+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 31, "cost": 3918988, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 154552, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 154,552"}, {"label": "추세(20일선)", "ok": true, "detail": "113,865"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:09.983191+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 534, "cost": 3498225, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:09.983644+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 92, "proceeds": 7134461, "entry_price": 89867, "pnl": -1134580, "pnl_pct": -13.54, "hold_from": "2026-07-23T09:46:06.443281+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,831 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 122,977"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"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 d1eb76f..3425be8 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": 47896822.34600002,
+ "cash": 49388173.091000035,
"initial": 100000000,
"positions": {
"010950": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 3561275.575471075,
"last_add_price": 130800
@@ -39,32 +39,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3616873.7658032966,
"last_add_price": 349500
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 77,
- "entry_price": 91280.51948051948,
- "entry_at": "2026-07-23T11:14:02.520362+09:00",
- "stop": 80058,
- "target": 124947,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3542431.9465922415,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4093622.4514750005,
"last_add_price": 126400
@@ -92,27 +71,48 @@
"sources": [
"auto"
],
- "qty": 297,
- "entry_price": 6130,
+ "qty": 575,
+ "entry_price": 6333.060869565217,
"entry_at": "2026-07-30T09:04:08.847875+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1824297.0321790394,
- "last_add_price": 6130
+ "last_add_price": 6550
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 13,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.219851+09:00",
+ "stop": 100700,
+ "target": 217900,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1695866.1189129704,
+ "last_add_price": 130000
}
},
- "realized_pnl": -21189931.362500038,
- "closed_trades": 92,
+ "realized_pnl": -23216808.27250004,
+ "closed_trades": 98,
"wins": 2,
"peak_equity": 100085511.5725,
- "max_drawdown": 0.21819861579745808,
+ "max_drawdown": 0.2419355229448935,
"last_exit": {
"017670": "2026-06-19",
"204320": "2026-06-19",
@@ -127,13 +127,13 @@
"240810": "2026-07-24",
"009150": "2026-07-27",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"402340": "2026-07-23",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"214450": "2026-07-15",
"055550": "2026-07-20",
"105560": "2026-07-20",
@@ -142,8 +142,9 @@
"095610": "2026-07-30",
"003680": "2026-07-29",
"138040": "2026-07-28",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-16T14:30:00.114901+09:00",
- "updated_at": "2026-07-30T15:28:08.879646+09:00"
+ "updated_at": "2026-07-31T15:28:10.719205+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 bc9e804..01f4c4e 100644
--- a/agents/stock/workspace/state/sim/variants/v303/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v303/trades.jsonl
@@ -208,3 +208,16 @@
{"ts": "2026-07-30T11:14:10.192886+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 42, "cost": 3965395, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 101300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:09.819708+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 42, "proceeds": 3843890, "entry_price": 94400, "pnl": -121505, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.192885+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,300"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:09.212259+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 36, "proceeds": 3618131, "entry_price": 122750, "pnl": -801532, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:03.634820+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:22.232671+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 7, "cost": 3731560, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:22.234304+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 30, "cost": 3870581, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:22.235062+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 41, "cost": 3862779, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 100500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.851287+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 30, "proceeds": 3781611, "entry_price": 129000, "pnl": -88969, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:22.234297+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,003"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.851408+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 41, "proceeds": 3744185, "entry_price": 94200, "pnl": -118595, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:22.235056+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:04:10.613742+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 77, "proceeds": 5310325, "entry_price": 91281, "pnl": -1719330, "pnl_pct": -24.3, "hold_from": "2026-07-23T11:14:02.520362+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,058 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,947"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.987153+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 278, "cost": 1821173, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:11.170865+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 7, "proceeds": 3709752, "entry_price": 533000, "pnl": -21808, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:22.232663+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.152237+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 10, "cost": 3505526, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350503, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:13.014496+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 10, "proceeds": 3483194, "entry_price": 350500, "pnl": -22331, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.152236+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,503"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.814358+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 12, "cost": 3780567, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.681775+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 12, "proceeds": 3724723, "entry_price": 315000, "pnl": -55844, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.814357+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,003"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.219853+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 13, "cost": 1690254, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 217900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v304/portfolio.json b/agents/stock/workspace/state/sim/variants/v304/portfolio.json
index 973ad7c..cd7ccde 100644
--- a/agents/stock/workspace/state/sim/variants/v304/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v304/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 59281315.866,
+ "cash": 59522056.41349998,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 1541443.3087531894,
"last_add_price": 358500
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 32,
- "entry_price": 91200.0,
- "entry_at": "2026-07-23T11:04:03.463379+09:00",
- "stop": 77172,
- "target": 112242,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 1493175.7536818886,
- "last_add_price": 92800
- },
"003490": {
"code": "003490",
"name": "대한항공",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 25,331 도달",
- "cur_price": 24600,
+ "cur_price": 25850,
"tranches": 2,
"tranche_value": 3374000.0988983824,
"last_add_price": 26750
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 3651482.705770833,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 2548075.876504235,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 129,
- "entry_price": 6130,
+ "qty": 250,
+ "entry_price": 6333.28,
"entry_at": "2026-07-30T09:04:08.851553+09:00",
- "stop": 4459,
- "target": 8636,
- "peak": 6330,
+ "stop": 4716,
+ "target": 8759,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 794256.6057127393,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,17 +123,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 1528849.7285459202,
"last_add_price": 129300
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 7,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T11:40:11.663765+09:00",
+ "stop": 100700,
+ "target": 173950,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 155,086 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 946615.6637162968,
+ "last_add_price": 130000
}
},
- "realized_pnl": -13817829.611000042,
- "closed_trades": 137,
+ "realized_pnl": -14793121.441000044,
+ "closed_trades": 143,
"wins": 2,
"peak_equity": 100036582.48,
- "max_drawdown": 0.14231910228287126,
+ "max_drawdown": 0.15270831167742246,
"last_exit": {
"017670": "2026-06-23",
"178320": "2026-06-23",
@@ -174,11 +174,11 @@
"084370": "2026-07-15",
"240810": "2026-07-24",
"402340": "2026-07-23",
- "034730": "2026-07-28",
+ "034730": "2026-07-31",
"004170": "2026-07-23",
- "319660": "2026-07-30",
- "032830": "2026-07-27",
- "028260": "2026-07-23",
+ "319660": "2026-07-31",
+ "032830": "2026-07-31",
+ "028260": "2026-07-31",
"003490": "2026-07-23",
"214450": "2026-07-15",
"095610": "2026-07-30",
@@ -188,8 +188,9 @@
"252990": "2026-07-29",
"055550": "2026-07-29",
"003680": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885275+09:00",
- "updated_at": "2026-07-30T15:28:08.882785+09:00"
+ "updated_at": "2026-07-31T15:28:10.721045+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 f2d740b..6716682 100644
--- a/agents/stock/workspace/state/sim/variants/v304/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v304/trades.jsonl
@@ -302,3 +302,16 @@
{"ts": "2026-07-30T09:16:13.817179+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 20, "cost": 2504376, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 136750, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 136,750"}, {"label": "추세(60일선)", "ok": true, "detail": "118,488"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T11:58:09.822703+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 67, "proceeds": 6131919, "entry_price": 100570, "pnl": -607291, "pnl_pct": -8.82, "hold_from": "2026-07-22T15:18:03.039315+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,275"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:09.215536+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 14, "proceeds": 1407051, "entry_price": 115500, "pnl": -210192, "pnl_pct": -12.81, "hold_from": "2026-07-30T09:08:13.122903+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 137,700"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,807"}]}
+{"ts": "2026-07-31T09:00:22.341810+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 6, "cost": 3198480, "path": "pullback", "reason": "눌림목 지정가 733,450 도달", "stop": 532999, "target": 533002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 733,450 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:22.343445+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 27, "cost": 3483522, "path": "pullback", "reason": "눌림목 지정가 165,905 도달", "stop": 128999, "target": 129002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 165,905 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:22.344138+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 37, "cost": 3485923, "path": "pullback", "reason": "눌림목 지정가 98,527 도달", "stop": 92100, "target": 97350, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 98,527 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.853275+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 27, "proceeds": 3403450, "entry_price": 129000, "pnl": -80072, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:22.343439+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,002"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.853398+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 37, "proceeds": 3378898, "entry_price": 94200, "pnl": -107025, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:22.344132+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 97,350"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:06:09.990374+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 121, "cost": 792669, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4459, "target": 8636, "signals": [{"label": "손절선", "ok": true, "detail": "4,459 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,636"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:11.174528+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 6, "proceeds": 3179787, "entry_price": 533000, "pnl": -18692, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:22.341803+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:11.174821+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 32, "proceeds": 2222857, "entry_price": 91200, "pnl": -695981, "pnl_pct": -23.68, "hold_from": "2026-07-23T11:04:03.463379+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "77,172 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 112,242"}, {"label": "추세(60일선)", "ok": false, "detail": "74,747"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.154237+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 10, "cost": 3505526, "path": "pullback", "reason": "눌림목 지정가 382,990 도달", "stop": 350499, "target": 350502, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 382,990 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:13.016439+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 10, "proceeds": 3483194, "entry_price": 350500, "pnl": -22331, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.154235+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,502"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.816324+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 11, "cost": 3465520, "path": "pullback", "reason": "눌림목 지정가 407,562 도달", "stop": 314999, "target": 315002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 407,562 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.683704+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 11, "proceeds": 3414329, "entry_price": 315000, "pnl": -51191, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.816323+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,002"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T11:40:11.663767+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 7, "cost": 910137, "path": "pullback", "reason": "눌림목 지정가 155,086 도달", "stop": 100700, "target": 173950, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.9%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +381 · 기 -263 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "12.19% (환산) vs 평균 3.06% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "2,360,242 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "12.19% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,086 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v305/portfolio.json b/agents/stock/workspace/state/sim/variants/v305/portfolio.json
index 87f8adf..73dc558 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": 44582478.28549998,
+ "cash": 45783278.312999986,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 2518293.2056913,
"last_add_price": 349500
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 53,
- "entry_price": 90620.75471698113,
- "entry_at": "2026-07-23T11:40:05.078927+09:00",
- "stop": 78324,
- "target": 115215,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 2431814.0917408336,
- "last_add_price": 92200
- },
"003490": {
"code": "003490",
"name": "대한항공",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 25,331 도달",
- "cur_price": 24600,
+ "cur_price": 25850,
"tranches": 2,
"tranche_value": 4377506.593399999,
"last_add_price": 26750
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4205999.225949999,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 2510568.839116163,
"last_add_price": 131400
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 3659057.0257337983,
"last_add_price": 125200
@@ -134,27 +113,48 @@
"sources": [
"auto"
],
- "qty": 211,
- "entry_price": 6130,
+ "qty": 408,
+ "entry_price": 6332.794117647059,
"entry_at": "2026-07-30T09:04:08.855001+09:00",
- "stop": 4660,
- "target": 9071,
- "peak": 6330,
+ "stop": 4909,
+ "target": 9179,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1296579.7110485965,
- "last_add_price": 6130
+ "last_add_price": 6550
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 10,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T11:40:11.666106+09:00",
+ "stop": 100700,
+ "target": 188600,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 155,086 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1353927.9817436007,
+ "last_add_price": 130000
}
},
- "realized_pnl": -17789198.312500052,
- "closed_trades": 127,
+ "realized_pnl": -18801280.167500056,
+ "closed_trades": 133,
"wins": 2,
"peak_equity": 100139236.48850003,
- "max_drawdown": 0.18396370078291563,
+ "max_drawdown": 0.19573051570800562,
"last_exit": {
"017670": "2026-06-23",
"178320": "2026-06-23",
@@ -172,13 +172,13 @@
"093370": "2026-07-20",
"240810": "2026-07-24",
"222800": "2026-07-21",
- "034730": "2026-07-28",
+ "034730": "2026-07-31",
"402340": "2026-07-23",
"084370": "2026-07-09",
- "319660": "2026-07-30",
- "032830": "2026-07-24",
+ "319660": "2026-07-31",
+ "032830": "2026-07-31",
"004170": "2026-07-23",
- "028260": "2026-07-22",
+ "028260": "2026-07-31",
"003490": "2026-07-23",
"214450": "2026-07-20",
"095610": "2026-07-30",
@@ -187,8 +187,9 @@
"252990": "2026-07-28",
"010950": "2026-07-28",
"003680": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885286+09:00",
- "updated_at": "2026-07-30T15:28:08.885682+09:00"
+ "updated_at": "2026-07-31T15:28:10.722833+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 e2b5d18..fa2686f 100644
--- a/agents/stock/workspace/state/sim/variants/v305/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v305/trades.jsonl
@@ -284,3 +284,16 @@
{"ts": "2026-07-30T09:16:13.820207+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 29, "cost": 3631345, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 141900, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 141,900"}, {"label": "추세(60일선)", "ok": true, "detail": "118,488"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T11:58:09.825642+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 85, "proceeds": 7779301, "entry_price": 100576, "pnl": -770982, "pnl_pct": -8.83, "hold_from": "2026-07-22T15:18:03.041548+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 117,529"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:08:09.218551+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 21, "proceeds": 2110576, "entry_price": 115500, "pnl": -315287, "pnl_pct": -12.81, "hold_from": "2026-07-30T09:08:13.126838+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 145,100"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,807"}]}
+{"ts": "2026-07-31T09:00:22.448390+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 7, "cost": 3731560, "path": "pullback", "reason": "눌림목 지정가 733,450 도달", "stop": 532999, "target": 533002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 733,450 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:22.449100+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 31, "cost": 3999600, "path": "pullback", "reason": "눌림목 지정가 165,905 도달", "stop": 128999, "target": 129002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 165,905 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:22.449748+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 43, "cost": 4051208, "path": "pullback", "reason": "눌림목 지정가 98,527 도달", "stop": 92100, "target": 98400, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 98,527 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:14.855229+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 31, "proceeds": 3907665, "entry_price": 129000, "pnl": -91935, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:22.449094+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,002"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:14.855344+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 43, "proceeds": 3926828, "entry_price": 94200, "pnl": -124380, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:22.449743+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 98,400"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:06:09.993554+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 197, "cost": 1290544, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4660, "target": 9071, "signals": [{"label": "손절선", "ok": true, "detail": "4,660 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,071"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:09.993706+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 53, "proceeds": 4110070, "entry_price": 90621, "pnl": -693551, "pnl_pct": -14.26, "hold_from": "2026-07-23T11:40:05.078927+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,324 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 115,215"}, {"label": "추세(60일선)", "ok": true, "detail": "74,888"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:11.177818+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 7, "proceeds": 3709752, "entry_price": 533000, "pnl": -21808, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:22.448383+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.156172+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 11, "cost": 3856078, "path": "pullback", "reason": "눌림목 지정가 382,990 도달", "stop": 350499, "target": 350502, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 382,990 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:13.018366+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 11, "proceeds": 3831514, "entry_price": 350500, "pnl": -24564, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.156170+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,502"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.818216+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 12, "cost": 3780567, "path": "pullback", "reason": "눌림목 지정가 407,562 도달", "stop": 314999, "target": 315002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 407,562 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.685621+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 12, "proceeds": 3724723, "entry_price": 315000, "pnl": -55844, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.818214+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,002"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T11:40:11.666107+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 10, "cost": 1300195, "path": "pullback", "reason": "눌림목 지정가 155,086 도달", "stop": 100700, "target": 188600, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.9%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +381 · 기 -263 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "12.19% (환산) vs 평균 3.06% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "2,360,242 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "12.19% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,086 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v306/portfolio.json b/agents/stock/workspace/state/sim/variants/v306/portfolio.json
index 735561f..9e5d751 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": 30491422.933999985,
+ "cash": 34652458.49899998,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4001941.6430547875,
"last_add_price": 353000
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5568373.021031249,
"last_add_price": 18950
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5455736.499937499,
"last_add_price": 120500
@@ -102,59 +102,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3831166.3013964198,
"last_add_price": 131400
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 79,
- "entry_price": 89977.21518987342,
- "entry_at": "2026-07-29T10:10:03.570762+09:00",
- "stop": 78812,
- "target": 112307,
- "peak": 92300,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3613055.2890175097,
- "last_add_price": 91800
- },
"003680": {
"code": "003680",
"name": "한성기업",
"sources": [
"auto"
],
- "qty": 320,
- "entry_price": 6130,
+ "qty": 620,
+ "entry_price": 6333.225806451613,
"entry_at": "2026-07-30T09:04:08.858054+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1966668.8608710542,
- "last_add_price": 6130
+ "last_add_price": 6550
}
},
- "realized_pnl": -15436387.454000019,
- "closed_trades": 28,
+ "realized_pnl": -16419323.369000018,
+ "closed_trades": 29,
"wins": 1,
"peak_equity": 102728958.65750001,
- "max_drawdown": 0.1762834546379187,
+ "max_drawdown": 0.19124198682866445,
"last_exit": {
"403870": "2026-07-07",
"009150": "2026-07-06",
@@ -173,8 +152,9 @@
"086790": "2026-07-28",
"010950": "2026-07-28",
"003680": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885297+09:00",
- "updated_at": "2026-07-30T15:28:08.888478+09:00"
+ "updated_at": "2026-07-31T15:28:10.724607+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 c0afee7..c072103 100644
--- a/agents/stock/workspace/state/sim/variants/v306/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v306/trades.jsonl
@@ -83,3 +83,5 @@
{"ts": "2026-07-30T09:04:08.858056+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 320, "cost": 1961894, "path": "pullback", "reason": "눌림목 지정가 7,792 도달", "stop": 4793, "target": 8804, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,792 (현재 6,120)"}]}
{"ts": "2026-07-30T09:16:13.823328+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 91800, "qty": 39, "cost": 3580737, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 77406, "target": 109787, "signals": [{"label": "손절선", "ok": true, "detail": "77,406 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 109,787"}, {"label": "추세(20일선)", "ok": true, "detail": "75,250"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -49 · 기 +276"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 90,991"}]}
{"ts": "2026-07-30T11:58:09.828491+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 112, "proceeds": 10250373, "entry_price": 101115, "pnl": -1076226, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:02.223675+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,146"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:09.996630+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 300, "cost": 1965295, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:09.996769+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 79, "proceeds": 6126330, "entry_price": 89977, "pnl": -982936, "pnl_pct": -13.64, "hold_from": "2026-07-29T10:10:03.570762+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,812 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 112,307"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"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 c81e05d..f094f89 100644
--- a/agents/stock/workspace/state/sim/variants/v307/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v307/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 67892783.25849992,
+ "cash": 68687318.2109999,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 2312659.7890401366,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 49,
- "entry_price": 91167.3469387755,
- "entry_at": "2026-07-23T10:44:03.393685+09:00",
- "stop": 79945,
- "target": 113612,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 2272740.2217699476,
- "last_add_price": 92800
- },
"475150": {
"code": "475150",
"name": "SK이터닉스",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 66,722 도달",
- "cur_price": 41950,
+ "cur_price": 45400,
"tranches": 1,
"tranche_value": 963230.6420236498,
"last_add_price": 57200
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 196,
- "entry_price": 6130,
+ "qty": 379,
+ "entry_price": 6332.796833773087,
"entry_at": "2026-07-30T09:04:09.441073+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1203208.5458201522,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 2306480.448467309,
"last_add_price": 129300
@@ -123,17 +102,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 3136055.5079668667,
"last_add_price": 127700
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 8,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.810344+09:00",
+ "stop": 100700,
+ "target": 188600,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1132336.3051976096,
+ "last_add_price": 130000
}
},
- "realized_pnl": -12952063.899500053,
- "closed_trades": 86,
+ "realized_pnl": -14386413.229500057,
+ "closed_trades": 92,
"wins": 1,
"peak_equity": 100266527.41749999,
- "max_drawdown": 0.1391645299622164,
+ "max_drawdown": 0.1540124858139334,
"last_exit": {
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -144,14 +144,14 @@
"009150": "2026-07-27",
"214450": "2026-07-06",
"093370": "2026-07-20",
- "034730": "2026-07-28",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "034730": "2026-07-31",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"055550": "2026-07-20",
"105560": "2026-07-20",
"089970": "2026-07-27",
@@ -160,8 +160,9 @@
"003680": "2026-07-29",
"010950": "2026-07-29",
"138040": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885305+09:00",
- "updated_at": "2026-07-30T15:28:09.474900+09:00"
+ "updated_at": "2026-07-31T15:28:11.309254+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 ed26313..d0e51fb 100644
--- a/agents/stock/workspace/state/sim/variants/v307/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v307/trades.jsonl
@@ -197,3 +197,16 @@
{"ts": "2026-07-30T11:14:10.785323+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 57, "cost": 5381607, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 99000, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": true, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:10.416158+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 57, "proceeds": 5216708, "entry_price": 94400, "pnl": -164900, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.785313+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 99,000"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:09.815044+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 20, "proceeds": 2010073, "entry_price": 125000, "pnl": -490302, "pnl_pct": -19.44, "hold_from": "2026-07-28T09:00:25.685634+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 173,600"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:23.552891+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 10, "cost": 5330800, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:23.554754+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 41, "cost": 5289793, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:02:15.439871+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 41, "proceeds": 5168202, "entry_price": 129000, "pnl": -121591, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:23.554747+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,002"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:04:11.245740+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 92900, "qty": 57, "cost": 5296094, "path": "pullback", "reason": "눌림목 지정가 94,305 도달", "stop": 92100, "target": 94500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "92,400 vs 91,807"}, {"label": "정배열(5>60)", "ok": true, "detail": "105,780 / 91,807"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "105,780 / 91,807"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.2%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.27% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "297,953 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "1.27% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,305 (현재 92,400)"}]}
+{"ts": "2026-07-31T09:04:11.247071+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 49, "proceeds": 3379297, "entry_price": 91167, "pnl": -1088573, "pnl_pct": -24.21, "hold_from": "2026-07-23T10:44:03.393685+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,945 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,612"}, {"label": "추세(60일선)", "ok": true, "detail": "74,920"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:11.208372+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91600, "qty": 57, "proceeds": 5211019, "entry_price": 92900, "pnl": -85076, "pnl_pct": -1.4, "hold_from": "2026-07-31T09:04:11.245723+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 94,500"}, {"label": "추세(60일선)", "ok": false, "detail": "91,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 96,965"}]}
+{"ts": "2026-07-31T09:06:11.209520+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 183, "cost": 1198830, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:11.777754+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 10, "proceeds": 5299646, "entry_price": 533000, "pnl": -31154, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:23.552885+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.159735+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 15, "cost": 5258289, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350502, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:13.021956+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 15, "proceeds": 5224792, "entry_price": 350500, "pnl": -33497, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.159734+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,502"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.821719+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 16, "cost": 5040756, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.689202+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 16, "proceeds": 4966297, "entry_price": 315000, "pnl": -74459, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.821718+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,002"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.810354+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 8, "cost": 1040156, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 188600, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v308/portfolio.json b/agents/stock/workspace/state/sim/variants/v308/portfolio.json
index 2bf9cc4..3a08f5f 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": 37896681.91299993,
+ "cash": 38657602.32799993,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4091526.4858662924,
"last_add_price": 346500
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5436948.876062496,
"last_add_price": 18950
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5277899.060343745,
"last_add_price": 120500
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 348,
- "entry_price": 6130,
+ "qty": 674,
+ "entry_price": 6333.145400593472,
"entry_at": "2026-07-30T09:04:09.454453+09:00",
- "stop": 4927,
- "target": 8536,
- "peak": 6330,
+ "stop": 5169,
+ "target": 8662,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2136566.0520882774,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4119469.484194937,
"last_add_price": 129300
@@ -127,34 +127,13 @@
"tranches": 1,
"tranche_value": 5291635.3098124955,
"last_add_price": 6280
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 42,
- "entry_price": 92100,
- "entry_at": "2026-07-30T09:18:12.167911+09:00",
- "stop": 82051,
- "target": 112197,
- "peak": 92300,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 3883944.7920864224,
- "last_add_price": 92100
}
},
- "realized_pnl": -17753756.650500022,
- "closed_trades": 41,
+ "realized_pnl": -18725996.17050002,
+ "closed_trades": 42,
"wins": 5,
"peak_equity": 103214817.49949999,
- "max_drawdown": 0.20427450338322017,
+ "max_drawdown": 0.2198900867272281,
"last_exit": {
"403870": "2026-07-07",
"000660": "2026-06-29",
@@ -177,9 +156,9 @@
"252990": "2026-07-28",
"003680": "2026-07-29",
"090850": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"161890": "2026-07-30"
},
"created_at": "2026-06-22T09:00:04.885314+09:00",
- "updated_at": "2026-07-30T15:28:09.484824+09:00"
+ "updated_at": "2026-07-31T15:28:11.320513+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 c5e7486..d27a551 100644
--- a/agents/stock/workspace/state/sim/variants/v308/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v308/trades.jsonl
@@ -114,3 +114,5 @@
{"ts": "2026-07-30T09:16:13.859578+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6280, "qty": 842, "cost": 5288553, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5824, "target": 7192, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,270 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,720 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,720 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.33% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "71,467 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.33% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:18:12.167927+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 92100, "qty": 42, "cost": 3868780, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 82051, "target": 112197, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "92,200 vs 75,270"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,800 / 75,270"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,800 / 75,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+68.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +276 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+12%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.57% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "531,713 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.57% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T11:58:10.427181+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 110, "proceeds": 10067330, "entry_price": 101115, "pnl": -1056938, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:02.232297+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,144"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:04:11.258149+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 42, "proceeds": 2896541, "entry_price": 92100, "pnl": -972240, "pnl_pct": -24.97, "hold_from": "2026-07-30T09:18:12.167911+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "82,051 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 112,197"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 95,063"}]}
+{"ts": "2026-07-31T09:06:11.220762+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 326, "cost": 2135620, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4927, "target": 8536, "signals": [{"label": "손절선", "ok": true, "detail": "4,927 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,536"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v309/portfolio.json b/agents/stock/workspace/state/sim/variants/v309/portfolio.json
index 31e5b3a..d5c8c1d 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": 21618057.322499946,
+ "cash": 16128028.647499947,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 100200,
+ "cur_price": 101100,
"tranches": 2,
"tranche_value": 6938801.472958329,
"last_add_price": 102800
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 5861557.685734485,
"last_add_price": 132000
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,161 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 6690702.074333329,
"last_add_price": 19320
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 123,992 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 6165364.773487983,
"last_add_price": 125200
@@ -92,48 +92,48 @@
"sources": [
"auto"
],
- "qty": 504,
- "entry_price": 6130,
+ "qty": 976,
+ "entry_price": 6333.11475409836,
"entry_at": "2026-07-30T09:04:09.464575+09:00",
- "stop": 5127,
- "target": 8636,
- "peak": 6330,
+ "stop": 5363,
+ "target": 8759,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,925 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3093906.011390296,
- "last_add_price": 6130
+ "last_add_price": 6550
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "138040": {
+ "code": "138040",
+ "name": "메리츠금융지주",
"sources": [
"auto"
],
- "qty": 60,
- "entry_price": 90000,
- "entry_at": "2026-07-30T09:56:14.521786+09:00",
- "stop": 81605,
- "target": 110988,
- "peak": 90700,
+ "qty": 53,
+ "entry_price": 123300,
+ "entry_at": "2026-07-31T09:04:11.611267+09:00",
+ "stop": 115898,
+ "target": 141805,
+ "peak": 123900,
"trailing_on": false,
"scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
+ "entry_path": "immediate",
+ "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
+ "cur_price": 123900,
"tranches": 1,
- "tranche_value": 5478353.155914975,
- "last_add_price": 90000
+ "tranche_value": 6612916.885208328,
+ "last_add_price": 123300
}
},
- "realized_pnl": -18933336.72400002,
- "closed_trades": 31,
+ "realized_pnl": -20196231.424000025,
+ "closed_trades": 32,
"wins": 2,
"peak_equity": 100204129.27299997,
- "max_drawdown": 0.20119516355033384,
+ "max_drawdown": 0.21854748685891542,
"last_exit": {
"005930": "2026-06-23",
"005935": "2026-07-02",
@@ -156,8 +156,8 @@
"010950": "2026-07-28",
"090850": "2026-07-29",
"003680": "2026-07-29",
- "078930": "2026-07-29"
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885323+09:00",
- "updated_at": "2026-07-30T15:28:09.492586+09:00"
+ "updated_at": "2026-07-31T15:28:11.327670+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 2d97009..5c27185 100644
--- a/agents/stock/workspace/state/sim/variants/v309/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v309/trades.jsonl
@@ -88,3 +88,6 @@
{"ts": "2026-07-30T09:16:13.862551+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 49, "cost": 6135720, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111347, "target": 146183, "signals": [{"label": "손절선", "ok": true, "detail": "111,347 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,183"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:56:14.097643+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 361500, "qty": 35, "proceeds": 12627828, "entry_price": 318600, "pnl": 1475155, "pnl_pct": 13.47, "hold_from": "2026-07-10T09:00:33.035507+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "362,076 (현재 361,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "307,500"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -271 · 기 +536"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T09:56:14.521801+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 90000, "qty": 60, "cost": 5400810, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 81605, "target": 110988, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "89,900 vs 81,070"}, {"label": "정배열(5>10)", "ok": true, "detail": "83,340 / 81,070"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,340 / 75,087"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.2%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 -49 · 기 +276 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+15%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.09% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "1,005,167 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "1.09% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
+{"ts": "2026-07-31T09:04:11.266776+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 60, "proceeds": 4137915, "entry_price": 90000, "pnl": -1262895, "pnl_pct": -23.22, "hold_from": "2026-07-30T09:56:14.521786+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,605 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 110,988"}, {"label": "추세(10일선)", "ok": false, "detail": "80,070"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 92,963"}]}
+{"ts": "2026-07-31T09:04:11.611284+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123300, "qty": 53, "cost": 6535880, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 115898, "target": 141805, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "122,900 vs 116,900"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,040 / 116,900"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 110,067"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.2%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 -41 · 기 +362 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.07% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "109,573 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.07% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "66"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 119,352 (현재 122,900)"}]}
+{"ts": "2026-07-31T09:06:11.227571+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 472, "cost": 3092064, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 8636, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,636"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v310/portfolio.json b/agents/stock/workspace/state/sim/variants/v310/portfolio.json
index a91a43b..5b308b9 100644
--- a/agents/stock/workspace/state/sim/variants/v310/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v310/portfolio.json
@@ -1,28 +1,7 @@
{
- "cash": 57929458.37599994,
+ "cash": 53814818.14849994,
"initial": 100000000,
"positions": {
- "214450": {
- "code": "214450",
- "name": "파마리서치",
- "sources": [
- "auto"
- ],
- "qty": 14,
- "entry_price": 330000.0,
- "entry_at": "2026-07-09T11:44:05.175517+09:00",
- "stop": 296187,
- "target": 431439,
- "peak": 397000,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "pullback",
- "entry_reason": "눌림목 지정가 324,000 도달",
- "cur_price": 349000,
- "tranches": 2,
- "tranche_value": 2514022.686329285,
- "last_add_price": 337500
- },
"003490": {
"code": "003490",
"name": "대한항공",
@@ -39,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 26,600 도달",
- "cur_price": 24600,
+ "cur_price": 25850,
"tranches": 1,
"tranche_value": 3334237.1941591105,
"last_add_price": 25650
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 99,600 도달",
- "cur_price": 100200,
+ "cur_price": 101100,
"tranches": 2,
"tranche_value": 3798555.0123003162,
"last_add_price": 101000
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 129,300 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 3001414.640453794,
"last_add_price": 125200
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 222,
- "entry_price": 6060,
+ "qty": 427,
+ "entry_price": 6295.245901639344,
"entry_at": "2026-07-30T11:58:10.485849+09:00",
- "stop": 4924,
- "target": 9469,
- "peak": 6080,
+ "stop": 5195,
+ "target": 9595,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 8,460 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1348446.2744731682,
- "last_add_price": 6060
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -118,22 +97,43 @@
"entry_at": "2026-07-30T13:10:13.415289+09:00",
"stop": 113900,
"target": 151100,
- "peak": 123800,
+ "peak": 124100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 123,300 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 1,
"tranche_value": 3339227.3986436105,
"last_add_price": 123200
+ },
+ "034730": {
+ "code": "034730",
+ "name": "SK",
+ "sources": [
+ "auto"
+ ],
+ "qty": 13,
+ "entry_price": 532000,
+ "entry_at": "2026-07-31T09:10:15.469130+09:00",
+ "stop": 531999,
+ "target": 532003,
+ "peak": 572000,
+ "trailing_on": true,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 815,000 도달",
+ "cur_price": 558000,
+ "tranches": 1,
+ "tranche_value": 6931654.6290416615,
+ "last_add_price": 532000
}
},
- "realized_pnl": -16202892.058500051,
- "closed_trades": 76,
+ "realized_pnl": -16678236.47350005,
+ "closed_trades": 78,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.16089272634000062,
+ "max_drawdown": 0.1700309445150006,
"last_exit": {
"254490": "2026-06-22",
"017670": "2026-06-23",
@@ -170,8 +170,10 @@
"010950": "2026-07-28",
"475150": "2026-07-29",
"003680": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "214450": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885332+09:00",
- "updated_at": "2026-07-30T15:28:09.512099+09:00"
+ "updated_at": "2026-07-31T15:28:11.345212+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 c4ad6b3..712d200 100644
--- a/agents/stock/workspace/state/sim/variants/v310/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v310/trades.jsonl
@@ -176,3 +176,8 @@
{"ts": "2026-07-30T11:58:10.485853+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6060, "qty": 222, "cost": 1345522, "path": "pullback", "reason": "눌림목 지정가 8,460 도달", "stop": 4924, "target": 9469, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,010 vs 4,865"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,160 / 4,865"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,160 / 4,865"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+62.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +233 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "22.96% (환산) vs 평균 5.69% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": true, "detail": "1,425,547 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": true, "detail": "22.96% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 8,460 (현재 6,010)"}]}
{"ts": "2026-07-30T13:08:09.845909+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 22, "proceeds": 2211080, "entry_price": 122750, "pnl": -489825, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:04.379570+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T13:10:13.415293+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123200, "qty": 27, "cost": 3326899, "path": "pullback", "reason": "눌림목 지정가 123,300 도달", "stop": 113900, "target": 151100, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,200 vs 110,072"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,100 / 110,072"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,100 / 110,072"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+55.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +45 · 기 +411 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.37% (환산) vs 평균 0.17% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "615,763 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.37% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 123,300 (현재 123,200)"}]}
+{"ts": "2026-07-31T09:06:11.619277+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 327000, "qty": 14, "proceeds": 4569073, "entry_price": 330000, "pnl": -51620, "pnl_pct": -0.91, "hold_from": "2026-07-09T11:44:05.175517+09:00", "reason": "시간손절 — 21일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "296,187 (현재 328,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 431,439"}, {"label": "추세(60일선)", "ok": true, "detail": "305,225"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -257 · 기 +520"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:11.622456+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 205, "cost": 1342951, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4924, "target": 9469, "signals": [{"label": "손절선", "ok": true, "detail": "4,924 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,469"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,383"}]}
+{"ts": "2026-07-31T09:06:11.624733+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 78100, "qty": 49, "cost": 3827474, "path": "pullback", "reason": "눌림목 지정가 83,200 도달", "stop": 73000, "target": 93400, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "78,000 vs 74,888"}, {"label": "정배열(5>60)", "ok": true, "detail": "80,960 / 74,888"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "80,960 / 74,888"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+32.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -179 · 기 +325 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.02% (환산) vs 평균 0.42% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": false, "detail": "946,707 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "1.02% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 83,200 (현재 78,000)"}]}
+{"ts": "2026-07-31T09:08:11.813375+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 49, "proceeds": 3403750, "entry_price": 78100, "pnl": -423724, "pnl_pct": -10.88, "hold_from": "2026-07-31T09:06:11.624726+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "73,000 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 93,400"}, {"label": "추세(60일선)", "ok": false, "detail": "74,747"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 81,295"}]}
+{"ts": "2026-07-31T09:10:15.469139+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 532000, "qty": 13, "cost": 6917037, "path": "pullback", "reason": "눌림목 지정가 815,000 도달", "stop": 531999, "target": 532003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "532,000 vs 527,067"}, {"label": "정배열(5>60)", "ok": true, "detail": "724,400 / 527,067"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "724,400 / 527,067"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.59% (환산) vs 평균 0.45% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "427,000 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.59% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 815,000 (현재 532,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v311/portfolio.json b/agents/stock/workspace/state/sim/variants/v311/portfolio.json
index e434a52..9428ddd 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": 14751906.293999977,
+ "cash": 12223227.048999976,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5051541.085061288,
"last_add_price": 353000
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,750 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 7068569.038333331,
"last_add_price": 18950
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 123,300 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 7048635.583499998,
"last_add_price": 120500
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 99,600 도달",
- "cur_price": 100200,
+ "cur_price": 101100,
"tranches": 2,
"tranche_value": 6198757.029677045,
"last_add_price": 101000
@@ -113,27 +113,27 @@
"sources": [
"auto"
],
- "qty": 418,
- "entry_price": 6050,
+ "qty": 804,
+ "entry_price": 6290.049751243781,
"entry_at": "2026-07-30T11:40:14.794832+09:00",
- "stop": 5047,
- "target": 9058,
- "peak": 6080,
+ "stop": 5320,
+ "target": 9201,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 8,460 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2534350.598481804,
- "last_add_price": 6050
+ "last_add_price": 6550
}
},
"realized_pnl": -17935118.274000023,
"closed_trades": 33,
"wins": 1,
"peak_equity": 100133491.83,
- "max_drawdown": 0.17602583979518466,
+ "max_drawdown": 0.18484209870982204,
"last_exit": {
"033640": "2026-06-23",
"005930": "2026-06-23",
@@ -157,5 +157,5 @@
"161890": "2026-07-30"
},
"created_at": "2026-06-22T09:00:04.885342+09:00",
- "updated_at": "2026-07-30T15:28:09.516084+09:00"
+ "updated_at": "2026-07-31T15:28:11.349106+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 5e5b36c..8859d07 100644
--- a/agents/stock/workspace/state/sim/variants/v311/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v311/trades.jsonl
@@ -92,3 +92,4 @@
{"ts": "2026-07-30T09:18:12.616179+09:00", "side": "BUY", "code": "055550", "name": "신한지주", "price": 101000, "qty": 61, "cost": 6161924, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 91700, "target": 118100, "signals": [{"label": "손절선", "ok": true, "detail": "91,700 (현재 101,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 118,100"}, {"label": "추세(20일선)", "ok": true, "detail": "96,865"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -62"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 100,764"}]}
{"ts": "2026-07-30T11:40:14.380326+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 92500, "qty": 83, "proceeds": 7662529, "entry_price": 104127, "pnl": -981268, "pnl_pct": -11.17, "hold_from": "2026-07-23T11:00:03.572572+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,928 (현재 92,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 137,723"}, {"label": "추세(20일선)", "ok": false, "detail": "98,205"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T11:40:14.794850+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6050, "qty": 418, "cost": 2529279, "path": "pullback", "reason": "눌림목 지정가 8,460 도달", "stop": 5047, "target": 9058, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,030 vs 4,804"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,164 / 4,804"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,164 / 4,865"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+62.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +233 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "24.92% (환산) vs 평균 5.69% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": true, "detail": "1,547,506 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": true, "detail": "24.92% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 8,460 (현재 6,030)"}]}
+{"ts": "2026-07-31T09:06:11.634609+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 386, "cost": 2528679, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5047, "target": 9058, "signals": [{"label": "손절선", "ok": true, "detail": "5,047 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,058"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,373"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v312/portfolio.json b/agents/stock/workspace/state/sim/variants/v312/portfolio.json
index 7262e09..d087570 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": 7208975.751999993,
+ "cash": 9508837.796999993,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 7354011.877655987,
"last_add_price": 344000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 100200,
+ "cur_price": 101100,
"tranches": 2,
"tranche_value": 8369345.66302692,
"last_add_price": 102800
@@ -60,32 +60,11 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,750 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 8269635.959799999,
"last_add_price": 19320
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 146,
- "entry_price": 89128.76712328767,
- "entry_at": "2026-07-29T09:26:02.244095+09:00",
- "stop": 81992,
- "target": 110538,
- "peak": 92300,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "immediate",
- "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 6565639.373821265,
- "last_add_price": 90700
- },
"086790": {
"code": "086790",
"name": "하나금융지주",
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 129,300 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 7344610.2592218295,
"last_add_price": 125200
+ },
+ "138040": {
+ "code": "138040",
+ "name": "메리츠금융지주",
+ "sources": [
+ "auto"
+ ],
+ "qty": 63,
+ "entry_price": 123300,
+ "entry_at": "2026-07-31T09:04:11.658296+09:00",
+ "stop": 116885,
+ "target": 142546,
+ "peak": 123900,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 123,300 도달",
+ "cur_price": 123900,
+ "tranches": 1,
+ "tranche_value": 7882243.298199999,
+ "last_add_price": 123300
}
},
- "realized_pnl": -17502792.70700003,
- "closed_trades": 28,
+ "realized_pnl": -20448617.39700003,
+ "closed_trades": 29,
"wins": 2,
"peak_equity": 100226641.3075,
- "max_drawdown": 0.17951639724510696,
+ "max_drawdown": 0.22454731812724035,
"last_exit": {
"005930": "2026-06-23",
"005935": "2026-07-01",
@@ -132,8 +132,9 @@
"086790": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29",
- "003680": "2026-07-29"
+ "003680": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885351+09:00",
- "updated_at": "2026-07-30T15:28:09.528718+09:00"
+ "updated_at": "2026-07-31T15:28:11.361248+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 7ab9c69..0b5592a 100644
--- a/agents/stock/workspace/state/sim/variants/v312/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v312/trades.jsonl
@@ -80,3 +80,5 @@
{"ts": "2026-07-30T09:04:09.543940+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 121300, "qty": 60, "cost": 7279092, "path": "pullback", "reason": "눌림목 지정가 129,300 도달", "stop": 112674, "target": 147178, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "121,200 vs 119,680"}, {"label": "정배열(5>10)", "ok": true, "detail": "120,840 / 119,680"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "120,840 / 118,418"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+34.1%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 -214 · 기 +182 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+36%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.18% (환산) vs 평균 0.37% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 130,700"}, {"label": "거래량 급증", "ok": false, "detail": "494,880 (환산) vs 평균 1,026,357"}, {"label": "회전율 급증", "ok": false, "detail": "0.18% (환산) vs 평균 0.37%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 129,300 (현재 121,200)"}]}
{"ts": "2026-07-30T09:12:09.733467+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 90700, "qty": 72, "cost": 6531380, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 80584, "target": 108648, "signals": [{"label": "손절선", "ok": true, "detail": "80,584 (현재 90,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 108,648"}, {"label": "추세(10일선)", "ok": true, "detail": "81,150"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -49 · 기 +276"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 90,345"}]}
{"ts": "2026-07-30T09:16:13.883564+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 58, "cost": 7262689, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 112674, "target": 147178, "signals": [{"label": "손절선", "ok": true, "detail": "112,674 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,178"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
+{"ts": "2026-07-31T09:04:11.657242+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 146, "proceeds": 10068927, "entry_price": 89129, "pnl": -2945825, "pnl_pct": -22.47, "hold_from": "2026-07-29T09:26:02.244095+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,992 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 110,538"}, {"label": "추세(10일선)", "ok": false, "detail": "80,070"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:04:11.658299+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123300, "qty": 63, "cost": 7769065, "path": "pullback", "reason": "눌림목 지정가 123,300 도달", "stop": 116885, "target": 142546, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "122,900 vs 116,900"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,040 / 116,900"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 110,067"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.2%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 -41 · 기 +362 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.07% (환산) vs 평균 0.17% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "109,573 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.07% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "66"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 123,300 (현재 122,900)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v313/portfolio.json b/agents/stock/workspace/state/sim/variants/v313/portfolio.json
index 9312311..9fa7d73 100644
--- a/agents/stock/workspace/state/sim/variants/v313/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v313/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 75600981.69199994,
+ "cash": 76860376.91699997,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 1881614.4320314971,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 40,
- "entry_price": 91200.0,
- "entry_at": "2026-07-23T10:44:03.413801+09:00",
- "stop": 77172,
- "target": 116450,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 1862199.0150068374,
- "last_add_price": 92800
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 1,
"tranche_value": 2781920.3395705796,
"last_add_price": 127700
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,526 도달",
- "cur_price": 5800,
+ "cur_price": 6130,
"tranches": 2,
"tranche_value": 1136696.002462022,
"last_add_price": 6710
@@ -102,17 +81,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 1915181.63370387,
"last_add_price": 130900
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 9,
+ "entry_price": 130000,
+ "entry_at": "2026-07-31T12:36:11.865608+09:00",
+ "stop": 100700,
+ "target": 182740,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 144,129 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 1170475.3529907847,
+ "last_add_price": 130000
}
},
- "realized_pnl": -10466718.776500037,
- "closed_trades": 85,
+ "realized_pnl": -11685695.25150004,
+ "closed_trades": 91,
"wins": 2,
"peak_equity": 100186518.14249998,
- "max_drawdown": 0.11271812475245133,
+ "max_drawdown": 0.1240764321983835,
"last_exit": {
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -120,15 +120,15 @@
"005935": "2026-07-01",
"009150": "2026-07-27",
"240810": "2026-07-24",
- "034730": "2026-07-28",
+ "034730": "2026-07-31",
"093370": "2026-07-20",
- "032830": "2026-07-27",
- "319660": "2026-07-30",
+ "032830": "2026-07-31",
+ "319660": "2026-07-31",
"011070": "2026-07-24",
"402340": "2026-07-22",
"003490": "2026-07-13",
"004170": "2026-07-23",
- "028260": "2026-07-24",
+ "028260": "2026-07-31",
"214450": "2026-07-15",
"222800": "2026-07-21",
"055550": "2026-07-27",
@@ -138,8 +138,9 @@
"010950": "2026-07-29",
"105560": "2026-07-29",
"086790": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-31",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885359+09:00",
- "updated_at": "2026-07-30T15:28:09.531599+09:00"
+ "updated_at": "2026-07-31T15:28:11.364162+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 01b6887..9e6c7ec 100644
--- a/agents/stock/workspace/state/sim/variants/v313/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v313/trades.jsonl
@@ -190,3 +190,15 @@
{"ts": "2026-07-30T11:14:10.840009+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94400, "qty": 47, "cost": 4437466, "path": "pullback", "reason": "눌림목 지정가 94,648 도달", "stop": 92100, "target": 98540, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.2%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 -7 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.61% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "615,364 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": true, "detail": "2.61% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,648 (현재 94,300)"}]}
{"ts": "2026-07-30T11:58:10.510709+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 47, "proceeds": 4301496, "entry_price": 94400, "pnl": -135970, "pnl_pct": -2.86, "hold_from": "2026-07-30T11:14:10.840007+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 98,540"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,436"}]}
{"ts": "2026-07-30T13:08:09.870628+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 18, "proceeds": 1809065, "entry_price": 115500, "pnl": -270246, "pnl_pct": -12.81, "hold_from": "2026-07-30T09:08:13.773542+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 142,140"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,807"}]}
+{"ts": "2026-07-31T09:00:24.213839+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 8, "cost": 4264640, "path": "pullback", "reason": "눌림목 지정가 692,675 도달", "stop": 532999, "target": 533002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 692,675 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:00:24.214549+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129000, "qty": 34, "cost": 4386658, "path": "pullback", "reason": "눌림목 지정가 154,757 도달", "stop": 128999, "target": 129002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "119,700 vs 112,553"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,580 / 112,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.1%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.37% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,267,313 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "4.37% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "43"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,757 (현재 119,700)"}]}
+{"ts": "2026-07-31T09:00:24.215313+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 94200, "qty": 47, "cost": 4428064, "path": "pullback", "reason": "눌림목 지정가 94,541 도달", "stop": 92100, "target": 97980, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "94,300 vs 91,838"}, {"label": "정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "106,160 / 91,838"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+41.0%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +77 · 기 -22 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.67% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "158,873 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "0.67% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 94,541 (현재 94,300)"}]}
+{"ts": "2026-07-31T09:02:15.497090+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126300, "qty": 34, "proceeds": 4285826, "entry_price": 129000, "pnl": -100832, "pnl_pct": -2.09, "hold_from": "2026-07-31T09:00:24.214542+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,999 (현재 121,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,002"}, {"label": "추세(60일선)", "ok": true, "detail": "112,575"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +713 · 기 -510"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,148"}]}
+{"ts": "2026-07-31T09:02:15.497273+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91500, "qty": 47, "proceeds": 4292114, "entry_price": 94200, "pnl": -135950, "pnl_pct": -2.87, "hold_from": "2026-07-31T09:00:24.215308+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 97,980"}, {"label": "추세(60일선)", "ok": false, "detail": "91,790"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -22"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 98,251"}]}
+{"ts": "2026-07-31T09:08:11.834336+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 8, "proceeds": 4239716, "entry_price": 533000, "pnl": -24923, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:24.213831+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:11.834613+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 40, "proceeds": 2778571, "entry_price": 91200, "pnl": -869976, "pnl_pct": -23.68, "hold_from": "2026-07-23T10:44:03.413801+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "77,172 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 116,450"}, {"label": "추세(60일선)", "ok": false, "detail": "74,747"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:34:11.178051+09:00", "side": "BUY", "code": "028260", "name": "삼성물산", "price": 350500, "qty": 12, "cost": 4206631, "path": "pullback", "reason": "눌림목 지정가 358,486 도달", "stop": 350499, "target": 350502, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "351,000 vs 350,117"}, {"label": "정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "405,900 / 350,117"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.5%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 -111 · 기 +179 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 565,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,917,627 (환산) vs 평균 706,119"}, {"label": "회전율 급증", "ok": true, "detail": "1.18% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 358,486 (현재 351,000)"}]}
+{"ts": "2026-07-31T09:36:13.040294+09:00", "side": "SELL", "code": "028260", "name": "삼성물산", "price": 349000, "qty": 12, "proceeds": 4179833, "entry_price": 350500, "pnl": -26798, "pnl_pct": -0.43, "hold_from": "2026-07-31T09:34:11.178049+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "350,499 (현재 348,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 350,502"}, {"label": "추세(60일선)", "ok": false, "detail": "350,075"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +179"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 375,005"}]}
+{"ts": "2026-07-31T10:10:15.839854+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 315000, "qty": 13, "cost": 4095614, "path": "pullback", "reason": "눌림목 지정가 386,093 도달", "stop": 314999, "target": 315002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "315,000 vs 311,175"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,700 / 311,175"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.4%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +38 · 기 +29 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.58% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,148,524 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": true, "detail": "0.58% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 386,093 (현재 315,000)"}]}
+{"ts": "2026-07-31T10:12:11.707546+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311000, "qty": 13, "proceeds": 4035116, "entry_price": 315000, "pnl": -60498, "pnl_pct": -1.27, "hold_from": "2026-07-31T10:10:15.839852+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "314,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 315,002"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +38 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 336,469"}]}
+{"ts": "2026-07-31T12:36:11.865610+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 130000, "qty": 9, "cost": 1170176, "path": "pullback", "reason": "눌림목 지정가 144,129 도달", "stop": 100700, "target": 182740, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "130,000 vs 99,283"}, {"label": "정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "166,640 / 99,283"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(10일 외/기)", "ok": true, "detail": "외 +397 · 기 -253 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "9.13% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,767,926 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "9.13% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,129 (현재 130,000)"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v314/portfolio.json b/agents/stock/workspace/state/sim/variants/v314/portfolio.json
index fb7bcd5..0dfc31f 100644
--- a/agents/stock/workspace/state/sim/variants/v314/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v314/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 44063263.454000026,
+ "cash": 44982491.22400003,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3459622.8594091423,
"last_add_price": 356000
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5643861.637562501,
"last_add_price": 18950
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 1,
"tranche_value": 5009397.505974029,
"last_add_price": 125400
@@ -92,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 293,
- "entry_price": 6130,
+ "qty": 567,
+ "entry_price": 6332.962962962963,
"entry_at": "2026-07-30T09:04:09.554153+09:00",
- "stop": 4660,
- "target": 9071,
- "peak": 6330,
+ "stop": 4910,
+ "target": 9180,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1797520.9726568882,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,38 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3456453.831165508,
"last_add_price": 129300
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 35,
- "entry_price": 92100,
- "entry_at": "2026-07-30T09:18:12.641975+09:00",
- "stop": 79818,
- "target": 116663,
- "peak": 92300,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 3276457.011792014,
- "last_add_price": 92100
}
},
- "realized_pnl": -13886779.998500012,
- "closed_trades": 25,
+ "realized_pnl": -14396566.548500013,
+ "closed_trades": 26,
"wins": 1,
"peak_equity": 100961178.33000001,
- "max_drawdown": 0.15130107560819694,
+ "max_drawdown": 0.16041261972065946,
"last_exit": {
"403870": "2026-07-07",
"030000": "2026-07-24",
@@ -170,8 +149,8 @@
"003680": "2026-07-29",
"086790": "2026-07-28",
"010950": "2026-07-29",
- "078930": "2026-07-29"
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885367+09:00",
- "updated_at": "2026-07-30T15:28:09.534372+09:00"
+ "updated_at": "2026-07-31T15:28:11.366933+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 29db146..3d09640 100644
--- a/agents/stock/workspace/state/sim/variants/v314/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v314/trades.jsonl
@@ -73,3 +73,5 @@
{"ts": "2026-07-30T09:04:09.554155+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 293, "cost": 1796359, "path": "pullback", "reason": "눌림목 지정가 7,457 도달", "stop": 4660, "target": 9071, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,457 (현재 6,120)"}]}
{"ts": "2026-07-30T09:14:09.762853+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 129300, "qty": 26, "cost": 3362304, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113068, "target": 161764, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "129,000 vs 108,775"}, {"label": "정배열(5>20)", "ok": true, "detail": "114,980 / 108,775"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "114,980 / 113,180"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+23%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.43% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "485,820 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.43% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-30T09:18:12.641977+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 92100, "qty": 35, "cost": 3223984, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 79818, "target": 116663, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "92,200 vs 75,270"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,800 / 75,270"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,800 / 75,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+68.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +276 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+12%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.57% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "531,713 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.57% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:06:11.659927+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 274, "cost": 1794969, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4660, "target": 9071, "signals": [{"label": "손절선", "ok": true, "detail": "4,660 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,071"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:11.660370+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 35, "proceeds": 2714197, "entry_price": 92100, "pnl": -509787, "pnl_pct": -15.64, "hold_from": "2026-07-30T09:18:12.641975+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,818 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 116,663"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 95,098"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v315/portfolio.json b/agents/stock/workspace/state/sim/variants/v315/portfolio.json
index 0546ca8..b9fe1ba 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": 26311017.808499936,
+ "cash": 25467100.395999935,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,32 +39,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4924531.379887749,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 102,
- "entry_price": 89870.58823529411,
- "entry_at": "2026-07-23T09:46:06.475984+09:00",
- "stop": 78834,
- "target": 117462,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4655528.873050034,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,314 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 7492821.915541661,
"last_add_price": 18950
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 4728625.29578571,
"last_add_price": 133000
@@ -113,27 +92,48 @@
"sources": [
"auto"
],
- "qty": 403,
- "entry_price": 6130,
+ "qty": 780,
+ "entry_price": 6333.0,
"entry_at": "2026-07-30T09:04:09.557386+09:00",
- "stop": 4793,
- "target": 9472,
- "peak": 6330,
+ "stop": 5039,
+ "target": 9568,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,123 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2474671.09568862,
- "last_add_price": 6130
+ "last_add_price": 6550
+ },
+ "138040": {
+ "code": "138040",
+ "name": "메리츠금융지주",
+ "sources": [
+ "auto"
+ ],
+ "qty": 51,
+ "entry_price": 123200,
+ "entry_at": "2026-07-31T10:38:11.861717+09:00",
+ "stop": 112902,
+ "target": 148945,
+ "peak": 123900,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "breakout",
+ "entry_reason": "거래량·회전율 동반 전고점 돌파",
+ "cur_price": 123900,
+ "tranches": 1,
+ "tranche_value": 6305551.749322194,
+ "last_add_price": 123200
}
},
- "realized_pnl": -13919698.143500011,
- "closed_trades": 18,
+ "realized_pnl": -15177927.693500012,
+ "closed_trades": 19,
"wins": 0,
"peak_equity": 102026100.45499997,
- "max_drawdown": 0.16687228259311246,
+ "max_drawdown": 0.17777879873983904,
"last_exit": {
"403870": "2026-07-07",
"000660": "2026-06-29",
@@ -148,8 +148,9 @@
"024060": "2026-07-27",
"086790": "2026-07-28",
"010950": "2026-07-28",
- "003680": "2026-07-29"
+ "003680": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885375+09:00",
- "updated_at": "2026-07-30T15:28:09.537032+09:00"
+ "updated_at": "2026-07-31T15:28:11.369613+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 f7aa400..2c04414 100644
--- a/agents/stock/workspace/state/sim/variants/v315/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v315/trades.jsonl
@@ -55,3 +55,6 @@
{"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": "추가 종료"}]}
{"ts": "2026-07-30T09:04:09.557388+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 403, "cost": 2470761, "path": "pullback", "reason": "눌림목 지정가 7,123 도달", "stop": 4793, "target": 9472, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,123 (현재 6,120)"}]}
+{"ts": "2026-07-31T09:06:11.663914+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 377, "cost": 2469720, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 9472, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,472"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:11.664098+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 102, "proceeds": 7909945, "entry_price": 89871, "pnl": -1258230, "pnl_pct": -13.54, "hold_from": "2026-07-23T09:46:06.475984+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,834 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 117,462"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T10:38:11.861720+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123200, "qty": 51, "cost": 6284142, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 112902, "target": 148945, "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": "+38.7%p"}, {"label": "수급(3일 외/기)", "ok": true, "detail": "외 -41 · 기 +361 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.33% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "564,408 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.33% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v316/portfolio.json b/agents/stock/workspace/state/sim/variants/v316/portfolio.json
index 373cbc9..f68ecf1 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": 74673740.43199994,
+ "cash": 72906025.31449993,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 1723041.949065203,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 3085659.757648651,
"last_add_price": 119500
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 2110750.5193652804,
"last_add_price": 125200
@@ -71,27 +71,48 @@
"sources": [
"auto"
],
- "qty": 148,
- "entry_price": 6060,
+ "qty": 285,
+ "entry_price": 6295.543859649123,
"entry_at": "2026-07-30T11:58:10.518991+09:00",
- "stop": 4857,
- "target": 9669,
- "peak": 6080,
+ "stop": 5131,
+ "target": 9789,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 899904.426653765,
- "last_add_price": 6060
+ "last_add_price": 6550
+ },
+ "095610": {
+ "code": "095610",
+ "name": "테스",
+ "sources": [
+ "auto"
+ ],
+ "qty": 7,
+ "entry_price": 124300,
+ "entry_at": "2026-07-31T09:00:24.562034+09:00",
+ "stop": 100700,
+ "target": 195100,
+ "peak": 130000,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 155,086 도달",
+ "cur_price": 130000,
+ "tranches": 1,
+ "tranche_value": 938146.2487879315,
+ "last_add_price": 124300
}
},
"realized_pnl": -11157354.551000027,
"closed_trades": 64,
"wins": 1,
"peak_equity": 100030682.08,
- "max_drawdown": 0.11010921428278697,
+ "max_drawdown": 0.11396859971806031,
"last_exit": {
"017670": "2026-06-23",
"178320": "2026-06-23",
@@ -120,5 +141,5 @@
"161890": "2026-07-30"
},
"created_at": "2026-06-22T09:00:04.885385+09:00",
- "updated_at": "2026-07-30T15:28:09.539605+09:00"
+ "updated_at": "2026-07-31T15:28:11.372229+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 7369d31..d40e02e 100644
--- a/agents/stock/workspace/state/sim/variants/v316/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v316/trades.jsonl
@@ -146,3 +146,5 @@
{"ts": "2026-07-30T11:58:10.518880+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 55, "proceeds": 5033665, "entry_price": 100564, "pnl": -498164, "pnl_pct": -8.81, "hold_from": "2026-07-22T15:18:03.458533+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 125,955"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T11:58:10.518993+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6060, "qty": 148, "cost": 897015, "path": "pullback", "reason": "눌림목 지정가 7,792 도달", "stop": 4857, "target": 9669, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,010 vs 4,865"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,160 / 4,865"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,160 / 4,865"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+62.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +233 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "22.96% (환산) vs 평균 5.69% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": true, "detail": "1,425,547 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": true, "detail": "22.96% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,792 (현재 6,010)"}]}
{"ts": "2026-07-30T13:08:09.878514+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 16, "proceeds": 1608058, "entry_price": 122750, "pnl": -356236, "pnl_pct": -17.96, "hold_from": "2026-07-29T09:02:04.419950+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 188,900"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:00:24.562048+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 124300, "qty": 7, "cost": 870231, "path": "pullback", "reason": "눌림목 지정가 155,086 도달", "stop": 100700, "target": 195100, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "120,400 vs 99,123"}, {"label": "정배열(5>60)", "ok": true, "detail": "164,720 / 99,123"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "164,720 / 99,123"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+32.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +446 · 기 -340 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+63%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "14.32% (환산) vs 평균 3.06% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": true, "detail": "2,772,480 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": true, "detail": "14.32% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,086 (현재 120,400)"}]}
+{"ts": "2026-07-31T09:06:11.667320+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 137, "cost": 897485, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4857, "target": 9669, "signals": [{"label": "손절선", "ok": true, "detail": "4,857 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,669"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,383"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v317/portfolio.json b/agents/stock/workspace/state/sim/variants/v317/portfolio.json
index d6bef33..1eb6ebe 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": 65152822.41100003,
+ "cash": 56894633.86850003,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3295504.677737418,
"last_add_price": 353000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,014 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 4810700.768136875,
"last_add_price": 18950
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4929280.307324868,
"last_add_price": 120500
@@ -71,27 +71,48 @@
"sources": [
"auto"
],
- "qty": 279,
- "entry_price": 6130,
+ "qty": 540,
+ "entry_price": 6333.0,
"entry_at": "2026-07-30T09:04:09.563430+09:00",
- "stop": 5127,
- "target": 9138,
- "peak": 6330,
+ "stop": 5363,
+ "target": 9244,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1710766.4010408132,
- "last_add_price": 6130
+ "last_add_price": 6550
+ },
+ "078930": {
+ "code": "078930",
+ "name": "GS",
+ "sources": [
+ "auto"
+ ],
+ "qty": 80,
+ "entry_price": 81842.5,
+ "entry_at": "2026-07-31T09:14:11.255015+09:00",
+ "stop": 73000,
+ "target": 108370,
+ "peak": 89800,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "pullback",
+ "entry_reason": "눌림목 지정가 76,810 도달",
+ "cur_price": 89800,
+ "tranches": 2,
+ "tranche_value": 3338387.672676638,
+ "last_add_price": 84200
}
},
"realized_pnl": -7624774.841000017,
"closed_trades": 29,
"wins": 2,
"peak_equity": 100973538.872,
- "max_drawdown": 0.08261844196205827,
+ "max_drawdown": 0.08926737632644707,
"last_exit": {
"403870": "2026-07-02",
"003490": "2026-07-07",
@@ -112,5 +133,5 @@
"161890": "2026-07-30"
},
"created_at": "2026-06-22T09:00:04.885394+09:00",
- "updated_at": "2026-07-30T15:28:09.541994+09:00"
+ "updated_at": "2026-07-31T15:28:11.374662+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 73f1221..2dae6e5 100644
--- a/agents/stock/workspace/state/sim/variants/v317/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v317/trades.jsonl
@@ -74,3 +74,6 @@
{"ts": "2026-07-30T09:04:09.563432+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 279, "cost": 1710527, "path": "pullback", "reason": "눌림목 지정가 7,792 도달", "stop": 5127, "target": 9138, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,792 (현재 6,120)"}]}
{"ts": "2026-07-30T09:22:09.888439+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 98600, "qty": 43, "cost": 4240436, "path": "pullback", "reason": "눌림목 지정가 98,656 도달", "stop": 92100, "target": 118100, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "98,600 vs 98,495"}, {"label": "정배열(5>20)", "ok": true, "detail": "107,020 / 98,495"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "107,020 / 91,910"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -3 · 기 +40 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+34%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.45% (환산) vs 평균 1.76% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "342,033 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "1.45% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 98,656 (현재 98,600)"}]}
{"ts": "2026-07-30T11:58:10.521570+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 43, "proceeds": 3935411, "entry_price": 98600, "pnl": -305025, "pnl_pct": -7.0, "hold_from": "2026-07-30T09:22:09.888435+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 118,100"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 102,636"}]}
+{"ts": "2026-07-31T09:06:11.670385+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 261, "cost": 1709806, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 9138, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,138"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:14:11.255027+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 79600, "qty": 41, "cost": 3264090, "path": "pullback", "reason": "눌림목 지정가 76,810 도달", "stop": 73000, "target": 99400, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "76,500 vs 74,485"}, {"label": "정배열(5>20)", "ok": true, "detail": "80,660 / 74,485"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "80,660 / 74,863"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+30.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -179 · 기 +325 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+35%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.01% (환산) vs 평균 0.42% (보류 6배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "1,862,807 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "2.01% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 76,810 (현재 76,500)"}]}
+{"ts": "2026-07-31T09:18:11.356847+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 84200, "qty": 39, "cost": 3284293, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 73000, "target": 99400, "signals": [{"label": "손절선", "ok": true, "detail": "73,000 (현재 83,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 99,400"}, {"label": "추세(20일선)", "ok": true, "detail": "74,855"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 82,795"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v318/portfolio.json b/agents/stock/workspace/state/sim/variants/v318/portfolio.json
index 28b96a2..abf5193 100644
--- a/agents/stock/workspace/state/sim/variants/v318/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v318/portfolio.json
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4808309.617830769,
"last_add_price": 338000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
- "cur_price": 100200,
+ "cur_price": 101100,
"tranches": 2,
"tranche_value": 5737708.823909291,
"last_add_price": 102800
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,161 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 7081160.229108149,
"last_add_price": 19320
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 123,992 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 5071450.007018988,
"last_add_price": 125200
@@ -91,7 +91,7 @@
"closed_trades": 25,
"wins": 2,
"peak_equity": 100025650.85,
- "max_drawdown": 0.10700722656182564,
+ "max_drawdown": 0.11618973712981362,
"last_exit": {
"005930": "2026-06-23",
"005935": "2026-07-01",
@@ -113,5 +113,5 @@
"003680": "2026-07-29"
},
"created_at": "2026-06-22T09:00:04.885402+09:00",
- "updated_at": "2026-07-30T15:28:09.544345+09:00"
+ "updated_at": "2026-07-31T15:28:11.377014+09:00"
}
\ No newline at end of file
diff --git a/agents/stock/workspace/state/sim/variants/v319/portfolio.json b/agents/stock/workspace/state/sim/variants/v319/portfolio.json
index bc30d84..159d441 100644
--- a/agents/stock/workspace/state/sim/variants/v319/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v319/portfolio.json
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 25,331 도달",
- "cur_price": 24600,
+ "cur_price": 25850,
"tranches": 2,
"tranche_value": 2159393.7298746845,
"last_add_price": 26750
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,837 도달",
- "cur_price": 5800,
+ "cur_price": 6130,
"tranches": 1,
"tranche_value": 614669.7691373413,
"last_add_price": 6760
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 1659181.620742326,
"last_add_price": 125200
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 1,
"tranche_value": 1299917.4675538559,
"last_add_price": 124700
@@ -118,5 +118,5 @@
"161890": "2026-07-30"
},
"created_at": "2026-06-22T09:00:04.885411+09:00",
- "updated_at": "2026-07-30T15:28:09.546642+09:00"
+ "updated_at": "2026-07-31T15:28:11.379338+09:00"
}
\ No newline at end of file
diff --git a/agents/stock/workspace/state/sim/variants/v320/portfolio.json b/agents/stock/workspace/state/sim/variants/v320/portfolio.json
index 96e059d..e2fba87 100644
--- a/agents/stock/workspace/state/sim/variants/v320/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v320/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 74068083.55250001,
+ "cash": 71414268.775,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 1749831.3969574722,
"last_add_price": 356000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 2431314.1712946068,
"last_add_price": 126400
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 2612912.8051063353,
"last_add_price": 125200
@@ -71,27 +71,48 @@
"sources": [
"auto"
],
- "qty": 151,
- "entry_price": 6130,
+ "qty": 292,
+ "entry_price": 6332.808219178082,
"entry_at": "2026-07-30T09:04:09.571751+09:00",
- "stop": 4660,
- "target": 9071,
- "peak": 6330,
+ "stop": 4909,
+ "target": 9179,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 925770.5463256123,
- "last_add_price": 6130
+ "last_add_price": 6550
+ },
+ "010950": {
+ "code": "010950",
+ "name": "S-Oil",
+ "sources": [
+ "auto"
+ ],
+ "qty": 13,
+ "entry_price": 126200,
+ "entry_at": "2026-07-31T11:20:12.356714+09:00",
+ "stop": 109968,
+ "target": 158664,
+ "peak": 128500,
+ "trailing_on": false,
+ "scaled_out": false,
+ "entry_path": "breakout",
+ "entry_reason": "거래량·회전율 동반 전고점 돌파",
+ "cur_price": 127600,
+ "tranches": 1,
+ "tranche_value": 1705365.255046051,
+ "last_add_price": 126200
}
},
- "realized_pnl": -12060206.003000028,
- "closed_trades": 69,
+ "realized_pnl": -12149486.15800003,
+ "closed_trades": 71,
"wins": 1,
"peak_equity": 100038352.6,
- "max_drawdown": 0.12190043848742853,
+ "max_drawdown": 0.12619362361430958,
"last_exit": {
"017670": "2026-06-23",
"178320": "2026-06-23",
@@ -108,9 +129,9 @@
"011070": "2026-07-24",
"240810": "2026-07-24",
"402340": "2026-07-21",
- "034730": "2026-07-28",
+ "034730": "2026-07-31",
"004170": "2026-07-22",
- "319660": "2026-07-29",
+ "319660": "2026-07-31",
"032830": "2026-07-24",
"222800": "2026-07-09",
"084370": "2026-07-09",
@@ -121,5 +142,5 @@
"161890": "2026-07-30"
},
"created_at": "2026-06-22T09:00:04.885419+09:00",
- "updated_at": "2026-07-30T15:28:09.548849+09:00"
+ "updated_at": "2026-07-31T15:28:11.381555+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 fc15fe1..d403576 100644
--- a/agents/stock/workspace/state/sim/variants/v320/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v320/trades.jsonl
@@ -154,3 +154,9 @@
{"ts": "2026-07-30T11:58:10.529082+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 67, "proceeds": 6131919, "entry_price": 100570, "pnl": -607291, "pnl_pct": -8.82, "hold_from": "2026-07-22T15:18:03.486239+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 117,510"}, {"label": "추세(60일선)", "ok": true, "detail": "91,797"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T12:00:09.155160+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 103900, "qty": 68, "cost": 7066260, "path": "pullback", "reason": "눌림목 지정가 154,593 도달", "stop": 100700, "target": 110300, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "103,900 vs 98,848"}, {"label": "정배열(5>60)", "ok": true, "detail": "161,420 / 98,848"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "161,420 / 98,848"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+18.0%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +347 · 기 -346 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+89%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.88% (환산) vs 평균 3.06% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "945,144 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "4.88% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,593 (현재 103,900)"}]}
{"ts": "2026-07-30T13:08:09.888036+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 100700, "qty": 68, "proceeds": 6834247, "entry_price": 103900, "pnl": -232013, "pnl_pct": -3.08, "hold_from": "2026-07-30T12:00:09.155157+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,700 (현재 100,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 110,300"}, {"label": "추세(60일선)", "ok": true, "detail": "98,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +331 · 기 -349"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 115,207"}]}
+{"ts": "2026-07-31T09:00:24.985200+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 533000, "qty": 16, "cost": 8529279, "path": "pullback", "reason": "눌림목 지정가 733,450 도달", "stop": 532999, "target": 533002, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "528,000 vs 527,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "723,600 / 527,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +109 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+62%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.45% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "223,753 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 733,450 (현재 528,000)"}]}
+{"ts": "2026-07-31T09:06:11.679171+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 141, "cost": 923689, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4660, "target": 9071, "signals": [{"label": "손절선", "ok": true, "detail": "4,660 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,071"}, {"label": "추세(60일선)", "ok": true, "detail": "4,875"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:11.851810+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 531000, "qty": 16, "proceeds": 8479433, "entry_price": 533000, "pnl": -49846, "pnl_pct": -0.38, "hold_from": "2026-07-31T09:00:24.985193+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "532,999 (현재 529,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,017"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +109 · 기 -43"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:11.851921+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 121900, "qty": 71, "cost": 8656198, "path": "pullback", "reason": "눌림목 지정가 165,905 도달", "stop": 121899, "target": 121902, "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": "+46.0%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 +713 · 기 -510 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+49%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.55% (환산) vs 평균 2.68% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": true, "detail": "1,898,747 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": true, "detail": "6.55% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 165,905 (현재 123,000)"}]}
+{"ts": "2026-07-31T11:20:12.316865+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 121600, "qty": 71, "proceeds": 8616764, "entry_price": 121900, "pnl": -39434, "pnl_pct": -0.25, "hold_from": "2026-07-31T09:08:11.851920+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "121,899 (현재 121,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "112,582"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +662 · 기 -449"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T11:20:12.356717+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 126200, "qty": 13, "cost": 1640846, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 109968, "target": 158664, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "126,000 vs 113,130"}, {"label": "정배열(5>60)", "ok": true, "detail": "114,380 / 113,130"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "114,380 / 113,130"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+31.2%p"}, {"label": "수급(7일 외/기)", "ok": true, "detail": "외 -25 · 기 +53 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.64% (환산) vs 평균 0.32% (보류 4배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "720,884 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.64% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v321/portfolio.json b/agents/stock/workspace/state/sim/variants/v321/portfolio.json
index 0cc9c9c..8070b68 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": 52441095.010499954,
+ "cash": 47278090.39549995,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3126423.8386076577,
"last_add_price": 353000
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,014 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 6126434.205091702,
"last_add_price": 18950
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4270833.924939413,
"last_add_price": 126400
@@ -92,48 +92,48 @@
"sources": [
"auto"
],
- "qty": 262,
- "entry_price": 6130,
+ "qty": 508,
+ "entry_price": 6333.385826771653,
"entry_at": "2026-07-30T09:04:09.574292+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1611587.634102893,
- "last_add_price": 6130
+ "last_add_price": 6550
},
- "078930": {
- "code": "078930",
- "name": "GS",
+ "010950": {
+ "code": "010950",
+ "name": "S-Oil",
"sources": [
"auto"
],
- "qty": 31,
- "entry_price": 87900,
- "entry_at": "2026-07-30T12:04:10.495424+09:00",
- "stop": 76706,
- "target": 110287,
- "peak": 89200,
+ "qty": 45,
+ "entry_price": 126755.55555555556,
+ "entry_at": "2026-07-31T09:38:14.571564+09:00",
+ "stop": 111999,
+ "target": 156268,
+ "peak": 128500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 2739632.6261488674,
- "last_add_price": 87900
+ "cur_price": 127600,
+ "tranches": 2,
+ "tranche_value": 2909026.7881467864,
+ "last_add_price": 128800
}
},
- "realized_pnl": -7390010.559000008,
- "closed_trades": 21,
+ "realized_pnl": -7961926.6140000075,
+ "closed_trades": 22,
"wins": 1,
"peak_equity": 101868947.08549999,
- "max_drawdown": 0.09083996978228524,
+ "max_drawdown": 0.101758307576299,
"last_exit": {
"403870": "2026-06-26",
"093370": "2026-07-07",
@@ -148,8 +148,9 @@
"252990": "2026-07-28",
"010950": "2026-07-28",
"003680": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-22T09:00:04.885428+09:00",
- "updated_at": "2026-07-30T15:28:09.551024+09:00"
+ "updated_at": "2026-07-31T15:28:11.383665+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 31791e1..57bded6 100644
--- a/agents/stock/workspace/state/sim/variants/v321/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v321/trades.jsonl
@@ -64,3 +64,7 @@
{"ts": "2026-07-30T09:50:09.299262+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 33, "cost": 4171826, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 144168, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,168"}, {"label": "추세(20일선)", "ok": true, "detail": "113,865"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
{"ts": "2026-07-30T11:58:10.531348+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 100, "proceeds": 9152118, "entry_price": 101111, "pnl": -960498, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:02.279488+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,133"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-30T12:04:10.495425+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 87900, "qty": 31, "cost": 2725309, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 76706, "target": 110287, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "87,900 vs 75,055"}, {"label": "정배열(5>20)", "ok": true, "detail": "82,940 / 75,055"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "82,940 / 75,053"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+61.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +280 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.79% (환산) vs 평균 0.42% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "728,608 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.79% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
+{"ts": "2026-07-31T09:06:11.682000+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 246, "cost": 1611542, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:08:11.854287+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 31, "proceeds": 2153393, "entry_price": 87900, "pnl": -571916, "pnl_pct": -20.82, "hold_from": "2026-07-30T12:04:10.495424+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "76,706 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 110,287"}, {"label": "추세(20일선)", "ok": false, "detail": "74,135"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 91,095"}]}
+{"ts": "2026-07-31T09:38:14.571566+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 124800, "qty": 23, "cost": 2870831, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 110044, "target": 154313, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "124,800 vs 108,565"}, {"label": "정배열(5>20)", "ok": true, "detail": "114,140 / 108,565"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "114,140 / 113,110"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -25 · 기 +53 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+27%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.59% (환산) vs 평균 0.32% (보류 5배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "663,060 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.59% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
+{"ts": "2026-07-31T13:36:10.594567+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 128800, "qty": 22, "cost": 2834025, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 110044, "target": 154313, "signals": [{"label": "손절선", "ok": true, "detail": "110,044 (현재 128,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 154,313"}, {"label": "추세(20일선)", "ok": true, "detail": "108,750"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -6 · 기 +47"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 128,489"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v4/portfolio.json b/agents/stock/workspace/state/sim/variants/v4/portfolio.json
index 3c9b317..2a4da55 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": 9408604.226999938,
+ "cash": 13802798.704499938,
"initial": 100000000,
"positions": {
"010950": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 5165873.995968748,
"last_add_price": 130800
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5436208.582218748,
"last_add_price": 353000
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 4918301.825124997,
"last_add_price": 18950
@@ -102,59 +102,38 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4687948.173093746,
"last_add_price": 120500
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 100,
- "entry_price": 89856.0,
- "entry_at": "2026-07-29T10:10:03.435326+09:00",
- "stop": 78691,
- "target": 112186,
- "peak": 92300,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4788742.374812496,
- "last_add_price": 91800
- },
"003680": {
"code": "003680",
"name": "한성기업",
"sources": [
"auto"
],
- "qty": 548,
- "entry_price": 6130,
+ "qty": 1061,
+ "entry_price": 6333.072573044298,
"entry_at": "2026-07-30T09:04:06.331645+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3363400.360988703,
- "last_add_price": 6130
+ "last_add_price": 6550
}
},
- "realized_pnl": -28092112.28650003,
- "closed_trades": 30,
+ "realized_pnl": -29324211.626500033,
+ "closed_trades": 31,
"wins": 1,
"peak_equity": 101588073.90899995,
- "max_drawdown": 0.2931323386313542,
+ "max_drawdown": 0.31267208819170245,
"last_exit": {
"030000": "2026-07-15",
"003490": "2026-07-13",
@@ -174,8 +153,9 @@
"252990": "2026-07-28",
"086790": "2026-07-28",
"003680": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.943227+09:00",
- "updated_at": "2026-07-30T15:28:06.315711+09:00"
+ "updated_at": "2026-07-31T15:28:07.191835+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 496a1a7..02f738d 100644
--- a/agents/stock/workspace/state/sim/variants/v4/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v4/trades.jsonl
@@ -88,3 +88,5 @@
{"ts": "2026-07-30T09:04:06.331655+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 548, "cost": 3359744, "path": "pullback", "reason": "눌림목 지정가 7,792 도달", "stop": 4793, "target": 8804, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,792 (현재 6,120)"}]}
{"ts": "2026-07-30T09:16:10.369006+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 91800, "qty": 46, "cost": 4223433, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 77406, "target": 109787, "signals": [{"label": "손절선", "ok": true, "detail": "77,406 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 109,787"}, {"label": "추세(20일선)", "ok": true, "detail": "75,250"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -49 · 기 +276"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 90,991"}]}
{"ts": "2026-07-30T11:58:07.751923+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 102, "proceeds": 9335161, "entry_price": 101112, "pnl": -979786, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.770270+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,135"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.354653+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 513, "cost": 3360654, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.356200+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 100, "proceeds": 7754848, "entry_price": 89856, "pnl": -1232099, "pnl_pct": -13.53, "hold_from": "2026-07-29T10:10:03.435326+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,691 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 112,186"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"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 6ba3144..319bd41 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": 9116474.296499968,
+ "cash": 13353795.376499968,
"initial": 100000000,
"positions": {
"010950": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 2,
"tranche_value": 5048122.616093748,
"last_add_price": 130800
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5321475.422124998,
"last_add_price": 353000
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 4811346.680156248,
"last_add_price": 18950
@@ -102,32 +102,11 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 117,994 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4617848.732749999,
"last_add_price": 120300
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 61,
- "entry_price": 88672.13114754099,
- "entry_at": "2026-07-29T10:10:03.440312+09:00",
- "stop": 77507,
- "target": 122167,
- "peak": 92300,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4696174.398124998,
- "last_add_price": 91800
- },
"003680": {
"code": "003680",
"name": "한성기업",
@@ -139,22 +118,22 @@
"entry_at": "2026-07-30T09:00:15.365910+09:00",
"stop": 4680,
"target": 10027,
- "peak": 6330,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,798 도달",
- "cur_price": 5800,
+ "cur_price": 6130,
"tranches": 2,
"tranche_value": 3141444.6444992432,
"last_add_price": 6250
}
},
- "realized_pnl": -29644621.24550002,
- "closed_trades": 32,
+ "realized_pnl": -30817111.51550002,
+ "closed_trades": 33,
"wins": 1,
"peak_equity": 102181273.23399998,
- "max_drawdown": 0.3104091183603114,
+ "max_drawdown": 0.32781728781937153,
"last_exit": {
"030000": "2026-07-16",
"003490": "2026-07-13",
@@ -176,8 +155,9 @@
"086790": "2026-07-28",
"095610": "2026-07-28",
"003680": "2026-07-29",
- "161890": "2026-07-30"
+ "161890": "2026-07-30",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.943590+09:00",
- "updated_at": "2026-07-30T15:28:06.319931+09:00"
+ "updated_at": "2026-07-31T15:28:07.196140+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 64ac335..09cd656 100644
--- a/agents/stock/workspace/state/sim/variants/v40/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v40/trades.jsonl
@@ -94,3 +94,4 @@
{"ts": "2026-07-30T09:08:10.443796+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6250, "qty": 502, "cost": 3137971, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4476, "target": 9772, "signals": [{"label": "손절선", "ok": true, "detail": "4,476 (현재 6,240)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,772"}, {"label": "추세(20일선)", "ok": true, "detail": "4,814"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +234 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,134"}]}
{"ts": "2026-07-30T09:16:10.381713+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 91800, "qty": 8, "cost": 734510, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 77406, "target": 120581, "signals": [{"label": "손절선", "ok": true, "detail": "77,406 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 120,581"}, {"label": "추세(20일선)", "ok": true, "detail": "75,250"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -49 · 기 +276"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 90,991"}]}
{"ts": "2026-07-30T11:58:07.766674+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 99, "proceeds": 9060597, "entry_price": 101130, "pnl": -952804, "pnl_pct": -9.32, "hold_from": "2026-07-22T09:04:01.775234+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 128,221"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:08:07.537529+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69600, "qty": 61, "proceeds": 4237321, "entry_price": 88672, "pnl": -1172490, "pnl_pct": -21.51, "hold_from": "2026-07-29T10:10:03.440312+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "77,507 (현재 69,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 122,167"}, {"label": "추세(20일선)", "ok": false, "detail": "74,135"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"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 db4fae2..9e851d5 100644
--- a/agents/stock/workspace/state/sim/variants/v41/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v41/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 27997740.91649995,
+ "cash": 28125375.293999948,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5255953.704843747,
"last_add_price": 356000
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 4936882.865843747,
"last_add_price": 120500
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,019 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 4906716.385874997,
"last_add_price": 19090
@@ -92,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 587,
- "entry_price": 6130,
+ "qty": 1136,
+ "entry_price": 6332.975352112676,
"entry_at": "2026-07-30T09:04:06.399023+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 3600140.7067564675,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,38 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4967738.085718747,
"last_add_price": 130900
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 54,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:06.717243+09:00",
- "stop": 80806,
- "target": 108790,
- "peak": 92000,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 4971463.304781247,
- "last_add_price": 92000
}
},
- "realized_pnl": -22748322.101000026,
- "closed_trades": 34,
+ "realized_pnl": -23992943.531000026,
+ "closed_trades": 35,
"wins": 5,
"peak_equity": 101897668.8475,
- "max_drawdown": 0.24548322070484505,
+ "max_drawdown": 0.26316503465484303,
"last_exit": {
"030000": "2026-07-29",
"005930": "2026-06-23",
@@ -173,10 +152,10 @@
"252990": "2026-07-28",
"086790": "2026-07-28",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"003680": "2026-07-29",
"161890": "2026-07-30"
},
"created_at": "2026-06-11T09:00:01.943599+09:00",
- "updated_at": "2026-07-30T15:28:06.323256+09:00"
+ "updated_at": "2026-07-31T15:28:07.199793+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 b728064..4b0265d 100644
--- a/agents/stock/workspace/state/sim/variants/v41/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v41/trades.jsonl
@@ -94,3 +94,5 @@
{"ts": "2026-07-30T09:16:10.765432+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 130900, "qty": 37, "cost": 4844026, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116144, "target": 153035, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "130,900 vs 108,870"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,360 / 108,870"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,360 / 113,212"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "571,193 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:22:06.717254+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 92000, "qty": 54, "cost": 4968745, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 80806, "target": 108790, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "91,800 vs 75,250"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,720 / 75,250"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,720 / 75,118"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+67.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +276 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+12%"}, {"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": "593,600 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.64% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "70"}]}
{"ts": "2026-07-30T11:58:07.772098+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 104, "proceeds": 9518203, "entry_price": 101112, "pnl": -999074, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.778302+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,631"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:04:07.215552+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 54, "proceeds": 3724124, "entry_price": 92000, "pnl": -1244621, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:06.717243+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "80,806 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 108,790"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:06.368169+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 549, "cost": 3596489, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v47/portfolio.json b/agents/stock/workspace/state/sim/variants/v47/portfolio.json
index bcaff99..b64390f 100644
--- a/agents/stock/workspace/state/sim/variants/v47/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v47/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 27310820.51250002,
+ "cash": 28174540.72750002,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4924744.715894901,
"last_add_price": 356000
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5453618.912812501,
"last_add_price": 18950
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5227428.575000001,
"last_add_price": 120500
@@ -92,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 410,
- "entry_price": 6130,
+ "qty": 794,
+ "entry_price": 6333.1234256926955,
"entry_at": "2026-07-30T09:04:06.405133+09:00",
- "stop": 5127,
- "target": 8135,
- "peak": 6330,
+ "stop": 5363,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2519326.1696107937,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,38 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4937127.35216398,
"last_add_price": 130900
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 49,
- "entry_price": 92000,
- "entry_at": "2026-07-30T09:22:06.724327+09:00",
- "stop": 83605,
- "target": 108790,
- "peak": 92000,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 4580784.040136987,
- "last_add_price": 92000
}
},
- "realized_pnl": -18836542.80350002,
- "closed_trades": 40,
+ "realized_pnl": -19965921.508500017,
+ "closed_trades": 41,
"wins": 3,
"peak_equity": 101509906.21500002,
- "max_drawdown": 0.2027623359133649,
+ "max_drawdown": 0.22032288592731603,
"last_exit": {
"030000": "2026-07-24",
"005930": "2026-06-23",
@@ -172,11 +151,11 @@
"105560": "2026-07-20",
"086790": "2026-07-21",
"252990": "2026-07-28",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"010950": "2026-07-29",
"003680": "2026-07-29",
"161890": "2026-07-30"
},
"created_at": "2026-06-11T09:00:01.943663+09:00",
- "updated_at": "2026-07-30T15:28:06.326420+09:00"
+ "updated_at": "2026-07-31T15:28:07.203148+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 40c51ff..77c1f23 100644
--- a/agents/stock/workspace/state/sim/variants/v47/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v47/trades.jsonl
@@ -111,3 +111,5 @@
{"ts": "2026-07-30T09:16:10.777370+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 130900, "qty": 37, "cost": 4844026, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 119833, "target": 153035, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "130,900 vs 108,870"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,360 / 108,870"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,360 / 113,212"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "571,193 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:22:06.724331+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 92000, "qty": 49, "cost": 4508676, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 83605, "target": 108790, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "91,800 vs 75,250"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,720 / 75,250"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,720 / 75,118"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+67.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +276 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+12%"}, {"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": "593,600 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.64% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "70"}]}
{"ts": "2026-07-30T11:58:07.777847+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 108, "proceeds": 9884288, "entry_price": 101114, "pnl": -1037650, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.781295+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,142"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:04:07.221059+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 49, "proceeds": 3379297, "entry_price": 92000, "pnl": -1129379, "pnl_pct": -24.89, "hold_from": "2026-07-30T09:22:06.724327+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,605 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 108,790"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 94,963"}]}
+{"ts": "2026-07-31T09:06:06.372261+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 384, "cost": 2515577, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v49/portfolio.json b/agents/stock/workspace/state/sim/variants/v49/portfolio.json
index 6bc20f7..e86516e 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": 31241968.457499966,
+ "cash": 36306378.122499965,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,32 +39,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5130167.1298944345,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 112,
- "entry_price": 89873.21428571429,
- "entry_at": "2026-07-23T09:46:06.325274+09:00",
- "stop": 81596,
- "target": 102289,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 5068034.013537591,
- "last_add_price": 91400
- },
"010950": {
"code": "010950",
"name": "S-Oil",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 5157062.809471096,
"last_add_price": 131400
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,653 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5456367.896437498,
"last_add_price": 19090
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 434,
- "entry_price": 6130,
+ "qty": 840,
+ "entry_price": 6333.0,
"entry_at": "2026-07-30T09:04:06.411459+09:00",
- "stop": 5127,
- "target": 7634,
- "peak": 6330,
+ "stop": 5363,
+ "target": 7789,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2664162.4855678705,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -144,17 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5545775.073906248,
"last_add_price": 127700
}
},
- "realized_pnl": -12937769.759000018,
- "closed_trades": 35,
+ "realized_pnl": -15280971.06900002,
+ "closed_trades": 36,
"wins": 4,
"peak_equity": 100822831.297,
- "max_drawdown": 0.14611395702729468,
+ "max_drawdown": 0.17463369107969035,
"last_exit": {
"030000": "2026-07-29",
"005930": "2026-06-23",
@@ -172,8 +151,9 @@
"010950": "2026-07-27",
"024060": "2026-07-27",
"003680": "2026-07-29",
- "138040": "2026-07-29"
+ "138040": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.943683+09:00",
- "updated_at": "2026-07-30T15:28:06.329446+09:00"
+ "updated_at": "2026-07-31T15:28:07.206230+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 adde44e..90eb81a 100644
--- a/agents/stock/workspace/state/sim/variants/v49/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v49/trades.jsonl
@@ -92,3 +92,5 @@
{"ts": "2026-07-30T09:04:06.411463+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 434, "cost": 2660819, "path": "pullback", "reason": "눌림목 지정가 7,457 도달", "stop": 5127, "target": 7634, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,120 vs 4,808"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,182 / 4,808"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,457 (현재 6,120)"}]}
{"ts": "2026-07-30T09:16:10.784230+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 124100, "qty": 44, "cost": 5461219, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116280, "target": 135830, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "124,000 vs 113,755"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,260 / 113,755"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,260 / 110,085"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+54.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +9 · 기 +389 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "518,220 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.31% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T10:10:06.773376+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 43, "cost": 5491924, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116280, "target": 135830, "signals": [{"label": "손절선", "ok": true, "detail": "116,280 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,830"}, {"label": "추세(20일선)", "ok": true, "detail": "113,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,835"}]}
+{"ts": "2026-07-31T09:04:07.225437+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 112, "proceeds": 7724109, "entry_price": 89873, "pnl": -2343201, "pnl_pct": -23.11, "hold_from": "2026-07-23T09:46:06.325274+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,596 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 102,289"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.375896+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 406, "cost": 2659699, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 7634, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,634"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v51/portfolio.json b/agents/stock/workspace/state/sim/variants/v51/portfolio.json
index c22d064..8af3aae 100644
--- a/agents/stock/workspace/state/sim/variants/v51/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v51/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 22432963.18399996,
+ "cash": 27372184.42649996,
"initial": 100000000,
"positions": {
"090850": {
@@ -39,32 +39,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 4981626.338033037,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 108,
- "entry_price": 89872.22222222222,
- "entry_at": "2026-07-23T09:46:06.328023+09:00",
- "stop": 81595,
- "target": 114704,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4903174.469139825,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5570046.781437498,
"last_add_price": 18950
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 409,
- "entry_price": 6130,
+ "qty": 792,
+ "entry_price": 6333.106060606061,
"entry_at": "2026-07-30T09:04:06.416289+09:00",
- "stop": 5127,
- "target": 9138,
- "peak": 6330,
+ "stop": 5363,
+ "target": 9244,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2513570.2512412006,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4918744.488166665,
"last_add_price": 130900
@@ -144,17 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5230787.575874997,
"last_add_price": 127700
}
},
- "realized_pnl": -18045479.921500016,
- "closed_trades": 33,
+ "realized_pnl": -20304888.311500017,
+ "closed_trades": 34,
"wins": 1,
"peak_equity": 100822831.297,
- "max_drawdown": 0.19571646480420946,
+ "max_drawdown": 0.22381980926547834,
"last_exit": {
"030000": "2026-07-24",
"005930": "2026-06-23",
@@ -172,8 +151,9 @@
"024060": "2026-07-27",
"003680": "2026-07-29",
"138040": "2026-07-29",
- "010950": "2026-07-29"
+ "010950": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.943703+09:00",
- "updated_at": "2026-07-30T15:28:06.332253+09:00"
+ "updated_at": "2026-07-31T15:28:07.209020+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 e6b3e84..71b4bbb 100644
--- a/agents/stock/workspace/state/sim/variants/v51/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v51/trades.jsonl
@@ -91,3 +91,5 @@
{"ts": "2026-07-30T09:16:10.789049+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 130900, "qty": 37, "cost": 4844026, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 119833, "target": 164102, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "130,900 vs 108,870"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,360 / 108,870"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,360 / 113,212"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "571,193 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:16:10.789701+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 124100, "qty": 42, "cost": 5212982, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116280, "target": 147560, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "124,000 vs 113,755"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,260 / 113,755"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,260 / 110,085"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+54.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +9 · 기 +389 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "518,220 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.31% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T10:10:06.777966+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 40, "cost": 5108766, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116280, "target": 147560, "signals": [{"label": "손절선", "ok": true, "detail": "116,280 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,560"}, {"label": "추세(20일선)", "ok": true, "detail": "113,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,835"}]}
+{"ts": "2026-07-31T09:04:07.229822+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 108, "proceeds": 7448248, "entry_price": 89872, "pnl": -2259408, "pnl_pct": -23.11, "hold_from": "2026-07-23T09:46:06.328023+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,595 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,704"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.379481+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 383, "cost": 2509026, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 9138, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,138"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v57/portfolio.json b/agents/stock/workspace/state/sim/variants/v57/portfolio.json
index 0cee07a..c55d2e7 100644
--- a/agents/stock/workspace/state/sim/variants/v57/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v57/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 31928281.24449999,
+ "cash": 36457406.286999986,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3853827.2535399394,
"last_add_price": 350000
@@ -44,27 +44,6 @@
"tranche_value": 5801931.81075,
"last_add_price": 6150
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 84,
- "entry_price": 89864.28571428571,
- "entry_at": "2026-07-23T09:46:06.330524+09:00",
- "stop": 78828,
- "target": 111937,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3808102.9082436445,
- "last_add_price": 91400
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5827047.345624999,
"last_add_price": 18950
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5303741.017029563,
"last_add_price": 126400
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 323,
- "entry_price": 6130,
+ "qty": 626,
+ "entry_price": 6333.290734824282,
"entry_at": "2026-07-30T09:04:06.420943+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1986117.593344577,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,17 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3886259.5492520155,
"last_add_price": 130900
}
},
- "realized_pnl": -13566324.17250001,
- "closed_trades": 20,
+ "realized_pnl": -14601983.722500011,
+ "closed_trades": 21,
"wins": 0,
"peak_equity": 100000000,
- "max_drawdown": 0.14285684982000024,
+ "max_drawdown": 0.15602973713000015,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -167,8 +146,9 @@
"024060": "2026-07-27",
"003680": "2026-07-29",
"010950": "2026-07-29",
- "252990": "2026-07-29"
+ "252990": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.943761+09:00",
- "updated_at": "2026-07-30T15:28:06.334891+09:00"
+ "updated_at": "2026-07-31T15:28:07.211850+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 46e6549..dbd6627 100644
--- a/agents/stock/workspace/state/sim/variants/v57/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v57/trades.jsonl
@@ -63,3 +63,5 @@
{"ts": "2026-07-30T09:04:06.420947+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 323, "cost": 1980287, "path": "pullback", "reason": "눌림목 지정가 7,457 도달", "stop": 4793, "target": 8804, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,120 vs 5,256"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,182 / 5,256"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,457 (현재 6,120)"}]}
{"ts": "2026-07-30T09:16:10.794891+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 130900, "qty": 29, "cost": 3796669, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116144, "target": 160413, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "130,900 vs 108,560"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,360 / 108,560"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,360 / 113,212"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "571,193 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:50:06.633977+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 41, "cost": 5183177, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 144168, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,168"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:06.382800+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 303, "cost": 1984948, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.383199+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 84, "proceeds": 6514073, "entry_price": 89864, "pnl": -1035660, "pnl_pct": -13.54, "hold_from": "2026-07-23T09:46:06.330524+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,828 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,937"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"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 735ad5f..c373556 100644
--- a/agents/stock/workspace/state/sim/variants/v59/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v59/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 38970465.715,
+ "cash": 43473386.82750001,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3881692.4296628344,
"last_add_price": 350000
@@ -44,27 +44,6 @@
"tranche_value": 5844217.815187501,
"last_add_price": 6150
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 84,
- "entry_price": 89864.28571428571,
- "entry_at": "2026-07-23T09:46:06.333185+09:00",
- "stop": 78828,
- "target": 106419,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3836130.6371969497,
- "last_add_price": 91400
- },
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5325887.633449249,
"last_add_price": 126400
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,653 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5502496.0855625,
"last_add_price": 19090
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 328,
- "entry_price": 6130,
+ "qty": 635,
+ "entry_price": 6333.055118110236,
"entry_at": "2026-07-30T09:04:06.425545+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2015979.3969129766,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,17 +123,17 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3941830.088447581,
"last_add_price": 130900
}
},
- "realized_pnl": -12166245.891000014,
- "closed_trades": 21,
+ "realized_pnl": -13201905.441000015,
+ "closed_trades": 22,
"wins": 1,
"peak_equity": 100000000,
- "max_drawdown": 0.12746662630999997,
+ "max_drawdown": 0.14228533172499985,
"last_exit": {
"030000": "2026-07-29",
"086790": "2026-07-29",
@@ -167,8 +146,9 @@
"024060": "2026-07-27",
"003680": "2026-07-29",
"010950": "2026-07-29",
- "252990": "2026-07-29"
+ "252990": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.943780+09:00",
- "updated_at": "2026-07-30T15:28:06.337450+09:00"
+ "updated_at": "2026-07-31T15:28:07.214506+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 36d7e76..1b2c21b 100644
--- a/agents/stock/workspace/state/sim/variants/v59/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v59/trades.jsonl
@@ -62,3 +62,5 @@
{"ts": "2026-07-30T09:04:06.425548+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6130, "qty": 328, "cost": 2010942, "path": "pullback", "reason": "눌림목 지정가 7,457 도달", "stop": 4793, "target": 8135, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,120 vs 5,256"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,182 / 5,256"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,182 / 4,866"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+65.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +234 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.31% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "267,687 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "4.31% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,457 (현재 6,120)"}]}
{"ts": "2026-07-30T09:16:10.799986+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 130900, "qty": 30, "cost": 3927589, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116144, "target": 153035, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "130,900 vs 108,560"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,360 / 108,560"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,360 / 113,212"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "571,193 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-30T09:50:06.638591+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 42, "cost": 5309596, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 138976, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,976"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:06.386124+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 307, "cost": 2011152, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.386284+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 84, "proceeds": 6514073, "entry_price": 89864, "pnl": -1035660, "pnl_pct": -13.54, "hold_from": "2026-07-23T09:46:06.333185+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,828 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 106,419"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"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 d72845a..b04389a 100644
--- a/agents/stock/workspace/state/sim/variants/v81/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v81/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 28868902.277499985,
+ "cash": 33850884.844999984,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5037472.695242855,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 109,
- "entry_price": 89537.61467889909,
- "entry_at": "2026-07-23T09:50:01.487299+09:00",
- "stop": 81303,
- "target": 114241,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 4937498.49310549,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5615843.6254062485,
"last_add_price": 18950
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 414,
- "entry_price": 6130,
+ "qty": 801,
+ "entry_price": 6332.921348314607,
"entry_at": "2026-07-30T09:04:06.429275+09:00",
- "stop": 5127,
- "target": 9138,
- "peak": 6330,
+ "stop": 5362,
+ "target": 9244,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2538875.733917572,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5224397.342968749,
"last_add_price": 127700
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 4964007.507625787,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -17511736.024500016,
- "closed_trades": 33,
+ "realized_pnl": -19755587.169500016,
+ "closed_trades": 34,
"wins": 1,
"peak_equity": 101012300.052,
- "max_drawdown": 0.19446382039007026,
+ "max_drawdown": 0.22341670465262495,
"last_exit": {
"030000": "2026-07-24",
"403870": "2026-07-02",
@@ -171,8 +150,9 @@
"003680": "2026-07-29",
"138040": "2026-07-29",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.943999+09:00",
- "updated_at": "2026-07-30T15:28:06.339938+09:00"
+ "updated_at": "2026-07-31T15:28:07.217011+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 42cf19f..6d0299b 100644
--- a/agents/stock/workspace/state/sim/variants/v81/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v81/trades.jsonl
@@ -90,3 +90,5 @@
{"ts": "2026-07-30T09:24:06.883102+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 37, "cost": 4877331, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120690, "target": 165130, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:06.834965+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 828, "cost": 5217182, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5917, "target": 7450, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,280 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,722 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T10:10:06.788919+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 40, "cost": 5108766, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116537, "target": 147989, "signals": [{"label": "손절선", "ok": true, "detail": "116,537 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,989"}, {"label": "추세(20일선)", "ok": true, "detail": "113,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 127,135"}]}
+{"ts": "2026-07-31T09:04:07.240730+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 109, "proceeds": 7517213, "entry_price": 89538, "pnl": -2243851, "pnl_pct": -22.83, "hold_from": "2026-07-23T09:50:01.487299+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,303 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,241"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.389006+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 387, "cost": 2535230, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 9138, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,138"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v87/portfolio.json b/agents/stock/workspace/state/sim/variants/v87/portfolio.json
index d5c09fb..10f32cd 100644
--- a/agents/stock/workspace/state/sim/variants/v87/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v87/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 26196098.168500025,
+ "cash": 30693531.603500023,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3890688.706288562,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.489667+09:00",
- "stop": 78554,
- "target": 122472,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3772217.360484817,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5741969.0092812525,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5371055.048125002,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4981271.268392551,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 316,
- "entry_price": 6130,
+ "qty": 612,
+ "entry_price": 6333.137254901961,
"entry_at": "2026-07-30T09:04:06.815760+09:00",
- "stop": 4793,
- "target": 10140,
- "peak": 6330,
+ "stop": 5039,
+ "target": 10215,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1940893.4277356586,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3822476.0291991173,
"last_add_price": 131800
@@ -171,11 +150,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -15901837.824500013,
- "closed_trades": 24,
+ "realized_pnl": -16897728.264500014,
+ "closed_trades": 25,
"wins": 0,
"peak_equity": 101529111.72700004,
- "max_drawdown": 0.17512591082555104,
+ "max_drawdown": 0.19102964453831828,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -190,8 +169,9 @@
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944063+09:00",
- "updated_at": "2026-07-30T15:28:06.342452+09:00"
+ "updated_at": "2026-07-31T15:28:07.219400+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 fceb1c5..b79662b 100644
--- a/agents/stock/workspace/state/sim/variants/v87/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v87/trades.jsonl
@@ -75,3 +75,5 @@
{"ts": "2026-07-30T09:16:11.269187+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 39, "cost": 4883532, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 152200, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 152,200"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:06.887687+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 28, "cost": 3690954, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 176240, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:06.839459+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 839, "cost": 5286493, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7833, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:06:06.391778+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 296, "cost": 1939091, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 10140, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,140"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.391923+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.489667+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 122,472"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v89/portfolio.json b/agents/stock/workspace/state/sim/variants/v89/portfolio.json
index b8d56fd..455570a 100644
--- a/agents/stock/workspace/state/sim/variants/v89/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v89/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 38881310.74000001,
+ "cash": 39844268.77750001,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3886029.232766459,
"last_add_price": 353000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5482718.585687501,
"last_add_price": 18950
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5271041.416343752,
"last_add_price": 120500
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 311,
- "entry_price": 6130,
+ "qty": 602,
+ "entry_price": 6333.023255813953,
"entry_at": "2026-07-30T09:04:06.826621+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1912579.0166285906,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3739719.499941269,
"last_add_price": 131800
@@ -127,34 +127,13 @@
"tranches": 1,
"tranche_value": 5179673.836232878,
"last_add_price": 6300
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 37,
- "entry_price": 90600,
- "entry_at": "2026-07-30T09:38:10.484615+09:00",
- "stop": 79406,
- "target": 112987,
- "peak": 91100,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 3393712.720087548,
- "last_add_price": 90600
}
},
- "realized_pnl": -18017745.088000014,
- "closed_trades": 32,
+ "realized_pnl": -18501153.973000016,
+ "closed_trades": 33,
"wins": 1,
"peak_equity": 101169385.00350003,
- "max_drawdown": 0.19197936473398633,
+ "max_drawdown": 0.20365742289811506,
"last_exit": {
"030000": "2026-07-24",
"035420": "2026-06-25",
@@ -171,11 +150,11 @@
"252990": "2026-07-28",
"086790": "2026-07-28",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"003680": "2026-07-29",
"090850": "2026-07-29",
"161890": "2026-07-30"
},
"created_at": "2026-06-11T09:00:01.944112+09:00",
- "updated_at": "2026-07-30T15:28:06.344755+09:00"
+ "updated_at": "2026-07-31T15:28:07.221730+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 6583141..d27a623 100644
--- a/agents/stock/workspace/state/sim/variants/v89/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v89/trades.jsonl
@@ -91,3 +91,5 @@
{"ts": "2026-07-30T09:26:06.843743+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 822, "cost": 5179377, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7322, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,280 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,722 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:38:10.484618+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 90600, "qty": 37, "cost": 3352703, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 79406, "target": 112987, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "90,300 vs 75,175"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,420 / 75,175"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,420 / 75,093"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+66.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +276 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+14%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.87% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "807,647 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.87% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T11:58:07.802699+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 110, "proceeds": 10067330, "entry_price": 101115, "pnl": -1056938, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.797798+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,144"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.394543+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 291, "cost": 1906336, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.394665+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 37, "proceeds": 2869294, "entry_price": 90600, "pnl": -483409, "pnl_pct": -14.24, "hold_from": "2026-07-30T09:38:10.484615+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,406 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 112,987"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 93,598"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v91/portfolio.json b/agents/stock/workspace/state/sim/variants/v91/portfolio.json
index beb6b04..de4fb1b 100644
--- a/agents/stock/workspace/state/sim/variants/v91/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v91/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 37497687.64650001,
+ "cash": 41975468.13400001,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3951428.5123865386,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.494329+09:00",
- "stop": 78554,
- "target": 111492,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3752319.512236461,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5692204.9488125,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5181999.062519742,
"last_add_price": 126400
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 319,
- "entry_price": 6130,
+ "qty": 618,
+ "entry_price": 6333.203883495145,
"entry_at": "2026-07-30T09:04:06.834508+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1959914.5568897158,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3835706.3220700407,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -14868998.428000022,
- "closed_trades": 28,
+ "realized_pnl": -15864888.868000021,
+ "closed_trades": 29,
"wins": 1,
"peak_equity": 100686647.06200002,
- "max_drawdown": 0.1624896636534699,
+ "max_drawdown": 0.17843675852009389,
"last_exit": {
"030000": "2026-07-24",
"403870": "2026-07-07",
@@ -171,8 +150,9 @@
"086790": "2026-07-28",
"138040": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944132+09:00",
- "updated_at": "2026-07-30T15:28:06.347032+09:00"
+ "updated_at": "2026-07-31T15:28:07.223983+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 a4f44e5..3218c65 100644
--- a/agents/stock/workspace/state/sim/variants/v91/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v91/trades.jsonl
@@ -79,3 +79,5 @@
{"ts": "2026-07-30T09:24:06.896063+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 29, "cost": 3822773, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 161427, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:06.847413+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 842, "cost": 5305396, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7322, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,280 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,722 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:50:06.653364+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 40, "cost": 5056758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 144168, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,168"}, {"label": "추세(20일선)", "ok": true, "detail": "113,865"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:06.397100+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 299, "cost": 1958744, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.397227+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.494329+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,492"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v93/portfolio.json b/agents/stock/workspace/state/sim/variants/v93/portfolio.json
index 4edc85a..bf89d09 100644
--- a/agents/stock/workspace/state/sim/variants/v93/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v93/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 26196098.168500025,
+ "cash": 30693531.603500023,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3890688.706288562,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 83,
- "entry_price": 89533.73493975903,
- "entry_at": "2026-07-23T09:50:01.496551+09:00",
- "stop": 78554,
- "target": 111492,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3772217.360484817,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5741969.0092812525,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5371055.048125002,
"last_add_price": 120500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
- "cur_price": 124500,
+ "cur_price": 125800,
"tranches": 2,
"tranche_value": 4981271.268392551,
"last_add_price": 125200
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
- "qty": 316,
- "entry_price": 6130,
+ "qty": 612,
+ "entry_price": 6333.137254901961,
"entry_at": "2026-07-30T09:04:06.840475+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1940893.4277356586,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3822476.0291991173,
"last_add_price": 131800
@@ -171,11 +150,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -15901837.824500013,
- "closed_trades": 24,
+ "realized_pnl": -16897728.264500014,
+ "closed_trades": 25,
"wins": 0,
"peak_equity": 101529111.72700004,
- "max_drawdown": 0.17512591082555104,
+ "max_drawdown": 0.19102964453831828,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-29",
@@ -190,8 +169,9 @@
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944152+09:00",
- "updated_at": "2026-07-30T15:28:06.349204+09:00"
+ "updated_at": "2026-07-31T15:28:07.226120+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 bd67cc4..10ef681 100644
--- a/agents/stock/workspace/state/sim/variants/v93/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v93/trades.jsonl
@@ -75,3 +75,5 @@
{"ts": "2026-07-30T09:16:11.293090+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 125200, "qty": 39, "cost": 4883532, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111000, "target": 141900, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 125,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 141,900"}, {"label": "추세(10일선)", "ok": true, "detail": "120,100"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 124,618"}]}
{"ts": "2026-07-30T09:24:06.899675+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 28, "cost": 3690954, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 161427, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:06.851034+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 839, "cost": 5286493, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7322, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
+{"ts": "2026-07-31T09:06:06.399525+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 296, "cost": 1939091, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.399884+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 83, "proceeds": 6436524, "entry_price": 89534, "pnl": -995890, "pnl_pct": -13.22, "hold_from": "2026-07-23T09:50:01.496551+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,554 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,492"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v95/portfolio.json b/agents/stock/workspace/state/sim/variants/v95/portfolio.json
index bdea83a..1aca630 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": 37542370.38849997,
+ "cash": 42642990.39599997,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 5187131.77934429,
"last_add_price": 356000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 113,
- "entry_price": 89538.05309734514,
- "entry_at": "2026-07-23T09:50:01.498782+09:00",
- "stop": 81304,
- "target": 101890,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 5101002.197396387,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,653 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 1,
"tranche_value": 5523201.690343748,
"last_add_price": 19090
@@ -71,20 +50,20 @@
"sources": [
"auto"
],
- "qty": 439,
- "entry_price": 6130,
+ "qty": 850,
+ "entry_price": 6333.082352941176,
"entry_at": "2026-07-30T09:04:06.845884+09:00",
- "stop": 5127,
- "target": 7634,
- "peak": 6330,
+ "stop": 5363,
+ "target": 7789,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 2696463.528904386,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"138040": {
"code": "138040",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5542242.239593748,
"last_add_price": 127700
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 5265864.051207605,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -12336432.55950002,
- "closed_trades": 34,
+ "realized_pnl": -14662676.414500022,
+ "closed_trades": 35,
"wins": 4,
"peak_equity": 101012300.052,
- "max_drawdown": 0.14412670195615224,
+ "max_drawdown": 0.17351282613085106,
"last_exit": {
"030000": "2026-07-29",
"403870": "2026-07-02",
@@ -171,8 +150,9 @@
"024060": "2026-07-27",
"003680": "2026-07-29",
"138040": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944172+09:00",
- "updated_at": "2026-07-30T15:28:06.351368+09:00"
+ "updated_at": "2026-07-31T15:28:07.228353+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 b726f5c..f06b451 100644
--- a/agents/stock/workspace/state/sim/variants/v95/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v95/trades.jsonl
@@ -89,3 +89,5 @@
{"ts": "2026-07-30T09:24:06.902893+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 39, "cost": 5140971, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120690, "target": 148465, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "132,000 vs 108,925"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,580 / 108,925"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:06.854405+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 878, "cost": 5532230, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5917, "target": 6875, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,280 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,722 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T10:10:06.802957+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 43, "cost": 5491924, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 116537, "target": 136194, "signals": [{"label": "손절선", "ok": true, "detail": "116,537 (현재 127,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 136,194"}, {"label": "추세(20일선)", "ok": true, "detail": "113,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +35 · 기 +392"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 127,135"}]}
+{"ts": "2026-07-31T09:04:07.254791+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 69100, "qty": 113, "proceeds": 7793074, "entry_price": 89538, "pnl": -2326244, "pnl_pct": -22.83, "hold_from": "2026-07-23T09:50:01.498782+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "81,304 (현재 79,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 101,890"}, {"label": "추세(20일선)", "ok": true, "detail": "74,655"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.402180+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 411, "cost": 2692454, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5127, "target": 7634, "signals": [{"label": "손절선", "ok": true, "detail": "5,127 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,634"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v97/portfolio.json b/agents/stock/workspace/state/sim/variants/v97/portfolio.json
index b93eb64..a913210 100644
--- a/agents/stock/workspace/state/sim/variants/v97/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v97/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 41054335.48450003,
+ "cash": 42087227.71950003,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3926142.1904411796,
"last_add_price": 353000
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5649244.920562502,
"last_add_price": 18950
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5456781.800281253,
"last_add_price": 120500
@@ -71,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 325,
- "entry_price": 6130,
+ "qty": 629,
+ "entry_price": 6332.988871224165,
"entry_at": "2026-07-30T09:04:06.850513+09:00",
- "stop": 4793,
- "target": 8135,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8274,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,792 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1995255.9650968967,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3901375.0249038357,
"last_add_price": 131800
@@ -127,34 +127,13 @@
"tranches": 1,
"tranche_value": 5403651.327092467,
"last_add_price": 6300
- },
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 39,
- "entry_price": 90600,
- "entry_at": "2026-07-30T09:38:10.498360+09:00",
- "stop": 79406,
- "target": 107390,
- "peak": 91100,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 1,
- "tranche_value": 3540579.9639850375,
- "last_add_price": 90600
}
},
- "realized_pnl": -14425037.423000023,
- "closed_trades": 34,
+ "realized_pnl": -14934576.518000023,
+ "closed_trades": 35,
"wins": 4,
"peak_equity": 101169385.00350003,
- "max_drawdown": 0.15654290592408074,
+ "max_drawdown": 0.168542759090708,
"last_exit": {
"030000": "2026-07-24",
"035420": "2026-06-25",
@@ -171,11 +150,11 @@
"252990": "2026-07-28",
"086790": "2026-07-28",
"010950": "2026-07-29",
- "078930": "2026-07-29",
+ "078930": "2026-07-31",
"003680": "2026-07-29",
"090850": "2026-07-29",
"161890": "2026-07-30"
},
"created_at": "2026-06-11T09:00:01.944191+09:00",
- "updated_at": "2026-07-30T15:28:06.353402+09:00"
+ "updated_at": "2026-07-31T15:28:07.230483+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 4e0fbd8..5ad2079 100644
--- a/agents/stock/workspace/state/sim/variants/v97/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v97/trades.jsonl
@@ -93,3 +93,5 @@
{"ts": "2026-07-30T09:26:06.857564+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 857, "cost": 5399910, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7067, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,280 vs 5,353"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,722 / 5,353"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:38:10.498362+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 90600, "qty": 39, "cost": 3533930, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 79406, "target": 107390, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "90,300 vs 75,175"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,420 / 75,175"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,420 / 75,093"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+66.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +276 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+14%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.87% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "807,647 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.87% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T11:58:07.813126+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 91700, "qty": 112, "proceeds": 10250373, "entry_price": 101115, "pnl": -1076226, "pnl_pct": -9.31, "hold_from": "2026-07-22T09:04:01.805954+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "92,100 (현재 91,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 114,638"}, {"label": "추세(20일선)", "ok": false, "detail": "98,155"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -7 · 기 +40"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
+{"ts": "2026-07-31T09:06:06.404348+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 304, "cost": 1991499, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8135, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,135"}, {"label": "추세(20일선)", "ok": true, "detail": "4,834"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.404453+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 39, "proceeds": 3024391, "entry_price": 90600, "pnl": -509539, "pnl_pct": -14.24, "hold_from": "2026-07-30T09:38:10.498360+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "79,406 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 107,390"}, {"label": "추세(20일선)", "ok": true, "detail": "74,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 93,598"}]}
diff --git a/agents/stock/workspace/state/sim/variants/v99/portfolio.json b/agents/stock/workspace/state/sim/variants/v99/portfolio.json
index dbc7f74..1fd5aeb 100644
--- a/agents/stock/workspace/state/sim/variants/v99/portfolio.json
+++ b/agents/stock/workspace/state/sim/variants/v99/portfolio.json
@@ -1,5 +1,5 @@
{
- "cash": 38021056.2995,
+ "cash": 42550181.34200001,
"initial": 100000000,
"positions": {
"214450": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 349000,
+ "cur_price": 339500,
"tranches": 2,
"tranche_value": 3907880.8107494777,
"last_add_price": 353000
},
- "078930": {
- "code": "078930",
- "name": "GS",
- "sources": [
- "auto"
- ],
- "qty": 84,
- "entry_price": 89517.85714285714,
- "entry_at": "2026-07-23T09:50:01.502800+09:00",
- "stop": 78539,
- "target": 111476,
- "peak": 99800,
- "trailing_on": false,
- "scaled_out": false,
- "entry_path": "breakout",
- "entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 85700,
- "tranches": 2,
- "tranche_value": 3816608.495615692,
- "last_add_price": 90900
- },
"030000": {
"code": "030000",
"name": "제일기획",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
- "cur_price": 19130,
+ "cur_price": 18990,
"tranches": 2,
"tranche_value": 5846997.74384375,
"last_add_price": 18950
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 123100,
+ "cur_price": 123900,
"tranches": 2,
"tranche_value": 5274213.041699394,
"last_add_price": 126400
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
- "qty": 324,
- "entry_price": 6130,
+ "qty": 627,
+ "entry_price": 6332.966507177033,
"entry_at": "2026-07-30T09:04:06.854820+09:00",
- "stop": 4793,
- "target": 8804,
- "peak": 6330,
+ "stop": 5039,
+ "target": 8921,
+ "peak": 6640,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,457 도달",
- "cur_price": 5800,
- "tranches": 1,
+ "cur_price": 6130,
+ "tranches": 2,
"tranche_value": 1990442.0140977001,
- "last_add_price": 6130
+ "last_add_price": 6550
},
"010950": {
"code": "010950",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
- "cur_price": 129000,
+ "cur_price": 127600,
"tranches": 1,
"tranche_value": 3895629.806359651,
"last_add_price": 131800
@@ -150,11 +129,11 @@
"last_add_price": 6300
}
},
- "realized_pnl": -13579464.867500015,
- "closed_trades": 21,
+ "realized_pnl": -14586020.052500015,
+ "closed_trades": 22,
"wins": 0,
"peak_equity": 100172467.23000002,
- "max_drawdown": 0.14494532611603334,
+ "max_drawdown": 0.1611478316784991,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-28",
@@ -168,8 +147,9 @@
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
- "090850": "2026-07-29"
+ "090850": "2026-07-29",
+ "078930": "2026-07-31"
},
"created_at": "2026-06-11T09:00:01.944212+09:00",
- "updated_at": "2026-07-30T15:28:06.355477+09:00"
+ "updated_at": "2026-07-31T15:28:07.232576+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 50b88ea..7cabc08 100644
--- a/agents/stock/workspace/state/sim/variants/v99/trades.jsonl
+++ b/agents/stock/workspace/state/sim/variants/v99/trades.jsonl
@@ -63,3 +63,5 @@
{"ts": "2026-07-30T09:24:06.909225+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131800, "qty": 29, "cost": 3822773, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116987, "target": 161427, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "132,000 vs 108,670"}, {"label": "정배열(5>10)", "ok": true, "detail": "115,580 / 108,670"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,580 / 113,230"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -6 · 기 +178 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.66% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "738,813 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.66% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-07-30T09:26:06.860482+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6300, "qty": 855, "cost": 5387308, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5789, "target": 7322, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,280 vs 5,581"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,722 / 5,581"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,722 / 5,620"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +87 · 기 +6 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.51% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "109,080 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.51% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-30T09:50:06.664949+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 126400, "qty": 41, "cost": 5183177, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 113016, "target": 144168, "signals": [{"label": "손절선", "ok": true, "detail": "113,016 (현재 126,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,168"}, {"label": "추세(10일선)", "ok": true, "detail": "117,230"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +9 · 기 +389"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,082"}]}
+{"ts": "2026-07-31T09:06:06.406570+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6550, "qty": 303, "cost": 1984948, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4793, "target": 8804, "signals": [{"label": "손절선", "ok": true, "detail": "4,793 (현재 6,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,804"}, {"label": "추세(10일선)", "ok": true, "detail": "5,308"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +355 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,453"}]}
+{"ts": "2026-07-31T09:06:06.406695+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 77700, "qty": 84, "proceeds": 6514073, "entry_price": 89518, "pnl": -1006555, "pnl_pct": -13.2, "hold_from": "2026-07-23T09:50:01.502800+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "78,539 (현재 78,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 111,476"}, {"label": "추세(10일선)", "ok": false, "detail": "79,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -179 · 기 +325"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
diff --git a/agents/stock/workspace/state/sim/watchlist.json b/agents/stock/workspace/state/sim/watchlist.json
index 0690bc6..fa0bd45 100644
--- a/agents/stock/workspace/state/sim/watchlist.json
+++ b/agents/stock/workspace/state/sim/watchlist.json
@@ -394,11 +394,6 @@
"origin": "auto",
"added_at": "2026-06-26T21:02:10.941589+09:00"
},
- "222800": {
- "name": "심텍",
- "origin": "auto",
- "added_at": "2026-06-26T21:02:10.941589+09:00"
- },
"105560": {
"name": "KB금융",
"origin": "auto",
@@ -563,5 +558,35 @@
"name": "LG생활건강",
"origin": "auto",
"added_at": "2026-07-30T21:02:39.043188+09:00"
+ },
+ "034020": {
+ "name": "두산에너빌리티",
+ "origin": "auto",
+ "added_at": "2026-07-31T21:02:32.511308+09:00"
+ },
+ "267260": {
+ "name": "HD현대일렉트릭",
+ "origin": "auto",
+ "added_at": "2026-07-31T21:02:32.511308+09:00"
+ },
+ "316140": {
+ "name": "우리금융지주",
+ "origin": "auto",
+ "added_at": "2026-07-31T21:02:32.511308+09:00"
+ },
+ "064350": {
+ "name": "현대로템",
+ "origin": "auto",
+ "added_at": "2026-07-31T21:02:32.511308+09:00"
+ },
+ "194370": {
+ "name": "제이에스코퍼레이션",
+ "origin": "auto",
+ "added_at": "2026-07-31T21:02:32.511308+09:00"
+ },
+ "086670": {
+ "name": "비엠티",
+ "origin": "auto",
+ "added_at": "2026-07-31T21:02:32.511308+09:00"
}
}
\ No newline at end of file
diff --git a/workspace-attestations/8b2dbe352929b40690dbe9a3e5a138e58e47d1a42e88eb41d71e9539d3077451.attested b/workspace-attestations/8b2dbe352929b40690dbe9a3e5a138e58e47d1a42e88eb41d71e9539d3077451.attested
index 1c91ea0..03cc9ed 100644
--- a/workspace-attestations/8b2dbe352929b40690dbe9a3e5a138e58e47d1a42e88eb41d71e9539d3077451.attested
+++ b/workspace-attestations/8b2dbe352929b40690dbe9a3e5a138e58e47d1a42e88eb41d71e9539d3077451.attested
@@ -1,2 +1,2 @@
openclaw-workspace-attestation:v1
-2026-07-30T09:00:00.026Z
+2026-07-31T09:00:00.034Z
diff --git a/workspace-attestations/d1fd54262c444fd6ab822ec4652ce317fa713ba87c5b1c125db2c01f477eb8d3.attested b/workspace-attestations/d1fd54262c444fd6ab822ec4652ce317fa713ba87c5b1c125db2c01f477eb8d3.attested
index d977e83..bc2310e 100644
--- a/workspace-attestations/d1fd54262c444fd6ab822ec4652ce317fa713ba87c5b1c125db2c01f477eb8d3.attested
+++ b/workspace-attestations/d1fd54262c444fd6ab822ec4652ce317fa713ba87c5b1c125db2c01f477eb8d3.attested
@@ -1,3 +1,3 @@
openclaw-workspace-attestation:v1
-2026-07-30T10:00:00.029Z
+2026-07-31T10:00:00.028Z
generated:HEARTBEAT.md:ecce558615751a35aa173731e892ff3993f44bb4f5a1219c0a02994790c85528