auto: 일일 백업 2026-07-22 02:00

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
hyowons
2026-07-22 02:00:04 +09:00
parent 1d6fe0f70d
commit 2cf5b38da1
195 changed files with 11185 additions and 8580 deletions
+2 -1
View File
@@ -101,7 +101,7 @@ Stock agent (`agents/stock/workspace/scripts/`), run with `python3`:
**거래 모달 시스템 (`order-modal` + `pin-modal` + `open-orders-modal`)** — 매매 진입점. 흐름: 종목 select(상단, 보유/관심/감시 통합) → 매수·매도 토글 → 호가창(ka10004 10단계, 1초 polling, visibility 가드) + 입력(계좌·주문유형 LIMIT/MARKET·단가·금액(매수만 양방향)·수량) → 매수/매도 버튼 → propose → PIN 모달(modal-top z-index) 카드 요약 + PIN 입력(`autocomplete="one-time-code"`) + 만료 카운트다운 → verify → 결과 토스트 + 자동 닫기. `[📋 진행중]` 탭은 활성 PIN 카드 → PIN 모달, 미체결만 → open-orders 모달(4계좌 통합 + 행별 취소). 매수 시 금액↔수량 양방향 자동(programmatic .value, 무한루프 X). 매도 토글 시 수량 자동 100%(max_qty). 시장 phase 라벨 + NXT 시간대+`nxt_enable=false``📵 NXT 거래불가` + 매수/매도 버튼 disable. 우상단 X 없음 — 하단 [닫기]/[취소] + overlay 클릭. **2계좌 동시 매도**(2026-06-12): 매도 버튼 시 **전량매도(입력 수량=max_qty)** 이고 같은 소유자 그룹(본인 일반↔ISA / 가희끼리)의 다른 계좌에도 같은 종목 보유(`accStatus.trde_able_qty>0`)면 `sell-choice-modal` 팝업 — [두 계좌 모두 매도](두 계좌 모두 매도가능 전량, 단가 동일) / [선택 계좌만] / [취소]. 일부매도는 팝업 없이 단일 진행. 매도 정보영역은 그룹 내 다른 계좌도 보유 시 `보유: 141주 / 전체 280주` 병기. 모두 매도는 `POST /api/order/propose_multi``handler.propose_trade_multi`(레그별 독립 검증, SELL+LIMIT/MARKET 한정, 같은 그룹만) → **카드 1장+PIN 1개**(iMessage `매도(2계좌)`)가 두 레그 승인 → verify 시 `_submit_multi_legs`가 레그 독립 제출(idem_hash 계좌별 분리)·독립 fill_watcher, 한 레그 실패해도 나머지 시도(ok=하나라도 접수). **거래 모달 시스템 (`order-modal` + `pin-modal` + `open-orders-modal`)** — 매매 진입점. 흐름: 종목 select(상단, 보유/관심/감시 통합) → 매수·매도 토글 → 호가창(ka10004 10단계, 1초 polling, visibility 가드) + 입력(계좌·주문유형 LIMIT/MARKET·단가·금액(매수만 양방향)·수량) → 매수/매도 버튼 → propose → PIN 모달(modal-top z-index) 카드 요약 + PIN 입력(`autocomplete="one-time-code"`) + 만료 카운트다운 → verify → 결과 토스트 + 자동 닫기. `[📋 진행중]` 탭은 활성 PIN 카드 → PIN 모달, 미체결만 → open-orders 모달(4계좌 통합 + 행별 취소). 매수 시 금액↔수량 양방향 자동(programmatic .value, 무한루프 X). 매도 토글 시 수량 자동 100%(max_qty). 시장 phase 라벨 + NXT 시간대+`nxt_enable=false``📵 NXT 거래불가` + 매수/매도 버튼 disable. 우상단 X 없음 — 하단 [닫기]/[취소] + overlay 클릭. **2계좌 동시 매도**(2026-06-12): 매도 버튼 시 **전량매도(입력 수량=max_qty)** 이고 같은 소유자 그룹(본인 일반↔ISA / 가희끼리)의 다른 계좌에도 같은 종목 보유(`accStatus.trde_able_qty>0`)면 `sell-choice-modal` 팝업 — [두 계좌 모두 매도](두 계좌 모두 매도가능 전량, 단가 동일) / [선택 계좌만] / [취소]. 일부매도는 팝업 없이 단일 진행. 매도 정보영역은 그룹 내 다른 계좌도 보유 시 `보유: 141주 / 전체 280주` 병기. 모두 매도는 `POST /api/order/propose_multi``handler.propose_trade_multi`(레그별 독립 검증, SELL+LIMIT/MARKET 한정, 같은 그룹만) → **카드 1장+PIN 1개**(iMessage `매도(2계좌)`)가 두 레그 승인 → verify 시 `_submit_multi_legs`가 레그 독립 제출(idem_hash 계좌별 분리)·독립 fill_watcher, 한 레그 실패해도 나머지 시도(ok=하나라도 접수).
**텔레그램 발송 정책 (웹 매매)** — 거부·검증 에러는 토스트만, **매매등록(submit_with_pin 성공)·매매체결(fill_watcher)만** 텔레그램. PIN 메시지는 **iMessage** (Apple 도메인 바인딩 `@stock.hyowons.net #PIN`, iOS Safari OTP 자동입력). `handler.send_imessage_pin` (fire-and-forget Popen, AppleEvent timeout -1712 떠도 메시지는 큐로). credential `credentials/admin_imessage.json` `{"handle": "01012345678"}`. 자기 자신 iMessage self-send 가능 (mac → 본인 iCloud handle). **텔레그램 발송 정책 (웹 매매)** — 거부·검증 에러는 토스트만, **매매등록(submit_with_pin 성공)·매매체결(fill_watcher)만** 텔레그램. PIN 메시지는 **iMessage** (Apple 도메인 바인딩 `@stock.hyowons.net #PIN`, iOS Safari OTP 자동입력). `handler.send_imessage_pin` (fire-and-forget Popen, AppleEvent timeout -1712 떠도 메시지는 큐로). credential `credentials/admin_imessage.json` `{"handle": "01012345678"}`. 자기 자신 iMessage self-send 가능 (mac → 본인 iCloud handle). **규칙(나→나 iMessage)**: 관리자 본인 handle로 보내는 iMessage는 항상 `--service imessage`(파란) 강제 — SMS 셀프발송 금지. 이유: iMessage 셀프발송은 Note-to-Self라 보낸 버블만 뜨고 OTP 도메인 자동입력이 정상 동작하지만, SMS 셀프발송은 통신사 loopback으로 초록·수신버블이 생기고 자동입력이 깨질 수 있음. 타인 대상(예: 가희 리마인더 `gahee_reminder._send_imessage``--service sms`)은 예외.
**신규 endpoint**: `/api/quote_book?code` (ka10004 호가 10단계 + ka10001 현재가 + `nxt_enable`), `/api/order/check?code&account&side&price` (잔액·보유·max_qty·매도 손익 미리보기), `POST /api/order/propose` (handler.propose_trade wrapper, 성공 시만 텔레그램·iMessage), `POST /api/order/propose_multi` (2계좌 동시 매도 — accounts/qtys 콤마 동수 리스트, handler.propose_trade_multi wrapper), `POST /api/order/verify` (handler.submit_with_pin wrapper, 성공 시만 텔레그램), `POST /api/order/cancel` (handler.cancel_active_card, 텔레그램 X), `/api/order/active` (PinStore.peek + 4계좌 미체결 카운트), `/api/orders/open` (ka10075 4계좌), `POST /api/orders/cancel?ord_no&account` (handler.cancel_open_order + 텔레그램), `/api/market_state` (regular/nxt/closed/holiday/weekend phase), `/api/symbols/all` (보유+관심+감시 통합 dedup) **신규 endpoint**: `/api/quote_book?code` (ka10004 호가 10단계 + ka10001 현재가 + `nxt_enable`), `/api/order/check?code&account&side&price` (잔액·보유·max_qty·매도 손익 미리보기), `POST /api/order/propose` (handler.propose_trade wrapper, 성공 시만 텔레그램·iMessage), `POST /api/order/propose_multi` (2계좌 동시 매도 — accounts/qtys 콤마 동수 리스트, handler.propose_trade_multi wrapper), `POST /api/order/verify` (handler.submit_with_pin wrapper, 성공 시만 텔레그램), `POST /api/order/cancel` (handler.cancel_active_card, 텔레그램 X), `/api/order/active` (PinStore.peek + 4계좌 미체결 카운트), `/api/orders/open` (ka10075 4계좌), `POST /api/orders/cancel?ord_no&account` (handler.cancel_open_order + 텔레그램), `/api/market_state` (regular/nxt/closed/holiday/weekend phase), `/api/symbols/all` (보유+관심+감시 통합 dedup)
@@ -156,6 +156,7 @@ OpenClaw 자동화는 두 갈래로 동작한다 (모두 Asia/Seoul):
- **stock.sim-web** — 상시 (`KeepAlive`) — 시뮬 대시보드 **별도 서버 포트 18792** (behive-web 18790과 분리). `python3 -m sim.sim_web serve`. sim state 읽기전용 렌더. `sim.hyowons.net` → mac:18792 (Synology reverse proxy, **수동 등록 대기**). ⚠️ 18791은 node 점유라 18792 사용 - **stock.sim-web** — 상시 (`KeepAlive`) — 시뮬 대시보드 **별도 서버 포트 18792** (behive-web 18790과 분리). `python3 -m sim.sim_web serve`. sim state 읽기전용 렌더. `sim.hyowons.net` → mac:18792 (Synology reverse proxy, **수동 등록 대기**). ⚠️ 18791은 node 점유라 18792 사용
- **gmail-label-classify** (main/클로) — 매일 01:00 — `workspace/scripts/gmail_label_classify.py`: self-sent 브리핑·종목분석·주식 리포트 메일을 Gmail 라벨로 자동 분류 + 24h 지난 테스트메일 휴지통 이동. LLM 미경유(`gog` CLI 직접 호출). 로그 `logs/gmail-label-classify.{log,err.log}` + 상태 `state/gmail_label_classify.log`. ⚠️ 2026-06-26 OpenClaw cron(main 01:00)에서 이관 — 본문 생성 없는 단순 스크립트라 모델 세션 불필요(TASKS.md §3-3 원칙) - **gmail-label-classify** (main/클로) — 매일 01:00 — `workspace/scripts/gmail_label_classify.py`: self-sent 브리핑·종목분석·주식 리포트 메일을 Gmail 라벨로 자동 분류 + 24h 지난 테스트메일 휴지통 이동. LLM 미경유(`gog` CLI 직접 호출). 로그 `logs/gmail-label-classify.{log,err.log}` + 상태 `state/gmail_label_classify.log`. ⚠️ 2026-06-26 OpenClaw cron(main 01:00)에서 이관 — 본문 생성 없는 단순 스크립트라 모델 세션 불필요(TASKS.md §3-3 원칙)
- **git-autopush** — 매일 02:00 — `scripts/git_autopush.sh`: 변경 있으면 `git add -A` + 자동 커밋 + `git push origin main`. 변경 없으면 skip(빈 커밋 X). 인증은 HTTPS + `credential.helper=store`(`~/.git-credentials`), GUI 키체인 불필요. 로그 `logs/git-autopush.{log,err.log}`. 워크스페이스 버전관리 백업용 (시크릿·sqlite는 .gitignore 제외라 별도 백업 필요) - **git-autopush** — 매일 02:00 — `scripts/git_autopush.sh`: 변경 있으면 `git add -A` + 자동 커밋 + `git push origin main`. 변경 없으면 skip(빈 커밋 X). 인증은 HTTPS + `credential.helper=store`(`~/.git-credentials`), GUI 키체인 불필요. 로그 `logs/git-autopush.{log,err.log}`. 워크스페이스 버전관리 백업용 (시크릿·sqlite는 .gitignore 제외라 별도 백업 필요)
- **codex-fallback-monitor** — 평일·주말 매 5분(`StartCalendarInterval` Minute 0/5/…/55) — `workspace/scripts/codex_fallback_monitor.py`: codex 주 모델(openai/gpt-5.5)이 죽어 게이트웨이가 조용히 **유료 OpenRouter로 폴백**하면 토큰비가 새는 걸 감지→클로(main) 텔레그램 즉시 알림. 신호원=`agents/*/sessions/*.trajectory.jsonl``model.completed` 이벤트(승자 모델). 승자 `provider==openrouter`면 폴백으로 판정(정상=`openai/gpt-5.5` codex 하네스). 무비용·온디스크·LLM 미경유. dedupe=`state/codex_fallback_monitor.json` 워터마크(`last_ts`)+30분 쿨다운(장기 다운 스팸 방지). 첫 실행은 과거 무시하고 워터마크만 세팅. 발송은 텔레그램 Bot API 직접 HTTP POST(`openclaw.json` `channels.telegram.accounts.default` 토큰·allowFrom, 레이 `send_telegram` 스크립트와 동일 패턴, urllib stdlib). 로그 `logs/codex-fallback-monitor.{log,err.log}`. ⚠️ codex 에러 자체는 로그·audit(metadata-only)에 안 남고 폴백 시 OpenRouter는 codex 하네스 로그를 안 남겨, trajectory `model.completed`가 유일하게 신뢰 가능한 승자 신호
- **budget.whooing-sync** — 매시 0/15/30/45분 — iMessage 결제문자 → 후잉. 매 사이클 끝에 `gahee_reminder.run` 추가 호출 (매월 25일 10:00 KST 이후 가희님께 iMessage 리마인더 1회 발신 → 답신 폴링 → 텍스트면 후잉 `가희주머니` 차액 자동분개, 이미지면 골디 텔레그램 알림). 별도 plist 없음 - **budget.whooing-sync** — 매시 0/15/30/45분 — iMessage 결제문자 → 후잉. 매 사이클 끝에 `gahee_reminder.run` 추가 호출 (매월 25일 10:00 KST 이후 가희님께 iMessage 리마인더 1회 발신 → 답신 폴링 → 텍스트면 후잉 `가희주머니` 차액 자동분개, 이미지면 골디 텔레그램 알림). 별도 plist 없음
## Agent Inbox Convention ## Agent Inbox Convention
@@ -0,0 +1,66 @@
# Session: 2026-07-20 09:12:03 GMT+9
- **Session Key**: agent:stock:telegram:direct:8443122995
- **Session ID**: cb10d003-728f-4145-92ec-22ca9663e308
- **Source**: telegram
## Conversation Summary
user: Conversation info (untrusted metadata):
```json
{
"chat_id": "telegram:8443122995",
"message_id": "1064",
"sender_id": "8443122995",
"sender": "snowoyh bang",
"timestamp": "Mon 2026-07-20 09:11 GMT+9",
"inbound_event_kind": "user_request"
}
```
Sender (untrusted metadata):
```json
{
"label": "snowoyh bang (8443122995)",
"id": "8443122995",
"name": "snowoyh bang",
"username": "snowoyh"
}
```
Conversation context (untrusted, chronological, selected for current message):
#1048 Tue 2026-07-14 22:53 GMT+9 snowoyh bang: 당일종가랑 현재가가 달라
#1050 Tue 2026-07-14 22:54 GMT+9 snowoyh bang: 1928000은 무슨가격이야?
#1052 Tue 2026-07-14 22:57 GMT+9 snowoyh bang: 1941000이 종가고 현재가가 1928000으로 나와
관리자 가희 계좌 통틀어서 삼성전자 하이닉스 제외하고 계좌상태 고려해서 3천만원 예수금 만들려면 뭐를 파는세 좋아?
assistant: [assistant turn failed before producing content]
user: Conversation info (untrusted metadata):
```json
{
"chat_id": "telegram:8443122995",
"message_id": "1064",
"sender_id": "8443122995",
"sender": "snowoyh bang",
"timestamp": "Mon 2026-07-20 09:11 GMT+9",
"inbound_event_kind": "user_request"
}
```
Sender (untrusted metadata):
```json
{
"label": "snowoyh bang (8443122995)",
"id": "8443122995",
"name": "snowoyh bang",
"username": "snowoyh"
}
```
Conversation context (untrusted, chronological, selected for current message):
#1048 Tue 2026-07-14 22:53 GMT+9 snowoyh bang: 당일종가랑 현재가가 달라
#1050 Tue 2026-07-14 22:54 GMT+9 snowoyh bang: 1928000은 무슨가격이야?
#1052 Tue 2026-07-14 22:57 GMT+9 snowoyh bang: 1941000이 종가고 현재가가 1928000으로 나와
관리자 가희 계좌 통틀어서 삼성전자 하이닉스 제외하고 계좌상태 고려해서 3천만원 예수금 만들려면 뭐를 파는세 좋아?
assistant: ⚠️ Something went wrong while processing your request. Please try again, or use /new to start a fresh session.
@@ -0,0 +1,5 @@
{
"version": 1,
"bootstrapSeededAt": "2026-04-17T03:21:06.738Z",
"setupCompletedAt": "2026-04-17T05:20:30.244Z"
}
+557 -49
View File
@@ -79,6 +79,7 @@ QUOTE_WORKERS = 8
QUOTE_CACHE_TTL = 30.0 # 첫 cold 8s 동안 분산 박힌 캐시가 다음 RENDER 만료(10s) 시점에 살아있도록. 가격 stale 최대 30s. QUOTE_CACHE_TTL = 30.0 # 첫 cold 8s 동안 분산 박힌 캐시가 다음 RENDER 만료(10s) 시점에 살아있도록. 가격 stale 최대 30s.
sys.path.insert(0, str(WORKSPACE / 'scripts')) sys.path.insert(0, str(WORKSPACE / 'scripts'))
sys.path.insert(0, str(WORKSPACE)) # sim 패키지(from sim import signals, config) import 용
_holidays_cache: dict = {'mtime': 0.0, 'set': set()} _holidays_cache: dict = {'mtime': 0.0, 'set': set()}
@@ -87,6 +88,155 @@ _holding_since_cache: dict = {'mtime': None, 'map': {}}
_quote_cache: dict[str, tuple[dict, float]] = {} _quote_cache: dict[str, tuple[dict, float]] = {}
_quote_cache_lock = threading.Lock() _quote_cache_lock = threading.Lock()
# 계좌별 미체결(ka10075) 캐시 — 거래 모달 max_qty 계산용. 미체결은 가격과 무관하므로
# 단가 keystroke마다 재조회하지 않도록 짧은 TTL로 묶는다. 주문 접수 후 프론트가 재조회하면
# 최대 TTL 만큼 stale할 수 있으나, propose/키움 서버가 최종 검증하므로 표시용으론 충분.
OPEN_ORDERS_CACHE_TTL = 15.0
_open_orders_cache: dict[str, tuple[list, float]] = {}
_open_orders_cache_lock = threading.Lock()
def _cached_open_orders(account_label: str) -> list:
"""계좌 미체결 주문 목록 (ka10075) — TTL 캐시. 실패 시 빈 리스트."""
now = time.time()
with _open_orders_cache_lock:
hit = _open_orders_cache.get(account_label)
if hit and (now - hit[1]) < OPEN_ORDERS_CACHE_TTL:
return hit[0]
try:
import kiwoom_client as kc
rows = kc.get_open_orders(account_label)
except Exception:
return []
with _open_orders_cache_lock:
_open_orders_cache[account_label] = (rows, now)
return rows
def _pending_buy_lock(account_label: str) -> int:
"""계좌의 미체결 매수 지정가로 묶인 예수금 합계. d2_entra는 이 금액을 아직 포함하므로
실제 매수가능액 = d2_entra . 시장가(price=0) 미체결은 금액 미상이라 제외(render 경로와 동일)."""
total = 0
for o in _cached_open_orders(account_label):
if o.get('side') == 'BUY':
px = o.get('order_price') or 0
if px > 0:
total += px * (o.get('unfilled_qty') or 0)
return total
def _pending_sell_qty(account_label: str, code: str) -> int:
"""계좌·종목의 미체결 매도 수량 합계."""
total = 0
for o in _cached_open_orders(account_label):
if o.get('side') == 'SELL' and o.get('code') == code:
total += o.get('unfilled_qty') or 0
return total
# 기술적 권장가(매수/매도 판단 보조) 캐시 — 완성된 일봉 기반이라 장중 안정적.
# 키: f'{code}:{side}:{avg_price}'. 현재가 대비 비교는 클라이언트가 실시간 시세로 처리.
ADVICE_CACHE_TTL = 120.0
_advice_cache: dict[str, tuple[dict, float]] = {}
_advice_cache_lock = threading.Lock()
def _price_advice(code: str, side: str, avg_price: int | None = None) -> dict | None:
"""일봉 기반 기술적 권장 매수가/매도가. 근거는 이평·ATR만(sim.signals 규칙 재사용).
반환: {'levels': [{label, price, hint, tap}], 'atr','sma20','rsi','price','recent_low','recent_high'}
데이터 부족(신규주)·ETF 등으로 지표 산출 불가 None (예외 raise ).
상수는 활성 sim.config 사용 params.json 튜닝이 걸려있으면 값이 반영됨(현재는 문서화된 기본값).
"""
side = (side or '').upper()
cache_key = f'{code}:{side}:{avg_price or 0}'
now = time.time()
with _advice_cache_lock:
hit = _advice_cache.get(cache_key)
if hit and (now - hit[1]) < ADVICE_CACHE_TTL:
return hit[0]
try:
from sim import signals, config
import daily_candles_cache as dcc
candles = dcc.get_candles(code, count=250)
ind = signals.compute_indicators(candles) if candles else None
except Exception:
traceback.print_exc()
ind = None
if not ind:
with _advice_cache_lock:
_advice_cache[cache_key] = (None, now)
return None
price = ind['price']
atr = ind['atr']
sma20 = ind['sma_long']
prev_close = ind['prev_close']
recent_high = ind['recent_high']
recent_low = ind['recent_low']
rsi = ind.get('rsi')
levels: list[dict] = []
if side == 'BUY':
pullback = int(round(max(sma20, prev_close - atr * config.PULLBACK_ATR_MULT)))
p_stop, p_target = signals.compute_stop_target(pullback, atr, recent_low)
levels.append({
'label': '눌림목 매수가', 'price': pullback, 'tap': True,
'hint': f'20일선({sma20:,.0f})과 전일종가−ATR({prev_close - atr * config.PULLBACK_ATR_MULT:,.0f}) 중 높은 값. '
f'여기까지 눌리면 매수 검토(지정가로 걸어둠).',
})
if recent_high:
levels.append({
'label': '돌파 기준가', 'price': int(recent_high), 'tap': True,
'hint': f'최근 {config.BREAKOUT_LOOKBACK}일 전고점. 이 위로 거래량 실려 뚫으면 돌파 매수 신호.',
})
levels.append({
'label': '(눌림목 매수 시) 예상 손절', 'price': p_stop, 'tap': False,
'hint': f'매수가−ATR×{config.STOP_ATR_MULT:g}와 최근 {config.SWING_LOW_LOOKBACK}일 저점 중 위쪽. 여기 깨지면 손절.',
})
levels.append({
'label': '(눌림목 매수 시) 목표가', 'price': p_target, 'tap': False,
'hint': f'손익비 {config.RR_RATIO:g}:1 — 손절폭의 {config.RR_RATIO:g}배 위. 1차 익절 목표.',
})
else: # SELL — 보유 청산. 평단 고정은 고수익주에서 붕괴 → 지지·저항·트레일링으로.
trail = int(round(price - atr * config.TRAIL_ATR_MULT))
levels.append({
'label': '트레일링 손절', 'price': trail, 'tap': True,
'hint': f'현재가−ATR×{config.TRAIL_ATR_MULT:g}. 고점 대비 이만큼 되돌리면 익절/이탈(수익 보호).',
})
levels.append({
'label': '20일선 지지', 'price': int(round(sma20)), 'tap': True,
'hint': '20일 이동평균선. 추세 지지선 — 종가로 깨지면 상승추세 이탈 신호.',
})
if recent_low:
levels.append({
'label': f'{config.SWING_LOW_LOOKBACK}일 스윙저점', 'price': int(recent_low), 'tap': True,
'hint': f'최근 {config.SWING_LOW_LOOKBACK}일 최저가. 이 아래로 밀리면 하락 전환 경계.',
})
if recent_high:
levels.append({
'label': '전고점(저항/목표)', 'price': int(recent_high), 'tap': True,
'hint': f'최근 {config.BREAKOUT_LOOKBACK}일 전고점. 1차 저항 — 도달 시 분할 익절 고려.',
})
# 평단 근처(±ATR)일 때만 평단 기준 손절선 추가 — 그 밖(고수익/큰손실)에선 무의미해 생략.
if avg_price and abs(price - avg_price) <= atr:
a_stop, _ = signals.compute_stop_target(int(avg_price), atr, recent_low)
levels.append({
'label': '평단 기준 손절', 'price': a_stop, 'tap': True,
'hint': f'평단({avg_price:,})ATR×{config.STOP_ATR_MULT:g}와 스윙저점 중 위쪽. 본전 근처에서 손실 방어선.',
})
result = {
'levels': levels, 'price': int(price), 'atr': int(round(atr)),
'sma20': int(round(sma20)), 'rsi': (round(rsi) if rsi is not None else None),
'recent_low': int(recent_low) if recent_low else None,
'recent_high': int(recent_high) if recent_high else None,
}
with _advice_cache_lock:
_advice_cache[cache_key] = (result, now)
return result
INDICES_CACHE_TTL = 30.0 INDICES_CACHE_TTL = 30.0
_indices_cache: dict = {'data': None, 'expires_at': 0.0} _indices_cache: dict = {'data': None, 'expires_at': 0.0}
_indices_lock = threading.Lock() _indices_lock = threading.Lock()
@@ -2559,8 +2709,8 @@ def _render_row(c: dict, source: str = 'watchlist') -> str:
trade_mark = ( trade_mark = (
f'<button type="button" class="badge badge-trade btn-trades" data-trade-code="{html.escape(raw_code, quote=True)}" data-trade-stock="{stock_attr}" title="거래내역 보기">거래내역</button>' f'<button type="button" class="badge badge-trade btn-trades" data-trade-code="{html.escape(raw_code, quote=True)}" data-trade-stock="{stock_attr}" title="거래내역 보기">거래내역</button>'
) if has_trades and source == 'interests' else '' ) if has_trades and source == 'interests' else ''
# 매매 진입 버튼 — 보유 모드면 default, 그 외는 매수 default. 모달에서 토글 가능. # 매매 진입 버튼 — 항상 default (오타 방지). 모달에서 매도로 토글 가능.
order_side = 'SELL' if c.get('mode') == 'held' else 'BUY' order_side = 'BUY'
order_btn = ( order_btn = (
f'<button type="button" class="btn-order" data-order-code="{html.escape(raw_code, quote=True)}" data-order-stock="{stock_attr}" data-order-side="{order_side}" title="매수/매도">💰 거래</button>' f'<button type="button" class="btn-order" data-order-code="{html.escape(raw_code, quote=True)}" data-order-stock="{stock_attr}" data-order-side="{order_side}" title="매수/매도">💰 거래</button>'
) if raw_code else '' ) if raw_code else ''
@@ -3349,7 +3499,7 @@ def _render_holding_row(r: dict, total_value: int, show_day_change: bool = False
f'{note_btn}' f'{note_btn}'
f'{_info_button_html(r.get("code") or "", r.get("stock") or "")}' f'{_info_button_html(r.get("code") or "", r.get("stock") or "")}'
f'<button type="button" class="btn-trades" data-trade-code="{code}" data-trade-stock="{stock}">거래내역</button>' f'<button type="button" class="btn-trades" data-trade-code="{code}" data-trade-stock="{stock}">거래내역</button>'
f'<button type="button" class="btn-order" data-order-code="{code}" data-order-stock="{html.escape(stock, quote=True)}" data-order-side="SELL" title="매수/매도">💰 거래</button>' f'<button type="button" class="btn-order" data-order-code="{code}" data-order-stock="{html.escape(stock, quote=True)}" data-order-side="BUY" title="매수/매도">💰 거래</button>'
f'</div>' f'</div>'
) if code else '' ) if code else ''
tag_chip = _tag_chip_html(r.get('code') or '', r.get('stock') or '', interactive=True) tag_chip = _tag_chip_html(r.get('code') or '', r.get('stock') or '', interactive=True)
@@ -5793,7 +5943,7 @@ table.market-adr td.adr-breakdown { font-size: 11px; color: #8b8f9a; }
} }
/* 주문 모달 (order-modal) 거래내역 보기용 trade-modal과 별개. 모달 박스 자체 스크롤 X (호가창만 스크롤) */ /* 주문 모달 (order-modal) 거래내역 보기용 trade-modal과 별개. 모달 박스 자체 스크롤 X (호가창만 스크롤) */
.order-box { max-width: 560px; overflow-y: hidden; display: flex; flex-direction: column; transition: border-color 0.15s, box-shadow 0.15s, background 0.15s; } .order-box { max-width: 640px; max-height: calc(100dvh - env(safe-area-inset-top) - 56px); overflow-y: hidden; display: flex; flex-direction: column; transition: border-color 0.15s, box-shadow 0.15s, background 0.15s; }
.order-box > [data-order-step="1"] { display: flex; flex-direction: column; flex: 1; min-height: 0; } .order-box > [data-order-step="1"] { display: flex; flex-direction: column; flex: 1; min-height: 0; }
/* 매수/매도 모드 전체 색조 모달 어디를 봐도 side가 한눈에 (매수=빨강/매도=파랑) */ /* 매수/매도 모드 전체 색조 모달 어디를 봐도 side가 한눈에 (매수=빨강/매도=파랑) */
.order-box.side-buy { border-color: #c9303e; box-shadow: 0 0 0 1px #c9303e, 0 12px 44px rgba(201,48,62,0.34); background: linear-gradient(180deg, rgba(201,48,62,0.12), rgba(201,48,62,0.02) 130px, #0d1018 300px); } .order-box.side-buy { border-color: #c9303e; box-shadow: 0 0 0 1px #c9303e, 0 12px 44px rgba(201,48,62,0.34); background: linear-gradient(180deg, rgba(201,48,62,0.12), rgba(201,48,62,0.02) 130px, #0d1018 300px); }
@@ -5802,6 +5952,8 @@ table.market-adr td.adr-breakdown { font-size: 11px; color: #8b8f9a; }
.order-box.side-sell .modal-head { border-bottom: 2px solid rgba(42,95,179,0.55); padding-bottom: 10px; } .order-box.side-sell .modal-head { border-bottom: 2px solid rgba(42,95,179,0.55); padding-bottom: 10px; }
.order-box.side-buy .orderbook { border-color: rgba(201,48,62,0.38); } .order-box.side-buy .orderbook { border-color: rgba(201,48,62,0.38); }
.order-box.side-sell .orderbook { border-color: rgba(42,95,179,0.38); } .order-box.side-sell .orderbook { border-color: rgba(42,95,179,0.38); }
/* 주문 방향 확인 팝업 매수·매도 버튼을 직접 골라 누르게 (위치 랜덤). 오타 방지 */
#order-confirm-modal .btn-confirm { font-size: 16px; font-weight: 700; padding: 15px 14px; }
.order-symbol-select { background: #14171f; color: #f0f0f0; border: 1px solid #1f2330; border-radius: 6px; padding: 7px 9px; font-size: 14px; font-weight: 600; font-family: inherit; width: 100%; max-width: 360px; cursor: pointer; color-scheme: dark; } .order-symbol-select { background: #14171f; color: #f0f0f0; border: 1px solid #1f2330; border-radius: 6px; padding: 7px 9px; font-size: 14px; font-weight: 600; font-family: inherit; width: 100%; max-width: 360px; cursor: pointer; color-scheme: dark; }
.order-symbol-select:focus { outline: none; border-color: #ff4d5e; } .order-symbol-select:focus { outline: none; border-color: #ff4d5e; }
.order-symbol-select option { background: #14171f; color: #f0f0f0; } .order-symbol-select option { background: #14171f; color: #f0f0f0; }
@@ -5831,8 +5983,8 @@ table.market-adr td.adr-breakdown { font-size: 11px; color: #8b8f9a; }
.orderbook::-webkit-scrollbar-thumb { background: #2a2e3a; border-radius: 2px; } .orderbook::-webkit-scrollbar-thumb { background: #2a2e3a; border-radius: 2px; }
.orderbook .ob-row { display: grid; grid-template-columns: 1fr 1fr; padding: 1px 5px; font-size: 7.5px; line-height: 1.35; font-variant-numeric: tabular-nums; cursor: pointer; border-bottom: 1px solid #15171e; transition: box-shadow 0.08s; color: #565c68; } .orderbook .ob-row { display: grid; grid-template-columns: 1fr 1fr; padding: 1px 5px; font-size: 7.5px; line-height: 1.35; font-variant-numeric: tabular-nums; cursor: pointer; border-bottom: 1px solid #15171e; transition: box-shadow 0.08s; color: #565c68; }
.orderbook .ob-row:last-of-type { border-bottom: 0; } .orderbook .ob-row:last-of-type { border-bottom: 0; }
.orderbook .ob-row.ask { background: linear-gradient(to left, rgba(201,48,62,0.16), transparent 60%); color: #ff8a95; } .orderbook .ob-row.ask { background: linear-gradient(to left, rgba(42,95,179,0.16), transparent 60%); color: #8db4ff; }
.orderbook .ob-row.bid { background: linear-gradient(to left, rgba(42,95,179,0.16), transparent 60%); color: #8db4ff; } .orderbook .ob-row.bid { background: linear-gradient(to left, rgba(201,48,62,0.16), transparent 60%); color: #ff8a95; }
.orderbook .ob-row:hover { background: #1c1f29; } .orderbook .ob-row:hover { background: #1c1f29; }
.orderbook .ob-row.ob-current { background-color: rgba(230,230,230,0.13); color: #fff; font-weight: 700; box-shadow: inset 3px 0 0 #e6e6e6; } .orderbook .ob-row.ob-current { background-color: rgba(230,230,230,0.13); color: #fff; font-weight: 700; box-shadow: inset 3px 0 0 #e6e6e6; }
.orderbook .ob-row.ob-synthetic { background: rgba(230,230,230,0.10); } .orderbook .ob-row.ob-synthetic { background: rgba(230,230,230,0.10); }
@@ -5844,7 +5996,7 @@ table.market-adr td.adr-breakdown { font-size: 11px; color: #8b8f9a; }
.orderbook .ob-row.selected { box-shadow: inset 0 0 0 1.5px #ffcc33; color: #fff !important; font-weight: 700; background-color: rgba(255,204,51,0.18) !important; } .orderbook .ob-row.selected { box-shadow: inset 0 0 0 1.5px #ffcc33; color: #fff !important; font-weight: 700; background-color: rgba(255,204,51,0.18) !important; }
.orderbook .ob-row .price { text-align: left; } .orderbook .ob-row .price { text-align: left; }
.orderbook .ob-row .qty { text-align: right; opacity: 0.8; font-size: 7px; } .orderbook .ob-row .qty { text-align: right; opacity: 0.8; font-size: 7px; }
.price-tick-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 4px; } .price-tick-buttons { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4px; margin-top: 4px; }
.price-tick-buttons button { background: #14171f; color: #c9ccd3; border: 1px solid #1f2330; border-radius: 5px; padding: 5px 4px; font-size: 11px; cursor: pointer; font-family: inherit; } .price-tick-buttons button { background: #14171f; color: #c9ccd3; border: 1px solid #1f2330; border-radius: 5px; padding: 5px 4px; font-size: 11px; cursor: pointer; font-family: inherit; }
.price-tick-buttons button:hover { border-color: #ff4d5e; color: #f0f0f0; } .price-tick-buttons button:hover { border-color: #ff4d5e; color: #f0f0f0; }
.price-tick-buttons button:active { transform: translateY(1px); } .price-tick-buttons button:active { transform: translateY(1px); }
@@ -5871,6 +6023,27 @@ table.market-adr td.adr-breakdown { font-size: 11px; color: #8b8f9a; }
.order-info .pl-down { color: #8db4ff; white-space: nowrap; } .order-info .pl-down { color: #8db4ff; white-space: nowrap; }
.order-info b.qty-over { color: #ff8a95; } .order-info b.qty-over { color: #ff8a95; }
input[data-order-qty].qty-over { color: #ff8a95; } input[data-order-qty].qty-over { color: #ff8a95; }
.price-tick-buttons .advice-open-btn { padding: 5px 4px; border-radius: 5px; background: #1a1710; border: 1px solid #4a3c1a; color: #e6c86b; font-size: 11px; font-weight: 700; cursor: pointer; text-align: center; font-family: inherit; white-space: nowrap; }
.price-tick-buttons .advice-open-btn:hover { border-color: #e6c86b; color: #f0d98a; }
.price-tick-buttons .advice-open-btn:active { transform: translateY(1px); }
.advice-box { max-width: 420px; }
.advice-body { padding: 4px 2px; }
.advice-sub { font-size: 11px; color: #9aa0ad; margin-bottom: 8px; line-height: 1.4; }
.advice-rows { display: flex; flex-direction: column; gap: 6px; }
.advice-row { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 11px; border-radius: 8px; background: #1a1f2c; border: 1px solid #2a3040; text-align: left; cursor: default; }
.advice-row .advice-lbl { font-size: 12px; color: #c9ccd3; flex: 1; }
.advice-row .advice-px { font-size: 14px; font-weight: 700; color: #e8eaf0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.advice-rel { font-size: 10px; }
.advice-rel.up { color: #ff8a95; }
.advice-rel.dn { color: #8ab6ff; }
.advice-tapmark { font-size: 10.5px; font-weight: 700; color: #8ab6ff; white-space: nowrap; margin-left: 2px; }
.advice-row.advice-tap { cursor: pointer; border-color: #34506e; background: #16202e; }
.advice-row.advice-tap:active { background: #1e2c3e; }
.advice-row.advice-info { opacity: 0.72; }
.advice-why { margin: 10px 0 0; background: none; border: none; color: #8ab6ff; font-size: 12px; font-weight: 600; cursor: pointer; padding: 4px 2px; }
.advice-hints { margin: 6px 0 2px; padding-left: 16px; font-size: 11.5px; color: #b7bcc7; line-height: 1.5; }
.advice-hints li { margin-bottom: 5px; }
.advice-hints b { color: #d6dae2; white-space: nowrap; }
.order-adr-banner { padding: 8px 12px; margin-bottom: 12px; border-radius: 8px; font-size: 12.5px; font-weight: 600; line-height: 1.4; } .order-adr-banner { padding: 8px 12px; margin-bottom: 12px; border-radius: 8px; font-size: 12.5px; font-weight: 600; line-height: 1.4; }
.order-adr-banner.adr-over { background: #2a1418; border: 1px solid #5a1f28; color: #ff8a95; } .order-adr-banner.adr-over { background: #2a1418; border: 1px solid #5a1f28; color: #ff8a95; }
.order-adr-banner.adr-under { background: #101b2e; border: 1px solid #1f3a5a; color: #8ab6ff; } .order-adr-banner.adr-under { background: #101b2e; border: 1px solid #1f3a5a; color: #8ab6ff; }
@@ -7167,6 +7340,26 @@ def _render_info_desc_modal() -> str:
) )
def _render_advice_modal() -> str:
"""기술적 권장가 팝업. order-modal 위에 겹쳐 뜨는 modal-top. [💡 권장가 보기] 클릭 시 표시.
가격 단가 자동입력(호가단위 스냅) 팝업 닫힘. 근거로 계산식 설명 토글."""
return (
'<div id="advice-modal" class="modal hidden modal-top" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="advice-modal-title">'
'<div class="modal-overlay" data-modal-close="1"></div>'
'<div class="modal-box advice-box" role="document">'
'<div class="modal-head">'
'<div class="modal-title" id="advice-modal-title"><span data-advice-title>💡 권장가</span></div>'
'<button type="button" class="modal-close" data-modal-close="1" aria-label="닫기">×</button>'
'</div>'
'<div class="advice-body" data-advice-body><div class="muted small">불러오는 중…</div></div>'
'<div class="modal-actions">'
'<button type="button" class="btn-cancel" data-modal-close="1">닫기</button>'
'</div>'
'</div>'
'</div>'
)
def _render_order_modal() -> str: def _render_order_modal() -> str:
"""주문 진입 모달 (매수/매도). 호가창 1초 폴링, PIN OTP 흐름. """주문 진입 모달 (매수/매도). 호가창 1초 폴링, PIN OTP 흐름.
@@ -7208,12 +7401,18 @@ def _render_order_modal() -> str:
'<label class="inline-row">주문유형<select data-order-type>' '<label class="inline-row">주문유형<select data-order-type>'
'<option value="LIMIT">지정가</option>' '<option value="LIMIT">지정가</option>'
'<option value="MARKET">시장가</option>' '<option value="MARKET">시장가</option>'
'<option value="STOP_LIMIT">스톱지정가 (하락 시 매도)</option>'
'</select></label>' '</select></label>'
'<label data-order-price-row>단가' '<label data-order-stop-row style="display:none;">'
'<span>조건단가 <span class="muted small" style="font-weight:400;">(이 가격 도달 시 매도)</span></span>'
'<input type="number" inputmode="numeric" min="0" step="1" data-order-stop-input>'
'</label>'
'<label data-order-price-row><span data-order-price-label>단가</span>'
'<input type="number" inputmode="numeric" min="0" step="1" data-order-price-input>' '<input type="number" inputmode="numeric" min="0" step="1" data-order-price-input>'
'<div class="price-tick-buttons">' '<div class="price-tick-buttons">'
'<button type="button" data-tick-dir="-1">▼ 한 호가 아래</button>' '<button type="button" data-tick-dir="-1">▼ 한 호가</button>'
'<button type="button" data-tick-dir="1">▲ 한 호가</button>' '<button type="button" data-tick-dir="1">▲ 한 호가</button>'
'<button type="button" class="advice-open-btn" data-advice-open>💡 권장가</button>'
'</div>' '</div>'
'</label>' '</label>'
'<label data-order-budget-row>' '<label data-order-budget-row>'
@@ -7322,6 +7521,32 @@ def _render_sell_choice_modal() -> str:
) )
def _render_order_confirm_modal() -> str:
"""매수/매도 버튼 → propose 직전 방향 확인 팝업. 매수/매도 오타 방지용.
매수·매도 버튼을 띄우고 관리자님이 직접 맞는 방향을 찾아 누르게 (위치 랜덤).
주문 방향과 일치하면 진행, 다르면 팝업 닫고 취소. order-modal 위에 겹침(modal-top).
"""
return (
'<div id="order-confirm-modal" class="modal hidden modal-top" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="order-confirm-modal-title">'
'<div class="modal-overlay" data-modal-close="1"></div>'
'<div class="modal-box pin-box" role="document">'
'<div class="modal-head">'
'<div class="modal-title" id="order-confirm-modal-title">방향 확인 — 맞는 것을 누르세요</div>'
'</div>'
'<div class="order-modal-msg info" data-order-confirm-summary>—</div>'
'<div class="order-actions" style="gap:8px;">'
'<button type="button" class="btn-confirm" data-order-confirm-side="BUY" data-side="BUY">매수</button>'
'<button type="button" class="btn-confirm" data-order-confirm-side="SELL" data-side="SELL">매도</button>'
'</div>'
'<div class="order-actions" style="margin-top:8px;">'
'<button type="button" class="btn-cancel" data-modal-close="1" style="width:100%;">취소</button>'
'</div>'
'</div>'
'</div>'
)
def _render_interests_modal() -> str: def _render_interests_modal() -> str:
"""shell HTML 직속에 두는 종목 추가 모달. panels API의 swap 영역(section.tab-content) 밖이라 """shell HTML 직속에 두는 종목 추가 모달. panels API의 swap 영역(section.tab-content) 밖이라
자동 갱신 중에도 DOM·입력값이 보존된다.""" 자동 갱신 중에도 DOM·입력값이 보존된다."""
@@ -9020,9 +9245,11 @@ def render_html() -> str:
trade_modal_html = _render_trade_modal() trade_modal_html = _render_trade_modal()
info_modal_html = _render_info_modal() info_modal_html = _render_info_modal()
info_desc_modal_html = _render_info_desc_modal() info_desc_modal_html = _render_info_desc_modal()
advice_modal_html = _render_advice_modal()
order_modal_html = _render_order_modal() order_modal_html = _render_order_modal()
pin_modal_html = _render_pin_modal() pin_modal_html = _render_pin_modal()
sell_choice_modal_html = _render_sell_choice_modal() sell_choice_modal_html = _render_sell_choice_modal()
order_confirm_modal_html = _render_order_confirm_modal()
open_orders_modal_html = _render_open_orders_modal() open_orders_modal_html = _render_open_orders_modal()
stock_name_modal_html = _render_stock_name_modal() stock_name_modal_html = _render_stock_name_modal()
@@ -10023,7 +10250,9 @@ def render_html() -> str:
var modal = document.getElementById('order-modal'); var modal = document.getElementById('order-modal');
var pinModal = document.getElementById('pin-modal'); var pinModal = document.getElementById('pin-modal');
var sellChoiceModal = document.getElementById('sell-choice-modal'); var sellChoiceModal = document.getElementById('sell-choice-modal');
var orderConfirmModal = document.getElementById('order-confirm-modal');
var openOrdersModal = document.getElementById('open-orders-modal'); var openOrdersModal = document.getElementById('open-orders-modal');
var adviceModal = document.getElementById('advice-modal');
if(!modal) return; if(!modal) return;
var ACCOUNTS = [ var ACCOUNTS = [
{label: '일반', display: '본인 일반', owner: '본인'}, {label: '일반', display: '본인 일반', owner: '본인'},
@@ -10031,10 +10260,11 @@ var ACCOUNTS = [
{label: '가희_일반', display: '가희 일반', owner: '가희'}, {label: '가희_일반', display: '가희 일반', owner: '가희'},
{label: '가희_ISA', display: '가희 ISA', owner: '가희'} {label: '가희_ISA', display: '가희 ISA', owner: '가희'}
]; ];
var state = { code:'', name:'', side:'BUY', pollTimer:null, countdownTimer:null, expiryAt:0, isOpen:false, lastBook:null, bookCentered:false, lastCheck:null, marketActive:true, marketPhase:null, symbolsCache:null, pendingMaxOnSell:false, pendingMaxOnBuy:false, accStatus:null, sellChoice:null }; var state = { code:'', name:'', side:'BUY', pollTimer:null, countdownTimer:null, expiryAt:0, isOpen:false, lastBook:null, bookCentered:false, lastCheck:null, marketActive:true, marketPhase:null, symbolsCache:null, pendingMaxOnSell:false, pendingMaxOnBuy:false, accStatus:null, sellChoice:null, advice:null, adviceKey:null };
function $(sel, root){ return (root||modal).querySelector(sel); } function $(sel, root){ return (root||modal).querySelector(sel); }
function $$(sel, root){ return (root||modal).querySelectorAll(sel); } function $$(sel, root){ return (root||modal).querySelectorAll(sel); }
function $p(sel){ return pinModal ? pinModal.querySelector(sel) : null; } function $p(sel){ return pinModal ? pinModal.querySelector(sel) : null; }
function $a(sel){ return adviceModal ? adviceModal.querySelector(sel) : null; }
function fmt(n){ if(!isFinite(n)) return ''; return (Math.round(n)||0).toLocaleString('ko-KR'); } function fmt(n){ if(!isFinite(n)) return ''; return (Math.round(n)||0).toLocaleString('ko-KR'); }
function highlightSelectedTick(){ function highlightSelectedTick(){
var inp = $('[data-order-price-input]'); var inp = $('[data-order-price-input]');
@@ -10088,7 +10318,21 @@ function setSide(side){
// BUY max 계산엔 price 필요 비어있으면 호가창 현재가로 즉시 채움 // BUY max 계산엔 price 필요 비어있으면 호가창 현재가로 즉시 채움
_resolveOrderPrice(); _resolveOrderPrice();
} }
refreshStopUI(); // 스톱지정가(매도 전용) 옵션·입력행 side에 맞게 갱신
updateCheck(); updateCheck();
fetchAdvice(); // 매수/매도 방향에 따라 권장가 세트가 다름
}
// 스톱지정가는 매도 전용 매수면 옵션 비활성+선택돼 있으면 LIMIT로 되돌림. 조건단가 ·단가 라벨 갱신.
function refreshStopUI(){
var otSel = $('[data-order-type]'); if(!otSel) return;
var stopOpt = otSel.querySelector('option[value="STOP_LIMIT"]');
if(stopOpt) stopOpt.disabled = (state.side === 'BUY');
if(state.side === 'BUY' && otSel.value === 'STOP_LIMIT') otSel.value = 'LIMIT';
var isStop = (otSel.value === 'STOP_LIMIT');
var stopRow = $('[data-order-stop-row]');
if(stopRow) stopRow.style.display = isStop ? '' : 'none';
var priceLabel = $('[data-order-price-label]');
if(priceLabel) priceLabel.textContent = isStop ? '매도 단가' : '단가';
} }
function _resolveOrderPrice(){ function _resolveOrderPrice(){
// 단가 우선, 없으면 현재가 fallback. 단가 input 비어있으면 자동 채움 (disabled 아닌 경우) // 단가 우선, 없으면 현재가 fallback. 단가 input 비어있으면 자동 채움 (disabled 아닌 경우)
@@ -10169,20 +10413,21 @@ function renderBook(book){
var inBook = false; var inBook = false;
for(var t=0;t<asks.length;t++){ if(asks[t].price===cur) inBook=true; } for(var t=0;t<asks.length;t++){ if(asks[t].price===cur) inBook=true; }
for(var u=0;u<bids.length;u++){ if(bids[u].price===cur) inBook=true; } for(var u=0;u<bids.length;u++){ if(bids[u].price===cur) inBook=true; }
var html = ''; var specs = [];
if(book.upper_limit > 0) html += capRowHtml(book.upper_limit, 'up'); // 상한가 if(book.upper_limit > 0) specs.push(capRowSpec(book.upper_limit, 'up')); // 상한가
if(cur > 0 && !inBook){ if(cur > 0 && !inBook){
// 현재가가 20호가 어디에도 없음 현재가 중심 사다리로 재구성(잔량은 겹치는 호가에 표시). // 현재가가 20호가 어디에도 없음 현재가 중심 사다리로 재구성(잔량은 겹치는 호가에 표시).
html += buildCenteredRows(asks, bids, cur); specs = specs.concat(buildCenteredSpecs(asks, bids, cur));
} else { } else {
// 평소: 매도10 + 매수10 (=20). 현재가는 일치 호가에 하이라이트. // 평소: 매도10 + 매수10 (=20). 현재가는 일치 호가에 하이라이트.
for(var i2=0;i2<asks.length;i2++){ var a=asks[i2]; for(var i2=0;i2<asks.length;i2++){ var a=asks[i2];
html += '<div class="ob-row ask'+(a.price===cur?' ob-current':'')+'" data-ob-price="'+a.price+'"><span class="price">'+fmt(a.price)+'</span><span class="qty">'+fmt(a.qty)+'</span></div>'; } specs.push({key:String(a.price), cls:'ob-row ask'+(a.price===cur?' ob-current':''), priceHtml:fmt(a.price), qty:fmt(a.qty)}); }
for(var j2=0;j2<bids.length;j2++){ var b=bids[j2]; for(var j2=0;j2<bids.length;j2++){ var b=bids[j2];
html += '<div class="ob-row bid'+(b.price===cur?' ob-current':'')+'" data-ob-price="'+b.price+'"><span class="price">'+fmt(b.price)+'</span><span class="qty">'+fmt(b.qty)+'</span></div>'; } specs.push({key:String(b.price), cls:'ob-row bid'+(b.price===cur?' ob-current':''), priceHtml:fmt(b.price), qty:fmt(b.qty)}); }
} }
if(book.lower_limit > 0) html += capRowHtml(book.lower_limit, 'down'); // 아래 하한가 if(book.lower_limit > 0) specs.push(capRowSpec(book.lower_limit, 'down')); // 아래 하한가
ob.innerHTML = html; // 호가 구조(/가격) 같으면 바뀐 셀만 제자리 갱신 노드·스크롤 유지, 깜빡임 제거
applyRows(ob, specs);
syncMarketPriceInput(book); syncMarketPriceInput(book);
highlightSelectedTick(); updateMarketPhaseDisplay(); decorateAccounts(); highlightSelectedTick(); updateMarketPhaseDisplay(); decorateAccounts();
if(!state.bookCentered){ if(!state.bookCentered){
@@ -10207,8 +10452,68 @@ function tickSize(p){
if(p < 500000) return 500; if(p < 500000) return 500;
return 1000; return 1000;
} }
function snapToTick(p){ if(!(p>0)) return p; var t = tickSize(p); return Math.round(p/t)*t; }
// 기술적 권장가(매수/매도 판단 보조). code·side(·평단) 바뀔 때만 fetch, keystroke엔 캐시 재사용.
function fetchAdvice(){
var code = state.code; if(!code){ renderAdvice(null); return; }
var side = state.side;
var avg = (side === 'SELL' && state.lastCheck && state.lastCheck.avg_price) ? state.lastCheck.avg_price : 0;
var key = code + ':' + side + ':' + avg;
if(state.adviceKey === key){ if(state.advice) renderAdvice(state.advice); return; }
state.adviceKey = key;
var url = '/api/order/advice?code=' + encodeURIComponent(code) + '&side=' + side + (avg ? '&avg_price=' + avg : '');
fetch(url).then(function(r){ return r.json(); }).then(function(d){
if(state.code !== code || state.side !== side) return; // 그새 종목·방향 바뀌면 무시
state.advice = d.advice || null;
renderAdvice(state.advice);
}).catch(function(){ renderAdvice(null); });
}
function renderAdvice(a){
var body = $a('[data-advice-body]');
var titleEl = $a('[data-advice-title]');
if(titleEl) titleEl.textContent = '💡 권장 ' + (state.side==='BUY'?'매수가':'매도가');
if(!body) return;
if(!a || !a.levels || !a.levels.length){
body.innerHTML = '<div class="muted small">권장가 데이터 없음 (신규·ETF 등)</div>';
return;
}
var cur = (state.lastBook && state.lastBook.price) || a.price || 0;
var rsiTag = '';
if(a.rsi != null){ var rz = a.rsi>=70?' 과열':(a.rsi<=30?' 과매도':''); rsiTag = 'RSI ' + a.rsi + rz + ' · '; }
var rows = a.levels.map(function(l){
var rel = cur>0 ? (l.price>cur?' <span class="advice-rel up">▲</span>':(l.price<cur?' <span class="advice-rel dn">▼</span>':'')) : '';
var cls = 'advice-row' + (l.tap?' advice-tap':' advice-info');
var attr = l.tap ? ' data-adv-price="' + l.price + '"' : '';
var tapMark = l.tap ? '<span class="advice-tapmark">▶ 탭</span>' : '';
return '<button type="button" class="' + cls + '"' + attr + '>' +
'<span class="advice-lbl">' + l.label + '</span>' +
'<span class="advice-px">' + fmt(l.price) + rel + '</span>' + tapMark + '</button>';
}).join('');
var hints = a.levels.map(function(l){
return '<li><b>' + l.label + ' ' + fmt(l.price) + '</b> — ' + l.hint + '</li>';
}).join('');
body.innerHTML =
'<div class="advice-sub">' + rsiTag + '현재가 ' + fmt(cur) + ' · 가격을 탭하면 단가에 채워져요</div>' +
'<div class="advice-rows">' + rows + '</div>' +
'<button type="button" class="advice-why" data-adv-why>▸ 근거 설명</button>' +
'<ul class="advice-hints hidden" data-adv-hints>' + hints + '</ul>';
}
function openAdviceModal(){
if(!adviceModal) return;
renderAdvice(state.advice); // 이미 로드된 즉시 렌더
fetchAdvice(); // 미로드/오래됐으면 갱신 (key 동일하면 no-op)
adviceModal.classList.remove('hidden');
adviceModal.setAttribute('aria-hidden', 'false');
document.body.classList.add('modal-open');
}
function closeAdviceModal(){
if(!adviceModal) return;
adviceModal.classList.add('hidden');
adviceModal.setAttribute('aria-hidden', 'true');
if(modal.classList.contains('hidden')) document.body.classList.remove('modal-open');
}
// 현재가가 호가에 없을 : 현재가 중심 ±10 사다리(20). 잔량은 겹치는 호가에만, 현재가 하이라이트. // 현재가가 호가에 없을 : 현재가 중심 ±10 사다리(20). 잔량은 겹치는 호가에만, 현재가 하이라이트.
function buildCenteredRows(asks, bids, cur){ function buildCenteredSpecs(asks, bids, cur){
var qmap = {}; var qmap = {};
for(var i=0;i<asks.length;i++) qmap[asks[i].price] = {q:asks[i].qty, side:'ask'}; for(var i=0;i<asks.length;i++) qmap[asks[i].price] = {q:asks[i].qty, side:'ask'};
for(var j=0;j<bids.length;j++) qmap[bids[j].price] = {q:bids[j].qty, side:'bid'}; for(var j=0;j<bids.length;j++) qmap[bids[j].price] = {q:bids[j].qty, side:'bid'};
@@ -10217,19 +10522,40 @@ function buildCenteredRows(asks, bids, cur){
var dn = [], q = cur; var dn = [], q = cur;
for(var b=0;b<10;b++){ q -= tickSize(q>1?q-1:q); if(q<1) break; dn.push(q); } // 현재가 아래 10 for(var b=0;b<10;b++){ q -= tickSize(q>1?q-1:q); if(q<1) break; dn.push(q); } // 현재가 아래 10
var rows = up.reverse().concat([cur]).concat(dn); // 높은가격 낮은가격 아래 var rows = up.reverse().concat([cur]).concat(dn); // 높은가격 낮은가격 아래
var html = ''; var specs = [];
for(var r=0;r<rows.length;r++){ for(var r=0;r<rows.length;r++){
var pr = rows[r], m = qmap[pr]; var pr = rows[r], m = qmap[pr];
var cls = pr===cur ? 'bid ob-current' : (m ? m.side : ''); var cls = pr===cur ? 'bid ob-current' : (m ? m.side : '');
var qty = m ? fmt(m.q) : ''; specs.push({ key:String(pr), cls:'ob-row '+cls, priceHtml:fmt(pr), qty: m ? fmt(m.q) : '' });
html += '<div class="ob-row '+cls+'" data-ob-price="'+pr+'"><span class="price">'+fmt(pr)+'</span><span class="qty">'+qty+'</span></div>';
} }
return html; return specs;
} }
function capRowHtml(price, dir){ function capRowSpec(price, dir){
var mk = dir==='up' ? '<b class="ob-cap-mark up">상</b> ' : '<b class="ob-cap-mark down">하</b> '; var mk = dir==='up' ? '<b class="ob-cap-mark up">상</b> ' : '<b class="ob-cap-mark down">하</b> ';
var lab = dir==='up' ? '상한' : '하한'; var lab = dir==='up' ? '상한' : '하한';
return '<div class="ob-row ob-cap ob-cap-'+dir+'" data-ob-price="'+price+'"><span class="price">'+mk+fmt(price)+'</span><span class="qty">'+lab+'</span></div>'; return { key:String(price), cls:'ob-row ob-cap ob-cap-'+dir, priceHtml: mk+fmt(price), qty: lab };
}
// 호가 반영. 구조(행수·가격열) 직전과 같으면 바뀐 셀만 제자리 갱신(노드 유지 깜빡임·스크롤 없음), 다르면 1 전체 재생성.
function applyRows(ob, specs){
var kids = ob.children;
var same = kids.length === specs.length;
if(same){
for(var i=0;i<specs.length;i++){ if(kids[i].getAttribute('data-ob-price') !== specs[i].key){ same=false; break; } }
}
if(!same){
var h='';
for(var k=0;k<specs.length;k++){ var s=specs[k];
h += '<div class="'+s.cls+'" data-ob-price="'+s.key+'"><span class="price">'+s.priceHtml+'</span><span class="qty">'+s.qty+'</span></div>'; }
ob.innerHTML = h;
return;
}
for(var j=0;j<specs.length;j++){
var row=kids[j], sp=specs[j];
if(row.className !== sp.cls) row.className = sp.cls;
var pe=row.children[0], qe=row.children[1];
if(pe && pe.innerHTML !== sp.priceHtml) pe.innerHTML = sp.priceHtml;
if(qe && qe.textContent !== sp.qty) qe.textContent = sp.qty;
}
} }
function pollOnce(){ function pollOnce(){
if(document.hidden || !state.isOpen || !state.code) return; if(document.hidden || !state.isOpen || !state.code) return;
@@ -10262,6 +10588,7 @@ function updateCheck(){
if(qtyInpB){ qtyInpB.value = d.max_qty; state.pendingMaxOnBuy = false; recalcBudgetFromQty(); } if(qtyInpB){ qtyInpB.value = d.max_qty; state.pendingMaxOnBuy = false; recalcBudgetFromQty(); }
} }
renderOrderInfo(); renderOrderInfo();
fetchAdvice(); // SELL 평단(avg_price) 확보 권장가 갱신 key 동일하면 재fetch
}).catch(function(){}); }).catch(function(){});
} }
function renderOrderInfo(){ function renderOrderInfo(){
@@ -10272,12 +10599,16 @@ function renderOrderInfo(){
var amount = price * qty; var amount = price * qty;
var orderType = (($('[data-order-type]')||{}).value || 'LIMIT'); var orderType = (($('[data-order-type]')||{}).value || 'LIMIT');
if(state.side === 'BUY'){ if(state.side === 'BUY'){
var avail = (typeof d.avail_cash === 'number') ? d.avail_cash : (d.d2_entra||0);
var lines = [ var lines = [
'매수가능액 (D+2 예수금): <b>'+fmt(d.d2_entra||0)+'</b>원' '매수가능액: <b>'+fmt(avail)+'</b>원'
]; ];
if((d.pending_buy_locked||0) > 0){
lines.push('<span class="muted small">D+2 예수금 '+fmt(d.d2_entra||0)+' 매수대기 '+fmt(d.pending_buy_locked)+'원</span>');
}
if(orderType === 'MARKET' && d.upper_limit){ if(orderType === 'MARKET' && d.upper_limit){
var needed = (d.upper_limit||0) * qty; var needed = (d.upper_limit||0) * qty;
var overCls = (needed > (d.d2_entra||0)) ? ' class="qty-over"' : ''; var overCls = (needed > avail) ? ' class="qty-over"' : '';
lines.push('필요증거금<span class="muted small"> (상한가 '+fmt(d.upper_limit)+'원 기준)</span>: <b'+overCls+'>'+fmt(needed)+'</b>원 ('+fmt(qty)+'주)'); lines.push('필요증거금<span class="muted small"> (상한가 '+fmt(d.upper_limit)+'원 기준)</span>: <b'+overCls+'>'+fmt(needed)+'</b>원 ('+fmt(qty)+'주)');
} else { } else {
lines.push('주문예상액: <b>'+fmt(amount)+'</b>원 ('+fmt(qty)+'주)'); lines.push('주문예상액: <b>'+fmt(amount)+'</b>원 ('+fmt(qty)+'주)');
@@ -10524,6 +10855,7 @@ function onSymbolChange(){
state.lastBook = null; state.lastBook = null;
state.lastCheck = null; state.lastCheck = null;
state.bookCentered = false; state.bookCentered = false;
state.advice = null; state.adviceKey = null; renderAdvice(null);
// 모달 표시 갱신 // 모달 표시 갱신
var ne = $('[data-order-name]'); if(ne) ne.textContent = name; var ne = $('[data-order-name]'); if(ne) ne.textContent = name;
var cd = $('[data-order-code-display]'); if(cd) cd.textContent = '('+code+')'; var cd = $('[data-order-code-display]'); if(cd) cd.textContent = '('+code+')';
@@ -10532,6 +10864,9 @@ function onSymbolChange(){
if(ob) ob.innerHTML = '<div class="loading" style="padding:30px 0;"><div class="loading-spin"></div>호가 로딩중…</div>'; if(ob) ob.innerHTML = '<div class="loading" style="padding:30px 0;"><div class="loading-spin"></div>호가 로딩중…</div>';
$('[data-order-price-input]').value = ''; $('[data-order-price-input]').value = '';
$('[data-order-qty]').value = ''; $('[data-order-qty]').value = '';
var stopInp = $('[data-order-stop-input]'); if(stopInp) stopInp.value = '';
// 종목 변경 스톱지정가는 해제 이전 종목 트리거가 종목에 잘못 적용 방지
var otSelR = $('[data-order-type]'); if(otSelR && otSelR.value === 'STOP_LIMIT'){ otSelR.value = 'LIMIT'; refreshStopUI(); }
var budgetInp = $('[data-order-budget]'); var budgetInp = $('[data-order-budget]');
if(budgetInp) budgetInp.value = ''; if(budgetInp) budgetInp.value = '';
// 종목 변경 max로 자동 채움 (SELL: 보유 100%, BUY: 매수가능 max) // 종목 변경 max로 자동 채움 (SELL: 보유 100%, BUY: 매수가능 max)
@@ -10542,6 +10877,7 @@ function onSymbolChange(){
fetchAccountStatus(); fetchAccountStatus();
pollOnce(); pollOnce();
updateCheck(); updateCheck();
fetchAdvice();
} }
function fillAccounts(allowed){ function fillAccounts(allowed){
var sel = $('[data-order-account]'); if(!sel) return; var sel = $('[data-order-account]'); if(!sel) return;
@@ -10566,7 +10902,8 @@ function decorateAccounts(){
opt.textContent = base + (q > 0 ? ' · ' + fmt(q) + '' : ' · 미보유'); opt.textContent = base + (q > 0 ? ' · ' + fmt(q) + '' : ' · 미보유');
opt.style.color = q > 0 ? '#f0f0f0' : '#ff6b75'; opt.style.color = q > 0 ? '#f0f0f0' : '#ff6b75';
} else { } else {
var ok = price > 0 ? (a.d2_entra >= price) : (a.d2_entra > 0); var avail = (typeof a.avail_cash === 'number') ? a.avail_cash : (a.d2_entra || 0);
var ok = price > 0 ? (avail >= price) : (avail > 0);
opt.textContent = base + (ok ? '' : ' · ⚠ 부족'); opt.textContent = base + (ok ? '' : ' · ⚠ 부족');
opt.style.color = ok ? '#f0f0f0' : '#ff6b75'; opt.style.color = ok ? '#f0f0f0' : '#ff6b75';
} }
@@ -10647,6 +10984,7 @@ function openModal(opts){
} }
function closeModal(){ function closeModal(){
state.isOpen = false; stopPolling(); state.isOpen = false; stopPolling();
if(adviceModal && !adviceModal.classList.contains('hidden')) closeAdviceModal();
modal.classList.add('hidden'); modal.classList.add('hidden');
modal.setAttribute('aria-hidden', 'true'); modal.setAttribute('aria-hidden', 'true');
// pin-modal이 있을 때만 body unlock // pin-modal이 있을 때만 body unlock
@@ -10708,9 +11046,17 @@ function doPropose(){
var orderType = $('[data-order-type]').value; var orderType = $('[data-order-type]').value;
var qty = parseInt($('[data-order-qty]').value || '0', 10); var qty = parseInt($('[data-order-qty]').value || '0', 10);
var price = parseInt($('[data-order-price-input]').value || '0', 10); var price = parseInt($('[data-order-price-input]').value || '0', 10);
var stopPrice = parseInt(($('[data-order-stop-input]')||{}).value || '0', 10);
if(!account){ setMsg('계좌를 선택하세요', 'error'); return; } if(!account){ setMsg('계좌를 선택하세요', 'error'); return; }
if(qty <= 0){ setMsg('수량을 입력하세요', 'error'); return; } if(qty <= 0){ setMsg('수량을 입력하세요', 'error'); return; }
if(orderType === 'LIMIT' && price <= 0){ setMsg('지정가는 단가가 필요합니다', 'error'); return; } if(orderType === 'LIMIT' && price <= 0){ setMsg('지정가는 단가가 필요합니다', 'error'); return; }
if(orderType === 'STOP_LIMIT'){
if(state.side !== 'SELL'){ setMsg('스톱지정가는 매도만 가능합니다', 'error'); return; }
if(price <= 0){ setMsg('스톱지정가는 매도 단가가 필요합니다', 'error'); return; }
if(stopPrice <= 0){ setMsg('조건단가(트리거 가격)를 입력하세요', 'error'); return; }
var curP = (state.lastCheck && state.lastCheck.cur_price) || (state.lastBook && state.lastBook.price) || 0;
if(curP && stopPrice >= curP){ setMsg('조건단가는 현재가(' + fmt(curP) + '원)보다 낮아야 합니다', 'error'); return; }
}
// 클라이언트 사전 차단 서버 왕복 없이 즉시 에러 (PIN 발급 토스트 깜빡임 방지) // 클라이언트 사전 차단 서버 왕복 없이 즉시 에러 (PIN 발급 토스트 깜빡임 방지)
var lc = state.lastCheck; var lc = state.lastCheck;
if(lc && typeof lc.max_qty === 'number' && lc.max_qty >= 0 && qty > lc.max_qty){ if(lc && typeof lc.max_qty === 'number' && lc.max_qty >= 0 && qty > lc.max_qty){
@@ -10718,15 +11064,25 @@ function doPropose(){
var basis = (orderType === 'MARKET' && lc.upper_limit) ? '상한가' : '단가'; var basis = (orderType === 'MARKET' && lc.upper_limit) ? '상한가' : '단가';
var ref = (orderType === 'MARKET' && lc.upper_limit) ? lc.upper_limit : price; var ref = (orderType === 'MARKET' && lc.upper_limit) ? lc.upper_limit : price;
var needed = ref * qty; var needed = ref * qty;
setMsg('예수금 부족 — 필요 ' + needed.toLocaleString() + '원 (' + basis + ' ' + (ref||0).toLocaleString() + '× ' + qty + '주) / 가용 ' + (lc.d2_entra||0).toLocaleString() + '\n최대 ' + lc.max_qty + '주까지 매수 가능', 'error'); var availC = (typeof lc.avail_cash === 'number') ? lc.avail_cash : (lc.d2_entra||0);
setMsg('예수금 부족 — 필요 ' + needed.toLocaleString() + '원 (' + basis + ' ' + (ref||0).toLocaleString() + '× ' + qty + '주) / 가용 ' + availC.toLocaleString() + '\n최대 ' + lc.max_qty + '주까지 매수 가능', 'error');
} else { } else {
setMsg('보유 부족 — 매도 ' + qty + '주 / 매도가능 ' + lc.max_qty + '', 'error'); setMsg('보유 부족 — 매도 ' + qty + '주 / 매도가능 ' + lc.max_qty + '', 'error');
} }
return; return;
} }
// 검증 통과 매수/매도 방향 최종 확인 팝업 (오타 방지). 확인 시에만 실제 매매로 진행.
state.pendingOrder = {account: account, orderType: orderType, qty: qty, price: price, stopPrice: stopPrice};
openOrderConfirm();
}
// 방향 확인 실제 매매 진행 전량매도 sell-choice 분기 포함.
function doProposeConfirmed(){
var po = state.pendingOrder; if(!po) return;
var account = po.account, orderType = po.orderType, qty = po.qty, price = po.price;
var lc = state.lastCheck;
// 전량매도(입력 수량 = 매도가능 전량)이고 같은 소유자 그룹의 다른 계좌에도 같은 종목 보유 // 전량매도(입력 수량 = 매도가능 전량)이고 같은 소유자 그룹의 다른 계좌에도 같은 종목 보유
// 선택 팝업 ( 계좌 모두 / 선택 계좌 / 취소). 일부매도 팝업 없이 단일 진행. // 선택 팝업. 스톱지정가는 단일 계좌 예약이라 2계좌 동시 매도 대상 아님.
if(state.side === 'SELL'){ if(state.side === 'SELL' && orderType !== 'STOP_LIMIT'){
var fullSell = lc && typeof lc.max_qty === 'number' && lc.max_qty > 0 && qty === lc.max_qty; var fullSell = lc && typeof lc.max_qty === 'number' && lc.max_qty > 0 && qty === lc.max_qty;
var sib = siblingAccount(account); var sib = siblingAccount(account);
var sibInfo = (sib && state.accStatus && state.accStatus.byLabel) ? state.accStatus.byLabel[sib] : null; var sibInfo = (sib && state.accStatus && state.accStatus.byLabel) ? state.accStatus.byLabel[sib] : null;
@@ -10736,7 +11092,58 @@ function doPropose(){
return; return;
} }
} }
proposeSingle(account, orderType, qty, price); proposeSingle(account, orderType, qty, price, po.stopPrice);
}
// 매수/매도 방향 확인 모달
// 매수·매도 버튼을 띄우고 관리자님이 직접 맞는 방향을 누르게 (위치 랜덤).
// 주문 방향(state.side) 일치하면 진행, 다르면 팝업 닫고 취소.
function $oc(sel){ return orderConfirmModal ? orderConfirmModal.querySelector(sel) : null; }
function openOrderConfirm(){
if(!orderConfirmModal){ doProposeConfirmed(); return; }
var po = state.pendingOrder; if(!po) return;
var disp = {}; ACCOUNTS.forEach(function(a){ disp[a.label] = a.display; });
var isStop = (po.orderType === 'STOP_LIMIT');
var typeStr = (po.orderType === 'MARKET') ? '시장가' : (isStop ? '스톱지정가(예약)' : '지정가');
var priceStr = (po.orderType === 'MARKET') ? '시장가' : (fmt(po.price) + '');
var sum = $oc('[data-order-confirm-summary]');
if(sum){
// 매도 예상 수수료(수수료+증권거래세) 표시용 근사. 요율은 sim/config.py와 동일.
var feeLine = '';
if(state.side === 'SELL'){
var refPrice = (po.orderType === 'MARKET') ? ((state.lastCheck && state.lastCheck.cur_price) || 0) : po.price;
var amount = refPrice * po.qty;
var fee = Math.round(amount * (0.00015 + 0.0018)); // 수수료 0.015% + 거래세 0.18%
if(amount > 0){
feeLine = '· 예상 수수료: <b>' + fmt(fee) + '원</b> <span class="muted small">(체결 시 확정)</span><br>';
}
}
var stopLine = isStop ? ('· 조건단가: <b>' + fmt(po.stopPrice) + '원 도달 시</b> <span class="muted small">(예약)</span><br>') : '';
// 방향은 일부러 숨김 관리자님이 직접 고르게 해야 오타가 걸러짐.
sum.innerHTML = '<b>' + (state.name || state.code) + '</b><br>' +
'· 계좌: <b>' + (disp[po.account]||po.account) + '</b><br>' +
'· 유형: <b>' + typeStr + '</b><br>' +
stopLine +
'· ' + (isStop ? '매도 단가' : '단가') + ': <b>' + priceStr + '</b><br>' +
'· 수량: <b>' + fmt(po.qty) + '주</b><br>' +
feeLine + '<br>' +
'<b>매수 / 매도</b> 중 하려던 것을 눌러주세요.';
}
// 매수·매도 버튼 위치를 랜덤으로 섞어 습관적 오탭 방지 (CSS order)
var buyBtn = $oc('[data-order-confirm-side="BUY"]');
var sellBtn = $oc('[data-order-confirm-side="SELL"]');
if(buyBtn && sellBtn){
var buyFirst = Math.random() < 0.5;
buyBtn.style.order = buyFirst ? '1' : '2';
sellBtn.style.order = buyFirst ? '2' : '1';
}
orderConfirmModal.classList.remove('hidden');
orderConfirmModal.setAttribute('aria-hidden', 'false');
}
function closeOrderConfirm(){
if(!orderConfirmModal) return;
orderConfirmModal.classList.add('hidden');
orderConfirmModal.setAttribute('aria-hidden', 'true');
if(modal.classList.contains('hidden') && (!pinModal || pinModal.classList.contains('hidden'))) document.body.classList.remove('modal-open');
} }
function siblingAccount(label){ function siblingAccount(label){
var me = ACCOUNTS.find(function(a){ return a.label === label; }); var me = ACCOUNTS.find(function(a){ return a.label === label; });
@@ -10744,7 +11151,7 @@ function siblingAccount(label){
var sib = ACCOUNTS.find(function(a){ return a.owner === me.owner && a.label !== label; }); var sib = ACCOUNTS.find(function(a){ return a.owner === me.owner && a.label !== label; });
return sib ? sib.label : null; return sib ? sib.label : null;
} }
function proposeSingle(account, orderType, qty, price){ function proposeSingle(account, orderType, qty, price, stopPrice){
var body = new URLSearchParams(); var body = new URLSearchParams();
body.set('account', account); body.set('account', account);
body.set('side', state.side); body.set('side', state.side);
@@ -10752,7 +11159,8 @@ function proposeSingle(account, orderType, qty, price){
body.set('symbol_name', state.name); body.set('symbol_name', state.name);
body.set('qty', String(qty)); body.set('qty', String(qty));
body.set('order_type', orderType); body.set('order_type', orderType);
if(orderType === 'LIMIT') body.set('price', String(price)); if(orderType === 'LIMIT' || orderType === 'STOP_LIMIT') body.set('price', String(price));
if(orderType === 'STOP_LIMIT') body.set('stop_price', String(stopPrice || 0));
proposeAndOpenPin('/api/order/propose', body); proposeAndOpenPin('/api/order/propose', body);
} }
function doProposeMulti(opts){ function doProposeMulti(opts){
@@ -10874,6 +11282,8 @@ modal.addEventListener('click', function(e){
} }
var qtyBtn = t.closest && t.closest('[data-qty-step]'); var qtyBtn = t.closest && t.closest('[data-qty-step]');
if(qtyBtn){ gotoQty(qtyBtn.getAttribute('data-qty-step')); return; } if(qtyBtn){ gotoQty(qtyBtn.getAttribute('data-qty-step')); return; }
var advOpen = t.closest && t.closest('[data-advice-open]');
if(advOpen){ openAdviceModal(); return; }
var obRow = t.closest && t.closest('.ob-row'); var obRow = t.closest && t.closest('.ob-row');
if(obRow){ if(obRow){
var p = parseInt(obRow.getAttribute('data-ob-price') || '0', 10); var p = parseInt(obRow.getAttribute('data-ob-price') || '0', 10);
@@ -10902,6 +11312,31 @@ if(pinModal) pinModal.addEventListener('click', function(e){
if(t.classList && t.classList.contains('modal-close')){ closePinModal(); return; } if(t.classList && t.classList.contains('modal-close')){ closePinModal(); return; }
if(t.matches && t.matches('[data-pin-verify]')){ doVerify(); return; } if(t.matches && t.matches('[data-pin-verify]')){ doVerify(); return; }
}); });
// 권장가 팝업 click 핸들러 가격 단가 채우고 팝업 닫기, 근거 토글
if(adviceModal) adviceModal.addEventListener('click', function(e){
var t = e.target;
if(t.getAttribute && t.getAttribute('data-modal-close')==='1'){ closeAdviceModal(); return; }
if(t.classList && t.classList.contains('modal-close')){ closeAdviceModal(); return; }
var advWhy = t.closest && t.closest('[data-adv-why]');
if(advWhy){
var hints = $a('[data-adv-hints]');
if(hints){ hints.classList.toggle('hidden'); advWhy.textContent = hints.classList.contains('hidden') ? '▸ 근거 설명' : '▾ 근거 설명'; }
return;
}
var advTap = t.closest && t.closest('.advice-tap');
if(advTap){
var ap = parseInt(advTap.getAttribute('data-adv-price') || '0', 10);
if(ap > 0){
// 권장가는 특정 단가 지정가로 채움 (시장가면 LIMIT로 전환해 입력칸 활성화)
var typeSel = $('[data-order-type]');
if(typeSel && typeSel.value !== 'LIMIT'){ typeSel.value = 'LIMIT'; typeSel.dispatchEvent(new Event('change')); }
var inp = $('[data-order-price-input]');
if(inp){ inp.disabled = false; inp.value = snapToTick(ap); updateCheck(); highlightSelectedTick(); recalcQtyFromBudget(); }
}
closeAdviceModal();
return;
}
});
// 매도 계좌 선택 모달 click 핸들러 // 매도 계좌 선택 모달 click 핸들러
if(sellChoiceModal) sellChoiceModal.addEventListener('click', function(e){ if(sellChoiceModal) sellChoiceModal.addEventListener('click', function(e){
var t = e.target; var t = e.target;
@@ -10918,14 +11353,34 @@ if(sellChoiceModal) sellChoiceModal.addEventListener('click', function(e){
return; return;
} }
}); });
// 매수/매도 방향 확인 모달 click 핸들러
if(orderConfirmModal) orderConfirmModal.addEventListener('click', function(e){
var t = e.target;
if(t.getAttribute && t.getAttribute('data-modal-close')==='1'){ closeOrderConfirm(); return; }
var sideBtn = t.closest && t.closest('[data-order-confirm-side]');
if(sideBtn){
var picked = sideBtn.getAttribute('data-order-confirm-side');
closeOrderConfirm();
if(picked === state.side){
doProposeConfirmed();
} else {
// 방향 불일치 오타로 판단, 매매 취소
showToast('⚠️ 방향이 주문과 달라 취소했어요. 다시 확인해 주세요.', 'error', 4500);
}
return;
}
});
var accSel = $('[data-order-account]'); if(accSel) accSel.addEventListener('change', updateCheck); var accSel = $('[data-order-account]'); if(accSel) accSel.addEventListener('change', updateCheck);
var symSel = $('[data-order-symbol-select]'); if(symSel) symSel.addEventListener('change', onSymbolChange); var symSel = $('[data-order-symbol-select]'); if(symSel) symSel.addEventListener('change', onSymbolChange);
var otSel = $('[data-order-type]'); var otSel = $('[data-order-type]');
if(otSel) otSel.addEventListener('change', function(){ if(otSel) otSel.addEventListener('change', function(){
// 스톱지정가는 매도 전용 선택 매도로 전환 (setSide가 refreshStopUI+updateCheck 수행)
if(otSel.value === 'STOP_LIMIT' && state.side !== 'SELL'){ setSide('SELL'); return; }
var isMarket = (otSel.value === 'MARKET'); var isMarket = (otSel.value === 'MARKET');
var inp = $('[data-order-price-input]'); var inp = $('[data-order-price-input]');
if(inp) inp.disabled = isMarket; if(inp) inp.disabled = isMarket;
$$('[data-tick-dir]').forEach(function(b){ b.disabled = isMarket; }); $$('[data-tick-dir]').forEach(function(b){ b.disabled = isMarket; });
refreshStopUI();
// 주문유형 토글 max_qty 기준이 바뀜 (MARKET=상한가, LIMIT=단가) 재조회 // 주문유형 토글 max_qty 기준이 바뀜 (MARKET=상한가, LIMIT=단가) 재조회
updateCheck(); updateCheck();
}); });
@@ -10946,8 +11401,8 @@ document.addEventListener('click', function(e){
if(subOrderBtn){ if(subOrderBtn){
function openWithFirst(items){ function openWithFirst(items){
var first = (items || []).find(function(it){ return it.source === '보유' && it.owner === '본인'; }); var first = (items || []).find(function(it){ return it.source === '보유' && it.owner === '본인'; });
// 보유종목을 자동선택하므로 거래버튼과 동일 규칙으로 매도 진입. 보유분 없으면 모달(매수 기본). // 보유종목을 자동선택하 항상 매수 기본(오타 방지). 매도 모달에서 토글. 보유분 없으면 모달.
if(first){ openModal({code: first.code, name: first.name, side: 'SELL'}); } if(first){ openModal({code: first.code, name: first.name, side: 'BUY'}); }
else { openModal({code: '', name: ''}); } else { openModal({code: '', name: ''}); }
} }
if(state.symbolsCache){ openWithFirst(state.symbolsCache); } if(state.symbolsCache){ openWithFirst(state.symbolsCache); }
@@ -11256,9 +11711,11 @@ window.openPinModal = openPinModal;
{trade_modal_html} {trade_modal_html}
{info_modal_html} {info_modal_html}
{info_desc_modal_html} {info_desc_modal_html}
{advice_modal_html}
{order_modal_html} {order_modal_html}
{pin_modal_html} {pin_modal_html}
{sell_choice_modal_html} {sell_choice_modal_html}
{order_confirm_modal_html}
{open_orders_modal_html} {open_orders_modal_html}
{stock_name_modal_html} {stock_name_modal_html}
{ptr_script} {ptr_script}
@@ -11826,6 +12283,26 @@ class Handler(BaseHTTPRequestHandler):
except Exception as e: except Exception as e:
self._send_json(200, {'results': [], 'error': str(e)}) self._send_json(200, {'results': [], 'error': str(e)})
return return
if parsed.path == '/api/order/advice':
# 거래 모달용: 종목·side 기술적 권장 매수가/매도가 + 근거(이평·ATR). 매도는 avg_price(평단) 선택.
qs = parse_qs(parsed.query)
code = ''.join(ch for ch in (qs.get('code') or [''])[0].strip() if ch.isalnum())
side = (qs.get('side') or [''])[0].strip().upper()
try:
avg_price = int((qs.get('avg_price') or ['0'])[0].strip() or '0') or None
except ValueError:
avg_price = None
if not code or side not in ('BUY', 'SELL'):
self._send_json(400, {'error': 'code required, side=BUY|SELL'})
return
try:
advice = _price_advice(code, side, avg_price)
except Exception as e:
traceback.print_exc()
self._send_json(500, {'error': f'order/advice failed: {e}'})
return
self._send_json(200, {'code': code, 'side': side, 'advice': advice})
return
if parsed.path == '/api/order/check': if parsed.path == '/api/order/check':
# 거래 모달용: 계좌·종목·side(BUY/SELL)·order_type·단가(선택) 받아서 # 거래 모달용: 계좌·종목·side(BUY/SELL)·order_type·단가(선택) 받아서
# 최대 거래 가능 주수, 잔액·보유주수·평단가, 매도 시 손익 미리보기 반환. # 최대 거래 가능 주수, 잔액·보유주수·평단가, 매도 시 손익 미리보기 반환.
@@ -11835,7 +12312,7 @@ class Handler(BaseHTTPRequestHandler):
account = (qs.get('account') or [''])[0].strip() account = (qs.get('account') or [''])[0].strip()
side = (qs.get('side') or [''])[0].strip().upper() side = (qs.get('side') or [''])[0].strip().upper()
order_type = (qs.get('order_type') or ['LIMIT'])[0].strip().upper() or 'LIMIT' order_type = (qs.get('order_type') or ['LIMIT'])[0].strip().upper() or 'LIMIT'
if order_type not in ('LIMIT', 'MARKET', 'AGGRESSIVE_LIMIT'): if order_type not in ('LIMIT', 'MARKET', 'AGGRESSIVE_LIMIT', 'STOP_LIMIT'):
order_type = 'LIMIT' order_type = 'LIMIT'
try: try:
price = int((qs.get('price') or ['0'])[0].strip() or '0') price = int((qs.get('price') or ['0'])[0].strip() or '0')
@@ -11854,8 +12331,13 @@ class Handler(BaseHTTPRequestHandler):
# 동일. kt00001 ord_alow_amt는 오늘 즉시현금(entr)만 잡혀 매도결제분(D+2)을 빠뜨려 # 동일. kt00001 ord_alow_amt는 오늘 즉시현금(entr)만 잡혀 매도결제분(D+2)을 빠뜨려
# max_qty가 과소 계산되고 "예수금 부족" 오탐을 냈다. ord_alow_amt는 참고 표시용만 유지. # max_qty가 과소 계산되고 "예수금 부족" 오탐을 냈다. ord_alow_amt는 참고 표시용만 유지.
d2 = int(bal.get('d2_entra') or 0) d2 = int(bal.get('d2_entra') or 0)
# d2_entra는 미체결 매수 지정가로 묶인 예수금을 아직 포함 → 실제 가용액에서 차감.
locked = _pending_buy_lock(account)
avail = max(0, d2 - locked)
result['ord_alow_amt'] = int(bal.get('ord_alow_amt') or 0) result['ord_alow_amt'] = int(bal.get('ord_alow_amt') or 0)
result['d2_entra'] = d2 result['d2_entra'] = d2
result['pending_buy_locked'] = locked
result['avail_cash'] = avail
if order_type == 'MARKET': if order_type == 'MARKET':
# 키움 시장가 매수 증거금 = 상한가 × qty. 같은 기준으로 max_qty 표시. # 키움 시장가 매수 증거금 = 상한가 × qty. 같은 기준으로 max_qty 표시.
try: try:
@@ -11865,24 +12347,29 @@ class Handler(BaseHTTPRequestHandler):
except Exception: except Exception:
upper = 0 upper = 0
result['upper_limit'] = upper result['upper_limit'] = upper
result['max_qty'] = (d2 // upper) if upper > 0 else 0 result['max_qty'] = (avail // upper) if upper > 0 else 0
else: else:
result['max_qty'] = (d2 // price) if price > 0 else 0 result['max_qty'] = (avail // price) if price > 0 else 0
else: # SELL else: # SELL
positions = kc.get_positions(account) positions = kc.get_positions(account)
pos = next((p for p in positions if p['code'] == code), None) pos = next((p for p in positions if p['code'] == code), None)
if pos: if pos:
# trde_able_qty가 미체결 매도를 이미 제외하는지 불확실 → min으로 이중차감 방지.
# (제외됨: trde_able ≤ 보유−미체결, min=trde_able 유지 / 미제외: min=보유−미체결)
pend_sell = _pending_sell_qty(account, code)
sellable = max(0, min(pos['trde_able_qty'], pos['qty'] - pend_sell))
result['hold_qty'] = pos['qty'] result['hold_qty'] = pos['qty']
result['trde_able_qty'] = pos['trde_able_qty'] result['trde_able_qty'] = sellable
result['pending_sell_qty'] = pend_sell
result['avg_price'] = pos['avg_price'] result['avg_price'] = pos['avg_price']
result['cur_price'] = pos['cur_price'] result['cur_price'] = pos['cur_price']
result['max_qty'] = pos['trde_able_qty'] result['max_qty'] = sellable
# 선택 단가 기준 손익 미리보기 — 단가 0이면 현재가 fallback # 선택 단가 기준 손익 미리보기 — 단가 0이면 현재가 fallback
ref_price = price or pos['cur_price'] ref_price = price or pos['cur_price']
result['pl_preview'] = (ref_price - pos['avg_price']) * result['max_qty'] result['pl_preview'] = (ref_price - pos['avg_price']) * result['max_qty']
else: else:
result.update({'hold_qty': 0, 'trde_able_qty': 0, 'avg_price': 0, result.update({'hold_qty': 0, 'trde_able_qty': 0, 'pending_sell_qty': 0,
'cur_price': 0, 'max_qty': 0, 'pl_preview': 0}) 'avg_price': 0, 'cur_price': 0, 'max_qty': 0, 'pl_preview': 0})
except Exception as e: except Exception as e:
traceback.print_exc() traceback.print_exc()
self._send_json(500, {'error': f'order/check failed: {e}'}) self._send_json(500, {'error': f'order/check failed: {e}'})
@@ -11910,11 +12397,19 @@ class Handler(BaseHTTPRequestHandler):
p = next((x for x in (pos_by.get(lb, []) or []) if x['code'] == code), None) p = next((x for x in (pos_by.get(lb, []) or []) if x['code'] == code), None)
if p and p.get('cur_price') and not cur_price: if p and p.get('cur_price') and not cur_price:
cur_price = p['cur_price'] cur_price = p['cur_price']
d2 = int(bals[lb].get('d2_entra') or 0)
locked = _pending_buy_lock(lb) # 미체결 매수 묶임 차감
hold = p['qty'] if p else 0
# 매도가능 = min(trde_able, 보유−미체결매도) — check 핸들러와 동일 로직
pend_sell = _pending_sell_qty(lb, code) if p else 0
sellable = max(0, min(p['trde_able_qty'], hold - pend_sell)) if p else 0
accounts.append({ accounts.append({
'label': lb, 'label': lb,
'd2_entra': int(bals[lb].get('d2_entra') or 0), 'd2_entra': d2,
'hold_qty': p['qty'] if p else 0, 'avail_cash': max(0, d2 - locked),
'trde_able_qty': p['trde_able_qty'] if p else 0, 'pending_buy_locked': locked,
'hold_qty': hold,
'trde_able_qty': sellable,
}) })
self._send_json(200, {'code': code, 'cur_price': cur_price, 'accounts': accounts}) self._send_json(200, {'code': code, 'cur_price': cur_price, 'accounts': accounts})
except Exception as e: except Exception as e:
@@ -12318,15 +12813,27 @@ class Handler(BaseHTTPRequestHandler):
price = int(price_raw) if price_raw else None price = int(price_raw) if price_raw else None
except ValueError: except ValueError:
price = None price = None
stop_raw = (params.get('stop_price') or [''])[0].strip()
try:
stop_price = int(stop_raw) if stop_raw else None
except ValueError:
stop_price = None
if not account or side not in ('BUY', 'SELL') or not symbol or qty <= 0: if not account or side not in ('BUY', 'SELL') or not symbol or qty <= 0:
self._send_json(400, {'ok': False, 'error': 'account/side/symbol/qty required'}) self._send_json(400, {'ok': False, 'error': 'account/side/symbol/qty required'})
return return
if order_type not in ('LIMIT', 'MARKET'): if order_type not in ('LIMIT', 'MARKET', 'STOP_LIMIT'):
self._send_json(400, {'ok': False, 'error': 'order_type must be LIMIT|MARKET'}) self._send_json(400, {'ok': False, 'error': 'order_type must be LIMIT|MARKET|STOP_LIMIT'})
return return
if order_type == 'LIMIT' and (price is None or price <= 0): if order_type == 'LIMIT' and (price is None or price <= 0):
self._send_json(400, {'ok': False, 'error': 'LIMIT requires positive price'}) self._send_json(400, {'ok': False, 'error': 'LIMIT requires positive price'})
return return
if order_type == 'STOP_LIMIT':
if side != 'SELL':
self._send_json(400, {'ok': False, 'error': '스톱지정가는 매도만 지원'})
return
if price is None or price <= 0 or stop_price is None or stop_price <= 0:
self._send_json(400, {'ok': False, 'error': '스톱지정가는 단가와 조건단가가 모두 필요'})
return
try: try:
if not symbol_name: if not symbol_name:
import kiwoom_client as kc import kiwoom_client as kc
@@ -12341,7 +12848,8 @@ class Handler(BaseHTTPRequestHandler):
res = handler.propose_trade( res = handler.propose_trade(
account=account, side=side, symbol=symbol, symbol_name=symbol_name, account=account, side=side, symbol=symbol, symbol_name=symbol_name,
qty=qty, order_type=order_type, qty=qty, order_type=order_type,
price=(price if order_type == 'LIMIT' else None), price=(price if order_type in ('LIMIT', 'STOP_LIMIT') else None),
stop_price=(stop_price if order_type == 'STOP_LIMIT' else None),
) )
if res.get('ok'): if res.get('ok'):
# 매수/매도 미리보기 카드 메시지·PIN 메시지 모두 텔레그램 발송 X. # 매수/매도 미리보기 카드 메시지·PIN 메시지 모두 텔레그램 발송 X.
@@ -66,6 +66,8 @@ def format_card(request: dict, market_data: dict, card_id: str,
type_marker = f' {cfg["warning_emoji"]} 시장가' type_marker = f' {cfg["warning_emoji"]} 시장가'
elif request['order_type'] == 'AGGRESSIVE_LIMIT': elif request['order_type'] == 'AGGRESSIVE_LIMIT':
type_marker = f' {cfg["warning_emoji"]} 공격적 지정가' type_marker = f' {cfg["warning_emoji"]} 공격적 지정가'
elif request['order_type'] == 'STOP_LIMIT':
type_marker = f' {cfg["warning_emoji"]} 스톱지정가(예약)'
amend_marker = ' ✏️ 수정됨' if amended else '' amend_marker = ' ✏️ 수정됨' if amended else ''
lines = [f'{side_emoji} {_md_bold(side_word + " 미리보기")} [#{card_id}]{type_marker}{spouse_marker}{amend_marker}', ''] lines = [f'{side_emoji} {_md_bold(side_word + " 미리보기")} [#{card_id}]{type_marker}{spouse_marker}{amend_marker}', '']
@@ -83,6 +85,12 @@ def format_card(request: dict, market_data: dict, card_id: str,
ratio = (request['price'] - market_data['prev_close']) / market_data['prev_close'] * 100 ratio = (request['price'] - market_data['prev_close']) / market_data['prev_close'] * 100
price_part += f' (전일종가 {_pct(ratio)})' price_part += f' (전일종가 {_pct(ratio)})'
lines.append(f'{marker} 가격: {price_part}') lines.append(f'{marker} 가격: {price_part}')
elif request['order_type'] == 'STOP_LIMIT':
stop_p = request.get('stop_price') or 0
cur = market_data.get('current_price')
cur_part = f' (현재가 {_money(cur)})' if cur else ''
lines.append(f'{marker} 조건: {_md_bold(_money(stop_p) + " 도달 시")}{cur_part}')
lines.append(f'{marker} 매도가격: {_md_bold(_money(request["price"]))} (지정가)')
elif request['order_type'] == 'MARKET': elif request['order_type'] == 'MARKET':
lines.append(f'{marker} 가격: {_md_bold("시장가")}') lines.append(f'{marker} 가격: {_md_bold("시장가")}')
else: else:
@@ -156,21 +156,37 @@ def collect_market_data(account_label: str, symbol: str, side: str, qty: int) ->
'stock_meta': stock_meta, 'stock_meta': stock_meta,
} }
try:
open_orders = kc.get_open_orders(account_label)
except Exception:
open_orders = []
if side == 'BUY': if side == 'BUY':
try: try:
bal = kc.get_balance(account_label) bal = kc.get_balance(account_label)
md['balance_d2'] = _to_int(bal.get('d2_entra')) d2 = _to_int(bal.get('d2_entra'))
# d2_entra는 미체결 매수 지정가로 묶인 예수금을 아직 포함 → 실제 가용액에서 차감.
locked = sum(_to_int(o.get('order_price')) * _to_int(o.get('unfilled_qty'))
for o in open_orders
if o.get('side') == 'BUY' and _to_int(o.get('order_price')) > 0)
md['balance_d2'] = max(0, d2 - locked)
except Exception: except Exception:
md['balance_d2'] = 0 md['balance_d2'] = 0
else: else:
try: try:
positions = kc.get_positions(account_label) positions = kc.get_positions(account_label)
md['position_qty'] = next( pos = next((p for p in positions
(_to_int(p.get('trde_able_qty') or p.get('qty') or p.get('hold_qty') or p.get('rmnd_qty')) if (p.get('code') == symbol) or (p.get('symbol') == symbol) or (p.get('stk_cd') == symbol)),
for p in positions None)
if (p.get('code') == symbol) or (p.get('symbol') == symbol) or (p.get('stk_cd') == symbol)), if pos:
0, hold = _to_int(pos.get('qty') or pos.get('hold_qty') or pos.get('rmnd_qty'))
) trde_able = _to_int(pos.get('trde_able_qty') or hold)
pend_sell = sum(_to_int(o.get('unfilled_qty')) for o in open_orders
if o.get('side') == 'SELL' and o.get('code') == symbol)
# trde_able이 미체결 매도 제외 여부 불확실 → min으로 이중차감 방지 (check 핸들러와 동일).
md['position_qty'] = max(0, min(trde_able, hold - pend_sell))
else:
md['position_qty'] = 0
except Exception: except Exception:
md['position_qty'] = 0 md['position_qty'] = 0
@@ -503,7 +503,7 @@ def validate_request(request: dict, market_data: dict) -> Result:
return r return r
if request['side'] not in ('BUY', 'SELL'): if request['side'] not in ('BUY', 'SELL'):
return Result.REJECT('INVALID_SIDE', f'잘못된 방향: {request["side"]}') return Result.REJECT('INVALID_SIDE', f'잘못된 방향: {request["side"]}')
if request['order_type'] not in ('LIMIT', 'MARKET', 'AGGRESSIVE_LIMIT'): if request['order_type'] not in ('LIMIT', 'MARKET', 'AGGRESSIVE_LIMIT', 'STOP_LIMIT'):
return Result.REJECT('INVALID_ORDER_TYPE', f'잘못된 주문방식: {request["order_type"]}') return Result.REJECT('INVALID_ORDER_TYPE', f'잘못된 주문방식: {request["order_type"]}')
r = validate_trading_hours(market_data['now'], market_data.get('is_holiday', False), r = validate_trading_hours(market_data['now'], market_data.get('is_holiday', False),
market_data.get('nxt_eligible', False)) market_data.get('nxt_eligible', False))
@@ -525,6 +525,27 @@ def validate_request(request: dict, market_data: dict) -> Result:
market_data['upper_limit'], market_data['lower_limit']) market_data['upper_limit'], market_data['lower_limit'])
if not r.ok: if not r.ok:
return r return r
if request['order_type'] == 'STOP_LIMIT':
# 스톱지정가: 지정가(체결가)·조건단가(트리거) 둘 다 가격제한 이내 + 매도 전용.
# 보호매도(하락 시 매도)라 트리거는 현재가보다 낮아야 함 — 아니면 즉시 발동돼 스톱 의미 없음.
if request['side'] != 'SELL':
return Result.REJECT('STOP_SELL_ONLY', '스톱지정가는 현재 매도만 지원')
stop_price = request.get('stop_price')
if not stop_price or stop_price <= 0:
return Result.REJECT('STOP_PRICE_REQUIRED', '조건단가(트리거 가격)를 입력하세요')
r = validate_price_band(request['side'], request['price'],
market_data['upper_limit'], market_data['lower_limit'])
if not r.ok:
return r
r = validate_price_band(request['side'], stop_price,
market_data['upper_limit'], market_data['lower_limit'])
if not r.ok:
return r
cur = market_data.get('current_price') or 0
if cur and stop_price >= cur:
return Result.REJECT('STOP_TRIGGER_NOT_BELOW',
f'조건단가 {stop_price:,}원 ≥ 현재가 {cur:,}원 — '
f'하락 시 매도(스톱)는 현재가보다 낮게 설정해야 함')
if request['side'] == 'BUY': if request['side'] == 'BUY':
basis = None basis = None
if request['order_type'] == 'MARKET': if request['order_type'] == 'MARKET':
@@ -164,16 +164,25 @@ def propose_trade(
price: Optional[int] = None, price: Optional[int] = None,
routing_force: Optional[str] = None, routing_force: Optional[str] = None,
budget: Optional[int] = None, budget: Optional[int] = None,
stop_price: Optional[int] = None,
) -> dict: ) -> dict:
sidecar.guard_or_raise() sidecar.guard_or_raise()
_sweep_expired_and_notify() _sweep_expired_and_notify()
if order_type not in ('LIMIT', 'MARKET', 'AGGRESSIVE_LIMIT'): if order_type not in ('LIMIT', 'MARKET', 'AGGRESSIVE_LIMIT', 'STOP_LIMIT'):
return {'ok': False, return {'ok': False,
'message': card.format_rejected('INVALID_ORDER_TYPE', f'잘못된 주문방식: {order_type}')} 'message': card.format_rejected('INVALID_ORDER_TYPE', f'잘못된 주문방식: {order_type}')}
if side not in ('BUY', 'SELL'): if side not in ('BUY', 'SELL'):
return {'ok': False, return {'ok': False,
'message': card.format_rejected('INVALID_SIDE', f'잘못된 방향: {side}')} 'message': card.format_rejected('INVALID_SIDE', f'잘못된 방향: {side}')}
if order_type == 'STOP_LIMIT':
if side != 'SELL':
return {'ok': False,
'message': card.format_rejected('STOP_SELL_ONLY', '스톱지정가는 현재 매도만 지원')}
if not price or price <= 0 or not stop_price or stop_price <= 0:
return {'ok': False,
'message': card.format_rejected('STOP_INPUT',
'스톱지정가는 지정가와 조건단가(트리거)가 모두 필요')}
if budget is not None and qty is not None: if budget is not None and qty is not None:
return {'ok': False, return {'ok': False,
'message': card.format_rejected('AMBIGUOUS_INPUT', 'message': card.format_rejected('AMBIGUOUS_INPUT',
@@ -211,6 +220,9 @@ def propose_trade(
} }
if order_type == 'LIMIT': if order_type == 'LIMIT':
request['price'] = price request['price'] = price
elif order_type == 'STOP_LIMIT':
request['price'] = price
request['stop_price'] = stop_price
r = guards.validate_request(request, md) r = guards.validate_request(request, md)
if not r.ok: if not r.ok:
@@ -254,6 +266,8 @@ def propose_trade(
'account': account, 'side': side, 'symbol': symbol, 'symbol_name': symbol_name, 'account': account, 'side': side, 'symbol': symbol, 'symbol_name': symbol_name,
'qty': qty, 'price': final_price, 'order_type': order_type, 'routing_suffix': suffix, 'qty': qty, 'price': final_price, 'order_type': order_type, 'routing_suffix': suffix,
} }
if order_type == 'STOP_LIMIT':
payload['stop_price'] = stop_price
try: try:
pending = _pin_store.issue(account, payload) pending = _pin_store.issue(account, payload)
@@ -450,6 +464,7 @@ def submit_with_pin(pin_input: str, dry_run: bool = True) -> dict:
routing_suffix=p['routing_suffix'], routing_suffix=p['routing_suffix'],
dry_run=dry_run, dry_run=dry_run,
card_id=card_obj.card_id, card_id=card_obj.card_id,
stop_price=p.get('stop_price'),
) )
if res['ok']: if res['ok']:
@@ -31,6 +31,7 @@ TR_CANCEL = 'kt10003'
# 매매구분 코드 # 매매구분 코드
TRDE_TP_LIMIT = '0' # 보통가 (지정가) TRDE_TP_LIMIT = '0' # 보통가 (지정가)
TRDE_TP_MARKET = '3' # 시장가 TRDE_TP_MARKET = '3' # 시장가
TRDE_TP_STOP = '28' # 스톱지정가 — cond_uv(조건단가) 도달 시 ord_uv(지정가)로 발주
# 거래소 코드 (라우팅 suffix → API 거래소 구분) # 거래소 코드 (라우팅 suffix → API 거래소 구분)
_EXCHANGE_BY_SUFFIX = { _EXCHANGE_BY_SUFFIX = {
@@ -52,27 +53,38 @@ def _exchange_for(suffix: str) -> str:
def submit(account_label: str, side: str, symbol: str, qty: int, def submit(account_label: str, side: str, symbol: str, qty: int,
price: Optional[int], order_type: str, routing_suffix: str, price: Optional[int], order_type: str, routing_suffix: str,
dry_run: bool = True, card_id: Optional[str] = None) -> dict: dry_run: bool = True, card_id: Optional[str] = None,
stop_price: Optional[int] = None) -> dict:
sidecar.guard_or_raise() sidecar.guard_or_raise()
if side not in ('BUY', 'SELL'): if side not in ('BUY', 'SELL'):
raise ValueError(f'invalid side: {side}') raise ValueError(f'invalid side: {side}')
if order_type not in ('LIMIT', 'MARKET', 'AGGRESSIVE_LIMIT'): if order_type not in ('LIMIT', 'MARKET', 'AGGRESSIVE_LIMIT', 'STOP_LIMIT'):
raise ValueError(f'invalid order_type: {order_type}') raise ValueError(f'invalid order_type: {order_type}')
if order_type in ('LIMIT', 'AGGRESSIVE_LIMIT') and not price: if order_type in ('LIMIT', 'AGGRESSIVE_LIMIT') and not price:
raise ValueError(f'{order_type} requires price') raise ValueError(f'{order_type} requires price')
if order_type == 'STOP_LIMIT' and (not price or not stop_price):
raise ValueError('STOP_LIMIT requires price(지정가) and stop_price(조건단가)')
tr_id = TR_BUY if side == 'BUY' else TR_SELL tr_id = TR_BUY if side == 'BUY' else TR_SELL
exchange = _exchange_for(routing_suffix) exchange = _exchange_for(routing_suffix)
is_market = order_type == 'MARKET' is_market = order_type == 'MARKET'
is_stop = order_type == 'STOP_LIMIT'
if is_market:
trde_tp = TRDE_TP_MARKET
elif is_stop:
trde_tp = TRDE_TP_STOP
else:
trde_tp = TRDE_TP_LIMIT
body = { body = {
'dmst_stex_tp': exchange, 'dmst_stex_tp': exchange,
'stk_cd': symbol, 'stk_cd': symbol,
'ord_qty': str(qty), 'ord_qty': str(qty),
'ord_uv': '' if is_market else str(price), 'ord_uv': '' if is_market else str(price),
'trde_tp': TRDE_TP_MARKET if is_market else TRDE_TP_LIMIT, 'trde_tp': trde_tp,
'cond_uv': '', 'cond_uv': str(stop_price) if is_stop else '',
} }
payload = { payload = {
@@ -82,6 +94,7 @@ def submit(account_label: str, side: str, symbol: str, qty: int,
'symbol': symbol, 'symbol': symbol,
'qty': qty, 'qty': qty,
'price': price, 'price': price,
'stop_price': stop_price if is_stop else None,
'order_type': order_type, 'order_type': order_type,
'routing_suffix': routing_suffix, 'routing_suffix': routing_suffix,
'exchange': exchange, 'exchange': exchange,
@@ -48,7 +48,7 @@ REPORTS_DIR.mkdir(parents=True, exist_ok=True)
PROMPT_FILE = WORKSPACE / 'prompts' / 'stock_analysis.md' PROMPT_FILE = WORKSPACE / 'prompts' / 'stock_analysis.md'
ALIAS_FILE = WORKSPACE / 'prompts' / 'name_aliases.json' ALIAS_FILE = WORKSPACE / 'prompts' / 'name_aliases.json'
LLM_MODEL = 'openai-codex/gpt-5.5' LLM_MODEL = 'openai/gpt-5.5'
LLM_TIMEOUT_SEC = 120 LLM_TIMEOUT_SEC = 120
@@ -78,3 +78,7 @@
{"date": "2026-07-15", "market": "KOSPI", "market_label": "코스피", "rise": 711, "upper": 7, "fall": 169, "lower": 0, "steady": 32, "adr": 424.85, "personal": -24666, "foreign": 23031, "institutional": 1992, "captured_at": "2026-07-15T21:00:04.202161+09:00"} {"date": "2026-07-15", "market": "KOSPI", "market_label": "코스피", "rise": 711, "upper": 7, "fall": 169, "lower": 0, "steady": 32, "adr": 424.85, "personal": -24666, "foreign": 23031, "institutional": 1992, "captured_at": "2026-07-15T21:00:04.202161+09:00"}
{"date": "2026-07-16", "market": "KOSDAQ", "market_label": "코스닥", "rise": 501, "upper": 11, "fall": 1182, "lower": 1, "steady": 56, "adr": 43.28, "personal": 4184, "foreign": -2919, "institutional": -1553, "captured_at": "2026-07-16T21:00:01.884912+09:00"} {"date": "2026-07-16", "market": "KOSDAQ", "market_label": "코스닥", "rise": 501, "upper": 11, "fall": 1182, "lower": 1, "steady": 56, "adr": 43.28, "personal": 4184, "foreign": -2919, "institutional": -1553, "captured_at": "2026-07-16T21:00:01.884912+09:00"}
{"date": "2026-07-16", "market": "KOSPI", "market_label": "코스피", "rise": 384, "upper": 6, "fall": 488, "lower": 0, "steady": 40, "adr": 79.92, "personal": 36647, "foreign": -13665, "institutional": -23831, "captured_at": "2026-07-16T21:00:01.884912+09:00"} {"date": "2026-07-16", "market": "KOSPI", "market_label": "코스피", "rise": 384, "upper": 6, "fall": 488, "lower": 0, "steady": 40, "adr": 79.92, "personal": 36647, "foreign": -13665, "institutional": -23831, "captured_at": "2026-07-16T21:00:01.884912+09:00"}
{"date": "2026-07-20", "market": "KOSDAQ", "market_label": "코스닥", "rise": 198, "upper": 10, "fall": 1487, "lower": 3, "steady": 54, "adr": 13.96, "personal": 1907, "foreign": -518, "institutional": -1330, "captured_at": "2026-07-20T21:00:02.383101+09:00"}
{"date": "2026-07-20", "market": "KOSPI", "market_label": "코스피", "rise": 97, "upper": 3, "fall": 799, "lower": 4, "steady": 18, "adr": 12.45, "personal": 3490, "foreign": 5198, "institutional": -9235, "captured_at": "2026-07-20T21:00:02.383101+09:00"}
{"date": "2026-07-21", "market": "KOSDAQ", "market_label": "코스닥", "rise": 983, "upper": 19, "fall": 657, "lower": 5, "steady": 96, "adr": 151.36, "personal": 1474, "foreign": -1360, "institutional": -129, "captured_at": "2026-07-21T21:00:02.218278+09:00"}
{"date": "2026-07-21", "market": "KOSPI", "market_label": "코스피", "rise": 485, "upper": 1, "fall": 382, "lower": 2, "steady": 47, "adr": 126.56, "personal": -16421, "foreign": 2952, "institutional": 13744, "captured_at": "2026-07-21T21:00:02.218278+09:00"}
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"👀": "v1", "⭐": "v4", "🔥": "v300", "💎": "v40", "🚀": "v319"} {"👀": "v1", "⭐": "v4", "🔥": "v300", "💎": "v40", "🚀": "v319", "🎯": "v321"}
File diff suppressed because one or more lines are too long
@@ -1,28 +1,7 @@
{ {
"cash": 22095116.150500003, "cash": 35073967.941,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 102,
"entry_price": 111372.54901960785,
"entry_at": "2026-07-06T09:34:01.582032+09:00",
"stop": 100203,
"target": 144881,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 5751718.060687501,
"last_add_price": 112800
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-08T09:16:01.874405+09:00", "entry_at": "2026-07-08T09:16:01.874405+09:00",
"stop": 112596, "stop": 112596,
"target": 175793, "target": 175793,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5572914.42378125, "tranche_value": 5572914.42378125,
"last_add_price": 130800 "last_add_price": 130800
@@ -60,32 +39,11 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 5614905.905031251, "tranche_value": 5614905.905031251,
"last_add_price": 134300 "last_add_price": 134300
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 271,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.387588+09:00",
"stop": 10360,
"target": 23560,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 3707722.6157922116,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -102,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 3766258.2469785768, "tranche_value": 3766258.2469785768,
"last_add_price": 139100 "last_add_price": 139100
@@ -123,7 +81,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 6130, "cur_price": 6060,
"tranches": 2, "tranches": 2,
"tranche_value": 5505297.51634375, "tranche_value": 5505297.51634375,
"last_add_price": 6030 "last_add_price": 6030
@@ -144,17 +102,17 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 5640114.3750312505, "tranche_value": 5640114.3750312505,
"last_add_price": 353000 "last_add_price": 353000
} }
}, },
"realized_pnl": -11610911.24500001, "realized_pnl": -13696178.733500013,
"closed_trades": 12, "closed_trades": 14,
"wins": 0, "wins": 0,
"peak_equity": 100102462.48, "peak_equity": 100102462.48,
"max_drawdown": 0.12792869658484746, "max_drawdown": 0.1486520328305914,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -162,9 +120,10 @@
"298040": "2026-06-24", "298040": "2026-06-24",
"403870": "2026-07-07", "403870": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"093370": "2026-07-07", "093370": "2026-07-20",
"214450": "2026-07-15" "214450": "2026-07-15",
"055550": "2026-07-20"
}, },
"created_at": "2026-06-11T09:00:01.943184+09:00", "created_at": "2026-06-11T09:00:01.943184+09:00",
"updated_at": "2026-07-16T15:28:02.500289+09:00" "updated_at": "2026-07-21T15:28:03.080657+09:00"
} }
@@ -40,3 +40,5 @@
{"ts": "2026-07-15T14:32:01.808579+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 587, "proceeds": 10879334, "entry_price": 19859, "pnl": -779405, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.696479+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,675"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.808579+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 587, "proceeds": 10879334, "entry_price": 19859, "pnl": -779405, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.696479+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,675"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:04:02.184872+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 341500, "qty": 16, "cost": 5464820, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 301363, "target": 461911, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "340,500 vs 305,400"}, {"label": "정배열(5>10)", "ok": true, "detail": "314,300 / 305,400"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "314,300 / 305,425"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+34.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -33 · 기 +28 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.18% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "226,533 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.18% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "64"}]} {"ts": "2026-07-16T09:04:02.184872+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 341500, "qty": 16, "cost": 5464820, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 301363, "target": 461911, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "340,500 vs 305,400"}, {"label": "정배열(5>10)", "ok": true, "detail": "314,300 / 305,400"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "314,300 / 305,425"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+34.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -33 · 기 +28 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+41%"}, {"label": "시장 강세", "ok": false, "detail": "약세 — 돌파만 허용"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.18% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "226,533 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.18% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "64"}]}
{"ts": "2026-07-16T09:28:03.406225+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 15, "cost": 5295794, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 301363, "target": 461911, "signals": [{"label": "손절선", "ok": true, "detail": "301,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 461,911"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]} {"ts": "2026-07-16T09:28:03.406225+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 15, "cost": 5295794, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 301363, "target": 461911, "signals": [{"label": "손절선", "ok": true, "detail": "301,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 461,911"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]}
{"ts": "2026-07-20T12:28:02.248848+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 271, "proceeds": 2788562, "entry_price": 13660, "pnl": -913854, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.387588+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,560"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T14:12:02.314100+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 102, "proceeds": 10190290, "entry_price": 111373, "pnl": -1171414, "pnl_pct": -10.12, "hold_from": "2026-07-06T09:34:01.582032+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,203 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,881"}, {"label": "추세(10일선)", "ok": true, "detail": "98,970"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 58018301.34850001, "cash": 63761210.79500002,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"010950": { "010950": {
@@ -13,37 +13,16 @@
"entry_at": "2026-07-09T09:36:03.447931+09:00", "entry_at": "2026-07-09T09:36:03.447931+09:00",
"stop": 118954, "stop": 118954,
"target": 157594, "target": 157594,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4156565.5467727734, "tranche_value": 4156565.5467727734,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 143,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.461061+09:00",
"stop": 10360,
"target": 18610,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1955660.3422725608,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -60,7 +39,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1977013.5669807782, "tranche_value": 1977013.5669807782,
"last_add_price": 139100 "last_add_price": 139100
@@ -81,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3936003.3225085386, "tranche_value": 3936003.3225085386,
"last_add_price": 353000 "last_add_price": 353000
@@ -102,46 +81,26 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4931395.975756928, "tranche_value": 4931395.975756928,
"last_add_price": 138900 "last_add_price": 138900
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 42,
"entry_price": 113100,
"entry_at": "2026-07-13T10:04:06.402386+09:00",
"stop": 101931,
"target": 129854,
"peak": 113100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 4808356.897919891,
"last_add_price": 113100
} }
}, },
"realized_pnl": -5854300.354500008, "realized_pnl": -6815976.445000009,
"closed_trades": 10, "closed_trades": 12,
"wins": 0, "wins": 0,
"peak_equity": 100172467.23000002, "peak_equity": 100172467.23000002,
"max_drawdown": 0.07338326252483979, "max_drawdown": 0.08357542413104045,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
"403870": "2026-07-07", "403870": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07" "093370": "2026-07-20",
"055550": "2026-07-20"
}, },
"created_at": "2026-06-11T09:00:01.944232+09:00", "created_at": "2026-06-11T09:00:01.944232+09:00",
"updated_at": "2026-07-16T15:28:02.558397+09:00" "updated_at": "2026-07-21T15:28:03.123811+09:00"
} }
@@ -32,3 +32,5 @@
{"ts": "2026-07-15T11:56:05.674537+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 138900, "qty": 35, "cost": 4862229, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 122472, "target": 155042, "signals": [{"label": "손절선", "ok": true, "detail": "122,472 (현재 138,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 155,042"}, {"label": "추세(10일선)", "ok": true, "detail": "121,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -40 · 기 +527"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 138,828"}]} {"ts": "2026-07-15T11:56:05.674537+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 138900, "qty": 35, "cost": 4862229, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 122472, "target": 155042, "signals": [{"label": "손절선", "ok": true, "detail": "122,472 (현재 138,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 155,042"}, {"label": "추세(10일선)", "ok": true, "detail": "121,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -40 · 기 +527"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 138,828"}]}
{"ts": "2026-07-15T14:32:01.874159+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 604, "proceeds": 11194408, "entry_price": 19858, "pnl": -801741, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.766122+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,767"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.874159+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 604, "proceeds": 11194408, "entry_price": 19858, "pnl": -801741, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.766122+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,767"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:28:03.472538+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 403206, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]} {"ts": "2026-07-16T09:28:03.472538+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 403206, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]}
{"ts": "2026-07-20T11:28:01.181290+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 101900, "qty": 42, "proceeds": 4271454, "entry_price": 113100, "pnl": -479458, "pnl_pct": -9.9, "hold_from": "2026-07-13T10:04:06.402386+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "101,931 (현재 101,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,854"}, {"label": "추세(10일선)", "ok": true, "detail": "99,150"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -156 · 기 +275"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 115,714"}]}
{"ts": "2026-07-20T12:28:02.306152+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 143, "proceeds": 1471455, "entry_price": 13660, "pnl": -482218, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.461061+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,610"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 57604971.88750005, "cash": 63347881.33400005,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": { "086790": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달", "entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 5368206.728356878, "tranche_value": 5368206.728356878,
"last_add_price": 126200 "last_add_price": 126200
@@ -34,37 +34,16 @@
"entry_at": "2026-07-09T09:36:03.450092+09:00", "entry_at": "2026-07-09T09:36:03.450092+09:00",
"stop": 118952, "stop": 118952,
"target": 157593, "target": 157593,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4089582.9464364387, "tranche_value": 4089582.9464364387,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 143,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.463231+09:00",
"stop": 10360,
"target": 18610,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1954011.4210300767,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -81,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1974063.9617849514, "tranche_value": 1974063.9617849514,
"last_add_price": 139100 "last_add_price": 139100
@@ -102,35 +81,14 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3962363.617644489, "tranche_value": 3962363.617644489,
"last_add_price": 353000 "last_add_price": 353000
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 42,
"entry_price": 113100,
"entry_at": "2026-07-13T10:04:06.404635+09:00",
"stop": 101931,
"target": 129854,
"peak": 113100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 4853799.551419356,
"last_add_price": 113100
} }
}, },
"realized_pnl": -5720947.82550001, "realized_pnl": -6682623.91600001,
"closed_trades": 14, "closed_trades": 16,
"wins": 2, "wins": 2,
"peak_equity": 101529111.72700004, "peak_equity": 101529111.72700004,
"max_drawdown": 0.09157997811013377, "max_drawdown": 0.09157997811013377,
@@ -139,11 +97,12 @@
"086790": "2026-06-23", "086790": "2026-06-23",
"403870": "2026-07-07", "403870": "2026-07-07",
"095610": "2026-07-16", "095610": "2026-07-16",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"034730": "2026-07-07" "034730": "2026-07-07",
"055550": "2026-07-20"
}, },
"created_at": "2026-06-11T09:00:01.944251+09:00", "created_at": "2026-06-11T09:00:01.944251+09:00",
"updated_at": "2026-07-16T15:28:02.560333+09:00" "updated_at": "2026-07-21T15:28:03.125546+09:00"
} }
@@ -44,3 +44,5 @@
{"ts": "2026-07-15T14:32:01.876272+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 602, "proceeds": 11157341, "entry_price": 19858, "pnl": -799013, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.768192+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,766"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.876272+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 602, "proceeds": 11157341, "entry_price": 19858, "pnl": -799013, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.768192+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,766"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:08.142600+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 23, "proceeds": 4797626, "entry_price": 165991, "pnl": 979254, "pnl_pct": 25.91, "hold_from": "2026-07-07T09:12:07.261674+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "158,280"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:08.142600+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 23, "proceeds": 4797626, "entry_price": 165991, "pnl": 979254, "pnl_pct": 25.91, "hold_from": "2026-07-07T09:12:07.261674+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "158,280"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:28:03.474549+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 403206, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]} {"ts": "2026-07-16T09:28:03.474549+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 403206, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]}
{"ts": "2026-07-20T11:28:01.183314+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 101900, "qty": 42, "proceeds": 4271454, "entry_price": 113100, "pnl": -479458, "pnl_pct": -9.9, "hold_from": "2026-07-13T10:04:06.404635+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "101,931 (현재 101,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,854"}, {"label": "추세(10일선)", "ok": true, "detail": "99,150"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -156 · 기 +275"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 115,714"}]}
{"ts": "2026-07-20T12:28:02.308175+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 143, "proceeds": 1471455, "entry_price": 13660, "pnl": -482218, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.463231+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,610"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 55837100.54850007, "cash": 64168029.696000054,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"010950": { "010950": {
@@ -13,58 +13,16 @@
"entry_at": "2026-07-09T09:36:03.452341+09:00", "entry_at": "2026-07-09T09:36:03.452341+09:00",
"stop": 122826, "stop": 122826,
"target": 157603, "target": 157603,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5212031.062678178, "tranche_value": 5212031.062678178,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 58,
"entry_price": 188450.0,
"entry_at": "2026-07-10T09:28:02.614091+09:00",
"stop": 173293,
"target": 218763,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5551111.205250004,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 345,
"entry_price": 13320.782608695652,
"entry_at": "2026-07-10T09:46:11.469023+09:00",
"stop": 10360,
"target": 19242,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2308331.80170399,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -81,51 +39,74 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1902971.2205544217, "tranche_value": 1902971.2205544217,
"last_add_price": 139100 "last_add_price": 139100
}, },
"086790": { "319660": {
"code": "086790", "code": "319660",
"name": "하나금융지주", "name": "피에스케이",
"sources": [ "sources": [
"auto" "auto"
], ],
"qty": 40, "qty": 33,
"entry_price": 138900, "entry_price": 167000,
"entry_at": "2026-07-16T09:38:02.508844+09:00", "entry_at": "2026-07-21T10:12:01.040322+09:00",
"stop": 128529, "stop": 158000,
"target": 159642, "target": 185000,
"peak": 138900, "peak": 173100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 169,640 도달",
"cur_price": 170200,
"tranches": 1,
"tranche_value": 5545779.987250004,
"last_add_price": 167000
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.164331+09:00",
"stop": 313808,
"target": 405884,
"peak": 346000,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 340000,
"tranches": 1, "tranches": 1,
"tranche_value": 5680175.559281254, "tranche_value": 4980582.661409654,
"last_add_price": 138900 "last_add_price": 344500
} }
}, },
"realized_pnl": -9024359.461000014, "realized_pnl": -11442812.479000017,
"closed_trades": 25, "closed_trades": 28,
"wins": 3, "wins": 3,
"peak_equity": 101695667.93550003, "peak_equity": 101695667.93550003,
"max_drawdown": 0.12967778293038185, "max_drawdown": 0.13177173680593005,
"last_exit": { "last_exit": {
"030000": "2026-07-16", "030000": "2026-07-16",
"035420": "2026-06-23", "035420": "2026-06-23",
"403870": "2026-07-02", "403870": "2026-07-02",
"095610": "2026-07-16", "095610": "2026-07-16",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-06", "009150": "2026-07-06",
"034730": "2026-07-08", "034730": "2026-07-08",
"214450": "2026-07-14", "214450": "2026-07-14",
"003490": "2026-07-07", "003490": "2026-07-07",
"319660": "2026-07-13" "319660": "2026-07-13",
"105560": "2026-07-20",
"086790": "2026-07-21"
}, },
"created_at": "2026-06-11T09:00:01.944270+09:00", "created_at": "2026-06-11T09:00:01.944270+09:00",
"updated_at": "2026-07-16T15:28:02.562226+09:00" "updated_at": "2026-07-21T15:28:03.127173+09:00"
} }
@@ -70,3 +70,8 @@
{"ts": "2026-07-16T09:00:08.249132+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 27, "proceeds": 5631996, "entry_price": 150948, "pnl": 1555785, "pnl_pct": 38.46, "hold_from": "2026-07-09T09:02:04.457275+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:08.249132+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 27, "proceeds": 5631996, "entry_price": 150948, "pnl": 1555785, "pnl_pct": 38.46, "hold_from": "2026-07-09T09:02:04.457275+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:08.249940+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 290, "proceeds": 5377693, "entry_price": 19110, "pnl": -165038, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.457419+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:08.249940+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 290, "proceeds": 5377693, "entry_price": 19110, "pnl": -165038, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.457419+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-16T09:38:02.508846+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 138900, "qty": 40, "cost": 5556833, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 128529, "target": 159642, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "138,800 vs 119,185"}, {"label": "정배열(5>20)", "ok": true, "detail": "124,360 / 119,185"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "124,360 / 118,712"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+40.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +71 · 기 +417 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.76% (환산) vs 평균 0.37% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 130,700"}, {"label": "거래량 급증", "ok": true, "detail": "2,097,713 (환산) vs 평균 1,026,357"}, {"label": "회전율 급증", "ok": true, "detail": "0.76% (환산) vs 평균 0.37%"}, {"label": "RSI", "ok": true, "detail": "67"}]} {"ts": "2026-07-16T09:38:02.508846+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 138900, "qty": 40, "cost": 5556833, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 128529, "target": 159642, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "138,800 vs 119,185"}, {"label": "정배열(5>20)", "ok": true, "detail": "124,360 / 119,185"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "124,360 / 118,712"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+40.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +71 · 기 +417 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+17%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.76% (환산) vs 평균 0.37% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 130,700"}, {"label": "거래량 급증", "ok": true, "detail": "2,097,713 (환산) vs 평균 1,026,357"}, {"label": "회전율 급증", "ok": true, "detail": "0.76% (환산) vs 평균 0.37%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-20T09:04:02.871730+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 173000, "qty": 58, "proceeds": 10014434, "entry_price": 188450, "pnl": -917306, "pnl_pct": -8.2, "hold_from": "2026-07-10T09:28:02.614091+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "173,293 (현재 173,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 218,763"}, {"label": "추세(20일선)", "ok": true, "detail": "159,270"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -332 · 기 +291"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.310171+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 345, "proceeds": 3550014, "entry_price": 13321, "pnl": -1046345, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.469023+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,242"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T09:06:03.147127+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 127800, "qty": 40, "proceeds": 5102032, "entry_price": 138900, "pnl": -454802, "pnl_pct": -7.99, "hold_from": "2026-07-16T09:38:02.508844+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "128,529 (현재 127,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 159,642"}, {"label": "추세(20일선)", "ok": true, "detail": "118,640"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +121 · 기 +190"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,068"}]}
{"ts": "2026-07-21T10:12:01.040324+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 167000, "qty": 33, "cost": 5511827, "path": "pullback", "reason": "눌림목 지정가 169,640 도달", "stop": 158000, "target": 185000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "167,000 vs 150,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "171,040 / 150,140"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,040 / 113,342"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+92.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -534 · 기 +316 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+7%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.29% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "951,819 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.29% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 169,640 (현재 167,000)"}]}
{"ts": "2026-07-21T12:06:01.164333+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 14, "cost": 4823723, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 405884, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 58682819.83000002, "cash": 60750232.41000002,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": { "086790": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달", "entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 5613307.207924683, "tranche_value": 5613307.207924683,
"last_add_price": 126200 "last_add_price": 126200
@@ -34,37 +34,16 @@
"entry_at": "2026-07-09T09:36:03.454533+09:00", "entry_at": "2026-07-09T09:36:03.454533+09:00",
"stop": 122827, "stop": 122827,
"target": 157603, "target": 157603,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5344399.843888248, "tranche_value": 5344399.843888248,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 151,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.467291+09:00",
"stop": 10621,
"target": 19737,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 2071321.2347207314,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -81,35 +60,35 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1927098.4703053648, "tranche_value": 1927098.4703053648,
"last_add_price": 139100 "last_add_price": 139100
}, },
"055550": { "214450": {
"code": "055550", "code": "214450",
"name": "신한지주", "name": "파마리서치",
"sources": [ "sources": [
"auto" "auto"
], ],
"qty": 51, "qty": 14,
"entry_price": 113100, "entry_price": 344500,
"entry_at": "2026-07-13T10:04:06.408908+09:00", "entry_at": "2026-07-21T12:06:01.166187+09:00",
"stop": 104723, "stop": 313808,
"target": 129854, "target": 405884,
"peak": 113100, "peak": 346000,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800, "cur_price": 340000,
"tranches": 1, "tranches": 1,
"tranche_value": 5872693.545437502, "tranche_value": 5156172.079657566,
"last_add_price": 113100 "last_add_price": 344500
} }
}, },
"realized_pnl": -8109239.726000015, "realized_pnl": -9050038.310000015,
"closed_trades": 19, "closed_trades": 21,
"wins": 2, "wins": 2,
"peak_equity": 101690998.13850003, "peak_equity": 101690998.13850003,
"max_drawdown": 0.10974977197391311, "max_drawdown": 0.10974977197391311,
@@ -118,11 +97,12 @@
"030000": "2026-07-16", "030000": "2026-07-16",
"403870": "2026-07-02", "403870": "2026-07-02",
"095610": "2026-07-16", "095610": "2026-07-16",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"034730": "2026-07-03", "034730": "2026-07-03",
"214450": "2026-07-14" "214450": "2026-07-14",
"055550": "2026-07-20"
}, },
"created_at": "2026-06-11T09:00:01.944290+09:00", "created_at": "2026-06-11T09:00:01.944290+09:00",
"updated_at": "2026-07-16T15:28:02.564015+09:00" "updated_at": "2026-07-21T15:28:03.128790+09:00"
} }
@@ -54,3 +54,6 @@
{"ts": "2026-07-14T10:20:06.143905+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 310500, "qty": 15, "proceeds": 4648418, "entry_price": 341500, "pnl": -474851, "pnl_pct": -9.08, "hold_from": "2026-07-13T09:12:04.296871+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "310,647 (현재 310,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "302,400"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -50 · 기 +82"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,713"}]} {"ts": "2026-07-14T10:20:06.143905+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 310500, "qty": 15, "proceeds": 4648418, "entry_price": 341500, "pnl": -474851, "pnl_pct": -9.08, "hold_from": "2026-07-13T09:12:04.296871+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "310,647 (현재 310,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "302,400"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -50 · 기 +82"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,713"}]}
{"ts": "2026-07-16T09:00:08.347687+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 29, "proceeds": 6049181, "entry_price": 162924, "pnl": 1323672, "pnl_pct": 28.28, "hold_from": "2026-07-10T09:00:10.959008+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "158,280"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:08.347687+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 29, "proceeds": 6049181, "entry_price": 162924, "pnl": 1323672, "pnl_pct": 28.28, "hold_from": "2026-07-10T09:00:10.959008+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "158,280"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:08.349387+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 297, "proceeds": 5507499, "entry_price": 19110, "pnl": -169022, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.459884+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(10일선)", "ok": false, "detail": "18,904"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:08.349387+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 297, "proceeds": 5507499, "entry_price": 19110, "pnl": -169022, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.459884+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(10일선)", "ok": false, "detail": "18,904"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-20T09:02:02.272710+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 104000, "qty": 51, "proceeds": 5293657, "entry_price": 113100, "pnl": -475308, "pnl_pct": -8.05, "hold_from": "2026-07-13T10:04:06.408908+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "104,723 (현재 104,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,854"}, {"label": "추세(10일선)", "ok": true, "detail": "99,380"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +265"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 115,714"}]}
{"ts": "2026-07-20T10:50:03.214952+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10600, "qty": 151, "proceeds": 1597479, "entry_price": 13660, "pnl": -465491, "pnl_pct": -22.4, "hold_from": "2026-07-10T11:06:06.467291+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,621 (현재 10,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,737"}, {"label": "추세(10일선)", "ok": false, "detail": "12,043"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -893 · 기 +516"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,615"}]}
{"ts": "2026-07-21T12:06:01.166188+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 14, "cost": 4823723, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 405884, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "344,500 vs 305,800"}, {"label": "정배열(5>10)", "ok": true, "detail": "315,100 / 305,800"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 23746743.878999986, "cash": 34358026.94049998,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"095610": { "095610": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,264 도달", "entry_reason": "눌림목 지정가 158,264 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 4122817.0756532787, "tranche_value": 4122817.0756532787,
"last_add_price": 179100 "last_add_price": 179100
@@ -39,7 +39,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,286 도달", "entry_reason": "눌림목 지정가 122,286 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 6390950.2104375, "tranche_value": 6390950.2104375,
"last_add_price": 122200 "last_add_price": 122200
@@ -55,79 +55,16 @@
"entry_at": "2026-07-09T09:10:01.824472+09:00", "entry_at": "2026-07-09T09:10:01.824472+09:00",
"stop": 119114, "stop": 119114,
"target": 180939, "target": 180939,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5286025.184468749, "tranche_value": 5286025.184468749,
"last_add_price": 136900 "last_add_price": 136900
}, },
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 48,
"entry_price": 110900,
"entry_at": "2026-07-10T09:28:02.618669+09:00",
"stop": 99988,
"target": 143637,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 5328971.6722812485,
"last_add_price": 110900
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 55,
"entry_price": 188403.63636363635,
"entry_at": "2026-07-10T09:28:02.618950+09:00",
"stop": 168195,
"target": 249030,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5329185.517281249,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 663,
"entry_price": 13320.76923076923,
"entry_at": "2026-07-10T09:46:11.473038+09:00",
"stop": 10360,
"target": 22203,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4424571.850121842,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -144,30 +81,74 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 164,061 도달", "entry_reason": "눌림목 지정가 164,061 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 3122522.1244186284, "tranche_value": 3122522.1244186284,
"last_add_price": 145700 "last_add_price": 145700
},
"319660": {
"code": "319660",
"name": "피에스케이",
"sources": [
"auto"
],
"qty": 30,
"entry_price": 167000,
"entry_at": "2026-07-21T10:12:01.043989+09:00",
"stop": 158000,
"target": 194000,
"peak": 173100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 169,640 도달",
"cur_price": 170200,
"tranches": 1,
"tranche_value": 5168559.5978437485,
"last_add_price": 167000
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 15,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.168413+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 5184250.1290937485,
"last_add_price": 344500
} }
}, },
"realized_pnl": -14219082.390500009, "realized_pnl": -17949520.264500014,
"closed_trades": 17, "closed_trades": 20,
"wins": 1, "wins": 1,
"peak_equity": 103066363.367, "peak_equity": 103066363.367,
"max_drawdown": 0.1948315508037945, "max_drawdown": 0.20573161901518267,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
"005930": "2026-06-23", "005930": "2026-06-23",
"403870": "2026-07-07", "403870": "2026-07-07",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-06", "009150": "2026-07-06",
"214450": "2026-07-06", "214450": "2026-07-06",
"034730": "2026-07-07", "034730": "2026-07-07",
"319660": "2026-07-13", "319660": "2026-07-13",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20",
"055550": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.582771+09:00", "created_at": "2026-06-15T14:55:00.582771+09:00",
"updated_at": "2026-07-16T15:28:02.566005+09:00" "updated_at": "2026-07-21T15:28:03.130399+09:00"
} }
@@ -53,3 +53,8 @@
{"ts": "2026-07-15T09:02:02.644676+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 135500, "qty": 23, "cost": 3116967, "path": "pullback", "reason": "눌림목 지정가 164,061 도달", "stop": 97022, "target": 250934, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "134,900 vs 120,585"}, {"label": "정배열(5>20)", "ok": true, "detail": "139,000 / 120,585"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "139,000 / 121,348"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,752 · 기 +1,989 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.30% (환산) vs 평균 2.51% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 183,300"}, {"label": "거래량 급증", "ok": false, "detail": "636,187 (환산) vs 평균 1,234,482"}, {"label": "회전율 급증", "ok": false, "detail": "1.30% (환산) vs 평균 2.51%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 164,061 (현재 134,900)"}]} {"ts": "2026-07-15T09:02:02.644676+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 135500, "qty": 23, "cost": 3116967, "path": "pullback", "reason": "눌림목 지정가 164,061 도달", "stop": 97022, "target": 250934, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "134,900 vs 120,585"}, {"label": "정배열(5>20)", "ok": true, "detail": "139,000 / 120,585"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "139,000 / 121,348"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,752 · 기 +1,989 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.30% (환산) vs 평균 2.51% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 183,300"}, {"label": "거래량 급증", "ok": false, "detail": "636,187 (환산) vs 평균 1,234,482"}, {"label": "회전율 급증", "ok": false, "detail": "1.30% (환산) vs 평균 2.51%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 164,061 (현재 134,900)"}]}
{"ts": "2026-07-15T14:32:01.882454+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 578, "proceeds": 10712530, "entry_price": 19859, "pnl": -767982, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.774352+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,587 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,676"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.882454+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 578, "proceeds": 10712530, "entry_price": 19859, "pnl": -767982, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.774352+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,587 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,676"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T14:16:02.478397+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 21, "cost": 3060159, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 97022, "target": 250934, "signals": [{"label": "손절선", "ok": true, "detail": "97,022 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 250,934"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]} {"ts": "2026-07-16T14:16:02.478397+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 21, "cost": 3060159, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 97022, "target": 250934, "signals": [{"label": "손절선", "ok": true, "detail": "97,022 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 250,934"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]}
{"ts": "2026-07-20T12:28:02.313716+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 663, "proceeds": 6822201, "entry_price": 13321, "pnl": -2010794, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.473038+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,203"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:50:02.287453+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 167800, "qty": 55, "proceeds": 9211003, "entry_price": 188404, "pnl": -1152751, "pnl_pct": -10.94, "hold_from": "2026-07-10T09:28:02.618950+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "168,195 (현재 167,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 249,030"}, {"label": "추세(20일선)", "ok": true, "detail": "159,000"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T09:02:05.656405+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 99300, "qty": 48, "proceeds": 4757106, "entry_price": 110900, "pnl": -566893, "pnl_pct": -10.46, "hold_from": "2026-07-10T09:28:02.618669+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "99,988 (현재 99,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,637"}, {"label": "추세(20일선)", "ok": true, "detail": "96,775"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -141 · 기 +150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 113,471"}]}
{"ts": "2026-07-21T10:12:01.043990+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 167000, "qty": 30, "cost": 5010752, "path": "pullback", "reason": "눌림목 지정가 169,640 도달", "stop": 158000, "target": 194000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "167,000 vs 150,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "171,040 / 150,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,040 / 113,342"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+92.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -534 · 기 +316 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+7%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.29% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "951,819 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.29% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 169,640 (현재 167,000)"}]}
{"ts": "2026-07-21T12:06:01.168414+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 15, "cost": 5168275, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,49 +1,7 @@
{ {
"cash": 29109273.90249998, "cash": 54356546.008499965,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 106,
"entry_price": 120162.2641509434,
"entry_at": "2026-07-01T09:46:03.072371+09:00",
"stop": 131493,
"target": 133906,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,286 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6390950.2104375,
"last_add_price": 122200
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 103,
"entry_price": 111386.40776699029,
"entry_at": "2026-07-06T10:42:01.677078+09:00",
"stop": 100217,
"target": 128141,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 5764374.726687499,
"last_add_price": 112800
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -55,58 +13,16 @@
"entry_at": "2026-07-09T09:10:01.826441+09:00", "entry_at": "2026-07-09T09:10:01.826441+09:00",
"stop": 119115, "stop": 119115,
"target": 157756, "target": 157756,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5518075.13775, "tranche_value": 5518075.13775,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 58,
"entry_price": 188450.0,
"entry_at": "2026-07-10T09:28:02.621405+09:00",
"stop": 168241,
"target": 218763,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5563059.735249999,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 692,
"entry_price": 13320.838150289017,
"entry_at": "2026-07-10T09:46:11.475279+09:00",
"stop": 10360,
"target": 17762,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4617067.02016263,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,31 +39,96 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 164,061 도달", "entry_reason": "눌림목 지정가 164,061 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 3210994.2539023594, "tranche_value": 3210994.2539023594,
"last_add_price": 145700 "last_add_price": 145700
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 40,
"entry_price": 133100,
"entry_at": "2026-07-21T10:08:04.172929+09:00",
"stop": 120243,
"target": 152385,
"peak": 133900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 132800,
"tranches": 1,
"tranche_value": 5436101.333343748,
"last_add_price": 133100
},
"319660": {
"code": "319660",
"name": "피에스케이",
"sources": [
"auto"
],
"qty": 32,
"entry_price": 167000,
"entry_at": "2026-07-21T10:12:01.045877+09:00",
"stop": 158000,
"target": 180500,
"peak": 173100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 169,640 도달",
"cur_price": 170200,
"tranches": 1,
"tranche_value": 5433463.920843748,
"last_add_price": 167000
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 15,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.170285+09:00",
"stop": 303577,
"target": 405884,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 5435113.820843748,
"last_add_price": 344500
} }
}, },
"realized_pnl": -9301169.049500015, "realized_pnl": -12580795.33650002,
"closed_trades": 20, "closed_trades": 24,
"wins": 3, "wins": 4,
"peak_equity": 103066363.367, "peak_equity": 103066363.367,
"max_drawdown": 0.16053084888699523, "max_drawdown": 0.1615691258476266,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-07-20",
"005930": "2026-06-23", "005930": "2026-06-23",
"403870": "2026-07-07", "403870": "2026-07-07",
"095610": "2026-07-16", "095610": "2026-07-16",
"009150": "2026-07-06", "009150": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"034730": "2026-07-07", "034730": "2026-07-07",
"319660": "2026-07-13", "319660": "2026-07-13",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20",
"055550": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.582787+09:00", "created_at": "2026-06-15T14:55:00.582787+09:00",
"updated_at": "2026-07-16T15:28:02.567839+09:00" "updated_at": "2026-07-21T15:28:03.132037+09:00"
} }
@@ -58,3 +58,10 @@
{"ts": "2026-07-15T14:32:01.884447+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 589, "proceeds": 10916401, "entry_price": 19859, "pnl": -782133, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.776647+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,767"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.884447+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 589, "proceeds": 10916401, "entry_price": 19859, "pnl": -782133, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.776647+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,767"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:09.497626+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 42, "proceeds": 8760883, "entry_price": 161557, "pnl": 1974465, "pnl_pct": 29.37, "hold_from": "2026-07-07T09:48:07.724011+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:09.497626+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 42, "proceeds": 8760883, "entry_price": 161557, "pnl": 1974465, "pnl_pct": 29.37, "hold_from": "2026-07-07T09:48:07.724011+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T14:16:02.480628+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 22, "cost": 3205881, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 97022, "target": 193217, "signals": [{"label": "손절선", "ok": true, "detail": "97,022 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 193,217"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]} {"ts": "2026-07-16T14:16:02.480628+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 22, "cost": 3205881, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 97022, "target": 193217, "signals": [{"label": "손절선", "ok": true, "detail": "97,022 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 193,217"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]}
{"ts": "2026-07-20T12:28:02.315811+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 692, "proceeds": 7120608, "entry_price": 13321, "pnl": -2098795, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.475279+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,762"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.278769+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 106, "proceeds": 13943557, "entry_price": 120162, "pnl": 1204446, "pnl_pct": 9.69, "hold_from": "2026-07-01T09:46:03.072371+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:48:03.475310+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 168100, "qty": 58, "proceeds": 9730788, "entry_price": 188450, "pnl": -1200952, "pnl_pct": -10.8, "hold_from": "2026-07-10T09:28:02.621405+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "168,241 (현재 168,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 218,763"}, {"label": "추세(20일선)", "ok": true, "detail": "159,020"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.376886+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 103, "proceeds": 10290195, "entry_price": 111386, "pnl": -1184326, "pnl_pct": -10.13, "hold_from": "2026-07-06T10:42:01.677078+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,217 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 128,141"}, {"label": "추세(20일선)", "ok": true, "detail": "96,810"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:04.172930+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 133100, "qty": 40, "cost": 5324799, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120243, "target": 152385, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "133,000 vs 118,895"}, {"label": "정배열(5>20)", "ok": true, "detail": "123,200 / 118,895"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "123,200 / 118,615"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+38.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +137 · 기 +185 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+22%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.57% (환산) vs 평균 0.37% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 130,700"}, {"label": "거래량 급증", "ok": true, "detail": "1,575,915 (환산) vs 평균 1,026,357"}, {"label": "회전율 급증", "ok": true, "detail": "0.57% (환산) vs 평균 0.37%"}, {"label": "RSI", "ok": true, "detail": "63"}]}
{"ts": "2026-07-21T10:12:01.045878+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 167000, "qty": 32, "cost": 5344802, "path": "pullback", "reason": "눌림목 지정가 169,640 도달", "stop": 158000, "target": 180500, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "167,000 vs 150,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "171,040 / 150,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,040 / 113,342"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+92.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -534 · 기 +316 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+7%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.29% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "951,819 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.29% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 169,640 (현재 167,000)"}]}
{"ts": "2026-07-21T12:06:01.170286+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 15, "cost": 5168275, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 405884, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 24596769.54249998, "cash": 44261620.08049998,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"095610": { "095610": {
@@ -18,32 +18,11 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,264 도달", "entry_reason": "눌림목 지정가 158,264 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 4122817.0756532787, "tranche_value": 4122817.0756532787,
"last_add_price": 179100 "last_add_price": 179100
}, },
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 106,
"entry_price": 120162.2641509434,
"entry_at": "2026-07-01T09:46:03.082062+09:00",
"stop": 131493,
"target": 138487,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,286 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6390950.2104375,
"last_add_price": 122200
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -55,79 +34,16 @@
"entry_at": "2026-07-09T09:10:01.828358+09:00", "entry_at": "2026-07-09T09:10:01.828358+09:00",
"stop": 119115, "stop": 119115,
"target": 165484, "target": 165484,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5389478.369468749, "tranche_value": 5389478.369468749,
"last_add_price": 136900 "last_add_price": 136900
}, },
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 48,
"entry_price": 110900,
"entry_at": "2026-07-10T09:28:02.623560+09:00",
"stop": 99988,
"target": 132725,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 5432423.616968749,
"last_add_price": 110900
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 57,
"entry_price": 188405.26315789475,
"entry_at": "2026-07-10T09:28:02.623839+09:00",
"stop": 168196,
"target": 228823,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5432637.461968749,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 676,
"entry_price": 13320.384615384615,
"entry_at": "2026-07-10T09:46:11.477294+09:00",
"stop": 10360,
"target": 19241,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4510288.884295525,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -144,30 +60,95 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 164,061 도달", "entry_reason": "눌림목 지정가 164,061 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 3179983.5783414543, "tranche_value": 3179983.5783414543,
"last_add_price": 145700 "last_add_price": 145700
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 133100,
"entry_at": "2026-07-21T10:08:04.174962+09:00",
"stop": 120243,
"target": 158813,
"peak": 133900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 132800,
"tranches": 1,
"tranche_value": 5262640.649406249,
"last_add_price": 133100
},
"319660": {
"code": "319660",
"name": "피에스케이",
"sources": [
"auto"
],
"qty": 31,
"entry_price": 167000,
"entry_at": "2026-07-21T10:12:01.047658+09:00",
"stop": 158000,
"target": 185000,
"peak": 173100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 169,640 도달",
"cur_price": 170200,
"tranches": 1,
"tranche_value": 5258529.484718749,
"last_add_price": 167000
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 15,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.172122+09:00",
"stop": 303577,
"target": 426346,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 5274205.950343749,
"last_add_price": 344500
} }
}, },
"realized_pnl": -12549923.875500014, "realized_pnl": -15157093.63950002,
"closed_trades": 17, "closed_trades": 21,
"wins": 1, "wins": 2,
"peak_equity": 103066363.367, "peak_equity": 103066363.367,
"max_drawdown": 0.17880080070236026, "max_drawdown": 0.1904973409373871,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-07-20",
"005930": "2026-06-23", "005930": "2026-06-23",
"403870": "2026-07-07", "403870": "2026-07-07",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-06", "009150": "2026-07-06",
"214450": "2026-07-06", "214450": "2026-07-06",
"034730": "2026-07-07", "034730": "2026-07-07",
"319660": "2026-07-13", "319660": "2026-07-13",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20",
"055550": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.582803+09:00", "created_at": "2026-06-15T14:55:00.582803+09:00",
"updated_at": "2026-07-16T15:28:02.569660+09:00" "updated_at": "2026-07-21T15:28:03.133646+09:00"
} }
@@ -52,3 +52,10 @@
{"ts": "2026-07-15T09:02:02.649553+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 135500, "qty": 23, "cost": 3116967, "path": "pullback", "reason": "눌림목 지정가 164,061 도달", "stop": 97022, "target": 212456, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "134,900 vs 120,585"}, {"label": "정배열(5>20)", "ok": true, "detail": "139,000 / 120,585"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "139,000 / 121,348"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,752 · 기 +1,989 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.30% (환산) vs 평균 2.51% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 183,300"}, {"label": "거래량 급증", "ok": false, "detail": "636,187 (환산) vs 평균 1,234,482"}, {"label": "회전율 급증", "ok": false, "detail": "1.30% (환산) vs 평균 2.51%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 164,061 (현재 134,900)"}]} {"ts": "2026-07-15T09:02:02.649553+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 135500, "qty": 23, "cost": 3116967, "path": "pullback", "reason": "눌림목 지정가 164,061 도달", "stop": 97022, "target": 212456, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "134,900 vs 120,585"}, {"label": "정배열(5>20)", "ok": true, "detail": "139,000 / 120,585"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "139,000 / 121,348"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,752 · 기 +1,989 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.30% (환산) vs 평균 2.51% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 183,300"}, {"label": "거래량 급증", "ok": false, "detail": "636,187 (환산) vs 평균 1,234,482"}, {"label": "회전율 급증", "ok": false, "detail": "1.30% (환산) vs 평균 2.51%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 164,061 (현재 134,900)"}]}
{"ts": "2026-07-15T14:32:01.886416+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 578, "proceeds": 10712530, "entry_price": 19859, "pnl": -767982, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.778563+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,587 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,404"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.886416+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 578, "proceeds": 10712530, "entry_price": 19859, "pnl": -767982, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.778563+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,587 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,404"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T14:16:02.482790+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 21, "cost": 3060159, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 97022, "target": 212456, "signals": [{"label": "손절선", "ok": true, "detail": "97,022 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,456"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]} {"ts": "2026-07-16T14:16:02.482790+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 21, "cost": 3060159, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 97022, "target": 212456, "signals": [{"label": "손절선", "ok": true, "detail": "97,022 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,456"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]}
{"ts": "2026-07-20T12:28:02.317762+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 676, "proceeds": 6955969, "entry_price": 13320, "pnl": -2049961, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.477294+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,241"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.280771+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 106, "proceeds": 13943557, "entry_price": 120162, "pnl": 1204446, "pnl_pct": 9.69, "hold_from": "2026-07-01T09:46:03.082062+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:50:02.291040+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 167800, "qty": 57, "proceeds": 9545949, "entry_price": 188405, "pnl": -1194762, "pnl_pct": -10.94, "hold_from": "2026-07-10T09:28:02.623839+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "168,196 (현재 167,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 228,823"}, {"label": "추세(20일선)", "ok": true, "detail": "159,000"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T09:02:05.674730+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 99300, "qty": 48, "proceeds": 4757106, "entry_price": 110900, "pnl": -566893, "pnl_pct": -10.46, "hold_from": "2026-07-10T09:28:02.623560+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "99,988 (현재 99,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 132,725"}, {"label": "추세(20일선)", "ok": true, "detail": "96,775"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -141 · 기 +150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 113,471"}]}
{"ts": "2026-07-21T10:08:04.174963+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 133100, "qty": 39, "cost": 5191679, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120243, "target": 158813, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "133,000 vs 118,895"}, {"label": "정배열(5>20)", "ok": true, "detail": "123,200 / 118,895"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "123,200 / 118,615"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+38.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +137 · 기 +185 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+22%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.57% (환산) vs 평균 0.37% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 130,700"}, {"label": "거래량 급증", "ok": true, "detail": "1,575,915 (환산) vs 평균 1,026,357"}, {"label": "회전율 급증", "ok": true, "detail": "0.57% (환산) vs 평균 0.37%"}, {"label": "RSI", "ok": true, "detail": "63"}]}
{"ts": "2026-07-21T10:12:01.047659+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 167000, "qty": 31, "cost": 5177777, "path": "pullback", "reason": "눌림목 지정가 169,640 도달", "stop": 158000, "target": 185000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "167,000 vs 150,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "171,040 / 150,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,040 / 113,342"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+92.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -534 · 기 +316 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+7%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.29% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "951,819 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.29% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 169,640 (현재 167,000)"}]}
{"ts": "2026-07-21T12:06:01.172123+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 15, "cost": 5168275, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 426346, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 41746060.20800004, "cash": 58173199.98350004,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 104,
"entry_price": 120161.53846153847,
"entry_at": "2026-07-01T09:46:03.088452+09:00",
"stop": 131493,
"target": 138485,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,286 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6298105.1395625025,
"last_add_price": 122200
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,79 +13,16 @@
"entry_at": "2026-07-09T09:10:01.830227+09:00", "entry_at": "2026-07-09T09:10:01.830227+09:00",
"stop": 122978, "stop": 122978,
"target": 157755, "target": 157755,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5210031.291334455, "tranche_value": 5210031.291334455,
"last_add_price": 136900 "last_add_price": 136900
}, },
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 49,
"entry_price": 110900,
"entry_at": "2026-07-10T09:28:02.625955+09:00",
"stop": 102716,
"target": 127268,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 5492239.4858437525,
"last_add_price": 110900
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 57,
"entry_price": 188405.26315789475,
"entry_at": "2026-07-10T09:28:02.626186+09:00",
"stop": 173249,
"target": 218718,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5492592.291156253,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 341,
"entry_price": 13320.557184750733,
"entry_at": "2026-07-10T09:46:11.479243+09:00",
"stop": 10360,
"target": 19242,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2277771.920155072,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,32 +39,96 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 164,061 도달", "entry_reason": "눌림목 지정가 164,061 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 2118805.2917068345, "tranche_value": 2118805.2917068345,
"last_add_price": 145700 "last_add_price": 145700
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 41,
"entry_price": 133100,
"entry_at": "2026-07-21T10:08:04.176920+09:00",
"stop": 123458,
"target": 152385,
"peak": 133900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 132800,
"tranches": 1,
"tranche_value": 5510427.724906253,
"last_add_price": 133100
},
"319660": {
"code": "319660",
"name": "피에스케이",
"sources": [
"auto"
],
"qty": 32,
"entry_price": 167000,
"entry_at": "2026-07-21T10:12:01.049412+09:00",
"stop": 158000,
"target": 185000,
"peak": 173100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 169,640 도달",
"cur_price": 170200,
"tranches": 1,
"tranche_value": 5508864.064593753,
"last_add_price": 167000
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.173991+09:00",
"stop": 313808,
"target": 405884,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 4947379.149752503,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10600282.815500014, "realized_pnl": -11763991.271500017,
"closed_trades": 28, "closed_trades": 32,
"wins": 3, "wins": 4,
"peak_equity": 101291892.54300004, "peak_equity": 101291892.54300004,
"max_drawdown": 0.14689590840830097, "max_drawdown": 0.14689590840830097,
"last_exit": { "last_exit": {
"086790": "2026-06-26", "086790": "2026-07-20",
"030000": "2026-07-16", "030000": "2026-07-16",
"005930": "2026-06-23", "005930": "2026-06-23",
"403870": "2026-07-02", "403870": "2026-07-02",
"095610": "2026-07-16", "095610": "2026-07-16",
"003490": "2026-07-07", "003490": "2026-07-07",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-06", "009150": "2026-07-06",
"034730": "2026-07-08", "034730": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"055550": "2026-07-07", "055550": "2026-07-20",
"319660": "2026-07-13" "319660": "2026-07-13",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.582834+09:00", "created_at": "2026-06-15T14:55:00.582834+09:00",
"updated_at": "2026-07-16T15:28:02.571397+09:00" "updated_at": "2026-07-21T15:28:03.135271+09:00"
} }
@@ -78,3 +78,10 @@
{"ts": "2026-07-16T09:00:09.696452+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 26, "proceeds": 5423404, "entry_price": 150677, "pnl": 1505216, "pnl_pct": 38.71, "hold_from": "2026-07-09T09:02:04.468924+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:09.696452+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 26, "proceeds": 5423404, "entry_price": 150677, "pnl": 1505216, "pnl_pct": 38.71, "hold_from": "2026-07-09T09:02:04.468924+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:09.698334+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 284, "proceeds": 5266430, "entry_price": 19110, "pnl": -161624, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.469079+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:09.698334+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 284, "proceeds": 5266430, "entry_price": 19110, "pnl": -161624, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.469079+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-16T14:16:02.484959+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 14, "cost": 2040106, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 106641, "target": 193217, "signals": [{"label": "손절선", "ok": true, "detail": "106,641 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 193,217"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]} {"ts": "2026-07-16T14:16:02.484959+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 14, "cost": 2040106, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 106641, "target": 193217, "signals": [{"label": "손절선", "ok": true, "detail": "106,641 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 193,217"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]}
{"ts": "2026-07-20T09:04:02.883312+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 102700, "qty": 49, "proceeds": 5022487, "entry_price": 110900, "pnl": -412428, "pnl_pct": -7.39, "hold_from": "2026-07-10T09:28:02.625955+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "102,716 (현재 102,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,268"}, {"label": "추세(20일선)", "ok": true, "detail": "96,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +265"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 113,514"}]}
{"ts": "2026-07-20T09:04:02.883701+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 173000, "qty": 57, "proceeds": 9841771, "entry_price": 188405, "pnl": -898940, "pnl_pct": -8.18, "hold_from": "2026-07-10T09:28:02.626186+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "173,249 (현재 173,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 218,718"}, {"label": "추세(20일선)", "ok": true, "detail": "159,270"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -332 · 기 +291"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.319650+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 341, "proceeds": 3508854, "entry_price": 13321, "pnl": -1034137, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.479243+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,242"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.282718+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 104, "proceeds": 13680471, "entry_price": 120162, "pnl": 1181796, "pnl_pct": 9.69, "hold_from": "2026-07-01T09:46:03.088452+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:04.176921+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 133100, "qty": 41, "cost": 5457919, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 123458, "target": 152385, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "133,000 vs 118,895"}, {"label": "정배열(5>20)", "ok": true, "detail": "123,200 / 118,895"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "123,200 / 118,615"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+38.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +137 · 기 +185 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+22%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.57% (환산) vs 평균 0.37% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 130,700"}, {"label": "거래량 급증", "ok": true, "detail": "1,575,915 (환산) vs 평균 1,026,357"}, {"label": "회전율 급증", "ok": true, "detail": "0.57% (환산) vs 평균 0.37%"}, {"label": "RSI", "ok": true, "detail": "63"}]}
{"ts": "2026-07-21T10:12:01.049414+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 167000, "qty": 32, "cost": 5344802, "path": "pullback", "reason": "눌림목 지정가 169,640 도달", "stop": 158000, "target": 185000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "167,000 vs 150,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "171,040 / 150,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,040 / 113,342"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+92.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -534 · 기 +316 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+7%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.29% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "951,819 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.29% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 169,640 (현재 167,000)"}]}
{"ts": "2026-07-21T12:06:01.173992+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 14, "cost": 4823723, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 405884, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 44023262.51499996, "cash": 66235214.13799997,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 103,
"entry_price": 120180.58252427184,
"entry_at": "2026-07-01T09:46:03.094624+09:00",
"stop": 131493,
"target": 133951,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,779 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6239163.4909375,
"last_add_price": 122200
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,79 +13,16 @@
"entry_at": "2026-07-09T09:10:01.832067+09:00", "entry_at": "2026-07-09T09:10:01.832067+09:00",
"stop": 122979, "stop": 122979,
"target": 151959, "target": 151959,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5409440.346221704, "tranche_value": 5409440.346221704,
"last_add_price": 136900 "last_add_price": 136900
}, },
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 51,
"entry_price": 110900,
"entry_at": "2026-07-10T09:28:02.628175+09:00",
"stop": 102716,
"target": 123176,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 5722243.1968749985,
"last_add_price": 110900
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 188406.77966101695,
"entry_at": "2026-07-10T09:28:02.628441+09:00",
"stop": 173250,
"target": 211142,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5723049.547812499,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 356,
"entry_price": 13319.943820224718,
"entry_at": "2026-07-10T09:46:11.481166+09:00",
"stop": 10360,
"target": 17760,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2374033.23428836,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,31 +39,74 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,441 도달", "entry_reason": "눌림목 지정가 154,441 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 2200820.745182178, "tranche_value": 2200820.745182178,
"last_add_price": 145700 "last_add_price": 145700
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 42,
"entry_price": 133100,
"entry_at": "2026-07-21T10:08:04.179066+09:00",
"stop": 123458,
"target": 147564,
"peak": 133900,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 132800,
"tranches": 1,
"tranche_value": 5720873.507374998,
"last_add_price": 133100
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.175730+09:00",
"stop": 313808,
"target": 390538,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 5132330.379099764,
"last_add_price": 344500
} }
}, },
"realized_pnl": -7092405.9350000145, "realized_pnl": -8363176.192000017,
"closed_trades": 20, "closed_trades": 24,
"wins": 3, "wins": 4,
"peak_equity": 100161893.89500001, "peak_equity": 100161893.89500001,
"max_drawdown": 0.1050800786178568, "max_drawdown": 0.1050800786178568,
"last_exit": { "last_exit": {
"086790": "2026-06-19", "086790": "2026-07-20",
"030000": "2026-07-16", "030000": "2026-07-16",
"005930": "2026-06-23", "005930": "2026-06-23",
"403870": "2026-07-02", "403870": "2026-07-02",
"003490": "2026-07-07", "003490": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"093370": "2026-07-07", "093370": "2026-07-20",
"214450": "2026-07-06", "214450": "2026-07-06",
"055550": "2026-07-07", "055550": "2026-07-20",
"034730": "2026-07-08", "034730": "2026-07-08",
"319660": "2026-07-13", "319660": "2026-07-13",
"095610": "2026-07-16" "095610": "2026-07-16",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.582849+09:00", "created_at": "2026-06-15T14:55:00.582849+09:00",
"updated_at": "2026-07-16T15:28:02.573106+09:00" "updated_at": "2026-07-21T15:28:03.136942+09:00"
} }
@@ -55,3 +55,9 @@
{"ts": "2026-07-16T09:00:09.801744+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 29, "proceeds": 6049181, "entry_price": 160724, "pnl": 1387482, "pnl_pct": 30.04, "hold_from": "2026-07-07T10:06:07.254675+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:09.801744+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 29, "proceeds": 6049181, "entry_price": 160724, "pnl": 1387482, "pnl_pct": 30.04, "hold_from": "2026-07-07T10:06:07.254675+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:09.803580+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 295, "proceeds": 5470412, "entry_price": 19110, "pnl": -167884, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.471277+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,749"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:09.803580+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 295, "proceeds": 5470412, "entry_price": 19110, "pnl": -167884, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.471277+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,749"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-16T14:16:02.487100+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 15, "cost": 2185828, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 106641, "target": 178788, "signals": [{"label": "손절선", "ok": true, "detail": "106,641 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 178,788"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]} {"ts": "2026-07-16T14:16:02.487100+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 15, "cost": 2185828, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 106641, "target": 178788, "signals": [{"label": "손절선", "ok": true, "detail": "106,641 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 178,788"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]}
{"ts": "2026-07-20T09:04:02.885762+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 102700, "qty": 51, "proceeds": 5227486, "entry_price": 110900, "pnl": -429262, "pnl_pct": -7.39, "hold_from": "2026-07-10T09:28:02.628175+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "102,716 (현재 102,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 123,176"}, {"label": "추세(20일선)", "ok": true, "detail": "96,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +265"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 113,514"}]}
{"ts": "2026-07-20T09:04:02.886160+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 173000, "qty": 59, "proceeds": 10187096, "entry_price": 188407, "pnl": -930571, "pnl_pct": -8.18, "hold_from": "2026-07-10T09:28:02.628441+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "173,250 (현재 173,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 211,142"}, {"label": "추세(20일선)", "ok": true, "detail": "159,270"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -332 · 기 +291"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.321513+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 356, "proceeds": 3663203, "entry_price": 13320, "pnl": -1079408, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.481166+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,760"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.284611+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 103, "proceeds": 13548928, "entry_price": 120181, "pnl": 1168471, "pnl_pct": 9.67, "hold_from": "2026-07-01T09:46:03.094624+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:04.179068+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 133100, "qty": 42, "cost": 5591039, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 123458, "target": 147564, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "133,000 vs 118,895"}, {"label": "정배열(5>20)", "ok": true, "detail": "123,200 / 118,895"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "123,200 / 118,615"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+38.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +137 · 기 +185 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+22%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.57% (환산) vs 평균 0.37% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 130,700"}, {"label": "거래량 급증", "ok": true, "detail": "1,575,915 (환산) vs 평균 1,026,357"}, {"label": "회전율 급증", "ok": true, "detail": "0.57% (환산) vs 평균 0.37%"}, {"label": "RSI", "ok": true, "detail": "63"}]}
{"ts": "2026-07-21T12:06:01.175731+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 14, "cost": 4823723, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 390538, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 37059393.81399999, "cash": 51138926.99349999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": { "086790": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,779 도달", "entry_reason": "눌림목 지정가 118,779 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 6239163.4909375, "tranche_value": 6239163.4909375,
"last_add_price": 122200 "last_add_price": 122200
@@ -39,7 +39,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 2396369.0841200342, "tranche_value": 2396369.0841200342,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,79 +55,16 @@
"entry_at": "2026-07-09T09:10:01.833874+09:00", "entry_at": "2026-07-09T09:10:01.833874+09:00",
"stop": 122949, "stop": 122949,
"target": 169318, "target": 169318,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5319361.910927292, "tranche_value": 5319361.910927292,
"last_add_price": 136900 "last_add_price": 136900
}, },
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 50,
"entry_price": 110900,
"entry_at": "2026-07-10T09:28:02.630373+09:00",
"stop": 102716,
"target": 135453,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 5627802.666156249,
"last_add_price": 110900
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 188406.77966101695,
"entry_at": "2026-07-10T09:28:02.630604+09:00",
"stop": 173250,
"target": 233877,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5628563.181781249,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 349,
"entry_price": 13321.002865329512,
"entry_at": "2026-07-10T09:46:11.483048+09:00",
"stop": 10360,
"target": 22204,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2334726.8968007183,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,441 도달", "entry_reason": "눌림목 지정가 154,441 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 2165153.313254011, "tranche_value": 2165153.313254011,
"last_add_price": 145700 "last_add_price": 145700
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.177446+09:00",
"stop": 313808,
"target": 436576,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 4992940.599795671,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10016538.766500015, "realized_pnl": -12426508.641500015,
"closed_trades": 19, "closed_trades": 22,
"wins": 1, "wins": 1,
"peak_equity": 100161893.89500001, "peak_equity": 100161893.89500001,
"max_drawdown": 0.12014316566452954, "max_drawdown": 0.12015391266579073,
"last_exit": { "last_exit": {
"086790": "2026-06-19", "086790": "2026-06-19",
"030000": "2026-07-16", "030000": "2026-07-16",
@@ -162,12 +120,13 @@
"403870": "2026-07-02", "403870": "2026-07-02",
"003490": "2026-07-07", "003490": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"093370": "2026-07-07", "093370": "2026-07-20",
"214450": "2026-07-06", "214450": "2026-07-06",
"055550": "2026-07-07", "055550": "2026-07-20",
"034730": "2026-07-08", "034730": "2026-07-08",
"319660": "2026-07-13" "319660": "2026-07-13",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.582864+09:00", "created_at": "2026-06-15T14:55:00.582864+09:00",
"updated_at": "2026-07-16T15:28:02.574780+09:00" "updated_at": "2026-07-21T15:28:03.138558+09:00"
} }
@@ -56,3 +56,7 @@
{"ts": "2026-07-15T09:02:02.656005+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 135500, "qty": 15, "cost": 2032805, "path": "pullback", "reason": "눌림목 지정가 154,441 도달", "stop": 106641, "target": 222076, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "134,900 vs 120,585"}, {"label": "정배열(5>20)", "ok": true, "detail": "139,000 / 120,585"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "139,000 / 121,348"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,752 · 기 +1,989 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.30% (환산) vs 평균 2.51% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 183,300"}, {"label": "거래량 급증", "ok": false, "detail": "636,187 (환산) vs 평균 1,234,482"}, {"label": "회전율 급증", "ok": false, "detail": "1.30% (환산) vs 평균 2.51%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,441 (현재 134,900)"}]} {"ts": "2026-07-15T09:02:02.656005+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 135500, "qty": 15, "cost": 2032805, "path": "pullback", "reason": "눌림목 지정가 154,441 도달", "stop": 106641, "target": 222076, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "134,900 vs 120,585"}, {"label": "정배열(5>20)", "ok": true, "detail": "139,000 / 120,585"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "139,000 / 121,348"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,752 · 기 +1,989 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.30% (환산) vs 평균 2.51% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 183,300"}, {"label": "거래량 급증", "ok": false, "detail": "636,187 (환산) vs 평균 1,234,482"}, {"label": "회전율 급증", "ok": false, "detail": "1.30% (환산) vs 평균 2.51%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 154,441 (현재 134,900)"}]}
{"ts": "2026-07-16T09:00:09.907774+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 290, "proceeds": 5377693, "entry_price": 19110, "pnl": -165038, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.473411+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,388"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:09.907774+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 290, "proceeds": 5377693, "entry_price": 19110, "pnl": -165038, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.473411+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,388"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-16T14:16:02.489161+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 14, "cost": 2040106, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 106641, "target": 222076, "signals": [{"label": "손절선", "ok": true, "detail": "106,641 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 222,076"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]} {"ts": "2026-07-16T14:16:02.489161+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 145700, "qty": 14, "cost": 2040106, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 106641, "target": 222076, "signals": [{"label": "손절선", "ok": true, "detail": "106,641 (현재 145,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 222,076"}, {"label": "추세(20일선)", "ok": true, "detail": "121,130"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,717 · 기 +2,299"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 145,295"}]}
{"ts": "2026-07-20T09:04:02.888178+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 102700, "qty": 50, "proceeds": 5124987, "entry_price": 110900, "pnl": -420845, "pnl_pct": -7.39, "hold_from": "2026-07-10T09:28:02.630373+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "102,716 (현재 102,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,453"}, {"label": "추세(20일선)", "ok": true, "detail": "96,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -111 · 기 +265"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 113,514"}]}
{"ts": "2026-07-20T09:04:02.888496+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 173000, "qty": 59, "proceeds": 10187096, "entry_price": 188407, "pnl": -930571, "pnl_pct": -8.18, "hold_from": "2026-07-10T09:28:02.630604+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "173,250 (현재 173,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 233,877"}, {"label": "추세(20일선)", "ok": true, "detail": "159,270"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -332 · 기 +291"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.323325+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 349, "proceeds": 3591174, "entry_price": 13321, "pnl": -1058554, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.483048+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,204"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.177447+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 14, "cost": 4823723, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 436576, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 43604031.40050003, "cash": 61412926.205000035,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 86,
"entry_price": 111367.44186046511,
"entry_at": "2026-07-06T09:34:02.077204+09:00",
"stop": 100198,
"target": 144876,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4841960.177995926,
"last_add_price": 112800
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,37 +13,16 @@
"entry_at": "2026-07-09T09:10:01.835827+09:00", "entry_at": "2026-07-09T09:10:01.835827+09:00",
"stop": 119106, "stop": 119106,
"target": 180931, "target": 180931,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4136719.8054039073, "tranche_value": 4136719.8054039073,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 47,
"entry_price": 186244.68085106384,
"entry_at": "2026-07-10T09:18:05.236324+09:00",
"stop": 166364,
"target": 245885,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4424909.829153726,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -81,32 +39,11 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4581298.170382758, "tranche_value": 4581298.170382758,
"last_add_price": 134300 "last_add_price": 134300
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 139,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.480575+09:00",
"stop": 10360,
"target": 23560,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1911444.163842379,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1933448.411487534, "tranche_value": 1933448.411487534,
"last_add_price": 139100 "last_add_price": 139100
@@ -144,17 +81,17 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3813943.0504600187, "tranche_value": 3813943.0504600187,
"last_add_price": 350000 "last_add_price": 350000
} }
}, },
"realized_pnl": -8008971.638500009, "realized_pnl": -10432951.31000001,
"closed_trades": 12, "closed_trades": 15,
"wins": 0, "wins": 0,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.09472944276499971, "max_drawdown": 0.11365573794999957,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -162,9 +99,11 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"003490": "2026-07-09" "003490": "2026-07-09",
"055550": "2026-07-20",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.582879+09:00", "created_at": "2026-06-15T14:55:00.582879+09:00",
"updated_at": "2026-07-16T15:28:02.576639+09:00" "updated_at": "2026-07-21T15:28:03.140485+09:00"
} }
@@ -41,3 +41,6 @@
{"ts": "2026-07-13T09:26:03.420105+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 216800, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 216,800"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]} {"ts": "2026-07-13T09:26:03.420105+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 216800, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 216,800"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]}
{"ts": "2026-07-15T14:32:01.893743+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 602, "proceeds": 11157341, "entry_price": 19858, "pnl": -799013, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.786275+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,675"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.893743+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 602, "proceeds": 11157341, "entry_price": 19858, "pnl": -799013, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.786275+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,675"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:22:02.314943+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 350000, "qty": 10, "cost": 3500525, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 297363, "target": 461911, "signals": [{"label": "손절선", "ok": true, "detail": "297,363 (현재 350,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 461,911"}, {"label": "추세(10일선)", "ok": true, "detail": "306,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 348,838"}]} {"ts": "2026-07-16T09:22:02.314943+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 350000, "qty": 10, "cost": 3500525, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 297363, "target": 461911, "signals": [{"label": "손절선", "ok": true, "detail": "297,363 (현재 350,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 461,911"}, {"label": "추세(10일선)", "ok": true, "detail": "306,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 348,838"}]}
{"ts": "2026-07-20T12:28:02.325141+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 139, "proceeds": 1430295, "entry_price": 13660, "pnl": -468729, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.480575+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,560"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T14:12:02.385143+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 86, "proceeds": 8591813, "entry_price": 111367, "pnl": -987223, "pnl_pct": -10.12, "hold_from": "2026-07-06T09:34:02.077204+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,198 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,876"}, {"label": "추세(10일선)", "ok": true, "detail": "98,970"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.740945+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 47, "proceeds": 7786786, "entry_price": 186245, "pnl": -968027, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.236324+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,364 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,885"}, {"label": "추세(10일선)", "ok": true, "detail": "156,380"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 43604031.40050003, "cash": 61412926.205000035,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 86,
"entry_price": 111367.44186046511,
"entry_at": "2026-07-06T09:34:02.079678+09:00",
"stop": 100198,
"target": 133706,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4841960.177995926,
"last_add_price": 112800
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,37 +13,16 @@
"entry_at": "2026-07-09T09:10:01.837488+09:00", "entry_at": "2026-07-09T09:10:01.837488+09:00",
"stop": 119106, "stop": 119106,
"target": 165475, "target": 165475,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4136719.8054039073, "tranche_value": 4136719.8054039073,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 47,
"entry_price": 186244.68085106384,
"entry_at": "2026-07-10T09:18:05.238376+09:00",
"stop": 166364,
"target": 226005,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4424909.829153726,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -81,32 +39,11 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4581298.170382758, "tranche_value": 4581298.170382758,
"last_add_price": 134300 "last_add_price": 134300
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 139,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.482327+09:00",
"stop": 10360,
"target": 20260,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1911444.163842379,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1933448.411487534, "tranche_value": 1933448.411487534,
"last_add_price": 139100 "last_add_price": 139100
@@ -144,17 +81,17 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3813943.0504600187, "tranche_value": 3813943.0504600187,
"last_add_price": 350000 "last_add_price": 350000
} }
}, },
"realized_pnl": -8008971.638500009, "realized_pnl": -10432951.31000001,
"closed_trades": 12, "closed_trades": 15,
"wins": 0, "wins": 0,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.09472944276499971, "max_drawdown": 0.11365573794999957,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -162,9 +99,11 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"003490": "2026-07-09" "003490": "2026-07-09",
"055550": "2026-07-20",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.582910+09:00", "created_at": "2026-06-15T14:55:00.582910+09:00",
"updated_at": "2026-07-16T15:28:02.578315+09:00" "updated_at": "2026-07-21T15:28:03.142121+09:00"
} }
@@ -41,3 +41,6 @@
{"ts": "2026-07-13T09:26:03.421829+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 186600, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 186,600"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]} {"ts": "2026-07-13T09:26:03.421829+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 186600, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 186,600"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]}
{"ts": "2026-07-15T14:32:01.895515+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 602, "proceeds": 11157341, "entry_price": 19858, "pnl": -799013, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.787960+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,403"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.895515+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 602, "proceeds": 11157341, "entry_price": 19858, "pnl": -799013, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.787960+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,403"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:22:02.316697+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 350000, "qty": 10, "cost": 3500525, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 297363, "target": 420774, "signals": [{"label": "손절선", "ok": true, "detail": "297,363 (현재 350,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 420,774"}, {"label": "추세(10일선)", "ok": true, "detail": "306,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 348,838"}]} {"ts": "2026-07-16T09:22:02.316697+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 350000, "qty": 10, "cost": 3500525, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 297363, "target": 420774, "signals": [{"label": "손절선", "ok": true, "detail": "297,363 (현재 350,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 420,774"}, {"label": "추세(10일선)", "ok": true, "detail": "306,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 348,838"}]}
{"ts": "2026-07-20T12:28:02.326967+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 139, "proceeds": 1430295, "entry_price": 13660, "pnl": -468729, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.482327+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,260"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T14:12:02.751263+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 86, "proceeds": 8591813, "entry_price": 111367, "pnl": -987223, "pnl_pct": -10.12, "hold_from": "2026-07-06T09:34:02.079678+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,198 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 133,706"}, {"label": "추세(10일선)", "ok": true, "detail": "98,970"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.752134+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 47, "proceeds": 7786786, "entry_price": 186245, "pnl": -968027, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.238376+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,364 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 226,005"}, {"label": "추세(10일선)", "ok": true, "detail": "156,380"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 44136597.836500004, "cash": 61955782.5365,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 86,
"entry_price": 111367.44186046511,
"entry_at": "2026-07-06T09:34:02.081925+09:00",
"stop": 100198,
"target": 128122,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4841960.177995926,
"last_add_price": 112800
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,37 +13,16 @@
"entry_at": "2026-07-09T09:10:01.839168+09:00", "entry_at": "2026-07-09T09:10:01.839168+09:00",
"stop": 119106, "stop": 119106,
"target": 157747, "target": 157747,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4167016.287066403, "tranche_value": 4167016.287066403,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 47,
"entry_price": 186244.68085106384,
"entry_at": "2026-07-10T09:18:05.240331+09:00",
"stop": 166364,
"target": 216065,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4457312.045784097,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -81,32 +39,11 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4614837.858935807, "tranche_value": 4614837.858935807,
"last_add_price": 134300 "last_add_price": 134300
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 140,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.484072+09:00",
"stop": 10360,
"target": 18610,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1925437.974607682,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1947572.2900013078, "tranche_value": 1947572.2900013078,
"last_add_price": 139100 "last_add_price": 139100
@@ -144,17 +81,17 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3841906.161963773, "tranche_value": 3841906.161963773,
"last_add_price": 350000 "last_add_price": 350000
} }
}, },
"realized_pnl": -7331823.518500009, "realized_pnl": -9759175.34350001,
"closed_trades": 12, "closed_trades": 15,
"wins": 0, "wins": 0,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.08796497840499998, "max_drawdown": 0.10694917463499994,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -162,9 +99,11 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"003490": "2026-07-09" "003490": "2026-07-09",
"055550": "2026-07-20",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.582926+09:00", "created_at": "2026-06-15T14:55:00.582926+09:00",
"updated_at": "2026-07-16T15:28:02.580013+09:00" "updated_at": "2026-07-21T15:28:03.143777+09:00"
} }
@@ -40,3 +40,6 @@
{"ts": "2026-07-13T09:26:03.423477+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 171500, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,500"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]} {"ts": "2026-07-13T09:26:03.423477+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 171500, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,500"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]}
{"ts": "2026-07-15T14:32:01.897265+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 602, "proceeds": 11157341, "entry_price": 19858, "pnl": -799013, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.789631+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,766"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.897265+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 602, "proceeds": 11157341, "entry_price": 19858, "pnl": -799013, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.789631+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,766"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:22:02.318451+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 350000, "qty": 10, "cost": 3500525, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 297363, "target": 400206, "signals": [{"label": "손절선", "ok": true, "detail": "297,363 (현재 350,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 400,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 348,838"}]} {"ts": "2026-07-16T09:22:02.318451+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 350000, "qty": 10, "cost": 3500525, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 297363, "target": 400206, "signals": [{"label": "손절선", "ok": true, "detail": "297,363 (현재 350,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 400,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 348,838"}]}
{"ts": "2026-07-20T12:28:02.328809+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 140, "proceeds": 1440585, "entry_price": 13660, "pnl": -472101, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.484072+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,610"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T14:12:02.757886+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 86, "proceeds": 8591813, "entry_price": 111367, "pnl": -987223, "pnl_pct": -10.12, "hold_from": "2026-07-06T09:34:02.081925+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,198 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 128,122"}, {"label": "추세(10일선)", "ok": true, "detail": "98,970"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.758626+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 47, "proceeds": 7786786, "entry_price": 186245, "pnl": -968027, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.240331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,364 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 216,065"}, {"label": "추세(10일선)", "ok": true, "detail": "156,380"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 44044871.48100001, "cash": 53050867.38800001,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": { "086790": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,779 도달", "entry_reason": "눌림목 지정가 118,779 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 6250717.7646875, "tranche_value": 6250717.7646875,
"last_add_price": 122200 "last_add_price": 122200
@@ -39,7 +39,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 2409186.3415744826, "tranche_value": 2409186.3415744826,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +55,16 @@
"entry_at": "2026-07-09T09:36:03.473480+09:00", "entry_at": "2026-07-09T09:36:03.473480+09:00",
"stop": 122826, "stop": 122826,
"target": 169195, "target": 169195,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5273495.601167365, "tranche_value": 5273495.601167365,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 188406.77966101695,
"entry_at": "2026-07-10T09:28:02.638255+09:00",
"stop": 173250,
"target": 233877,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5691393.846687501,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 354,
"entry_price": 13319.830508474577,
"entry_at": "2026-07-10T09:46:11.489938+09:00",
"stop": 10360,
"target": 22199,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2362436.5967844333,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,14 +81,35 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1941238.6485938414, "tranche_value": 1941238.6485938414,
"last_add_price": 139100 "last_add_price": 139100
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.185929+09:00",
"stop": 313808,
"target": 436576,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 5085796.90859035,
"last_add_price": 344500
} }
}, },
"realized_pnl": -9025770.17100001, "realized_pnl": -11029645.49700001,
"closed_trades": 17, "closed_trades": 19,
"wins": 1, "wins": 1,
"peak_equity": 100344662.275, "peak_equity": 100344662.275,
"max_drawdown": 0.11172115435773428, "max_drawdown": 0.11172115435773428,
@@ -141,10 +120,11 @@
"003490": "2026-07-07", "003490": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-03", "214450": "2026-07-03",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-08", "034730": "2026-07-08",
"319660": "2026-07-13" "319660": "2026-07-13",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583136+09:00", "created_at": "2026-06-15T14:55:00.583136+09:00",
"updated_at": "2026-07-16T15:28:02.581691+09:00" "updated_at": "2026-07-21T15:28:03.145394+09:00"
} }
@@ -51,3 +51,6 @@
{"ts": "2026-07-13T09:36:02.288771+09:00", "side": "BUY", "code": "105560", "name": "KB금융", "price": 191000, "qty": 29, "cost": 5539831, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 171311, "target": 229666, "signals": [{"label": "손절선", "ok": true, "detail": "171,311 (현재 191,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,666"}, {"label": "추세(20일선)", "ok": true, "detail": "160,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -867 · 기 +1,393"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 190,952"}]} {"ts": "2026-07-13T09:36:02.288771+09:00", "side": "BUY", "code": "105560", "name": "KB금융", "price": 191000, "qty": 29, "cost": 5539831, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 171311, "target": 229666, "signals": [{"label": "손절선", "ok": true, "detail": "171,311 (현재 191,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,666"}, {"label": "추세(20일선)", "ok": true, "detail": "160,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -867 · 기 +1,393"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 190,952"}]}
{"ts": "2026-07-13T12:44:04.369603+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 35, "proceeds": 6563676, "entry_price": 158900, "pnl": 1001342, "pnl_pct": 18.25, "hold_from": "2026-07-10T09:24:02.119171+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-13T12:44:04.369603+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 35, "proceeds": 6563676, "entry_price": 158900, "pnl": 1001342, "pnl_pct": 18.25, "hold_from": "2026-07-10T09:24:02.119171+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:12.110669+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 293, "proceeds": 5433324, "entry_price": 19110, "pnl": -166746, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.480985+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,388"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:12.110669+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 293, "proceeds": 5433324, "entry_price": 19110, "pnl": -166746, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.480985+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,388"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-20T09:04:02.896610+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 173000, "qty": 59, "proceeds": 10187096, "entry_price": 188407, "pnl": -930571, "pnl_pct": -8.18, "hold_from": "2026-07-10T09:28:02.638255+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "173,250 (현재 173,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 233,877"}, {"label": "추세(20일선)", "ok": true, "detail": "159,270"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -332 · 기 +291"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.330892+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 354, "proceeds": 3642623, "entry_price": 13320, "pnl": -1073304, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.489938+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,199"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.185931+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 14, "cost": 4823723, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 436576, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 47082257.93550003, "cash": 50542955.130500026,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"095610": { "095610": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,264 도달", "entry_reason": "눌림목 지정가 158,264 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 2088366.7995946202, "tranche_value": 2088366.7995946202,
"last_add_price": 179100 "last_add_price": 179100
@@ -39,7 +39,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달", "entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 5323473.79266045, "tranche_value": 5323473.79266045,
"last_add_price": 126200 "last_add_price": 126200
@@ -55,58 +55,16 @@
"entry_at": "2026-07-09T09:36:03.475227+09:00", "entry_at": "2026-07-09T09:36:03.475227+09:00",
"stop": 118952, "stop": 118952,
"target": 180777, "target": 180777,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4027945.7278098115, "tranche_value": 4027945.7278098115,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 46,
"entry_price": 187650.0,
"entry_at": "2026-07-10T09:24:02.480664+09:00",
"stop": 167541,
"target": 247976,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4392104.9291198645,
"last_add_price": 190400
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 140,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.487501+09:00",
"stop": 10360,
"target": 23560,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1915987.3066294398,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,7 +81,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1936694.4171909117, "tranche_value": 1936694.4171909117,
"last_add_price": 139100 "last_add_price": 139100
@@ -144,29 +102,51 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3889733.683715179, "tranche_value": 3889733.683715179,
"last_add_price": 353000 "last_add_price": 353000
},
"003490": {
"code": "003490",
"name": "대한항공",
"sources": [
"auto"
],
"qty": 222,
"entry_price": 25350,
"entry_at": "2026-07-21T14:20:02.200879+09:00",
"stop": 23650,
"target": 30450,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 25,328 도달",
"cur_price": 25350,
"tranches": 1,
"tranche_value": 5650193.705343751,
"last_add_price": 25350
} }
}, },
"realized_pnl": -8514182.529500008, "realized_pnl": -9970822.82450001,
"closed_trades": 14, "closed_trades": 16,
"wins": 0, "wins": 0,
"peak_equity": 101140808.32700005, "peak_equity": 101140808.32700005,
"max_drawdown": 0.10673580120694118, "max_drawdown": 0.1142309344033173,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
"010120": "2026-06-25", "010120": "2026-06-25",
"298040": "2026-06-26", "298040": "2026-06-26",
"403870": "2026-07-07", "403870": "2026-07-07",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"034730": "2026-07-07", "034730": "2026-07-07",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583184+09:00", "created_at": "2026-06-15T14:55:00.583184+09:00",
"updated_at": "2026-07-16T15:28:02.583347+09:00" "updated_at": "2026-07-21T15:28:03.147017+09:00"
} }
@@ -46,3 +46,6 @@
{"ts": "2026-07-13T09:26:03.426797+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 216800, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 216,800"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]} {"ts": "2026-07-13T09:26:03.426797+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 216800, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 216,800"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]}
{"ts": "2026-07-15T14:32:01.901012+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 600, "proceeds": 11120273, "entry_price": 19858, "pnl": -796284, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.793045+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,675"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.901012+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 600, "proceeds": 11120273, "entry_price": 19858, "pnl": -796284, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.793045+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,675"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:28:03.497807+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 464911, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 464,911"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]} {"ts": "2026-07-16T09:28:03.497807+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 464911, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 464,911"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]}
{"ts": "2026-07-20T12:28:02.332552+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 140, "proceeds": 1440585, "entry_price": 13660, "pnl": -472101, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.487501+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,560"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T12:58:05.500110+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166600, "qty": 46, "proceeds": 7648656, "entry_price": 187650, "pnl": -984539, "pnl_pct": -11.22, "hold_from": "2026-07-10T09:24:02.480664+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "167,541 (현재 166,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 247,976"}, {"label": "추세(10일선)", "ok": true, "detail": "156,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T14:20:02.200881+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25350, "qty": 222, "cost": 5628544, "path": "pullback", "reason": "눌림목 지정가 25,328 도달", "stop": 23650, "target": 30450, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "25,300 vs 25,185"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,400 / 25,185"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,400 / 25,157"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+18.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +524 · 기 +141 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.44% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "1,611,169 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.44% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,328 (현재 25,300)"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 51504380.627000034, "cash": 67148105.16750002,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"095610": { "095610": {
@@ -18,32 +18,11 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,264 도달", "entry_reason": "눌림목 지정가 158,264 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 2088366.7995946202, "tranche_value": 2088366.7995946202,
"last_add_price": 179100 "last_add_price": 179100
}, },
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 104,
"entry_price": 120161.53846153847,
"entry_at": "2026-07-01T09:46:03.120666+09:00",
"stop": 131493,
"target": 138485,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,286 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6310113.192625003,
"last_add_price": 122200
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:36:03.476927+09:00", "entry_at": "2026-07-09T09:36:03.476927+09:00",
"stop": 118952, "stop": 118952,
"target": 165321, "target": 165321,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4067747.817915917, "tranche_value": 4067747.817915917,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 46,
"entry_price": 188450.0,
"entry_at": "2026-07-10T09:28:02.641878+09:00",
"stop": 168241,
"target": 228868,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4443616.405546745,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 361,
"entry_price": 13321.634349030472,
"entry_at": "2026-07-10T09:46:11.493339+09:00",
"stop": 10360,
"target": 19245,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2412139.968152501,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,29 +60,72 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1987575.3756416566, "tranche_value": 1987575.3756416566,
"last_add_price": 139100 "last_add_price": 139100
},
"319660": {
"code": "319660",
"name": "피에스케이",
"sources": [
"auto"
],
"qty": 34,
"entry_price": 167000,
"entry_at": "2026-07-21T10:12:01.062791+09:00",
"stop": 158000,
"target": 185000,
"peak": 173100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 169,640 도달",
"cur_price": 170200,
"tranches": 1,
"tranche_value": 5768589.080781251,
"last_add_price": 167000
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 11,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.189281+09:00",
"stop": 303577,
"target": 426346,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3891157.6622701483,
"last_add_price": 344500
} }
}, },
"realized_pnl": -6717543.60150001, "realized_pnl": -7583405.127500014,
"closed_trades": 16, "closed_trades": 19,
"wins": 1, "wins": 2,
"peak_equity": 101368884.75700004, "peak_equity": 101368884.75700004,
"max_drawdown": 0.1004769195391259, "max_drawdown": 0.1004769195391259,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-07-20",
"403870": "2026-07-07", "403870": "2026-07-07",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"009150": "2026-07-06", "009150": "2026-07-06",
"034730": "2026-07-07", "034730": "2026-07-07",
"319660": "2026-07-13", "319660": "2026-07-13",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583198+09:00", "created_at": "2026-06-15T14:55:00.583198+09:00",
"updated_at": "2026-07-16T15:28:02.585049+09:00" "updated_at": "2026-07-21T15:28:03.148659+09:00"
} }
@@ -49,3 +49,8 @@
{"ts": "2026-07-13T09:36:02.292080+09:00", "side": "BUY", "code": "105560", "name": "KB금융", "price": 191000, "qty": 23, "cost": 4393659, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 166448, "target": 224803, "signals": [{"label": "손절선", "ok": true, "detail": "166,448 (현재 191,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 224,803"}, {"label": "추세(20일선)", "ok": true, "detail": "160,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -867 · 기 +1,393"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 190,952"}]} {"ts": "2026-07-13T09:36:02.292080+09:00", "side": "BUY", "code": "105560", "name": "KB금융", "price": 191000, "qty": 23, "cost": 4393659, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 166448, "target": 224803, "signals": [{"label": "손절선", "ok": true, "detail": "166,448 (현재 191,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 224,803"}, {"label": "추세(20일선)", "ok": true, "detail": "160,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -867 · 기 +1,393"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 190,952"}]}
{"ts": "2026-07-13T12:44:04.372866+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 68, "proceeds": 12752284, "entry_price": 168659, "pnl": 1281764, "pnl_pct": 11.41, "hold_from": "2026-07-10T09:00:13.958136+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-13T12:44:04.372866+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 68, "proceeds": 12752284, "entry_price": 168659, "pnl": 1281764, "pnl_pct": 11.41, "hold_from": "2026-07-10T09:00:13.958136+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-15T14:32:01.902737+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 604, "proceeds": 11194408, "entry_price": 19858, "pnl": -801741, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.794816+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,403"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.902737+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 604, "proceeds": 11194408, "entry_price": 19858, "pnl": -801741, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.794816+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,403"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.334444+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 361, "proceeds": 3714652, "entry_price": 13322, "pnl": -1095179, "pnl_pct": -22.61, "hold_from": "2026-07-10T09:46:11.493339+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,245"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.296614+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 104, "proceeds": 13680471, "entry_price": 120162, "pnl": 1181796, "pnl_pct": 9.69, "hold_from": "2026-07-01T09:46:03.120666+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:48:03.492422+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 168100, "qty": 46, "proceeds": 7717521, "entry_price": 188450, "pnl": -952479, "pnl_pct": -10.8, "hold_from": "2026-07-10T09:28:02.641878+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "168,241 (현재 168,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 228,868"}, {"label": "추세(20일선)", "ok": true, "detail": "159,020"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:12:01.062793+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 167000, "qty": 34, "cost": 5678852, "path": "pullback", "reason": "눌림목 지정가 169,640 도달", "stop": 158000, "target": 185000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "167,000 vs 150,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "171,040 / 150,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,040 / 113,342"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+92.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -534 · 기 +316 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+7%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.29% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "951,819 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.29% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 169,640 (현재 167,000)"}]}
{"ts": "2026-07-21T12:06:01.189282+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 11, "cost": 3790068, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 426346, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 51041330.586000025, "cash": 72211784.04550003,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 103,
"entry_price": 120180.58252427184,
"entry_at": "2026-07-01T09:46:03.123573+09:00",
"stop": 131493,
"target": 138542,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,779 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6234035.149062502,
"last_add_price": 122200
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1823343.1265236405, "tranche_value": 1823343.1265236405,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:36:03.478610+09:00", "entry_at": "2026-07-09T09:36:03.478610+09:00",
"stop": 118952, "stop": 118952,
"target": 165321, "target": 165321,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4039283.450888891, "tranche_value": 4039283.450888891,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 46,
"entry_price": 188450.0,
"entry_at": "2026-07-10T09:28:02.643669+09:00",
"stop": 168241,
"target": 228868,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4419868.287407222,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 359,
"entry_price": 13321.532033426183,
"entry_at": "2026-07-10T09:46:11.495093+09:00",
"stop": 10360,
"target": 19245,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2399082.3031788166,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,28 +60,50 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1967591.0085317888, "tranche_value": 1967591.0085317888,
"last_add_price": 139100 "last_add_price": 139100
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 11,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.191055+09:00",
"stop": 303577,
"target": 426346,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3848025.874946516,
"last_add_price": 344500
} }
}, },
"realized_pnl": -7812268.37950001, "realized_pnl": -8685350.954500012,
"closed_trades": 14, "closed_trades": 17,
"wins": 1, "wins": 2,
"peak_equity": 100182695.41500005, "peak_equity": 100182695.41500005,
"max_drawdown": 0.09613499352961095, "max_drawdown": 0.09613499352961095,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-07-20",
"403870": "2026-07-07", "403870": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-08", "034730": "2026-07-08",
"319660": "2026-07-13", "319660": "2026-07-13",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583212+09:00", "created_at": "2026-06-15T14:55:00.583212+09:00",
"updated_at": "2026-07-16T15:28:02.586723+09:00" "updated_at": "2026-07-21T15:28:03.150295+09:00"
} }
@@ -45,3 +45,7 @@
{"ts": "2026-07-13T09:36:02.293764+09:00", "side": "BUY", "code": "105560", "name": "KB금융", "price": 191000, "qty": 23, "cost": 4393659, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 166448, "target": 224803, "signals": [{"label": "손절선", "ok": true, "detail": "166,448 (현재 191,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 224,803"}, {"label": "추세(20일선)", "ok": true, "detail": "160,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -867 · 기 +1,393"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 190,952"}]} {"ts": "2026-07-13T09:36:02.293764+09:00", "side": "BUY", "code": "105560", "name": "KB금융", "price": 191000, "qty": 23, "cost": 4393659, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 166448, "target": 224803, "signals": [{"label": "손절선", "ok": true, "detail": "166,448 (현재 191,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 224,803"}, {"label": "추세(20일선)", "ok": true, "detail": "160,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -867 · 기 +1,393"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 190,952"}]}
{"ts": "2026-07-13T12:44:04.374493+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 36, "proceeds": 6751209, "entry_price": 158900, "pnl": 1029951, "pnl_pct": 18.25, "hold_from": "2026-07-10T09:24:02.499393+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-13T12:44:04.374493+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 36, "proceeds": 6751209, "entry_price": 158900, "pnl": 1029951, "pnl_pct": 18.25, "hold_from": "2026-07-10T09:24:02.499393+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-15T14:32:01.904618+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 606, "proceeds": 11231476, "entry_price": 19858, "pnl": -804469, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.796592+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,403"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.904618+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 606, "proceeds": 11231476, "entry_price": 19858, "pnl": -804469, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.796592+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,403"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.336406+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 359, "proceeds": 3694072, "entry_price": 13322, "pnl": -1089075, "pnl_pct": -22.61, "hold_from": "2026-07-10T09:46:11.495093+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,245"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.298292+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 103, "proceeds": 13548928, "entry_price": 120181, "pnl": 1168471, "pnl_pct": 9.67, "hold_from": "2026-07-01T09:46:03.123573+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:48:03.494077+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 168100, "qty": 46, "proceeds": 7717521, "entry_price": 188450, "pnl": -952479, "pnl_pct": -10.8, "hold_from": "2026-07-10T09:28:02.643669+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "168,241 (현재 168,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 228,868"}, {"label": "추세(20일선)", "ok": true, "detail": "159,020"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.191056+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 11, "cost": 3790068, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 426346, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 47082257.93550003, "cash": 50542955.130500026,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"095610": { "095610": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,264 도달", "entry_reason": "눌림목 지정가 158,264 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 2088366.7995946202, "tranche_value": 2088366.7995946202,
"last_add_price": 179100 "last_add_price": 179100
@@ -39,7 +39,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달", "entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 5323473.79266045, "tranche_value": 5323473.79266045,
"last_add_price": 126200 "last_add_price": 126200
@@ -55,58 +55,16 @@
"entry_at": "2026-07-09T09:36:03.480275+09:00", "entry_at": "2026-07-09T09:36:03.480275+09:00",
"stop": 118952, "stop": 118952,
"target": 165321, "target": 165321,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4027945.7278098115, "tranche_value": 4027945.7278098115,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 46,
"entry_price": 187650.0,
"entry_at": "2026-07-10T09:24:02.504787+09:00",
"stop": 167541,
"target": 227868,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4392104.9291198645,
"last_add_price": 190400
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 140,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.492596+09:00",
"stop": 10360,
"target": 20260,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1915987.3066294398,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -123,7 +81,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1936694.4171909117, "tranche_value": 1936694.4171909117,
"last_add_price": 139100 "last_add_price": 139100
@@ -144,29 +102,51 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3889733.683715179, "tranche_value": 3889733.683715179,
"last_add_price": 353000 "last_add_price": 353000
},
"003490": {
"code": "003490",
"name": "대한항공",
"sources": [
"auto"
],
"qty": 222,
"entry_price": 25350,
"entry_at": "2026-07-21T14:20:02.206534+09:00",
"stop": 23650,
"target": 28750,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 25,328 도달",
"cur_price": 25350,
"tranches": 1,
"tranche_value": 5650193.705343751,
"last_add_price": 25350
} }
}, },
"realized_pnl": -8514182.529500008, "realized_pnl": -9970822.82450001,
"closed_trades": 14, "closed_trades": 16,
"wins": 0, "wins": 0,
"peak_equity": 101140808.32700005, "peak_equity": 101140808.32700005,
"max_drawdown": 0.10673580120694118, "max_drawdown": 0.1142309344033173,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
"010120": "2026-06-25", "010120": "2026-06-25",
"298040": "2026-06-26", "298040": "2026-06-26",
"403870": "2026-07-07", "403870": "2026-07-07",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"034730": "2026-07-07", "034730": "2026-07-07",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583227+09:00", "created_at": "2026-06-15T14:55:00.583227+09:00",
"updated_at": "2026-07-16T15:28:02.588395+09:00" "updated_at": "2026-07-21T15:28:03.151920+09:00"
} }
@@ -46,3 +46,6 @@
{"ts": "2026-07-13T09:26:03.431888+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 186600, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 186,600"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]} {"ts": "2026-07-13T09:26:03.431888+09:00", "side": "BUY", "code": "240810", "name": "원익IPS", "price": 139100, "qty": 13, "cost": 1808571, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 96000, "target": 186600, "signals": [{"label": "손절선", "ok": true, "detail": "96,000 (현재 139,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 186,600"}, {"label": "추세(10일선)", "ok": true, "detail": "126,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -213 · 기 +772"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,162"}]}
{"ts": "2026-07-15T14:32:01.906503+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 600, "proceeds": 11120273, "entry_price": 19858, "pnl": -796284, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.798364+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,402"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.906503+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 600, "proceeds": 11120273, "entry_price": 19858, "pnl": -796284, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.798364+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,402"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:28:03.502833+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 423774, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 423,774"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]} {"ts": "2026-07-16T09:28:03.502833+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 423774, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 423,774"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]}
{"ts": "2026-07-20T12:28:02.338385+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 140, "proceeds": 1440585, "entry_price": 13660, "pnl": -472101, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.492596+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,260"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T12:58:05.505774+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166600, "qty": 46, "proceeds": 7648656, "entry_price": 187650, "pnl": -984539, "pnl_pct": -11.22, "hold_from": "2026-07-10T09:24:02.504787+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "167,541 (현재 166,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 227,868"}, {"label": "추세(10일선)", "ok": true, "detail": "156,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T14:20:02.206535+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25350, "qty": 222, "cost": 5628544, "path": "pullback", "reason": "눌림목 지정가 25,328 도달", "stop": 23650, "target": 28750, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "25,300 vs 25,185"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,400 / 25,185"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,400 / 25,157"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+18.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +524 · 기 +141 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.44% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "1,611,169 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.44% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,328 (현재 25,300)"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 50761804.46349999, "cash": 73379241.3385,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 103,
"entry_price": 120180.58252427184,
"entry_at": "2026-07-01T09:46:03.128911+09:00",
"stop": 131493,
"target": 133951,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,779 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6250717.7646875,
"last_add_price": 122200
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,58 +13,16 @@
"entry_at": "2026-07-09T09:36:03.481939+09:00", "entry_at": "2026-07-09T09:36:03.481939+09:00",
"stop": 122827, "stop": 122827,
"target": 151807, "target": 151807,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5361936.603499421, "tranche_value": 5361936.603499421,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 61,
"entry_price": 188408.19672131148,
"entry_at": "2026-07-10T09:28:02.647023+09:00",
"stop": 173252,
"target": 211143,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5785659.43628125,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 360,
"entry_price": 13320.166666666666,
"entry_at": "2026-07-10T09:46:11.498474+09:00",
"stop": 10360,
"target": 17760,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2401551.7748557995,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -102,29 +39,51 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1973467.2774454139, "tranche_value": 1973467.2774454139,
"last_add_price": 139100 "last_add_price": 139100
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 15,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.194399+09:00",
"stop": 313808,
"target": 390538,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 5225929.659467572,
"last_add_price": 344500
} }
}, },
"realized_pnl": -6105466.59750001, "realized_pnl": -6990814.611500012,
"closed_trades": 18, "closed_trades": 21,
"wins": 3, "wins": 4,
"peak_equity": 100344662.275, "peak_equity": 100344662.275,
"max_drawdown": 0.09675076894367877, "max_drawdown": 0.09675076894367877,
"last_exit": { "last_exit": {
"086790": "2026-06-19", "086790": "2026-07-20",
"030000": "2026-07-16", "030000": "2026-07-16",
"403870": "2026-07-02", "403870": "2026-07-02",
"003490": "2026-07-07", "003490": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-03", "214450": "2026-07-03",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-08", "034730": "2026-07-08",
"319660": "2026-07-13", "319660": "2026-07-13",
"095610": "2026-07-16" "095610": "2026-07-16",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583241+09:00", "created_at": "2026-06-15T14:55:00.583241+09:00",
"updated_at": "2026-07-16T15:28:02.590103+09:00" "updated_at": "2026-07-21T15:28:03.153552+09:00"
} }
@@ -50,3 +50,7 @@
{"ts": "2026-07-13T12:44:04.377755+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 36, "proceeds": 6751209, "entry_price": 158900, "pnl": 1029951, "pnl_pct": 18.25, "hold_from": "2026-07-10T09:24:02.510319+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-13T12:44:04.377755+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 36, "proceeds": 6751209, "entry_price": 158900, "pnl": 1029951, "pnl_pct": 18.25, "hold_from": "2026-07-10T09:24:02.510319+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:12.628220+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 29, "proceeds": 6049181, "entry_price": 160724, "pnl": 1387482, "pnl_pct": 30.04, "hold_from": "2026-07-07T10:06:07.272816+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:12.628220+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 29, "proceeds": 6049181, "entry_price": 160724, "pnl": 1387482, "pnl_pct": 30.04, "hold_from": "2026-07-07T10:06:07.272816+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:12.629372+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 298, "proceeds": 5526043, "entry_price": 19110, "pnl": -169591, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.490068+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,749"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:12.629372+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 298, "proceeds": 5526043, "entry_price": 19110, "pnl": -169591, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.490068+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,749"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-20T09:04:02.905960+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 173000, "qty": 61, "proceeds": 10532422, "entry_price": 188408, "pnl": -962202, "pnl_pct": -8.18, "hold_from": "2026-07-10T09:28:02.647023+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "173,252 (현재 173,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 211,143"}, {"label": "추세(20일선)", "ok": true, "detail": "159,270"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -332 · 기 +291"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.340218+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 360, "proceeds": 3704362, "entry_price": 13320, "pnl": -1091617, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.498474+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,760"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.301563+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 103, "proceeds": 13548928, "entry_price": 120181, "pnl": 1168471, "pnl_pct": 9.67, "hold_from": "2026-07-01T09:46:03.128911+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.194400+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 15, "cost": 5168275, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 390538, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 56362391.51700004, "cash": 72023660.39400004,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 104,
"entry_price": 120161.53846153847,
"entry_at": "2026-07-01T09:46:03.131562+09:00",
"stop": 131493,
"target": 133904,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,286 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6310113.192625003,
"last_add_price": 122200
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,58 +13,16 @@
"entry_at": "2026-07-09T09:36:03.483808+09:00", "entry_at": "2026-07-09T09:36:03.483808+09:00",
"stop": 118912, "stop": 118912,
"target": 157553, "target": 157553,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4100167.692846849, "tranche_value": 4100167.692846849,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 47,
"entry_price": 188395.74468085106,
"entry_at": "2026-07-10T09:28:02.648740+09:00",
"stop": 168187,
"target": 218709,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4478303.438189044,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 364,
"entry_price": 13320.384615384615,
"entry_at": "2026-07-10T09:46:11.500205+09:00",
"stop": 10360,
"target": 17761,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2430713.1031006183,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -102,30 +39,73 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1993160.4408968717, "tranche_value": 1993160.4408968717,
"last_add_price": 139100 "last_add_price": 139100
},
"319660": {
"code": "319660",
"name": "피에스케이",
"sources": [
"auto"
],
"qty": 35,
"entry_price": 167000,
"entry_at": "2026-07-21T10:12:01.069760+09:00",
"stop": 158000,
"target": 180500,
"peak": 173100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 169,640 도달",
"cur_price": 170200,
"tranches": 1,
"tranche_value": 5847906.598062502,
"last_add_price": 167000
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 11,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.196090+09:00",
"stop": 303577,
"target": 405884,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3939968.9939820534,
"last_add_price": 344500
} }
}, },
"realized_pnl": -5529373.105000012, "realized_pnl": -6436109.056000016,
"closed_trades": 19, "closed_trades": 22,
"wins": 3, "wins": 4,
"peak_equity": 101368884.75700004, "peak_equity": 101368884.75700004,
"max_drawdown": 0.09320413829301381, "max_drawdown": 0.09320413829301381,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-07-20",
"403870": "2026-07-07", "403870": "2026-07-07",
"095610": "2026-07-16", "095610": "2026-07-16",
"009150": "2026-07-06", "009150": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"034730": "2026-07-07", "034730": "2026-07-07",
"319660": "2026-07-13", "319660": "2026-07-13",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583273+09:00", "created_at": "2026-06-15T14:55:00.583273+09:00",
"updated_at": "2026-07-16T15:28:02.591776+09:00" "updated_at": "2026-07-21T15:28:03.155176+09:00"
} }
@@ -54,3 +54,8 @@
{"ts": "2026-07-13T12:44:04.379393+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 35, "proceeds": 6563676, "entry_price": 164000, "pnl": 822815, "pnl_pct": 14.57, "hold_from": "2026-07-10T09:00:14.370375+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-13T12:44:04.379393+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 35, "proceeds": 6563676, "entry_price": 164000, "pnl": 822815, "pnl_pct": 14.57, "hold_from": "2026-07-10T09:00:14.370375+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-15T14:32:01.909939+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 609, "proceeds": 11287077, "entry_price": 19857, "pnl": -807707, "pnl_pct": -6.48, "hold_from": "2026-07-03T10:24:02.801847+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,585 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,765"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.909939+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 609, "proceeds": 11287077, "entry_price": 19857, "pnl": -807707, "pnl_pct": -6.48, "hold_from": "2026-07-03T10:24:02.801847+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,585 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,765"}, {"label": "추세(20일선)", "ok": false, "detail": "18,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:12.739588+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 23, "proceeds": 4797626, "entry_price": 165991, "pnl": 979254, "pnl_pct": 25.91, "hold_from": "2026-07-07T09:12:07.295106+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:12.739588+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 23, "proceeds": 4797626, "entry_price": 165991, "pnl": 979254, "pnl_pct": 25.91, "hold_from": "2026-07-07T09:12:07.295106+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.341884+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 364, "proceeds": 3745522, "entry_price": 13320, "pnl": -1103825, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.500205+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,761"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.303249+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 104, "proceeds": 13680471, "entry_price": 120162, "pnl": 1181796, "pnl_pct": 9.69, "hold_from": "2026-07-01T09:46:03.131562+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:50:02.312055+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 167800, "qty": 47, "proceeds": 7871221, "entry_price": 188396, "pnl": -984707, "pnl_pct": -10.93, "hold_from": "2026-07-10T09:28:02.648740+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "168,187 (현재 167,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 218,709"}, {"label": "추세(20일선)", "ok": true, "detail": "159,000"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:12:01.069761+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 167000, "qty": 35, "cost": 5845877, "path": "pullback", "reason": "눌림목 지정가 169,640 도달", "stop": 158000, "target": 180500, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "167,000 vs 150,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "171,040 / 150,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,040 / 113,342"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+92.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -534 · 기 +316 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+7%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.29% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "951,819 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.29% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 169,640 (현재 167,000)"}]}
{"ts": "2026-07-21T12:06:01.196091+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 11, "cost": 3790068, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 405884, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 48773471.89450005, "cash": 62032466.33950004,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"010950": { "010950": {
@@ -13,58 +13,16 @@
"entry_at": "2026-07-09T09:36:03.485481+09:00", "entry_at": "2026-07-09T09:36:03.485481+09:00",
"stop": 118912, "stop": 118912,
"target": 165281, "target": 165281,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4104199.1508728755, "tranche_value": 4104199.1508728755,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 46,
"entry_price": 187650.0,
"entry_at": "2026-07-10T09:24:02.518932+09:00",
"stop": 167541,
"target": 227868,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4431116.549925872,
"last_add_price": 190400
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 140,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.497686+09:00",
"stop": 10360,
"target": 20260,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1921288.6529735315,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -81,7 +39,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1943356.297579488, "tranche_value": 1943356.297579488,
"last_add_price": 139100 "last_add_price": 139100
@@ -102,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3869967.7922643563, "tranche_value": 3869967.7922643563,
"last_add_price": 353000 "last_add_price": 353000
@@ -123,47 +81,28 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4856628.092474961, "tranche_value": 4856628.092474961,
"last_add_price": 138900 "last_add_price": 138900
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 41,
"entry_price": 113100,
"entry_at": "2026-07-13T10:04:06.438946+09:00",
"stop": 101931,
"target": 135439,
"peak": 113100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 4736084.883830718,
"last_add_price": 113100
} }
}, },
"realized_pnl": -7523573.645500008, "realized_pnl": -9448256.410500009,
"closed_trades": 11, "closed_trades": 14,
"wins": 0, "wins": 0,
"peak_equity": 100024962.38500004, "peak_equity": 100024962.38500004,
"max_drawdown": 0.09116345197313895, "max_drawdown": 0.10781904624957177,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
"403870": "2026-07-07", "403870": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"003490": "2026-07-09" "003490": "2026-07-09",
"055550": "2026-07-20",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583289+09:00", "created_at": "2026-06-15T14:55:00.583289+09:00",
"updated_at": "2026-07-16T15:28:02.593438+09:00" "updated_at": "2026-07-21T15:28:03.156805+09:00"
} }
@@ -38,3 +38,6 @@
{"ts": "2026-07-15T11:56:05.713625+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 138900, "qty": 34, "cost": 4723308, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 122472, "target": 161556, "signals": [{"label": "손절선", "ok": true, "detail": "122,472 (현재 138,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 161,556"}, {"label": "추세(10일선)", "ok": true, "detail": "121,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -40 · 기 +527"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 138,828"}]} {"ts": "2026-07-15T11:56:05.713625+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 138900, "qty": 34, "cost": 4723308, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 122472, "target": 161556, "signals": [{"label": "손절선", "ok": true, "detail": "122,472 (현재 138,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 161,556"}, {"label": "추세(10일선)", "ok": true, "detail": "121,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -40 · 기 +527"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 138,828"}]}
{"ts": "2026-07-15T14:32:01.911664+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 604, "proceeds": 11194408, "entry_price": 19858, "pnl": -801741, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.803570+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,403"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.911664+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 604, "proceeds": 11194408, "entry_price": 19858, "pnl": -801741, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.803570+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,403"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:28:03.507827+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 10, "cost": 3530530, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 423774, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 423,774"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]} {"ts": "2026-07-16T09:28:03.507827+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 10, "cost": 3530530, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 423774, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 423,774"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]}
{"ts": "2026-07-20T11:28:01.215823+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 101900, "qty": 41, "proceeds": 4169753, "entry_price": 113100, "pnl": -468042, "pnl_pct": -9.9, "hold_from": "2026-07-13T10:04:06.438946+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "101,931 (현재 101,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,439"}, {"label": "추세(10일선)", "ok": true, "detail": "99,150"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -156 · 기 +275"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 115,714"}]}
{"ts": "2026-07-20T12:28:02.343816+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 140, "proceeds": 1440585, "entry_price": 13660, "pnl": -472101, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.497686+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,260"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T12:58:05.511194+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166600, "qty": 46, "proceeds": 7648656, "entry_price": 187650, "pnl": -984539, "pnl_pct": -11.22, "hold_from": "2026-07-10T09:24:02.518932+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "167,541 (현재 166,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 227,868"}, {"label": "추세(10일선)", "ok": true, "detail": "156,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 48235377.75550003, "cash": 61772638.521000035,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"010950": { "010950": {
@@ -13,58 +13,16 @@
"entry_at": "2026-07-09T09:36:03.487132+09:00", "entry_at": "2026-07-09T09:36:03.487132+09:00",
"stop": 118954, "stop": 118954,
"target": 157594, "target": 157594,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4134023.492494496, "tranche_value": 4134023.492494496,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 47,
"entry_price": 187591.48936170212,
"entry_at": "2026-07-10T09:24:02.522686+09:00",
"stop": 167483,
"target": 217755,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4463394.118213575,
"last_add_price": 190400
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 141,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.499417+09:00",
"stop": 10360,
"target": 18610,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,971 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1935311.2718509554,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -81,7 +39,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 151,752 도달", "entry_reason": "눌림목 지정가 151,752 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1957563.5830104812, "tranche_value": 1957563.5830104812,
"last_add_price": 139100 "last_add_price": 139100
@@ -102,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3898349.7986140535, "tranche_value": 3898349.7986140535,
"last_add_price": 353000 "last_add_price": 353000
@@ -123,47 +81,28 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4892197.723204158, "tranche_value": 4892197.723204158,
"last_add_price": 138900 "last_add_price": 138900
},
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 42,
"entry_price": 113100,
"entry_at": "2026-07-13T10:04:06.440641+09:00",
"stop": 101931,
"target": 129854,
"peak": 113100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 1,
"tranche_value": 4770954.427524915,
"last_add_price": 113100
} }
}, },
"realized_pnl": -6846425.525500008, "realized_pnl": -8804548.71900001,
"closed_trades": 11, "closed_trades": 14,
"wins": 0, "wins": 0,
"peak_equity": 100024962.38500004, "peak_equity": 100024962.38500004,
"max_drawdown": 0.08476345310549646, "max_drawdown": 0.10210475085898733,
"last_exit": { "last_exit": {
"030000": "2026-07-15", "030000": "2026-07-15",
"086790": "2026-06-23", "086790": "2026-06-23",
"403870": "2026-07-07", "403870": "2026-07-07",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"003490": "2026-07-09" "003490": "2026-07-09",
"055550": "2026-07-20",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583304+09:00", "created_at": "2026-06-15T14:55:00.583304+09:00",
"updated_at": "2026-07-16T15:28:02.595126+09:00" "updated_at": "2026-07-21T15:28:03.158440+09:00"
} }
@@ -37,3 +37,6 @@
{"ts": "2026-07-15T11:56:05.715700+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 138900, "qty": 35, "cost": 4862229, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 122472, "target": 155042, "signals": [{"label": "손절선", "ok": true, "detail": "122,472 (현재 138,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 155,042"}, {"label": "추세(10일선)", "ok": true, "detail": "121,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -40 · 기 +527"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 138,828"}]} {"ts": "2026-07-15T11:56:05.715700+09:00", "side": "BUY", "code": "086790", "name": "하나금융지주", "price": 138900, "qty": 35, "cost": 4862229, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 122472, "target": 155042, "signals": [{"label": "손절선", "ok": true, "detail": "122,472 (현재 138,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 155,042"}, {"label": "추세(10일선)", "ok": true, "detail": "121,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -40 · 기 +527"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 138,828"}]}
{"ts": "2026-07-15T14:32:01.913422+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 604, "proceeds": 11194408, "entry_price": 19858, "pnl": -801741, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.805295+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,767"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.913422+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 604, "proceeds": 11194408, "entry_price": 19858, "pnl": -801741, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.805295+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,767"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:28:03.509545+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 403206, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]} {"ts": "2026-07-16T09:28:03.509545+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 403206, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]}
{"ts": "2026-07-20T11:28:01.217450+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 101900, "qty": 42, "proceeds": 4271454, "entry_price": 113100, "pnl": -479458, "pnl_pct": -9.9, "hold_from": "2026-07-13T10:04:06.440641+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "101,931 (현재 101,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,854"}, {"label": "추세(10일선)", "ok": true, "detail": "99,150"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -156 · 기 +275"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 115,714"}]}
{"ts": "2026-07-20T12:28:02.345777+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 141, "proceeds": 1450875, "entry_price": 13660, "pnl": -475474, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.499417+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,610"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T12:58:05.512945+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166600, "qty": 47, "proceeds": 7814931, "entry_price": 187591, "pnl": -1003191, "pnl_pct": -11.19, "hold_from": "2026-07-10T09:24:02.522686+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "167,483 (현재 166,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 217,755"}, {"label": "추세(10일선)", "ok": true, "detail": "156,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 52489676.48650004, "cash": 55859248.367000036,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": { "086790": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달", "entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 5357366.7482318785, "tranche_value": 5357366.7482318785,
"last_add_price": 126200 "last_add_price": 126200
@@ -34,58 +34,16 @@
"entry_at": "2026-07-09T09:36:03.488778+09:00", "entry_at": "2026-07-09T09:36:03.488778+09:00",
"stop": 118952, "stop": 118952,
"target": 157593, "target": 157593,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4055251.939081083, "tranche_value": 4055251.939081083,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 46,
"entry_price": 187650.0,
"entry_at": "2026-07-10T09:24:02.526111+09:00",
"stop": 167541,
"target": 217813,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4421137.666620123,
"last_add_price": 190400
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 141,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.501166+09:00",
"stop": 10360,
"target": 18610,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 1928080.030979289,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -102,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1948930.4488017063, "tranche_value": 1948930.4488017063,
"last_add_price": 139100 "last_add_price": 139100
@@ -123,14 +81,35 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 336500, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 3913399.394880189, "tranche_value": 3913399.394880189,
"last_add_price": 353000 "last_add_price": 353000
},
"003490": {
"code": "003490",
"name": "대한항공",
"sources": [
"auto"
],
"qty": 226,
"entry_price": 25350,
"entry_at": "2026-07-21T14:20:02.215118+09:00",
"stop": 23650,
"target": 27900,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 25,328 도달",
"cur_price": 25350,
"tranches": 1,
"tranche_value": 5751056.733250002,
"last_add_price": 25350
} }
}, },
"realized_pnl": -6981285.06950001, "realized_pnl": -8441297.51800001,
"closed_trades": 17, "closed_trades": 19,
"wins": 2, "wins": 2,
"peak_equity": 101140808.32700005, "peak_equity": 101140808.32700005,
"max_drawdown": 0.10055654354291904, "max_drawdown": 0.10055654354291904,
@@ -141,12 +120,13 @@
"298040": "2026-06-26", "298040": "2026-06-26",
"403870": "2026-07-07", "403870": "2026-07-07",
"095610": "2026-07-16", "095610": "2026-07-16",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"214450": "2026-07-06", "214450": "2026-07-06",
"034730": "2026-07-07", "034730": "2026-07-07",
"003490": "2026-07-09" "003490": "2026-07-09",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583318+09:00", "created_at": "2026-06-15T14:55:00.583318+09:00",
"updated_at": "2026-07-16T15:28:02.596822+09:00" "updated_at": "2026-07-21T15:28:03.160075+09:00"
} }
@@ -52,3 +52,6 @@
{"ts": "2026-07-15T14:32:01.915192+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 600, "proceeds": 11120273, "entry_price": 19858, "pnl": -796284, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.807011+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,766"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-15T14:32:01.915192+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18570, "qty": 600, "proceeds": 11120273, "entry_price": 19858, "pnl": -796284, "pnl_pct": -6.49, "hold_from": "2026-07-03T10:24:02.807011+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "18,586 (현재 18,570)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,766"}, {"label": "추세(10일선)", "ok": false, "detail": "18,905"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -214 · 기 +240"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:13.047427+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 23, "proceeds": 4797626, "entry_price": 165991, "pnl": 979254, "pnl_pct": 25.91, "hold_from": "2026-07-07T09:12:07.300222+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "158,280"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:13.047427+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 23, "proceeds": 4797626, "entry_price": 165991, "pnl": 979254, "pnl_pct": 25.91, "hold_from": "2026-07-07T09:12:07.300222+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "158,280"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:28:03.511276+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 403206, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]} {"ts": "2026-07-16T09:28:03.511276+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 353000, "qty": 11, "cost": 3883582, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 300363, "target": 403206, "signals": [{"label": "손절선", "ok": true, "detail": "300,363 (현재 352,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "306,600"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -33 · 기 +28"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,963"}]}
{"ts": "2026-07-20T12:28:02.347689+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 141, "proceeds": 1450875, "entry_price": 13660, "pnl": -475474, "pnl_pct": -24.52, "hold_from": "2026-07-10T11:06:06.501166+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,610"}, {"label": "추세(10일선)", "ok": false, "detail": "12,013"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,626"}]}
{"ts": "2026-07-20T12:58:05.514600+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166600, "qty": 46, "proceeds": 7648656, "entry_price": 187650, "pnl": -984539, "pnl_pct": -11.22, "hold_from": "2026-07-10T09:24:02.526111+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "167,541 (현재 166,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 217,813"}, {"label": "추세(10일선)", "ok": true, "detail": "156,450"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T14:20:02.215120+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25350, "qty": 226, "cost": 5729959, "path": "pullback", "reason": "눌림목 지정가 25,328 도달", "stop": 23650, "target": 27900, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "25,300 vs 25,185"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,400 / 25,185"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,400 / 25,157"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+18.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +524 · 기 +141 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.44% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "1,611,169 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.44% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,328 (현재 25,300)"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 48440055.371500015, "cash": 65349423.87900001,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 104,
"entry_price": 120161.53846153847,
"entry_at": "2026-07-01T09:46:03.140737+09:00",
"stop": 131493,
"target": 138485,
"peak": 141800,
"trailing_on": true,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,286 도달",
"cur_price": 136700,
"tranches": 2,
"tranche_value": 6310920.382093752,
"last_add_price": 122200
},
"010950": { "010950": {
"code": "010950", "code": "010950",
"name": "S-Oil", "name": "S-Oil",
@@ -34,58 +13,16 @@
"entry_at": "2026-07-09T09:36:03.490473+09:00", "entry_at": "2026-07-09T09:36:03.490473+09:00",
"stop": 122793, "stop": 122793,
"target": 157570, "target": 157570,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5164908.463247621, "tranche_value": 5164908.463247621,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 58,
"entry_price": 188450.0,
"entry_at": "2026-07-10T09:28:02.655305+09:00",
"stop": 173293,
"target": 218763,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5551604.2833750015,
"last_add_price": 191000
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 345,
"entry_price": 13320.782608695652,
"entry_at": "2026-07-10T09:46:11.506767+09:00",
"stop": 10360,
"target": 19242,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 2303951.9214964984,
"last_add_price": 13850
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -102,30 +39,73 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1900904.0747925004, "tranche_value": 1900904.0747925004,
"last_add_price": 139100 "last_add_price": 139100
},
"319660": {
"code": "319660",
"name": "피에스케이",
"sources": [
"auto"
],
"qty": 33,
"entry_price": 167000,
"entry_at": "2026-07-21T10:12:01.076723+09:00",
"stop": 158000,
"target": 185000,
"peak": 173100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 169,640 도달",
"cur_price": 170200,
"tranches": 1,
"tranche_value": 5610660.873687501,
"last_add_price": 167000
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.202637+09:00",
"stop": 313808,
"target": 405884,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 5038910.050638685,
"last_add_price": 344500
} }
}, },
"realized_pnl": -9616484.05300001, "realized_pnl": -10398338.831000015,
"closed_trades": 26, "closed_trades": 29,
"wins": 3, "wins": 4,
"peak_equity": 101501376.42350003, "peak_equity": 101501376.42350003,
"max_drawdown": 0.13934286891330708, "max_drawdown": 0.13934286891330708,
"last_exit": { "last_exit": {
"086790": "2026-06-26", "086790": "2026-07-20",
"030000": "2026-07-16", "030000": "2026-07-16",
"403870": "2026-07-02", "403870": "2026-07-02",
"095610": "2026-07-16", "095610": "2026-07-16",
"003490": "2026-07-07", "003490": "2026-07-07",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-06", "009150": "2026-07-06",
"034730": "2026-07-08", "034730": "2026-07-08",
"214450": "2026-07-03", "214450": "2026-07-03",
"319660": "2026-07-13" "319660": "2026-07-13",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583333+09:00", "created_at": "2026-06-15T14:55:00.583333+09:00",
"updated_at": "2026-07-16T15:28:02.598502+09:00" "updated_at": "2026-07-21T15:28:03.161699+09:00"
} }
@@ -73,3 +73,8 @@
{"ts": "2026-07-13T12:44:04.385882+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 64, "proceeds": 12002150, "entry_price": 168650, "pnl": 1206931, "pnl_pct": 11.41, "hold_from": "2026-07-10T09:00:14.774976+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-13T12:44:04.385882+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 187900, "qty": 64, "proceeds": 12002150, "entry_price": 168650, "pnl": 1206931, "pnl_pct": 11.41, "hold_from": "2026-07-10T09:00:14.774976+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "189,133 (현재 187,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "151,185"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -254 · 기 +457"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:13.153467+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 27, "proceeds": 5631996, "entry_price": 150948, "pnl": 1555785, "pnl_pct": 38.46, "hold_from": "2026-07-09T09:02:04.498173+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:13.153467+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 27, "proceeds": 5631996, "entry_price": 150948, "pnl": 1555785, "pnl_pct": 38.46, "hold_from": "2026-07-09T09:02:04.498173+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "138,765"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:13.154200+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 287, "proceeds": 5322062, "entry_price": 19110, "pnl": -163331, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.498289+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:13.154200+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 287, "proceeds": 5322062, "entry_price": 19110, "pnl": -163331, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.498289+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(20일선)", "ok": false, "detail": "18,832"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-20T09:04:02.915780+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 173000, "qty": 58, "proceeds": 10014434, "entry_price": 188450, "pnl": -917306, "pnl_pct": -8.2, "hold_from": "2026-07-10T09:28:02.655305+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "173,293 (현재 173,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 218,763"}, {"label": "추세(20일선)", "ok": true, "detail": "159,270"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -332 · 기 +291"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:28:02.349547+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 345, "proceeds": 3550014, "entry_price": 13321, "pnl": -1046345, "pnl_pct": -22.6, "hold_from": "2026-07-10T09:46:11.506767+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,242"}, {"label": "추세(20일선)", "ok": false, "detail": "14,755"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:46:02.309694+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 131800, "qty": 104, "proceeds": 13680471, "entry_price": 120162, "pnl": 1181796, "pnl_pct": 9.69, "hold_from": "2026-07-01T09:46:03.140737+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,911 (현재 131,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "118,840"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +0 · 기 +424"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:12:01.076724+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 167000, "qty": 33, "cost": 5511827, "path": "pullback", "reason": "눌림목 지정가 169,640 도달", "stop": 158000, "target": 185000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "167,000 vs 150,140"}, {"label": "정배열(5>20)", "ok": true, "detail": "171,040 / 150,140"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,040 / 113,342"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+92.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -534 · 기 +316 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+7%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.29% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "951,819 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "3.29% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "58"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 169,640 (현재 167,000)"}]}
{"ts": "2026-07-21T12:06:01.202638+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 14, "cost": 4823723, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 405884, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "344,500 vs 296,350"}, {"label": "정배열(5>20)", "ok": true, "detail": "315,100 / 296,350"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 52110479.440500036, "cash": 53385206.19550003,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"086790": { "086790": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달", "entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 5572324.860088777, "tranche_value": 5572324.860088777,
"last_add_price": 126200 "last_add_price": 126200
@@ -34,58 +34,16 @@
"entry_at": "2026-07-09T09:36:03.492141+09:00", "entry_at": "2026-07-09T09:36:03.492141+09:00",
"stop": 122826, "stop": 122826,
"target": 157603, "target": 157603,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 5242158.578984787, "tranche_value": 5242158.578984787,
"last_add_price": 136900 "last_add_price": 136900
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 187603.38983050847,
"entry_at": "2026-07-10T09:24:02.532464+09:00",
"stop": 172522,
"target": 217767,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 5625955.548031252,
"last_add_price": 190400
},
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 148,
"entry_price": 13660,
"entry_at": "2026-07-10T11:06:06.504603+09:00",
"stop": 10621,
"target": 19737,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 16,984 도달",
"cur_price": 11710,
"tranches": 1,
"tranche_value": 2032415.6969225246,
"last_add_price": 13660
},
"240810": { "240810": {
"code": "240810", "code": "240810",
"name": "원익IPS", "name": "원익IPS",
@@ -102,14 +60,56 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 162,268 도달", "entry_reason": "눌림목 지정가 162,268 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1892242.1783291898, "tranche_value": 1892242.1783291898,
"last_add_price": 139100 "last_add_price": 139100
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.204321+09:00",
"stop": 313808,
"target": 405884,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 5033450.427529937,
"last_add_price": 344500
},
"003490": {
"code": "003490",
"name": "대한항공",
"sources": [
"auto"
],
"qty": 220,
"entry_price": 25350,
"entry_at": "2026-07-21T14:20:02.218495+09:00",
"stop": 23650,
"target": 28750,
"peak": 25500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 25,328 도달",
"cur_price": 25350,
"tranches": 1,
"tranche_value": 5595558.921593752,
"last_add_price": 25350
} }
}, },
"realized_pnl": -9816430.452500014, "realized_pnl": -11232387.239500016,
"closed_trades": 23, "closed_trades": 25,
"wins": 2, "wins": 2,
"peak_equity": 101258161.16350003, "peak_equity": 101258161.16350003,
"max_drawdown": 0.12309824464295209, "max_drawdown": 0.12309824464295209,
@@ -121,11 +121,12 @@
"298040": "2026-06-26", "298040": "2026-06-26",
"095610": "2026-07-16", "095610": "2026-07-16",
"003490": "2026-07-07", "003490": "2026-07-07",
"093370": "2026-07-07", "093370": "2026-07-20",
"240810": "2026-07-08", "240810": "2026-07-08",
"034730": "2026-07-03", "034730": "2026-07-03",
"214450": "2026-07-14" "214450": "2026-07-14",
"105560": "2026-07-20"
}, },
"created_at": "2026-06-15T14:55:00.583347+09:00", "created_at": "2026-06-15T14:55:00.583347+09:00",
"updated_at": "2026-07-16T15:28:02.600199+09:00" "updated_at": "2026-07-21T15:28:03.163339+09:00"
} }
@@ -64,3 +64,7 @@
{"ts": "2026-07-14T10:20:06.181750+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 310500, "qty": 14, "proceeds": 4338523, "entry_price": 341500, "pnl": -443194, "pnl_pct": -9.08, "hold_from": "2026-07-13T09:12:04.336322+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "310,647 (현재 310,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "302,400"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -50 · 기 +82"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,713"}]} {"ts": "2026-07-14T10:20:06.181750+09:00", "side": "SELL", "code": "214450", "name": "파마리서치", "price": 310500, "qty": 14, "proceeds": 4338523, "entry_price": 341500, "pnl": -443194, "pnl_pct": -9.08, "hold_from": "2026-07-13T09:12:04.336322+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "310,647 (현재 310,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 403,206"}, {"label": "추세(10일선)", "ok": true, "detail": "302,400"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -50 · 기 +82"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 351,713"}]}
{"ts": "2026-07-16T09:00:13.257129+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 29, "proceeds": 6049181, "entry_price": 162924, "pnl": 1323672, "pnl_pct": 28.28, "hold_from": "2026-07-10T09:00:14.876468+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "158,280"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]} {"ts": "2026-07-16T09:00:13.257129+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 209000, "qty": 29, "proceeds": 6049181, "entry_price": 162924, "pnl": 1323672, "pnl_pct": 28.28, "hold_from": "2026-07-10T09:00:14.876468+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "210,764 (현재 207,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "158,280"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -799 · 기 +891"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-16T09:00:13.258708+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 291, "proceeds": 5396237, "entry_price": 19110, "pnl": -165607, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.500021+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(10일선)", "ok": false, "detail": "18,904"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]} {"ts": "2026-07-16T09:00:13.258708+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18580, "qty": 291, "proceeds": 5396237, "entry_price": 19110, "pnl": -165607, "pnl_pct": -2.77, "hold_from": "2026-07-09T09:02:04.500021+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "18,017 (현재 18,560)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,296"}, {"label": "추세(10일선)", "ok": false, "detail": "18,904"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -120 · 기 -150"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,486"}]}
{"ts": "2026-07-20T09:24:01.250503+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 171700, "qty": 59, "proceeds": 10110546, "entry_price": 187603, "pnl": -959714, "pnl_pct": -8.48, "hold_from": "2026-07-10T09:24:02.532464+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "172,522 (현재 171,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 217,767"}, {"label": "추세(10일선)", "ok": true, "detail": "156,950"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -332 · 기 +291"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T10:50:03.252122+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10600, "qty": 148, "proceeds": 1565741, "entry_price": 13660, "pnl": -456242, "pnl_pct": -22.4, "hold_from": "2026-07-10T11:06:06.504603+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,621 (현재 10,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 19,737"}, {"label": "추세(10일선)", "ok": false, "detail": "12,043"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -893 · 기 +516"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,615"}]}
{"ts": "2026-07-21T12:06:01.204322+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 14, "cost": 4823723, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 313808, "target": 405884, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "344,500 vs 305,800"}, {"label": "정배열(5>10)", "ok": true, "detail": "315,100 / 305,800"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T14:20:02.218497+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25350, "qty": 220, "cost": 5577837, "path": "pullback", "reason": "눌림목 지정가 25,328 도달", "stop": 23650, "target": 28750, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "25,300 vs 25,185"}, {"label": "정배열(5>10)", "ok": true, "detail": "25,400 / 25,185"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,400 / 25,157"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+18.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +524 · 기 +141 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+44%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.44% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "1,611,169 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.44% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "49"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 25,328 (현재 25,300)"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38452286.58950001, "cash": 58970867.073000014,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 86,
"entry_price": 111367.44186046511,
"entry_at": "2026-07-06T09:34:02.829983+09:00",
"stop": 100198,
"target": 144876,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4843317.3248217255,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1797744.31883954, "tranche_value": 1797744.31883954,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.598088+09:00", "entry_at": "2026-07-09T09:10:02.598088+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4019229.444473994, "tranche_value": 4019229.444473994,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.321170+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4725602.001452523,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.267075+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4289043.02558424,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4444963.71074213, "tranche_value": 4444963.71074213,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1786456.904035452, "tranche_value": 1786456.904035452,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.209787+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3627364.7637924887,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10561316.598000027, "realized_pnl": -13990977.812000033,
"closed_trades": 45, "closed_trades": 55,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11354400282999992, "max_drawdown": 0.14286394351999984,
"last_exit": { "last_exit": {
"086790": "2026-06-23", "086790": "2026-06-23",
"005930": "2026-06-23", "005930": "2026-06-23",
@@ -164,18 +122,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:40:00.621011+09:00", "created_at": "2026-06-15T14:40:00.621011+09:00",
"updated_at": "2026-07-16T15:28:02.608066+09:00" "updated_at": "2026-07-21T15:28:03.170541+09:00"
} }
@@ -109,3 +109,21 @@
{"ts": "2026-07-16T09:18:06.755450+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.359246+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.755450+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.359246+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.576417+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.576417+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.844350+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.576415+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.844350+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.576415+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:26.213100+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:02.694039+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:26.213086+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.355259+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.321170+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.806232+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 86, "proceeds": 8591813, "entry_price": 111367, "pnl": -987223, "pnl_pct": -10.12, "hold_from": "2026-07-06T09:34:02.829983+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,198 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,876"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.807926+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.267075+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:04.672153+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.092113+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.509091+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.414030+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.197539+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:04.672138+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.622135+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.509074+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.159176+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.414014+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.095682+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.229269+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.095680+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.097237+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.092092+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.209788+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.079496+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.192026+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.079479+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38452286.58950001, "cash": 58970867.073000014,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 86,
"entry_price": 111367.44186046511,
"entry_at": "2026-07-06T09:34:02.847280+09:00",
"stop": 100198,
"target": 144876,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4843317.3248217255,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1797744.31883954, "tranche_value": 1797744.31883954,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.604940+09:00", "entry_at": "2026-07-09T09:10:02.604940+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4019229.444473994, "tranche_value": 4019229.444473994,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.340094+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4725602.001452523,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.270548+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4289043.02558424,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4444963.71074213, "tranche_value": 4444963.71074213,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1786456.904035452, "tranche_value": 1786456.904035452,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.213387+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3627364.7637924887,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10561316.598000027, "realized_pnl": -13990977.812000033,
"closed_trades": 45, "closed_trades": 55,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11354400282999992, "max_drawdown": 0.14286394351999984,
"last_exit": { "last_exit": {
"086790": "2026-06-23", "086790": "2026-06-23",
"005930": "2026-06-23", "005930": "2026-06-23",
@@ -164,18 +122,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.583395+09:00", "created_at": "2026-06-15T14:55:00.583395+09:00",
"updated_at": "2026-07-16T15:28:02.609914+09:00" "updated_at": "2026-07-21T15:28:03.172331+09:00"
} }
@@ -109,3 +109,21 @@
{"ts": "2026-07-16T09:18:06.777723+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.382667+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.777723+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.382667+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.584785+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.584785+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.851857+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.584784+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.851857+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.584784+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:30.898464+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.819346+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:30.898457+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.360012+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.340094+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.811642+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 86, "proceeds": 8591813, "entry_price": 111367, "pnl": -987223, "pnl_pct": -10.12, "hold_from": "2026-07-06T09:34:02.847280+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,198 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,876"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.811870+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.270548+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.525519+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.526390+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.526893+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.432370+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.638870+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.525515+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.639763+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.526889+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.163208+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.432366+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.102249+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.235777+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.102247+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.101501+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.526386+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.213388+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.100003+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.197623+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.100000+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.852503+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.609794+09:00", "entry_at": "2026-07-09T09:10:02.609794+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.345451+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.272437+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.215189+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:40:00.621059+09:00", "created_at": "2026-06-15T14:40:00.621059+09:00",
"updated_at": "2026-07-16T15:28:02.611690+09:00" "updated_at": "2026-07-21T15:28:03.174042+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.784133+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.388811+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.784133+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.388811+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.587214+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.587214+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.853952+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.587212+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.853952+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.587212+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.001677+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.825990+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.001669+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.361747+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.345451+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.813889+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.852503+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.814103+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.272437+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.532318+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.534874+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.535312+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.438049+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.645387+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.532313+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.646172+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.535304+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.165255+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.438045+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.104295+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.237797+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.104294+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.103497+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.534870+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.215190+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.105771+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.199617+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.105766+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.857166+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.613925+09:00", "entry_at": "2026-07-09T09:10:02.613925+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.350128+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.274292+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.216956+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.583512+09:00", "created_at": "2026-06-15T14:55:00.583512+09:00",
"updated_at": "2026-07-16T15:28:02.613495+09:00" "updated_at": "2026-07-21T15:28:03.175769+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.788952+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.393908+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.788952+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.393908+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.589542+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.589542+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.856015+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.589541+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.856015+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.589541+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.102293+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.831788+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.102285+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.363581+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.350128+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.816064+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.857166+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.816283+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.274292+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.540216+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.540878+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.541329+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.443682+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.651507+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.540213+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.652090+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.541325+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.167229+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.443679+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.106314+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.239732+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.106312+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.105447+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.540875+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.216957+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.110916+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.201503+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.110913+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.861425+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.617956+09:00", "entry_at": "2026-07-09T09:10:02.617956+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.354125+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.276148+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.218730+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:40:00.621103+09:00", "created_at": "2026-06-15T14:40:00.621103+09:00",
"updated_at": "2026-07-16T15:28:02.615271+09:00" "updated_at": "2026-07-21T15:28:03.177473+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.793597+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.398203+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.793597+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.398203+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.591823+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.591823+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.858047+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.591822+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.858047+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.591822+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.202225+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.836892+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.202215+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.365300+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.354125+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.818205+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.861425+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.818410+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.276148+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.546382+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.546806+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.547082+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.448428+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.656284+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.546379+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.656733+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.547080+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.169140+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.448425+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.108289+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.241658+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.108287+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.107332+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.546803+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.218731+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.115104+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.203320+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.115102+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.865443+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.621641+09:00", "entry_at": "2026-07-09T09:10:02.621641+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.357756+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.277979+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.220511+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.583628+09:00", "created_at": "2026-06-15T14:55:00.583628+09:00",
"updated_at": "2026-07-16T15:28:02.617067+09:00" "updated_at": "2026-07-21T15:28:03.179185+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.797533+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.402373+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.797533+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.402373+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.594026+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.594026+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.860056+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.594025+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.860056+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.594025+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.301219+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.841366+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.301212+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.367136+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.357756+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.820311+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.865443+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.820518+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.277979+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.551027+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.551333+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.551580+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.452950+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.660740+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.551025+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.661127+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.551578+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.171034+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.452947+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.110258+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.243558+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.110256+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.109249+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.551331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.220512+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.119062+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.205131+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.119060+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.869190+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.625003+09:00", "entry_at": "2026-07-09T09:10:02.625003+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.361281+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.279802+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.222302+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:40:00.621148+09:00", "created_at": "2026-06-15T14:40:00.621148+09:00",
"updated_at": "2026-07-16T15:28:02.618830+09:00" "updated_at": "2026-07-21T15:28:03.180894+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.801096+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.406131+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.801096+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.406131+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.596165+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.596165+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.861970+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.596163+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.861970+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.596163+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.408863+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.845274+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.408854+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.369088+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.361281+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.822377+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.869190+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.822569+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.279802+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.555029+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.555556+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.555786+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.456920+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.664596+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.555026+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.664943+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.555784+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.172786+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.456917+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.112142+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.245453+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.112140+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.111060+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.555553+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.222303+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.122761+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.206919+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.122759+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.872603+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.628145+09:00", "entry_at": "2026-07-09T09:10:02.628145+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.364690+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.281693+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.224085+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.583751+09:00", "created_at": "2026-06-15T14:55:00.583751+09:00",
"updated_at": "2026-07-16T15:28:02.620627+09:00" "updated_at": "2026-07-21T15:28:03.182611+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.804563+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.409745+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.804563+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.409745+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.598269+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.598269+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.863854+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.598268+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.863854+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.598268+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.511550+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.849012+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.511543+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.370805+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.364690+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.824373+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.872603+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.824563+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.281693+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.559225+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.559766+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.560013+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.460481+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.668051+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.559222+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.668402+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.560011+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.174548+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.460479+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.113961+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.247216+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.113960+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.112841+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.559764+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.224086+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.126203+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.208713+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.126200+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.875816+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.631281+09:00", "entry_at": "2026-07-09T09:10:02.631281+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.367857+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.283521+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.225869+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:40:00.621367+09:00", "created_at": "2026-06-15T14:40:00.621367+09:00",
"updated_at": "2026-07-16T15:28:02.622390+09:00" "updated_at": "2026-07-21T15:28:03.184315+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.807925+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.413282+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.807925+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.413282+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.600317+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.600317+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.865722+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.600315+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.865722+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.600315+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.614278+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.852604+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.614269+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.372681+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.367857+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.826340+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.875816+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.826535+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.283521+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.563477+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.564180+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.564435+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.463898+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.671517+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.563475+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.671864+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.564432+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.176299+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.463895+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.115779+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.248971+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.115778+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.114617+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.564178+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.225870+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.129668+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.210547+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.129666+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.879030+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.634235+09:00", "entry_at": "2026-07-09T09:10:02.634235+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.370811+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.285365+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.227631+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.584337+09:00", "created_at": "2026-06-15T14:55:00.584337+09:00",
"updated_at": "2026-07-16T15:28:02.624189+09:00" "updated_at": "2026-07-21T15:28:03.186054+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.811058+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.416606+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.811058+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.416606+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.602336+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.602336+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.867564+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.602335+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.867564+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.602335+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.713968+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.855870+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.713959+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.375466+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.370811+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.828276+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.879030+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.828465+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.285365+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.567719+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.568007+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.568245+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.467278+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.674786+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.567717+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.675090+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.568243+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.178033+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.467276+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.117585+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.250708+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.117583+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.116336+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.568004+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.227632+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.132839+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.212339+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.132837+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.882053+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.637074+09:00", "entry_at": "2026-07-09T09:10:02.637074+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.373713+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.287188+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.229400+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:40:00.621411+09:00", "created_at": "2026-06-15T14:40:00.621411+09:00",
"updated_at": "2026-07-16T15:28:02.625958+09:00" "updated_at": "2026-07-21T15:28:03.187768+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.813944+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.419621+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.813944+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.419621+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.604299+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.604299+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.869410+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.604298+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.869410+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.604298+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.821865+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.858928+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.821857+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.377188+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.373713+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.830226+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.882053+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.830409+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.287188+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.571346+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.571923+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.572131+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.470306+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.677860+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.571343+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.678131+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.572129+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.179774+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.470305+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.119393+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.252448+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.119392+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.118051+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.571921+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.229401+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.135757+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.214120+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.135756+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.884919+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.639710+09:00", "entry_at": "2026-07-09T09:10:02.639710+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.376602+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.289047+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.231187+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.584451+09:00", "created_at": "2026-06-15T14:55:00.584451+09:00",
"updated_at": "2026-07-16T15:28:02.627781+09:00" "updated_at": "2026-07-21T15:28:03.189503+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.816787+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.422524+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.816787+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.422524+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.606194+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.606194+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.871264+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.606193+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.871264+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.606193+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:31.933508+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.861931+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:31.933502+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.379063+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.376602+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.832078+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.884919+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.832254+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.289047+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.575229+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.575712+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.575942+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.473204+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.680668+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.575227+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.680951+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.575940+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.181513+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.473203+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.121187+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.254193+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.121186+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.119773+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.575710+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.231188+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.138536+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.215918+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.138534+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.887630+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.642364+09:00", "entry_at": "2026-07-09T09:10:02.642364+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.379294+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.290895+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.232986+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:40:00.621453+09:00", "created_at": "2026-06-15T14:40:00.621453+09:00",
"updated_at": "2026-07-16T15:28:02.629568+09:00" "updated_at": "2026-07-21T15:28:03.191205+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.819632+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.425323+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.819632+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.425323+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.608111+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.608111+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.873125+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.608110+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.873125+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.608110+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:32.038226+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.864857+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:32.038221+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.380805+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.379294+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.833958+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.887630+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.834135+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.290895+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.579057+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.579345+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.579539+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.476003+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.683504+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.579055+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.683788+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.579537+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.183266+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.476001+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.123013+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.255948+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.123012+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.121511+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.579343+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.232987+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.141148+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.217713+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.141146+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.890229+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.644830+09:00", "entry_at": "2026-07-09T09:10:02.644830+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.381891+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.292736+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.234767+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.584565+09:00", "created_at": "2026-06-15T14:55:00.584565+09:00",
"updated_at": "2026-07-16T15:28:02.631376+09:00" "updated_at": "2026-07-21T15:28:03.192932+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.822340+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.428139+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.822340+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.428139+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.609990+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.609990+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.874962+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.609989+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.874962+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.609989+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:32.147135+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.867551+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:32.147125+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.382702+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.381891+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.835684+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.890229+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.835856+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.292736+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.582282+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.582540+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.582756+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.478805+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.686339+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.582280+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.686596+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.582754+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.185005+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.478804+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.124788+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.257683+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.124787+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.123245+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.582538+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.234768+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.143769+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.219492+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.143767+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.892744+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.647351+09:00", "entry_at": "2026-07-09T09:10:02.647351+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.384421+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.294571+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.236516+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:40:00.621497+09:00", "created_at": "2026-06-15T14:40:00.621497+09:00",
"updated_at": "2026-07-16T15:28:02.633164+09:00" "updated_at": "2026-07-21T15:28:03.194630+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.824984+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.430869+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.824984+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.430869+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.611856+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.611856+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.876787+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.611855+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.876787+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.611855+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:32.247792+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.870123+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:32.247784+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.384433+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.384421+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.837436+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.892744+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.837598+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.294571+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.585386+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.585816+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.585998+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.481472+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.688955+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.585385+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.689220+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.585996+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.186742+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.481470+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.126568+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.259418+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.126567+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.124994+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.585814+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.236517+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.146317+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.221288+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.146316+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{ {
"cash": 38489935.07949999, "cash": 58908610.75799999,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": {
"code": "055550",
"name": "신한지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 111383.5294117647,
"entry_at": "2026-07-06T09:34:02.895187+09:00",
"stop": 100214,
"target": 144892,
"peak": 113050,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 107800,
"tranches": 2,
"tranche_value": 4839631.234295702,
"last_add_price": 112800
},
"095610": { "095610": {
"code": "095610", "code": "095610",
"name": "테스", "name": "테스",
@@ -39,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 148,050 도달", "entry_reason": "눌림목 지정가 148,050 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1796390.6144710162, "tranche_value": 1796390.6144710162,
"last_add_price": 177000 "last_add_price": 177000
@@ -55,58 +34,16 @@
"entry_at": "2026-07-09T09:10:02.649859+09:00", "entry_at": "2026-07-09T09:10:02.649859+09:00",
"stop": 119105, "stop": 119105,
"target": 180930, "target": 180930,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 4016046.033999526, "tranche_value": 4016046.033999526,
"last_add_price": 136900 "last_add_price": 136900
}, },
"093370": {
"code": "093370",
"name": "후성",
"sources": [
"auto"
],
"qty": 787,
"entry_price": 11983.672172808132,
"entry_at": "2026-07-09T10:12:04.386851+09:00",
"stop": 10360,
"target": 16855,
"peak": 14330,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 15,838 도달",
"cur_price": 11710,
"tranches": 2,
"tranche_value": 4721927.942785091,
"last_add_price": 12570
},
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 45,
"entry_price": 186242.22222222222,
"entry_at": "2026-07-10T09:18:05.296405+09:00",
"stop": 166362,
"target": 245883,
"peak": 194300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 2,
"tranche_value": 4285537.86736934,
"last_add_price": 188900
},
"086790": { "086790": {
"code": "086790", "code": "086790",
"name": "하나금융지주", "name": "하나금융지주",
@@ -123,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4441360.270202171, "tranche_value": 4441360.270202171,
"last_add_price": 134300 "last_add_price": 134300
@@ -144,17 +81,38 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 154,024 도달", "entry_reason": "눌림목 지정가 154,024 도달",
"cur_price": 142000, "cur_price": 116900,
"tranches": 2, "tranches": 2,
"tranche_value": 1785074.3957384636, "tranche_value": 1785074.3957384636,
"last_add_price": 139900 "last_add_price": 139900
},
"214450": {
"code": "214450",
"name": "파마리서치",
"sources": [
"auto"
],
"qty": 10,
"entry_price": 344500,
"entry_at": "2026-07-21T12:06:01.238289+09:00",
"stop": 303577,
"target": 467269,
"peak": 346000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 340000,
"tranches": 1,
"tranche_value": 3624744.3180141365,
"last_add_price": 344500
} }
}, },
"realized_pnl": -10633684.608000025, "realized_pnl": -14053234.12700003,
"closed_trades": 46, "closed_trades": 56,
"wins": 1, "wins": 1,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.11421351793000013, "max_drawdown": 0.1434865066700001,
"last_exit": { "last_exit": {
"017670": "2026-06-19", "017670": "2026-06-19",
"086790": "2026-06-23", "086790": "2026-06-23",
@@ -165,18 +123,21 @@
"403870": "2026-07-07", "403870": "2026-07-07",
"005935": "2026-07-01", "005935": "2026-07-01",
"240810": "2026-07-08", "240810": "2026-07-08",
"009150": "2026-07-16", "009150": "2026-07-21",
"214450": "2026-07-06", "214450": "2026-07-06",
"093370": "2026-07-07", "093370": "2026-07-20",
"034730": "2026-07-16", "034730": "2026-07-21",
"032830": "2026-07-16", "032830": "2026-07-21",
"319660": "2026-07-13", "319660": "2026-07-13",
"011070": "2026-07-16", "011070": "2026-07-16",
"003490": "2026-07-09", "003490": "2026-07-09",
"402340": "2026-07-16", "402340": "2026-07-21",
"004170": "2026-07-16", "004170": "2026-07-21",
"028260": "2026-07-16" "028260": "2026-07-16",
"055550": "2026-07-20",
"105560": "2026-07-20",
"222800": "2026-07-21"
}, },
"created_at": "2026-06-15T14:55:00.584680+09:00", "created_at": "2026-06-15T14:55:00.584680+09:00",
"updated_at": "2026-07-16T15:28:02.634963+09:00" "updated_at": "2026-07-21T15:28:03.196355+09:00"
} }
@@ -111,3 +111,21 @@
{"ts": "2026-07-16T09:18:06.827497+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.433499+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]} {"ts": "2026-07-16T09:18:06.827497+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1223000, "qty": 4, "proceeds": 4882461, "entry_price": 1233000, "pnl": -50279, "pnl_pct": -0.81, "hold_from": "2026-07-16T09:16:07.433499+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,232,999 (현재 1,223,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,233,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,933"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +384 · 기 -243"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,325,798"}]}
{"ts": "2026-07-16T10:04:05.613721+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]} {"ts": "2026-07-16T10:04:05.613721+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1290000, "qty": 4, "cost": 5160774, "path": "pullback", "reason": "눌림목 지정가 1,824,659 도달", "stop": 1289999, "target": 1290003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,289,000 vs 1,283,933"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,200 / 1,283,933"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-4.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +60 · 기 -228 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+92%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.01% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "2,249,478 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "3.01% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,824,659 (현재 1,289,000)"}]}
{"ts": "2026-07-16T10:06:02.878622+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.613720+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]} {"ts": "2026-07-16T10:06:02.878622+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1282000, "qty": 4, "proceeds": 5118000, "entry_price": 1290000, "pnl": -42774, "pnl_pct": -0.62, "hold_from": "2026-07-16T10:04:05.613720+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,289,999 (현재 1,284,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 1,290,003"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +60 · 기 -228"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 1,409,780"}]}
{"ts": "2026-07-20T09:00:32.348520+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 18, "cost": 5580837, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.872658+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 18, "proceeds": 5542172, "entry_price": 310000, "pnl": -38665, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:32.348510+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T12:28:02.386336+09:00", "side": "SELL", "code": "093370", "name": "후성", "price": 10310, "qty": 787, "proceeds": 8098148, "entry_price": 11984, "pnl": -1334417, "pnl_pct": -13.97, "hold_from": "2026-07-09T10:12:04.386851+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,360 (현재 10,310)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,855"}, {"label": "추세(60일선)", "ok": false, "detail": "14,112"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -887 · 기 +515"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.839137+09:00", "side": "SELL", "code": "055550", "name": "신한지주", "price": 100100, "qty": 85, "proceeds": 8491908, "entry_price": 111384, "pnl": -977112, "pnl_pct": -10.13, "hold_from": "2026-07-06T09:34:02.895187+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,214 (현재 100,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 144,892"}, {"label": "추세(60일선)", "ok": true, "detail": "96,460"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -168 · 기 +257"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T14:12:02.839305+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 166000, "qty": 45, "proceeds": 7455434, "entry_price": 186242, "pnl": -926724, "pnl_pct": -10.87, "hold_from": "2026-07-10T09:18:05.296405+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "166,362 (현재 166,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 245,883"}, {"label": "추세(60일선)", "ok": true, "detail": "157,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -440 · 기 +299"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:08:05.588576+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:08:05.588807+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 582000, "qty": 9, "cost": 5238786, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 581999, "target": 582003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "581,000 vs 527,883"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,200 / 527,883"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+47%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.47% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "342,425 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.47% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 581,000)"}]}
{"ts": "2026-07-21T10:08:05.589002+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 547000, "qty": 9, "cost": 4923738, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 546999, "target": 547003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "547,000 vs 539,058"}, {"label": "정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "703,200 / 539,058"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+22.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +20 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+53%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.13% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "106,333 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "1.13% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "38"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 547,000)"}]}
{"ts": "2026-07-21T10:12:01.484074+09:00", "side": "BUY", "code": "222800", "name": "심텍", "price": 101000, "qty": 53, "cost": 5353803, "path": "pullback", "reason": "눌림목 지정가 101,561 도달", "stop": 100999, "target": 101003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,000 vs 99,500"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,040 / 99,500"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+8.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +4 · 기 -171 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+70%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.02% (환산) vs 평균 2.67% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 143,300"}, {"label": "거래량 급증", "ok": false, "detail": "1,132,045 (환산) vs 평균 1,001,691"}, {"label": "회전율 급증", "ok": false, "detail": "3.02% (환산) vs 평균 2.67%"}, {"label": "RSI", "ok": true, "detail": "42"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 101,561 (현재 101,000)"}]}
{"ts": "2026-07-21T10:18:01.691527+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.588574+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:01.691772+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 546000, "qty": 9, "proceeds": 4904418, "entry_price": 547000, "pnl": -19321, "pnl_pct": -0.18, "hold_from": "2026-07-21T10:08:05.589000+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "546,999 (현재 546,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "539,042"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +20 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:30:04.188490+09:00", "side": "SELL", "code": "222800", "name": "심텍", "price": 100800, "qty": 53, "proceeds": 5331982, "entry_price": 101000, "pnl": -21821, "pnl_pct": -0.2, "hold_from": "2026-07-21T10:12:01.484072+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "100,999 (현재 100,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "99,497"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +4 · 기 -171"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:32:02.128342+09:00", "side": "BUY", "code": "009150", "name": "삼성전기", "price": 1288000, "qty": 4, "cost": 5152773, "path": "pullback", "reason": "눌림목 지정가 1,822,409 도달", "stop": 1287999, "target": 1288003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,288,000 vs 1,283,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,900,000 / 1,283,917"}, {"label": "상대강도(시장대비)", "ok": false, "detail": "-2.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -51 · 기 +3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+94%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.66% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,417,000"}, {"label": "거래량 급증", "ok": true, "detail": "1,985,054 (환산) vs 평균 1,312,239"}, {"label": "회전율 급증", "ok": true, "detail": "2.66% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "37"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,822,409 (현재 1,288,000)"}]}
{"ts": "2026-07-21T10:40:02.261156+09:00", "side": "SELL", "code": "009150", "name": "삼성전기", "price": 1285000, "qty": 4, "proceeds": 5129977, "entry_price": 1288000, "pnl": -22796, "pnl_pct": -0.23, "hold_from": "2026-07-21T10:32:02.128341+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,287,999 (현재 1,286,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,283,883"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -51 · 기 +3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:12:01.126743+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 580000, "qty": 9, "proceeds": 5209821, "entry_price": 582000, "pnl": -28965, "pnl_pct": -0.34, "hold_from": "2026-07-21T10:08:05.588805+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "581,999 (현재 580,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,867"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T12:06:01.238290+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 344500, "qty": 10, "cost": 3445517, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 303577, "target": 467269, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "344,500 vs 305,492"}, {"label": "정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "315,100 / 305,492"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+39.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -7 · 기 +1 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+43%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.38% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": true, "detail": "247,158 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": true, "detail": "2.38% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "65"}]}
{"ts": "2026-07-21T13:10:02.148810+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 312000, "qty": 17, "cost": 5304796, "path": "pullback", "reason": "눌림목 지정가 387,647 도달", "stop": 311999, "target": 312003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "312,000 vs 311,125"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,100 / 311,125"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +54 · 기 -39 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+31%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.25% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "505,255 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.25% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 387,647 (현재 312,000)"}]}
{"ts": "2026-07-21T13:32:05.223074+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 311500, "qty": 17, "proceeds": 5285174, "entry_price": 312000, "pnl": -19622, "pnl_pct": -0.16, "hold_from": "2026-07-21T13:10:02.148808+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "311,999 (현재 311,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "311,117"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -39"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{ {
"cash": 35744179.897000015, "cash": 34536155.400000006,
"initial": 100000000, "initial": 100000000,
"positions": { "positions": {
"055550": { "055550": {
@@ -18,7 +18,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "immediate", "entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 107800, "cur_price": 104600,
"tranches": 2, "tranches": 2,
"tranche_value": 4371332.168068898, "tranche_value": 4371332.168068898,
"last_add_price": 105800 "last_add_price": 105800
@@ -34,12 +34,12 @@
"entry_at": "2026-07-08T09:16:02.747351+09:00", "entry_at": "2026-07-08T09:16:02.747351+09:00",
"stop": 112606, "stop": 112606,
"target": 175803, "target": 175803,
"peak": 146200, "peak": 149800,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 144100, "cur_price": 142000,
"tranches": 2, "tranches": 2,
"tranche_value": 3448434.606240806, "tranche_value": 3448434.606240806,
"last_add_price": 130800 "last_add_price": 130800
@@ -60,7 +60,7 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "pullback", "entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달", "entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 195800, "cur_price": 166100,
"tranches": 2, "tranches": 2,
"tranche_value": 1478967.7315768395, "tranche_value": 1478967.7315768395,
"last_add_price": 158000 "last_add_price": 158000
@@ -81,53 +81,11 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "breakout", "entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파", "entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 136700, "cur_price": 132800,
"tranches": 2, "tranches": 2,
"tranche_value": 4504679.249331353, "tranche_value": 4504679.249331353,
"last_add_price": 139700 "last_add_price": 139700
}, },
"105560": {
"code": "105560",
"name": "KB금융",
"sources": [
"auto"
],
"qty": 20,
"entry_price": 189500,
"entry_at": "2026-07-13T12:08:06.996862+09:00",
"stop": 168820,
"target": 251541,
"peak": 189800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 180700,
"tranches": 1,
"tranche_value": 3908647.2655038685,
"last_add_price": 189500
},
"000660": {
"code": "000660",
"name": "SK하이닉스",
"sources": [
"held"
],
"qty": 1,
"entry_price": 2085000,
"entry_at": "2026-07-15T09:06:03.016770+09:00",
"stop": 1678000,
"target": 3306000,
"peak": 2168000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 1840000,
"tranches": 1,
"tranche_value": 2166036.658698649,
"last_add_price": 2085000
},
"003490": { "003490": {
"code": "003490", "code": "003490",
"name": "대한항공", "name": "대한항공",
@@ -144,38 +102,80 @@
"scaled_out": false, "scaled_out": false,
"entry_path": "immediate", "entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 26350, "cur_price": 25350,
"tranches": 1, "tranches": 1,
"tranche_value": 4615467.447503124, "tranche_value": 4615467.447503124,
"last_add_price": 26500 "last_add_price": 26500
}, },
"353200": { "214450": {
"code": "353200", "code": "214450",
"name": "대덕전자", "name": "파마리서치",
"sources": [ "sources": [
"auto" "auto"
], ],
"qty": 58, "qty": 20,
"entry_price": 138893.10344827586, "entry_price": 332750.0,
"entry_at": "2026-07-16T09:20:02.865095+09:00", "entry_at": "2026-07-21T09:02:06.017875+09:00",
"stop": 120700, "stop": 293113,
"target": 193472, "target": 451661,
"peak": 144000, "peak": 346000,
"trailing_on": false, "trailing_on": false,
"scaled_out": false, "scaled_out": false,
"entry_path": "immediate", "entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 138300, "cur_price": 340000,
"tranches": 2, "tranches": 2,
"tranche_value": 4073517.1093882257, "tranche_value": 3417673.0117698065,
"last_add_price": 143600 "last_add_price": 338000
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"sources": [
"auto"
],
"qty": 142,
"entry_price": 15290,
"entry_at": "2026-07-21T09:02:06.761608+09:00",
"stop": 12498,
"target": 23665,
"peak": 15630,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 14940,
"tranches": 1,
"tranche_value": 2181698.9774842947,
"last_add_price": 15290
},
"161890": {
"code": "161890",
"name": "한국콜마",
"sources": [
"auto"
],
"qty": 41,
"entry_price": 101800,
"entry_at": "2026-07-21T11:08:01.673418+09:00",
"stop": 92100,
"target": 130900,
"peak": 102700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 101600,
"tranches": 1,
"tranche_value": 4194789.767858763,
"last_add_price": 101800
} }
}, },
"realized_pnl": -18438848.58800002, "realized_pnl": -20577832.708000023,
"closed_trades": 47, "closed_trades": 55,
"wins": 0, "wins": 0,
"peak_equity": 100000000, "peak_equity": 100000000,
"max_drawdown": 0.1751111698299998, "max_drawdown": 0.2081173692999999,
"last_exit": { "last_exit": {
"083450": "2026-07-06", "083450": "2026-07-06",
"278470": "2026-07-14", "278470": "2026-07-14",
@@ -198,16 +198,20 @@
"093370": "2026-07-02", "093370": "2026-07-02",
"009150": "2026-07-15", "009150": "2026-07-15",
"240810": "2026-07-03", "240810": "2026-07-03",
"000660": "2026-07-13", "000660": "2026-07-20",
"005930": "2026-07-08", "005930": "2026-07-08",
"005935": "2026-07-16", "005935": "2026-07-16",
"319660": "2026-07-09", "319660": "2026-07-09",
"032830": "2026-07-16", "032830": "2026-07-20",
"402340": "2026-07-13", "402340": "2026-07-21",
"222800": "2026-07-16", "222800": "2026-07-16",
"214450": "2026-07-15", "214450": "2026-07-15",
"004170": "2026-07-16" "004170": "2026-07-21",
"353200": "2026-07-20",
"105560": "2026-07-20",
"089970": "2026-07-21",
"034730": "2026-07-21"
}, },
"created_at": "2026-06-16T09:00:03.113416+09:00", "created_at": "2026-06-16T09:00:03.113416+09:00",
"updated_at": "2026-07-16T15:28:02.636893+09:00" "updated_at": "2026-07-21T15:28:03.198042+09:00"
} }
@@ -117,3 +117,20 @@
{"ts": "2026-07-16T09:20:02.446434+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 592000, "qty": 8, "proceeds": 4726765, "entry_price": 595000, "pnl": -33949, "pnl_pct": -0.5, "hold_from": "2026-07-16T09:18:07.567618+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "594,999 (현재 592,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 595,003"}, {"label": "추세(60일선)", "ok": true, "detail": "539,808"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -52"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 628,493"}]} {"ts": "2026-07-16T09:20:02.446434+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 592000, "qty": 8, "proceeds": 4726765, "entry_price": 595000, "pnl": -33949, "pnl_pct": -0.5, "hold_from": "2026-07-16T09:18:07.567618+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "594,999 (현재 592,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 595,003"}, {"label": "추세(60일선)", "ok": true, "detail": "539,808"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +54 · 기 -52"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 628,493"}]}
{"ts": "2026-07-16T09:20:02.865111+09:00", "side": "BUY", "code": "353200", "name": "대덕전자", "price": 134500, "qty": 30, "cost": 4035605, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 120700, "target": 175900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "134,400 vs 133,420"}, {"label": "정배열(5>60)", "ok": true, "detail": "140,600 / 133,420"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "140,600 / 133,420"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+20.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -2,007 · 기 +2,133 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.1/5"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.23% (환산) vs 평균 2.16% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 188,450"}, {"label": "거래량 급증", "ok": false, "detail": "1,099,867 (환산) vs 평균 1,069,077"}, {"label": "회전율 급증", "ok": false, "detail": "2.23% (환산) vs 평균 2.16%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 133,420 (현재 134,400)"}]} {"ts": "2026-07-16T09:20:02.865111+09:00", "side": "BUY", "code": "353200", "name": "대덕전자", "price": 134500, "qty": 30, "cost": 4035605, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 120700, "target": 175900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "134,400 vs 133,420"}, {"label": "정배열(5>60)", "ok": true, "detail": "140,600 / 133,420"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "140,600 / 133,420"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+20.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -2,007 · 기 +2,133 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.1/5"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "2.23% (환산) vs 평균 2.16% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 188,450"}, {"label": "거래량 급증", "ok": false, "detail": "1,099,867 (환산) vs 평균 1,069,077"}, {"label": "회전율 급증", "ok": false, "detail": "2.23% (환산) vs 평균 2.16%"}, {"label": "RSI", "ok": true, "detail": "45"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 133,420 (현재 134,400)"}]}
{"ts": "2026-07-16T11:40:04.514063+09:00", "side": "BUY", "code": "353200", "name": "대덕전자", "price": 143600, "qty": 28, "cost": 4021403, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 120700, "target": 175900, "signals": [{"label": "손절선", "ok": true, "detail": "120,700 (현재 143,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 175,900"}, {"label": "추세(60일선)", "ok": true, "detail": "133,572"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -2,085 · 기 +2,133"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,719"}]} {"ts": "2026-07-16T11:40:04.514063+09:00", "side": "BUY", "code": "353200", "name": "대덕전자", "price": 143600, "qty": 28, "cost": 4021403, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 120700, "target": 175900, "signals": [{"label": "손절선", "ok": true, "detail": "120,700 (현재 143,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 175,900"}, {"label": "추세(60일선)", "ok": true, "detail": "133,572"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -2,085 · 기 +2,133"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 142,719"}]}
{"ts": "2026-07-20T09:00:33.380331+09:00", "side": "SELL", "code": "000660", "name": "SK하이닉스", "price": 1736000, "qty": 1, "proceeds": 1732615, "entry_price": 2085000, "pnl": -352698, "pnl_pct": -16.74, "hold_from": "2026-07-15T09:06:03.016770+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "1,678,000 (현재 1,740,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 3,306,000"}, {"label": "추세(60일선)", "ok": false, "detail": "2,045,317"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -184 · 기 -447"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 2,200,978"}]}
{"ts": "2026-07-20T09:00:33.382592+09:00", "side": "BUY", "code": "032830", "name": "삼성생명", "price": 310000, "qty": 16, "cost": 4960744, "path": "pullback", "reason": "눌림목 지정가 389,522 도달", "stop": 309999, "target": 310003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "313,000 vs 311,142"}, {"label": "정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "435,300 / 311,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+10.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +189 · 기 -101 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.02% (환산) vs 평균 0.28% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 516,500"}, {"label": "거래량 급증", "ok": false, "detail": "38,360 (환산) vs 평균 563,003"}, {"label": "회전율 급증", "ok": false, "detail": "0.02% (환산) vs 평균 0.28%"}, {"label": "RSI", "ok": true, "detail": "41"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 389,522 (현재 313,000)"}]}
{"ts": "2026-07-20T09:02:03.875048+09:00", "side": "SELL", "code": "032830", "name": "삼성생명", "price": 308500, "qty": 16, "proceeds": 4926375, "entry_price": 310000, "pnl": -34369, "pnl_pct": -0.48, "hold_from": "2026-07-20T09:00:33.382583+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "309,999 (현재 308,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 310,003"}, {"label": "추세(60일선)", "ok": false, "detail": "311,058"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +189 · 기 -101"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 330,469"}]}
{"ts": "2026-07-20T11:00:05.893821+09:00", "side": "SELL", "code": "353200", "name": "대덕전자", "price": 120700, "qty": 58, "proceeds": 6986949, "entry_price": 138893, "pnl": -1070060, "pnl_pct": -13.1, "hold_from": "2026-07-16T09:20:02.865095+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,700 (현재 120,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 193,472"}, {"label": "추세(60일선)", "ok": false, "detail": "133,192"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -1,511 · 기 +1,856"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-20T12:32:01.310565+09:00", "side": "SELL", "code": "105560", "name": "KB금융", "price": 168700, "qty": 20, "proceeds": 3367421, "entry_price": 189500, "pnl": -423148, "pnl_pct": -10.98, "hold_from": "2026-07-13T12:08:06.996862+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "168,820 (현재 168,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 251,541"}, {"label": "추세(60일선)", "ok": true, "detail": "157,087"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -385 · 기 +288"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 194,195"}]}
{"ts": "2026-07-21T09:02:06.017891+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 327500, "qty": 10, "cost": 3275491, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 289291, "target": 442126, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "327,000 vs 305,200"}, {"label": "정배열(5>60)", "ok": true, "detail": "311,600 / 305,200"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "311,600 / 305,200"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+33.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -14 · 기 +5 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.28% (환산) vs 평균 0.93% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 334,500"}, {"label": "거래량 급증", "ok": false, "detail": "29,527 (환산) vs 평균 96,436"}, {"label": "회전율 급증", "ok": false, "detail": "0.28% (환산) vs 평균 0.93%"}, {"label": "RSI", "ok": true, "detail": "60"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 305,200 (현재 327,000)"}]}
{"ts": "2026-07-21T09:02:06.316539+09:00", "side": "BUY", "code": "089970", "name": "브이엠", "price": 91900, "qty": 54, "cost": 4963344, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 88900, "target": 100900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "91,400 vs 70,192"}, {"label": "정배열(5>60)", "ok": true, "detail": "101,960 / 70,192"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "101,960 / 70,192"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+42.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -510 · 기 +398 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+35%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.35% (환산) vs 평균 3.65% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 122,100"}, {"label": "거래량 급증", "ok": false, "detail": "334,627 (환산) vs 평균 902,898"}, {"label": "회전율 급증", "ok": false, "detail": "1.35% (환산) vs 평균 3.65%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 79,827 (현재 91,400)"}]}
{"ts": "2026-07-21T09:02:06.761626+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 15290, "qty": 142, "cost": 2171506, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 12498, "target": 23665, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "15,220 vs 13,303"}, {"label": "정배열(5>60)", "ok": true, "detail": "14,792 / 13,303"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "14,792 / 13,303"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.2%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -1,174 · 기 +1,927 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.31% (환산) vs 평균 1.47% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 15,870"}, {"label": "거래량 급증", "ok": false, "detail": "186,687 (환산) vs 평균 882,736"}, {"label": "회전율 급증", "ok": false, "detail": "0.31% (환산) vs 평균 1.47%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 13,406 (현재 15,220)"}]}
{"ts": "2026-07-21T09:12:04.140031+09:00", "side": "SELL", "code": "089970", "name": "브이엠", "price": 88800, "qty": 54, "proceeds": 4785849, "entry_price": 91900, "pnl": -177495, "pnl_pct": -3.37, "hold_from": "2026-07-21T09:02:06.316522+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "88,900 (현재 88,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 100,900"}, {"label": "추세(60일선)", "ok": true, "detail": "70,151"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -510 · 기 +398"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 97,814"}]}
{"ts": "2026-07-21T09:18:04.228837+09:00", "side": "BUY", "code": "214450", "name": "파마리서치", "price": 338000, "qty": 10, "cost": 3380507, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 289291, "target": 442126, "signals": [{"label": "손절선", "ok": true, "detail": "289,291 (현재 337,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 442,126"}, {"label": "추세(60일선)", "ok": true, "detail": "305,375"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -14 · 기 +5"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 337,409"}]}
{"ts": "2026-07-21T10:08:05.591500+09:00", "side": "BUY", "code": "402340", "name": "SK스퀘어", "price": 1208000, "qty": 4, "cost": 4832725, "path": "pullback", "reason": "눌림목 지정가 1,239,748 도달", "stop": 1207999, "target": 1208003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "1,207,000 vs 1,153,667"}, {"label": "정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "1,565,200 / 1,153,667"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +139 · 기 -53 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+57%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.18% (환산) vs 평균 1.01% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 2,189,000"}, {"label": "거래량 급증", "ok": false, "detail": "1,555,624 (환산) vs 평균 1,333,116"}, {"label": "회전율 급증", "ok": false, "detail": "1.18% (환산) vs 평균 1.01%"}, {"label": "RSI", "ok": true, "detail": "40"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 1,239,748 (현재 1,207,000)"}]}
{"ts": "2026-07-21T10:18:01.693977+09:00", "side": "SELL", "code": "402340", "name": "SK스퀘어", "price": 1203000, "qty": 4, "proceeds": 4802617, "entry_price": 1208000, "pnl": -30108, "pnl_pct": -0.41, "hold_from": "2026-07-21T10:08:05.591499+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "1,207,999 (현재 1,205,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "1,153,633"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +139 · 기 -53"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T10:18:02.045511+09:00", "side": "BUY", "code": "034730", "name": "SK", "price": 583000, "qty": 8, "cost": 4664700, "path": "pullback", "reason": "눌림목 지정가 699,586 도달", "stop": 582999, "target": 583003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "583,000 vs 527,917"}, {"label": "정배열(5>60)", "ok": true, "detail": "734,600 / 527,917"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "734,600 / 527,917"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+13.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -28 · 기 +79 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+46%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.46% (환산) vs 평균 0.45% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 883,000"}, {"label": "거래량 급증", "ok": false, "detail": "329,704 (환산) vs 평균 329,863"}, {"label": "회전율 급증", "ok": false, "detail": "0.46% (환산) vs 평균 0.45%"}, {"label": "RSI", "ok": true, "detail": "44"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 699,586 (현재 583,000)"}]}
{"ts": "2026-07-21T10:58:03.164532+09:00", "side": "SELL", "code": "034730", "name": "SK", "price": 582000, "qty": 8, "proceeds": 4646921, "entry_price": 583000, "pnl": -17779, "pnl_pct": -0.17, "hold_from": "2026-07-21T10:18:02.045495+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "582,999 (현재 582,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(60일선)", "ok": true, "detail": "527,900"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -28 · 기 +79"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-21T11:06:02.300835+09:00", "side": "BUY", "code": "004170", "name": "신세계", "price": 558000, "qty": 8, "cost": 4464670, "path": "pullback", "reason": "눌림목 지정가 601,342 도달", "stop": 557999, "target": 558003, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "557,000 vs 539,225"}, {"label": "정배열(5>60)", "ok": true, "detail": "705,200 / 539,225"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "705,200 / 539,225"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+23.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +19 · 기 -15 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+51%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.92% (환산) vs 평균 1.13% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 792,000"}, {"label": "거래량 급증", "ok": false, "detail": "86,393 (환산) vs 평균 106,700"}, {"label": "회전율 급증", "ok": false, "detail": "0.92% (환산) vs 평균 1.13%"}, {"label": "RSI", "ok": true, "detail": "39"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 601,342 (현재 557,000)"}]}
{"ts": "2026-07-21T11:08:01.251249+09:00", "side": "SELL", "code": "004170", "name": "신세계", "price": 555000, "qty": 8, "proceeds": 4431342, "entry_price": 558000, "pnl": -33328, "pnl_pct": -0.54, "hold_from": "2026-07-21T11:06:02.300833+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "557,999 (현재 556,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 558,003"}, {"label": "추세(60일선)", "ok": true, "detail": "539,208"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +19 · 기 -15"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 592,886"}]}
{"ts": "2026-07-21T11:08:01.673433+09:00", "side": "BUY", "code": "161890", "name": "한국콜마", "price": 101800, "qty": 41, "cost": 4174426, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 92100, "target": 130900, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "101,800 vs 91,963"}, {"label": "정배열(5>60)", "ok": true, "detail": "107,660 / 91,963"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "107,660 / 91,963"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 -37 · 기 +7 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+29%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.72% (환산) vs 평균 1.76% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 124,600"}, {"label": "거래량 급증", "ok": false, "detail": "403,947 (환산) vs 평균 415,172"}, {"label": "회전율 급증", "ok": false, "detail": "1.72% (환산) vs 평균 1.76%"}, {"label": "RSI", "ok": true, "detail": "54"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 94,787 (현재 101,800)"}]}

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