Compare commits

..

9 Commits

Author SHA1 Message Date
hyowons 657969d115 auto: 일일 백업 2026-10-09 02:00
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-09 02:00:04 +09:00
hyowons 4f63ec56dc auto: 일일 백업 2026-10-08 02:00
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-08 02:00:06 +09:00
hyowons 114a1ef816 웹 채팅: 에이전트 선택 버튼·화면 고정·상태 보기·코디 세션 열기
- 하단 탭 → 입력창 왼쪽 에이전트 선택 버튼(목록 팝업, 안 읽은 답 빨간 점)
- 모바일 약 80% 크기(대화 본문 13.5px), iOS 입력 확대 방지
- 상단·하단 프레임 고정(페이지 스크롤 차단, 키보드 시 visualViewport 맞춤)
- ⋯ 메뉴에 상태 보기(/status)
- 🛠 코디: remote-control 세션 기동/재사용 후 Claude 앱 링크 제공

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 12:41:08 +09:00
hyowons 405a0a3228 CLAUDE.md: 자산웹 공모주 탭에 비하이브 공모청약 영상 요약 설명 추가
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 11:26:54 +09:00
hyowons 86e38478dd 웹 채팅(chat.hyowons.net) 추가 — 클로·레이·골디와 대화
- workspace/scripts/chat_web.py: 표준 라이브러리 단일 서버(포트 18793, launchd ai.openclaw.chat-web)
- 로그인: iMessage OTP 단독 + 30일 세션, 코드 발송 1분 1회·1시간 5회 제한, 실패 시 잠금+텔레그램 알림
- 에이전트 호출은 openclaw agent --session-key web… (텔레그램과 별도 맥락, 답은 웹에만)
- /clear(웹 전용), 선택지 버튼([[버튼: A | B]] 지정 + 문장 추출 폴백), 홈 화면 아이콘
- CLAUDE.md·TASKS.md(헬스체크 daemon 등록)·클로 MEMORY.md 문서화

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 11:26:03 +09:00
hyowons 5fb39272f5 auto: 일일 백업 2026-10-07 02:00
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-07 02:00:05 +09:00
hyowons 708961b449 claude-code-session: 프로필 한글 별칭(aliases) 지원
'아베르노 세션 열어줘' → develop2025 프로필로 매핑.
별칭은 state/claude_sessions.json 의 profiles.<name>.aliases 에 둔다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 11:32:05 +09:00
hyowons 5384b1d670 auto: 일일 백업 2026-10-03 02:00
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-03 02:00:04 +09:00
hyowons 5e47a15547 자산웹 공모주 탭 추가 + 상장일 관심종목 자동등록
- 자산정보 > 공모주 sub-tab: 오늘청약(증권사별 아이템, 기본 접힘) / 청약완료(상장일까지)
- 관리자(청약)·가희(청약) 버튼 — 사람별 종목당 1건 기록 (state/behive_ipo_subscribed.json)
- 타이틀 [청약] 배지: 미완료 청약 또는 청약 종목 상장일
- ipo_alert listing(08:30)에서 청약완료 종목을 상장일에 관심종목 등록
- 데이터는 네이버 IPO API, 증거금·수수료는 ipo_alert._manager_blocks 재사용(키움 콜 0)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 12:32:15 +09:00
174 changed files with 6017 additions and 3703 deletions
+6 -1
View File
File diff suppressed because one or more lines are too long
+2
View File
@@ -13,6 +13,7 @@
|---|---|---|
| **OpenClaw Gateway** | `openclaw gateway --port 18789` | launchd `ai.openclaw.gateway` (상시) |
| **비하이브 웹뷰** | `python3 ~/.openclaw/agents/stock/workspace/scripts/behive_web.py serve` | launchd `ai.openclaw.stock.behive-web` (상시) |
| **웹 채팅 (클로·레이·골디)** | `python3 ~/.openclaw/workspace/scripts/chat_web.py serve` | launchd `ai.openclaw.chat-web` (상시, 포트 18793). `chat.hyowons.net` → NAS 리버스 프록시. 로그인 = iMessage OTP 단독(비밀번호 없음, 코드 발송 1분 1회·1시간 5회 제한) |
| **후잉 동기화** | `python3 ~/.openclaw/agents/budget/workspace/skills/whooing-sync/scripts/whooing_sync.py` | launchd `ai.openclaw.budget.whooing-sync` (매 15분). 매 사이클 끝에 **가희 잔액 리마인더·자동분개** 모듈(`gahee_reminder.run`)도 함께 호출 — 매월 25일 10:00 KST 이후 첫 사이클에서 가희님께 iMessage 1회 발신, 이후 답신 폴링 → 텍스트면 후잉 가희주머니 차액 자동 분개, 이미지면 텔레그램 알림만 |
| **주식 포트폴리오 스냅샷** | `python3 ~/.openclaw/agents/stock/workspace/scripts/stock_portfolio_report.py send --no-mail` | launchd `ai.openclaw.stock.briefing` (평일 20:10) + 폴백 `-fallback-2030`(20:30, 스냅샷 없을 때만) · `-fallback-2100`(21:00, **무조건 fresh 재조회**). **메일 발송 중지**(2026-08-12 관리자님 결정 — 메일 통수 축소). `--no-mail`은 휴장일 self-skip·실패 텔레그램 알림은 유지하고 메일만 건너뜀. 목적은 자산웹 '당일 평가손익' 기준값이 되는 스냅샷 확보. 리포트 본문을 눈으로 보려면 `run`(메일 없이 평문+`/tmp/stock_report_preview.html`) |
| **증권잔액 → 골디 inbox** | `python3 ~/.openclaw/agents/stock/workspace/scripts/send_balance_to_budget.py` | launchd `ai.openclaw.stock.send-balance` (매월 1일 04:30) |
@@ -77,6 +78,7 @@ LLM이 자막 요약·뉴스 평문 생성·결산 보고서 등 본문을 만
| OpenClaw Gateway | `daemon:ai.openclaw.gateway` | - |
| 비하이브 웹뷰 | `daemon:ai.openclaw.stock.behive-web` | - |
| 시뮬 대시보드 | `daemon:ai.openclaw.stock.sim-web` | - |
| 웹 채팅 | `daemon:ai.openclaw.chat-web` | - |
| 후잉 동기화 | `logs/whooing-sync.log` | 2h |
| codex 폴백 감시 | `logs/codex-fallback-monitor.log` | 2h |
| 급등락 알림 | `logs/stock-surge-monitor.log` | 100h |
@@ -0,0 +1,3 @@
# 2026-10-07
- 관리자님 확인: 2026-10-07 10:56경 하나은행 900,000원 출금(`카뱅오픈방효원`)은 비용이 아니라 **증권계좌 이체**. 자동 동기화의 `기타비용 ← 하나은행(효원)` 오분류를 관리자님 요청으로 거래 ID 1231373에서 `증권(효원) ← 하나은행(효원)`으로 직접 수정함. 후잉 API 재조회로 방향·금액 확인 완료.
+2
View File
@@ -95,6 +95,7 @@ LLM-LLM 자연어 통신은 프롬프트 인젝션·할루시네이션 증폭
- **키움 조회:** `scripts/kiwoom_client.py {token|accounts|summary|balance|positions}` — 조회 전용 (주문 X)
- **일일 포트폴리오:** `scripts/stock_portfolio_report.py {run|send} [--by-account]` — 평일 20:10 launchd, 메일만 발송(텔레그램 요약 없음)
- **IPO 캘린더:** `scripts/ipo_calendar_sync.py` — 매월 1일 cron
- **IPO 텔레그램 알림:** `scripts/ipo_alert.py` — 매일 08:30 상장일, 10:00 청약 첫날만 알림. 증권사별 최소청약 증거금·온라인 일반 수수료 표시(공모가·증거금률은 숨김), `state/ipo_alerts.json`으로 중복 방지. 상장일(08:30 listing) 실행 때 자산웹에서 **청약완료한 종목은 관심종목에 자동등록**(종목당 1회)
- **비하이브 다이제스트:** `scripts/behive_youtube_digest.py {fetch|save|email|notify|list|show|remove}` — 평일 07/12/18시 cron
- **워치리스트 모니터:** `scripts/watchlist_monitor.py check` — 장중 15분, LLM 없이 직접 알림
- **워치리스트 웹뷰:** `scripts/behive_web.py serve` — launchd 상시, 외부는 `https://stock.hyowons.net/`
@@ -136,6 +137,7 @@ LLM-LLM 자연어 통신은 프롬프트 인젝션·할루시네이션 증폭
- `scripts/kiwoom_client.py {token|accounts|summary|balance|positions}` — 키움 REST 조회 전용 클라이언트. 잔고/보유/계좌평가. **주문 함수 절대 부재**(매매 절대 원칙, SOUL.md 참조). 자세한 사용법은 `skills/kiwoom-rest`.
- `scripts/stock_portfolio_report.py {run|send} [--by-account]` — 리포트 생성/이메일. 평일 20:10 launchd로 `send`. owner 그룹(본인 / 가희)별 블록 표시가 기본 (그룹 내 종목 합산), `--by-account`는 owner 블록 안에서 4계좌별 분리 뷰까지.
- `scripts/ipo_calendar_sync.py` — 공모주 일정 구글 캘린더 등록. 매월 1일 cron.
- `scripts/ipo_alert.py {subscription|listing}` — 청약 첫날 10:00·상장일 08:30 텔레그램 알림. `--dry-run`, `--date YYYY-MM-DD` 지원.
- `scripts/behive_youtube_digest.py {fetch|save|email|notify|list|show|remove}` — 비하이브투자자문 '종목분석' 영상 감지·요약·워치리스트 저장·이메일/텔레그램 발송. 평일 07/12/18시 cron.
## 관리자님 관련
+1 -1
View File
@@ -52,7 +52,7 @@
| `ipo-calendar-sync` | 매주 금요일 17:00 | `ipo_calendar_sync.py` | IPO 청약·상장 일정 → Google Calendar |
| `fomc-calendar-sync` | 매월 1일 09:10 | `fomc_calendar_sync.py` | 연준 FOMC 회의 일정 → Google Calendar `[FOMC] YYYY-MM 회의`(+` (SEP)`). 2026-07-29 신설. **캘린더엔 2026-03-23 관리자님이 2027-12까지 11건을 이미 손으로 등록해 두셨고 날짜도 정확** — 스크립트는 그 표기를 승계해 흡수했으므로 당분간 실제 신규 등록은 2028년분부터. **이벤트 기간 = 회의 시작일(ET) ~ 발표일(KST)** 3일 — 성명 발표가 KST로는 회의 종료 다음날 새벽(EDT 03:00·EST 04:00)이라, ET 날짜만 넣으면 한국 장이 결과를 반영하는 날에 캘린더가 비어 브리핑 '오늘 일정'에 안 뜬다(2026-07-29 관리자님 지적으로 수정). colorId 9 보존(`--event-color` 미지정). 삭제 루프가 `old_start <= today`를 건너뛰어 지난 회의는 안 지움. `--list`=파싱만(gog 미호출) |
| `holiday-sync` | 매주 일요일 03:00 | `holiday_sync.py` | investing.com → `state/market_holidays.json`. 실패 시 기존 파일 보존 |
| `behive-web` | 상시 (`KeepAlive`) | `behive_web.py serve` | 3-탭 워치리스트 웹뷰. Tailscale `100.75.148.12:18790` → `https://stock.hyowons.net/`(Synology reverse proxy). 코드 변경 후 bootout/bootstrap 필요 |
| `behive-web` | 상시 (`KeepAlive`) | `behive_web.py serve` | 3-탭 워치리스트 웹뷰. Tailscale `100.75.148.12:18790` → `https://stock.hyowons.net/`(Synology reverse proxy). 코드 변경 후 bootout/bootstrap 필요. **공모주 sub-tab**(2026-10-02): 자산정보 탭에서 청약기간 중 종목을 증권사별로 보여주고 `[관리자(청약)] [가희(청약)]`→완료 시 `관리자(완료)`로 사람별 종목당 1건 기록(`state/behive_ipo_subscribed.json`, 상장일까지 표시). 증거금 계산은 `ipo_alert._manager_blocks` 재사용. 청약완료 종목은 상장일 08:30 `ipo-alert`(listing) 실행 때 관심종목 자동등록(`register_listed_ipo_interests`, 종목당 1회). **비하이브 공모청약 영상 요약**(2026-10-07): 같은 `ipo-alert`(08:30·10:00) 실행 끝에 `ipo_youtube_digest.run()` — 새 `[🐝 공모청약]` 영상만 LLM 요약해 `state/ipo_youtube_summaries.json`, 공모주 카드에 `🐝 비하이브 의견` 표시. 새 트리거 없음. **가희 상장일 문자**(2026-10-07): 같은 08:30 listing 실행에서 가희가 청약한 종목 상장일에 가희님께 iMessage 1통(종목·증권사·확정공모가·09:00 거래시작) |
| `trade-journal` | 평일 21:00 (스크립트가 휴장일 self-skip) | `trade_journal.py collect` | ka10170 당일매매일지 4계좌 → `state/trade_journal.jsonl` 누적. NXT 야간 마감 후 발화. 키움이 기간 거래내역 API 미제공이라 일자별 적재만이 유일. `briefing-fallback-2100`(21:00)과 같은 시각이지만 둘 다 read-only 충돌 없음. 재실행 시 (date,account) 단위 idempotent. **시드**: 2026-05-13 1회 `trade_journal.py seed` 로 적재 시작일 이전 보유분을 현재 평단가×(qty - tdy_buyq + tdy_sellq)로 단일 시드 행 압축(28건, seed=true 플래그, `*` 마커). 시드는 가중평균이라 과거 매수 단가와 정확히 일치 X. CLI: `collect`/`seed`/`show <code>`/`query --from --to --account --code`. **2026-06-15 4번째 명령 추가**: `python3 -m sim universe all` — sim 관찰목록 자동편입/제외. 키움 순위정보(ka90009 외인·기관순매수 + ka10023 거래량급증)에서 ETF·하락·급증률 이상치 거르고 각 15·총 120 상한 편입(origin='auto'), origin=auto·미보유·10거래일 무신호만 자동제외(보유/watch/interest/manual 불가침). 신호추적=scan_all `universe.mark_signals`→`auto_seen.json`. **2026-09-10 5번째 명령 추가**: `kiwoom_client.py refresh-codes --if-stale 7` — 종목코드 캐시(`state/stock_codes.json`) 주 1회 갱신. `--if-stale N` 이 파일 mtime 을 보고 N일 미만이면 건너뛰므로 매일 발화해도 실제 ka10099 조회는 주 1회. ⚠️ 이 캐시의 `nxt_enable` 이 자산웹의 NXT 거래 종목 판정 근거(`behive_web._is_nxt_traded`)라 낡으면 🔥거래량 배지·거래가능 초록점이 틀어진다(금액·매매엔 영향 없음). 기존 lazy 갱신은 '모르는 종목명 검색' 때만 돌아 8/20~9/10 3주간 방치돼 있었고, 갱신하니 4300종목 중 nxt_enable 3건 변경·신규 17·삭제 13이 실제로 나왔다 |
| `sim-scan` | 평일 09:00–15:30 **매 2분** (`StartCalendarInterval` 196엔트리, 엔진이 장외/휴장 self-skip) ⚠️2026-06-09 15분→5분, 2026-06-17 5분→2분 단축(스캔 1회 실측 ~3.6초라 2분 cadence 오버랩·rate limit 여유, 1분이 캘린더 한계지만 일봉 신호라 2분 충분) + `StartInterval` 900s→`StartCalendarInterval` 전환(StartInterval은 GUI세션 idle/디스플레이 sleep 시 timer coalescing으로 발화 보류돼 장중 안 돎. calendar는 git-autopush가 새벽 02:00 정상발화로 검증됨) | `python3 -m sim scan` (내부 `scan_all` — 메인+병렬변이 동시) | **자동매매 시뮬(페이퍼)** 1회 스캔. 가상자본 1억(2026-06-10 1천만→1억), 규칙 엔진(LLM 미경유). universe=비하이브 워치+관심+보유(**ETF/ETN은 2026-06-09부터 자동매수 제외** — 애널 방향성 부재로 전략 부정합, `universe.is_etf()` 프리픽스 판별, 보유분은 청산까지 추적). 방향=애널 약한게이트+가점, 타이밍=수급·기술(2026-06-09 시장강약 필터: 하드차단→소프트게이트+장중 실시간 상승비율 + **지수추세 이중확인**). **2026-06-09 4종 추가**: 리스크 기반 사이징(`signals.target_value` 수량=자산×`RISK_PER_TRADE_PCT`÷손절폭, 균등비중 캡)·RSI 필터(돌파 과열/눌림목 과매도 보류)·**시장 국면 6단계**(`market_regime_map`→`engine.REGIME`: 🔥강세·📈반등·🌤완만상승=매수허용 / ➖혼조·📉약세·❄️급락=보류. 상승비율+지수추세+당일등락 조합. market_ok·시장탭 공용. 강세/약세 2단계가 84% 반등을 약세로 오판해 세분화)·**약세장 매수모드**(`BEAR_ENTRY_MODE` 0현금화/1돌파만/2눌림허용, market_ok False일 때 signals 분기. backtest는 시장중립이라 무영향→병렬변이로 라이브 비교. 2026-06-10 **유형36×모드3=108변이 풀매트릭스**로 확장, 첫 라이브 2026-06-11)·시간손절(`MAX_HOLD_DAYS` 미진전 청산)·**추세 질 보강**(2026-06-09 trend_ok 게이트에 ①20일선 우상향 기울기 ②5>60 중기정배열 추가〔종목데이터, backtest 반영〕 + ③상대강도〔종목−지수 N일수익률, 라이브 전용 체크〕). 사이징·시간손절은 엔진·백테스트 공용 헬퍼. TUNABLE 27개. **2026-06-10 코드리뷰 보강**: ①수급DB 일일증분(trade-journal 21시 묶음 3번째 명령 `-m sim.backfill_flow --pages 1 --force` — stale시 백테스트 수급게이트 중립화됨) ②일별 성과이력 `state/sim/equity_history.json`(EOD 덮어쓰기, ph=파라미터해시) ③당일 재진입 쿨다운(`Portfolio.last_exit`, backtest 동일) ④장중 거래량 하루치 환산(`vol_time_frac` — 이전엔 오전 돌파 불가). ⑤백테스트 체결 현실화(당일종가 판단→다음날 시가 체결 pending큐 + `BT_SLIPPAGE` 0.2% — 낙관분 ~5%p 제거) ⑥3분할 꾸준함 순위(`worst_ret` 1순위 — 한 구간 운빨 배제) ⑧**기준전략(M) 폐지**(2026-06-10 — scan_all 메인 패스 execute=False 판단전용·계좌 동결, 비교/매매는 변이 36개만, 메인 제외 규칙 삭제, 마킹 아이콘 6종 `favorites.json {아이콘:vid}`+`/fav_set`〔2026-06-11 ☆토글→아이콘 피커, 아이콘당 전략 1개〕, 관심종목 기본 시각=첫 마킹→1위) ⑦비교군 동기화는 **수동 전용**(2026-06-10 자동 동기화 끔 — sweep은 결과 파일만 갱신, 비교군 변경은 관리자님 명시 요청 시만 `python3 -m sim variants sync`. `sync_label_tops`=유형(~36종)별 1위 동기화, 동일params 계좌 유지. 백테스트 탭은 유형별 대표 읽기전용 요약, 수동 추가/제거·튜닝적용 버튼 제거). 잔여 한계: 검증 데이터가 여전히 ~1년 강세 위주(진짜 하락장 검증은 라이브 누적)·생존편향 universe(의도된 설계). 매수=돌파 즉시/눌림목 지정가, 매도=손절·2:1 후 트레일링·추세수급 이탈. 결과 `state/sim/`(portfolio.json·trades.jsonl·last_scan.json). 실주문 `orders/` 불가침. 일봉은 캐시 우선 읽기(ka10081 rate limit 회피). cwd=`agents/stock/workspace` |
| `sim-web` | 상시 (`KeepAlive`) | `python3 -m sim.sim_web serve` | 시뮬 대시보드 **별도 서버 포트 18792** (behive-web 18790과 분리). `sim.hyowons.net` → mac:18792 (Synology reverse proxy, **관리자님 수동 등록 대기**). Tailnet 한정 무인증. ⚠️ 18791은 node 점유라 18792. **3탭**(2026-06-10~11 개편, 내계좌·튜닝 탭 삭제): **전략**(기본=비교만, 서브탭 버튼 없음 — 백테스트 순위표는 [📊 모의결과보기] 토글)·**관심종목**(전 전략 합산 상태그룹 + 시각 드롭다운 + 👁토스트 맨 위 '▶ 시각' 판단 표시)·**시장**(지수/ADR/투자자). 비교 행 표기: 순위배지 `N위` → 약세장대처 칩(회피/안정/적극 — 2026-06-11 '돌파'→'안정' 개명, 칩 클릭=설명 토스트) → 고유번호 `#N` → 짧은 유형명(`상승장·빠른·공격·추세추종`) → 마킹 아이콘(6종 ⭐🔥💎🎯👀🚀, **아이콘당 전략 1개**, `favorites.json {아이콘:vid}`, `/fav_set`). 펼침 body: 유형(ⓘ=시장적합)→약세장대처(ⓘ)→성적→모의평가(`btN위/36` — 약세모드 3형제는 같은 bt등수 공유). **108변이 = 유형36 × 약세모드3**(2026-06-10 풀매트릭스, v37/38=bt1위의 회피/적극 쌍 순서). 새로고침 탭 보존(라디오↔URL 동기화 + `Cache-Control: no-store`, 2026-06-11). 읽기전용 원칙, 쓰기는 `do_POST` save_params/run_sweep/variants_*/watch_*/fav_set만. 시장 탭은 장중엔 네이버 m.stock 실시간(지수+상승하락·ADR·투자자 순매수, `_get_live_market` 60s 캐시), 장외엔 EOD jsonl 폴백 (2026-06-09: 이전엔 상승하락·투자자가 EOD 고정이라 장중 안 바뀌던 것 수정) |
File diff suppressed because it is too large Load Diff
+304
View File
@@ -0,0 +1,304 @@
#!/usr/bin/env python3
from __future__ import annotations
import argparse
import json
import subprocess
import sys
from datetime import date, datetime
from decimal import Decimal, ROUND_HALF_UP
from pathlib import Path
from ipo_calendar_sync import (
KST,
NAVER_IPO_API_URL,
_naver_api_rows,
fetch,
send_telegram,
)
STATE_FILE = Path('/Users/snowoyh/.openclaw/agents/stock/workspace/state/ipo_alerts.json')
# 온라인 일반 고객 기준. 고객등급·배정 여부에 따라 면제될 수 있다.
# 확인이 끝난 증권사만 숫자를 두고, 미확인 증권사는 알림에서 추정하지 않는다.
BROKER_ONLINE_FEES = {
'대신증권': 2_000,
'하나증권': 2_000,
'미래에셋증권': 2_000,
'삼성증권': 2_000,
'KB증권': 1_500,
'유진투자증권': 2_000,
'한국투자증권': 2_000,
'IBK투자증권': 0,
}
def load_state() -> dict:
try:
return json.loads(STATE_FILE.read_text())
except (FileNotFoundError, json.JSONDecodeError):
return {'sent': {}}
def save_state(state: dict) -> None:
STATE_FILE.parent.mkdir(parents=True, exist_ok=True)
STATE_FILE.write_text(json.dumps(state, ensure_ascii=False, indent=2))
def _int(value) -> int | None:
try:
return int(str(value).replace(',', '').strip())
except (TypeError, ValueError):
return None
def _money(value: int | None) -> str:
return '미확인' if value is None else f'{value:,}원'
def _detail(ipo_code: str) -> dict:
url = f'https://stock.naver.com/api/domestic/ipo/{ipo_code}/detail/info'
return json.loads(fetch(url, encoding='utf-8'))
def _date_range(start: str, end: str) -> str:
return start if not end or start == end else f'{start} ~ {end}'
def _required_deposit(total: int, ratio) -> int | None:
try:
pct = Decimal(str(ratio))
except Exception:
return None
return int((Decimal(total) * pct / Decimal(100)).quantize(Decimal('1'), rounding=ROUND_HALF_UP))
def _manager_blocks(row: dict, detail: dict) -> list[dict]:
info = detail.get('registrationStatement') or {}
ratio = info.get('sbscMrgnRatio') or '50'
price = _int((detail.get('demandForecastingResult') or {}).get('fixPubPrice'))
if price is None:
price = _int(row.get('fixPubPrice'))
managers = detail.get('joinManagers') or []
if not managers:
names = [x.strip() for x in (row.get('orgNm') or '').split(',') if x.strip()]
managers = [{'orgNm': name, 'sbscMinNum': None} for name in names]
if not managers:
managers = [{'orgNm': '미확인', 'sbscMinNum': None}]
blocks = []
for manager in managers:
broker = (manager.get('orgNm') or '미확인').strip()
min_qty = _int(manager.get('sbscMinNum'))
total = price * min_qty if price is not None and min_qty is not None else None
deposit = _required_deposit(total, ratio) if total is not None else None
fee = BROKER_ONLINE_FEES.get(broker)
blocks.append({
'broker': broker,
'min_qty': min_qty,
'price': price,
'total': total,
'ratio': ratio,
'deposit': deposit,
'fee': fee,
})
return blocks
def format_alert(kind: str, row: dict, detail: dict) -> str:
name = (row.get('compName') or (detail.get('ipoInfo') or {}).get('compName') or '미확인').strip()
info = detail.get('ipoInfo') or {}
if kind == 'subscription':
heading = '[공모주 청약]'
date_label = '청약일'
date_value = _date_range(info.get('poStartDate') or row.get('poStartDate') or '', info.get('poEndDate') or row.get('poEndDate') or '')
else:
heading = '[신규 상장]'
date_label = '상장일'
date_value = info.get('lcalDate') or row.get('lcalDate') or ''
sections = []
for block in _manager_blocks(row, detail):
price = block['price']
qty = block['min_qty']
if block['deposit'] is not None and qty is not None:
cost = f"{block['deposit']:,}원(최소 {qty:,}주)"
elif price is not None:
cost = '최소청약수량 미확인'
else:
cost = '미확정'
fee = block['fee']
cost += f" / 수수료 {_money(fee)}(온라인 일반 기준)"
sections.append('\n'.join([
heading,
f'종목명 : {name}',
f"증권사 : {block['broker']}",
f'{date_label} : {date_value}',
f'증거금 : {cost}',
]))
return '\n\n'.join(sections)
GAHEE_CRED = Path('/Users/snowoyh/.openclaw/credentials/gahee_imessage.json')
IPO_SUBSCRIBED = Path('/Users/snowoyh/.openclaw/agents/stock/workspace/state/behive_ipo_subscribed.json')
def gahee_listing_message(target: date, rows: list[tuple[dict, dict]] | None) -> tuple[list[str], str]:
"""가희가 청약한 종목 중 target 상장분 → (ipoCode 목록, 문자 본문). 없으면 ([], '').
상장일은 API 상장 목록 ∪ 청약기록 lcal_date(네이버 조회 실패해도 기록으로 보낸다)."""
try:
subscribed = json.loads(IPO_SUBSCRIBED.read_text())
except Exception:
return [], ''
by_code = {(r.get('ipoCode') or r.get('itemCode') or '').strip(): (r, d) for r, d in (rows or [])}
codes, blocks = [], []
for code, rec in subscribed.items():
broker = ((rec.get('by') or {}).get('gahee') or {}).get('broker')
if not broker or (code not in by_code and rec.get('lcal_date') != target.isoformat()):
continue
row, detail = by_code.get(code, ({}, None))
if detail is None:
try:
detail = _detail(code)
except Exception:
detail = {}
price = next((b['price'] for b in _manager_blocks(row, detail) if b.get('price') is not None), None)
lines = [f"[공모주 상장] 오늘 {rec.get('name') or row.get('compName') or code} 상장일이에요",
f'· 청약 증권사: {broker}']
if price is not None:
lines.append(f'· 확정 공모가: {price:,}원')
lines.append(f'· 09:00 거래 시작 — 배정 주식은 {broker} 앱에서 확인하세요')
codes.append(code)
blocks.append('\n'.join(lines))
return codes, '\n\n'.join(blocks)
def send_gahee_imessage(text: str) -> bool:
"""가희 리마인더(gahee_reminder._send_imessage)와 같은 방식 — imessage 강제(sms 는 이 수신자에게 3전 3패).
⚠️ rc=0 은 Messages 에 넘겼다는 뜻일 뿐 전달 확인이 아니다. 코디 셸에선 AppleEvents 거부로 안 되고 launchd 경유로만."""
handle = json.loads(GAHEE_CRED.read_text()).get('handle')
if not handle:
return False
p = subprocess.run(['imsg', 'send', '--to', handle, '--text', text, '--service', 'imessage'],
capture_output=True, text=True, timeout=30)
if p.returncode != 0:
print(f'gahee imsg send rc={p.returncode}: {p.stderr[:200]}', file=sys.stderr)
return p.returncode == 0
def collect_for_date(kind: str, target: date) -> list[tuple[dict, dict]]:
payload = json.loads(fetch(NAVER_IPO_API_URL, encoding='utf-8'))
matches = []
field = 'poStartDate' if kind == 'subscription' else 'lcalDate'
for row in _naver_api_rows(payload):
if row.get(field) != target.isoformat():
continue
code = (row.get('ipoCode') or row.get('itemCode') or '').strip()
if not code:
continue
matches.append((row, _detail(code)))
return matches
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument('kind', choices=('subscription', 'listing'))
parser.add_argument('--date', help='YYYY-MM-DD, 기본값은 오늘(KST)')
parser.add_argument('--dry-run', action='store_true')
args = parser.parse_args()
target = date.fromisoformat(args.date) if args.date else datetime.now(KST).date()
try:
rows = collect_for_date(args.kind, target)
except Exception as exc:
print(f'IPO alert source failed: {type(exc).__name__}: {exc}', file=sys.stderr)
rows = None
if args.kind == 'listing' and not args.dry_run:
# 자산웹에서 청약완료한 종목을 상장일에 관심종목으로 등록. 알림 소스가 죽어도
# 청약완료 기록의 상장일로 시도한다(그래서 위에서 바로 return 하지 않는다).
listed = {(r.get('ipoCode') or r.get('itemCode') or '').strip() for r, _ in (rows or [])}
try:
from behive_web import register_listed_ipo_interests
added = register_listed_ipo_interests(target.isoformat(), listed)
if added:
print(f'IPO interests added: {", ".join(added)}')
except Exception as exc:
print(f'IPO interests add failed: {type(exc).__name__}: {exc}', file=sys.stderr)
if not args.dry_run:
# 비하이브 '공모청약' 영상 요약 → 자산웹 공모주 탭. 새 영상 없으면 채널 페이지 1콜로 끝난다.
try:
from ipo_youtube_digest import run as run_ipo_youtube
print(f'IPO youtube digest: {json.dumps(run_ipo_youtube(), ensure_ascii=False)}')
except Exception as exc:
print(f'IPO youtube digest failed: {type(exc).__name__}: {exc}', file=sys.stderr)
if args.kind == 'listing':
# 가희가 청약한 종목의 상장일 아침 iMessage(2026-10-07 관리자님 요청). 같은 날 여러 종목이면 한 통.
try:
codes, text = gahee_listing_message(target, rows)
state = load_state()
key = f'gahee_listing|{target.isoformat()}|{",".join(sorted(codes))}'
if not codes:
pass
elif args.dry_run:
print(f'[dry-run] 가희 상장 문자:\n{text}\n')
elif key not in state.get('sent', {}):
if send_gahee_imessage(text):
state.setdefault('sent', {})[key] = datetime.now(KST).isoformat()
save_state(state)
print(f'gahee listing imessage sent: {",".join(codes)}')
except Exception as exc:
print(f'gahee listing imessage failed: {type(exc).__name__}: {exc}', file=sys.stderr)
if rows is None:
return 1
state = load_state()
sent = state.setdefault('sent', {})
delivered = 0
skipped = 0
for row, detail in rows:
code = (row.get('ipoCode') or row.get('itemCode') or '').strip()
key = f'{args.kind}|{target.isoformat()}|{code}'
if key in sent and not args.dry_run:
skipped += 1
continue
message = format_alert(args.kind, row, detail)
if args.dry_run:
print(message)
print()
continue
if not send_telegram(message):
print(f'IPO alert send failed: {key}', file=sys.stderr)
return 1
sent[key] = datetime.now(KST).isoformat()
delivered += 1
if not args.dry_run:
# 상태 파일이 무한히 커지지 않도록 최근 120일만 보존한다.
cutoff = date.fromordinal(target.toordinal() - 120).isoformat()
state['sent'] = {
key: value for key, value in sent.items()
if len(key.split('|')) < 2 or key.split('|')[1] >= cutoff
}
state['last_run_at'] = datetime.now(KST).isoformat()
state['last_kind'] = args.kind
state['last_target_date'] = target.isoformat()
state['last_found'] = len(rows)
state['last_delivered'] = delivered
state['last_skipped'] = skipped
save_state(state)
print(json.dumps({
'kind': args.kind,
'target_date': target.isoformat(),
'found': len(rows),
'delivered': delivered,
'skipped': skipped,
'dry_run': args.dry_run,
}, ensure_ascii=False))
return 0
if __name__ == '__main__':
raise SystemExit(main())
@@ -0,0 +1,199 @@
#!/usr/bin/env python3
"""비하이브 '[🐝 공모청약]' 영상 → 종목별 청약 의견 요약 (자산웹 공모주 탭 표시용).
흐름: 채널 영상 목록(youtube_briefing_digest 재사용) → 제목 '공모청약' 필터 → 처리 안 한 영상만
자막 → LLM 이 '지금 진행·예정 공모주 목록' 중 영상이 다룬 종목별로 요약 → state 에 영상 단위 저장.
behive_web 은 state 파일만 읽는다(렌더 경로 LLM·네트워크 0).
⚠️ 영상 하나가 여러 종목을 다룬다(예: 멜콘 영상 = 1주차 3종목) → 제목 해시태그로 매칭하지 않고
후보 목록을 LLM 에 주고 ipoCode 로 돌려받는다. 목록에 없는 코드는 버린다.
⚠️ 자막은 업로드 직후 없을 수 있다 → 실패는 기록만 하고 다음 실행에서 재시도, MAX_ATTEMPTS 후 포기.
트리거: ipo_alert.py(stock.ipo-alert 08:30·10:00)가 끝에 run() 을 부른다. 새 트리거 없음.
CLI: python3 ipo_youtube_digest.py [run|show] [--dry-run]
"""
from __future__ import annotations
import argparse
import json
import re
import subprocess
import sys
from datetime import date, datetime, timedelta
from pathlib import Path
sys.path.insert(0, '/Users/snowoyh/.openclaw/workspace/scripts')
import youtube_briefing_digest as ytd # noqa: E402
from ipo_calendar_sync import KST, NAVER_IPO_API_URL, _naver_api_rows, fetch # noqa: E402
STATE_FILE = Path('/Users/snowoyh/.openclaw/agents/stock/workspace/state/ipo_youtube_summaries.json')
VIDEOS_URL = ytd.CHANNELS['behive']['videos_url']
TITLE_FILTER = '공모청약'
# launchd PATH 의 /opt/homebrew/bin/openclaw 는 node22 라 안 뜬다 — node24 래퍼를 절대경로로.
OPENCLAW_BIN = str(Path.home() / '.local/bin/openclaw')
LLM_MODEL = 'openai/gpt-5.6-sol'
LLM_TIMEOUT_SEC = 180
MAX_ATTEMPTS = 6 # 자막 미생성·LLM 실패 재시도 상한 (하루 2회 실행 → 약 3일)
KEEP_DAYS = 120 # 상장 끝난 지 오래된 영상 기록 정리
VERDICTS = {'positive': '청약 매력 높음', 'neutral': '중립·수요예측 확인', 'negative': '청약 부담'}
def load_state() -> dict:
try:
return json.loads(STATE_FILE.read_text())
except Exception:
return {'videos': {}}
def save_state(state: dict) -> None:
tmp = STATE_FILE.with_suffix('.json.tmp')
tmp.write_text(json.dumps(state, ensure_ascii=False, indent=2))
tmp.replace(STATE_FILE)
def _candidates(today: date) -> list[dict]:
"""요약 대상 후보 = 아직 상장 안 했거나 상장 2주 이내인 공모주(청약 전·중·후 모두)."""
rows = _naver_api_rows(json.loads(fetch(NAVER_IPO_API_URL, encoding='utf-8')))
floor = (today - timedelta(days=14)).isoformat()
out = []
for r in rows:
code = (r.get('ipoCode') or r.get('itemCode') or '').strip()
name = (r.get('compName') or '').strip()
if not code or not name:
continue
if (r.get('lcalDate') or '9999') < floor:
continue
out.append({'ipo_code': code, 'name': name, 'po_start': r.get('poStartDate') or '',
'po_end': r.get('poEndDate') or '', 'lcal_date': r.get('lcalDate') or '',
'hope': f"{r.get('hopePubStart') or '?'}~{r.get('hopePubEnd') or '?'}",
'fix': r.get('fixPubPrice') or ''})
return out
def _call_llm(prompt: str) -> str:
cmd = [OPENCLAW_BIN, 'capability', 'model', 'run', '--prompt', prompt, '--model', LLM_MODEL, '--json']
p = subprocess.run(cmd, capture_output=True, text=True, timeout=LLM_TIMEOUT_SEC)
if p.returncode != 0:
raise RuntimeError(f'LLM rc={p.returncode}: {p.stderr[-300:]}')
data = json.loads(p.stdout[p.stdout.index('{'):])
text = ((data.get('outputs') or [{}])[0].get('text') or '').strip()
if not data.get('ok') or not text:
raise RuntimeError(f'LLM 응답 비정상: {str(data)[:300]}')
return text
def _prompt(title: str, transcript: str, cands: list[dict]) -> str:
cand_lines = '\n'.join(
f'- {c["ipo_code"]} {c["name"]} (청약 {c["po_start"]}~{c["po_end"]}, 희망공모가 {c["hope"]}원'
+ (f', 확정공모가 {c["fix"]}원' if c['fix'] else '') + ')' for c in cands)
return f"""아래는 유튜브 채널 '비하이브 투자자문'의 공모주 청약 영상 자막(자동생성, 오타 많음)이다.
영상이 **구체적으로 분석한** 종목만 골라 종목별로 요약하라. 일정만 언급하고 지나간 종목은 제외.
종목은 반드시 아래 후보 목록의 코드로 지정한다(자막의 종목명 오타는 후보명으로 맞춰 판단). 후보에 없으면 제외.
[후보]
{cand_lines}
[영상 제목] {title}
[자막]
{transcript}
출력은 JSON 배열 하나만(설명·코드펜스 금지):
[{{"ipo_code":"A123456","verdict":"positive|neutral|negative","verdict_text":"영상 결론 한 구절(15자 이내)","points":["핵심 3~4개, 각 40자 이내"]}}]
- verdict: 영상 화자의 청약 의견. 긍정=positive, 유보·수요예측 보고 판단=neutral, 부정·부담=negative
- 자막 숫자는 받아쓰기 오류가 잦다(예: 74,000→7,400). 공모가는 후보 정보가 정답이니 그 값을 쓰고, 다른 수치도 앞뒤가 안 맞으면 빼라
- points: 사업 한 줄 / 실적 추이(수치) / 유통가능물량(%) / 공모가·밸류 부담 등 화자가 짚은 장단점. 영상에 없는 내용 지어내지 말 것
- 해당 종목이 없으면 []"""
def _parse(text: str, cands: list[dict]) -> list[dict]:
m = re.search(r'\[.*\]', text, re.S)
arr = json.loads(m.group(0)) if m else []
names = {c['ipo_code']: c['name'] for c in cands}
out = []
for it in arr:
code = str(it.get('ipo_code') or '').strip()
if code not in names:
continue
verdict = it.get('verdict') if it.get('verdict') in VERDICTS else 'neutral'
points = [str(p).strip() for p in (it.get('points') or []) if str(p).strip()][:4]
out.append({'ipo_code': code, 'name': names[code], 'verdict': verdict,
'verdict_text': str(it.get('verdict_text') or VERDICTS[verdict]).strip()[:30],
'points': points})
return out
def run(dry_run: bool = False) -> dict:
"""새 공모청약 영상만 요약. 반환: {new, summarized, failed}."""
now = datetime.now(KST)
state = load_state()
videos = state.setdefault('videos', {})
listing = [v for v in ytd.fetch_channel_videos(VIDEOS_URL) if TITLE_FILTER in v.get('title', '')]
todo = [v for v in listing
if not videos.get(v['video_id'], {}).get('done')
and videos.get(v['video_id'], {}).get('attempts', 0) < MAX_ATTEMPTS]
result = {'new': len(todo), 'summarized': 0, 'failed': 0}
if not todo:
return result
cands = _candidates(now.date())
for v in todo:
vid = v['video_id']
rec = videos.setdefault(vid, {'title': v['title'], 'url': ytd.WATCH_URL.format(vid=vid), 'attempts': 0})
try:
transcript, status = ytd.fetch_transcript(vid)
if status != 'ok':
raise RuntimeError(f'자막 {status}')
stocks = _parse(_call_llm(_prompt(v['title'], transcript, cands)), cands)
except Exception as e:
rec['attempts'] = rec.get('attempts', 0) + 1
rec['last_error'] = f'{type(e).__name__}: {e}'[:300]
result['failed'] += 1
print(f'ipo yt {vid} 실패({rec["attempts"]}): {rec["last_error"]}', file=sys.stderr)
continue
published = ytd.get_publish_kst(vid)
rec.update({'done': True, 'stocks': stocks, 'summarized_at': now.isoformat(timespec='seconds'),
'published_kst': published.isoformat() if published else None})
rec.pop('last_error', None)
result['summarized'] += 1
if dry_run:
print(json.dumps({vid: rec}, ensure_ascii=False, indent=2))
# 오래된 기록 정리 — 목록에서 빠졌고 요약 시각이 KEEP_DAYS 넘은 것
cutoff = (now - timedelta(days=KEEP_DAYS)).isoformat()
for vid in [k for k, r in videos.items() if (r.get('summarized_at') or now.isoformat()) < cutoff]:
videos.pop(vid)
if not dry_run:
save_state(state)
return result
def summaries_by_code() -> dict[str, list[dict]]:
"""behive_web 용: ipoCode → [{video_id,title,url,published_kst,verdict,verdict_text,points,tagged}].
제목 해시태그에 그 종목이 있는 전용 영상을 앞에, 그다음 최신순."""
out: dict[str, list[dict]] = {}
for vid, rec in load_state().get('videos', {}).items():
for s in rec.get('stocks') or []:
out.setdefault(s['ipo_code'], []).append({
'video_id': vid, 'title': rec.get('title', ''), 'url': rec.get('url', ''),
'published_kst': rec.get('published_kst') or rec.get('summarized_at') or '',
'verdict': s['verdict'], 'verdict_text': s['verdict_text'], 'points': s['points'],
'tagged': f'#{s["name"]}' in rec.get('title', ''),
})
for lst in out.values():
lst.sort(key=lambda x: x['published_kst'], reverse=True)
lst.sort(key=lambda x: not x['tagged'])
return out
def main() -> int:
ap = argparse.ArgumentParser()
ap.add_argument('cmd', nargs='?', default='run', choices=('run', 'show'))
ap.add_argument('--dry-run', action='store_true')
args = ap.parse_args()
if args.cmd == 'show':
print(json.dumps(summaries_by_code(), ensure_ascii=False, indent=2))
return 0
print(json.dumps(run(args.dry_run), ensure_ascii=False))
return 0
if __name__ == '__main__':
raise SystemExit(main())
@@ -0,0 +1,128 @@
#!/usr/bin/env python3
"""자산웹 손익차트 과거 구간 채우기 — 키움 kt00002(일별추정예탁자산현황) → state/net_worth_history.json.
portfolio_daily_snapshot 은 2026-05-01 부터만 쓸 수 있는 형식이라(4월은 예수금 없는 옛 형식) 그 이전
차트가 비어 있다. 키움 계좌별 일별 추정예탁자산으로 그 앞 구간을 채운다. 조회 전용, 1회성 CLI.
- 조회기간 한 번에 6개월 미만(`501067`) → 170일 창으로 쪼갠다. 계좌당 3~4콜.
- kt00002 는 주말·휴장일도 행이 온다 → KOSPI 일별종가가 있는 날(sim index_history)만 남긴다.
market_holidays.json 은 2026년부터라 2025 휴장일을 못 거른다.
- 값 기준이 스냅샷과 다르다(KRX 종가 − 추정 매도비용 ≈0.18%, 스냅샷은 20:10 NXT 가격) →
겹치는 첫날(스냅샷 첫 날짜)의 비율로 owner 별 스케일을 맞춰 경계일 단차를 없앤다.
- 입출금은 investment_principal 캐시(kt00015, 키움 콜 0)에서 — 스냅샷 cash_in 과 같은 의미
(배당·이자 포함 전체 입출금).
CLI: python3 net_worth_backfill.py [--from YYYY-MM-DD] [--dry-run]
"""
from __future__ import annotations
import argparse
import json
import os
import sys
import time
from datetime import date, datetime, timedelta
from pathlib import Path
from zoneinfo import ZoneInfo
sys.path.insert(0, str(Path(__file__).resolve().parent))
import investment_principal as ip # noqa: E402
import kiwoom_client as kc # noqa: E402
KST = ZoneInfo('Asia/Seoul')
STATE = Path(__file__).resolve().parent.parent / 'state'
SNAPSHOT_FILE = STATE / 'portfolio_daily_snapshot.json'
INDEX_FILE = STATE / 'sim' / 'index_history.json'
OUT_FILE = STATE / 'net_worth_history.json'
OWNERS = {'본인': ['일반', 'ISA'], '가희': ['가희_일반', '가희_ISA']}
WINDOW_DAYS = 170
def _first_snapshot_date(snap: dict, owner: str) -> str | None:
"""스냅샷에서 차트가 쓰는 형식(holdings+deposit)이 시작되는 날짜."""
return next((d for d in sorted(snap) if 'holdings' in ((snap.get(d) or {}).get(owner) or {})), None)
def _fetch_account(label: str, start: date, end: date) -> dict[str, int]:
"""{YYYY-MM-DD: 추정예탁자산}. 계좌 개설 전 구간은 '내역 없음' 에러라 빈 창으로 친다."""
out: dict[str, int] = {}
cur = start
while cur <= end:
w_end = min(cur + timedelta(days=WINDOW_DAYS), end)
try:
r = kc._call_paginated(label, 'kt00002',
{'start_dt': cur.strftime('%Y%m%d'), 'end_dt': w_end.strftime('%Y%m%d')},
'daly_prsm_dpst_aset_amt_prst')
for x in r.get('daly_prsm_dpst_aset_amt_prst') or []:
v = kc._to_int(x.get('prsm_dpst_aset_amt'))
if v:
d = x['dt']
out[f'{d[:4]}-{d[4:6]}-{d[6:]}'] = v
except RuntimeError as e:
if '506476' not in str(e): # 506476 = 내역 없음(개설 전)
raise
time.sleep(0.4)
cur = w_end + timedelta(days=1)
return out
def main() -> int:
ap = argparse.ArgumentParser()
ap.add_argument('--from', dest='frm', default='2025-01-01')
ap.add_argument('--dry-run', action='store_true')
a = ap.parse_args()
snap = json.loads(SNAPSHOT_FILE.read_text())
idx = json.loads(INDEX_FILE.read_text()).get('KOSPI') or {}
trading = {f'{d[:4]}-{d[4:6]}-{d[6:]}' for d in idx}
start = date.fromisoformat(a.frm)
if f'{start:%Y-%m-%d}' < min(trading):
print(f'⚠️ 거래일 달력(KOSPI)이 {min(trading)} 부터라 그 이전은 거를 수 없다', file=sys.stderr)
return 1
days: dict[str, dict] = {}
scale: dict[str, float] = {}
for owner, labels in OWNERS.items():
first = _first_snapshot_date(snap, owner)
if not first:
print(f'{owner}: 스냅샷 없음 — 건너뜀', file=sys.stderr)
continue
end = date.fromisoformat(first) # 겹치는 첫날까지 받아 스케일 기준으로 쓴다
per_acct = {lb: _fetch_account(lb, start, end) for lb in labels}
# 기준일(스냅샷 첫날)은 휴장일일 수 있어(2026-05-01 근로자의 날) 거래일 필터는 저장 행에만 건다.
total = {d: sum(per_acct[lb].get(d, 0) for lb in labels) for d in set().union(*per_acct.values())}
o_snap = snap[first][owner]
snap_net = sum(int(h.get('eval_value', 0) or 0) for h in o_snap['holdings'].values()) + int(o_snap.get('deposit', 0) or 0)
if not total.get(first):
print(f'{owner}: 기준일 {first} kt00002 값 없음 — 중단', file=sys.stderr)
return 1
scale[owner] = snap_net / total[first]
flows: dict[str, dict] = {}
for f in ip.get_flows(labels)['rows']:
d = f'{f["date"][:4]}-{f["date"][4:6]}-{f["date"][6:]}'
k = 'cash_in' if f['io'] == 'IN' else 'cash_out'
flows.setdefault(d, {'cash_in': 0, 'cash_out': 0})[k] += int(f['amount'])
n = 0
for d in sorted(total):
if d >= first or d not in trading:
continue
rec = {'net': round(total[d] * scale[owner])}
rec.update(flows.get(d) or {})
days.setdefault(d, {})[owner] = rec
n += 1
print(f'{owner}: {n}일 ({min(days)} ~ {first} 직전), 스케일 {scale[owner]:.5f} (기준 {first} 스냅샷 {snap_net:,} / 키움 {total[first]:,})')
doc = {'source': 'kiwoom kt00002', 'fetched_at': datetime.now(KST).isoformat(timespec='seconds'),
'scale': scale, 'days': dict(sorted(days.items()))}
if a.dry_run:
print('dry-run — 저장 안 함')
return 0
tmp = OUT_FILE.with_suffix('.tmp')
tmp.write_text(json.dumps(doc, ensure_ascii=False, indent=1))
os.replace(tmp, OUT_FILE)
print(f'저장: {OUT_FILE} ({len(days)}일)')
return 0
if __name__ == '__main__':
sys.exit(main())
@@ -0,0 +1,68 @@
import sys
import unittest
from datetime import date
from pathlib import Path
from unittest.mock import patch
SCRIPTS = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(SCRIPTS))
import ipo_alert
class IpoAlertTests(unittest.TestCase):
def setUp(self):
self.row = {
'ipoCode': 'A250030',
'compName': '진코스텍',
'poStartDate': '2026-10-02',
'poEndDate': '2026-10-06',
'lcalDate': '2026-10-15',
'fixPubPrice': '23500',
'orgNm': '하나증권',
}
self.detail = {
'ipoInfo': {
'compName': '진코스텍',
'poStartDate': '2026-10-02',
'poEndDate': '2026-10-06',
'lcalDate': '2026-10-15',
},
'registrationStatement': {'sbscMrgnRatio': '50.00'},
'demandForecastingResult': {'fixPubPrice': '23500'},
'joinManagers': [{'orgNm': '하나증권', 'sbscMinNum': '10'}],
}
def test_subscription_format_uses_first_day_and_minimum_cash(self):
text = ipo_alert.format_alert('subscription', self.row, self.detail)
self.assertIn('종목명 : 진코스텍', text)
self.assertIn('증권사 : 하나증권', text)
self.assertIn('청약일 : 2026-10-02 ~ 2026-10-06', text)
self.assertIn('증거금 : 117,500원(최소 10주)', text)
self.assertNotIn('23,500원', text)
self.assertNotIn('50%', text)
self.assertIn('수수료 2,000원(온라인 일반 기준)', text)
def test_listing_uses_listing_date(self):
text = ipo_alert.format_alert('listing', self.row, self.detail)
self.assertIn('[신규 상장]', text)
self.assertIn('상장일 : 2026-10-15', text)
def test_collect_subscription_matches_only_first_day(self):
payload = {
'examinationList': [], 'demandForecastingList': [],
'forecastingCompleteList': [],
'subscriptionList': [self.row],
'subscriptionCompleteList': [], 'listingList': [],
}
with patch.object(ipo_alert, 'fetch', return_value=ipo_alert.json.dumps(payload)), patch.object(
ipo_alert, '_detail', return_value=self.detail
):
first = ipo_alert.collect_for_date('subscription', date(2026, 10, 2))
second = ipo_alert.collect_for_date('subscription', date(2026, 10, 3))
self.assertEqual(len(first), 1)
self.assertEqual(second, [])
if __name__ == '__main__':
unittest.main()
@@ -180,3 +180,11 @@
{"date": "2026-09-30", "market": "KOSPI", "market_label": "코스피", "rise": 352, "upper": 1, "fall": 513, "lower": 0, "steady": 49, "adr": 68.81, "personal": 12109, "foreign": -20646, "institutional": -7993, "captured_at": "2026-09-30T21:00:02.664980+09:00"}
{"date": "2026-10-01", "market": "KOSDAQ", "market_label": "코스닥", "rise": 1230, "upper": 2, "fall": 423, "lower": 0, "steady": 89, "adr": 291.25, "personal": -7770, "foreign": 2280, "institutional": 5684, "captured_at": "2026-10-01T21:00:02.087388+09:00"}
{"date": "2026-10-01", "market": "KOSPI", "market_label": "코스피", "rise": 542, "upper": 0, "fall": 332, "lower": 0, "steady": 42, "adr": 163.25, "personal": -14102, "foreign": -5558, "institutional": 3239, "captured_at": "2026-10-01T21:00:02.087388+09:00"}
{"date": "2026-10-02", "market": "KOSDAQ", "market_label": "코스닥", "rise": 958, "upper": 4, "fall": 681, "lower": 0, "steady": 102, "adr": 141.26, "personal": 841, "foreign": -1767, "institutional": 936, "captured_at": "2026-10-02T21:00:06.325959+09:00"}
{"date": "2026-10-02", "market": "KOSPI", "market_label": "코스피", "rise": 500, "upper": 1, "fall": 362, "lower": 0, "steady": 56, "adr": 138.4, "personal": -17897, "foreign": -1080, "institutional": 4155, "captured_at": "2026-10-02T21:00:06.325959+09:00"}
{"date": "2026-10-06", "market": "KOSDAQ", "market_label": "코스닥", "rise": 1012, "upper": 6, "fall": 645, "lower": 0, "steady": 81, "adr": 157.83, "personal": -2111, "foreign": 1073, "institutional": 1047, "captured_at": "2026-10-06T21:00:05.141855+09:00"}
{"date": "2026-10-06", "market": "KOSPI", "market_label": "코스피", "rise": 425, "upper": 0, "fall": 461, "lower": 0, "steady": 32, "adr": 92.19, "personal": 7441, "foreign": -17575, "institutional": -39, "captured_at": "2026-10-06T21:00:05.141855+09:00"}
{"date": "2026-10-07", "market": "KOSDAQ", "market_label": "코스닥", "rise": 596, "upper": 3, "fall": 1060, "lower": 0, "steady": 85, "adr": 56.51, "personal": 4871, "foreign": -2495, "institutional": -2102, "captured_at": "2026-10-07T21:00:04.754118+09:00"}
{"date": "2026-10-07", "market": "KOSPI", "market_label": "코스피", "rise": 333, "upper": 3, "fall": 527, "lower": 0, "steady": 57, "adr": 63.76, "personal": 26183, "foreign": -26188, "institutional": -7101, "captured_at": "2026-10-07T21:00:04.754118+09:00"}
{"date": "2026-10-08", "market": "KOSDAQ", "market_label": "코스닥", "rise": 618, "upper": 13, "fall": 1031, "lower": 1, "steady": 88, "adr": 61.14, "personal": 483, "foreign": 625, "institutional": -1075, "captured_at": "2026-10-08T21:00:05.577237+09:00"}
{"date": "2026-10-08", "market": "KOSPI", "market_label": "코스피", "rise": 252, "upper": 3, "fall": 625, "lower": 0, "steady": 40, "adr": 40.8, "personal": 29972, "foreign": -20704, "institutional": -16789, "captured_at": "2026-10-08T21:00:05.577237+09:00"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
{
"cash": 8293681.140499972,
"cash": 11759121.887999972,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,37 +13,16 @@
"entry_at": "2026-07-08T09:16:01.874405+09:00",
"stop": 112596,
"target": 175793,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 5572914.42378125,
"last_add_price": 130800
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 31,
"entry_price": 347064.51612903224,
"entry_at": "2026-07-16T09:04:02.184863+09:00",
"stop": 305213,
"target": 472619,
"peak": 465250,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 314500,
"tranches": 2,
"tranche_value": 5640114.3750312505,
"last_add_price": 353000
},
"194370": {
"code": "194370",
"name": "제이에스코퍼레이션",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4803063.4110624995,
"last_add_price": 13420
@@ -76,12 +55,12 @@
"entry_at": "2026-09-03T09:02:19.208652+09:00",
"stop": 10093,
"target": 16265,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 4801549.203874999,
"last_add_price": 11930
@@ -102,53 +81,11 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,168 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 3703169.8275951464,
"last_add_price": 13820
},
"000720": {
"code": "000720",
"name": "현대건설",
"sources": [
"interest"
],
"qty": 72,
"entry_price": 130636.11111111111,
"entry_at": "2026-09-07T15:06:30.638654+09:00",
"stop": 112556,
"target": 184877,
"peak": 141500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 117300,
"tranches": 2,
"tranche_value": 4783418.996406249,
"last_add_price": 133000
},
"316140": {
"code": "316140",
"name": "우리금융지주",
"sources": [
"auto"
],
"qty": 127,
"entry_price": 36450,
"entry_at": "2026-09-15T09:10:30.136492+09:00",
"stop": 32978,
"target": 46866,
"peak": 36650,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"tranches": 1,
"tranche_value": 4659198.910937498,
"last_add_price": 36450
},
"088350": {
"code": "088350",
"name": "한화생명",
@@ -165,14 +102,77 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5270,
"cur_price": 5190,
"tranches": 1,
"tranche_value": 4695809.036093748,
"last_add_price": 5740
},
"161890": {
"code": "161890",
"name": "한국콜마",
"sources": [
"auto"
],
"qty": 34,
"entry_price": 136600,
"entry_at": "2026-10-02T14:48:37.320234+09:00",
"stop": 116526,
"target": 196823,
"peak": 148900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 138400,
"tranches": 1,
"tranche_value": 4696049.632218748,
"last_add_price": 136600
},
"108490": {
"code": "108490",
"name": "로보티즈",
"sources": [
"interest"
],
"qty": 14,
"entry_price": 316500,
"entry_at": "2026-10-06T13:48:38.139356+09:00",
"stop": 268844,
"target": 459469,
"peak": 323500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 299500,
"tranches": 1,
"tranche_value": 4645722.400968748,
"last_add_price": 316500
},
"295310": {
"code": "295310",
"name": "에이치브이엠",
"sources": [
"watch"
],
"qty": 127,
"entry_price": 72011.02362204724,
"entry_at": "2026-10-08T09:06:38.453273+09:00",
"stop": 62774,
"target": 99722,
"peak": 76700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 74200,
"tranches": 2,
"tranche_value": 4640247.106124998,
"last_add_price": 73700
}
},
"realized_pnl": -28631149.003000036,
"closed_trades": 32,
"realized_pnl": -31739844.228000037,
"closed_trades": 35,
"wins": 1,
"peak_equity": 100102462.48,
"max_drawdown": 0.2711544112406138,
@@ -184,7 +184,7 @@
"403870": "2026-07-07",
"240810": "2026-07-24",
"093370": "2026-07-20",
"214450": "2026-07-15",
"214450": "2026-10-02",
"055550": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-08-24",
@@ -195,8 +195,10 @@
"257720": "2026-09-04",
"068270": "2026-09-04",
"327260": "2026-09-07",
"003550": "2026-09-15"
"003550": "2026-09-15",
"000720": "2026-10-06",
"316140": "2026-10-08"
},
"created_at": "2026-06-11T09:00:01.943184+09:00",
"updated_at": "2026-10-01T15:28:32.985352+09:00"
"updated_at": "2026-10-08T15:28:36.335052+09:00"
}
@@ -99,3 +99,10 @@
{"ts": "2026-09-15T09:10:30.136504+09:00", "side": "BUY", "code": "316140", "name": "우리금융지주", "price": 36450, "qty": 127, "cost": 4629844, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 32978, "target": 46866, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "36,200 vs 32,230"}, {"label": "정배열(5>10)", "ok": true, "detail": "33,260 / 32,230"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "33,260 / 30,948"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+20.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +3,281 · 기 -786 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.54% (환산) vs 평균 0.34% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 33,850"}, {"label": "거래량 급증", "ok": true, "detail": "3,898,453 (환산) vs 평균 2,489,243"}, {"label": "회전율 급증", "ok": true, "detail": "0.54% (환산) vs 평균 0.34%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-09-22T09:32:35.251487+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 109700, "qty": 75, "proceeds": 8211456, "entry_price": 127165, "pnl": -1327374, "pnl_pct": -13.73, "hold_from": "2026-09-04T12:34:21.902508+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "110,486 (현재 110,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 177,203"}, {"label": "추세(10일선)", "ok": true, "detail": "83,080"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +266 · 기 -141"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-22T09:32:35.675940+09:00", "side": "BUY", "code": "088350", "name": "한화생명", "price": 5740, "qty": 817, "cost": 4690283, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5129, "target": 7573, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "5,720 vs 4,822"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,161 / 4,822"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,161 / 4,734"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -544 · 기 +443 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+11%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.68% (환산) vs 평균 0.43% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,630"}, {"label": "거래량 급증", "ok": true, "detail": "5,933,633 (환산) vs 평균 3,731,411"}, {"label": "회전율 급증", "ok": true, "detail": "0.68% (환산) vs 평균 0.43%"}, {"label": "RSI", "ok": true, "detail": "74"}]}
{"ts": "2026-10-02T14:48:36.881112+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 304500, "qty": 31, "proceeds": 9421093, "entry_price": 347065, "pnl": -1339521, "pnl_pct": -12.26, "hold_from": "2026-07-16T09:04:02.184863+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "305,213 (현재 305,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 472,619"}, {"label": "추세(10일선)", "ok": true, "detail": "301,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -122"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-02T14:48:37.320243+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 136600, "qty": 34, "cost": 4645097, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 116526, "target": 196823, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "136,300 vs 112,690"}, {"label": "정배열(5>10)", "ok": true, "detail": "114,560 / 112,690"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "114,560 / 92,538"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+50.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +32 · 기 -67 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+27%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.28% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": true, "detail": "1,006,968 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": true, "detail": "4.28% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "76"}]}
{"ts": "2026-10-06T13:48:37.716813+09:00", "side": "SELL", "code": "000720", "name": "현대건설", "price": 112600, "qty": 72, "proceeds": 8091391, "entry_price": 130636, "pnl": -1315820, "pnl_pct": -13.81, "hold_from": "2026-09-07T15:06:30.638654+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "112,556 (현재 112,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 184,877"}, {"label": "추세(10일선)", "ok": false, "detail": "112,890"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -101 · 기 -533"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-06T13:48:38.139374+09:00", "side": "BUY", "code": "108490", "name": "로보티즈", "price": 316500, "qty": 14, "cost": 4431665, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 268844, "target": 459469, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "316,000 vs 263,000"}, {"label": "정배열(5>10)", "ok": true, "detail": "274,000 / 263,000"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "274,000 / 242,227"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +82 · 기 +24 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+24%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.91% (환산) vs 평균 1.94% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 315,000"}, {"label": "거래량 급증", "ok": true, "detail": "574,160 (환산) vs 평균 284,061"}, {"label": "회전율 급증", "ok": true, "detail": "3.91% (환산) vs 평균 1.94%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
{"ts": "2026-10-08T09:06:38.026073+09:00", "side": "SELL", "code": "316140", "name": "우리금융지주", "price": 32950, "qty": 127, "proceeds": 4176490, "entry_price": 36450, "pnl": -453354, "pnl_pct": -9.6, "hold_from": "2026-09-15T09:10:30.136492+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "32,978 (현재 32,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 46,866"}, {"label": "추세(10일선)", "ok": true, "detail": "31,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +17,844 · 기 +1,402"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 37,223"}]}
{"ts": "2026-10-08T09:06:38.453290+09:00", "side": "BUY", "code": "295310", "name": "에이치브이엠", "price": 70400, "qty": 65, "cost": 4576686, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 61192, "target": 98025, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "70,700 vs 55,755"}, {"label": "정배열(5>10)", "ok": true, "detail": "61,380 / 55,755"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "61,380 / 47,905"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+42.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -73 · 기 +228 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+19%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.50% (환산) vs 평균 0.97% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 61,900"}, {"label": "거래량 급증", "ok": true, "detail": "185,780 (환산) vs 평균 120,414"}, {"label": "회전율 급증", "ok": true, "detail": "1.50% (환산) vs 평균 0.97%"}, {"label": "RSI", "ok": true, "detail": "75"}]}
{"ts": "2026-10-08T09:20:39.679141+09:00", "side": "BUY", "code": "295310", "name": "에이치브이엠", "price": 73700, "qty": 62, "cost": 4570085, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 61192, "target": 98025, "signals": [{"label": "손절선", "ok": true, "detail": "61,192 (현재 73,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 98,025"}, {"label": "추세(10일선)", "ok": true, "detail": "56,025"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -73 · 기 +228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 72,709"}]}
@@ -1,5 +1,5 @@
{
"cash": 40080542.97200002,
"cash": 39593090.37300002,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3504336.4241500003,
"last_add_price": 13420
@@ -34,12 +34,12 @@
"entry_at": "2026-09-03T09:02:24.974496+09:00",
"stop": 10215,
"target": 14072,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3334430.645615085,
"last_add_price": 11930
@@ -60,32 +60,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 2,
"tranche_value": 4741640.48120924,
"last_add_price": 36150
},
"079650": {
"code": "079650",
"name": "서산",
"sources": [
"watch"
],
"qty": 462,
"entry_price": 7131.341991341991,
"entry_at": "2026-09-04T12:02:28.348862+09:00",
"stop": 5375,
"target": 9765,
"peak": 8840,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5610,
"tranches": 2,
"tranche_value": 1651454.8079885093,
"last_add_price": 7390
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
@@ -95,14 +74,14 @@
"qty": 304,
"entry_price": 13496.184210526315,
"entry_at": "2026-09-07T15:06:35.044589+09:00",
"stop": 18085,
"stop": 18268,
"target": 18110,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,160 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2059070.58259455,
"last_add_price": 13930
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 410,925 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 1,
"tranche_value": 5205421.720847539,
"last_add_price": 406000
@@ -139,12 +118,12 @@
"entry_at": "2026-10-01T09:12:47.860612+09:00",
"stop": 13324,
"target": 18625,
"peak": 15870,
"peak": 16450,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 15710,
"cur_price": 15150,
"tranches": 2,
"tranche_value": 3193742.1412302153,
"last_add_price": 15740
@@ -160,22 +139,43 @@
"entry_at": "2026-10-01T10:38:41.833335+09:00",
"stop": 29749,
"target": 41627,
"peak": 34500,
"peak": 34750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 34450,
"cur_price": 32400,
"tranches": 1,
"tranche_value": 3118790.5134803206,
"last_add_price": 34500
},
"456010": {
"code": "456010",
"name": "아이씨티케이",
"sources": [
"watch"
],
"qty": 122,
"entry_price": 24250,
"entry_at": "2026-10-08T09:02:53.389847+09:00",
"stop": 20800,
"target": 29425,
"peak": 24650,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 24,970 도달",
"cur_price": 24100,
"tranches": 1,
"tranche_value": 2973963.562447827,
"last_add_price": 24250
}
},
"realized_pnl": -15059949.111000024,
"closed_trades": 40,
"realized_pnl": -15883632.137000024,
"closed_trades": 41,
"wins": 4,
"peak_equity": 100172467.23000002,
"max_drawdown": 0.14748235408916366,
"max_drawdown": 0.1585967411636447,
"last_exit": {
"030000": "2026-09-04",
"086790": "2026-07-28",
@@ -196,8 +196,9 @@
"004370": "2026-09-21",
"005930": "2026-10-01",
"088350": "2026-10-01",
"001790": "2026-10-01"
"001790": "2026-10-01",
"079650": "2026-10-07"
},
"created_at": "2026-06-11T09:00:01.944232+09:00",
"updated_at": "2026-10-01T15:28:42.483326+09:00"
"updated_at": "2026-10-08T15:28:47.138392+09:00"
}
@@ -113,3 +113,5 @@
{"ts": "2026-10-01T09:38:41.381489+09:00", "side": "BUY", "code": "093370", "name": "후성", "price": 15740, "qty": 202, "cost": 3179957, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 13113, "target": 18231, "signals": [{"label": "손절선", "ok": true, "detail": "13,113 (현재 15,720)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,231"}, {"label": "추세(10일선)", "ok": true, "detail": "13,147"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +746 · 기 -275"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 15,690"}]}
{"ts": "2026-10-01T10:38:41.433153+09:00", "side": "SELL", "code": "001790", "name": "대한제당", "price": 2765, "qty": 1897, "proceeds": 5234977, "entry_price": 2945, "pnl": -352526, "pnl_pct": -6.11, "hold_from": "2026-09-01T09:32:25.166635+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "2,767 (현재 2,765)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 3,211"}, {"label": "추세(10일선)", "ok": false, "detail": "2,809"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -67 · 기 +86"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 2,988"}]}
{"ts": "2026-10-01T10:38:41.833351+09:00", "side": "BUY", "code": "122640", "name": "예스티", "price": 34500, "qty": 90, "cost": 3105466, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 29749, "target": 41627, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "34,400 vs 30,080"}, {"label": "정배열(5>10)", "ok": true, "detail": "30,150 / 30,080"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "30,150 / 27,595"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+14.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +49 · 기 +1 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.97% (환산) vs 평균 1.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 32,800"}, {"label": "거래량 급증", "ok": true, "detail": "860,787 (환산) vs 평균 365,437"}, {"label": "회전율 급증", "ok": true, "detail": "3.97% (환산) vs 평균 1.69%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-10-07T14:42:49.079809+09:00", "side": "SELL", "code": "079650", "name": "서산", "price": 5360, "qty": 462, "proceeds": 2471491, "entry_price": 7131, "pnl": -823683, "pnl_pct": -24.84, "hold_from": "2026-09-04T12:02:28.348862+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,375 (현재 5,350)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,765"}, {"label": "추세(10일선)", "ok": true, "detail": "4,916"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -89 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:53.389863+09:00", "side": "BUY", "code": "456010", "name": "아이씨티케이", "price": 24250, "qty": 122, "cost": 2958944, "path": "pullback", "reason": "눌림목 지정가 24,970 도달", "stop": 20800, "target": 29425, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "24,450 vs 24,440"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,180 / 24,440"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,180 / 17,336"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+55.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +115 · 기 +6 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+145%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.80% (환산) vs 평균 8.21% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 30,350"}, {"label": "거래량 급증", "ok": false, "detail": "116,753 (환산) vs 평균 1,191,082"}, {"label": "회전율 급증", "ok": false, "detail": "0.80% (환산) vs 평균 8.21%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 24,970 (현재 24,450)"}]}
@@ -1,5 +1,5 @@
{
"cash": 49382349.41850006,
"cash": 44992945.30450006,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3497500.5799993444,
"last_add_price": 13420
@@ -32,39 +32,18 @@
"qty": 272,
"entry_price": 14105.33088235294,
"entry_at": "2026-09-04T11:14:26.495104+09:00",
"stop": 18085,
"stop": 18268,
"target": 18636,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,946 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 1928587.8820308954,
"last_add_price": 14660
},
"079650": {
"code": "079650",
"name": "서산",
"sources": [
"watch"
],
"qty": 466,
"entry_price": 7082.339055793991,
"entry_at": "2026-09-04T12:36:28.825230+09:00",
"stop": 5326,
"target": 9716,
"peak": 8840,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5610,
"tranches": 2,
"tranche_value": 1653071.9448850204,
"last_add_price": 7390
},
"041520": {
"code": "041520",
"name": "이엘씨",
@@ -76,12 +55,12 @@
"entry_at": "2026-09-15T09:04:39.495077+09:00",
"stop": 10441,
"target": 14267,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,977 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3370314.5438456116,
"last_add_price": 12170
@@ -97,12 +76,12 @@
"entry_at": "2026-09-22T09:02:46.938295+09:00",
"stop": 121395,
"target": 214288,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 157,986 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1773948.7536711907,
"last_add_price": 164000
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
"qty": 110,
"entry_price": 20050,
"qty": 213,
"entry_price": 20702.816901408452,
"entry_at": "2026-09-23T12:32:47.146539+09:00",
"stop": 16123,
"target": 25941,
"peak": 21450,
"stop": 16947,
"target": 26336,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,336 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2212317.899773747,
"last_add_price": 20050
"last_add_price": 21400
},
"025860": {
"code": "025860",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,148 도달",
"cur_price": 6050,
"cur_price": 5940,
"tranches": 1,
"tranche_value": 5419734.413812503,
"last_add_price": 6050
@@ -165,14 +144,35 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 277,258 도달",
"cur_price": 271000,
"cur_price": 269500,
"tranches": 1,
"tranche_value": 3971189.5843109195,
"last_add_price": 271500
},
"056360": {
"code": "056360",
"name": "코위버",
"sources": [
"watch"
],
"qty": 731,
"entry_price": 6360,
"entry_at": "2026-10-08T09:50:45.349011+09:00",
"stop": 5770,
"target": 7245,
"peak": 6390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,523 도달",
"cur_price": 6210,
"tranches": 1,
"tranche_value": 4653764.676570003,
"last_add_price": 6360
}
},
"realized_pnl": -15021541.966000035,
"closed_trades": 44,
"realized_pnl": -15857423.131500036,
"closed_trades": 45,
"wins": 7,
"peak_equity": 101529111.72700004,
"max_drawdown": 0.16624243648348033,
@@ -197,8 +197,9 @@
"003550": "2026-09-15",
"004370": "2026-09-21",
"000720": "2026-09-28",
"316140": "2026-10-01"
"316140": "2026-10-01",
"079650": "2026-10-08"
},
"created_at": "2026-06-11T09:00:01.944251+09:00",
"updated_at": "2026-10-01T15:28:42.486019+09:00"
"updated_at": "2026-10-08T15:28:47.141332+09:00"
}
@@ -126,3 +126,6 @@
{"ts": "2026-09-28T09:20:48.364329+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 164000, "qty": 10, "cost": 1640246, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 115572, "target": 210643, "signals": [{"label": "손절선", "ok": true, "detail": "115,572 (현재 163,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 210,643"}, {"label": "추세(10일선)", "ok": true, "detail": "153,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +222 · 기 -12"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 162,889"}]}
{"ts": "2026-10-01T09:00:53.929412+09:00", "side": "SELL", "code": "316140", "name": "우리금융지주", "price": 32800, "qty": 329, "proceeds": 10770157, "entry_price": 32319, "pnl": 135762, "pnl_pct": 1.49, "hold_from": "2026-08-24T13:12:20.462989+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "34,483 (현재 33,850)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "31,995"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -303 · 기 -158"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-01T09:02:45.598935+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 271500, "qty": 14, "cost": 3801570, "path": "pullback", "reason": "눌림목 지정가 277,258 도달", "stop": 242017, "target": 315725, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "270,000 vs 256,700"}, {"label": "정배열(5>10)", "ok": true, "detail": "267,300 / 256,700"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "267,300 / 248,933"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +19 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.15% (환산) vs 평균 0.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 314,500"}, {"label": "거래량 급증", "ok": false, "detail": "22,107 (환산) vs 평균 78,860"}, {"label": "회전율 급증", "ok": false, "detail": "0.15% (환산) vs 평균 0.53%"}, {"label": "RSI", "ok": true, "detail": "60"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 277,258 (현재 270,000)"}]}
{"ts": "2026-10-02T09:01:23.796646+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 103, "cost": 2204531, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 16123, "target": 25941, "signals": [{"label": "손절선", "ok": true, "detail": "16,123 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 25,941"}, {"label": "추세(10일선)", "ok": true, "detail": "19,228"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 20,989"}]}
{"ts": "2026-10-08T09:04:49.324670+09:00", "side": "SELL", "code": "079650", "name": "서산", "price": 5300, "qty": 466, "proceeds": 2464984, "entry_price": 7082, "pnl": -835881, "pnl_pct": -25.17, "hold_from": "2026-09-04T12:36:28.825230+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,326 (현재 5,290)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,716"}, {"label": "추세(10일선)", "ok": true, "detail": "4,910"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -30 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:50:45.349013+09:00", "side": "BUY", "code": "056360", "name": "코위버", "price": 6360, "qty": 731, "cost": 4649857, "path": "pullback", "reason": "눌림목 지정가 6,523 도달", "stop": 5770, "target": 7245, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,360 vs 6,318"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,492 / 6,318"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,492 / 5,507"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +22 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.61% (환산) vs 평균 2.14% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 7,140"}, {"label": "거래량 급증", "ok": false, "detail": "157,353 (환산) vs 평균 209,822"}, {"label": "회전율 급증", "ok": false, "detail": "1.61% (환산) vs 평균 2.14%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,523 (현재 6,360)"}]}
@@ -1,28 +1,7 @@
{
"cash": 29777858.192150038,
"cash": 27884752.730150037,
"initial": 100000000,
"positions": {
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 97,
"entry_price": 34562.886597938144,
"entry_at": "2026-08-20T09:02:17.450989+09:00",
"stop": 46039,
"target": 49986,
"peak": 53100,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 35,709 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1699505.011186723,
"last_add_price": 35800
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
@@ -32,14 +11,14 @@
"qty": 335,
"entry_price": 14067.880597014926,
"entry_at": "2026-09-03T09:02:24.986233+09:00",
"stop": 18085,
"stop": 18268,
"target": 18598,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,982 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2363869.6412348715,
"last_add_price": 14660
@@ -55,12 +34,12 @@
"entry_at": "2026-09-10T09:00:55.814433+09:00",
"stop": 10997,
"target": 14266,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 12,003 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 4373273.034451844,
"last_add_price": 12290
@@ -76,12 +55,12 @@
"entry_at": "2026-09-15T10:28:40.300992+09:00",
"stop": 4646,
"target": 6431,
"peak": 5710,
"peak": 6040,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 5,108 도달",
"cur_price": 5440,
"cur_price": 5860,
"tranches": 2,
"tranche_value": 3476292.7545329626,
"last_add_price": 5390
@@ -92,41 +71,20 @@
"sources": [
"auto"
],
"qty": 138,
"entry_price": 20200,
"qty": 268,
"entry_price": 20782.089552238805,
"entry_at": "2026-09-16T13:08:39.885461+09:00",
"stop": 17261,
"target": 26078,
"peak": 21450,
"stop": 17965,
"target": 26416,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,341 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2789435.574661536,
"last_add_price": 20200
},
"300720": {
"code": "300720",
"name": "한일시멘트",
"sources": [
"watch"
],
"qty": 314,
"entry_price": 16170,
"entry_at": "2026-09-17T09:04:38.748535+09:00",
"stop": 15324,
"target": 17862,
"peak": 16390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,386 도달",
"cur_price": 16080,
"tranches": 1,
"tranche_value": 5079314.422828128,
"last_add_price": 16170
"last_add_price": 21400
},
"307870": {
"code": "307870",
@@ -139,12 +97,12 @@
"entry_at": "2026-10-01T09:00:54.040849+09:00",
"stop": 1066,
"target": 1528,
"peak": 1250,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,241 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 3260787.278232004,
"last_add_price": 1243
@@ -158,22 +116,64 @@
"qty": 1456,
"entry_price": 7078.8873626373625,
"entry_at": "2026-10-01T09:58:43.236173+09:00",
"stop": 6543,
"stop": 7732,
"target": 8151,
"peak": 7220,
"peak": 8390,
"trailing_on": true,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 8260,
"tranches": 2,
"tranche_value": 5159308.130815627,
"last_add_price": 7170
},
"295310": {
"code": "295310",
"name": "에이치브이엠",
"sources": [
"watch"
],
"qty": 58,
"entry_price": 75200,
"entry_at": "2026-10-07T09:06:54.037811+09:00",
"stop": 67951,
"target": 89698,
"peak": 76900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"tranches": 2,
"tranche_value": 5159308.130815627,
"last_add_price": 7170
"cur_price": 74200,
"tranches": 1,
"tranche_value": 4370283.78095412,
"last_add_price": 75200
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 16,
"entry_price": 301000,
"entry_at": "2026-10-08T09:02:53.413414+09:00",
"stop": 276000,
"target": 351000,
"peak": 306000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 303,967 도달",
"cur_price": 302000,
"tranches": 1,
"tranche_value": 5056717.232835032,
"last_add_price": 301000
}
},
"realized_pnl": -21787953.769250046,
"closed_trades": 64,
"wins": 8,
"realized_pnl": -20150909.788250048,
"closed_trades": 66,
"wins": 9,
"peak_equity": 101695667.93550003,
"max_drawdown": 0.24548980547857824,
"last_exit": {
@@ -204,8 +204,10 @@
"060250": "2026-09-16",
"004370": "2026-09-17",
"316140": "2026-10-01",
"257720": "2026-10-01"
"257720": "2026-10-01",
"300720": "2026-10-07",
"327260": "2026-10-08"
},
"created_at": "2026-06-11T09:00:01.944270+09:00",
"updated_at": "2026-10-01T15:28:42.488753+09:00"
"updated_at": "2026-10-08T15:28:47.144334+09:00"
}
@@ -178,3 +178,8 @@
{"ts": "2026-10-01T09:58:43.236189+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 6990, "qty": 737, "cost": 5152403, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 6454, "target": 8062, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,000 vs 4,806"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,552 / 4,806"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,552 / 4,914"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +12 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.76% (환산) vs 평균 0.30% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,630"}, {"label": "거래량 급증", "ok": true, "detail": "95,240 (환산) vs 평균 38,349"}, {"label": "회전율 급증", "ok": true, "detail": "0.76% (환산) vs 평균 0.30%"}, {"label": "RSI", "ok": true, "detail": "86"}]}
{"ts": "2026-10-01T10:16:47.426944+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 7170, "qty": 719, "cost": 5156003, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 6454, "target": 8062, "signals": [{"label": "손절선", "ok": true, "detail": "6,454 (현재 7,180)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,062"}, {"label": "추세(20일선)", "ok": true, "detail": "4,814"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -49 · 기 +12"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,169"}]}
{"ts": "2026-10-01T12:24:42.427319+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1243, "qty": 2622, "cost": 3259635, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1047, "target": 1501, "signals": [{"label": "손절선", "ok": true, "detail": "1,047 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,501"}, {"label": "추세(20일선)", "ok": true, "detail": "1,143"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -68 · 기 +4"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,249"}]}
{"ts": "2026-10-02T09:01:23.801920+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 130, "cost": 2782417, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17261, "target": 26078, "signals": [{"label": "손절선", "ok": true, "detail": "17,261 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 26,078"}, {"label": "추세(20일선)", "ok": true, "detail": "16,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,139"}]}
{"ts": "2026-10-07T09:06:53.601882+09:00", "side": "SELL", "code": "300720", "name": "한일시멘트", "price": 15940, "qty": 314, "proceeds": 4995400, "entry_price": 16170, "pnl": -82742, "pnl_pct": -1.42, "hold_from": "2026-09-17T09:04:38.748535+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "15,324 (현재 16,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,862"}, {"label": "추세(20일선)", "ok": true, "detail": "15,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -16 · 기 +15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 16,456"}]}
{"ts": "2026-10-07T09:06:54.037826+09:00", "side": "BUY", "code": "295310", "name": "에이치브이엠", "price": 75200, "qty": 58, "cost": 4362254, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 67951, "target": 89698, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "74,500 vs 51,322"}, {"label": "정배열(5>20)", "ok": true, "detail": "62,140 / 51,322"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "62,140 / 47,968"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -68 · 기 +241 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+12%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.24% (환산) vs 평균 0.97% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 61,900"}, {"label": "거래량 급증", "ok": true, "detail": "278,607 (환산) vs 평균 120,414"}, {"label": "회전율 급증", "ok": true, "detail": "2.24% (환산) vs 평균 0.97%"}, {"label": "RSI", "ok": true, "detail": "77"}]}
{"ts": "2026-10-08T09:02:53.411594+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 97, "proceeds": 5072889, "entry_price": 34563, "pnl": 1719786, "pnl_pct": 51.61, "hold_from": "2026-08-20T09:02:17.450989+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:53.413418+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 301000, "qty": 16, "cost": 4816722, "path": "pullback", "reason": "눌림목 지정가 303,967 도달", "stop": 276000, "target": 351000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "303,500 vs 294,300"}, {"label": "정배열(5>20)", "ok": true, "detail": "306,900 / 294,300"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "306,900 / 304,808"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-5.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +88 · 기 -120 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+73%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.37% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,207 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": false, "detail": "0.37% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 303,967 (현재 303,500)"}]}
@@ -1,5 +1,5 @@
{
"cash": 26562940.740249995,
"cash": 23737717.020249996,
"initial": 100000000,
"positions": {
"086790": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 5180051.180047499,
"last_add_price": 125200
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4464385.527789056,
"last_add_price": 13420
@@ -53,14 +53,14 @@
"qty": 357,
"entry_price": 14066.050420168067,
"entry_at": "2026-09-03T09:02:24.991070+09:00",
"stop": 18085,
"stop": 18268,
"target": 18596,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,982 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2517324.6404987266,
"last_add_price": 14660
@@ -76,12 +76,12 @@
"entry_at": "2026-09-04T11:14:26.856101+09:00",
"stop": 2875,
"target": 3831,
"peak": 3420,
"peak": 3500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 3,140 도달",
"cur_price": 3400,
"cur_price": 3345,
"tranches": 2,
"tranche_value": 4146153.6468727933,
"last_add_price": 3255
@@ -92,20 +92,20 @@
"sources": [
"auto"
],
"qty": 140,
"entry_price": 20200,
"qty": 272,
"entry_price": 20782.352941176472,
"entry_at": "2026-09-16T13:08:39.890765+09:00",
"stop": 17261,
"target": 26078,
"peak": 21450,
"stop": 17966,
"target": 26416,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,341 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2842559.6395269656,
"last_add_price": 20200
"last_add_price": 21400
},
"041520": {
"code": "041520",
@@ -118,12 +118,12 @@
"entry_at": "2026-09-16T13:08:40.269206+09:00",
"stop": 10788,
"target": 14231,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,955 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 4111186.507374883,
"last_add_price": 12170
@@ -144,7 +144,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,155 도달",
"cur_price": 6050,
"cur_price": 5940,
"tranches": 1,
"tranche_value": 5205107.041859375,
"last_add_price": 6130
@@ -160,12 +160,12 @@
"entry_at": "2026-09-30T11:40:45.860919+09:00",
"stop": 15271,
"target": 17789,
"peak": 16240,
"peak": 16290,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,390 도달",
"cur_price": 16080,
"cur_price": 16110,
"tranches": 1,
"tranche_value": 5207239.454359375,
"last_add_price": 16110
@@ -200,5 +200,5 @@
"079650": "2026-09-30"
},
"created_at": "2026-06-11T09:00:01.944290+09:00",
"updated_at": "2026-10-01T15:28:42.491313+09:00"
"updated_at": "2026-10-08T15:28:47.147135+09:00"
}
@@ -140,3 +140,4 @@
{"ts": "2026-09-18T09:14:43.475558+09:00", "side": "BUY", "code": "025860", "name": "남해화학", "price": 6130, "qty": 848, "cost": 5199020, "path": "pullback", "reason": "눌림목 지정가 6,155 도달", "stop": 5730, "target": 6930, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,130 vs 6,034"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,112 / 6,034"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,112 / 5,900"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 +62 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.13% (환산) vs 평균 1.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 6,700"}, {"label": "거래량 급증", "ok": false, "detail": "62,267 (환산) vs 평균 758,257"}, {"label": "회전율 급증", "ok": false, "detail": "0.13% (환산) vs 평균 1.53%"}, {"label": "RSI", "ok": true, "detail": "55"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,155 (현재 6,130)"}]}
{"ts": "2026-09-30T11:40:45.422955+09:00", "side": "SELL", "code": "079650", "name": "서산", "price": 5760, "qty": 602, "proceeds": 3460758, "entry_price": 7082, "pnl": -803401, "pnl_pct": -18.67, "hold_from": "2026-09-04T12:36:28.830726+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,765 (현재 5,730)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,716"}, {"label": "추세(10일선)", "ok": true, "detail": "4,954"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +67 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T11:40:45.860932+09:00", "side": "BUY", "code": "300720", "name": "한일시멘트", "price": 16110, "qty": 323, "cost": 5204311, "path": "pullback", "reason": "눌림목 지정가 16,390 도달", "stop": 15271, "target": 17789, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "16,100 vs 15,864"}, {"label": "정배열(5>10)", "ok": true, "detail": "16,302 / 15,864"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "16,302 / 14,436"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+15.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +18 · 기 -4 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+27%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.05% (환산) vs 평균 0.12% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 17,140"}, {"label": "거래량 급증", "ok": false, "detail": "39,139 (환산) vs 평균 89,609"}, {"label": "회전율 급증", "ok": false, "detail": "0.05% (환산) vs 평균 0.12%"}, {"label": "RSI", "ok": true, "detail": "61"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 16,390 (현재 16,100)"}]}
{"ts": "2026-10-02T09:01:23.806528+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 132, "cost": 2825224, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17261, "target": 26078, "signals": [{"label": "손절선", "ok": true, "detail": "17,261 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 26,078"}, {"label": "추세(10일선)", "ok": true, "detail": "19,228"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,139"}]}
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 126300,
"cur_price": 127200,
"tranches": 2,
"tranche_value": 4675255.455593748,
"last_add_price": 120500
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 4550435.925312498,
"last_add_price": 125200
@@ -55,12 +55,12 @@
"entry_at": "2026-07-30T09:16:11.918383+09:00",
"stop": 117719,
"target": 180344,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 4604300.898906248,
"last_add_price": 136000
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4446388.7381874975,
"last_add_price": 13420
@@ -97,12 +97,12 @@
"entry_at": "2026-08-20T09:02:17.459458+09:00",
"stop": 24273,
"target": 65401,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 35,709 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 2315542.8746463708,
"last_add_price": 35800
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 31,939 도달",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 2,
"tranche_value": 4361206.427093747,
"last_add_price": 32750
@@ -144,7 +144,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,977 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 3390239.348206665,
"last_add_price": 13930
@@ -160,12 +160,12 @@
"entry_at": "2026-09-30T14:04:46.071926+09:00",
"stop": 10600,
"target": 15880,
"peak": 12040,
"peak": 12410,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 12,331 도달",
"cur_price": 11950,
"cur_price": 12200,
"tranches": 1,
"tranche_value": 4672256.2572812475,
"last_add_price": 11920
@@ -199,5 +199,5 @@
"161890": "2026-07-30"
},
"created_at": "2026-06-15T14:55:00.582771+09:00",
"updated_at": "2026-10-01T15:28:43.790792+09:00"
"updated_at": "2026-10-08T15:28:48.329964+09:00"
}
@@ -1,5 +1,5 @@
{
"cash": 9345575.557249933,
"cash": 11314659.07224993,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4920739.488124997,
"last_add_price": 13420
},
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 147,
"entry_price": 34559.183673469386,
"entry_at": "2026-08-20T09:02:17.463463+09:00",
"stop": 46039,
"target": 49982,
"peak": 53100,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 35,709 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 2545799.7712668725,
"last_add_price": 35800
},
"003490": {
"code": "003490",
"name": "대한항공",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4975122.724249996,
"last_add_price": 30200
@@ -74,14 +53,14 @@
"qty": 543,
"entry_price": 13534.364640883978,
"entry_at": "2026-09-10T09:00:57.191927+09:00",
"stop": 18085,
"stop": 18268,
"target": 18148,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,977 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 3681766.0445766635,
"last_add_price": 13930
@@ -97,37 +76,16 @@
"entry_at": "2026-09-15T09:04:40.682851+09:00",
"stop": 10442,
"target": 14267,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,977 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 5111363.335968746,
"last_add_price": 12170
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 15,
"entry_price": 339000,
"entry_at": "2026-09-15T10:28:40.910995+09:00",
"stop": 298363,
"target": 399956,
"peak": 341500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 314500,
"tranches": 1,
"tranche_value": 5117033.466531246,
"last_add_price": 339000
},
"307870": {
"code": "307870",
"name": "비투엔",
@@ -139,12 +97,12 @@
"entry_at": "2026-10-01T09:00:54.365093+09:00",
"stop": 1015,
"target": 1528,
"peak": 1250,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,241 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 4912123.718578215,
"last_add_price": 1243
@@ -158,22 +116,64 @@
"qty": 1462,
"entry_price": 7078.891928864569,
"entry_at": "2026-10-01T09:58:43.271582+09:00",
"stop": 6364,
"stop": 7732,
"target": 8151,
"peak": 7220,
"peak": 8390,
"trailing_on": true,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 8260,
"tranches": 2,
"tranche_value": 5179414.163887496,
"last_add_price": 7170
},
"440110": {
"code": "440110",
"name": "파두",
"sources": [
"interest"
],
"qty": 60,
"entry_price": 82600,
"entry_at": "2026-10-08T09:02:54.032778+09:00",
"stop": 69008,
"target": 102989,
"peak": 85400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 82,404 도달",
"cur_price": 82900,
"tranches": 1,
"tranche_value": 5010044.60493882,
"last_add_price": 82600
},
"290550": {
"code": "290550",
"name": "디케이티",
"sources": [
"watch"
],
"qty": 208,
"entry_price": 25000,
"entry_at": "2026-10-08T09:50:46.564640+09:00",
"stop": 21501,
"target": 30249,
"peak": 25900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"tranches": 2,
"tranche_value": 5179414.163887496,
"last_add_price": 7170
"cur_price": 25550,
"tranches": 1,
"tranche_value": 5224326.192015621,
"last_add_price": 25000
}
},
"realized_pnl": -23028087.013500035,
"closed_trades": 53,
"wins": 11,
"realized_pnl": -21068204.878500037,
"closed_trades": 55,
"wins": 12,
"peak_equity": 103066363.367,
"max_drawdown": 0.2634062827202891,
"last_exit": {
@@ -185,7 +185,7 @@
"009150": "2026-07-06",
"093370": "2026-07-20",
"240810": "2026-07-24",
"214450": "2026-09-09",
"214450": "2026-10-08",
"034730": "2026-07-07",
"319660": "2026-07-23",
"003490": "2026-07-09",
@@ -200,8 +200,9 @@
"138040": "2026-09-08",
"012450": "2026-09-15",
"316140": "2026-10-01",
"257720": "2026-10-01"
"257720": "2026-10-01",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.582787+09:00",
"updated_at": "2026-10-01T15:28:43.806289+09:00"
"updated_at": "2026-10-08T15:28:48.344639+09:00"
}
@@ -148,3 +148,7 @@
{"ts": "2026-10-01T09:58:43.271585+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 6990, "qty": 740, "cost": 5173376, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 6275, "target": 8062, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,000 vs 4,806"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,552 / 4,806"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,552 / 4,914"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +12 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.76% (환산) vs 평균 0.30% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,630"}, {"label": "거래량 급증", "ok": true, "detail": "95,240 (환산) vs 평균 38,349"}, {"label": "회전율 급증", "ok": true, "detail": "0.76% (환산) vs 평균 0.30%"}, {"label": "RSI", "ok": true, "detail": "86"}]}
{"ts": "2026-10-01T10:16:48.029007+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 7170, "qty": 722, "cost": 5177517, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 6275, "target": 8062, "signals": [{"label": "손절선", "ok": true, "detail": "6,275 (현재 7,180)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,062"}, {"label": "추세(20일선)", "ok": true, "detail": "4,814"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -49 · 기 +12"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,169"}]}
{"ts": "2026-10-01T12:24:43.027553+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1243, "qty": 3951, "cost": 4911830, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 996, "target": 1501, "signals": [{"label": "손절선", "ok": true, "detail": "996 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,501"}, {"label": "추세(20일선)", "ok": true, "detail": "1,143"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -68 · 기 +4"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,249"}]}
{"ts": "2026-10-08T09:02:54.028229+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 147, "proceeds": 7687780, "entry_price": 34559, "pnl": 2606818, "pnl_pct": 51.62, "hold_from": "2026-08-20T09:02:17.463463+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.032784+09:00", "side": "BUY", "code": "440110", "name": "파두", "price": 82600, "qty": 60, "cost": 4956743, "path": "pullback", "reason": "눌림목 지정가 82,404 도달", "stop": 69008, "target": 102989, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "82,400 vs 71,765"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,680 / 71,765"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,680 / 67,403"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -241 · 기 +233 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.05% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 90,500"}, {"label": "거래량 급증", "ok": false, "detail": "26,507 (환산) vs 평균 567,645"}, {"label": "회전율 급증", "ok": false, "detail": "0.05% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 82,404 (현재 82,400)"}]}
{"ts": "2026-10-08T09:08:47.882824+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 296500, "qty": 15, "proceeds": 4438827, "entry_price": 339000, "pnl": -646935, "pnl_pct": -12.54, "hold_from": "2026-09-15T10:28:40.910995+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "298,363 (현재 298,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 399,956"}, {"label": "추세(20일선)", "ok": true, "detail": "294,025"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +88 · 기 -120"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 349,249"}]}
{"ts": "2026-10-08T09:50:46.564645+09:00", "side": "BUY", "code": "290550", "name": "디케이티", "price": 25000, "qty": 208, "cost": 5200780, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 21501, "target": 30249, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "24,950 vs 17,720"}, {"label": "정배열(5>20)", "ok": true, "detail": "22,260 / 17,720"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "22,260 / 18,758"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -93 · 기 +194 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.13% (환산) vs 평균 2.00% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 22,850"}, {"label": "거래량 급증", "ok": true, "detail": "623,780 (환산) vs 평균 399,791"}, {"label": "회전율 급증", "ok": true, "detail": "3.13% (환산) vs 평균 2.00%"}, {"label": "RSI", "ok": true, "detail": "74"}]}
@@ -1,5 +1,5 @@
{
"cash": 18099605.627499957,
"cash": 15480848.861249957,
"initial": 100000000,
"positions": {
"086790": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 4697478.874937497,
"last_add_price": 125200
@@ -39,32 +39,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4594021.1274374975,
"last_add_price": 13420
},
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 137,
"entry_price": 34556.20437956204,
"entry_at": "2026-08-20T09:02:17.467056+09:00",
"stop": 24274,
"target": 55120,
"peak": 53100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 35,709 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 2377721.795719703,
"last_add_price": 35800
},
"316140": {
"code": "316140",
"name": "우리금융지주",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 31,939 도달",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 2,
"tranche_value": 4467750.718124997,
"last_add_price": 32750
@@ -95,39 +74,18 @@
"qty": 501,
"entry_price": 13647.724550898203,
"entry_at": "2026-09-09T14:22:31.922572+09:00",
"stop": 18085,
"stop": 18268,
"target": 19800,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,936 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 3428684.1695128847,
"last_add_price": 14070
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 339000,
"entry_at": "2026-09-15T10:28:40.923174+09:00",
"stop": 298363,
"target": 420274,
"peak": 341500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 314500,
"tranches": 1,
"tranche_value": 4832581.963906247,
"last_add_price": 339000
},
"024060": {
"code": "024060",
"name": "흥구석유",
@@ -139,12 +97,12 @@
"entry_at": "2026-09-30T09:01:18.726328+09:00",
"stop": 10600,
"target": 14440,
"peak": 12040,
"peak": 12410,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 12,370 도달",
"cur_price": 11950,
"cur_price": 12200,
"tranches": 1,
"tranche_value": 4880085.487656247,
"last_add_price": 11880
@@ -160,20 +118,62 @@
"entry_at": "2026-10-01T14:16:43.896361+09:00",
"stop": 243017,
"target": 331466,
"peak": 272500,
"peak": 274500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 277,258 도달",
"cur_price": 271000,
"cur_price": 269500,
"tranches": 1,
"tranche_value": 4772130.031406247,
"last_add_price": 272500
},
"440110": {
"code": "440110",
"name": "파두",
"sources": [
"interest"
],
"qty": 55,
"entry_price": 82600,
"entry_at": "2026-10-08T09:02:54.045682+09:00",
"stop": 69008,
"target": 109785,
"peak": 85400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 82,404 도달",
"cur_price": 82900,
"tranches": 1,
"tranche_value": 4594497.804234474,
"last_add_price": 82600
},
"307870": {
"code": "307870",
"name": "비투엔",
"sources": [
"watch"
],
"qty": 7431,
"entry_price": 1262.4646750100928,
"entry_at": "2026-10-08T09:50:46.615890+09:00",
"stop": 1062,
"target": 1663,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,242 도달",
"cur_price": 1297,
"tranches": 2,
"tranche_value": 4692455.757813943,
"last_add_price": 1289
}
},
"realized_pnl": -28736921.04750004,
"closed_trades": 48,
"wins": 6,
"realized_pnl": -26910836.187500045,
"closed_trades": 50,
"wins": 7,
"peak_equity": 103066363.367,
"max_drawdown": 0.31212123491203,
"last_exit": {
@@ -184,7 +184,7 @@
"093370": "2026-07-20",
"240810": "2026-07-24",
"009150": "2026-07-06",
"214450": "2026-09-09",
"214450": "2026-10-08",
"034730": "2026-07-07",
"319660": "2026-07-23",
"003490": "2026-07-09",
@@ -199,8 +199,9 @@
"161890": "2026-07-30",
"138040": "2026-09-08",
"012450": "2026-09-15",
"034020": "2026-09-29"
"034020": "2026-09-29",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.582803+09:00",
"updated_at": "2026-10-01T15:28:43.815436+09:00"
"updated_at": "2026-10-08T15:28:48.354469+09:00"
}
@@ -134,3 +134,8 @@
{"ts": "2026-09-30T09:01:18.726332+09:00", "side": "BUY", "code": "024060", "name": "흥구석유", "price": 11880, "qty": 410, "cost": 4871531, "path": "pullback", "reason": "눌림목 지정가 12,370 도달", "stop": 10600, "target": 14440, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "12,140 vs 11,844"}, {"label": "정배열(5>20)", "ok": true, "detail": "13,896 / 11,844"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "13,896 / 11,184"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+17.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.00% (환산) vs 평균 29.44% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 17,310"}, {"label": "거래량 급증", "ok": false, "detail": "587 (환산) vs 평균 4,415,653"}, {"label": "회전율 급증", "ok": false, "detail": "0.00% (환산) vs 평균 29.44%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 12,370 (현재 12,140)"}]}
{"ts": "2026-10-01T14:16:43.528270+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 101600, "qty": 39, "proceeds": 3954673, "entry_price": 117800, "pnl": -640216, "pnl_pct": -13.75, "hold_from": "2026-09-10T14:02:38.272722+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "101,849 (현재 101,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 149,701"}, {"label": "추세(20일선)", "ok": true, "detail": "75,745"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +144 · 기 -154"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 121,134"}]}
{"ts": "2026-10-01T14:16:43.896377+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 272500, "qty": 17, "cost": 4633195, "path": "pullback", "reason": "눌림목 지정가 277,258 도달", "stop": 243017, "target": 331466, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "272,500 vs 251,775"}, {"label": "정배열(5>20)", "ok": true, "detail": "267,800 / 251,775"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "267,800 / 248,975"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+9.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -44 · 기 +19 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+19%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.41% (환산) vs 평균 0.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 314,500"}, {"label": "거래량 급증", "ok": false, "detail": "60,987 (환산) vs 평균 78,860"}, {"label": "회전율 급증", "ok": false, "detail": "0.41% (환산) vs 평균 0.53%"}, {"label": "RSI", "ok": true, "detail": "61"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 277,258 (현재 272,500)"}]}
{"ts": "2026-10-08T09:02:54.043028+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 137, "proceeds": 7164801, "entry_price": 34556, "pnl": 2429891, "pnl_pct": 51.64, "hold_from": "2026-08-20T09:02:17.467056+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.045686+09:00", "side": "BUY", "code": "440110", "name": "파두", "price": 82600, "qty": 55, "cost": 4543681, "path": "pullback", "reason": "눌림목 지정가 82,404 도달", "stop": 69008, "target": 109785, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "82,400 vs 71,765"}, {"label": "정배열(5>20)", "ok": true, "detail": "83,680 / 71,765"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "83,680 / 67,403"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -241 · 기 +233 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.05% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 90,500"}, {"label": "거래량 급증", "ok": false, "detail": "26,507 (환산) vs 평균 567,645"}, {"label": "회전율 급증", "ok": false, "detail": "0.05% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 82,404 (현재 82,400)"}]}
{"ts": "2026-10-08T09:08:47.894843+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 296500, "qty": 14, "proceeds": 4142906, "entry_price": 339000, "pnl": -603806, "pnl_pct": -12.54, "hold_from": "2026-09-15T10:28:40.923174+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "298,363 (현재 298,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 420,274"}, {"label": "추세(20일선)", "ok": true, "detail": "294,025"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +88 · 기 -120"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 349,249"}]}
{"ts": "2026-10-08T09:50:46.615906+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1237, "qty": 3792, "cost": 4691408, "path": "pullback", "reason": "눌림목 지정가 1,242 도달", "stop": 1038, "target": 1635, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "1,237 vs 1,142"}, {"label": "정배열(5>20)", "ok": true, "detail": "1,320 / 1,142"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,320 / 1,001"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+33.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +179 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.48% (환산) vs 평균 1.90% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 1,390"}, {"label": "거래량 급증", "ok": false, "detail": "353,433 (환산) vs 평균 1,410,399"}, {"label": "회전율 급증", "ok": false, "detail": "0.48% (환산) vs 평균 1.90%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,242 (현재 1,237)"}]}
{"ts": "2026-10-08T15:06:53.633720+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1289, "qty": 3639, "cost": 4691375, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1038, "target": 1635, "signals": [{"label": "손절선", "ok": true, "detail": "1,038 (현재 1,290)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,635"}, {"label": "추세(20일선)", "ok": true, "detail": "1,145"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +147 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,287"}]}
@@ -1,5 +1,5 @@
{
"cash": 37495101.475499995,
"cash": 31810746.600499995,
"initial": 100000000,
"positions": {
"086790": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 4929642.288776176,
"last_add_price": 125200
@@ -39,32 +39,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4296364.655919675,
"last_add_price": 13420
},
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 100,
"entry_price": 34552.0,
"entry_at": "2026-08-20T09:02:17.470693+09:00",
"stop": 46039,
"target": 49975,
"peak": 53100,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 35,709 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1744609.622982949,
"last_add_price": 35800
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
@@ -74,14 +53,14 @@
"qty": 346,
"entry_price": 14066.936416184972,
"entry_at": "2026-09-03T09:02:25.006986+09:00",
"stop": 18085,
"stop": 18268,
"target": 18597,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,982 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2434547.9721527454,
"last_add_price": 14660
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
"qty": 142,
"entry_price": 20400,
"qty": 277,
"entry_price": 20887.364620938628,
"entry_at": "2026-09-17T09:08:41.268639+09:00",
"stop": 17487,
"target": 26226,
"peak": 21450,
"stop": 18071,
"target": 26521,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,358 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2897546.077914521,
"last_add_price": 20400
"last_add_price": 21400
},
"025860": {
"code": "025860",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,155 도달",
"cur_price": 6050,
"cur_price": 5940,
"tranches": 1,
"tranche_value": 5190716.56796875,
"last_add_price": 6130
@@ -139,12 +118,12 @@
"entry_at": "2026-09-30T12:12:41.433189+09:00",
"stop": 10600,
"target": 14800,
"peak": 12040,
"peak": 12410,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 12,331 도달",
"cur_price": 11950,
"cur_price": 12200,
"tranches": 1,
"tranche_value": 3543845.6178428577,
"last_add_price": 12000
@@ -155,25 +134,46 @@
"sources": [
"watch"
],
"qty": 2673,
"entry_price": 1200,
"qty": 5239,
"entry_price": 1224.4894063752624,
"entry_at": "2026-10-01T09:58:43.284532+09:00",
"stop": 1046,
"target": 1508,
"peak": 1250,
"stop": 1074,
"target": 1526,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,239 도달",
"cur_price": 1226,
"tranches": 1,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 3209073.2187857144,
"last_add_price": 1200
"last_add_price": 1250
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 16,
"entry_price": 301000,
"entry_at": "2026-10-08T09:02:54.054438+09:00",
"stop": 276000,
"target": 351000,
"peak": 306000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 303,967 도달",
"cur_price": 302000,
"tranches": 1,
"tranche_value": 4991035.0518301,
"last_add_price": 301000
}
},
"realized_pnl": -21030618.31550005,
"closed_trades": 64,
"wins": 8,
"realized_pnl": -19256554.595500052,
"closed_trades": 65,
"wins": 9,
"peak_equity": 101291892.54300004,
"max_drawdown": 0.2315722523502305,
"last_exit": {
@@ -202,8 +202,9 @@
"012450": "2026-09-15",
"004370": "2026-09-18",
"034020": "2026-09-23",
"257720": "2026-10-01"
"257720": "2026-10-01",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.582834+09:00",
"updated_at": "2026-10-01T15:28:43.822659+09:00"
"updated_at": "2026-10-08T15:28:48.362262+09:00"
}
@@ -172,3 +172,7 @@
{"ts": "2026-09-30T12:12:41.433190+09:00", "side": "BUY", "code": "024060", "name": "흥구석유", "price": 12000, "qty": 295, "cost": 3540531, "path": "pullback", "reason": "눌림목 지정가 12,331 도달", "stop": 10600, "target": 14800, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "11,990 vs 11,837"}, {"label": "정배열(5>20)", "ok": true, "detail": "13,866 / 11,837"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "13,866 / 11,181"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+15.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +134 · 기 -4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "5.96% (환산) vs 평균 29.44% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 17,310"}, {"label": "거래량 급증", "ok": false, "detail": "893,831 (환산) vs 평균 4,415,653"}, {"label": "회전율 급증", "ok": false, "detail": "5.96% (환산) vs 평균 29.44%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 12,331 (현재 11,990)"}]}
{"ts": "2026-10-01T09:58:43.283640+09:00", "side": "SELL", "code": "257720", "name": "실리콘투", "price": 37550, "qty": 83, "proceeds": 3110573, "entry_price": 39150, "pnl": -139365, "pnl_pct": -4.09, "hold_from": "2026-09-23T11:02:53.746930+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "34,221 (현재 37,550)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 49,008"}, {"label": "추세(20일선)", "ok": false, "detail": "37,565"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -231 · 기 -208"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 40,843"}]}
{"ts": "2026-10-01T09:58:43.284535+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1200, "qty": 2673, "cost": 3208081, "path": "pullback", "reason": "눌림목 지정가 1,239 도달", "stop": 1046, "target": 1508, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "1,196 vs 1,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "1,312 / 1,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,312 / 1,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+33.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -78 · 기 +4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.63% (환산) vs 평균 1.90% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 1,390"}, {"label": "거래량 급증", "ok": false, "detail": "469,107 (환산) vs 평균 1,410,399"}, {"label": "회전율 급증", "ok": false, "detail": "0.63% (환산) vs 평균 1.90%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239 (현재 1,196)"}]}
{"ts": "2026-10-02T09:01:24.667985+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 135, "cost": 2889433, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17487, "target": 26226, "signals": [{"label": "손절선", "ok": true, "detail": "17,487 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 26,226"}, {"label": "추세(20일선)", "ok": true, "detail": "16,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,339"}]}
{"ts": "2026-10-06T12:58:50.745774+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1250, "qty": 2566, "cost": 3207981, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1046, "target": 1508, "signals": [{"label": "손절선", "ok": true, "detail": "1,046 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,508"}, {"label": "추세(20일선)", "ok": true, "detail": "1,143"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 -8"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,250"}]}
{"ts": "2026-10-08T09:02:54.053191+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 100, "proceeds": 5229782, "entry_price": 34552, "pnl": 1774064, "pnl_pct": 51.66, "hold_from": "2026-08-20T09:02:17.470693+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.054441+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 301000, "qty": 16, "cost": 4816722, "path": "pullback", "reason": "눌림목 지정가 303,967 도달", "stop": 276000, "target": 351000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "303,500 vs 294,300"}, {"label": "정배열(5>20)", "ok": true, "detail": "306,900 / 294,300"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "306,900 / 304,808"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-5.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +88 · 기 -120 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+73%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.37% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,207 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": false, "detail": "0.37% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 303,967 (현재 303,500)"}]}
@@ -1,5 +1,5 @@
{
"cash": 26646855.187949922,
"cash": 24689099.171949923,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4489026.732352336,
"last_add_price": 13420
},
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 102,
"entry_price": 34552.94117647059,
"entry_at": "2026-08-20T09:02:17.473909+09:00",
"stop": 46039,
"target": 46120,
"peak": 53100,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1773404.3510667775,
"last_add_price": 35800
},
"001450": {
"code": "001450",
"name": "현대해상",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 47250,
"cur_price": 47150,
"tranches": 2,
"tranche_value": 4928101.458627134,
"last_add_price": 50000
@@ -76,12 +55,12 @@
"entry_at": "2026-09-03T09:02:25.010915+09:00",
"stop": 10600,
"target": 13493,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 4133528.1959721213,
"last_add_price": 11930
@@ -97,12 +76,12 @@
"entry_at": "2026-09-04T12:34:27.172116+09:00",
"stop": 4035,
"target": 5935,
"peak": 5070,
"peak": 5140,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,342 도달",
"cur_price": 4530,
"cur_price": 4490,
"tranches": 1,
"tranche_value": 2547466.077043123,
"last_add_price": 4795
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
"qty": 133,
"entry_price": 20200,
"qty": 259,
"entry_price": 20783.783783783783,
"entry_at": "2026-09-16T13:08:40.913284+09:00",
"stop": 17261,
"target": 24608,
"peak": 21450,
"trailing_on": false,
"stop": 22855,
"target": 25009,
"peak": 25500,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,361 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2705294.1080848053,
"last_add_price": 20200
"last_add_price": 21400
},
"004370": {
"code": "004370",
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,907 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 4952859.68257812,
"last_add_price": 404000
@@ -160,20 +139,41 @@
"entry_at": "2026-09-23T11:02:53.754518+09:00",
"stop": 1053,
"target": 1442,
"peak": 1298,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,186 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 2987167.71407031,
"last_add_price": 1235
},
"056360": {
"code": "056360",
"name": "코위버",
"sources": [
"watch"
],
"qty": 727,
"entry_price": 6320,
"entry_at": "2026-10-08T09:02:54.065076+09:00",
"stop": 5770,
"target": 7145,
"peak": 6420,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,290 도달",
"cur_price": 6210,
"tranches": 1,
"tranche_value": 4595781.585504032,
"last_add_price": 6320
}
},
"realized_pnl": -22028660.29400004,
"closed_trades": 60,
"wins": 7,
"realized_pnl": -20219211.31400004,
"closed_trades": 61,
"wins": 8,
"peak_equity": 100161893.89500001,
"max_drawdown": 0.21722938737120095,
"last_exit": {
@@ -200,8 +200,9 @@
"003550": "2026-08-19",
"068270": "2026-09-04",
"060250": "2026-09-16",
"034020": "2026-09-23"
"034020": "2026-09-23",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.582849+09:00",
"updated_at": "2026-10-01T15:28:43.828698+09:00"
"updated_at": "2026-10-08T15:28:48.368202+09:00"
}
@@ -159,3 +159,6 @@
{"ts": "2026-09-23T11:02:53.754521+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1183, "qty": 2524, "cost": 2986340, "path": "pullback", "reason": "눌림목 지정가 1,186 도달", "stop": 1027, "target": 1417, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "1,183 vs 1,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "1,310 / 1,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,310 / 1,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+35.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -138 · 기 +1 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.46% (환산) vs 평균 1.90% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 1,390"}, {"label": "거래량 급증", "ok": false, "detail": "344,349 (환산) vs 평균 1,410,399"}, {"label": "회전율 급증", "ok": false, "detail": "0.46% (환산) vs 평균 1.90%"}, {"label": "RSI", "ok": true, "detail": "55"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,186 (현재 1,183)"}]}
{"ts": "2026-09-23T15:12:49.485646+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1235, "qty": 2418, "cost": 2986678, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1027, "target": 1417, "signals": [{"label": "손절선", "ok": true, "detail": "1,027 (현재 1,235)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,417"}, {"label": "추세(20일선)", "ok": true, "detail": "1,142"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -132 · 기 +1"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,235"}]}
{"ts": "2026-09-29T09:30:45.982248+09:00", "side": "BUY", "code": "004370", "name": "농심", "price": 404000, "qty": 12, "cost": 4848727, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 372500, "target": 422500, "signals": [{"label": "손절선", "ok": true, "detail": "372,500 (현재 402,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 422,500"}, {"label": "추세(20일선)", "ok": true, "detail": "383,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +10 · 기 -2"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 401,537"}]}
{"ts": "2026-10-02T09:01:24.677248+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 126, "cost": 2696804, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17261, "target": 24608, "signals": [{"label": "손절선", "ok": true, "detail": "17,261 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 24,608"}, {"label": "추세(20일선)", "ok": true, "detail": "16,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,139"}]}
{"ts": "2026-10-08T09:02:54.061834+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 102, "proceeds": 5334378, "entry_price": 34553, "pnl": 1809449, "pnl_pct": 51.65, "hold_from": "2026-08-20T09:02:17.473909+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.065079+09:00", "side": "BUY", "code": "056360", "name": "코위버", "price": 6320, "qty": 727, "cost": 4595329, "path": "pullback", "reason": "눌림목 지정가 6,290 도달", "stop": 5770, "target": 7145, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,290 vs 5,940"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,478 / 5,940"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,478 / 5,505"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +22 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.54% (환산) vs 평균 2.14% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 7,140"}, {"label": "거래량 급증", "ok": false, "detail": "52,487 (환산) vs 평균 209,822"}, {"label": "회전율 급증", "ok": false, "detail": "0.54% (환산) vs 평균 2.14%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,290 (현재 6,290)"}]}
@@ -1,5 +1,5 @@
{
"cash": 17726928.634999968,
"cash": 18387795.470999967,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4188989.7646745183,
"last_add_price": 13420
},
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 97,
"entry_price": 34562.886597938144,
"entry_at": "2026-08-20T09:02:17.477466+09:00",
"stop": 26851,
"target": 57698,
"peak": 53100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1684859.3510976394,
"last_add_price": 35800
},
"001450": {
"code": "001450",
"name": "현대해상",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 47250,
"cur_price": 47150,
"tranches": 2,
"tranche_value": 4686399.784966664,
"last_add_price": 50000
@@ -76,12 +55,12 @@
"entry_at": "2026-09-01T09:00:35.729808+09:00",
"stop": 10519,
"target": 14942,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,563 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3841219.293311723,
"last_add_price": 11890
@@ -97,12 +76,12 @@
"entry_at": "2026-09-04T12:34:27.175910+09:00",
"stop": 4035,
"target": 7075,
"peak": 5070,
"peak": 5140,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,342 도달",
"cur_price": 4530,
"cur_price": 4490,
"tranches": 1,
"tranche_value": 2440070.444136775,
"last_add_price": 4795
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,907 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 4768466.620374998,
"last_add_price": 404000
@@ -137,14 +116,14 @@
"qty": 1380,
"entry_price": 6848.550724637681,
"entry_at": "2026-09-23T10:50:50.021690+09:00",
"stop": 6344,
"stop": 7732,
"target": 8361,
"peak": 7260,
"trailing_on": false,
"peak": 8390,
"trailing_on": true,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 4730360.187249998,
"last_add_price": 6950
@@ -160,20 +139,41 @@
"entry_at": "2026-09-30T14:14:41.112713+09:00",
"stop": 12081,
"target": 17281,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 3681479.659017434,
"last_add_price": 13610
},
"056360": {
"code": "056360",
"name": "코위버",
"sources": [
"watch"
],
"qty": 698,
"entry_price": 6320,
"entry_at": "2026-10-08T09:02:54.071777+09:00",
"stop": 5770,
"target": 7970,
"peak": 6420,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,290 도달",
"cur_price": 6210,
"tranches": 1,
"tranche_value": 4413020.274054544,
"last_add_price": 6320
}
},
"realized_pnl": -25162266.029000044,
"closed_trades": 56,
"wins": 3,
"realized_pnl": -23442480.379000045,
"closed_trades": 57,
"wins": 4,
"peak_equity": 100161893.89500001,
"max_drawdown": 0.24633910047533292,
"last_exit": {
@@ -199,8 +199,9 @@
"078930": "2026-09-30",
"003550": "2026-08-19",
"068270": "2026-09-04",
"034020": "2026-09-23"
"034020": "2026-09-23",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.582864+09:00",
"updated_at": "2026-10-01T15:28:43.834101+09:00"
"updated_at": "2026-10-08T15:28:48.373640+09:00"
}
@@ -154,3 +154,5 @@
{"ts": "2026-09-30T14:14:41.111693+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 105900, "qty": 32, "proceeds": 3382192, "entry_price": 117800, "pnl": -387974, "pnl_pct": -10.1, "hold_from": "2026-09-10T14:02:38.293461+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "105,837 (현재 105,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 153,689"}, {"label": "추세(20일선)", "ok": true, "detail": "75,950"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +298 · 기 -341"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 121,202"}]}
{"ts": "2026-09-30T14:14:41.112715+09:00", "side": "BUY", "code": "077360", "name": "덕산하이메탈", "price": 13160, "qty": 279, "cost": 3672191, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 11795, "target": 17256, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "13,160 vs 10,486"}, {"label": "정배열(5>20)", "ok": true, "detail": "11,808 / 10,486"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "11,808 / 9,743"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+31.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -293 · 기 +292 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.79% (환산) vs 평균 1.87% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 12,590"}, {"label": "거래량 급증", "ok": true, "detail": "1,718,110 (환산) vs 평균 848,026"}, {"label": "회전율 급증", "ok": true, "detail": "3.79% (환산) vs 평균 1.87%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-10-01T09:12:47.886038+09:00", "side": "BUY", "code": "077360", "name": "덕산하이메탈", "price": 13610, "qty": 270, "cost": 3675251, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 11795, "target": 17256, "signals": [{"label": "손절선", "ok": true, "detail": "11,795 (현재 13,630)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,256"}, {"label": "추세(20일선)", "ok": true, "detail": "10,510"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -346 · 기 +240"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,593"}]}
{"ts": "2026-10-08T09:02:54.069147+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 97, "proceeds": 5072889, "entry_price": 34563, "pnl": 1719786, "pnl_pct": 51.61, "hold_from": "2026-08-20T09:02:17.477466+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.071780+09:00", "side": "BUY", "code": "056360", "name": "코위버", "price": 6320, "qty": 698, "cost": 4412022, "path": "pullback", "reason": "눌림목 지정가 6,290 도달", "stop": 5770, "target": 7970, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,290 vs 5,940"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,478 / 5,940"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,478 / 5,505"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +22 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.54% (환산) vs 평균 2.14% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 7,140"}, {"label": "거래량 급증", "ok": false, "detail": "52,487 (환산) vs 평균 209,822"}, {"label": "회전율 급증", "ok": false, "detail": "0.54% (환산) vs 평균 2.14%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,290 (현재 6,290)"}]}
@@ -1,28 +1,7 @@
{
"cash": 31481328.73175005,
"cash": 31560724.43675005,
"initial": 100000000,
"positions": {
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 21,
"entry_price": 343976.1904761905,
"entry_at": "2026-07-13T09:06:07.906813+09:00",
"stop": 302625,
"target": 468030,
"peak": 465250,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 314500,
"tranches": 2,
"tranche_value": 3813943.0504600187,
"last_add_price": 350000
},
"010950": {
"code": "010950",
"name": "S-Oil",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-30T09:16:11.947135+09:00",
"stop": 117747,
"target": 180373,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3759463.8630866953,
"last_add_price": 136000
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3342042.065213833,
"last_add_price": 13420
@@ -76,12 +55,12 @@
"entry_at": "2026-09-03T09:02:26.527931+09:00",
"stop": 10214,
"target": 16387,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3177696.924168879,
"last_add_price": 11930
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 133400,
"cur_price": 130400,
"tranches": 2,
"tranche_value": 3233975.9230847433,
"last_add_price": 152000
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4302231.2098323405,
"last_add_price": 31150
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5270,
"cur_price": 5190,
"tranches": 1,
"tranche_value": 3818951.600721525,
"last_add_price": 5740
@@ -160,19 +139,40 @@
"entry_at": "2026-10-01T09:14:40.782312+09:00",
"stop": 2839,
"target": 4662,
"peak": 3360,
"peak": 3395,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 3290,
"cur_price": 3085,
"tranches": 1,
"tranche_value": 2920282.8680892424,
"last_add_price": 3295
},
"078930": {
"code": "078930",
"name": "GS",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 105920.33898305085,
"entry_at": "2026-10-06T10:16:47.775767+09:00",
"stop": 92484,
"target": 146230,
"peak": 111500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3199364.6524274815,
"last_add_price": 107700
}
},
"realized_pnl": -19242130.895750023,
"closed_trades": 36,
"realized_pnl": -20137081.320750024,
"closed_trades": 37,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.1984045802949995,
@@ -182,7 +182,7 @@
"005930": "2026-06-23",
"403870": "2026-07-07",
"240810": "2026-07-24",
"214450": "2026-07-06",
"214450": "2026-10-06",
"093370": "2026-07-20",
"003490": "2026-07-09",
"055550": "2026-07-20",
@@ -199,5 +199,5 @@
"001790": "2026-10-01"
},
"created_at": "2026-06-15T14:55:00.582879+09:00",
"updated_at": "2026-10-01T15:28:44.425765+09:00"
"updated_at": "2026-10-08T15:28:48.381801+09:00"
}
@@ -107,3 +107,6 @@
{"ts": "2026-09-22T13:30:49.649761+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 31150, "qty": 138, "cost": 4299345, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 27370, "target": 39091, "signals": [{"label": "손절선", "ok": true, "detail": "27,370 (현재 31,150)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 39,091"}, {"label": "추세(10일선)", "ok": true, "detail": "25,770"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -198 · 기 +430"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 31,043"}]}
{"ts": "2026-10-01T09:14:40.781849+09:00", "side": "SELL", "code": "001790", "name": "대한제당", "price": 2785, "qty": 1811, "proceeds": 5033800, "entry_price": 2960, "pnl": -327564, "pnl_pct": -5.91, "hold_from": "2026-09-01T09:18:25.173155+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "2,782 (현재 2,780)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 3,493"}, {"label": "추세(10일선)", "ok": false, "detail": "2,810"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -61 · 기 +86"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 3,002"}]}
{"ts": "2026-10-01T09:14:40.782313+09:00", "side": "BUY", "code": "256840", "name": "한국비엔씨", "price": 3295, "qty": 886, "cost": 2919808, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 2839, "target": 4662, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "3,290 vs 2,724"}, {"label": "정배열(5>10)", "ok": true, "detail": "2,823 / 2,724"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "2,823 / 2,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+14.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,073 · 기 +1 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.19% (환산) vs 평균 2.21% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 3,150"}, {"label": "거래량 급증", "ok": true, "detail": "2,864,007 (환산) vs 평균 1,514,272"}, {"label": "회전율 급증", "ok": true, "detail": "4.19% (환산) vs 평균 2.21%"}, {"label": "RSI", "ok": true, "detail": "74"}]}
{"ts": "2026-10-06T10:16:47.352663+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 302000, "qty": 21, "proceeds": 6329633, "entry_price": 343976, "pnl": -894950, "pnl_pct": -12.2, "hold_from": "2026-07-13T09:06:07.906813+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "302,625 (현재 302,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 468,030"}, {"label": "추세(10일선)", "ok": true, "detail": "301,550"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 -155"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-06T10:16:47.775784+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 104200, "qty": 30, "cost": 3126469, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 91021, "target": 143738, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "103,900 vs 82,470"}, {"label": "정배열(5>10)", "ok": true, "detail": "86,140 / 82,470"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "86,140 / 75,320"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +71 · 기 -185 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+40%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.75% (환산) vs 평균 0.42% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 87,600"}, {"label": "거래량 급증", "ok": true, "detail": "695,979 (환산) vs 평균 392,182"}, {"label": "회전율 급증", "ok": true, "detail": "0.75% (환산) vs 평균 0.42%"}, {"label": "RSI", "ok": true, "detail": "77"}]}
{"ts": "2026-10-07T09:42:55.402307+09:00", "side": "BUY", "code": "078930", "name": "GS", "price": 107700, "qty": 29, "cost": 3123768, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 91021, "target": 143738, "signals": [{"label": "손절선", "ok": true, "detail": "91,021 (현재 107,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,738"}, {"label": "추세(10일선)", "ok": true, "detail": "82,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +126 · 기 -250"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 107,559"}]}
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3342042.065213833,
"last_add_price": 13420
@@ -34,12 +34,12 @@
"entry_at": "2026-09-03T09:02:26.541405+09:00",
"stop": 10214,
"target": 14844,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3169899.6784588406,
"last_add_price": 11930
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 133400,
"cur_price": 130400,
"tranches": 2,
"tranche_value": 3225992.8046420617,
"last_add_price": 152000
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4294882.6988680065,
"last_add_price": 31150
@@ -95,14 +95,14 @@
"qty": 1268,
"entry_price": 6754.171924290221,
"entry_at": "2026-09-09T14:22:32.552571+09:00",
"stop": 6099,
"stop": 7732,
"target": 8064,
"peak": 7260,
"trailing_on": false,
"peak": 8390,
"trailing_on": true,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 4287737.740777487,
"last_add_price": 6830
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5270,
"cur_price": 5190,
"tranches": 1,
"tranche_value": 3843626.7763923104,
"last_add_price": 5740
@@ -144,7 +144,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 410,925 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 1,
"tranche_value": 4932331.024813137,
"last_add_price": 406000
@@ -160,12 +160,12 @@
"entry_at": "2026-10-01T09:14:40.785146+09:00",
"stop": 2839,
"target": 4207,
"peak": 3360,
"peak": 3395,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 3290,
"cur_price": 3085,
"tranches": 1,
"tranche_value": 2943544.628643916,
"last_add_price": 3295
@@ -200,5 +200,5 @@
"001790": "2026-10-01"
},
"created_at": "2026-06-15T14:55:00.582910+09:00",
"updated_at": "2026-10-01T15:28:44.441289+09:00"
"updated_at": "2026-10-08T15:28:48.386345+09:00"
}
@@ -1,5 +1,5 @@
{
"cash": 37193869.49075002,
"cash": 36633906.40475003,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3393650.506937234,
"last_add_price": 13420
@@ -34,12 +34,12 @@
"entry_at": "2026-09-03T09:02:26.549668+09:00",
"stop": 10214,
"target": 14072,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3188265.499071182,
"last_add_price": 11930
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4425264.84827894,
"last_add_price": 30200
@@ -81,32 +81,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 133400,
"cur_price": 130400,
"tranches": 2,
"tranche_value": 3217490.050630382,
"last_add_price": 152000
},
"000720": {
"code": "000720",
"name": "현대건설",
"sources": [
"interest"
],
"qty": 45,
"entry_price": 130648.88888888889,
"entry_at": "2026-09-07T15:06:37.166128+09:00",
"stop": 112569,
"target": 157769,
"peak": 141500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 117300,
"tranches": 2,
"tranche_value": 2972315.521438034,
"last_add_price": 133000
},
"088350": {
"code": "088350",
"name": "한화생명",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5270,
"cur_price": 5190,
"tranches": 1,
"tranche_value": 3841058.1045267605,
"last_add_price": 5740
@@ -134,20 +113,20 @@
"sources": [
"watch"
],
"qty": 222,
"entry_price": 13840,
"qty": 435,
"entry_price": 14153.379310344828,
"entry_at": "2026-09-30T09:20:46.247053+09:00",
"stop": 12020,
"target": 16570,
"peak": 14150,
"stop": 12313,
"target": 16914,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"tranches": 1,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 3084806.650713627,
"last_add_price": 13840
"last_add_price": 14480
},
"256840": {
"code": "256840",
@@ -160,22 +139,43 @@
"entry_at": "2026-10-01T09:14:40.787976+09:00",
"stop": 2839,
"target": 3979,
"peak": 3360,
"peak": 3395,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 3290,
"cur_price": 3085,
"tranches": 1,
"tranche_value": 2903831.4709745073,
"last_add_price": 3295
},
"108490": {
"code": "108490",
"name": "로보티즈",
"sources": [
"interest"
],
"qty": 8,
"entry_price": 316500,
"entry_at": "2026-10-06T13:48:51.855750+09:00",
"stop": 268844,
"target": 387984,
"peak": 323500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 299500,
"tranches": 1,
"tranche_value": 2654299.104132049,
"last_add_price": 316500
}
},
"realized_pnl": -18748367.83600003,
"closed_trades": 43,
"realized_pnl": -19571330.36600003,
"closed_trades": 44,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.19890120509249984,
"max_drawdown": 0.2103887359524998,
"last_exit": {
"030000": "2026-09-04",
"086790": "2026-07-29",
@@ -197,8 +197,9 @@
"068270": "2026-09-04",
"327260": "2026-09-07",
"204270": "2026-09-30",
"001790": "2026-10-01"
"001790": "2026-10-01",
"000720": "2026-10-06"
},
"created_at": "2026-06-15T14:55:00.582926+09:00",
"updated_at": "2026-10-01T15:28:44.449882+09:00"
"updated_at": "2026-10-08T15:28:48.390168+09:00"
}
@@ -121,3 +121,6 @@
{"ts": "2026-09-30T09:20:46.247056+09:00", "side": "BUY", "code": "077360", "name": "덕산하이메탈", "price": 13840, "qty": 222, "cost": 3072941, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 12020, "target": 16570, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "13,840 vs 11,069"}, {"label": "정배열(5>10)", "ok": true, "detail": "11,944 / 11,069"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "11,944 / 9,755"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+37.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -250 · 기 +360 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+35%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.46% (환산) vs 평균 1.87% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 12,590"}, {"label": "거래량 급증", "ok": true, "detail": "1,570,260 (환산) vs 평균 848,026"}, {"label": "회전율 급증", "ok": true, "detail": "3.46% (환산) vs 평균 1.87%"}, {"label": "RSI", "ok": true, "detail": "76"}]}
{"ts": "2026-10-01T09:14:40.787566+09:00", "side": "SELL", "code": "001790", "name": "대한제당", "price": 2785, "qty": 1816, "proceeds": 5047698, "entry_price": 2960, "pnl": -328469, "pnl_pct": -5.91, "hold_from": "2026-09-01T09:18:25.193270+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "2,782 (현재 2,780)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 3,226"}, {"label": "추세(10일선)", "ok": false, "detail": "2,810"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -61 · 기 +86"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 3,002"}]}
{"ts": "2026-10-01T09:14:40.787977+09:00", "side": "BUY", "code": "256840", "name": "한국비엔씨", "price": 3295, "qty": 881, "cost": 2903330, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 2839, "target": 3979, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "3,290 vs 2,724"}, {"label": "정배열(5>10)", "ok": true, "detail": "2,823 / 2,724"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "2,823 / 2,553"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+14.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,073 · 기 +1 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.19% (환산) vs 평균 2.21% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 3,150"}, {"label": "거래량 급증", "ok": true, "detail": "2,864,007 (환산) vs 평균 1,514,272"}, {"label": "회전율 급증", "ok": true, "detail": "4.19% (환산) vs 평균 2.21%"}, {"label": "RSI", "ok": true, "detail": "74"}]}
{"ts": "2026-10-02T10:20:50.203375+09:00", "side": "BUY", "code": "077360", "name": "덕산하이메탈", "price": 14480, "qty": 213, "cost": 3084703, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 12020, "target": 16570, "signals": [{"label": "손절선", "ok": true, "detail": "12,020 (현재 14,360)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,570"}, {"label": "추세(10일선)", "ok": true, "detail": "11,121"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -328 · 기 +369"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,300"}]}
{"ts": "2026-10-06T13:48:51.854615+09:00", "side": "SELL", "code": "000720", "name": "현대건설", "price": 112600, "qty": 45, "proceeds": 5057119, "entry_price": 130649, "pnl": -822963, "pnl_pct": -13.81, "hold_from": "2026-09-07T15:06:37.166128+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "112,569 (현재 112,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,769"}, {"label": "추세(10일선)", "ok": false, "detail": "112,890"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -101 · 기 -533"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-06T13:48:51.855754+09:00", "side": "BUY", "code": "108490", "name": "로보티즈", "price": 316500, "qty": 8, "cost": 2532380, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 268844, "target": 387984, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "316,000 vs 263,000"}, {"label": "정배열(5>10)", "ok": true, "detail": "274,000 / 263,000"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "274,000 / 242,227"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +82 · 기 +24 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+24%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.91% (환산) vs 평균 1.94% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 315,000"}, {"label": "거래량 급증", "ok": true, "detail": "574,160 (환산) vs 평균 284,061"}, {"label": "회전율 급증", "ok": true, "detail": "3.91% (환산) vs 평균 1.94%"}, {"label": "RSI", "ok": true, "detail": "69"}]}
@@ -1,5 +1,5 @@
{
"cash": 37750382.68524999,
"cash": 37534347.488249995,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4271897.688361821,
"last_add_price": 13420
},
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 99,
"entry_price": 34563.63636363636,
"entry_at": "2026-08-20T09:02:18.553157+09:00",
"stop": 26852,
"target": 57698,
"peak": 53100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1725875.4362712654,
"last_add_price": 35800
},
"041520": {
"code": "041520",
"name": "이엘씨",
@@ -55,12 +34,12 @@
"entry_at": "2026-09-01T09:00:39.404439+09:00",
"stop": 10518,
"target": 14942,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,563 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3922687.5648087934,
"last_add_price": 11890
@@ -76,12 +55,12 @@
"entry_at": "2026-09-04T12:34:28.379088+09:00",
"stop": 4035,
"target": 7075,
"peak": 5070,
"peak": 5140,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,342 도달",
"cur_price": 4530,
"cur_price": 4490,
"tranches": 1,
"tranche_value": 2474296.0650329688,
"last_add_price": 4795
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 411,247 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 1,
"tranche_value": 4981802.023234375,
"last_add_price": 411000
@@ -123,57 +102,78 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,104 도달",
"cur_price": 16080,
"cur_price": 16110,
"tranches": 1,
"tranche_value": 4892789.090421874,
"last_add_price": 16140
},
"005930": {
"code": "005930",
"name": "삼성전자",
"sources": [
"held"
],
"qty": 17,
"entry_price": 282500,
"entry_at": "2026-09-22T09:04:47.363234+09:00",
"stop": 264082,
"target": 337753,
"peak": 285000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 275000,
"tranches": 1,
"tranche_value": 4927580.232015625,
"last_add_price": 282500
},
"372170": {
"code": "372170",
"name": "윤성에프앤씨",
"sources": [
"auto"
],
"qty": 132,
"entry_price": 19940,
"qty": 255,
"entry_price": 20644.235294117647,
"entry_at": "2026-09-23T10:50:50.043744+09:00",
"stop": 17002,
"target": 28754,
"peak": 21450,
"stop": 17827,
"target": 29095,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,362 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2651624.2370578027,
"last_add_price": 19940
"last_add_price": 21400
},
"056360": {
"code": "056360",
"name": "코위버",
"sources": [
"watch"
],
"qty": 719,
"entry_price": 6320,
"entry_at": "2026-10-08T09:02:54.095141+09:00",
"stop": 5770,
"target": 7970,
"peak": 6420,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,290 도달",
"cur_price": 6210,
"tranches": 1,
"tranche_value": 4546607.829661637,
"last_add_price": 6320
},
"456010": {
"code": "456010",
"name": "아이씨티케이",
"sources": [
"watch"
],
"qty": 113,
"entry_price": 24300,
"entry_at": "2026-10-08T09:50:46.662983+09:00",
"stop": 20800,
"target": 34800,
"peak": 24500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 24,911 도달",
"cur_price": 24100,
"tranches": 1,
"tranche_value": 2769102.4860999645,
"last_add_price": 24300
}
},
"realized_pnl": -22744517.438500024,
"closed_trades": 52,
"wins": 3,
"realized_pnl": -21262417.953500025,
"closed_trades": 54,
"wins": 4,
"peak_equity": 100344662.275,
"max_drawdown": 0.23080444655370694,
"last_exit": {
@@ -199,8 +199,10 @@
"068270": "2026-09-04",
"001790": "2026-09-11",
"079650": "2026-09-21",
"034020": "2026-09-23"
"034020": "2026-09-23",
"327260": "2026-10-08",
"005930": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.583136+09:00",
"updated_at": "2026-10-01T15:28:44.457645+09:00"
"updated_at": "2026-10-08T15:28:48.393901+09:00"
}
@@ -143,3 +143,8 @@
{"ts": "2026-09-22T09:04:47.363237+09:00", "side": "BUY", "code": "005930", "name": "삼성전자", "price": 282500, "qty": 17, "cost": 4803220, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 264082, "target": 337753, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "282,000 vs 261,225"}, {"label": "정배열(5>20)", "ok": true, "detail": "265,300 / 261,225"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "265,300 / 262,833"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+3.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,624 · 기 +8,791 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+73%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.60% (환산) vs 평균 0.29% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 279,000"}, {"label": "거래량 급증", "ok": true, "detail": "35,127,313 (환산) vs 평균 16,802,321"}, {"label": "회전율 급증", "ok": true, "detail": "0.60% (환산) vs 평균 0.29%"}, {"label": "RSI", "ok": true, "detail": "60"}]}
{"ts": "2026-09-23T10:50:50.042957+09:00", "side": "SELL", "code": "034020", "name": "두산에너빌리티", "price": 81900, "qty": 48, "proceeds": 3923534, "entry_price": 90400, "pnl": -416317, "pnl_pct": -9.4, "hold_from": "2026-09-10T14:02:38.914134+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "82,166 (현재 81,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 115,103"}, {"label": "추세(20일선)", "ok": true, "detail": "79,860"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -1,708 · 기 -509"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 92,980"}]}
{"ts": "2026-09-23T10:50:50.043746+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 19940, "qty": 132, "cost": 2632475, "path": "pullback", "reason": "눌림목 지정가 20,362 도달", "stop": 17002, "target": 28754, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "19,980 vs 16,754"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,632 / 16,754"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,632 / 19,445"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+35.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +1 · 기 -1 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.05% (환산) vs 평균 0.56% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 23,400"}, {"label": "거래량 급증", "ok": false, "detail": "4,180 (환산) vs 평균 44,688"}, {"label": "회전율 급증", "ok": false, "detail": "0.05% (환산) vs 평균 0.56%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,362 (현재 19,980)"}]}
{"ts": "2026-10-02T09:01:25.717758+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 123, "cost": 2632595, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17002, "target": 28754, "signals": [{"label": "손절선", "ok": true, "detail": "17,002 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 28,754"}, {"label": "추세(20일선)", "ok": true, "detail": "16,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 20,879"}]}
{"ts": "2026-10-08T09:02:54.092871+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 99, "proceeds": 5177484, "entry_price": 34564, "pnl": 1755171, "pnl_pct": 51.6, "hold_from": "2026-08-20T09:02:18.553157+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.095143+09:00", "side": "BUY", "code": "056360", "name": "코위버", "price": 6320, "qty": 719, "cost": 4544762, "path": "pullback", "reason": "눌림목 지정가 6,290 도달", "stop": 5770, "target": 7970, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,290 vs 5,940"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,478 / 5,940"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,478 / 5,505"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +22 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.54% (환산) vs 평균 2.14% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 7,140"}, {"label": "거래량 급증", "ok": false, "detail": "52,487 (환산) vs 평균 209,822"}, {"label": "회전율 급증", "ok": false, "detail": "0.54% (환산) vs 평균 2.14%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,290 (현재 6,290)"}]}
{"ts": "2026-10-08T09:26:48.524254+09:00", "side": "SELL", "code": "005930", "name": "삼성전자", "price": 267000, "qty": 17, "proceeds": 4530149, "entry_price": 282500, "pnl": -273071, "pnl_pct": -5.49, "hold_from": "2026-09-22T09:04:47.363234+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "264,082 (현재 267,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 337,753"}, {"label": "추세(20일선)", "ok": false, "detail": "267,450"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -3,285 · 기 -353"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 288,102"}]}
{"ts": "2026-10-08T09:50:46.662985+09:00", "side": "BUY", "code": "456010", "name": "아이씨티케이", "price": 24300, "qty": 113, "cost": 2746312, "path": "pullback", "reason": "눌림목 지정가 24,911 도달", "stop": 20800, "target": 34800, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "24,250 vs 21,057"}, {"label": "정배열(5>20)", "ok": true, "detail": "25,140 / 21,057"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,140 / 17,333"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+53.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +115 · 기 +6 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+147%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "8.33% (환산) vs 평균 8.21% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 30,350"}, {"label": "거래량 급증", "ok": false, "detail": "1,208,673 (환산) vs 평균 1,191,082"}, {"label": "회전율 급증", "ok": false, "detail": "8.33% (환산) vs 평균 8.21%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 24,911 (현재 24,250)"}]}
@@ -1,28 +1,7 @@
{
"cash": 19086137.043999992,
"cash": 20046415.27399999,
"initial": 100000000,
"positions": {
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 22,
"entry_price": 347250.0,
"entry_at": "2026-07-13T09:12:04.319241+09:00",
"stop": 305399,
"target": 472804,
"peak": 465250,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 314500,
"tranches": 2,
"tranche_value": 3889733.683715179,
"last_add_price": 353000
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
@@ -39,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 126300,
"cur_price": 127200,
"tranches": 2,
"tranche_value": 5327150.576000001,
"last_add_price": 120500
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 4940372.790080874,
"last_add_price": 125200
@@ -76,12 +55,12 @@
"entry_at": "2026-07-30T09:24:07.560095+09:00",
"stop": 118205,
"target": 180831,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3791237.2526261737,
"last_add_price": 136000
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 31,939 도달",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 2,
"tranche_value": 5133126.668375,
"last_add_price": 32750
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,946 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 1870914.8665673207,
"last_add_price": 14660
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4478278.821943787,
"last_add_price": 31000
@@ -155,24 +134,45 @@
"sources": [
"auto"
],
"qty": 106,
"entry_price": 20800,
"qty": 208,
"entry_price": 21216.826923076922,
"entry_at": "2026-09-17T09:00:51.220811+09:00",
"stop": 16916,
"target": 32453,
"peak": 21450,
"stop": 17461,
"target": 32484,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,358 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2222419.950014418,
"last_add_price": 20800
"last_add_price": 21650
},
"051900": {
"code": "051900",
"name": "LG생활건강",
"sources": [
"auto"
],
"qty": 13,
"entry_price": 270500,
"entry_at": "2026-10-02T14:48:49.224031+09:00",
"stop": 240374,
"target": 360878,
"peak": 274500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 276,937 도달",
"cur_price": 269500,
"tranches": 1,
"tranche_value": 3748016.1942515597,
"last_add_price": 270500
}
},
"realized_pnl": -20485550.068500023,
"closed_trades": 37,
"realized_pnl": -21440259.043500025,
"closed_trades": 38,
"wins": 0,
"peak_equity": 101140808.32700005,
"max_drawdown": 0.1947881632733674,
@@ -184,7 +184,7 @@
"403870": "2026-07-07",
"093370": "2026-07-20",
"240810": "2026-07-24",
"214450": "2026-07-06",
"214450": "2026-10-02",
"034730": "2026-07-07",
"003490": "2026-08-18",
"105560": "2026-07-20",
@@ -199,5 +199,5 @@
"327260": "2026-09-07"
},
"created_at": "2026-06-15T14:55:00.583184+09:00",
"updated_at": "2026-10-01T15:28:44.463448+09:00"
"updated_at": "2026-10-08T15:28:48.397280+09:00"
}
@@ -112,3 +112,6 @@
{"ts": "2026-09-17T09:00:50.797196+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 137000, "qty": 21, "proceeds": 2871390, "entry_price": 158014, "pnl": -447408, "pnl_pct": -13.3, "hold_from": "2026-09-07T15:06:37.179898+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "120,000 (현재 135,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 272,057"}, {"label": "추세(10일선)", "ok": false, "detail": "151,150"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -114 · 기 -31"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-17T09:00:51.220826+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 20800, "qty": 106, "cost": 2205131, "path": "pullback", "reason": "눌림목 지정가 21,358 도달", "stop": 16916, "target": 32453, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "20,350 vs 19,093"}, {"label": "정배열(5>10)", "ok": true, "detail": "19,706 / 19,093"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,706 / 19,451"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+42.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +3 · 기 +2 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.08% (환산) vs 평균 0.56% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 23,400"}, {"label": "거래량 급증", "ok": false, "detail": "6,607 (환산) vs 평균 44,688"}, {"label": "회전율 급증", "ok": false, "detail": "0.08% (환산) vs 평균 0.56%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 21,358 (현재 20,350)"}]}
{"ts": "2026-09-22T13:20:49.814198+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 31000, "qty": 144, "cost": 4464670, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 27327, "target": 38819, "signals": [{"label": "손절선", "ok": true, "detail": "27,327 (현재 31,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 38,819"}, {"label": "추세(10일선)", "ok": true, "detail": "25,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -198 · 기 +430"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 30,936"}]}
{"ts": "2026-10-02T09:02:44.634364+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21650, "qty": 102, "cost": 2208631, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 16916, "target": 32453, "signals": [{"label": "손절선", "ok": true, "detail": "16,916 (현재 21,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 32,453"}, {"label": "추세(10일선)", "ok": true, "detail": "19,233"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,739"}]}
{"ts": "2026-10-02T14:48:49.223172+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 304500, "qty": 22, "proceeds": 6685937, "entry_price": 347250, "pnl": -954709, "pnl_pct": -12.31, "hold_from": "2026-07-13T09:12:04.319241+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "305,399 (현재 305,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 472,804"}, {"label": "추세(10일선)", "ok": true, "detail": "301,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -122"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-02T14:48:49.224034+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 270500, "qty": 13, "cost": 3517027, "path": "pullback", "reason": "눌림목 지정가 276,937 도달", "stop": 240374, "target": 360878, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "270,000 vs 256,700"}, {"label": "정배열(5>10)", "ok": true, "detail": "267,300 / 256,700"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "267,300 / 248,933"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+3.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -47 · 기 +17 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+23%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.49% (환산) vs 평균 0.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 314,500"}, {"label": "거래량 급증", "ok": false, "detail": "73,192 (환산) vs 평균 78,860"}, {"label": "회전율 급증", "ok": false, "detail": "0.49% (환산) vs 평균 0.53%"}, {"label": "RSI", "ok": true, "detail": "60"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 276,937 (현재 270,000)"}]}
@@ -1,5 +1,5 @@
{
"cash": 34120811.321499996,
"cash": 33082273.731499996,
"initial": 100000000,
"positions": {
"086790": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 5075960.404438956,
"last_add_price": 125200
@@ -39,32 +39,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3433240.983007488,
"last_add_price": 13420
},
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 78,
"entry_price": 34569.230769230766,
"entry_at": "2026-08-20T09:02:18.566265+09:00",
"stop": 24287,
"target": 55133,
"peak": 53100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 35,709 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1369448.2358109318,
"last_add_price": 35800
},
"316140": {
"code": "316140",
"name": "우리금융지주",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 31,939 도달",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 2,
"tranche_value": 5207054.06571875,
"last_add_price": 32750
@@ -95,14 +74,14 @@
"qty": 299,
"entry_price": 13533.411371237458,
"entry_at": "2026-09-10T09:00:59.533567+09:00",
"stop": 18085,
"stop": 18268,
"target": 19685,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,977 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2028063.468468333,
"last_add_price": 13930
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 420,141 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 1,
"tranche_value": 5110932.165583902,
"last_add_price": 410500
@@ -139,12 +118,12 @@
"entry_at": "2026-09-15T10:28:42.212262+09:00",
"stop": 10606,
"target": 14939,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,977 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3423153.5325177917,
"last_add_price": 12300
@@ -160,20 +139,41 @@
"entry_at": "2026-09-30T09:01:19.666350+09:00",
"stop": 10600,
"target": 14440,
"peak": 12040,
"peak": 12410,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 12,370 도달",
"cur_price": 11950,
"cur_price": 12200,
"tranches": 1,
"tranche_value": 4147227.4034580463,
"last_add_price": 11880
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 17,
"entry_price": 301000,
"entry_at": "2026-10-08T09:02:54.101882+09:00",
"stop": 276000,
"target": 351000,
"peak": 306000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 303,967 도달",
"cur_price": 302000,
"tranches": 1,
"tranche_value": 5260542.7631463,
"last_add_price": 301000
}
},
"realized_pnl": -16025461.74100003,
"closed_trades": 44,
"wins": 6,
"realized_pnl": -14643036.24100003,
"closed_trades": 45,
"wins": 7,
"peak_equity": 101368884.75700004,
"max_drawdown": 0.18244887903556523,
"last_exit": {
@@ -197,8 +197,9 @@
"078930": "2026-07-31",
"138040": "2026-09-08",
"012450": "2026-09-15",
"034020": "2026-09-29"
"034020": "2026-09-29",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.583198+09:00",
"updated_at": "2026-10-01T15:28:44.472424+09:00"
"updated_at": "2026-10-08T15:28:48.400667+09:00"
}
@@ -128,3 +128,5 @@
{"ts": "2026-09-18T09:06:44.365930+09:00", "side": "BUY", "code": "041520", "name": "이엘씨", "price": 12300, "qty": 278, "cost": 3419913, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10284, "target": 14862, "signals": [{"label": "손절선", "ok": true, "detail": "10,284 (현재 12,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 14,862"}, {"label": "추세(20일선)", "ok": true, "detail": "10,172"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +17 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 12,171"}]}
{"ts": "2026-09-29T09:04:46.164282+09:00", "side": "SELL", "code": "034020", "name": "두산에너빌리티", "price": 79800, "qty": 39, "proceeds": 3106131, "entry_price": 90400, "pnl": -419998, "pnl_pct": -11.73, "hold_from": "2026-09-10T14:02:38.927922+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "79,421 (현재 79,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 112,358"}, {"label": "추세(20일선)", "ok": false, "detail": "79,745"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -2,599 · 기 -1,209"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 92,773"}]}
{"ts": "2026-09-30T09:01:19.666352+09:00", "side": "BUY", "code": "024060", "name": "흥구석유", "price": 11880, "qty": 349, "cost": 4146742, "path": "pullback", "reason": "눌림목 지정가 12,370 도달", "stop": 10600, "target": 14440, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "12,140 vs 11,844"}, {"label": "정배열(5>20)", "ok": true, "detail": "13,896 / 11,844"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "13,896 / 11,184"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+17.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.00% (환산) vs 평균 29.44% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 17,310"}, {"label": "거래량 급증", "ok": false, "detail": "587 (환산) vs 평균 4,415,653"}, {"label": "회전율 급증", "ok": false, "detail": "0.00% (환산) vs 평균 29.44%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 12,370 (현재 12,140)"}]}
{"ts": "2026-10-08T09:02:54.101172+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 78, "proceeds": 4079230, "entry_price": 34569, "pnl": 1382426, "pnl_pct": 51.58, "hold_from": "2026-08-20T09:02:18.566265+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.101884+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 301000, "qty": 17, "cost": 5117768, "path": "pullback", "reason": "눌림목 지정가 303,967 도달", "stop": 276000, "target": 351000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "303,500 vs 294,300"}, {"label": "정배열(5>20)", "ok": true, "detail": "306,900 / 294,300"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "306,900 / 304,808"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-5.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +88 · 기 -120 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+73%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.37% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,207 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": false, "detail": "0.37% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 303,967 (현재 303,500)"}]}
@@ -1,5 +1,5 @@
{
"cash": 44789696.39750004,
"cash": 41973812.24550004,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3393597.375168939,
"last_add_price": 13420
},
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 78,
"entry_price": 34569.230769230766,
"entry_at": "2026-08-20T09:02:18.571212+09:00",
"stop": 24287,
"target": 55133,
"peak": 53100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1360762.8418676818,
"last_add_price": 35800
},
"003680": {
"code": "003680",
"name": "한성기업",
@@ -55,12 +34,12 @@
"entry_at": "2026-09-04T12:34:28.394416+09:00",
"stop": 4035,
"target": 6315,
"peak": 5070,
"peak": 5140,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,342 도달",
"cur_price": 4530,
"cur_price": 4490,
"tranches": 1,
"tranche_value": 2667186.0151028302,
"last_add_price": 4795
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 411,461 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 1,
"tranche_value": 4957124.381763087,
"last_add_price": 410500
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2314620.8603280014,
"last_add_price": 17350
@@ -113,20 +92,20 @@
"sources": [
"auto"
],
"qty": 104,
"entry_price": 20200,
"qty": 202,
"entry_price": 20782.178217821784,
"entry_at": "2026-09-16T13:08:42.123563+09:00",
"stop": 16281,
"target": 28037,
"peak": 21450,
"stop": 17026,
"target": 28294,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,361 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2104217.9889743566,
"last_add_price": 20200
"last_add_price": 21400
},
"041520": {
"code": "041520",
@@ -139,12 +118,12 @@
"entry_at": "2026-09-17T09:08:42.400423+09:00",
"stop": 10684,
"target": 15043,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,592 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3193443.5587442005,
"last_add_price": 12330
@@ -160,20 +139,41 @@
"entry_at": "2026-09-30T09:28:45.956399+09:00",
"stop": 15262,
"target": 22631,
"peak": 18850,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 18800,
"cur_price": 19880,
"tranches": 2,
"tranche_value": 3067366.8402105216,
"last_add_price": 18060
},
"056360": {
"code": "056360",
"name": "코위버",
"sources": [
"watch"
],
"qty": 759,
"entry_price": 6320,
"entry_at": "2026-10-08T09:02:54.106926+09:00",
"stop": 5770,
"target": 7420,
"peak": 6420,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,290 도달",
"cur_price": 6210,
"tranches": 1,
"tranche_value": 4803541.956670911,
"last_add_price": 6320
}
},
"realized_pnl": -18960186.90050003,
"closed_trades": 50,
"wins": 6,
"realized_pnl": -17577761.40050003,
"closed_trades": 51,
"wins": 7,
"peak_equity": 100182695.41500005,
"max_drawdown": 0.18658896845473755,
"last_exit": {
@@ -199,8 +199,9 @@
"440110": "2026-09-14",
"012450": "2026-09-15",
"060250": "2026-09-16",
"034020": "2026-09-29"
"034020": "2026-09-29",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.583212+09:00",
"updated_at": "2026-10-01T15:28:44.477416+09:00"
"updated_at": "2026-10-08T15:28:48.404070+09:00"
}
@@ -142,3 +142,6 @@
{"ts": "2026-09-30T09:12:46.535522+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 149900, "qty": 34, "proceeds": 5086662, "entry_price": 150400, "pnl": -27705, "pnl_pct": -0.33, "hold_from": "2026-09-30T09:02:50.963748+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "150,399 (현재 150,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "149,300"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -37 · 기 +116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T09:28:45.956401+09:00", "side": "BUY", "code": "033160", "name": "엠케이전자", "price": 17390, "qty": 176, "cost": 3061099, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 15035, "target": 22100, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "17,370 vs 14,164"}, {"label": "정배열(5>20)", "ok": true, "detail": "15,826 / 14,164"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "15,826 / 15,120"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+16.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -134 · 기 +354 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.98% (환산) vs 평균 3.24% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 17,350"}, {"label": "거래량 급증", "ok": true, "detail": "1,715,160 (환산) vs 평균 794,461"}, {"label": "회전율 급증", "ok": true, "detail": "6.98% (환산) vs 평균 3.24%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-10-01T11:24:45.038830+09:00", "side": "BUY", "code": "033160", "name": "엠케이전자", "price": 18060, "qty": 169, "cost": 3052598, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 15035, "target": 22100, "signals": [{"label": "손절선", "ok": true, "detail": "15,035 (현재 18,050)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,100"}, {"label": "추세(20일선)", "ok": true, "detail": "14,198"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -338 · 기 +180"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 18,004"}]}
{"ts": "2026-10-02T09:01:25.736393+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 98, "cost": 2097515, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 16281, "target": 28037, "signals": [{"label": "손절선", "ok": true, "detail": "16,281 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 28,037"}, {"label": "추세(20일선)", "ok": true, "detail": "16,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,139"}]}
{"ts": "2026-10-08T09:02:54.105189+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 78, "proceeds": 4079230, "entry_price": 34569, "pnl": 1382426, "pnl_pct": 51.58, "hold_from": "2026-08-20T09:02:18.571212+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.106928+09:00", "side": "BUY", "code": "056360", "name": "코위버", "price": 6320, "qty": 759, "cost": 4797600, "path": "pullback", "reason": "눌림목 지정가 6,290 도달", "stop": 5770, "target": 7420, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,290 vs 5,940"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,478 / 5,940"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,478 / 5,505"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +22 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.54% (환산) vs 평균 2.14% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 7,140"}, {"label": "거래량 급증", "ok": false, "detail": "52,487 (환산) vs 평균 209,822"}, {"label": "회전율 급증", "ok": false, "detail": "0.54% (환산) vs 평균 2.14%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,290 (현재 6,290)"}]}
@@ -1,5 +1,5 @@
{
"cash": 33182506.395999983,
"cash": 30952221.903499983,
"initial": 100000000,
"positions": {
"086790": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 4940372.790080874,
"last_add_price": 125200
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 31,939 도달",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 2,
"tranche_value": 5113659.21834375,
"last_add_price": 32750
@@ -53,14 +53,14 @@
"qty": 264,
"entry_price": 14104.734848484848,
"entry_at": "2026-09-04T11:14:28.107284+09:00",
"stop": 18085,
"stop": 18268,
"target": 20145,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,946 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 1867525.9036903584,
"last_add_price": 14660
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4469498.464141663,
"last_add_price": 31000
@@ -97,12 +97,12 @@
"entry_at": "2026-09-10T14:12:34.510311+09:00",
"stop": 36405,
"target": 63833,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 2073999.8646011376,
"last_add_price": 46800
@@ -113,20 +113,20 @@
"sources": [
"auto"
],
"qty": 107,
"entry_price": 20800,
"qty": 210,
"entry_price": 21216.904761904763,
"entry_at": "2026-09-17T09:00:51.566468+09:00",
"stop": 16916,
"target": 28569,
"peak": 21450,
"stop": 17461,
"target": 28728,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,358 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2239564.1285592173,
"last_add_price": 20800
"last_add_price": 21650
},
"095610": {
"code": "095610",
@@ -139,12 +139,12 @@
"entry_at": "2026-09-22T09:02:49.895908+09:00",
"stop": 121395,
"target": 232866,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 157,986 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1710371.4944222153,
"last_add_price": 164000
@@ -165,7 +165,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,148 도달",
"cur_price": 6050,
"cur_price": 5940,
"tranches": 1,
"tranche_value": 5227595.035531249,
"last_add_price": 6050
@@ -202,5 +202,5 @@
"000720": "2026-09-28"
},
"created_at": "2026-06-15T14:55:00.583227+09:00",
"updated_at": "2026-10-01T15:28:44.481531+09:00"
"updated_at": "2026-10-08T15:28:48.407066+09:00"
}
@@ -130,3 +130,4 @@
{"ts": "2026-09-28T09:04:46.901221+09:00", "side": "SELL", "code": "000720", "name": "현대건설", "price": 119200, "qty": 43, "proceeds": 5115605, "entry_price": 138584, "pnl": -844389, "pnl_pct": -13.99, "hold_from": "2026-09-09T09:02:33.510479+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,275 (현재 119,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 177,201"}, {"label": "추세(10일선)", "ok": true, "detail": "113,530"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -440 · 기 -358"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-28T09:04:46.902181+09:00", "side": "BUY", "code": "025860", "name": "남해화학", "price": 6050, "qty": 863, "cost": 5221933, "path": "pullback", "reason": "눌림목 지정가 6,148 도달", "stop": 5730, "target": 6690, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,060 vs 6,027"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,098 / 6,027"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,098 / 5,899"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+9.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -32 · 기 +15 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.09% (환산) vs 평균 1.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 6,700"}, {"label": "거래량 급증", "ok": false, "detail": "45,067 (환산) vs 평균 758,257"}, {"label": "회전율 급증", "ok": false, "detail": "0.09% (환산) vs 평균 1.53%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,148 (현재 6,060)"}]}
{"ts": "2026-09-28T09:20:50.708741+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 164000, "qty": 10, "cost": 1640246, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 115572, "target": 229657, "signals": [{"label": "손절선", "ok": true, "detail": "115,572 (현재 163,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,657"}, {"label": "추세(10일선)", "ok": true, "detail": "153,880"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +222 · 기 -12"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 162,889"}]}
{"ts": "2026-10-02T09:02:44.653719+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21650, "qty": 103, "cost": 2230284, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 16916, "target": 28569, "signals": [{"label": "손절선", "ok": true, "detail": "16,916 (현재 21,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 28,569"}, {"label": "추세(10일선)", "ok": true, "detail": "19,233"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,739"}]}
@@ -1,28 +1,7 @@
{
"cash": 27259893.598199975,
"cash": 24595381.514199976,
"initial": 100000000,
"positions": {
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 105,
"entry_price": 34565.71428571428,
"entry_at": "2026-08-20T09:02:18.579921+09:00",
"stop": 46039,
"target": 46133,
"peak": 53100,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1835134.7132164796,
"last_add_price": 35800
},
"041520": {
"code": "041520",
"name": "이엘씨",
@@ -34,12 +13,12 @@
"entry_at": "2026-09-01T09:00:39.955979+09:00",
"stop": 10518,
"target": 13283,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,563 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 4188194.7669907366,
"last_add_price": 11890
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 5380475.415249998,
"last_add_price": 30000
@@ -74,14 +53,14 @@
"qty": 358,
"entry_price": 13434.525139664804,
"entry_at": "2026-09-09T09:04:30.445123+09:00",
"stop": 18085,
"stop": 18268,
"target": 16895,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,153 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2413342.693478599,
"last_add_price": 13820
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
"qty": 146,
"entry_price": 20200,
"qty": 284,
"entry_price": 20783.098591549297,
"entry_at": "2026-09-16T13:08:42.133982+09:00",
"stop": 17261,
"target": 24608,
"peak": 21450,
"trailing_on": false,
"stop": 22855,
"target": 25008,
"peak": 25500,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,361 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2964066.934819155,
"last_add_price": 20200
"last_add_price": 21400
},
"004370": {
"code": "004370",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,961 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 5479109.772843748,
"last_add_price": 404000
@@ -139,12 +118,12 @@
"entry_at": "2026-09-23T10:50:50.062027+09:00",
"stop": 1053,
"target": 1442,
"peak": 1298,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,186 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 3324577.898896041,
"last_add_price": 1235
@@ -158,22 +137,43 @@
"qty": 496,
"entry_price": 17718.245967741936,
"entry_at": "2026-09-30T09:28:45.964972+09:00",
"stop": 15876,
"stop": 18779,
"target": 20481,
"peak": 18850,
"trailing_on": false,
"peak": 20750,
"trailing_on": true,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 18800,
"cur_price": 19880,
"tranches": 2,
"tranche_value": 4402939.823960427,
"last_add_price": 18060
},
"056360": {
"code": "056360",
"name": "코위버",
"sources": [
"watch"
],
"qty": 823,
"entry_price": 6320,
"entry_at": "2026-10-08T09:02:54.113794+09:00",
"stop": 5770,
"target": 7145,
"peak": 6420,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,290 도달",
"cur_price": 6210,
"tranches": 1,
"tranche_value": 5203273.909627489,
"last_add_price": 6320
}
},
"realized_pnl": -16435579.98950004,
"closed_trades": 63,
"wins": 11,
"realized_pnl": -14574253.29950004,
"closed_trades": 64,
"wins": 12,
"peak_equity": 100344662.275,
"max_drawdown": 0.17793081459150337,
"last_exit": {
@@ -202,8 +202,9 @@
"060250": "2026-09-16",
"079650": "2026-09-21",
"034020": "2026-09-23",
"180640": "2026-09-29"
"180640": "2026-09-29",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.583241+09:00",
"updated_at": "2026-10-01T15:28:44.485578+09:00"
"updated_at": "2026-10-08T15:28:48.410105+09:00"
}
@@ -170,3 +170,6 @@
{"ts": "2026-09-30T09:12:46.544858+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 149900, "qty": 37, "proceeds": 5535485, "entry_price": 150400, "pnl": -30150, "pnl_pct": -0.33, "hold_from": "2026-09-30T09:02:50.972493+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "150,399 (현재 150,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "149,300"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -37 · 기 +116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T09:28:45.964974+09:00", "side": "BUY", "code": "033160", "name": "엠케이전자", "price": 17390, "qty": 253, "cost": 4400330, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 15624, "target": 20039, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "17,370 vs 14,164"}, {"label": "정배열(5>20)", "ok": true, "detail": "15,826 / 14,164"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "15,826 / 15,120"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+16.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -134 · 기 +354 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+32%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "6.98% (환산) vs 평균 3.24% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 17,350"}, {"label": "거래량 급증", "ok": true, "detail": "1,715,160 (환산) vs 평균 794,461"}, {"label": "회전율 급증", "ok": true, "detail": "6.98% (환산) vs 평균 3.24%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-10-01T11:24:45.052283+09:00", "side": "BUY", "code": "033160", "name": "엠케이전자", "price": 18060, "qty": 243, "cost": 4389238, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 15624, "target": 20039, "signals": [{"label": "손절선", "ok": true, "detail": "15,624 (현재 18,050)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,039"}, {"label": "추세(20일선)", "ok": true, "detail": "14,198"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -338 · 기 +180"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 18,004"}]}
{"ts": "2026-10-02T09:01:25.747296+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 138, "cost": 2953643, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17261, "target": 24608, "signals": [{"label": "손절선", "ok": true, "detail": "17,261 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 24,608"}, {"label": "추세(20일선)", "ok": true, "detail": "16,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,139"}]}
{"ts": "2026-10-08T09:02:54.112145+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 105, "proceeds": 5491271, "entry_price": 34566, "pnl": 1861327, "pnl_pct": 51.6, "hold_from": "2026-08-20T09:02:18.579921+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.113796+09:00", "side": "BUY", "code": "056360", "name": "코위버", "price": 6320, "qty": 823, "cost": 5202140, "path": "pullback", "reason": "눌림목 지정가 6,290 도달", "stop": 5770, "target": 7145, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,290 vs 5,940"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,478 / 5,940"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,478 / 5,505"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +22 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.54% (환산) vs 평균 2.14% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 7,140"}, {"label": "거래량 급증", "ok": false, "detail": "52,487 (환산) vs 평균 209,822"}, {"label": "회전율 급증", "ok": false, "detail": "0.54% (환산) vs 평균 2.14%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,290 (현재 6,290)"}]}
@@ -1,28 +1,7 @@
{
"cash": 45940213.617500015,
"cash": 39634594.71050002,
"initial": 100000000,
"positions": {
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 81,
"entry_price": 34555.555555555555,
"entry_at": "2026-08-20T09:02:18.583985+09:00",
"stop": 46039,
"target": 49979,
"peak": 53100,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 35,709 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1405152.4684093075,
"last_add_price": 35800
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
@@ -32,14 +11,14 @@
"qty": 275,
"entry_price": 14067.2,
"entry_at": "2026-09-03T09:02:26.582362+09:00",
"stop": 18085,
"stop": 18268,
"target": 18598,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,982 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 1936750.8143745721,
"last_add_price": 14660
@@ -55,12 +34,12 @@
"entry_at": "2026-09-10T09:01:00.003107+09:00",
"stop": 10634,
"target": 14266,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 12,003 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3508251.3322146544,
"last_add_price": 12290
@@ -76,12 +55,12 @@
"entry_at": "2026-09-15T10:28:42.648525+09:00",
"stop": 4448,
"target": 6431,
"peak": 5710,
"peak": 6040,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 5,108 도달",
"cur_price": 5440,
"cur_price": 5860,
"tranches": 2,
"tranche_value": 2789847.3916354305,
"last_add_price": 5390
@@ -92,41 +71,20 @@
"sources": [
"auto"
],
"qty": 110,
"entry_price": 20200,
"qty": 214,
"entry_price": 20783.17757009346,
"entry_at": "2026-09-16T13:08:42.138680+09:00",
"stop": 16281,
"target": 26078,
"peak": 21450,
"stop": 17027,
"target": 26417,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,341 도달",
"cur_price": 21450,
"tranches": 1,
"tranche_value": 2236369.174025517,
"last_add_price": 20200
},
"025860": {
"code": "025860",
"name": "남해화학",
"sources": [
"watch"
],
"qty": 1758,
"entry_price": 6179.203640500569,
"entry_at": "2026-09-17T09:08:42.414455+09:00",
"stop": 5730,
"target": 6853,
"peak": 6250,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,156 도달",
"cur_price": 6050,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 5435662.905375001,
"last_add_price": 6250
"tranche_value": 2236369.174025517,
"last_add_price": 21400
},
"024060": {
"code": "024060",
@@ -139,12 +97,12 @@
"entry_at": "2026-09-30T09:01:19.684565+09:00",
"stop": 10600,
"target": 13800,
"peak": 12040,
"peak": 12410,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 12,370 도달",
"cur_price": 11950,
"cur_price": 12200,
"tranches": 1,
"tranche_value": 4102844.0325468755,
"last_add_price": 11880
@@ -155,25 +113,67 @@
"sources": [
"watch"
],
"qty": 2152,
"entry_price": 1200,
"qty": 4218,
"entry_price": 1224.4902797534376,
"entry_at": "2026-10-01T09:58:43.942726+09:00",
"stop": 995,
"target": 1508,
"peak": 1250,
"stop": 1023,
"target": 1526,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,239 도달",
"cur_price": 1226,
"tranches": 1,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 2583173.443243903,
"last_add_price": 1200
"last_add_price": 1250
},
"300720": {
"code": "300720",
"name": "한일시멘트",
"sources": [
"watch"
],
"qty": 694,
"entry_price": 16103.746397694524,
"entry_at": "2026-10-07T09:10:56.286148+09:00",
"stop": 14960,
"target": 17819,
"peak": 16290,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,378 도달",
"cur_price": 16110,
"tranches": 2,
"tranche_value": 5602657.32753125,
"last_add_price": 16250
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 17,
"entry_price": 301000,
"entry_at": "2026-10-08T09:02:54.116297+09:00",
"stop": 276000,
"target": 338500,
"peak": 306000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 303,967 도달",
"cur_price": 302000,
"tranches": 1,
"tranche_value": 5375415.860082101,
"last_add_price": 301000
}
},
"realized_pnl": -15038984.140000038,
"closed_trades": 58,
"wins": 9,
"realized_pnl": -13904427.188000038,
"closed_trades": 60,
"wins": 10,
"peak_equity": 101368884.75700004,
"max_drawdown": 0.16324454094733756,
"last_exit": {
@@ -203,8 +203,10 @@
"060250": "2026-09-16",
"088350": "2026-09-28",
"004370": "2026-09-29",
"257720": "2026-10-01"
"257720": "2026-10-01",
"025860": "2026-10-07",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.583273+09:00",
"updated_at": "2026-10-01T15:28:44.489316+09:00"
"updated_at": "2026-10-08T15:28:48.413059+09:00"
}
@@ -161,3 +161,10 @@
{"ts": "2026-09-30T09:01:19.684567+09:00", "side": "BUY", "code": "024060", "name": "흥구석유", "price": 11880, "qty": 345, "cost": 4099215, "path": "pullback", "reason": "눌림목 지정가 12,370 도달", "stop": 10600, "target": 13800, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "12,140 vs 11,844"}, {"label": "정배열(5>20)", "ok": true, "detail": "13,896 / 11,844"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "13,896 / 11,184"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+17.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.00% (환산) vs 평균 29.44% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 17,310"}, {"label": "거래량 급증", "ok": false, "detail": "587 (환산) vs 평균 4,415,653"}, {"label": "회전율 급증", "ok": false, "detail": "0.00% (환산) vs 평균 29.44%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 12,370 (현재 12,140)"}]}
{"ts": "2026-10-01T09:58:43.941962+09:00", "side": "SELL", "code": "257720", "name": "실리콘투", "price": 37550, "qty": 77, "proceeds": 2885712, "entry_price": 39150, "pnl": -129290, "pnl_pct": -4.09, "hold_from": "2026-09-28T09:01:02.918513+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "33,500 (현재 37,550)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 47,625"}, {"label": "추세(20일선)", "ok": false, "detail": "37,565"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -231 · 기 -208"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 40,843"}]}
{"ts": "2026-10-01T09:58:43.942728+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1200, "qty": 2152, "cost": 2582787, "path": "pullback", "reason": "눌림목 지정가 1,239 도달", "stop": 995, "target": 1508, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "1,196 vs 1,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "1,312 / 1,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,312 / 1,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+33.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -78 · 기 +4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.63% (환산) vs 평균 1.90% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 1,390"}, {"label": "거래량 급증", "ok": false, "detail": "469,107 (환산) vs 평균 1,410,399"}, {"label": "회전율 급증", "ok": false, "detail": "0.63% (환산) vs 평균 1.90%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239 (현재 1,196)"}]}
{"ts": "2026-10-02T09:01:25.752116+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 104, "cost": 2225934, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 16281, "target": 26078, "signals": [{"label": "손절선", "ok": true, "detail": "16,281 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 26,078"}, {"label": "추세(20일선)", "ok": true, "detail": "16,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,139"}]}
{"ts": "2026-10-06T12:58:51.413797+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1250, "qty": 2066, "cost": 2582887, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 995, "target": 1508, "signals": [{"label": "손절선", "ok": true, "detail": "995 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,508"}, {"label": "추세(20일선)", "ok": true, "detail": "1,143"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 -8"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,250"}]}
{"ts": "2026-10-07T09:10:56.285702+09:00", "side": "SELL", "code": "025860", "name": "남해화학", "price": 6020, "qty": 1758, "proceeds": 10562523, "entry_price": 6179, "pnl": -302147, "pnl_pct": -2.58, "hold_from": "2026-09-17T09:08:42.414455+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "5,730 (현재 6,030)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 6,853"}, {"label": "추세(20일선)", "ok": false, "detail": "6,172"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +92 · 기 -7"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-07T09:10:56.286150+09:00", "side": "BUY", "code": "300720", "name": "한일시멘트", "price": 15960, "qty": 350, "cost": 5586838, "path": "pullback", "reason": "눌림목 지정가 16,378 도달", "stop": 14817, "target": 17675, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "15,940 vs 15,201"}, {"label": "정배열(5>20)", "ok": true, "detail": "16,270 / 15,201"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "16,270 / 14,433"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+11.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -16 · 기 +15 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+29%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.04% (환산) vs 평균 0.12% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 17,140"}, {"label": "거래량 급증", "ok": false, "detail": "26,487 (환산) vs 평균 89,609"}, {"label": "회전율 급증", "ok": false, "detail": "0.04% (환산) vs 평균 0.12%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 16,378 (현재 15,940)"}]}
{"ts": "2026-10-07T12:18:53.855910+09:00", "side": "BUY", "code": "300720", "name": "한일시멘트", "price": 16250, "qty": 344, "cost": 5590839, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 14817, "target": 17675, "signals": [{"label": "손절선", "ok": true, "detail": "14,817 (현재 16,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,675"}, {"label": "추세(20일선)", "ok": true, "detail": "15,216"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -14 · 기 +15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 16,246"}]}
{"ts": "2026-10-08T09:02:54.115767+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 81, "proceeds": 4236123, "entry_price": 34556, "pnl": 1436704, "pnl_pct": 51.64, "hold_from": "2026-08-20T09:02:18.583985+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.116298+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 301000, "qty": 17, "cost": 5117768, "path": "pullback", "reason": "눌림목 지정가 303,967 도달", "stop": 276000, "target": 338500, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "303,500 vs 294,300"}, {"label": "정배열(5>20)", "ok": true, "detail": "306,900 / 294,300"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "306,900 / 304,808"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-5.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +88 · 기 -120 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+73%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.37% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,207 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": false, "detail": "0.37% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 303,967 (현재 303,500)"}]}
@@ -1,5 +1,5 @@
{
"cash": 32970538.99350005,
"cash": 40610689.80800005,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3377559.3310465557,
"last_add_price": 13420
@@ -34,12 +34,12 @@
"entry_at": "2026-09-03T09:02:26.586284+09:00",
"stop": 10214,
"target": 14844,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3207769.240733453,
"last_add_price": 11930
@@ -53,14 +53,14 @@
"qty": 295,
"entry_price": 13497.186440677966,
"entry_at": "2026-09-07T15:06:37.205681+09:00",
"stop": 18085,
"stop": 18268,
"target": 19649,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,160 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 1999967.3303914513,
"last_add_price": 13930
@@ -76,37 +76,16 @@
"entry_at": "2026-09-10T14:12:34.522062+09:00",
"stop": 36405,
"target": 63833,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 2072539.7610259354,
"last_add_price": 46800
},
"053800": {
"code": "053800",
"name": "안랩",
"sources": [
"interest"
],
"qty": 151,
"entry_price": 69695.36423841059,
"entry_at": "2026-09-22T09:02:49.913396+09:00",
"stop": 64438,
"target": 80211,
"peak": 78700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 77500,
"tranches": 2,
"tranche_value": 5282905.658046878,
"last_add_price": 70400
},
"010170": {
"code": "010170",
"name": "대한광통신",
@@ -118,12 +97,12 @@
"entry_at": "2026-09-22T09:34:45.781251+09:00",
"stop": 15558,
"target": 23418,
"peak": 18610,
"peak": 19730,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 16990,
"cur_price": 16970,
"tranches": 2,
"tranche_value": 2861142.595753686,
"last_add_price": 18560
@@ -139,12 +118,12 @@
"entry_at": "2026-10-01T09:02:45.693530+09:00",
"stop": 15114,
"target": 18463,
"peak": 16240,
"peak": 16290,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,113 도달",
"cur_price": 16080,
"cur_price": 16110,
"tranches": 1,
"tranche_value": 5286437.524546878,
"last_add_price": 16230
@@ -160,20 +139,41 @@
"entry_at": "2026-10-01T10:38:43.161647+09:00",
"stop": 5740,
"target": 8440,
"peak": 6820,
"peak": 7460,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 6570,
"cur_price": 7330,
"tranches": 2,
"tranche_value": 3102975.1067182715,
"last_add_price": 6830
},
"388790": {
"code": "388790",
"name": "라이콤",
"sources": [
"watch"
],
"qty": 925,
"entry_price": 5832.508108108108,
"entry_at": "2026-10-06T09:18:49.972913+09:00",
"stop": 4898,
"target": 7701,
"peak": 6010,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5190,
"tranches": 2,
"tranche_value": 2702010.6040155855,
"last_add_price": 6050
}
},
"realized_pnl": -18098932.528000027,
"closed_trades": 41,
"wins": 3,
"realized_pnl": -15588481.05300003,
"closed_trades": 42,
"wins": 4,
"peak_equity": 100024962.38500004,
"max_drawdown": 0.17739604290679473,
"last_exit": {
@@ -197,8 +197,9 @@
"327260": "2026-09-07",
"004370": "2026-09-21",
"088350": "2026-10-01",
"001790": "2026-10-01"
"001790": "2026-10-01",
"053800": "2026-10-06"
},
"created_at": "2026-06-15T14:55:00.583289+09:00",
"updated_at": "2026-10-01T15:28:44.492755+09:00"
"updated_at": "2026-10-08T15:28:48.415778+09:00"
}
@@ -121,3 +121,6 @@
{"ts": "2026-10-01T10:38:43.160670+09:00", "side": "SELL", "code": "001790", "name": "대한제당", "price": 2765, "qty": 1825, "proceeds": 5036285, "entry_price": 2945, "pnl": -339146, "pnl_pct": -6.11, "hold_from": "2026-09-01T09:32:26.953406+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "2,767 (현재 2,765)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 3,300"}, {"label": "추세(10일선)", "ok": false, "detail": "2,809"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -67 · 기 +86"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 2,988"}]}
{"ts": "2026-10-01T10:38:43.161649+09:00", "side": "BUY", "code": "089790", "name": "제이티", "price": 6460, "qty": 480, "cost": 3101265, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5576, "target": 8229, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,480 vs 5,034"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,224 / 5,034"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,224 / 4,317"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +67 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.82% (환산) vs 평균 1.79% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,450"}, {"label": "거래량 급증", "ok": true, "detail": "393,608 (환산) vs 평균 184,485"}, {"label": "회전율 급증", "ok": true, "detail": "3.82% (환산) vs 평균 1.79%"}, {"label": "RSI", "ok": true, "detail": "77"}]}
{"ts": "2026-10-01T14:42:44.199437+09:00", "side": "BUY", "code": "089790", "name": "제이티", "price": 6830, "qty": 454, "cost": 3101285, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5576, "target": 8229, "signals": [{"label": "손절선", "ok": true, "detail": "5,576 (현재 6,740)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,229"}, {"label": "추세(10일선)", "ok": true, "detail": "5,060"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +64 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,685"}]}
{"ts": "2026-10-06T09:18:49.972320+09:00", "side": "SELL", "code": "053800", "name": "안랩", "price": 86500, "qty": 151, "proceeds": 13036030, "entry_price": 69695, "pnl": 2510451, "pnl_pct": 24.11, "hold_from": "2026-09-22T09:02:49.913396+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "86,946 (현재 86,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "60,550"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +35"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-06T09:18:49.972915+09:00", "side": "BUY", "code": "388790", "name": "라이콤", "price": 5630, "qty": 479, "cost": 2697175, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 4714, "target": 7461, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "5,630 vs 4,684"}, {"label": "정배열(5>10)", "ok": true, "detail": "4,896 / 4,684"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "4,896 / 4,216"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +192 · 기 +2 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.69% (환산) vs 평균 2.33% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,620"}, {"label": "거래량 급증", "ok": true, "detail": "1,437,860 (환산) vs 평균 713,085"}, {"label": "회전율 급증", "ok": true, "detail": "4.69% (환산) vs 평균 2.33%"}, {"label": "RSI", "ok": true, "detail": "70"}]}
{"ts": "2026-10-07T09:04:50.127656+09:00", "side": "BUY", "code": "388790", "name": "라이콤", "price": 6050, "qty": 446, "cost": 2698705, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 4714, "target": 7461, "signals": [{"label": "손절선", "ok": true, "detail": "4,714 (현재 5,990)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,461"}, {"label": "추세(10일선)", "ok": true, "detail": "4,720"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +88 · 기 +2"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 5,864"}]}
@@ -1,5 +1,5 @@
{
"cash": 39226620.10200001,
"cash": 38720624.75650001,
"initial": 100000000,
"positions": {
"194370": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3428336.7554835076,
"last_add_price": 13420
@@ -34,12 +34,12 @@
"entry_at": "2026-09-03T09:02:26.589529+09:00",
"stop": 10215,
"target": 14072,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3262304.762250248,
"last_add_price": 11930
@@ -60,32 +60,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4492093.16528453,
"last_add_price": 30000
},
"079650": {
"code": "079650",
"name": "서산",
"sources": [
"watch"
],
"qty": 454,
"entry_price": 7131.1894273127755,
"entry_at": "2026-09-04T12:02:29.585438+09:00",
"stop": 5375,
"target": 9765,
"peak": 8840,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5610,
"tranches": 2,
"tranche_value": 1623025.8813087621,
"last_add_price": 7390
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
@@ -95,14 +74,14 @@
"qty": 299,
"entry_price": 13497.357859531772,
"entry_at": "2026-09-07T15:06:37.209053+09:00",
"stop": 18085,
"stop": 18268,
"target": 18111,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,160 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2022912.4075034007,
"last_add_price": 13930
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 410,925 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 1,
"tranche_value": 5171089.539773135,
"last_add_price": 406000
@@ -139,12 +118,12 @@
"entry_at": "2026-10-01T09:12:47.915713+09:00",
"stop": 13324,
"target": 18625,
"peak": 15870,
"peak": 16450,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 15710,
"cur_price": 15150,
"tranches": 2,
"tranche_value": 3170446.925976356,
"last_add_price": 15740
@@ -160,22 +139,43 @@
"entry_at": "2026-10-01T10:38:43.165172+09:00",
"stop": 29749,
"target": 41627,
"peak": 34500,
"peak": 34750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 34450,
"cur_price": 32400,
"tranches": 1,
"tranche_value": 3089587.5798321413,
"last_add_price": 34500
},
"456010": {
"code": "456010",
"name": "아이씨티케이",
"sources": [
"watch"
],
"qty": 121,
"entry_price": 24250,
"entry_at": "2026-10-08T09:02:54.122968+09:00",
"stop": 20800,
"target": 29425,
"peak": 24650,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 24,970 도달",
"cur_price": 24100,
"tranches": 1,
"tranche_value": 2940498.2372166677,
"last_add_price": 24250
}
},
"realized_pnl": -16924323.526000023,
"closed_trades": 42,
"realized_pnl": -17733674.368000023,
"closed_trades": 43,
"wins": 4,
"peak_equity": 100024962.38500004,
"max_drawdown": 0.16498611269635213,
"max_drawdown": 0.16530641186204154,
"last_exit": {
"030000": "2026-09-04",
"086790": "2026-07-28",
@@ -198,8 +198,9 @@
"004370": "2026-09-21",
"005930": "2026-10-01",
"088350": "2026-10-01",
"001790": "2026-10-01"
"001790": "2026-10-01",
"079650": "2026-10-07"
},
"created_at": "2026-06-15T14:55:00.583304+09:00",
"updated_at": "2026-10-01T15:28:44.495957+09:00"
"updated_at": "2026-10-08T15:28:48.418494+09:00"
}
@@ -119,3 +119,5 @@
{"ts": "2026-10-01T09:38:42.066445+09:00", "side": "BUY", "code": "093370", "name": "후성", "price": 15740, "qty": 201, "cost": 3164215, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 13113, "target": 18231, "signals": [{"label": "손절선", "ok": true, "detail": "13,113 (현재 15,720)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,231"}, {"label": "추세(10일선)", "ok": true, "detail": "13,147"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +746 · 기 -275"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 15,690"}]}
{"ts": "2026-10-01T10:38:43.164667+09:00", "side": "SELL", "code": "001790", "name": "대한제당", "price": 2765, "qty": 1856, "proceeds": 5121833, "entry_price": 2945, "pnl": -344907, "pnl_pct": -6.11, "hold_from": "2026-09-01T09:32:26.956571+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "2,767 (현재 2,765)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 3,211"}, {"label": "추세(10일선)", "ok": false, "detail": "2,809"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -67 · 기 +86"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 2,988"}]}
{"ts": "2026-10-01T10:38:43.165174+09:00", "side": "BUY", "code": "122640", "name": "예스티", "price": 34500, "qty": 89, "cost": 3070961, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 29749, "target": 41627, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "34,400 vs 30,080"}, {"label": "정배열(5>10)", "ok": true, "detail": "30,150 / 30,080"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "30,150 / 27,595"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+14.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +49 · 기 +1 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.97% (환산) vs 평균 1.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 32,800"}, {"label": "거래량 급증", "ok": true, "detail": "860,787 (환산) vs 평균 365,437"}, {"label": "회전율 급증", "ok": true, "detail": "3.97% (환산) vs 평균 1.69%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-10-07T14:42:49.763957+09:00", "side": "SELL", "code": "079650", "name": "서산", "price": 5360, "qty": 454, "proceeds": 2428695, "entry_price": 7131, "pnl": -809351, "pnl_pct": -24.84, "hold_from": "2026-09-04T12:02:29.585438+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,375 (현재 5,350)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,765"}, {"label": "추세(10일선)", "ok": true, "detail": "4,916"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -89 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.122969+09:00", "side": "BUY", "code": "456010", "name": "아이씨티케이", "price": 24250, "qty": 121, "cost": 2934690, "path": "pullback", "reason": "눌림목 지정가 24,970 도달", "stop": 20800, "target": 29425, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "24,450 vs 24,440"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,180 / 24,440"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,180 / 17,336"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+55.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +115 · 기 +6 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+145%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.80% (환산) vs 평균 8.21% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 30,350"}, {"label": "거래량 급증", "ok": false, "detail": "116,753 (환산) vs 평균 1,191,082"}, {"label": "회전율 급증", "ok": false, "detail": "0.80% (환산) vs 평균 8.21%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 24,970 (현재 24,450)"}]}
@@ -1,5 +1,5 @@
{
"cash": 45674308.49775003,
"cash": 41285304.598750025,
"initial": 100000000,
"positions": {
"003490": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4580366.904239814,
"last_add_price": 30000
@@ -32,59 +32,38 @@
"qty": 266,
"entry_price": 14104.887218045113,
"entry_at": "2026-09-04T11:14:28.125177+09:00",
"stop": 18085,
"stop": 18268,
"target": 18635,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,946 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 1889084.2845179967,
"last_add_price": 14660
},
"079650": {
"code": "079650",
"name": "서산",
"sources": [
"watch"
],
"qty": 457,
"entry_price": 7082.7352297593,
"entry_at": "2026-09-04T12:36:30.135627+09:00",
"stop": 5327,
"target": 9717,
"peak": 8840,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5610,
"tranches": 2,
"tranche_value": 1621037.6222288562,
"last_add_price": 7390
},
"372170": {
"code": "372170",
"name": "윤성에프앤씨",
"sources": [
"auto"
],
"qty": 109,
"entry_price": 20800,
"qty": 213,
"entry_price": 21215.023474178404,
"entry_at": "2026-09-17T09:00:52.122059+09:00",
"stop": 16916,
"target": 26626,
"peak": 21450,
"stop": 17459,
"target": 26849,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,358 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2273315.5710422248,
"last_add_price": 20800
"last_add_price": 21650
},
"095610": {
"code": "095610",
@@ -97,12 +76,12 @@
"entry_at": "2026-09-22T09:02:49.920117+09:00",
"stop": 121395,
"target": 214288,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 157,986 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1724127.0503401707,
"last_add_price": 164000
@@ -118,12 +97,12 @@
"entry_at": "2026-09-23T12:32:49.233139+09:00",
"stop": 2793,
"target": 3858,
"peak": 3420,
"peak": 3500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 3,143 도달",
"cur_price": 3400,
"cur_price": 3345,
"tranches": 2,
"tranche_value": 3161018.580691236,
"last_add_price": 3275
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,148 도달",
"cur_price": 6050,
"cur_price": 5940,
"tranches": 1,
"tranche_value": 5296647.055406252,
"last_add_price": 6050
@@ -165,14 +144,35 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 277,258 도달",
"cur_price": 271000,
"cur_price": 269500,
"tranches": 1,
"tranche_value": 3901566.04066142,
"last_add_price": 271500
},
"056360": {
"code": "056360",
"name": "코위버",
"sources": [
"watch"
],
"qty": 716,
"entry_price": 6360,
"entry_at": "2026-10-08T09:50:46.691088+09:00",
"stop": 5770,
"target": 7245,
"peak": 6390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,523 도달",
"cur_price": 6210,
"tranches": 1,
"tranche_value": 4559154.285890595,
"last_add_price": 6360
}
},
"realized_pnl": -17205619.32650003,
"closed_trades": 50,
"realized_pnl": -18025537.94300003,
"closed_trades": 51,
"wins": 7,
"peak_equity": 101140808.32700005,
"max_drawdown": 0.1794339105371308,
@@ -200,8 +200,9 @@
"138040": "2026-09-08",
"004370": "2026-09-21",
"000720": "2026-09-28",
"316140": "2026-10-01"
"316140": "2026-10-01",
"079650": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.583318+09:00",
"updated_at": "2026-10-01T15:28:44.499121+09:00"
"updated_at": "2026-10-08T15:28:48.421102+09:00"
}
@@ -143,3 +143,6 @@
{"ts": "2026-09-28T11:18:46.582289+09:00", "side": "BUY", "code": "478560", "name": "블랙야크아이앤씨", "price": 3275, "qty": 965, "cost": 3160849, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 2740, "target": 3802, "signals": [{"label": "손절선", "ok": true, "detail": "2,740 (현재 3,275)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 3,802"}, {"label": "추세(10일선)", "ok": true, "detail": "3,018"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +29"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 3,271"}]}
{"ts": "2026-10-01T09:00:56.208764+09:00", "side": "SELL", "code": "316140", "name": "우리금융지주", "price": 32800, "qty": 322, "proceeds": 10541005, "entry_price": 32320, "pnl": 132494, "pnl_pct": 1.49, "hold_from": "2026-08-24T13:12:22.306023+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "34,483 (현재 33,850)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "31,995"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -303 · 기 -158"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-01T09:02:45.698348+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 271500, "qty": 14, "cost": 3801570, "path": "pullback", "reason": "눌림목 지정가 277,258 도달", "stop": 242017, "target": 315725, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "270,000 vs 256,700"}, {"label": "정배열(5>10)", "ok": true, "detail": "267,300 / 256,700"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "267,300 / 248,933"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +19 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.15% (환산) vs 평균 0.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 314,500"}, {"label": "거래량 급증", "ok": false, "detail": "22,107 (환산) vs 평균 78,860"}, {"label": "회전율 급증", "ok": false, "detail": "0.15% (환산) vs 평균 0.53%"}, {"label": "RSI", "ok": true, "detail": "60"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 277,258 (현재 270,000)"}]}
{"ts": "2026-10-02T09:02:44.668176+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21650, "qty": 104, "cost": 2251938, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 16916, "target": 26626, "signals": [{"label": "손절선", "ok": true, "detail": "16,916 (현재 21,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 26,626"}, {"label": "추세(10일선)", "ok": true, "detail": "19,233"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,739"}]}
{"ts": "2026-10-08T09:04:50.010311+09:00", "side": "SELL", "code": "079650", "name": "서산", "price": 5300, "qty": 457, "proceeds": 2417377, "entry_price": 7083, "pnl": -819919, "pnl_pct": -25.17, "hold_from": "2026-09-04T12:36:30.135627+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,327 (현재 5,290)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,717"}, {"label": "추세(10일선)", "ok": true, "detail": "4,910"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -30 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:50:46.691089+09:00", "side": "BUY", "code": "056360", "name": "코위버", "price": 6360, "qty": 716, "cost": 4554443, "path": "pullback", "reason": "눌림목 지정가 6,523 도달", "stop": 5770, "target": 7245, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,360 vs 6,318"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,492 / 6,318"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,492 / 5,507"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +22 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.61% (환산) vs 평균 2.14% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 7,140"}, {"label": "거래량 급증", "ok": false, "detail": "157,353 (환산) vs 평균 209,822"}, {"label": "회전율 급증", "ok": false, "detail": "1.61% (환산) vs 평균 2.14%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,523 (현재 6,360)"}]}
@@ -1,28 +1,7 @@
{
"cash": 29507275.115649976,
"cash": 31376248.655149974,
"initial": 100000000,
"positions": {
"327260": {
"code": "327260",
"name": "RF머트리얼즈",
"sources": [
"interest"
],
"qty": 101,
"entry_price": 34564.35643564357,
"entry_at": "2026-08-20T09:02:18.598460+09:00",
"stop": 46039,
"target": 49987,
"peak": 53100,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 35,709 도달",
"cur_price": 49300,
"tranches": 2,
"tranche_value": 1761589.922015132,
"last_add_price": 35800
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
@@ -32,39 +11,18 @@
"qty": 344,
"entry_price": 14066.802325581395,
"entry_at": "2026-09-03T09:02:26.595154+09:00",
"stop": 18085,
"stop": 18268,
"target": 18597,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,982 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2433888.3605985767,
"last_add_price": 14660
},
"478560": {
"code": "478560",
"name": "블랙야크아이앤씨",
"sources": [
"watch"
],
"qty": 2439,
"entry_price": 3164.3542435424356,
"entry_at": "2026-09-09T09:10:30.121434+09:00",
"stop": 2838,
"target": 3818,
"peak": 3420,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 3,136 도달",
"cur_price": 3400,
"tranches": 2,
"tranche_value": 3860262.073953841,
"last_add_price": 3210
},
"041520": {
"code": "041520",
"name": "이엘씨",
@@ -76,12 +34,12 @@
"entry_at": "2026-09-15T10:28:42.676166+09:00",
"stop": 10967,
"target": 14217,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,977 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 4301175.50574383,
"last_add_price": 12300
@@ -92,41 +50,20 @@
"sources": [
"auto"
],
"qty": 140,
"entry_price": 20200,
"qty": 272,
"entry_price": 20782.352941176472,
"entry_at": "2026-09-16T13:08:42.154029+09:00",
"stop": 17261,
"target": 26078,
"peak": 21450,
"stop": 17966,
"target": 26416,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,341 도달",
"cur_price": 21450,
"tranches": 1,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 2831252.2401680327,
"last_add_price": 20200
},
"300720": {
"code": "300720",
"name": "한일시멘트",
"sources": [
"watch"
],
"qty": 318,
"entry_price": 16170,
"entry_at": "2026-09-17T09:04:40.561911+09:00",
"stop": 15324,
"target": 17862,
"peak": 16390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,386 도달",
"cur_price": 16080,
"tranches": 1,
"tranche_value": 5154404.266803124,
"last_add_price": 16170
"last_add_price": 21400
},
"307870": {
"code": "307870",
@@ -139,12 +76,12 @@
"entry_at": "2026-10-01T09:00:56.320542+09:00",
"stop": 1066,
"target": 1528,
"peak": 1250,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,241 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 3304656.6099581546,
"last_add_price": 1243
@@ -158,22 +95,85 @@
"qty": 1480,
"entry_price": 7078.905405405405,
"entry_at": "2026-10-01T09:58:43.956343+09:00",
"stop": 6543,
"stop": 7732,
"target": 8151,
"peak": 7220,
"peak": 8390,
"trailing_on": true,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 8260,
"tranches": 2,
"tranche_value": 5242619.638546873,
"last_add_price": 7170
},
"172670": {
"code": "172670",
"name": "에이엘티",
"sources": [
"watch"
],
"qty": 283,
"entry_price": 15300,
"entry_at": "2026-10-06T15:08:50.220063+09:00",
"stop": 13792,
"target": 18317,
"peak": 15490,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"tranches": 2,
"tranche_value": 5242619.638546873,
"last_add_price": 7170
"cur_price": 15190,
"tranches": 1,
"tranche_value": 4332636.820684664,
"last_add_price": 15300
},
"295310": {
"code": "295310",
"name": "에이치브이엠",
"sources": [
"watch"
],
"qty": 58,
"entry_price": 75200,
"entry_at": "2026-10-07T09:06:55.847153+09:00",
"stop": 67951,
"target": 89698,
"peak": 76900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 74200,
"tranches": 1,
"tranche_value": 4411391.729984327,
"last_add_price": 75200
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 16,
"entry_price": 301000,
"entry_at": "2026-10-08T09:02:54.128314+09:00",
"stop": 276000,
"target": 351000,
"peak": 306000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 303,967 도달",
"cur_price": 302000,
"tranches": 1,
"tranche_value": 5074343.547520029,
"last_add_price": 301000
}
},
"realized_pnl": -20791072.75465004,
"closed_trades": 65,
"wins": 9,
"realized_pnl": -18940722.008150045,
"closed_trades": 68,
"wins": 11,
"peak_equity": 101501376.42350003,
"max_drawdown": 0.22092032524603686,
"last_exit": {
@@ -201,8 +201,11 @@
"012450": "2026-09-15",
"060250": "2026-09-16",
"004370": "2026-09-17",
"257720": "2026-10-01"
"257720": "2026-10-01",
"478560": "2026-10-06",
"300720": "2026-10-07",
"327260": "2026-10-08"
},
"created_at": "2026-06-15T14:55:00.583333+09:00",
"updated_at": "2026-10-01T15:28:44.502360+09:00"
"updated_at": "2026-10-08T15:28:48.423713+09:00"
}
@@ -182,3 +182,10 @@
{"ts": "2026-10-01T09:58:43.956344+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 6990, "qty": 749, "cost": 5236295, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 6454, "target": 8062, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,000 vs 4,806"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,552 / 4,806"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,552 / 4,914"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+49.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -49 · 기 +12 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.76% (환산) vs 평균 0.30% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,630"}, {"label": "거래량 급증", "ok": true, "detail": "95,240 (환산) vs 평균 38,349"}, {"label": "회전율 급증", "ok": true, "detail": "0.76% (환산) vs 평균 0.30%"}, {"label": "RSI", "ok": true, "detail": "86"}]}
{"ts": "2026-10-01T10:16:48.737237+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 7170, "qty": 731, "cost": 5242056, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 6454, "target": 8062, "signals": [{"label": "손절선", "ok": true, "detail": "6,454 (현재 7,180)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,062"}, {"label": "추세(20일선)", "ok": true, "detail": "4,814"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -49 · 기 +12"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,169"}]}
{"ts": "2026-10-01T12:24:43.726812+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1243, "qty": 2658, "cost": 3304390, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1047, "target": 1501, "signals": [{"label": "손절선", "ok": true, "detail": "1,047 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,501"}, {"label": "추세(20일선)", "ok": true, "detail": "1,143"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -68 · 기 +4"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,249"}]}
{"ts": "2026-10-02T09:01:25.767670+09:00", "side": "BUY", "code": "372170", "name": "윤성에프앤씨", "price": 21400, "qty": 132, "cost": 2825224, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17261, "target": 26078, "signals": [{"label": "손절선", "ok": true, "detail": "17,261 (현재 21,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 26,078"}, {"label": "추세(20일선)", "ok": true, "detail": "16,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +2 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 21,139"}]}
{"ts": "2026-10-06T15:08:49.790482+09:00", "side": "SELL", "code": "478560", "name": "블랙야크아이앤씨", "price": 3230, "qty": 2439, "proceeds": 7862608, "entry_price": 3164, "pnl": 143590, "pnl_pct": 2.07, "hold_from": "2026-09-09T09:10:30.121434+09:00", "reason": "시간손절 — 27일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "2,838 (현재 3,155)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 3,818"}, {"label": "추세(20일선)", "ok": true, "detail": "2,886"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -54 · 기 +47"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-06T15:08:50.220080+09:00", "side": "BUY", "code": "172670", "name": "에이엘티", "price": 15300, "qty": 283, "cost": 4330549, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 13792, "target": 18317, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "15,300 vs 11,172"}, {"label": "정배열(5>20)", "ok": true, "detail": "13,078 / 11,172"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "13,078 / 10,079"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+29.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +7 · 기 +1 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.16% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 13,510"}, {"label": "거래량 급증", "ok": true, "detail": "104,591 (환산) vs 평균 51,996"}, {"label": "회전율 급증", "ok": true, "detail": "1.16% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "79"}]}
{"ts": "2026-10-07T09:06:55.846271+09:00", "side": "SELL", "code": "300720", "name": "한일시멘트", "price": 15940, "qty": 318, "proceeds": 5059036, "entry_price": 16170, "pnl": -83796, "pnl_pct": -1.42, "hold_from": "2026-09-17T09:04:40.561911+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "15,324 (현재 16,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,862"}, {"label": "추세(20일선)", "ok": true, "detail": "15,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -16 · 기 +15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 16,456"}]}
{"ts": "2026-10-07T09:06:55.847155+09:00", "side": "BUY", "code": "295310", "name": "에이치브이엠", "price": 75200, "qty": 58, "cost": 4362254, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 67951, "target": 89698, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "74,500 vs 51,322"}, {"label": "정배열(5>20)", "ok": true, "detail": "62,140 / 51,322"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "62,140 / 47,968"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -68 · 기 +241 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+12%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.24% (환산) vs 평균 0.97% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 61,900"}, {"label": "거래량 급증", "ok": true, "detail": "278,607 (환산) vs 평균 120,414"}, {"label": "회전율 급증", "ok": true, "detail": "2.24% (환산) vs 평균 0.97%"}, {"label": "RSI", "ok": true, "detail": "77"}]}
{"ts": "2026-10-08T09:02:54.127662+09:00", "side": "SELL", "code": "327260", "name": "RF머트리얼즈", "price": 52400, "qty": 101, "proceeds": 5282080, "entry_price": 34564, "pnl": 1790556, "pnl_pct": 51.6, "hold_from": "2026-08-20T09:02:18.598460+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "53,034 (현재 52,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "44,220"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +19"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T09:02:54.128315+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 301000, "qty": 16, "cost": 4816722, "path": "pullback", "reason": "눌림목 지정가 303,967 도달", "stop": 276000, "target": 351000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "303,500 vs 294,300"}, {"label": "정배열(5>20)", "ok": true, "detail": "306,900 / 294,300"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "306,900 / 304,808"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-5.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +88 · 기 -120 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+73%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.37% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,207 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": false, "detail": "0.37% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 303,967 (현재 303,500)"}]}
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,665 도달",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 5051285.121721717,
"last_add_price": 125200
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 4362596.463271157,
"last_add_price": 13420
@@ -53,14 +53,14 @@
"qty": 344,
"entry_price": 14066.802325581395,
"entry_at": "2026-09-03T09:02:26.597960+09:00",
"stop": 18085,
"stop": 18268,
"target": 18597,
"peak": 20700,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,982 도달",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2432613.4618839705,
"last_add_price": 14660
@@ -76,12 +76,12 @@
"entry_at": "2026-09-03T09:02:26.598316+09:00",
"stop": 18797,
"target": 27697,
"peak": 22600,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 21,404 도달",
"cur_price": 21450,
"cur_price": 23800,
"tranches": 2,
"tranche_value": 3058381.8542864355,
"last_add_price": 22300
@@ -97,12 +97,12 @@
"entry_at": "2026-09-04T11:14:28.131726+09:00",
"stop": 2875,
"target": 3831,
"peak": 3420,
"peak": 3500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 3,140 도달",
"cur_price": 3400,
"cur_price": 3345,
"tranches": 2,
"tranche_value": 4008637.751201471,
"last_add_price": 3255
@@ -118,12 +118,12 @@
"entry_at": "2026-09-16T13:08:42.157542+09:00",
"stop": 10788,
"target": 14231,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,955 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3954670.320777218,
"last_add_price": 12170
@@ -139,12 +139,12 @@
"entry_at": "2026-09-16T13:08:42.157933+09:00",
"stop": 4455,
"target": 6189,
"peak": 5710,
"peak": 6040,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 5,102 도달",
"cur_price": 5440,
"cur_price": 5860,
"tranches": 2,
"tranche_value": 3199498.373584197,
"last_add_price": 5140
@@ -165,7 +165,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,155 도달",
"cur_price": 6050,
"cur_price": 5940,
"tranches": 1,
"tranche_value": 5017816.601578125,
"last_add_price": 6130
@@ -202,5 +202,5 @@
"004370": "2026-09-18"
},
"created_at": "2026-06-15T14:55:00.583347+09:00",
"updated_at": "2026-10-01T15:28:44.505287+09:00"
"updated_at": "2026-10-08T15:28:48.426148+09:00"
}
@@ -1,5 +1,5 @@
{
"cash": 29599226.202499982,
"cash": 36713725.82249998,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,12 +13,12 @@
"entry_at": "2026-07-30T09:16:13.157701+09:00",
"stop": 117746,
"target": 180371,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3547525.853504033,
"last_add_price": 136000
@@ -34,37 +34,16 @@
"entry_at": "2026-07-31T12:36:09.540195+09:00",
"stop": 100700,
"target": 251570,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1688085.214726109,
"last_add_price": 147600
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 111380.28169014085,
"entry_at": "2026-08-07T09:58:16.568037+09:00",
"stop": 100282,
"target": 144674,
"peak": 116100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 103500,
"tranches": 2,
"tranche_value": 3967368.72635773,
"last_add_price": 112800
},
"161890": {
"code": "161890",
"name": "한국콜마",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"cur_price": 138400,
"tranches": 2,
"tranche_value": 2862100.411366492,
"last_add_price": 135100
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4185836.328126983,
"last_add_price": 30200
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 133400,
"cur_price": 130400,
"tranches": 1,
"tranche_value": 2940234.9193805554,
"last_add_price": 143200
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 411,247 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 1,
"tranche_value": 4452166.016150367,
"last_add_price": 411000
@@ -160,19 +139,19 @@
"entry_at": "2026-09-30T12:22:46.654174+09:00",
"stop": 11365,
"target": 18647,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 2729545.934073818,
"last_add_price": 13440
}
},
"realized_pnl": -25887477.80450006,
"closed_trades": 126,
"realized_pnl": -26682164.38450006,
"closed_trades": 127,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.25030505439500017,
@@ -196,7 +175,7 @@
"402340": "2026-07-22",
"004170": "2026-07-23",
"028260": "2026-08-24",
"055550": "2026-07-20",
"055550": "2026-10-08",
"105560": "2026-07-20",
"222800": "2026-07-21",
"089970": "2026-08-11",
@@ -210,5 +189,5 @@
"257720": "2026-09-10"
},
"created_at": "2026-06-15T14:40:00.621011+09:00",
"updated_at": "2026-10-01T15:28:50.445408+09:00"
"updated_at": "2026-10-08T15:28:56.682981+09:00"
}
@@ -288,3 +288,4 @@
{"ts": "2026-09-30T12:22:44.301139+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 308500, "qty": 20, "proceeds": 6157968, "entry_price": 350250, "pnl": -848082, "pnl_pct": -11.92, "hold_from": "2026-07-21T12:06:01.209787+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "308,113 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 476,661"}, {"label": "추세(60일선)", "ok": true, "detail": "304,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +21 · 기 -13"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T12:22:46.654192+09:00", "side": "BUY", "code": "077360", "name": "덕산하이메탈", "price": 12940, "qty": 210, "cost": 2717808, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 11120, "target": 18401, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "12,930 vs 9,740"}, {"label": "정배열(5>60)", "ok": true, "detail": "11,762 / 9,740"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "11,762 / 9,740"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -279 · 기 +357 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+45%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.82% (환산) vs 평균 1.87% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 12,590"}, {"label": "거래량 급증", "ok": true, "detail": "2,187,753 (환산) vs 평균 848,026"}, {"label": "회전율 급증", "ok": true, "detail": "4.82% (환산) vs 평균 1.87%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-09-30T14:58:46.615665+09:00", "side": "BUY", "code": "077360", "name": "덕산하이메탈", "price": 13440, "qty": 203, "cost": 2728729, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 11120, "target": 18401, "signals": [{"label": "손절선", "ok": true, "detail": "11,120 (현재 13,490)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,401"}, {"label": "추세(60일선)", "ok": true, "detail": "9,749"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -293 · 기 +292"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,395"}]}
{"ts": "2026-10-08T11:16:48.550232+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100400, "qty": 71, "proceeds": 7114500, "entry_price": 111380, "pnl": -794687, "pnl_pct": -9.86, "hold_from": "2026-08-07T09:58:16.568037+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,282 (현재 100,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,674"}, {"label": "추세(60일선)", "ok": true, "detail": "96,462"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -632 · 기 +453"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -13,12 +13,12 @@
"entry_at": "2026-07-30T09:16:13.172576+09:00",
"stop": 117744,
"target": 180369,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3470885.263866936,
"last_add_price": 136000
@@ -34,12 +34,12 @@
"entry_at": "2026-07-31T12:36:11.144403+09:00",
"stop": 100700,
"target": 251570,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1668794.556510239,
"last_add_price": 147600
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3062184.227151159,
"last_add_price": 13420
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3007474.6079847123,
"last_add_price": 101700
@@ -97,12 +97,12 @@
"entry_at": "2026-08-20T09:02:20.302047+09:00",
"stop": 24267,
"target": 65396,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1249060.2562777183,
"last_add_price": 35800
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,425 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 4738145.301375,
"last_add_price": 405000
@@ -144,7 +144,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 1,
"tranche_value": 3865376.1305725425,
"last_add_price": 34650
@@ -165,7 +165,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 34450,
"cur_price": 32400,
"tranches": 1,
"tranche_value": 2705226.090506498,
"last_add_price": 33750
@@ -215,5 +215,5 @@
"047770": "2026-09-30"
},
"created_at": "2026-06-15T14:55:00.583395+09:00",
"updated_at": "2026-10-01T15:28:51.044523+09:00"
"updated_at": "2026-10-08T15:28:58.022135+09:00"
}
@@ -1,28 +1,7 @@
{
"cash": 34467773.333999984,
"cash": 34686699.28049999,
"initial": 100000000,
"positions": {
"161890": {
"code": "161890",
"name": "한국콜마",
"sources": [
"auto"
],
"qty": 43,
"entry_price": 132695.3488372093,
"entry_at": "2026-08-20T09:18:26.045143+09:00",
"stop": 114521,
"target": 187219,
"peak": 164700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"tranches": 2,
"tranche_value": 2892213.1259382935,
"last_add_price": 135100
},
"010950": {
"code": "010950",
"name": "S-Oil",
@@ -34,12 +13,12 @@
"entry_at": "2026-08-27T10:28:24.763322+09:00",
"stop": 123946,
"target": 188285,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3261176.5302310046,
"last_add_price": 145300
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4176661.959968715,
"last_add_price": 30200
@@ -76,12 +55,12 @@
"entry_at": "2026-09-15T09:04:46.797435+09:00",
"stop": 100700,
"target": 253252,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1555563.4787240115,
"last_add_price": 144600
@@ -92,20 +71,20 @@
"sources": [
"interest"
],
"qty": 39,
"entry_price": 52200,
"qty": 76,
"entry_price": 53709.21052631579,
"entry_at": "2026-09-30T09:22:54.305565+09:00",
"stop": 42293,
"target": 81921,
"peak": 53100,
"stop": 43431,
"target": 84544,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 49300,
"tranches": 1,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 2060667.1256784087,
"last_add_price": 52200
"last_add_price": 55300
},
"077360": {
"code": "077360",
@@ -118,12 +97,12 @@
"entry_at": "2026-09-30T11:16:50.346361+09:00",
"stop": 11539,
"target": 18448,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 2786504.4656391204,
"last_add_price": 13500
@@ -139,40 +118,40 @@
"entry_at": "2026-09-30T15:16:47.485469+09:00",
"stop": 1011,
"target": 1833,
"peak": 1250,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,189 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 2263662.6527048526,
"last_add_price": 1243
},
"099440": {
"code": "099440",
"name": "스맥",
"051900": {
"code": "051900",
"name": "LG생활건강",
"sources": [
"watch"
"auto"
],
"qty": 1259,
"entry_price": 3840,
"entry_at": "2026-10-01T11:18:50.376143+09:00",
"stop": 3735,
"target": 4155,
"peak": 3855,
"qty": 29,
"entry_price": 267862.0689655172,
"entry_at": "2026-10-02T09:50:51.880598+09:00",
"stop": 238500,
"target": 355948,
"peak": 274500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 3,947 도달",
"cur_price": 3835,
"tranches": 1,
"tranche_value": 4835927.9910625,
"last_add_price": 3840
"entry_reason": "눌림목 지정가 269,486 도달",
"cur_price": 269500,
"tranches": 2,
"tranche_value": 4011087.18891294,
"last_add_price": 272000
}
},
"realized_pnl": -25189186.11750005,
"closed_trades": 144,
"realized_pnl": -25696729.125000056,
"closed_trades": 146,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.24471290425000028,
@@ -205,15 +184,16 @@
"003680": "2026-09-09",
"138040": "2026-09-30",
"010950": "2026-08-26",
"161890": "2026-07-31",
"161890": "2026-10-02",
"078930": "2026-09-03",
"252990": "2026-08-21",
"257720": "2026-09-09",
"180640": "2026-09-29",
"047770": "2026-09-30",
"042500": "2026-10-01",
"004370": "2026-10-01"
"004370": "2026-10-01",
"099440": "2026-10-08"
},
"created_at": "2026-06-15T14:40:00.621059+09:00",
"updated_at": "2026-10-01T15:28:51.058189+09:00"
"updated_at": "2026-10-08T15:28:58.034401+09:00"
}
@@ -329,3 +329,9 @@
{"ts": "2026-10-01T11:18:50.059639+09:00", "side": "SELL", "code": "042500", "name": "링네트", "price": 4190, "qty": 1148, "proceeds": 4800740, "entry_price": 4210, "pnl": -33065, "pnl_pct": -0.48, "hold_from": "2026-10-01T11:14:52.397875+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "4,205 (현재 4,195)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,225"}, {"label": "추세(60일선)", "ok": true, "detail": "4,186"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -31 · 기 +5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 4,288"}]}
{"ts": "2026-10-01T11:18:50.376159+09:00", "side": "BUY", "code": "099440", "name": "스맥", "price": 3840, "qty": 1259, "cost": 4835285, "path": "pullback", "reason": "눌림목 지정가 3,947 도달", "stop": 3735, "target": 4155, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "3,835 vs 3,434"}, {"label": "정배열(5>60)", "ok": true, "detail": "3,935 / 3,434"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "3,935 / 3,434"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +17 · 기 -8 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.23% (환산) vs 평균 0.59% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 4,550"}, {"label": "거래량 급증", "ok": false, "detail": "156,177 (환산) vs 평균 402,216"}, {"label": "회전율 급증", "ok": false, "detail": "0.23% (환산) vs 평균 0.59%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 3,947 (현재 3,835)"}]}
{"ts": "2026-10-01T12:24:50.672402+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1243, "qty": 1820, "cost": 2262599, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 987, "target": 1802, "signals": [{"label": "손절선", "ok": true, "detail": "987 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,802"}, {"label": "추세(60일선)", "ok": true, "detail": "1,001"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -68 · 기 +4"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,242"}]}
{"ts": "2026-10-02T09:12:53.604758+09:00", "side": "BUY", "code": "327260", "name": "RF머트리얼즈", "price": 55300, "qty": 37, "cost": 2046407, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 42293, "target": 81921, "signals": [{"label": "손절선", "ok": true, "detail": "42,293 (현재 55,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 81,921"}, {"label": "추세(60일선)", "ok": true, "detail": "30,078"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -93 · 기 +83"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 54,770"}]}
{"ts": "2026-10-02T09:50:51.486998+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 131900, "qty": 43, "proceeds": 5660640, "entry_price": 132695, "pnl": -46116, "pnl_pct": -0.6, "hold_from": "2026-08-20T09:18:26.045143+09:00", "reason": "시간손절 — 43일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "114,521 (현재 132,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 187,219"}, {"label": "추세(60일선)", "ok": true, "detail": "92,477"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +30 · 기 -15"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-02T09:50:51.880618+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 264000, "qty": 15, "cost": 3960594, "path": "pullback", "reason": "눌림목 지정가 269,486 도달", "stop": 238500, "target": 340500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "264,500 vs 248,842"}, {"label": "정배열(5>60)", "ok": true, "detail": "266,200 / 248,842"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "266,200 / 248,842"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -47 · 기 +23 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+25%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.86% (환산) vs 평균 0.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 314,500"}, {"label": "거래량 급증", "ok": true, "detail": "129,293 (환산) vs 평균 78,860"}, {"label": "회전율 급증", "ok": true, "detail": "0.86% (환산) vs 평균 0.53%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 269,486 (현재 264,500)"}]}
{"ts": "2026-10-02T10:24:53.213009+09:00", "side": "BUY", "code": "099440", "name": "스맥", "price": 3980, "qty": 1214, "cost": 4832445, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 3735, "target": 4155, "signals": [{"label": "손절선", "ok": true, "detail": "3,735 (현재 3,975)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,155"}, {"label": "추세(60일선)", "ok": true, "detail": "3,437"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +5 · 기 -5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 3,958"}]}
{"ts": "2026-10-07T09:09:05.770780+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 272000, "qty": 14, "cost": 3808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 238500, "target": 340500, "signals": [{"label": "손절선", "ok": true, "detail": "238,500 (현재 272,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 340,500"}, {"label": "추세(60일선)", "ok": true, "detail": "248,967"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -42"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 271,496"}]}
{"ts": "2026-10-08T12:14:59.148319+09:00", "side": "SELL", "code": "099440", "name": "스맥", "price": 3730, "qty": 2473, "proceeds": 9206303, "entry_price": 3909, "pnl": -461427, "pnl_pct": -4.57, "hold_from": "2026-10-01T11:18:50.376143+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "3,735 (현재 3,730)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,430"}, {"label": "추세(60일선)", "ok": true, "detail": "3,433"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -79 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 28608264.960249946,
"cash": 24003534.354249947,
"initial": 100000000,
"positions": {
"078930": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3042388.163482306,
"last_add_price": 101700
@@ -34,12 +34,12 @@
"entry_at": "2026-08-20T09:02:20.356139+09:00",
"stop": 24285,
"target": 65413,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1267059.834384944,
"last_add_price": 35800
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4047548.093650061,
"last_add_price": 30200
@@ -76,12 +76,12 @@
"entry_at": "2026-09-15T09:04:46.810142+09:00",
"stop": 100700,
"target": 253252,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1510162.3677440109,
"last_add_price": 144600
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,425 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 4658782.560843747,
"last_add_price": 405000
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 34450,
"cur_price": 32400,
"tranches": 2,
"tranche_value": 2621656.204176753,
"last_add_price": 34350
@@ -139,12 +139,12 @@
"entry_at": "2026-09-30T11:16:50.765285+09:00",
"stop": 70797,
"target": 125469,
"peak": 90100,
"peak": 90600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 89400,
"cur_price": 82900,
"tranches": 2,
"tranche_value": 2228224.8810089864,
"last_add_price": 86300
@@ -155,27 +155,27 @@
"sources": [
"watch"
],
"qty": 768,
"entry_price": 6000,
"qty": 1524,
"entry_price": 6044.645669291339,
"entry_at": "2026-10-01T11:14:53.059456+09:00",
"stop": 5730,
"target": 6810,
"peak": 6050,
"stop": 5900,
"target": 6479,
"peak": 6100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,003 도달",
"cur_price": 6050,
"tranches": 1,
"cur_price": 5940,
"tranches": 2,
"tranche_value": 4610591.010015622,
"last_add_price": 6000
"last_add_price": 6090
}
},
"realized_pnl": -28992176.059750073,
"closed_trades": 140,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.2669266310650006,
"max_drawdown": 0.27152025645750044,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -221,5 +221,5 @@
"316140": "2026-10-01"
},
"created_at": "2026-06-15T14:55:00.583512+09:00",
"updated_at": "2026-10-01T15:28:51.068899+09:00"
"updated_at": "2026-10-08T15:28:58.044877+09:00"
}
@@ -327,3 +327,4 @@
{"ts": "2026-10-01T09:54:48.894261+09:00", "side": "BUY", "code": "440110", "name": "파두", "price": 86300, "qty": 25, "cost": 2157824, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 68918, "target": 124047, "signals": [{"label": "손절선", "ok": true, "detail": "68,918 (현재 86,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,047"}, {"label": "추세(60일선)", "ok": true, "detail": "67,153"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -335 · 기 +623"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 86,117"}]}
{"ts": "2026-10-01T11:14:52.679836+09:00", "side": "SELL", "code": "316140", "name": "우리금융지주", "price": 33200, "qty": 229, "proceeds": 7587975, "entry_price": 35443, "pnl": -529793, "pnl_pct": -6.33, "hold_from": "2026-09-11T11:12:40.588435+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "32,114 (현재 33,225)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 45,431"}, {"label": "추세(60일선)", "ok": true, "detail": "30,899"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -826 · 기 -173"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-01T11:14:53.059473+09:00", "side": "BUY", "code": "025860", "name": "남해화학", "price": 6000, "qty": 768, "cost": 4608691, "path": "pullback", "reason": "눌림목 지정가 6,003 도달", "stop": 5730, "target": 6810, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,000 vs 5,898"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,086 / 5,898"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,086 / 5,898"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +57 · 기 +7 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.32% (환산) vs 평균 1.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 6,700"}, {"label": "거래량 급증", "ok": false, "detail": "158,879 (환산) vs 평균 758,257"}, {"label": "회전율 급증", "ok": false, "detail": "0.32% (환산) vs 평균 1.53%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,003 (현재 6,000)"}]}
{"ts": "2026-10-07T10:39:05.228523+09:00", "side": "BUY", "code": "025860", "name": "남해화학", "price": 6090, "qty": 756, "cost": 4604731, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5730, "target": 6810, "signals": [{"label": "손절선", "ok": true, "detail": "5,730 (현재 6,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 6,810"}, {"label": "추세(60일선)", "ok": true, "detail": "5,959"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +92 · 기 -7"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,098"}]}
@@ -1,5 +1,5 @@
{
"cash": 29587332.250499945,
"cash": 36701831.870499946,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,12 +13,12 @@
"entry_at": "2026-07-30T09:16:13.188366+09:00",
"stop": 117746,
"target": 180371,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3546894.320639113,
"last_add_price": 136000
@@ -34,37 +34,16 @@
"entry_at": "2026-07-31T12:36:11.162967+09:00",
"stop": 100700,
"target": 251570,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1687768.019262798,
"last_add_price": 147600
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 111380.28169014085,
"entry_at": "2026-08-07T09:58:17.684621+09:00",
"stop": 100282,
"target": 144674,
"peak": 116100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 103500,
"tranches": 2,
"tranche_value": 3966630.036179657,
"last_add_price": 112800
},
"161890": {
"code": "161890",
"name": "한국콜마",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"cur_price": 138400,
"tranches": 2,
"tranche_value": 2861643.9610576206,
"last_add_price": 135100
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4185204.743405741,
"last_add_price": 30200
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 133400,
"cur_price": 130400,
"tranches": 1,
"tranche_value": 2939786.4219278474,
"last_add_price": 143200
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 411,247 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 1,
"tranche_value": 4451467.75105609,
"last_add_price": 411000
@@ -160,19 +139,19 @@
"entry_at": "2026-09-30T12:22:48.397273+09:00",
"stop": 11365,
"target": 18647,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 2729123.1106153554,
"last_add_price": 13440
}
},
"realized_pnl": -25899371.75650005,
"closed_trades": 127,
"realized_pnl": -26694058.336500052,
"closed_trades": 128,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.25042399391500053,
@@ -197,7 +176,7 @@
"402340": "2026-07-22",
"004170": "2026-07-23",
"028260": "2026-08-24",
"055550": "2026-07-20",
"055550": "2026-10-08",
"105560": "2026-07-20",
"222800": "2026-07-21",
"089970": "2026-08-11",
@@ -211,5 +190,5 @@
"257720": "2026-09-10"
},
"created_at": "2026-06-15T14:40:00.621103+09:00",
"updated_at": "2026-10-01T15:28:51.075940+09:00"
"updated_at": "2026-10-08T15:28:58.052223+09:00"
}
@@ -290,3 +290,4 @@
{"ts": "2026-09-30T12:22:48.394911+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 308500, "qty": 20, "proceeds": 6157968, "entry_price": 350250, "pnl": -848082, "pnl_pct": -11.92, "hold_from": "2026-07-21T12:06:01.218730+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "308,113 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 476,661"}, {"label": "추세(60일선)", "ok": true, "detail": "304,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +21 · 기 -13"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T12:22:48.397277+09:00", "side": "BUY", "code": "077360", "name": "덕산하이메탈", "price": 12940, "qty": 210, "cost": 2717808, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 11120, "target": 18401, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "12,930 vs 9,740"}, {"label": "정배열(5>60)", "ok": true, "detail": "11,762 / 9,740"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "11,762 / 9,740"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -279 · 기 +357 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+45%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.82% (환산) vs 평균 1.87% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 12,590"}, {"label": "거래량 급증", "ok": true, "detail": "2,187,753 (환산) vs 평균 848,026"}, {"label": "회전율 급증", "ok": true, "detail": "4.82% (환산) vs 평균 1.87%"}, {"label": "RSI", "ok": true, "detail": "72"}]}
{"ts": "2026-09-30T14:58:47.694218+09:00", "side": "BUY", "code": "077360", "name": "덕산하이메탈", "price": 13440, "qty": 203, "cost": 2728729, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 11120, "target": 18401, "signals": [{"label": "손절선", "ok": true, "detail": "11,120 (현재 13,490)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,401"}, {"label": "추세(60일선)", "ok": true, "detail": "9,749"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -293 · 기 +292"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,395"}]}
{"ts": "2026-10-08T11:16:59.281764+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100400, "qty": 71, "proceeds": 7114500, "entry_price": 111380, "pnl": -794687, "pnl_pct": -9.86, "hold_from": "2026-08-07T09:58:17.684621+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,282 (현재 100,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,674"}, {"label": "추세(60일선)", "ok": true, "detail": "96,462"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -632 · 기 +453"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -13,12 +13,12 @@
"entry_at": "2026-07-30T09:16:13.192221+09:00",
"stop": 117744,
"target": 180369,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3468191.0592600796,
"last_add_price": 136000
@@ -34,12 +34,12 @@
"entry_at": "2026-07-31T12:36:11.167956+09:00",
"stop": 100700,
"target": 251570,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1667469.2912320814,
"last_add_price": 147600
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3059768.9052410396,
"last_add_price": 13420
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3005090.6555779856,
"last_add_price": 101700
@@ -97,12 +97,12 @@
"entry_at": "2026-08-20T09:02:20.368732+09:00",
"stop": 24267,
"target": 65396,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1248111.8252958565,
"last_add_price": 35800
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,425 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 4734491.937843747,
"last_add_price": 405000
@@ -144,7 +144,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 1,
"tranche_value": 3862395.055136152,
"last_add_price": 34650
@@ -165,7 +165,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 34450,
"cur_price": 32400,
"tranches": 1,
"tranche_value": 2703138.0438222312,
"last_add_price": 33750
@@ -216,5 +216,5 @@
"047770": "2026-09-30"
},
"created_at": "2026-06-15T14:55:00.583628+09:00",
"updated_at": "2026-10-01T15:28:51.082604+09:00"
"updated_at": "2026-10-08T15:28:58.058622+09:00"
}
@@ -1,28 +1,7 @@
{
"cash": 34467773.333999984,
"cash": 34686699.28049999,
"initial": 100000000,
"positions": {
"161890": {
"code": "161890",
"name": "한국콜마",
"sources": [
"auto"
],
"qty": 43,
"entry_price": 132695.3488372093,
"entry_at": "2026-08-20T09:18:26.065190+09:00",
"stop": 114521,
"target": 187219,
"peak": 164700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"tranches": 2,
"tranche_value": 2892213.1259382935,
"last_add_price": 135100
},
"010950": {
"code": "010950",
"name": "S-Oil",
@@ -34,12 +13,12 @@
"entry_at": "2026-08-27T10:28:24.789541+09:00",
"stop": 123946,
"target": 188285,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3261176.5302310046,
"last_add_price": 145300
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4176661.959968715,
"last_add_price": 30200
@@ -76,12 +55,12 @@
"entry_at": "2026-09-15T09:04:46.830348+09:00",
"stop": 100700,
"target": 253252,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1555563.4787240115,
"last_add_price": 144600
@@ -92,20 +71,20 @@
"sources": [
"interest"
],
"qty": 39,
"entry_price": 52200,
"qty": 76,
"entry_price": 53709.21052631579,
"entry_at": "2026-09-30T09:22:54.339840+09:00",
"stop": 42293,
"target": 81921,
"peak": 53100,
"stop": 43431,
"target": 84544,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 49300,
"tranches": 1,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 2060667.1256784087,
"last_add_price": 52200
"last_add_price": 55300
},
"077360": {
"code": "077360",
@@ -118,12 +97,12 @@
"entry_at": "2026-09-30T11:16:50.799613+09:00",
"stop": 11539,
"target": 18448,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 2786504.4656391204,
"last_add_price": 13500
@@ -139,40 +118,40 @@
"entry_at": "2026-09-30T15:16:47.526220+09:00",
"stop": 1011,
"target": 1833,
"peak": 1250,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,189 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 2263662.6527048526,
"last_add_price": 1243
},
"099440": {
"code": "099440",
"name": "스맥",
"051900": {
"code": "051900",
"name": "LG생활건강",
"sources": [
"watch"
"auto"
],
"qty": 1259,
"entry_price": 3840,
"entry_at": "2026-10-01T11:18:50.415814+09:00",
"stop": 3735,
"target": 4155,
"peak": 3855,
"qty": 29,
"entry_price": 267862.0689655172,
"entry_at": "2026-10-02T09:50:51.924578+09:00",
"stop": 238500,
"target": 355948,
"peak": 274500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 3,947 도달",
"cur_price": 3835,
"tranches": 1,
"tranche_value": 4835927.9910625,
"last_add_price": 3840
"entry_reason": "눌림목 지정가 269,486 도달",
"cur_price": 269500,
"tranches": 2,
"tranche_value": 4011087.18891294,
"last_add_price": 272000
}
},
"realized_pnl": -25189186.11750005,
"closed_trades": 144,
"realized_pnl": -25696729.125000056,
"closed_trades": 146,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.24471290425000028,
@@ -205,15 +184,16 @@
"003680": "2026-09-09",
"138040": "2026-09-30",
"010950": "2026-08-26",
"161890": "2026-07-31",
"161890": "2026-10-02",
"078930": "2026-09-03",
"252990": "2026-08-21",
"257720": "2026-09-09",
"180640": "2026-09-29",
"047770": "2026-09-30",
"042500": "2026-10-01",
"004370": "2026-10-01"
"004370": "2026-10-01",
"099440": "2026-10-08"
},
"created_at": "2026-06-15T14:40:00.621148+09:00",
"updated_at": "2026-10-01T15:28:51.087892+09:00"
"updated_at": "2026-10-08T15:28:58.063880+09:00"
}
@@ -329,3 +329,9 @@
{"ts": "2026-10-01T11:18:50.415510+09:00", "side": "SELL", "code": "042500", "name": "링네트", "price": 4190, "qty": 1148, "proceeds": 4800740, "entry_price": 4210, "pnl": -33065, "pnl_pct": -0.48, "hold_from": "2026-10-01T11:14:53.092115+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "4,205 (현재 4,195)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,225"}, {"label": "추세(60일선)", "ok": true, "detail": "4,186"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -31 · 기 +5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 4,288"}]}
{"ts": "2026-10-01T11:18:50.415817+09:00", "side": "BUY", "code": "099440", "name": "스맥", "price": 3840, "qty": 1259, "cost": 4835285, "path": "pullback", "reason": "눌림목 지정가 3,947 도달", "stop": 3735, "target": 4155, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "3,835 vs 3,434"}, {"label": "정배열(5>60)", "ok": true, "detail": "3,935 / 3,434"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "3,935 / 3,434"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +17 · 기 -8 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.23% (환산) vs 평균 0.59% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 4,550"}, {"label": "거래량 급증", "ok": false, "detail": "156,177 (환산) vs 평균 402,216"}, {"label": "회전율 급증", "ok": false, "detail": "0.23% (환산) vs 평균 0.59%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 3,947 (현재 3,835)"}]}
{"ts": "2026-10-01T12:24:50.703892+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1243, "qty": 1820, "cost": 2262599, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 987, "target": 1802, "signals": [{"label": "손절선", "ok": true, "detail": "987 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,802"}, {"label": "추세(60일선)", "ok": true, "detail": "1,001"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -68 · 기 +4"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,242"}]}
{"ts": "2026-10-02T09:12:53.650001+09:00", "side": "BUY", "code": "327260", "name": "RF머트리얼즈", "price": 55300, "qty": 37, "cost": 2046407, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 42293, "target": 81921, "signals": [{"label": "손절선", "ok": true, "detail": "42,293 (현재 55,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 81,921"}, {"label": "추세(60일선)", "ok": true, "detail": "30,078"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -93 · 기 +83"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 54,770"}]}
{"ts": "2026-10-02T09:50:51.924204+09:00", "side": "SELL", "code": "161890", "name": "한국콜마", "price": 131900, "qty": 43, "proceeds": 5660640, "entry_price": 132695, "pnl": -46116, "pnl_pct": -0.6, "hold_from": "2026-08-20T09:18:26.065190+09:00", "reason": "시간손절 — 43일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "114,521 (현재 132,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 187,219"}, {"label": "추세(60일선)", "ok": true, "detail": "92,477"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +30 · 기 -15"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-02T09:50:51.924581+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 264000, "qty": 15, "cost": 3960594, "path": "pullback", "reason": "눌림목 지정가 269,486 도달", "stop": 238500, "target": 340500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "264,500 vs 248,842"}, {"label": "정배열(5>60)", "ok": true, "detail": "266,200 / 248,842"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "266,200 / 248,842"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -47 · 기 +23 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+25%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.86% (환산) vs 평균 0.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 314,500"}, {"label": "거래량 급증", "ok": true, "detail": "129,293 (환산) vs 평균 78,860"}, {"label": "회전율 급증", "ok": true, "detail": "0.86% (환산) vs 평균 0.53%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 269,486 (현재 264,500)"}]}
{"ts": "2026-10-02T10:24:53.253540+09:00", "side": "BUY", "code": "099440", "name": "스맥", "price": 3980, "qty": 1214, "cost": 4832445, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 3735, "target": 4155, "signals": [{"label": "손절선", "ok": true, "detail": "3,735 (현재 3,975)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,155"}, {"label": "추세(60일선)", "ok": true, "detail": "3,437"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +5 · 기 -5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 3,958"}]}
{"ts": "2026-10-07T09:09:05.811519+09:00", "side": "BUY", "code": "051900", "name": "LG생활건강", "price": 272000, "qty": 14, "cost": 3808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 238500, "target": 340500, "signals": [{"label": "손절선", "ok": true, "detail": "238,500 (현재 272,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 340,500"}, {"label": "추세(60일선)", "ok": true, "detail": "248,967"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -42"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 271,496"}]}
{"ts": "2026-10-08T12:14:59.193061+09:00", "side": "SELL", "code": "099440", "name": "스맥", "price": 3730, "qty": 2473, "proceeds": 9206303, "entry_price": 3909, "pnl": -461427, "pnl_pct": -4.57, "hold_from": "2026-10-01T11:18:50.415814+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "3,735 (현재 3,730)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,430"}, {"label": "추세(60일선)", "ok": true, "detail": "3,433"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -79 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 28608264.960249946,
"cash": 24003534.354249947,
"initial": 100000000,
"positions": {
"078930": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3042388.163482306,
"last_add_price": 101700
@@ -34,12 +34,12 @@
"entry_at": "2026-08-20T09:02:20.377162+09:00",
"stop": 24285,
"target": 65413,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1267059.834384944,
"last_add_price": 35800
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4047548.093650061,
"last_add_price": 30200
@@ -76,12 +76,12 @@
"entry_at": "2026-09-15T09:04:46.835417+09:00",
"stop": 100700,
"target": 253252,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1510162.3677440109,
"last_add_price": 144600
@@ -102,7 +102,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,425 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 4658782.560843747,
"last_add_price": 405000
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 34450,
"cur_price": 32400,
"tranches": 2,
"tranche_value": 2621656.204176753,
"last_add_price": 34350
@@ -139,12 +139,12 @@
"entry_at": "2026-09-30T11:16:50.805786+09:00",
"stop": 70797,
"target": 125469,
"peak": 90100,
"peak": 90600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 89400,
"cur_price": 82900,
"tranches": 2,
"tranche_value": 2228224.8810089864,
"last_add_price": 86300
@@ -155,27 +155,27 @@
"sources": [
"watch"
],
"qty": 768,
"entry_price": 6000,
"qty": 1524,
"entry_price": 6044.645669291339,
"entry_at": "2026-10-01T11:14:53.099393+09:00",
"stop": 5730,
"target": 6810,
"peak": 6050,
"stop": 5900,
"target": 6479,
"peak": 6100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 6,003 도달",
"cur_price": 6050,
"tranches": 1,
"cur_price": 5940,
"tranches": 2,
"tranche_value": 4610591.010015622,
"last_add_price": 6000
"last_add_price": 6090
}
},
"realized_pnl": -28992176.059750073,
"closed_trades": 140,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.2669266310650006,
"max_drawdown": 0.27152025645750044,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-07-29",
@@ -221,5 +221,5 @@
"316140": "2026-10-01"
},
"created_at": "2026-06-15T14:55:00.583751+09:00",
"updated_at": "2026-10-01T15:28:51.092939+09:00"
"updated_at": "2026-10-08T15:28:58.068739+09:00"
}
@@ -327,3 +327,4 @@
{"ts": "2026-10-01T09:54:48.926448+09:00", "side": "BUY", "code": "440110", "name": "파두", "price": 86300, "qty": 25, "cost": 2157824, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 68918, "target": 124047, "signals": [{"label": "손절선", "ok": true, "detail": "68,918 (현재 86,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 124,047"}, {"label": "추세(60일선)", "ok": true, "detail": "67,153"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -335 · 기 +623"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 86,117"}]}
{"ts": "2026-10-01T11:14:53.098392+09:00", "side": "SELL", "code": "316140", "name": "우리금융지주", "price": 33200, "qty": 229, "proceeds": 7587975, "entry_price": 35443, "pnl": -529793, "pnl_pct": -6.33, "hold_from": "2026-09-11T11:12:40.623310+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "32,114 (현재 33,225)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 45,431"}, {"label": "추세(60일선)", "ok": true, "detail": "30,899"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -826 · 기 -173"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-01T11:14:53.099396+09:00", "side": "BUY", "code": "025860", "name": "남해화학", "price": 6000, "qty": 768, "cost": 4608691, "path": "pullback", "reason": "눌림목 지정가 6,003 도달", "stop": 5730, "target": 6810, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,000 vs 5,898"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,086 / 5,898"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,086 / 5,898"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +57 · 기 +7 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.32% (환산) vs 평균 1.53% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 6,700"}, {"label": "거래량 급증", "ok": false, "detail": "158,879 (환산) vs 평균 758,257"}, {"label": "회전율 급증", "ok": false, "detail": "0.32% (환산) vs 평균 1.53%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 6,003 (현재 6,000)"}]}
{"ts": "2026-10-07T10:39:05.259987+09:00", "side": "BUY", "code": "025860", "name": "남해화학", "price": 6090, "qty": 756, "cost": 4604731, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5730, "target": 6810, "signals": [{"label": "손절선", "ok": true, "detail": "5,730 (현재 6,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 6,810"}, {"label": "추세(60일선)", "ok": true, "detail": "5,959"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +92 · 기 -7"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,098"}]}
@@ -1,5 +1,5 @@
{
"cash": 30395575.974999964,
"cash": 32752000.218499966,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,12 +13,12 @@
"entry_at": "2026-08-27T10:28:24.797862+09:00",
"stop": 124053,
"target": 188392,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3229829.7909181127,
"last_add_price": 145300
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4114454.4034401365,
"last_add_price": 30200
@@ -55,12 +55,12 @@
"entry_at": "2026-09-15T09:04:46.840761+09:00",
"stop": 100700,
"target": 253252,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1520913.5675996346,
"last_add_price": 144600
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2134348.726385529,
"last_add_price": 17900
@@ -97,12 +97,12 @@
"entry_at": "2026-09-30T09:04:58.828635+09:00",
"stop": 71214,
"target": 96931,
"peak": 78700,
"peak": 93600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 77500,
"cur_price": 75500,
"tranches": 2,
"tranche_value": 4740446.690085275,
"last_add_price": 78500
@@ -113,20 +113,20 @@
"sources": [
"interest"
],
"qty": 38,
"entry_price": 50900,
"qty": 74,
"entry_price": 52359.45945945946,
"entry_at": "2026-09-30T09:14:50.016735+09:00",
"stop": 40993,
"target": 80621,
"peak": 53100,
"stop": 42167,
"target": 82938,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 49300,
"tranches": 1,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1962429.9571641255,
"last_add_price": 50900
"last_add_price": 53900
},
"077360": {
"code": "077360",
@@ -139,40 +139,19 @@
"entry_at": "2026-09-30T11:16:50.813591+09:00",
"stop": 11539,
"target": 18448,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 2723162.0299032954,
"last_add_price": 13500
},
"099440": {
"code": "099440",
"name": "스맥",
"sources": [
"watch"
],
"qty": 1237,
"entry_price": 3840,
"entry_at": "2026-10-01T11:18:50.426393+09:00",
"stop": 3735,
"target": 4155,
"peak": 3855,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 3,947 도달",
"cur_price": 3835,
"tranches": 1,
"tranche_value": 4753663.030437497,
"last_add_price": 3840
}
},
"realized_pnl": -26416646.830000058,
"closed_trades": 146,
"realized_pnl": -26870324.038500056,
"closed_trades": 147,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.2616004480150002,
@@ -213,8 +192,9 @@
"001450": "2026-09-29",
"295310": "2026-09-29",
"042500": "2026-10-01",
"047770": "2026-09-30"
"047770": "2026-09-30",
"099440": "2026-10-08"
},
"created_at": "2026-06-15T14:40:00.621367+09:00",
"updated_at": "2026-10-01T15:28:51.097043+09:00"
"updated_at": "2026-10-08T15:28:58.072942+09:00"
}
@@ -334,3 +334,6 @@
{"ts": "2026-10-01T11:14:53.106365+09:00", "side": "BUY", "code": "042500", "name": "링네트", "price": 4210, "qty": 1130, "cost": 4758014, "path": "pullback", "reason": "눌림목 지정가 4,227 도달", "stop": 4205, "target": 4225, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "4,200 vs 4,186"}, {"label": "정배열(5>60)", "ok": true, "detail": "4,377 / 4,186"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "4,377 / 4,186"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-10.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -31 · 기 +5 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.55% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 4,590"}, {"label": "거래량 급증", "ok": false, "detail": "84,245 (환산) vs 평균 122,940"}, {"label": "회전율 급증", "ok": false, "detail": "0.38% (환산) vs 평균 0.55%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 4,227 (현재 4,200)"}]}
{"ts": "2026-10-01T11:18:50.426179+09:00", "side": "SELL", "code": "042500", "name": "링네트", "price": 4190, "qty": 1130, "proceeds": 4725467, "entry_price": 4210, "pnl": -32546, "pnl_pct": -0.48, "hold_from": "2026-10-01T11:14:53.106362+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "4,205 (현재 4,195)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,225"}, {"label": "추세(60일선)", "ok": true, "detail": "4,186"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -31 · 기 +5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 4,288"}]}
{"ts": "2026-10-01T11:18:50.426395+09:00", "side": "BUY", "code": "099440", "name": "스맥", "price": 3840, "qty": 1237, "cost": 4750793, "path": "pullback", "reason": "눌림목 지정가 3,947 도달", "stop": 3735, "target": 4155, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "3,835 vs 3,434"}, {"label": "정배열(5>60)", "ok": true, "detail": "3,935 / 3,434"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "3,935 / 3,434"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +17 · 기 -8 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.23% (환산) vs 평균 0.59% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 4,550"}, {"label": "거래량 급증", "ok": false, "detail": "156,177 (환산) vs 평균 402,216"}, {"label": "회전율 급증", "ok": false, "detail": "0.23% (환산) vs 평균 0.59%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 3,947 (현재 3,835)"}]}
{"ts": "2026-10-02T09:04:52.560338+09:00", "side": "BUY", "code": "327260", "name": "RF머트리얼즈", "price": 53900, "qty": 36, "cost": 1940691, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 40993, "target": 80621, "signals": [{"label": "손절선", "ok": true, "detail": "40,993 (현재 54,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 80,621"}, {"label": "추세(60일선)", "ok": true, "detail": "30,066"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -93 · 기 +83"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 53,448"}]}
{"ts": "2026-10-02T10:24:53.263818+09:00", "side": "BUY", "code": "099440", "name": "스맥", "price": 3980, "qty": 1194, "cost": 4752833, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 3735, "target": 4155, "signals": [{"label": "손절선", "ok": true, "detail": "3,735 (현재 3,975)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,155"}, {"label": "추세(60일선)", "ok": true, "detail": "3,437"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +5 · 기 -5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 3,958"}]}
{"ts": "2026-10-08T12:14:59.204342+09:00", "side": "SELL", "code": "099440", "name": "스맥", "price": 3730, "qty": 2431, "proceeds": 9049948, "entry_price": 3909, "pnl": -453677, "pnl_pct": -4.57, "hold_from": "2026-10-01T11:18:50.426393+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "3,735 (현재 3,730)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,430"}, {"label": "추세(60일선)", "ok": true, "detail": "3,433"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -79 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 33626114.81824996,
"cash": 30471641.71824996,
"initial": 100000000,
"positions": {
"078930": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3042388.163482306,
"last_add_price": 101700
@@ -34,12 +34,12 @@
"entry_at": "2026-08-20T09:02:20.385184+09:00",
"stop": 24285,
"target": 65413,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1267059.834384944,
"last_add_price": 35800
@@ -55,12 +55,12 @@
"entry_at": "2026-09-08T09:16:34.080941+09:00",
"stop": 6094,
"target": 8714,
"peak": 7260,
"peak": 8390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 3881914.001622301,
"last_add_price": 6830
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4079729.186576085,
"last_add_price": 29450
@@ -97,12 +97,12 @@
"entry_at": "2026-09-15T09:04:46.845888+09:00",
"stop": 100700,
"target": 253252,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1518714.2537293003,
"last_add_price": 144600
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2126392.023682259,
"last_add_price": 17900
@@ -134,20 +134,20 @@
"sources": [
"auto"
],
"qty": 19,
"entry_price": 160900,
"qty": 38,
"entry_price": 163450.0,
"entry_at": "2026-09-28T09:20:58.328839+09:00",
"stop": 141844,
"target": 218069,
"peak": 164600,
"stop": 143951,
"target": 221948,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"tranches": 1,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3193330.2718670745,
"last_add_price": 160900
"last_add_price": 166000
},
"316140": {
"code": "316140",
@@ -165,7 +165,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 1,
"tranche_value": 3889307.499867359,
"last_add_price": 34650
@@ -218,5 +218,5 @@
"047770": "2026-09-30"
},
"created_at": "2026-06-15T14:55:00.584337+09:00",
"updated_at": "2026-10-01T15:28:51.101364+09:00"
"updated_at": "2026-10-08T15:28:58.077231+09:00"
}
@@ -307,3 +307,4 @@
{"ts": "2026-09-30T09:18:53.002889+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 148200, "qty": 32, "cost": 4743111, "path": "pullback", "reason": "눌림목 지정가 158,475 도달", "stop": 148199, "target": 148203, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "147,800 vs 113,022"}, {"label": "정배열(5>60)", "ok": true, "detail": "167,200 / 113,022"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "167,200 / 113,022"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -37 · 기 +116 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.83% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "239,947 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "0.83% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 158,475 (현재 147,800)"}]}
{"ts": "2026-09-30T11:38:52.299728+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 148000, "qty": 32, "proceeds": 4726765, "entry_price": 148200, "pnl": -16347, "pnl_pct": -0.13, "hold_from": "2026-09-30T09:18:53.002887+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "148,199 (현재 148,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "113,025"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -40 · 기 +116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T11:38:52.300422+09:00", "side": "BUY", "code": "316140", "name": "우리금융지주", "price": 34650, "qty": 112, "cost": 3881382, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 31271, "target": 44788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "34,650 vs 30,922"}, {"label": "정배열(5>60)", "ok": true, "detail": "32,950 / 30,922"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "32,950 / 30,922"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+12.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -366 · 기 +142 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.60% (환산) vs 평균 0.34% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 33,850"}, {"label": "거래량 급증", "ok": true, "detail": "4,356,459 (환산) vs 평균 2,489,243"}, {"label": "회전율 급증", "ok": true, "detail": "0.60% (환산) vs 평균 0.34%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-10-02T14:48:56.094635+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 166000, "qty": 19, "cost": 3154473, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 141844, "target": 218069, "signals": [{"label": "손절선", "ok": true, "detail": "141,844 (현재 165,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 218,069"}, {"label": "추세(60일선)", "ok": true, "detail": "113,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +186 · 기 +77"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 165,775"}]}
@@ -1,5 +1,5 @@
{
"cash": 30395575.974999964,
"cash": 32752000.218499966,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,12 +13,12 @@
"entry_at": "2026-08-27T10:28:24.804949+09:00",
"stop": 124053,
"target": 188392,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3229829.7909181127,
"last_add_price": 145300
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4114454.4034401365,
"last_add_price": 30200
@@ -55,12 +55,12 @@
"entry_at": "2026-09-15T09:04:46.850539+09:00",
"stop": 100700,
"target": 253252,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1520913.5675996346,
"last_add_price": 144600
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2134348.726385529,
"last_add_price": 17900
@@ -97,12 +97,12 @@
"entry_at": "2026-09-30T09:04:58.853673+09:00",
"stop": 71214,
"target": 96931,
"peak": 78700,
"peak": 93600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 77500,
"cur_price": 75500,
"tranches": 2,
"tranche_value": 4740446.690085275,
"last_add_price": 78500
@@ -113,20 +113,20 @@
"sources": [
"interest"
],
"qty": 38,
"entry_price": 50900,
"qty": 74,
"entry_price": 52359.45945945946,
"entry_at": "2026-09-30T09:14:50.045019+09:00",
"stop": 40993,
"target": 80621,
"peak": 53100,
"stop": 42167,
"target": 82938,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 49300,
"tranches": 1,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1962429.9571641255,
"last_add_price": 50900
"last_add_price": 53900
},
"077360": {
"code": "077360",
@@ -139,40 +139,19 @@
"entry_at": "2026-09-30T11:16:50.824644+09:00",
"stop": 11539,
"target": 18448,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 2723162.0299032954,
"last_add_price": 13500
},
"099440": {
"code": "099440",
"name": "스맥",
"sources": [
"watch"
],
"qty": 1237,
"entry_price": 3840,
"entry_at": "2026-10-01T11:18:50.434910+09:00",
"stop": 3735,
"target": 4155,
"peak": 3855,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 3,947 도달",
"cur_price": 3835,
"tranches": 1,
"tranche_value": 4753663.030437497,
"last_add_price": 3840
}
},
"realized_pnl": -26416646.830000058,
"closed_trades": 146,
"realized_pnl": -26870324.038500056,
"closed_trades": 147,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.2616004480150002,
@@ -213,8 +192,9 @@
"001450": "2026-09-29",
"295310": "2026-09-29",
"042500": "2026-10-01",
"047770": "2026-09-30"
"047770": "2026-09-30",
"099440": "2026-10-08"
},
"created_at": "2026-06-15T14:40:00.621411+09:00",
"updated_at": "2026-10-01T15:28:51.104935+09:00"
"updated_at": "2026-10-08T15:28:58.080931+09:00"
}
@@ -334,3 +334,6 @@
{"ts": "2026-10-01T11:14:53.117281+09:00", "side": "BUY", "code": "042500", "name": "링네트", "price": 4210, "qty": 1130, "cost": 4758014, "path": "pullback", "reason": "눌림목 지정가 4,227 도달", "stop": 4205, "target": 4225, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "4,200 vs 4,186"}, {"label": "정배열(5>60)", "ok": true, "detail": "4,377 / 4,186"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "4,377 / 4,186"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-10.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -31 · 기 +5 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.55% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 4,590"}, {"label": "거래량 급증", "ok": false, "detail": "84,245 (환산) vs 평균 122,940"}, {"label": "회전율 급증", "ok": false, "detail": "0.38% (환산) vs 평균 0.55%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 4,227 (현재 4,200)"}]}
{"ts": "2026-10-01T11:18:50.434727+09:00", "side": "SELL", "code": "042500", "name": "링네트", "price": 4190, "qty": 1130, "proceeds": 4725467, "entry_price": 4210, "pnl": -32546, "pnl_pct": -0.48, "hold_from": "2026-10-01T11:14:53.117279+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "4,205 (현재 4,195)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,225"}, {"label": "추세(60일선)", "ok": true, "detail": "4,186"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -31 · 기 +5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 4,288"}]}
{"ts": "2026-10-01T11:18:50.434912+09:00", "side": "BUY", "code": "099440", "name": "스맥", "price": 3840, "qty": 1237, "cost": 4750793, "path": "pullback", "reason": "눌림목 지정가 3,947 도달", "stop": 3735, "target": 4155, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "3,835 vs 3,434"}, {"label": "정배열(5>60)", "ok": true, "detail": "3,935 / 3,434"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "3,935 / 3,434"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +17 · 기 -8 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.23% (환산) vs 평균 0.59% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 4,550"}, {"label": "거래량 급증", "ok": false, "detail": "156,177 (환산) vs 평균 402,216"}, {"label": "회전율 급증", "ok": false, "detail": "0.23% (환산) vs 평균 0.59%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 3,947 (현재 3,835)"}]}
{"ts": "2026-10-02T09:04:52.573586+09:00", "side": "BUY", "code": "327260", "name": "RF머트리얼즈", "price": 53900, "qty": 36, "cost": 1940691, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 40993, "target": 80621, "signals": [{"label": "손절선", "ok": true, "detail": "40,993 (현재 54,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 80,621"}, {"label": "추세(60일선)", "ok": true, "detail": "30,066"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -93 · 기 +83"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 53,448"}]}
{"ts": "2026-10-02T10:24:53.272608+09:00", "side": "BUY", "code": "099440", "name": "스맥", "price": 3980, "qty": 1194, "cost": 4752833, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 3735, "target": 4155, "signals": [{"label": "손절선", "ok": true, "detail": "3,735 (현재 3,975)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,155"}, {"label": "추세(60일선)", "ok": true, "detail": "3,437"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +5 · 기 -5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 3,958"}]}
{"ts": "2026-10-08T12:14:59.215568+09:00", "side": "SELL", "code": "099440", "name": "스맥", "price": 3730, "qty": 2431, "proceeds": 9049948, "entry_price": 3909, "pnl": -453677, "pnl_pct": -4.57, "hold_from": "2026-10-01T11:18:50.434910+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "3,735 (현재 3,730)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 4,430"}, {"label": "추세(60일선)", "ok": true, "detail": "3,433"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -79 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 33626114.81824996,
"cash": 30471641.71824996,
"initial": 100000000,
"positions": {
"078930": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3042388.163482306,
"last_add_price": 101700
@@ -34,12 +34,12 @@
"entry_at": "2026-08-20T09:02:20.392120+09:00",
"stop": 24285,
"target": 65413,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1267059.834384944,
"last_add_price": 35800
@@ -55,12 +55,12 @@
"entry_at": "2026-09-08T09:16:34.103339+09:00",
"stop": 6094,
"target": 8714,
"peak": 7260,
"peak": 8390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 3881914.001622301,
"last_add_price": 6830
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4079729.186576085,
"last_add_price": 29450
@@ -97,12 +97,12 @@
"entry_at": "2026-09-15T09:04:46.855157+09:00",
"stop": 100700,
"target": 253252,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1518714.2537293003,
"last_add_price": 144600
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 20000,
"cur_price": 18340,
"tranches": 2,
"tranche_value": 2126392.023682259,
"last_add_price": 17900
@@ -134,20 +134,20 @@
"sources": [
"auto"
],
"qty": 19,
"entry_price": 160900,
"qty": 38,
"entry_price": 163450.0,
"entry_at": "2026-09-28T09:20:58.338540+09:00",
"stop": 141844,
"target": 218069,
"peak": 164600,
"stop": 143951,
"target": 221948,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"tranches": 1,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3193330.2718670745,
"last_add_price": 160900
"last_add_price": 166000
},
"316140": {
"code": "316140",
@@ -165,7 +165,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 1,
"tranche_value": 3889307.499867359,
"last_add_price": 34650
@@ -218,5 +218,5 @@
"047770": "2026-09-30"
},
"created_at": "2026-06-15T14:55:00.584451+09:00",
"updated_at": "2026-10-01T15:28:51.108645+09:00"
"updated_at": "2026-10-08T15:28:58.084666+09:00"
}
@@ -307,3 +307,4 @@
{"ts": "2026-09-30T09:18:53.010579+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 148200, "qty": 32, "cost": 4743111, "path": "pullback", "reason": "눌림목 지정가 158,475 도달", "stop": 148199, "target": 148203, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "147,800 vs 113,022"}, {"label": "정배열(5>60)", "ok": true, "detail": "167,200 / 113,022"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "167,200 / 113,022"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+47.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -37 · 기 +116 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.83% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "239,947 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "0.83% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 158,475 (현재 147,800)"}]}
{"ts": "2026-09-30T11:38:52.307932+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 148000, "qty": 32, "proceeds": 4726765, "entry_price": 148200, "pnl": -16347, "pnl_pct": -0.13, "hold_from": "2026-09-30T09:18:53.010577+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "148,199 (현재 148,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "113,025"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -40 · 기 +116"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T11:38:52.308490+09:00", "side": "BUY", "code": "316140", "name": "우리금융지주", "price": 34650, "qty": 112, "cost": 3881382, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 31271, "target": 44788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "34,650 vs 30,922"}, {"label": "정배열(5>60)", "ok": true, "detail": "32,950 / 30,922"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "32,950 / 30,922"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+12.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -366 · 기 +142 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.60% (환산) vs 평균 0.34% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 33,850"}, {"label": "거래량 급증", "ok": true, "detail": "4,356,459 (환산) vs 평균 2,489,243"}, {"label": "회전율 급증", "ok": true, "detail": "0.60% (환산) vs 평균 0.34%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-10-02T14:48:56.105759+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 166000, "qty": 19, "cost": 3154473, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 141844, "target": 218069, "signals": [{"label": "손절선", "ok": true, "detail": "141,844 (현재 165,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 218,069"}, {"label": "추세(60일선)", "ok": true, "detail": "113,795"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +186 · 기 +77"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 165,775"}]}
@@ -1,5 +1,5 @@
{
"cash": 24247237.350849945,
"cash": 31361736.970849946,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,12 +13,12 @@
"entry_at": "2026-07-30T09:16:13.214746+09:00",
"stop": 117746,
"target": 180371,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3546894.320639113,
"last_add_price": 136000
@@ -34,37 +34,16 @@
"entry_at": "2026-07-31T12:36:11.191677+09:00",
"stop": 100700,
"target": 251570,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1687768.019262798,
"last_add_price": 147600
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 111380.28169014085,
"entry_at": "2026-08-07T09:58:17.716224+09:00",
"stop": 100282,
"target": 144674,
"peak": 116100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 103500,
"tranches": 2,
"tranche_value": 3966630.036179657,
"last_add_price": 112800
},
"003490": {
"code": "003490",
"name": "대한항공",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4104392.319035925,
"last_add_price": 30200
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 47250,
"cur_price": 47150,
"tranches": 2,
"tranche_value": 3521468.04972381,
"last_add_price": 51000
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"cur_price": 138400,
"tranches": 2,
"tranche_value": 2751857.4030862907,
"last_add_price": 146300
@@ -139,12 +118,12 @@
"entry_at": "2026-09-30T12:22:48.435484+09:00",
"stop": 11365,
"target": 18646,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 2659921.8114048885,
"last_add_price": 13440
@@ -160,19 +139,19 @@
"entry_at": "2026-10-01T09:14:48.868327+09:00",
"stop": 1008,
"target": 1830,
"peak": 1250,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,188 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 2154285.6131948764,
"last_add_price": 1243
}
},
"realized_pnl": -27460518.899000056,
"closed_trades": 129,
"realized_pnl": -28255205.479000058,
"closed_trades": 130,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.2674794017300005,
@@ -197,7 +176,7 @@
"402340": "2026-07-22",
"004170": "2026-07-23",
"028260": "2026-08-24",
"055550": "2026-07-20",
"055550": "2026-10-08",
"105560": "2026-07-20",
"222800": "2026-07-21",
"089970": "2026-08-11",
@@ -213,5 +192,5 @@
"079650": "2026-10-01"
},
"created_at": "2026-06-15T14:40:00.621453+09:00",
"updated_at": "2026-10-01T15:28:51.111805+09:00"
"updated_at": "2026-10-08T15:28:58.088012+09:00"
}
@@ -298,3 +298,4 @@
{"ts": "2026-10-01T09:14:48.442731+09:00", "side": "SELL", "code": "079650", "name": "서산", "price": 5590, "qty": 432, "proceeds": 2410171, "entry_price": 7445, "pnl": -806721, "pnl_pct": -24.92, "hold_from": "2026-09-07T09:16:31.844922+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,651 (현재 5,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 12,829"}, {"label": "추세(60일선)", "ok": true, "detail": "4,345"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +16 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-01T09:14:48.868341+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1185, "qty": 1817, "cost": 2153468, "path": "pullback", "reason": "눌림목 지정가 1,188 도달", "stop": 980, "target": 1799, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,185 vs 1,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,310 / 1,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,310 / 1,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+32.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -78 · 기 +4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.15% (환산) vs 평균 1.90% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 1,390"}, {"label": "거래량 급증", "ok": false, "detail": "109,080 (환산) vs 평균 1,410,399"}, {"label": "회전율 급증", "ok": false, "detail": "0.15% (환산) vs 평균 1.90%"}, {"label": "RSI", "ok": true, "detail": "55"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,188 (현재 1,185)"}]}
{"ts": "2026-10-01T12:24:50.729574+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1243, "qty": 1732, "cost": 2153199, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 980, "target": 1799, "signals": [{"label": "손절선", "ok": true, "detail": "980 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,799"}, {"label": "추세(60일선)", "ok": true, "detail": "1,001"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -68 · 기 +4"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,236"}]}
{"ts": "2026-10-08T11:16:59.322695+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100400, "qty": 71, "proceeds": 7114500, "entry_price": 111380, "pnl": -794687, "pnl_pct": -9.86, "hold_from": "2026-08-07T09:58:17.716224+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,282 (현재 100,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,674"}, {"label": "추세(60일선)", "ok": true, "detail": "96,462"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -632 · 기 +453"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 30556345.101749964,
"cash": 26797191.313249964,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,12 +13,12 @@
"entry_at": "2026-07-30T09:16:13.217304+09:00",
"stop": 117744,
"target": 180369,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3468191.0592600796,
"last_add_price": 136000
@@ -34,12 +34,12 @@
"entry_at": "2026-07-31T12:36:11.194352+09:00",
"stop": 100700,
"target": 251570,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1667469.2912320814,
"last_add_price": 147600
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3059768.9052410396,
"last_add_price": 13420
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3005090.6555779856,
"last_add_price": 101700
@@ -97,12 +97,12 @@
"entry_at": "2026-08-20T09:02:20.398238+09:00",
"stop": 24267,
"target": 65396,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1248111.8252958565,
"last_add_price": 35800
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,425 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 4734491.937843747,
"last_add_price": 405000
@@ -144,7 +144,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 1,
"tranche_value": 3862395.055136152,
"last_add_price": 34650
@@ -155,20 +155,20 @@
"sources": [
"auto"
],
"qty": 530,
"entry_price": 7090,
"qty": 1047,
"entry_price": 7178.882521489972,
"entry_at": "2026-09-30T12:22:48.784576+09:00",
"stop": 6382,
"target": 9213,
"peak": 7220,
"stop": 6462,
"target": 9328,
"peak": 8390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"tranches": 1,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 3764874.55709998,
"last_add_price": 7090
"last_add_price": 7270
}
},
"realized_pnl": -28234224.410750058,
@@ -216,5 +216,5 @@
"047770": "2026-09-30"
},
"created_at": "2026-06-15T14:55:00.584565+09:00",
"updated_at": "2026-10-01T15:28:51.115140+09:00"
"updated_at": "2026-10-08T15:28:58.091366+09:00"
}
@@ -272,3 +272,4 @@
{"ts": "2026-09-30T11:38:52.316171+09:00", "side": "BUY", "code": "316140", "name": "우리금융지주", "price": 34650, "qty": 111, "cost": 3846727, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 31271, "target": 44788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "34,650 vs 30,922"}, {"label": "정배열(5>60)", "ok": true, "detail": "32,950 / 30,922"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "32,950 / 30,922"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+12.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -366 · 기 +142 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.60% (환산) vs 평균 0.34% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 33,850"}, {"label": "거래량 급증", "ok": true, "detail": "4,356,459 (환산) vs 평균 2,489,243"}, {"label": "회전율 급증", "ok": true, "detail": "0.60% (환산) vs 평균 0.34%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-09-30T12:22:48.437997+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 308500, "qty": 20, "proceeds": 6157968, "entry_price": 350250, "pnl": -848082, "pnl_pct": -11.92, "hold_from": "2026-07-21T12:06:01.234767+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "308,113 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 476,661"}, {"label": "추세(60일선)", "ok": true, "detail": "304,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +21 · 기 -13"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T12:22:48.784592+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 7090, "qty": 530, "cost": 3758264, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 6382, "target": 9213, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "7,060 vs 4,915"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,564 / 4,915"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,564 / 4,915"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+53.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -42 · 기 +22 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.50% (환산) vs 평균 0.30% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,630"}, {"label": "거래량 급증", "ok": true, "detail": "62,751 (환산) vs 평균 38,349"}, {"label": "회전율 급증", "ok": true, "detail": "0.50% (환산) vs 평균 0.30%"}, {"label": "RSI", "ok": true, "detail": "86"}]}
{"ts": "2026-10-02T10:40:51.998836+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 7270, "qty": 517, "cost": 3759154, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 6382, "target": 9213, "signals": [{"label": "손절선", "ok": true, "detail": "6,382 (현재 7,280)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,213"}, {"label": "추세(60일선)", "ok": true, "detail": "4,919"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -88 · 기 +2"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,269"}]}
@@ -1,5 +1,5 @@
{
"cash": 24247237.350849945,
"cash": 31361736.970849946,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,12 +13,12 @@
"entry_at": "2026-07-30T09:16:13.219804+09:00",
"stop": 117746,
"target": 180371,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3546894.320639113,
"last_add_price": 136000
@@ -34,37 +34,16 @@
"entry_at": "2026-07-31T12:36:11.196890+09:00",
"stop": 100700,
"target": 251570,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1687768.019262798,
"last_add_price": 147600
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 111380.28169014085,
"entry_at": "2026-08-07T09:58:17.722055+09:00",
"stop": 100282,
"target": 144674,
"peak": 116100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 103500,
"tranches": 2,
"tranche_value": 3966630.036179657,
"last_add_price": 112800
},
"003490": {
"code": "003490",
"name": "대한항공",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 31100,
"cur_price": 30950,
"tranches": 2,
"tranche_value": 4104392.319035925,
"last_add_price": 30200
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 47250,
"cur_price": 47150,
"tranches": 2,
"tranche_value": 3521468.04972381,
"last_add_price": 51000
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"cur_price": 138400,
"tranches": 2,
"tranche_value": 2751857.4030862907,
"last_add_price": 146300
@@ -139,12 +118,12 @@
"entry_at": "2026-09-30T12:22:48.804479+09:00",
"stop": 11365,
"target": 18646,
"peak": 14150,
"peak": 14910,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 14070,
"cur_price": 14190,
"tranches": 2,
"tranche_value": 2659921.8114048885,
"last_add_price": 13440
@@ -160,19 +139,19 @@
"entry_at": "2026-10-01T09:14:48.894896+09:00",
"stop": 1008,
"target": 1830,
"peak": 1250,
"peak": 1308,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 1,188 도달",
"cur_price": 1226,
"cur_price": 1297,
"tranches": 2,
"tranche_value": 2154285.6131948764,
"last_add_price": 1243
}
},
"realized_pnl": -27460518.899000056,
"closed_trades": 129,
"realized_pnl": -28255205.479000058,
"closed_trades": 130,
"wins": 4,
"peak_equity": 100000000,
"max_drawdown": 0.2674794017300005,
@@ -197,7 +176,7 @@
"402340": "2026-07-22",
"004170": "2026-07-23",
"028260": "2026-08-24",
"055550": "2026-07-20",
"055550": "2026-10-08",
"105560": "2026-07-20",
"222800": "2026-07-21",
"089970": "2026-08-11",
@@ -213,5 +192,5 @@
"079650": "2026-10-01"
},
"created_at": "2026-06-15T14:40:00.621497+09:00",
"updated_at": "2026-10-01T15:28:51.118081+09:00"
"updated_at": "2026-10-08T15:28:58.094434+09:00"
}
@@ -298,3 +298,4 @@
{"ts": "2026-10-01T09:14:48.893572+09:00", "side": "SELL", "code": "079650", "name": "서산", "price": 5590, "qty": 432, "proceeds": 2410171, "entry_price": 7445, "pnl": -806721, "pnl_pct": -24.92, "hold_from": "2026-09-07T09:16:31.854663+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,651 (현재 5,640)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 12,829"}, {"label": "추세(60일선)", "ok": true, "detail": "4,345"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +16 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-01T09:14:48.894900+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1185, "qty": 1817, "cost": 2153468, "path": "pullback", "reason": "눌림목 지정가 1,188 도달", "stop": 980, "target": 1799, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,185 vs 1,000"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,310 / 1,000"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,310 / 1,000"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+32.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -78 · 기 +4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.15% (환산) vs 평균 1.90% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 1,390"}, {"label": "거래량 급증", "ok": false, "detail": "109,080 (환산) vs 평균 1,410,399"}, {"label": "회전율 급증", "ok": false, "detail": "0.15% (환산) vs 평균 1.90%"}, {"label": "RSI", "ok": true, "detail": "55"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,188 (현재 1,185)"}]}
{"ts": "2026-10-01T12:24:50.736851+09:00", "side": "BUY", "code": "307870", "name": "비투엔", "price": 1243, "qty": 1732, "cost": 2153199, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 980, "target": 1799, "signals": [{"label": "손절선", "ok": true, "detail": "980 (현재 1,250)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,799"}, {"label": "추세(60일선)", "ok": true, "detail": "1,001"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -68 · 기 +4"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,236"}]}
{"ts": "2026-10-08T11:16:59.330310+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100400, "qty": 71, "proceeds": 7114500, "entry_price": 111380, "pnl": -794687, "pnl_pct": -9.86, "hold_from": "2026-08-07T09:58:17.722055+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,282 (현재 100,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,674"}, {"label": "추세(60일선)", "ok": true, "detail": "96,462"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -632 · 기 +453"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 30556345.101749964,
"cash": 26797191.313249964,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,12 +13,12 @@
"entry_at": "2026-07-30T09:16:13.222270+09:00",
"stop": 117744,
"target": 180369,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3468191.0592600796,
"last_add_price": 136000
@@ -34,12 +34,12 @@
"entry_at": "2026-07-31T12:36:11.199406+09:00",
"stop": 100700,
"target": 251570,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1667469.2912320814,
"last_add_price": 147600
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3059768.9052410396,
"last_add_price": 13420
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 3005090.6555779856,
"last_add_price": 101700
@@ -97,12 +97,12 @@
"entry_at": "2026-08-20T09:02:20.403886+09:00",
"stop": 24267,
"target": 65396,
"peak": 53100,
"peak": 59300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 33,138 도달",
"cur_price": 49300,
"cur_price": 53000,
"tranches": 2,
"tranche_value": 1248111.8252958565,
"last_add_price": 35800
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 409,425 도달",
"cur_price": 400500,
"cur_price": 398000,
"tranches": 2,
"tranche_value": 4734491.937843747,
"last_add_price": 405000
@@ -144,7 +144,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 1,
"tranche_value": 3862395.055136152,
"last_add_price": 34650
@@ -155,20 +155,20 @@
"sources": [
"auto"
],
"qty": 530,
"entry_price": 7090,
"qty": 1047,
"entry_price": 7178.882521489972,
"entry_at": "2026-09-30T12:22:48.813700+09:00",
"stop": 6382,
"target": 9213,
"peak": 7220,
"stop": 6462,
"target": 9328,
"peak": 8390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"tranches": 1,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 3764874.55709998,
"last_add_price": 7090
"last_add_price": 7270
}
},
"realized_pnl": -28234224.410750058,
@@ -216,5 +216,5 @@
"047770": "2026-09-30"
},
"created_at": "2026-06-15T14:55:00.584680+09:00",
"updated_at": "2026-10-01T15:28:51.121254+09:00"
"updated_at": "2026-10-08T15:28:58.097649+09:00"
}
@@ -272,3 +272,4 @@
{"ts": "2026-09-30T11:38:52.322962+09:00", "side": "BUY", "code": "316140", "name": "우리금융지주", "price": 34650, "qty": 111, "cost": 3846727, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 31271, "target": 44788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "34,650 vs 30,922"}, {"label": "정배열(5>60)", "ok": true, "detail": "32,950 / 30,922"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "32,950 / 30,922"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+12.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -366 · 기 +142 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.60% (환산) vs 평균 0.34% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 33,850"}, {"label": "거래량 급증", "ok": true, "detail": "4,356,459 (환산) vs 평균 2,489,243"}, {"label": "회전율 급증", "ok": true, "detail": "0.60% (환산) vs 평균 0.34%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-09-30T12:22:48.811913+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 308500, "qty": 20, "proceeds": 6157968, "entry_price": 350250, "pnl": -848082, "pnl_pct": -11.92, "hold_from": "2026-07-21T12:06:01.238289+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "308,113 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 476,661"}, {"label": "추세(60일선)", "ok": true, "detail": "304,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +21 · 기 -13"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-30T12:22:48.813704+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 7090, "qty": 530, "cost": 3758264, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 6382, "target": 9213, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "7,060 vs 4,915"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,564 / 4,915"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,564 / 4,915"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+53.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -42 · 기 +22 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.50% (환산) vs 평균 0.30% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,630"}, {"label": "거래량 급증", "ok": true, "detail": "62,751 (환산) vs 평균 38,349"}, {"label": "회전율 급증", "ok": true, "detail": "0.50% (환산) vs 평균 0.30%"}, {"label": "RSI", "ok": true, "detail": "86"}]}
{"ts": "2026-10-02T10:40:52.006608+09:00", "side": "BUY", "code": "048910", "name": "대원미디어", "price": 7270, "qty": 517, "cost": 3759154, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 6382, "target": 9213, "signals": [{"label": "손절선", "ok": true, "detail": "6,382 (현재 7,280)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,213"}, {"label": "추세(60일선)", "ok": true, "detail": "4,919"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -88 · 기 +2"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,269"}]}
@@ -1,5 +1,5 @@
{
"cash": 32971105.762999985,
"cash": 33944406.252999984,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 103500,
"cur_price": 100100,
"tranches": 2,
"tranche_value": 4371332.168068898,
"last_add_price": 105800
@@ -34,12 +34,12 @@
"entry_at": "2026-07-08T09:16:02.747351+09:00",
"stop": 112606,
"target": 175803,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 3448434.606240806,
"last_add_price": 130800
@@ -60,32 +60,11 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 4425860.654266699,
"last_add_price": 125200
},
"018260": {
"code": "018260",
"name": "삼성에스디에스",
"sources": [
"auto"
],
"qty": 18,
"entry_price": 238750.0,
"entry_at": "2026-08-14T10:04:21.981059+09:00",
"stop": 197024,
"target": 363928,
"peak": 246000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 221500,
"tranches": 2,
"tranche_value": 2243002.5784807494,
"last_add_price": 244500
},
"161890": {
"code": "161890",
"name": "한국콜마",
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"cur_price": 138400,
"tranches": 2,
"tranche_value": 2796943.490474186,
"last_add_price": 133800
@@ -118,12 +97,12 @@
"entry_at": "2026-08-20T09:04:23.376147+09:00",
"stop": 113467,
"target": 266209,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 147,729 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 1467735.2954887256,
"last_add_price": 157600
@@ -144,7 +123,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 133400,
"cur_price": 130400,
"tranches": 2,
"tranche_value": 3093167.6730282507,
"last_add_price": 134900
@@ -165,14 +144,35 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 11950,
"cur_price": 12200,
"tranches": 1,
"tranche_value": 2288070.2774689887,
"last_add_price": 13090
},
"347700": {
"code": "347700",
"name": "스피어",
"sources": [
"watch"
],
"qty": 101,
"entry_price": 25400,
"entry_at": "2026-10-08T12:09:00.697330+09:00",
"stop": 21489,
"target": 37134,
"peak": 25950,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 24850,
"tranches": 1,
"tranche_value": 2579654.493735873,
"last_add_price": 25400
}
},
"realized_pnl": -22027485.03800004,
"closed_trades": 80,
"realized_pnl": -22786544.36300004,
"closed_trades": 81,
"wins": 3,
"peak_equity": 100000000,
"max_drawdown": 0.27445155613999994,
@@ -218,8 +218,9 @@
"161890": "2026-08-13",
"078930": "2026-07-31",
"138040": "2026-09-08",
"003680": "2026-08-24"
"003680": "2026-08-24",
"018260": "2026-10-08"
},
"created_at": "2026-06-16T09:00:03.113416+09:00",
"updated_at": "2026-10-01T15:28:51.124071+09:00"
"updated_at": "2026-10-08T15:28:58.100587+09:00"
}
@@ -195,3 +195,5 @@
{"ts": "2026-09-08T15:22:34.213067+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 370000, "qty": 9, "cost": 3330500, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 324149, "target": 507554, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "369,000 vs 305,900"}, {"label": "정배열(5>60)", "ok": true, "detail": "320,000 / 305,900"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "320,000 / 305,900"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+29.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +67 · 기 -37 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.71% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "177,720 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "1.71% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "70"}]}
{"ts": "2026-09-18T09:14:50.162444+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 323000, "qty": 9, "proceeds": 2901331, "entry_price": 370000, "pnl": -429168, "pnl_pct": -12.7, "hold_from": "2026-09-08T15:22:34.213064+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "324,149 (현재 322,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 507,554"}, {"label": "추세(60일선)", "ok": true, "detail": "305,125"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +52 · 기 -54"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 379,713"}]}
{"ts": "2026-09-18T09:14:50.585025+09:00", "side": "BUY", "code": "024060", "name": "흥구석유", "price": 13090, "qty": 174, "cost": 2278002, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 10765, "target": 20066, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "13,100 vs 11,200"}, {"label": "정배열(5>60)", "ok": true, "detail": "14,088 / 11,200"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "14,088 / 11,200"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+25.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -26 · 기 +4 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "15.93% (환산) vs 평균 29.44% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 17,310"}, {"label": "거래량 급증", "ok": false, "detail": "2,390,093 (환산) vs 평균 4,415,653"}, {"label": "회전율 급증", "ok": false, "detail": "15.93% (환산) vs 평균 29.44%"}, {"label": "RSI", "ok": true, "detail": "56"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 11,856 (현재 13,100)"}]}
{"ts": "2026-10-08T12:09:00.275716+09:00", "side": "SELL", "code": "018260", "name": "삼성에스디에스", "price": 197000, "qty": 18, "proceeds": 3539085, "entry_price": 238750, "pnl": -759059, "pnl_pct": -17.49, "hold_from": "2026-08-14T10:04:21.981059+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "197,024 (현재 197,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 363,928"}, {"label": "추세(60일선)", "ok": false, "detail": "201,113"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +41 · 기 -78"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-08T12:09:00.697346+09:00", "side": "BUY", "code": "347700", "name": "스피어", "price": 25400, "qty": 101, "cost": 2565785, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 21489, "target": 37134, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "25,400 vs 21,098"}, {"label": "정배열(5>60)", "ok": true, "detail": "23,550 / 21,098"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "23,550 / 21,098"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-0.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -336 · 기 +695 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+77%"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.04% (환산) vs 평균 1.89% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 24,950"}, {"label": "거래량 급증", "ok": true, "detail": "2,087,264 (환산) vs 평균 973,323"}, {"label": "회전율 급증", "ok": true, "detail": "4.04% (환산) vs 평균 1.89%"}, {"label": "RSI", "ok": true, "detail": "63"}]}
@@ -1,5 +1,5 @@
{
"cash": 2903.108999959368,
"cash": 19864.864499958232,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 103500,
"cur_price": 100100,
"tranches": 2,
"tranche_value": 5402457.352781249,
"last_add_price": 104900
@@ -34,12 +34,12 @@
"entry_at": "2026-07-08T09:16:02.749482+09:00",
"stop": 112589,
"target": 175786,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 4939827.041843749,
"last_add_price": 130800
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 128100,
"cur_price": 125200,
"tranches": 2,
"tranche_value": 4504266.321593748,
"last_add_price": 125200
@@ -81,32 +81,11 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 126300,
"cur_price": 127200,
"tranches": 2,
"tranche_value": 4268049.827468748,
"last_add_price": 122900
},
"078930": {
"code": "078930",
"name": "GS",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 115100.0,
"entry_at": "2026-08-24T13:12:24.704448+09:00",
"stop": 100149,
"target": 159952,
"peak": 130900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 101800,
"tranches": 2,
"tranche_value": 4349667.340562498,
"last_add_price": 118900
},
"316140": {
"code": "316140",
"name": "우리금융지주",
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 2,
"tranche_value": 4532714.182749998,
"last_add_price": 34350
@@ -137,14 +116,14 @@
"qty": 1478,
"entry_price": 6243.849797023004,
"entry_at": "2026-09-04T10:30:32.659857+09:00",
"stop": 5662,
"stop": 7732,
"target": 7990,
"peak": 7260,
"trailing_on": false,
"peak": 8390,
"trailing_on": true,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 7140,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 4617879.361156248,
"last_add_price": 6330
@@ -160,19 +139,40 @@
"entry_at": "2026-09-21T15:00:50.060288+09:00",
"stop": 7061,
"target": 11344,
"peak": 10470,
"peak": 11060,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 10220,
"cur_price": 10790,
"tranches": 2,
"tranche_value": 4456984.8542187475,
"last_add_price": 8400
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"interest"
],
"qty": 279,
"entry_price": 15970,
"entry_at": "2026-10-06T09:08:58.911139+09:00",
"stop": 13750,
"target": 22631,
"peak": 16330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 15150,
"tranches": 1,
"tranche_value": 4460066.450562498,
"last_add_price": 15970
}
},
"realized_pnl": -34056057.218500026,
"closed_trades": 41,
"realized_pnl": -34763074.04350003,
"closed_trades": 42,
"wins": 2,
"peak_equity": 100289247.17,
"max_drawdown": 0.3190878467384953,
@@ -198,12 +198,12 @@
"095610": "2026-07-29",
"252990": "2026-09-01",
"003680": "2026-08-24",
"078930": "2026-07-31",
"078930": "2026-10-06",
"090850": "2026-08-06",
"257720": "2026-09-04",
"068270": "2026-09-04",
"079650": "2026-09-21"
},
"created_at": "2026-06-16T09:00:03.113433+09:00",
"updated_at": "2026-10-01T15:28:51.126870+09:00"
"updated_at": "2026-10-08T15:28:58.103378+09:00"
}
@@ -118,3 +118,5 @@
{"ts": "2026-09-21T15:00:49.633295+09:00", "side": "SELL", "code": "079650", "name": "서산", "price": 5980, "qty": 728, "proceeds": 4344951, "entry_price": 7881, "pnl": -1393420, "pnl_pct": -24.12, "hold_from": "2026-09-10T10:16:32.556205+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,985 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 13,569"}, {"label": "추세(10일선)", "ok": true, "detail": "4,980"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +40 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-09-21T15:00:50.060303+09:00", "side": "BUY", "code": "200470", "name": "에이팩트", "price": 8110, "qty": 549, "cost": 4453058, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 7041, "target": 11318, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "8,140 vs 6,635"}, {"label": "정배열(5>10)", "ok": true, "detail": "7,034 / 6,635"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "7,034 / 5,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+35.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +402 · 기 +386 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "4.41% (환산) vs 평균 1.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 7,420"}, {"label": "거래량 급증", "ok": true, "detail": "1,931,630 (환산) vs 평균 834,624"}, {"label": "회전율 급증", "ok": true, "detail": "4.41% (환산) vs 평균 1.93%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-09-30T09:44:50.913636+09:00", "side": "BUY", "code": "200470", "name": "에이팩트", "price": 8400, "qty": 45, "cost": 378057, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 7041, "target": 11318, "signals": [{"label": "손절선", "ok": true, "detail": "7,041 (현재 8,410)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,318"}, {"label": "추세(10일선)", "ok": true, "detail": "6,662"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +160"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 8,378"}]}
{"ts": "2026-10-06T09:08:58.491519+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 99600, "qty": 45, "proceeds": 4473260, "entry_price": 115100, "pnl": -707017, "pnl_pct": -13.47, "hold_from": "2026-08-24T13:12:24.704448+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,149 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 159,952"}, {"label": "추세(10일선)", "ok": true, "detail": "82,090"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +71 · 기 -183"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-06T09:08:58.911153+09:00", "side": "BUY", "code": "093370", "name": "후성", "price": 15970, "qty": 279, "cost": 4456298, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 13750, "target": 22631, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "16,060 vs 13,181"}, {"label": "정배열(5>10)", "ok": true, "detail": "13,786 / 13,181"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "13,786 / 12,656"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +427 · 기 +1,023 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+25%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.55% (환산) vs 평균 2.72% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 14,740"}, {"label": "거래량 급증", "ok": true, "detail": "3,812,480 (환산) vs 평균 2,916,070"}, {"label": "회전율 급증", "ok": false, "detail": "3.55% (환산) vs 평균 2.72%"}, {"label": "RSI", "ok": true, "detail": "73"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 13,181 (현재 16,060)"}]}
@@ -1,5 +1,5 @@
{
"cash": 1558.9514999557287,
"cash": 43514.976499954704,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 103500,
"cur_price": 100100,
"tranches": 2,
"tranche_value": 5666061.52171875,
"last_add_price": 99700
@@ -34,37 +34,16 @@
"entry_at": "2026-07-08T09:16:02.751562+09:00",
"stop": 112619,
"target": 175815,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 4789675.2297187485,
"last_add_price": 130800
},
"051900": {
"code": "051900",
"name": "LG생활건강",
"sources": [
"auto"
],
"qty": 28,
"entry_price": 291500.0,
"entry_at": "2026-07-31T15:22:10.000237+09:00",
"stop": 264160,
"target": 373521,
"peak": 335000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 271000,
"tranches": 2,
"tranche_value": 4236521.005156248,
"last_add_price": 295000
},
"078930": {
"code": "078930",
"name": "GS",
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 101800,
"cur_price": 104200,
"tranches": 2,
"tranche_value": 4279461.011749998,
"last_add_price": 101700
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"cur_price": 138400,
"tranches": 2,
"tranche_value": 4367140.436124997,
"last_add_price": 135000
@@ -123,7 +102,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 33225,
"cur_price": 32500,
"tranches": 2,
"tranche_value": 4637315.235843748,
"last_add_price": 34350
@@ -139,12 +118,12 @@
"entry_at": "2026-09-21T15:00:50.077544+09:00",
"stop": 7142,
"target": 11425,
"peak": 10470,
"peak": 11060,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 10220,
"cur_price": 10790,
"tranches": 2,
"tranche_value": 4411518.207562497,
"last_add_price": 8400
@@ -160,19 +139,40 @@
"entry_at": "2026-09-28T09:04:56.208686+09:00",
"stop": 126140,
"target": 273168,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,422 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 2951850.2265706444,
"last_add_price": 168400
},
"001450": {
"code": "001450",
"name": "현대해상",
"sources": [
"auto"
],
"qty": 155,
"entry_price": 47409.67741935484,
"entry_at": "2026-10-02T10:03:01.788994+09:00",
"stop": 42301,
"target": 62734,
"peak": 48650,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 47150,
"tranches": 2,
"tranche_value": 4333551.078218747,
"last_add_price": 48300
}
},
"realized_pnl": -35927001.774000034,
"closed_trades": 47,
"realized_pnl": -36698667.774000034,
"closed_trades": 48,
"wins": 3,
"peak_equity": 102093754.3635,
"max_drawdown": 0.346576129965988,
@@ -210,8 +210,9 @@
"003680": "2026-08-24",
"068270": "2026-09-04",
"079650": "2026-09-21",
"000720": "2026-09-28"
"000720": "2026-09-28",
"051900": "2026-10-02"
},
"created_at": "2026-06-16T09:00:03.113489+09:00",
"updated_at": "2026-10-01T15:28:51.129666+09:00"
"updated_at": "2026-10-08T15:28:58.106194+09:00"
}
@@ -136,3 +136,6 @@
{"ts": "2026-09-28T09:04:56.208700+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 157700, "qty": 18, "cost": 2839026, "path": "pullback", "reason": "눌림목 지정가 158,422 도달", "stop": 120543, "target": 269171, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "158,300 vs 136,330"}, {"label": "정배열(5>20)", "ok": true, "detail": "172,300 / 136,330"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "172,300 / 99,755"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+33.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +222 · 기 -12 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+36%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "73,727 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "0.38% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "61"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 158,422 (현재 158,300)"}]}
{"ts": "2026-09-29T09:02:53.136283+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 168400, "qty": 17, "cost": 2863229, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 120543, "target": 269171, "signals": [{"label": "손절선", "ok": true, "detail": "120,543 (현재 168,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 269,171"}, {"label": "추세(20일선)", "ok": true, "detail": "136,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +236 · 기 -7"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 166,889"}]}
{"ts": "2026-09-30T09:44:50.929195+09:00", "side": "BUY", "code": "200470", "name": "에이팩트", "price": 8400, "qty": 300, "cost": 2520378, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 7041, "target": 11318, "signals": [{"label": "손절선", "ok": true, "detail": "7,041 (현재 8,410)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,318"}, {"label": "추세(20일선)", "ok": true, "detail": "6,432"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +160"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 8,378"}]}
{"ts": "2026-10-02T10:03:01.367932+09:00", "side": "SELL", "code": "051900", "name": "LG생활건강", "price": 264500, "qty": 28, "proceeds": 7391558, "entry_price": 291500, "pnl": -771666, "pnl_pct": -9.26, "hold_from": "2026-07-31T15:22:10.000237+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "264,160 (현재 264,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 373,521"}, {"label": "추세(20일선)", "ok": true, "detail": "251,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -49 · 기 +23"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-10-02T10:03:01.789013+09:00", "side": "BUY", "code": "001450", "name": "현대해상", "price": 46800, "qty": 92, "cost": 4306246, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 41792, "target": 61825, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "46,650 vs 38,895"}, {"label": "정배열(5>20)", "ok": true, "detail": "41,930 / 38,895"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "41,930 / 37,566"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+19.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +100 · 기 -43 (천주)"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 ➕"}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ ➕"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.70% (환산) vs 평균 0.64% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 45,300"}, {"label": "거래량 급증", "ok": false, "detail": "592,891 (환산) vs 평균 542,016"}, {"label": "회전율 급증", "ok": false, "detail": "0.70% (환산) vs 평균 0.64%"}, {"label": "RSI", "ok": true, "detail": "73"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 41,546 (현재 46,650)"}]}
{"ts": "2026-10-07T10:51:05.299771+09:00", "side": "BUY", "code": "001450", "name": "현대해상", "price": 48300, "qty": 63, "cost": 3043356, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 41792, "target": 61825, "signals": [{"label": "손절선", "ok": true, "detail": "41,792 (현재 48,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 61,825"}, {"label": "추세(20일선)", "ok": true, "detail": "38,978"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +138 · 기 -129"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 48,077"}]}
@@ -13,12 +13,12 @@
"entry_at": "2026-07-31T12:36:11.212064+09:00",
"stop": 108279,
"target": 227508,
"peak": 183800,
"peak": 187400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,129 도달",
"cur_price": 183200,
"cur_price": 164200,
"tranches": 2,
"tranche_value": 2602335.520457338,
"last_add_price": 147600
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3682720.3330000006,
"last_add_price": 13420
@@ -60,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 47250,
"cur_price": 47150,
"tranches": 2,
"tranche_value": 3788581.3199375006,
"last_add_price": 50400
@@ -76,12 +76,12 @@
"entry_at": "2026-09-03T09:00:44.984169+09:00",
"stop": 10600,
"target": 15229,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,581 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 3822139.0130625004,
"last_add_price": 11930
@@ -97,12 +97,12 @@
"entry_at": "2026-09-07T14:06:39.861819+09:00",
"stop": 4035,
"target": 7135,
"peak": 5070,
"peak": 5140,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,350 도달",
"cur_price": 4530,
"cur_price": 4490,
"tranches": 1,
"tranche_value": 3773712.918396452,
"last_add_price": 4810
@@ -123,7 +123,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"cur_price": 138400,
"tranches": 2,
"tranche_value": 3798944.7854062505,
"last_add_price": 144100
@@ -137,14 +137,14 @@
"qty": 1105,
"entry_price": 6749.058823529412,
"entry_at": "2026-09-08T15:20:38.343663+09:00",
"stop": 6258,
"stop": 7732,
"target": 8223,
"peak": 7260,
"trailing_on": false,
"peak": 8390,
"trailing_on": true,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 3730753.9550937507,
"last_add_price": 6830
@@ -165,7 +165,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 1002,
"cur_price": 1008,
"tranches": 1,
"tranche_value": 3720793.6927812505,
"last_add_price": 1046
@@ -209,5 +209,5 @@
"257720": "2026-09-09"
},
"created_at": "2026-06-16T10:45:02.136776+09:00",
"updated_at": "2026-10-01T15:28:51.744428+09:00"
"updated_at": "2026-10-08T15:28:59.320524+09:00"
}
@@ -1,5 +1,5 @@
{
"cash": 3170501.8144999915,
"cash": 5469796.287999988,
"initial": 100000000,
"positions": {
"010950": {
@@ -13,37 +13,16 @@
"entry_at": "2026-07-08T09:16:02.760758+09:00",
"stop": 112617,
"target": 175814,
"peak": 168400,
"peak": 173500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 148800,
"cur_price": 169000,
"tranches": 2,
"tranche_value": 4497110.087925,
"last_add_price": 130800
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 25,
"entry_price": 347020.0,
"entry_at": "2026-07-16T09:04:04.870738+09:00",
"stop": 305169,
"target": 472574,
"peak": 465250,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 314500,
"tranches": 2,
"tranche_value": 4537990.22125,
"last_add_price": 353000
},
"194370": {
"code": "194370",
"name": "제이에스코퍼레이션",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 12580,
"cur_price": 12200,
"tranches": 2,
"tranche_value": 3916421.3406499997,
"last_add_price": 13420
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 146500,
"cur_price": 138400,
"tranches": 2,
"tranche_value": 3939438.35845,
"last_add_price": 135000
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 47250,
"cur_price": 47150,
"tranches": 2,
"tranche_value": 3906404.1509499997,
"last_add_price": 50500
@@ -118,37 +97,16 @@
"entry_at": "2026-09-03T09:02:29.324709+09:00",
"stop": 10251,
"target": 16355,
"peak": 13050,
"peak": 13200,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 11,601 도달",
"cur_price": 12890,
"cur_price": 12790,
"tranches": 2,
"tranche_value": 4014765.8981999992,
"last_add_price": 11970
},
"000720": {
"code": "000720",
"name": "현대건설",
"sources": [
"interest"
],
"qty": 53,
"entry_price": 130396.22641509434,
"entry_at": "2026-09-07T15:06:42.263007+09:00",
"stop": 112316,
"target": 184637,
"peak": 141500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 117300,
"tranches": 2,
"tranche_value": 3960548.7447749996,
"last_add_price": 133000
},
"048910": {
"code": "048910",
"name": "대원미디어",
@@ -160,37 +118,16 @@
"entry_at": "2026-09-09T10:00:41.408422+09:00",
"stop": 5976,
"target": 8545,
"peak": 7260,
"peak": 8390,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 7140,
"cur_price": 8260,
"tranches": 2,
"tranche_value": 3880908.2525249994,
"last_add_price": 6740
},
"316140": {
"code": "316140",
"name": "우리금융지주",
"sources": [
"auto"
],
"qty": 103,
"entry_price": 36450,
"entry_at": "2026-09-15T09:10:45.087499+09:00",
"stop": 32978,
"target": 46866,
"peak": 36650,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 33225,
"tranches": 1,
"tranche_value": 3788155.7863749997,
"last_add_price": 36450
},
"088350": {
"code": "088350",
"name": "한화생명",
@@ -207,17 +144,80 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 5270,
"cur_price": 5190,
"tranches": 1,
"tranche_value": 3777838.417625,
"last_add_price": 5740
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"interest"
],
"qty": 229,
"entry_price": 16340,
"entry_at": "2026-10-02T14:48:57.276573+09:00",
"stop": 14124,
"target": 22988,
"peak": 16450,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 15150,
"tranches": 1,
"tranche_value": 3742601.8719749996,
"last_add_price": 16340
},
"108490": {
"code": "108490",
"name": "로보티즈",
"sources": [
"interest"
],
"qty": 11,
"entry_price": 316500,
"entry_at": "2026-10-06T13:49:00.975545+09:00",
"stop": 268844,
"target": 459469,
"peak": 323500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 299500,
"tranches": 1,
"tranche_value": 3710686.9475249993,
"last_add_price": 316500
},
"295310": {
"code": "295310",
"name": "에이치브이엠",
"sources": [
"watch"
],
"qty": 103,
"entry_price": 72001.94174757281,
"entry_at": "2026-10-08T09:07:03.584780+09:00",
"stop": 62765,
"target": 99713,
"peak": 76700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 74200,
"tranches": 2,
"tranche_value": 3732868.9359,
"last_add_price": 73700
}
},
"realized_pnl": -26275286.64100001,
"closed_trades": 35,
"realized_pnl": -28677987.361000013,
"closed_trades": 38,
"wins": 2,
"peak_equity": 100162411.55350003,
"max_drawdown": 0.25997017578886494,
"max_drawdown": 0.26132627332978176,
"last_exit": {
"030000": "2026-08-13",
"086790": "2026-07-29",
@@ -226,7 +226,7 @@
"403870": "2026-07-07",
"240810": "2026-07-24",
"093370": "2026-07-20",
"214450": "2026-07-15",
"214450": "2026-10-02",
"055550": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-08-24",
@@ -234,12 +234,13 @@
"252990": "2026-09-01",
"078930": "2026-09-22",
"090850": "2026-08-06",
"316140": "2026-08-21",
"316140": "2026-10-08",
"068270": "2026-09-04",
"327260": "2026-09-07",
"257720": "2026-09-09",
"003550": "2026-09-15"
"003550": "2026-09-15",
"000720": "2026-10-06"
},
"created_at": "2026-06-16T14:30:00.114884+09:00",
"updated_at": "2026-10-01T15:28:51.750978+09:00"
"updated_at": "2026-10-08T15:28:59.331054+09:00"
}

Some files were not shown because too many files have changed in this diff Show More